Подтвердить что ты не робот

C в исходном коде GCC

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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

Вам нужно будет вернуться к нескольким версиям, чтобы найти грамматику в формате бизонов, но она есть. Вы должны попробовать выполнить поиск кода 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. Однако он будет старым.

Ответ 6

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

Ответ 7

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