我有许多面向位的数据包格式。 Flex / lex是面向比特的版本,而不是手动编写许多相当复杂的词法分析器,而是在寻找位级词法分析器生成器。显然,我可以直接编写 C ,但是我想知道是否存在这样的位级词法生成器。快速浏览Google之后,我发现了许多媒体解码器,但是这些解码器不是解析媒体文件,而是解析网络数据包。

另外,是否有一种方法可以在以位为导向的产品中运行flex?

最佳答案

您可以研究重新定义YY_INPUT(请参阅flex文档中的Generated Scanner),并将每个输入字节分解为各个位,然后将'0''1'用作正则表达式的字母。您可能要考虑是否可以使用YY_INPUT的简单定义来定义稍大的字母。

关于bit-manipulation - 比特流词法生成器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17317306/

10-10 23:42