我有一个语法,它会传递不匹配的输入异常,如传递错误的输入时所预期的那样,但是问题是它试图恢复导致Java.lang.outofmemoryexception的行为,从而终止了我不希望发生的线程。

我该如何处理?我应该重写哪个函数,以便它不尝试恢复,而是通知并继续?

最佳答案

您可以覆盖解析器或词法分析器的reportError(...)方法,并引发异常,而不是让ANTLR(试图恢复)。

另请参见:ANTLR 3.0 Error Reporting and Recovery

10-08 11:10