[antlr-interest] Re: [followup] Promoting root nodes

Terence Parr parrt at cs.usfca.edu
Fri Aug 4 20:26:15 PDT 2006


oh and sorry...forgot to mention it's on my list of stuff to fix ;)   
needs a warning not a crash.

You will need ^^ if you set output=AST

Ter
On Aug 4, 2006, at 8:15 PM, Terence Parr wrote:

> 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