Parsing lex/flex可以用来解析二进制格式的源文件吗?

Parsing lex/flex可以用来解析二进制格式的源文件吗?,parsing,text,binary,format,lex,Parsing,Text,Binary,Format,Lex,当我学习lex工具时,我发现它有助于以文本格式解析源文件,如构建新的编程语言等。我还需要使用它构建一个工具来分析一些二进制输入流,如编解码器/解码器 lex/flex/yacc/bison是否支持这些需求,它们是否有特殊的命令行选项和语法来支持这些需求 谢谢 Flex(以及我熟悉的其他lex实现)对非ascii字符没有问题,包括NUL字符。您可能必须使用8bit选项,尽管这是默认选项,除非您请求快速状态表 但是,大多数二进制格式使用长度前缀的可变长度字段,这些字段不能用正则表达式表示。此外,固定

当我学习lex工具时,我发现它有助于以文本格式解析源文件,如构建新的编程语言等。我还需要使用它构建一个工具来分析一些二进制输入流,如编解码器/解码器

lex/flex/yacc/bison是否支持这些需求,它们是否有特殊的命令行选项和语法来支持这些需求

谢谢

Flex(以及我熟悉的其他lex实现)对非ascii字符没有问题,包括NUL字符。您可能必须使用
8bit
选项,尽管这是默认选项,除非您请求快速状态表


但是,大多数二进制格式使用长度前缀的可变长度字段,这些字段不能用正则表达式表示。此外,固定长度TB字段与上下文相关是很常见的;您可以使用开始条件在flex中构建状态机,但这需要大量工作,而且可能会浪费您的时间和flex的功能。

对于带有“长度前缀可变长度”字段的二进制文件,您建议使用哪种工具来代替lex?