Pergunta

Eu estou procurando uma ferramenta que será capaz de construir um analisador (em C #) se eu dar-lhe uma gramática BNF (ex. http://savage.net.au/SQL/sql-2003-2.bnf )

existe tal gerador de um?

Foi útil?

Solução

gramáticas Normalmente BNF são muito ambígua. ANTLR será provavelmente bom para o que você está procurando.

Outras dicas

O Visual Studio SDK realmente navios com lexer e ferramentas de geração de parser. Estes são chamados MPPG e mplex e fazem parte do Managed Babel pacote. Embora a intenção de agrupar-los com o SDK é desenvolver extensões de linguagem para Visual Studio, eles são perfeitamente utilizável para a criação de analisadores gerais de emissão de AST.

mplex e MPPG são baseados em GPLEX e GPPG (projectos de Queensland University of Technology) e são utilizados de uma forma similar à Lex e Yacc. O SDK também contém ações MSBuild para fazer a geração analisador uma parte do processo de construção regular.

Aqui está um screencast mostrando mplex e MPPG em ação:
http://msdn.microsoft.com/en-us/vstudio/cc837016.aspx

Você terá que ajustar o BNF um pouco, mas TinyPG é uma grande ferramenta.

Também dê uma olhada Ironia:

http://irony.codeplex.com/

parece muito promissor

IronMeta é um C # implementação de Alex Warth OMeta ; é um packrat PEG (análise gramatical expressão; usos tendenciosos escolha)., de modo gramáticas pode ser mais limpo do que quando se utiliza um sistema de yacc-like LALR

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top