Где я могу найти грамматику C # 3.0? - PullRequest
27 голосов
/ 13 октября 2009

Я планирую написать компилятор C # 3.0 на C #. Где взять грамматику для генерации парсера?

Предпочтительно тот, который работает с ANTLR v3 без изменений.

Ответы [ 4 ]

12 голосов
/ 14 октября 2009

Взгляните на C # Language Specification . В главе Б. Грамматика вы найдете грамматику.

7 голосов
/ 21 января 2010

Я столкнулся с ANTLR C # Грамматика на CodePlex . Это относительно новый проект, использующий ANTLR 3.2. В нем говорится, что он поддерживает C # 4.0 и лицензирован под Eclipse Public License (EPL).

Я немного поиграл с этим. У него есть куча тестовых файлов, содержащих выражения. Он поддерживает лямбды, небезопасный контекст ... как вы, естественно, ожидаете. Он анализирует файл C # и передает вам абстрактное синтаксическое дерево. Вы можете делать с ней все, что захотите.

3 голосов
/ 14 октября 2009

Взгляните на COCO / R , похоже, у них есть языковая спецификация для C # 3.0 .

3 голосов
/ 13 октября 2009

Вы ищете что-то вроде этого или этого ?

Пожалуйста, обратитесь к C # ANLTR грамматика вопрос.

...