He estado ayudando a aumentar un lenguaje propietario de veintitantos años dentro de mi empresa. Es un gran lenguaje completo de Turing. Traducirlo a otro régimen gramatical (como Antlr) no es una opción (no puedo decidir esto).¿Hay depuradores gramaticales Yacc?
En su mayor parte, la extensión de la gramática ha ido sin problemas. Pero de vez en cuando voy a conseguir una reducción-reducción o reducción por desplazamiento que
- es difícil de eliminar
- a veces simplemente no tiene sentido (a mi débil cerebro)
Después de un montón de mirar fijamente a y.output archivos y refactorizaciones gramaticales experimentales, usualmente llegué a donde quería ir. A veces he tenido que hacer compromisos insatisfactorios.
Entonces, ¿hay alguna herramienta que pueda absorber una gramática de yacc, que mejore la navegación, la experimentación y permita la depuración de los cambios?
Si agrego una producción, me gustaría ver algo más que "producción atómica que se usa en todas partes" (identificador de pensamientos) "conflictos con la regla foo" (sí, hay más información, s/r, r/r, que eso, pero creo que entiendes). Sería bueno tener algún indicio de la interacción más allá de ponerme la gorra de pensar e intentar imaginar una pila de símbolos y una máquina de estados.
Actualización: supongo que debería aclarar. Usamos Berkeley Yacc. He estado probando usando una versión reciente de Bison. Para la salida, he compilado la gramática con --report = itemset.
Mi objetivo con este post es buscar a externos instrumentos que Aumentados las instalaciones de depuración de la gramática que vienen listas con yacc. Hoy es doloroso con el conjunto predeterminado. Ayúdame a encontrar mejores herramientas interactivas, como las que puedes usar con Antlr.
No estoy seguro de lo que quieres decir. Con nuestros dos yaccs, -d significa "generar un archivo de encabezado para las macros de token". Acabo de agregar más información sobre el uso del interruptor --report = itemset. ¿Es este el tipo de cosa que quieres decir? Genera un archivo, y.output lleno de toda la información de transición de estado. Lo estoy usando, pero esperaba una herramienta más poderosa e interactiva. –
Jerry tiene razón, los conflictos S/R no son necesariamente errores. Casi todas las gramatías reales tienen un montón de ellas. – DigitalRoss