Sto usando Happy per generare un parser.Override "Errore interno felice" - notHappyAtAll
Ho scoperto che quando mi danno pedine che abbinano una parte della grammatica ad un livello inferiore rispetto al livello superiore (ad esempio, dando espressione su di essa la propria, che non è parte di una dichiarazione), ottengo un "Errore interno felice" piuttosto che un errore di analisi.
C'è un modo per ignorare notHappyAtAll
in modo che possa stampare un messaggio di errore migliore di "Errore interno felice"? Ovviamente diverso dal modificare il file parser generato automaticamente come dovrei farlo ogni volta che ho aggiornato la grammatica.
Forse [la documentazione felice] (http://haskell.org/happy/doc/html/sec-monads.html#sec-exception) aiuta? Disclaimer: forse non lo fanno. –
Se vuoi abbinare "frammenti" piuttosto che sempre il livello più alto della tua grammatica, avrai bisogno di più simboli di avvio - vedi la sezione 2.7 del manuale Happy. –
Hai definito una direttiva di errore nella parte superiore della grammatica? Questo dovrebbe essere nella forma '% error {parseError}' - 'parseError' è una funzione definita dall'utente. Vedi il capitolo 2 del manuale. –