在lex.yy.c中查找表代表什么?

时间:2017-04-07 20:33:00

标签: c flex-lexer lex

我正在挖掘使用flex构建的词法分析器(here准确)并试图了解正在发生的事情。从来没有看过C,我放弃了尝试找到等价于understand parsers made with Bison,所以我希望在这里得到一些基本信息,从lex.yy.c中包含的查找表开始:

for(var i = 0; i < myArray.length; i++){
    myArray = myArray.map(function(obj) {
        obj.inc = i;
        return obj;
    });
}

当然也欢迎任何对生成的lex.yy.c的良好解释的引用。谢谢!

1 个答案:

答案 0 :(得分:1)

(将评论编译成答案,仅用于制作Q / A对)

这些是描述&#34;(有限)自动机&#34;的数据。或者&#34;有限状态机&#34;用于实现lexer generation-input / config文件描述的文本分析。

阅读&#34;有限自动机&#34;,例如:http://www.cs.man.ac.uk/~pjj/cs211/ho/node6.html

通常,它们描述了生成的词法分析器函数将处理输入的有限状态机的行为。您可以通过使用-v / --verbose选项运行Flex并将结果与​​表进行比较来获得一些线索。

表的精确含义因表压缩类型而异(参见选项-C)。

我(John Bollinger,但可能大多数人同意)怀疑,如果不研究(或已经知道)Flex源,任何人都可以具体告诉你这些表的含义。它或多或少是生成的词法分析器的核心思想,以保护用户不必知道这些细节。