有人知道yy的意思吗?


10

由于历史问题是关于主题的,因此我想问一个困扰了我一段时间的人,但我认识的人似乎都不知道答案。有谁知道前缀yy的历史意义是什么?lex生成的大多数变量和函数都以lex开头,例如yylvalyylex()。我还记得看到一个在yyrsa某处命名的实用程序,但是现在在任何地方都找不到对该实用程序的引用。想知道的人问问!


5
我认为这是一个vim问题:P
xenoterracide 2010年

Answers:


10

我认为这与yacc有关,后者的文件结尾为.y,并且需要一个名为的函数yylex



6
在Michael链接的SO帖子中引用@peterb的回复,“除了简单地想要一个名称空间之外,没有讨论明显的意义。lex.yy.c中的“ yy”表示lex输出旨在用于yacc解析器。谢谢你们!
蒂莫西

2

正如其他人在此处以及在StackOverflow上指出的那样,它可能只是实用程序y名称的两倍yacc,用于生成唯一的名称空间。

POSIX标准储备的命名空间开始都yyYYyacc以下段落

名称具有任意长度,由字母,句点(.),下划线(_)和非首字母数字组成。大写和小写字母是不同的。符合要求的应用程序不得使用以此类推的名称开头yyYY由于yacc解析器使用此类名称的名称。许多名称出现在的最终输出中yacc,因此应选择它们以符合C编译器要使用的其他任何规则。特别是它们出现在#define语句中。

不幸的是,POSIX文档在将任何形式的历史与为什么事物成为现在的样子联系起来时非常不擅长。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.