Grammar redação [fechado]
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).
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:
- Definir Terminais usando Expressões Regulares .
- Definir Não-terminais e regras do analisador em Extensão BNF meta-sintaxe.
- Write Compiler código em C # ou VB , dentro TinyPG.
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 ??em>
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
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.