[antlr-interest] missing template tokenRefBangTrack.st

David Sweet edsweet at swbell.net
Wed Feb 27 08:54:14 PST 2008


Hi Chris,

In every rule where you have both a tree rewrite ( -> ^(...) ) and use 
!, get rid of the !, as the tree rewrite takes care of that, and you get 
this weirdo error otherwise.

EG: Change this:

ifStatement
: IF expression (SEMI!|COMMA!)? (statement+ (COMMA!)?)? 
(elseIfStatement)* elseStatement? END -> ^(NODE_IF expression statement* 
elseIfStatement* elseStatement)
;

TO this:

ifStatement
: IF expression (SEMI|COMMA)? (statement+ (COMMA)?)? (elseIfStatement)* 
elseStatement? END -> ^(NODE_IF expression statement* elseIfStatement* 
elseStatement)
;


Regards,

David Sweet

Chris Snyder wrote:
>
> I’ve made some tweaks to a grammar of mine today and I’m getting the 
> error below in Antlrworks when I debug or try to generate code. Any 
> ideas as to what I should be looking for? Grammar is attached.
>
> Thanks,
>
> Chris
>
> error(10): internal error: C:\temp\ANTLR\MScript.g : 
> java.lang.IllegalArgumentException: Can't find template 
> tokenRefBangTrack.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.atom(CodeGenTreeWalker.java:1965)
>
> org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:1641)
>
> org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:1490)
>
> org.antlr.codegen.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:1252)
>
> org.antlr.codegen.CodeGenTreeWalker.block(CodeGenTreeWalker.java:1037)
>
> org.antlr.codegen.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:1791)
>
> 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.generate.CodeGenerate.run(Unknown Source)
>
> java.lang.Thread.run(Unknown Source)
>
> T-VEC Technologies, Inc.
>
> P.O. Box 8572
>
> Delray Beach, FL 33482
>
> w) (561) 416-0104
>
> f) (561) 620-8569
>


More information about the antlr-interest mailing list