Pregunta

Estoy tratando de escribir una gramática en EBNF (salvo una muy buena razón, tiene que ser EBNF) y estoy buscando un par de utilidades para ello; si hay una interfaz GUI que pueda hacer una, sería genial , pero lo que más busco es algo que pueda verificar la gramática, por ejemplo, para ver si es LALR ( n ) y, de ser así, cuál es el valor de n es. ¿Existen tales utilidades? ¿Hay alguna otra herramienta útil para escribir gramática que deba conocer? (No estoy buscando generadores de analizadores sintácticos).

¿Fue útil?

Solución

Llevando la sugerencia de Steven Dee un paso más allá, es posible que desees consultar ANTLRWorks , que es una herramienta interactiva de desarrollo de GUI para gramáticas ANTLR.

Otros consejos

¡Usa TinyPG ! Es un increíble compilador todo en uno compilador con una GUI liviana, donde construye su analizador con RegEx , EBNF y escribe Código C # / VB para hacer algo con el árbol de análisis

Aquí hay un resumen breve e informativo que hice antes, que también lo vincula a las descargas.


Mi comprensión de TinyPG:

TinyPG le permite escribir & amp; desarrollar:

Tiene un IDE incorporado, solo Windows (creado en C # .NET, código abierto) .

Te permite probar & amp; obtenga una vista previa de Expresiones regulares utilizando la herramienta RegEx incorporada. La sintaxis RegEx es compatible con .NET, lo que significa que incluso su código analizador generado usa Expresiones regulares de .NET .

Usted escribe EBNF para describir el idioma de su elección (Aquí hay algunos disponibles gratuitamente Grammers BNF que describen lenguajes de programación modernos (C, Java, JavaScript, C #, VB.NET, SQL-89)

Usando TinyPG, su RegEx junto con su EBNF genera un árbol de análisis (vea este diagrama) .

Ahora, ¿qué haces con el árbol de análisis? Escribe código C # / VB (dentro de TinyPG, según la regla de gramática BNF) para su Compilador / Intérprete / Traductor. (dentro de TinyPG , abra el archivo " simple expression2.tpg " dentro de las Muestras proporcionadas para ver una demostración de una calculadora 'compilador')

TinyPG le permite compilar y probar su tokenizer + parser + complier , dentro del IDE de TinyPG, y finalmente genera el código fuente del analizador en C # .NET o VB.NET (su elección) , con clases listas para usar .

Un excelente Compilador todo en uno Compilador para las masas. ¡Disfruta!

PD: corrígeme si me equivoco en algo de esto.

Para verificar si una gramática permite un cierto algoritmo analizador, simplemente colóquelo en el generador analizador. En el caso de LALR (1), pase la gramática a YACC para ver si detecta conflictos.

CoCo / R C # no se encuentra en la lista. Es simple de usar, muy versátil y especialmente útil, tiene generadores de código para una gran variedad de idiomas

Coco / R para C #, Java, C ++, F #, VB.Net, Oberon, otros idiomas

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

ANTLR es un generador de analizador GUI en Java que tiene amplias capacidades para el análisis gramatical y la factorización. Consulte las preguntas frecuentes; podría apoyar lo que estás buscando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top