Я хотел бы иметь ksy файл Kaitai Struct, который ссылается на некоторые перечисления и типы в различных внешних файлах. Во внешних файлах я хотел бы иметь только определения подтипов и перечислений.
Это тестовый файл ( 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
Заранее благодарен за любые идеи.