[antlr-interest] ANTLR3 Crash when building template output (tree grammar)

Kailey Joanette kaileyjo at bigbluebubble.com
Wed Mar 21 11:46:15 PDT 2007


Seems this is already a listed bug. it has to do with trying to do this:

 

equalityExpression

    :   i1=instanceOfExpression ( o=('==' | '!=') i2=instanceOfExpression )*


                -> ^(EXPRESSION_EQUALITY $i1 ($o $i2)*)

                ;

 

My question then. would this be equivalent (at least this compiles):

 

equalityExpression

    :   i1=instanceOfExpression ( (o1='==' | o2='!=')
i2=instanceOfExpression )* 

                -> ^(EXPRESSION_EQUALITY $i1 ($o1? $o2? $i2)*)

                ;

Kailey 

I get the following when compiling my java tree grammar with antlr.  The
weird part is if I remove all the tree rewrites below a certain one it works
fine.  It doesn't seem to matter what I have as a rule on the one that kills
it.  Any ideas?

 

error(10):  internal error: Java.g : java.lang.IllegalArgumentException:
Can't find template matchSetTrack.st

org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGr
oup.java:485)

org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGro
up.java:372)

org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGro
up.java:384)

org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGr
oup.java:464)

org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGro
up.java:372)

org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGro
up.java:384)

org.antlr.codegen.CodeGenTreeWalker.getTokenElementST(CodeGenTreeWalker.java
:160)

org.antlr.codegen.CodeGenTreeWalker.set(CodeGenTreeWalker.java:2573)

org.antlr.codegen.CodeGenTreeWalker.atom(CodeGenTreeWalker.java:2259)

org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:1822)

org.antlr.codegen.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:1152)

org.antlr.codegen.CodeGenTreeWalker.block(CodeGenTreeWalker.java:1000)

org.antlr.codegen.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:2414)

org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:1856)

org.antlr.codegen.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:1152)

org.antlr.codegen.CodeGenTreeWalker.block(CodeGenTreeWalker.java:1000)

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:416)

org.antlr.Tool.processGrammar(Tool.java:347)

org.antlr.Tool.process(Tool.java:268)

org.antlr.Tool.main(Tool.java:70)

 

Kailey

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20070321/692bcd1d/attachment-0001.html 


More information about the antlr-interest mailing list