我想要一个 Kaitai Struct ksy 文件,它引用不同外部文件中的一些枚举和类型。在外部文件中,我只想有子类型和枚举定义。
这是引用外部类型的测试文件 ( test.ksy ):
meta:
id: test
imports:
- rowing
endian: be
seq:
- id: system_id
type: u1
- id: data
type:
switch-on: system_id
cases:
rowing_messages::position: rowing::rowing_position_message
这是包含外部类型的文件(rowing.ksy ):
meta:
id: rowing
endian: be
enums:
rowing_messages:
0x10: position
0x12: meter_per_stroke
types:
rowing_position_message:
seq:
- id: id
type: u1
- id: timestamp
type: u4
编译器抱怨:
test: /seq/1/type/cases/EnumByLabel(identifier(rowing_messages),identifier(position)): unable to find enum 'rowing_messages', searching from test
根据我的测试,我似乎可以使用前缀引用外部 rowing_position_message 类型,rowing::
但我不能对枚举做同样的事情。如果我像rowing::rowing_messages::position
编译器抱怨的那样做:
/seq/1/cases/rowing::rowing_messages::position: parsing expression 'rowing::rowing_messages::position' failed on 1:24, expected "or" | CharsWhile(Set( , n)) | "\\\n" | End
提前感谢您的任何想法。