LINUX.ORG.RU

Kaitai Struct 0.5

 , , ,


7

5

После трёх месяцев разработки состоялся релиз Kaitai Struct 0.5 — языка описания форматов структур данных. Идея проекта состоит в том, что описав структуру формата файла или сетевого протокола единожды на формальном языке .ksy, можно скомплировать такое описание в исходный код парсера на любом поддерживаемом языке программирования.

Список нововведений внушительный, самые заметные из них:

  • полная поддержка C++/STL;
  • поддержка новых целевых языков PHP7 (благодаря ProtoH) и Perl;
  • генерация GraphViz-диаграмм для форматов (ранние примеры демонстрировались в галерее);
  • новые возможности языка: switch-подобная конструкция для типов (чтобы не писать много условий), атрибут doc (для генерации документации в комментариях на целевом языке), цикл repeat-until, поддержка булевых типов, поддержка операций с объектом потока из языка выражений (_io.eof, _io.size, _io.pos);
  • существенное улучшение строгости парсинга .ksy компилятором, понятные сообщения об ошибках;
  • работа консольного визуализатора на Windows.

Семейство инструментов, поддерживающих Kaitai Struct, пополнилось:

Как всегда, доступна онлайн-версия на JavaScript, в которой можно поэкспериментировать с компилятором без установки.

>>> Подробности

★★

Проверено: Falcon-peregrinus ()
Последнее исправление: sudopacman (всего исправлений: 1)

можно скомплировать такое описание в исходный код парсера на любом поддерживаемом языке программирования.

Можно, но зачем

loz ★★★★★
()
Ответ на: комментарий от loz

Можно, но зачем

Затем, чтобы когда нужно будет поддерживать импорт очередного проприетарного формата картинок-документов-чего-нибудь-подобного, не нужно было заново переписывать парсер на нужном языке. Чтобы отлаживать можно было все на удобных скриптовых языках типа Python/Ruby, а затем использовать наработки на какой-то высокоскоростной реализации на C++/Java. Чтобы иметь наглядную человекочитаемую схему формата.

GreyCat ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.