Я ищу грамматику C в исходном коде GCC, больше специально для грамматики в форме yacc/bison.
Обнаружил грамматику C в спецификации Yacc в GCC версии 3.3 в файле "c-parse.y"
GCC версии 4.3 не содержал явно написанной грамматики C. Синтаксический анализ и семантический анализ выполнялись одновременно, без представления синтаксического дерева как отдельной структуры данных.
Источник информации: Я читал исходный код GCC.
GCC GCC перешел с парсера на основе yacc (bison) много лет назад (вероятно, по крайней мере, 5 лет). Они начали использовать рекурсивный приличный парсер, потому что C ++ сложен в yacc.
После использования этого синтаксического анализатора для C ++ в течение нескольких лет они переключили C на синтаксический анализ, также используя рекурсивный анализ.
Вам придется вернуться на несколько версий, чтобы найти грамматику в формате bison, но она там есть. Вам следует попробовать поиск кода Google с помощью
gcc yyparse
Обновление: отключение поиска кода Google в 2012 г.
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 исходный файл. Но он будет старым.
Вы не найдете файл yacc / bison грамматики C в текущем исходном коде GCC. Это было сделано раньше, до форка egcs. Я не могу назвать вам точную версию и местоположение, но могу сказать, что он должен быть в версии 2.x
Текущая версия GCC имеет свой собственный синтаксический анализатор C
GCC не использует сгенерированный синтаксический анализатор; его синтаксический анализатор представляет собой рукописный синтаксический анализатор с рекурсивным спуском.