Sto lavorando su un linguaggio specifico del dominio (DSL) per i non programmatori. I non programmatori commettono molti errori grammaticali: sbagliano le parole chiave, non chiudono le parentesi, non terminano i blocchi, ecc.Miglioramento dei messaggi di errore di analisi ANTLR DSL
Sto usando ANTLR per generare il mio parser; fornisce un meccanismo elegante per gestire RecognitionExceptions per migliorare la gestione degli errori. Ma trovo piuttosto difficile sviluppare un buon codice di gestione degli errori per la mia DSL.
A questo punto, sto prendendo in considerazione modi per semplificare il linguaggio per rendere più semplice per me fornire agli utenti messaggi di errore di alta qualità, ma non sono davvero sicuro su come procedere. Penso di voler ridurre l'ambiguità degli errori in qualche modo, ma non sono sicuro di come implementare questa idea in una grammatica.
In che modo è possibile semplificare la lingua per migliorare i messaggi di errore di analisi per i miei utenti?
MODIFICA: Aggiornato per chiarire che mi interessano i modi per semplificare la mia lingua, non solo i suggerimenti per la gestione degli errori ANTLR in generale. (Anche se, grazie per quelli!)
Puoi darci qualche informazione in più sulla grammatica come è adesso? A cosa serve il tuo DSL e di cosa è capace? –
http://www.choiceofgames.com/blog/choicescript-intro/ Ti indicherò subito che non è il minimo in contesto ... –
Se i tuoi utenti commettono errori comuni, puoi avere la grammatica regola i token che corrispondono all'errore comune e quindi fanno in modo che tali regole emettano un messaggio di errore. –