[antlr-interest] Bug in ANTLR 3.0b6

Vincent Isambart vincent.isambart at gmail.com
Thu Feb 8 02:42:34 PST 2007


Hi,

I'm a new user of ANTLR, and after reading some of the book, I've been
playing a little with ANTLR 3.0b6 and I ran into a little problem:
ANTLR Parser Generator  Version 3.0b6 (Jan 31, 2007)  1989-2007
error(10):  internal error: Test.g :
java.lang.IllegalArgumentException: Can't find template
matchSetTrack.st
org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGroup.java:485)
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:372)
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:384)
org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGroup.java:464)
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:372)
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:384)
org.antlr.codegen.CodeGenTreeWalker.getTokenElementST(CodeGenTreeWalker.java:160)
org.antlr.codegen.CodeGenTreeWalker.set(CodeGenTreeWalker.java:2557)
org.antlr.codegen.CodeGenTreeWalker.atom(CodeGenTreeWalker.java:2243)
org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:1370)
org.antlr.codegen.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:1115)
org.antlr.codegen.CodeGenTreeWalker.block(CodeGenTreeWalker.java:999)
org.antlr.codegen.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:725)
org.antlr.codegen.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:516)
org.antlr.codegen.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:458)
org.antlr.codegen.CodeGenTreeWalker.grammar(CodeGenTreeWalker.java:305)
org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:415)
org.antlr.Tool.processGrammar(Tool.java:329)
org.antlr.Tool.process(Tool.java:266)
org.antlr.Tool.main(Tool.java:69)

I reduced my grammar to this simple 3 lines code:
grammar Test;
options { output = AST; }
a: ('1'|'2') -> ;

The internal error disapears if I change the ouput type or remove
either the | or the ->.

And by the way is there a way to have org.antlr.Tool exit in error
(shell return code != 0) when there is an error in the grammar?

Cheers,
Vincent Isambart


More information about the antlr-interest mailing list