[antlr-interest] how to find the grammar line in error for [error(104): cannot find an attribute name in attribute declaration]

Douglas Godfrey douglasgodfrey at gmail.com
Mon Sep 13 00:01:50 PDT 2010


I get multiple instances of error 104 followed by a crash whenever I try to
generate my grammar.
The grammar is 1200 lines and uses many rule input and return values.
How do I identify the line that is causing the error.

[02:48:17] error(104):  cannot find an attribute name in attribute
declaration
[02:48:17] java.lang.StringIndexOutOfBoundsException: String index out of
range: -1
    at java.lang.String.charAt(String.java:558)
    at org.antlr.tool.Attribute.extractAttribute(Attribute.java:99)
    at org.antlr.tool.Attribute.<init>(Attribute.java:47)
    at org.antlr.tool.AttributeScope.addAttributes(AttributeScope.java:122)
    at
org.antlr.grammar.v2.DefineGrammarItemsWalker.ruleScopeSpec(DefineGrammarItemsWalker.java:1052)
    at
org.antlr.grammar.v2.DefineGrammarItemsWalker.rule(DefineGrammarItemsWalker.java:891)
    at
org.antlr.grammar.v2.DefineGrammarItemsWalker.rules(DefineGrammarItemsWalker.java:576)
    at
org.antlr.grammar.v2.DefineGrammarItemsWalker.grammarSpec(DefineGrammarItemsWalker.java:361)
    at
org.antlr.grammar.v2.DefineGrammarItemsWalker.grammar(DefineGrammarItemsWalker.java:193)
    at org.antlr.tool.Grammar.defineGrammarSymbols(Grammar.java:702)
    at
org.antlr.tool.CompositeGrammar.defineGrammarSymbols(CompositeGrammar.java:351)
    at org.antlr.tool.Grammar.setGrammarContent(Grammar.java:579)
    at
org.antlr.works.grammar.antlr.ANTLRGrammarEngineImpl.createNewGrammar(ANTLRGrammarEngineImpl.java:192)
    at
org.antlr.works.grammar.antlr.ANTLRGrammarEngineImpl.createParserGrammar(ANTLRGrammarEngineImpl.java:225)
    at
org.antlr.works.grammar.antlr.ANTLRGrammarEngineImpl.createCombinedGrammar(ANTLRGrammarEngineImpl.java:203)
    at
org.antlr.works.grammar.antlr.ANTLRGrammarEngineImpl.createGrammars(ANTLRGrammarEngineImpl.java:165)
    at
org.antlr.works.grammar.antlr.ANTLRGrammarEngineImpl.analyze(ANTLRGrammarEngineImpl.java:272)
    at
org.antlr.works.grammar.engine.GrammarEngineImpl.analyze(GrammarEngineImpl.java:325)
    at org.antlr.works.grammar.CheckGrammar.run(CheckGrammar.java:70)
    at java.lang.Thread.run(Thread.java:613)


More information about the antlr-interest mailing list