一个简单的解决方法是覆盖您的词法分析器和解析器
reportError(...)并抛出您自己的异常,而不是让ANTLR尝试从错误的语法/输入中恢复:
grammar YourGrammar;// options/header/tokens@parser::members { @Override public void reportError(RecognitionException e) { throw new RuntimeException("I quit!n" + e.getMessage()); }}@lexer::members { @Override public void reportError(RecognitionException e) { throw new RuntimeException("I quit!n" + e.getMessage()); }}// lexer & parser rules有关错误报告(和恢复)的更多信息:https
:
//theantlrguy.atlassian.net/wiki/display/ANTLR3/Error+reporting+and+recovery



