[antlr-interest] Internal error

Steve Bennett stevagewp at gmail.com
Tue Dec 4 22:42:42 PST 2007


I got this error with ANTLRWorks 1.1.5 (and .4 as well):

[17:38:49] error(10):  internal error:
c:\downloads\antlr\headerline9.g : java.util.NoSuchElementException:
no such attribute: description in template context [orPredicates
notPredicate evalPredicate(...)]
org.antlr.stringtemplate.StringTemplate.checkNullAttributeAgainstFormalArguments(StringTemplate.java:1290)
org.antlr.stringtemplate.StringTemplate.get(StringTemplate.java:814)
org.antlr.stringtemplate.StringTemplate.get(StringTemplate.java:812)
org.antlr.stringtemplate.StringTemplate.getAttribute(StringTemplate.java:696)
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.java:355)
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:131)
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:79)
org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:152)
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:714)
org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:722)
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:659)
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:81)
org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:152)
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:714)
org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:722)
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:659)
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:81)
org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:152)
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:714)
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1649)
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1640)
org.antlr.codegen.ACyclicDFACodeGenerator.walkFixedDFAGeneratingStateMachine(ACyclicDFACodeGenerator.java:137)
org.antlr.codegen.ACyclicDFACodeGenerator.genFixedLookaheadDecision(ACyclicDFACodeGenerator.java:47)
org.antlr.codegen.CodeGenerator.genLookaheadDecision(CodeGenerator.java:613)
org.antlr.codegen.CodeGenTreeWalker.block(CodeGenTreeWalker.java:974)
org.antlr.codegen.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:1804)
org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:1637)
org.antlr.codegen.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:1252)
org.antlr.codegen.CodeGenTreeWalker.block(CodeGenTreeWalker.java:1037)
org.antlr.codegen.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:753)
org.antlr.codegen.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:544)
org.antlr.codegen.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:486)
org.antlr.codegen.CodeGenTreeWalker.grammar(CodeGenTreeWalker.java:333)
org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:406)
org.antlr.Tool.processGrammar(Tool.java:347)
org.antlr.Tool.process(Tool.java:268)
org.antlr.works.generate.CodeGenerate.generate(Unknown Source)
org.antlr.works.debugger.local.DBLocal.generateGrammar(Unknown Source)
org.antlr.works.debugger.local.DBLocal.generateAndCompileGrammar(Unknown Source)
org.antlr.works.debugger.local.DBLocal.run(Unknown Source)
java.lang.Thread.run(Thread.java:619)

The code that seems to have caused it is as follows:
----
literal_equals:
    {!in_header}? => EQUALS
    | {input.LA(2) != EQUALS}? => EQUALS;
----

Am I doing something wrong? It didn't produce this error without the
third line of the above.

This apparently equivalent rule doesn't produce the error, I have just
discovered:

literal_equals:
    {!in_header || input.LA(2) != EQUALS}? => EQUALS
;


Thanks,
Steve


More information about the antlr-interest mailing list