GCC源代码中的C语法

我正在寻找GCC源代码中的C语法,更具体地说是yacc / bisonforms的语法。

在文件“c-parse.y”中的GCC版本3.3中找到Yacc规范中的C语法

您将无法在当前GCC源代码中找到C语法yacc / bison文件。 这是在过去,在egcs fork之前完成的。 我不能给你确切的版本和位置,但我可以告诉你它应该在2.x版本中

当前版本的GCC有自己的C解析器

版本4.3的GCC不包含明确编写的C语法。 同时进行解析和语义分析,而不将语法树作为单独的数据结构呈现。

信息来源:我阅读了GCC源代码。

几年前GCC的g ++从基于yacc(bison)的解析器切换(可能至少5年)。 他们开始使用递归的正确解析器,因为在yacc中C ++很难。

在将这个解析器用于C ++几年后,他们将C切换为使用递归正确的解析。

你将不得不返回几个版本来找到野牛格式的语法,但它就在那里。 您应该尝试google的代码搜索

gcc yyparse

更新:2012年Google代码搜索关闭

http://en.wikipedia.org/wiki/Google_Code_Search

旧:http: //yaxx.googlecode.com/svn/branches/yaxx-proc/gcc-3.4.0/gcc/c-parse.y

找到有它的gcc版本然后你应该能够在那里找到yacc / bison源文件。 不过,它会变老。

也是ANSI C Yacc语法

GCC不使用生成的解析器; 它的解析器是一个手写的递归下降解析器。

C语法可以在GCC源代码的c-parser.c文件的注释中找到。 它虽然已经说过,但它不是一个yacc / bison。