问题描述
目前,我正在使用ANTLR V3.1.1,现在我已迁移到ANTLR V3.3。之后,我得到以下错误:
发生意外的异常:
java.lang.NoSuchMethodError:org.antlr.runtime.tree.CommonTreeNodeStream.getNodeIndex(Ljava / lang / Object;)I
在
* .expression.antlr.FocusCommonTreeNodeStream.getNodeIndex(FocusCommonTreeNodeStream.java:16)
请帮助我解决这个问题。
提前致谢..!!
解决方法
好的,通过查看原始帖子下的评论,我会在此处出于完整性的考虑将答案发布在这里,以防人们在搜索网络后找到此问答。
出现此异常的原因是因为您只是替换了ANTLR jar,而没有从语法中重新生成词法分析器和解析器。 ANTLR v3.1.1生成的已编译词法分析器和解析器文件需要ANTLR v3.1.1运行时类。它们不会(必需)与其他ANTLR运行时版本一起使用。
因此,如果您想升级到ANTLR v3.3,则需要使用ANTLR v3.3中的“ 0”从语法文件中重新生成(新的)词法分析器。