2017-03-07 1 views
1

Comment puis-je détecter par programmation les erreurs générées par l'analyseur? Par exemple donné cette grammaire:détecter les erreurs d'analyse pendant l'analyse

s : 'hello' ; 

et ce programme avec entrée: "foo bar"

ParseTree tree = parser.s(); 

l'analyseur imprimerait sur "line 1:0 mismatched input 'foo' expecting 'hello'". Existe-t-il un moyen de détecter l'échec de l'analyse par programme? Il ne semble pas y avoir d'exception d'aucune sorte.

Répondre

0

Mettre en oeuvre l'interface ANTLRErrorListener et l'ajouter à l'analyseur:

Parser#addErrorListener(ANTLRErrorListener); 

En règle générale, veulent d'abord supprimer l'auditeur de la console ouput par défaut:

Parser#removeErrorListeners()