`parent` key is not an actually is expression
Analysing code when working [on my own implementation](https://github.com/Mingun/ksc-rs) of the compiler, I found that the [`parent`](https://doc.kaitai.io/user_guide.html#_enforcing_parent_type) key is [extracted](https://github.com/kaitai-io/kaitai_struct_compiler/blob/e8542816277c0f78a17afcd4eed756337df9cd70/shared/src/main/scala/io/kaitai/struct/format/AttrSpec.scala#L189) as an expression, but actually the only possible expressions are:
- `false`
- `_parent`
- `_root`
- `_root._parent`
- `_root._parent._parent`
- ...

That expressions although by the form looks acceptable, is rejected by the compiler:
- `param` where
  ```yaml
  params:
    - id: param
      type: struct
  ```
  Error:
  > io.kaitai.struct.precompile.TypeMismatchError: parent=Name(identifier(param)) is expected to be either of user type or `false`, but CalcKaitaiStructType found
- `true ? _root : _parent`
  Error:
  > io.kaitai.struct.precompile.TypeMismatchError: parent=IfExp(Bool(true),Name(identifier(_root)),Name(identifier(_parent))) is expected to be either of user type or `false`, but CalcKaitaiStructType found
- `[_root, _parent][1]`
  Error:
  > io.kaitai.struct.precompile.TypeMismatchError: parent=Subscript(List(WrappedArray(Name(identifier(_root)), Name(identifier(_parent)))),IntNum(1)) is expected to be either of user type or `false`, but CalcKaitaiStructType found

This is happened because:
- `parent` [should have](https://github.com/kaitai-io/kaitai_struct_compiler/blob/e8542816277c0f78a17afcd4eed756337df9cd70/shared/src/main/scala/io/kaitai/struct/precompile/ParentTypes.scala#L50-L55) type of the [`UserType`](https://github.com/kaitai-io/kaitai_struct_compiler/blob/e8542816277c0f78a17afcd4eed756337df9cd70/shared/src/main/scala/io/kaitai/struct/datatype/DataType.scala#L125-L135)
- the type of all that expressions is inferred as [`CalcKaitaiStructType`](https://github.com/kaitai-io/kaitai_struct_compiler/blob/e8542816277c0f78a17afcd4eed756337df9cd70/shared/src/main/scala/io/kaitai/struct/datatype/DataType.scala#L196-L198)
- the `UserType extends StructType` and the `CalcKaitaiStructType extends StructType`, so they does not have the common ancestor

If `parent` should be a true expression, than this looks like a bug. If `parent` should only allow the currently allowed usage variants, it is better to rewrite it's parsing to be more straightforward.

What the desired behaviour?