GCC源代码中的C语法

时间:2010-04-27 12:24:16

标签: c gcc grammar yacc bison

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

7 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:10)

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

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

答案 2 :(得分:7)

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

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

答案 3 :(得分:7)

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

在C ++中使用这个解析器好几年之后,他们还将C转换为使用recursive decent进行解析。

您必须返回多个版本才能以野兔格式找到语法,但它就在那里。您应该尝试使用

进行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源文件。但它会很老。

答案 4 :(得分:5)

答案 5 :(得分:4)

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

答案 6 :(得分:0)

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