日食中的ANTLR插件

时间:2014-03-12 23:57:44

标签: eclipse antlr

抱歉我的英语!我在eclipse中安装plagin,但是我运行我的小项目我有这个问题。为什么它不起作用?

  

错误(10):内部错误:无法使用属性indirectDelegates   方法get / isIndirectDelegates来自org.antlr.tool.Grammar实例:   显示java.lang.NullPointerException   java.util.Objects.requireNonNull(未知来源)   java.util.ArrayList.removeAll(未知来源)   org.antlr.tool.CompositeGrammar.getIndirectDelegates(CompositeGrammar.java:222)   org.antlr.tool.Grammar.getIndirectDelegates(Grammar.java:2620)   sun.reflect.NativeMethodAccessorImpl.invoke0(原生方法)   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)   java.lang.reflect.Method.invoke(未知来源)   org.antlr.stringtemplate.language.ASTExpr.invokeMethod(ASTExpr.java:564)   org.antlr.stringtemplate.language.ASTExpr.rawGetObjectProperty(ASTExpr.java:515)   org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:417)   org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.java:351)   org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:136)   org.antlr.stringtemplate.language.ActionEvaluator.templateApplication(ActionEvaluator.java:216)   org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:126)   org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:84)   org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:149)   org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:705)   org.antlr.stringtemplate.language.ASTExpr.writeTemplate(ASTExpr.java:750)   org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:680)   org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:660)   org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:86)   org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:149)   org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:705)   org.antlr.stringtemplate.language.ASTExpr.writeTemplate(ASTExpr.java:750)   org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:680)   org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:660)   org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:86)   org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:149)   org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:705)   org.antlr.stringtemplate.language.ASTExpr.writeTemplate(ASTExpr.java:750)   org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:680)   org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:660)   org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:86)   org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:149)   org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:705)   org.antlr.codegen.CodeGenerator.write(CodeGenerator.java:1281)   org.antlr.codegen.Target.genRecognizerFile(Target.java:94)   org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:466)   org.antlr.Tool.generateRecognizer(Tool.java:641)   org.antlr.Tool.process(Tool.java:454)

3 个答案:

答案 0 :(得分:25)

ANTLR 3在与Java 8一起使用时会产生此消息。但是,它似乎不会影响实际输出。在新版本的ANTLR 3中发布修复程序之前,您可以忽略该消息,也可以使用Java 7。

相关问题:
#151: NPE in CompositeGrammer.getIndirectDelegates in Java 8

答案 1 :(得分:1)

我在使用Java 1.8运行ANTLR 3.1.1时遇到了类似的错误。在我的Ant Build文件中,我更改了" java"的属性。任务到" failonerror =" false"。我仍然收到错误消息,但我的构建停止失败并产生了我想要的输出。

答案 2 :(得分:0)

对于Java 8和antlr 3,将jar更改为“ antlr-3.5.2-complete.jar”,错误就会消失。

  1. 将ANTLR插件更新到版本2.1.2
  2. 转到项目属性-> ANTLR->建筑物
  3. 取消选中“启用项目特定设置”
  4. 单击“配置工作区设置”-> ANTLR->生成器->构建
  5. 删除已安装的3.5.2软件包
  6. 添加已安装的软件包,并将其指向“ antlr-3.5.2-complete.jar”文件夹
  7. 保存并返回以启用项目特定设置。
  8. 在“常规”->“ ANTLR运行时”中,选择3.5.2