2011-12-14 8 views
11

Estoy usando Feliz para generar un analizador.Reemplazando el "Error feliz interno" - notHappyAtAll

He encontrado que cuando le doy tokens que coinciden con una parte de la gramática en un nivel inferior al nivel superior (como expresarlo por sí mismo, eso no forma parte de un enunciado), obtengo un "Error feliz interno" en lugar de un error de análisis.

¿Hay alguna manera de anular notHappyAtAll para que pueda imprimir un mensaje de error mejor que "Error feliz interno"? Obviamente, aparte de cambiar el archivo del analizador autogenerado, tendría que hacerlo cada vez que actualicé la gramática.

+1

Tal vez [los documentos felices] (http://haskell.org/happy/doc/html/sec-monads.html#sec-exception) ayuda? Descargo de responsabilidad: tal vez no lo hacen. –

+0

Si desea hacer coincidir "fragmentos" en lugar de siempre el nivel superior de su gramática, necesitará varios símbolos de inicio; consulte la sección 2.7 del manual de Happy. –

+0

¿Ha definido una directiva de error en la parte superior de su gramática? Esto debería ser de la forma '% error {parseError}' - 'parseError' es una función definida por el usuario. Ver el Capítulo 2 del manual. –

Respuesta

1

Parece que este problema se ha solucionado en Happy 1.18.7.

Cuestiones relacionadas