[antlr-interest] Promoting root nodes
Terence Parr
parrt at cs.usfca.edu
Fri Aug 4 20:15:43 PDT 2006
hi. don't mix ^ for trees and use output=template.
Ter
On Aug 4, 2006, at 11:14 AM, Sean Walton wrote:
> I have tried this in several configurations without success:
>
> stdc_AssignmentExpression
> : stdc_Lvalue ('='^ | '*='^ | '/='^ | '%='^ | '+='^ | '-='^ |
> '<<='^ | '>>='^ | '&='^ | '^='^ | '|='^) stdc_AssignmentExpression
> | stdc_ConditionalExpression
> ;
>
> Instead I get:
>
> >java -classpath
> "antlr-3.0b3.jar;stringtemplate-2.3b9.jar;antlr-2.7.6.jar"
> org.antlr.Tool ANesC.g
> ANTLR Parser Generator Early Access Version 3.0b3 (July 21,
> 2006) 1989-2006
> ANesC.g:610:52: Decision can match input such as "'else'" using
> multiple alternatives: 1, 2
> As a result, alternative(s) 2 were disabled for that input
> internal error: ANesC.g : java.lang.IllegalArgumentException: Can't
> find template tokenRefRoot.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.codegen.CodeGenTreeWalker.getTokenElementST
> (CodeGenTreeWalker.java:159)
> org.antlr.codegen.CodeGenTreeWalker.atom(CodeGenTreeWalker.java:1917)
> org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:
> 1348)
> org.antlr.codegen.CodeGenTreeWalker.alternative
> (CodeGenTreeWalker.java:1104)
> org.antlr.codegen.CodeGenTreeWalker.block(CodeGenTreeWalker.java:988)
> org.antlr.codegen.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:2161)
> org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:
> 1619)
> org.antlr.codegen.CodeGenTreeWalker.alternative
> (CodeGenTreeWalker.java:1104)
> org.antlr.codegen.CodeGenTreeWalker.block(CodeGenTreeWalker.java:988)
> org.antlr.codegen.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:716)
> org.antlr.codegen.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:507)
> org.antlr.codegen.CodeGenTreeWalker.grammarSpec
> (CodeGenTreeWalker.java:449)
> org.antlr.codegen.CodeGenTreeWalker.grammar(CodeGenTreeWalker.java:
> 301)
> org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:406)
> org.antlr.Tool.processGrammar(Tool.java:320)
> org.antlr.Tool.process(Tool.java:251)
> org.antlr.Tool.main(Tool.java:70)
>
> which seems to be an internal defect. I also tried the '^^'
> without success.
> Also, if a nonterminal resolves to a finite terminal list (like the
> operators above), why can't I use '^' or '^^'?
> -Sean
More information about the antlr-interest
mailing list