我正在挖掘使用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的良好解释的引用。谢谢!
答案 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源,任何人都可以具体告诉你这些表的含义。它或多或少是生成的词法分析器的核心思想,以保护用户不必知道这些细节。