C грамматика в исходном коде GCC

Я ищу грамматику C в исходном коде GCC, более конкретно для грамматики в форме yacc/bison.

7 ответов


нашел грамматику C в спецификации Yacc в GCC версии 3.3 В файле " c-parse.y"


вы не найдете файл грамматики C yacc/bison в текущем исходном коде GCC. Это было сделано в прошлом, до того, как egcs вилка вещи. Я не могу дать вам точную версию и местоположение, но я могу сказать вам, что он должен быть в 2.х освободить

текущая версия GCC имеет свой собственный парсер C


GCC версии 4.3 не содержит явно написанной грамматики C. Синтаксический анализ и семантический анализ выполнялись одновременно, без представления синтаксического дерева в виде отдельной структуры данных.

источник информации: я прочитал исходный код GCC.


gcc g++ переключился с парсера на основе yacc (bison) несколько лет назад (вероятно, не менее 5 лет). Они начали использовать рекурсивный приличный парсер, потому что C++ трудно в yacc.

после использования этого парсера в C++ в течение нескольких лет они переключили C на синтаксический анализ, используя рекурсивный decent.

вам придется вернуться к нескольким версиям, чтобы найти грамматику в формате bison, но она там. Вы должны попробовать поиск кода google с

gcc yyparse

Update: завершение поиска кода 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 там. Но он будет старым.



GCC не использует сгенерированный парсер; его парсер-написанный от руки парсер рекурсивного спуска.


грамматику C можно найти в комментариях в С-парсер.c файл в источниках GCC. Это не yacc/bison, хотя, как уже было сказано.