lex.yy.c中的“yy”代表什么?

时间:2009-08-19 14:34:51

标签: lex flex-lexer

lex.yy.c中的“yy”代表什么?

4 个答案:

答案 0 :(得分:15)

Lex意在与Yacc合作使用。史蒂芬约翰逊的论文 Yacc: Yet Another Compiler Compiler 详细介绍了这一历史和细节。 Yacc解析器仅使用以“yy”开头的名称 - 除了简单地希望命名空间之外没有明显的含义。在lex.yy.c中的“yy”表示lex输出用于yacc解析器。

答案 1 :(得分:1)

我相信“yy”用于表示这是一个生成的代码文件。

  

通常,lex实用程序将它生成的程序写入文件lex.yy.c    - Reference

答案 2 :(得分:0)

我认为它来自Yacc,一个较老的解析器生成器。

答案 3 :(得分:0)

可能来自YACC(Yet Another Compiler Compiler),它与Lex一起用来实现相当多的编译器和类似的程序。 Gnu等价物是Bison和Flex,现在看起来更加普遍,所以连接可能并不明显。