Estoy tratando de escribir una gramática en EBNF (salvo una buena razón, tiene que ser EBNF) y estoy buscando un par de utilidades para ello - si hay una interfaz GUI que puede hacer una, que sería genial, pero lo que estoy buscando es algo que pueda verificar la gramática, por ejemplo, para ver si es LALR (n), y si es así, cuál es el valor de n. ¿Existen tales servicios? ¿Hay alguna otra herramienta útil para escribir gramática que deba conocer (no estoy buscando generadores de analizadores sintácticos)?Grammar Writing Tools
Respuesta
Tomando la sugerencia de Steven Dee un paso más allá, es posible que desee comprobar ANTLRWorks, que es una herramienta de desarrollo de GUI interactiva para gramáticas ANTLR.
Para comprobar si una gramática permite un cierto algoritmo de analizador, simplemente colóquelo en el generador del analizador. En el caso de LALR (1), pase la gramática a YACC para ver si detecta conflictos.
ANTLR es un generador de analizador de GUI en Java que tiene amplias capacidades para el análisis gramatical y factorización. Verifique las preguntas frecuentes; podría ser compatible con lo que estás buscando.
Use TinyPG! Es un C#/VB código increíble todo-en-uno compilador compilador con una interfaz gráfica de usuario ligero, en el que construir su analizador con RegEx, EBNF, y escribir para hacer algo con el árbol de análisis!
Aquí hay un resumen breve e informativo que hice anteriormente, que también lo vincula a las descargas.
Mis entendimientos de TinyPG:
TinyPG le permite escribir & desarrollar:
- Definir Terminales usando Regular Expressions.
- Definir no -terminales y analizador de reglas en Extended BNF meta-syntax.
- Escribir Compilador código en C# o VB, dentro TinyPG.
Tiene un IDE incorporado, sólo Windows (creado en C# .NET, de código abierto).
Permite que usted pruebe & vista previa de las expresiones regulares utilizando la herramienta RegEx incorporado. La sintaxis de RegEx es compatible con .NET, lo que significa que incluso su código del analizador utiliza .NET's Regular Expressions.
Escribes EBNF para describir el idioma de su elección (Éstos son algunos de libre disposición BNF Grammers that describe modern programming languages (C, Java, JavaScript, C#, VB.NET, SQL-89)
Usando TinyPG, su RegEx junto con su EBNF da salida a una árbol de análisis sintáctico(see this diagram).
Ahora, ¿qué hacer con el árbol de análisis sintáctico? Escribes C#/código VB(dentro de TinyPG, según la regla de la gramática BNF) para su compilador/intérprete/traductor .(dentro TinyPG, abra el archivo "simple expression2.tpg" dentro de las muestras proporcionadas a ver una demostración de una calculadora 'compilador')
TinyPG le permite compilar y probar sutokenizer + analizador + compilador, dentro del IDE TinyPG, y finalmente se da salida al código fuente analizador en C# .NET o VB.NET (a su elección), con listas para su uso clases.
Excelente compilador todo en uno Compilador para las masas. ¡Disfrutar!
PD: Corrígeme si me equivoco en algo de esto.
gran respuesta, aplausos. –
CoCo/R C# no aparece en la lista. Es fácil 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++, C#, VB.Net, Oberon, otros idiomas
- 1. Ruby Grammar
- 2. Depurando Pyparsing Grammar
- 3. Open Source Grammar Checker
- 4. Git push detiene en "Writing Objects: 100%"
- 5. Scala Parser Combinator, ambiguous Grammar & Parse Forest
- 6. Life Cycle Tools Suite
- 7. WSDL Generation Tools
- 8. syntax aware diff tools?
- 9. Redgate SQL Tools
- 10. Free MSI Authoring tools
- 11. Delphi Profiling tools
- 12. PHP Refactoring Tools
- 13. Tibco Unit Testing tools
- 14. ¿Cómo desinstalar IronPython Tools?
- 15. Mysql Visualization Tools
- 16. XML binding tools for Android
- 17. NoClassDefFoundError con clojure tools logging
- 18. Google Performance Tools (profiler) tutorial
- 19. jQuery Tools Overlay Mask Problema
- 20. Heatmap Tools For Web Apps
- 21. Vb6 UI Automated Testing tools?
- 22. Titanium vs The Native Tools
- 23. Software Testing Tools - for java
- 24. Comparar jQuery UI contra jQuery Tools
- 25. comportamiento console.log extraño en Chrome Developer Tools
- 26. jQuery tools: ¿Cómo cerrar una superposición?
- 27. Superposición de jQuery Tools y evento jQuery.live
- 28. ¿Debo aprender Firebug o IE8 Developer Tools?
- 29. No se puede actualizar Android SDK Tools
- 30. jQuery Tools -> Tooltip destroy method?
En caso de que alguien más se preguntara: http://en.wikipedia.org/wiki/EBNF –