我所知道的是它阻止了antlr的生成,我很抱歉。这是日志文件:
(10): internal error: /Bridge/bridge.g : java.lang.IllegalStateException: java.lang.NullPointerException
org.deved.antlride.runtime.AntlrErrorListener$DynamicToken.invokeMethod(AntlrErrorListener.java:59)
org.deved.antlride.runtime.AntlrErrorListener$DynamicToken.getLine(AntlrErrorListener.java:64)
org.deved.antlride.runtime.AntlrErrorListener.report(AntlrErrorListener.java:131)
org.deved.antlride.runtime.AntlrErrorListener.message(AntlrErrorListener.java:115)
org.deved.antlride.runtime.AntlrErrorListener.warning(AntlrErrorListener.java:99)
org.antlr.tool.ErrorManager.grammarWarning(ErrorManager.java:742)
org.antlr.tool.ErrorManager.grammarWarning(ErrorManager.java:757) org.antlr.tool.Grammar.parseAndBuildAST(Grammar.java:655)
org.antlr.Tool.getRootGrammar(Tool.java:626) org.antlr.Tool.process(Tool.java:459)
org.deved.antlride.runtime.Tool2.main(Tool2.java:24)
最佳答案
我在使用逻辑公式的简单语法时遇到了同样的错误。对我来说,问题是 ANTLR 找不到明显的开始规则,因为我对预期的开始规则进行了递归。添加一条指向递归规则的新规则就完成了这项工作(请参阅 http://thesoftwarelife.blogspot.com/2008/07/antlr-frustrations.html )。
遗憾的是ANTLR IDE没有正确转发错误消息。在命令行上我得到:
warning(138): Formula.g:0:1: grammar Formula: no start rule (no rule can obviously be followed by EOF)
关于java - 神秘的 ANTLR 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9406990/