2016-09-18 7 views
1

Когда я изучаю инструмент lex, я нашел, что он помогает анализировать исходные файлы в текстовом формате, например, строить новые языки программирования и т. Д. Я также могу использовать его для создания инструмента для анализа некоторых двоичных потоков ввода, таких как кодеки/декодеры ,Может ли lex/flex использоваться для разбора исходных файлов двоичного формата?

Поддерживает ли lex/flex/yacc/bison такие требования, есть ли у них специальные параметры командной строки и синтаксис, чтобы включить это?

Спасибо!

ответ

1

Flex (и другие лексические имплантации, с которыми я знаком) не имеют проблем с символами без ascii, включая символ NUL. Возможно, вам придется использовать опцию 8bit, хотя это значение по умолчанию, если вы не запрашиваете быстрые таблицы состояний.

Однако в большинстве двоичных форматов используются поля длины переменной длины с префиксом, которые не могут быть выражены в регулярном выражении. Более того, довольно часто для контекстно-зависимых полей fixed-lengtb характерен контекст; вы можете построить конечный автомат в flex с использованием условий запуска, но это большая работа и, скорее всего, будет пустой тратой времени и возможностями Flex.

+1

Какой инструмент вы бы порекомендовали для двоичных файлов с полями длины с префиксом переменной длины вместо lex? – Janthelme

 Смежные вопросы

  • Нет связанных вопросов^_^