Тип параметра Kaitai Struct - PullRequest
       13

Тип параметра Kaitai Struct

1 голос
/ 12 февраля 2020

Я пытаюсь передать параметр в файл ksy. Параметр имеет тип другого файла KSY. Причина в том, что мне нужно получить доступ ко всем полям из файла ksy, переданного в качестве параметра. Это возможно? Если да, не могли бы вы предоставить мне фрагмент синтаксического кода, чтобы я мог имитировать c это. Если нет, то каким будет другое решение?

Спасибо.

enter image description here

enter image description here

1 Ответ

0 голосов
/ 22 февраля 2020

Во-первых, я рекомендую всегда использовать версию разработки веб-среды разработки Kaitai Struct (https://ide.kaitai.io/devel/), а не стабильную. Стабильная IDE, развернутая в https://ide.kaitai.io/, имеет компилятор KS версии 0.8, которая действительно является самой последней версией stable , но на данный момент ей уже 2 года. Но проект находится в стадии активной разработки, новые исправления ошибок и улучшения появляются каждую неделю, поэтому стабильная Web IDE в значительной степени устарела. А благодаря недавнему усовершенствованию инфраструктуры 1012 * веб-среда разработки devel теперь перестраивается при каждом обновлении компилятора, поэтому вы можете использовать даже самые последние функции.

Однако вы не будете уметь имитировать конкретную ситуацию, которую вы описываете в Web IDE, потому что в настоящее время она не может обрабатывать типы параметров верхнего уровня i c типов (нет ловушки, в которой вы можете передавать свои собственные значения в качестве аргументов). Но это должно работать в локальной среде. Вы можете скомпилировать спецификации commontype.ksy и pty.ksy в Web IDE для целевого языка, который вы хотите использовать ( в руководстве показано, как это сделать ). Код, составляющий его, может выглядеть так (Java):

Commontype ct = new Commontype(new ByteBufferKaitaiStream(new byte[] { 80, 75 }));
Pty r = new Pty(
    new ByteBufferKaitaiStream(new byte[] { 80 }), // IO stream
    ct // commonword
);

Обратите внимание, что фактический порядок параметров в конструкторе Pty может отличаться, например, в Python приходят пользовательские параметры ( commonword) сначала, а затем объект IO. Проверьте сгенерированный код на вашем конкретном языке.

...