我有许多面向比特的数据包格式。而不是手工编写许多相当复杂的词法分析器,我正在寻找一个位级lexer生成器,一个面向位的版本的flex / lex说。显然我可以直接写 C ,但我想知道这样的位级词法分析器是否存在。快速谷歌之后,我找到了许多媒体解码器等,但是,我不是解析媒体文件,而是解析网络数据包。
或者有一种方法可以在面向位的make中运行flex吗?
答案 0 :(得分:1)
您可以查看重新定义YY_INPUT
(请参阅flex
文档中的 Generated Scanner )并将每个输入字节分解为各个位并使用'0'
和'1'
作为正则表达式的字母表。您可能需要考虑是否可以使用YY_INPUT
的简单定义来定义稍大的字母表。