Генератор синтаксического анализа, который выводит C # с учетом грамматики BNF?[закрыто]

StackOverflow https://stackoverflow.com/questions/153572

  •  03-07-2019
  •  | 
  •  

Вопрос

Я ищу инструмент, который сможет создать синтаксический анализатор (на C #), если я дам ему грамматику BNF (например. http://savage.net.au/SQL/sql-2003-2.bnf)

Существует ли такой генератор?

Это было полезно?

Решение

Обычно грамматики BNF слишком двусмысленны.ANTLR, вероятно, подойдет для того, что вы ищете.

Другие советы

Тот Самый Пакет SDK для Visual Studio на самом деле поставляется с инструментами генерации lexer и parser.Они называются MPPG и MPLex и являются частью Управляемый Вавилонский Столб посылка.Хотя целью их объединения с SDK является разработка языковых расширений для Visual Studio, они идеально подходят для создания общих анализаторов, использующих AST.

MPLex и MPPG основаны на GPLEX и GPPG (проекты Квинслендского технологического университета) и используются аналогично Lex и Yacc.SDK также содержит действия MSBuild, позволяющие сделать генерацию синтаксического анализатора частью обычного процесса сборки.

Вот скринкаст, показывающий MPLex и MPPG в действии:
http://msdn.microsoft.com/en-us/vstudio/cc837016.aspx

Вам придется немного подправить BNF, но TinyPG это отличный инструмент.

Также взгляните на Иронию:

http://irony.codeplex.com/

кажется очень многообещающим

Железный металл является реализацией на C # Алекса Варта ОМета;это привязка к пакету (синтаксический анализ грамматики выражения;использует предвзятый выбор), поэтому грамматики могут быть чище, чем при использовании системы LALR, подобной yacc.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top