我正在尝试在 Kaitai Struct 中实现文件结构,这意味着我需要创建 ksy 文件可以被另一个 ksy 文件引用,所以当我编译成我的目标语言(在我的例子中是 java)时,java 代码将被优化并重用通常创建 ksy 文件,而不是冗余生成的 java 代码。
我试图模仿“在 Kaitai Struct 的外部文件中引用枚举”,但它没有用。
我开始研究“导入”,这意味着在外部 ksy 文件中导入 ksy 文件,我将广泛解释我试图做和实现的目标:
- 我为 data_types (自定义数据类型)创建了一个 ksy,它没有引用任何内容,只是带有 id 的元部分,然后是类型,我开始列出我所有的自定义数据类型(datatypeone,datatypetwo ...)
- 我为机器类型创建了一个 ksy,每种类型都有字段的“seq”,每个字段都引用上述数据类型之一,这里的挑战在于 machineType.ksy,我将 dataType.ksy 添加为导入,我不是很确定这样做的语法是什么,Webide 中的 Kaitai struct 编译器一直告诉我未定义的自定义数据类型,例如未定义 datatypeone。
是否对要引用的文件数量有任何限制,例如我可以从文件 b 中引用文件 a,从文件 c 中引用文件 b,从文件 d 中引用文件 c,这意味着文件 d 具有“c 的导入”并且文件 c 具有“b 的进口”等等。