Pergunta

Eu estou tentando escrever uma gramática em EBNF (com exceção de uma razão muito boa, ele tem que ser EBNF) e estou procurando um par de utilitários para isso - se há uma interface gráfica que pode fazer um, que seria ótimo , mas a coisa que eu estou olhando para a maioria é algo que pode verificar a gramática, por exemplo, para ver se é LALR ( n ), e em caso afirmativo, qual o valor de n é. Existem tais serviços públicos? Existem outras ferramentas úteis de escrita de gramática que eu deveria saber (não estou à procura de geradores de analisador).

Foi útil?

Solução

Tomar um passo adiante a sugestão de Steven Dee, que você pode querer verificar para fora ANTLRWorks , que é uma ferramenta de desenvolvimento GUI interativa para gramáticas ANTLR.

Outras dicas

Use TinyPG ! Seu uma incrível tudo-em-um compilador compilador com uma interface gráfica leve, onde você constrói o seu analisador com RegEx , EBNF , e escrever C # / VB código para fazer algo com o <> árvore de análise forte !

Aqui está um resumo curto e informativo que fiz anteriormente, que também liga-lo para os downloads.


Os meus entendimentos de TinyPG:

TinyPG permite escrever e desenvolver:

Tem uma IDE embutido, somente Windows (criado em C # .NET, open source) .

Ele permite que você experimentar e visualização Expressões Regulares usando o embutido ferramenta RegEx. sintaxe RegEx é suportado no .NET o que significa que até mesmo o seu analisador emitido código usa expressões regulares do .NET.

Você escreve EBNF para descrever o idioma de sua escolha (Aqui estão alguns livremente disponível BNF Grammers que descrevem linguagens de programação modernas (C, Java, JavaScript, C #, VB.NET, SQL-89)

Usando TinyPG, o RegEx , juntamente com a sua EBNF saídas de um parse-árvore (veja o diagrama) .

Agora, o que você faz com o parse-árvore? Você escreve C # / código VB (dentro TinyPG, por regra gramática BNF) para o seu Compiler / intérprete / tradutor. (dentro TinyPG , abra o arquivo "simples expression2.tpg" dentro das amostras fornecidas para ver uma demonstração de um calculadora 'compilador')

TinyPG permite que você compilar e testar o tokenizer + analisador + compilador , dentro do TinyPG IDE, e, finalmente, emite o código-fonte parser em C # .NET ou VB.NET (a sua escolha) , com ready-to-use classes.

Um excelente All-in-one Compiler Compiler para as massas. Divirta-se!

PS:. Me corrija se eu estiver errado em qualquer desta

Para verificar se uma gramática permite que um determinado algoritmo de parser, basta colocá-lo para o gerador de analisador. Em caso de LALR (1), passe a gramática para YACC para ver se ele detecta conflitos.

CoCo / R C # está ausente da lista. É simples de usar, muito versátil e especialmente útil tem geradores de código para uma grande variedade de idiomas

Coco / R para C #, Java, C ++, F #, VB.Net, Oberon, outras línguas

[1] http://www.ssw.uni-linz.ac. at / Coco /

ANTLR é um gerador de analisador GUI em Java que tem extensas capacidades de análise de gramática e factoring. Verifique o FAQ; que poderia apoiar o que você está procurando.

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