On Tue, Apr 20, 2010 at 01:51:36PM +0200, Giampaolo Tomassoni wrote:
Oops, I see placed the { after the $ earlier, where it should
be outside the $paramater, like {$parameter}, as in:
protected
conditionalExpression[CommonTree TheActualASTRoot]
: QMARK t=expression COMMA f=expression
-> ^(ITE {$TheActualASTRoot} $t $f)
|
;
> ...
>
> The specific question is: the above (piece of) tree grammar needs to compile
> with backtrack=true, which I don't like. I'm going to re-create a LLR
> grammar doing the same. I see it mimes a lot the parsing grammar I used to
> generate the source tree, but with a lot more cases in rules. This sounds
> fine to me, but then I'm still getting some problem:
>
>
> protected
> conditionalOrExpression
> : OR FALSE r=conditionalOrExpression {shc=true;} -> $r
> | OR TRUE conditionalOrExpression {shc=true;} -> TRUE
> | OR l=conditionalAndExpression r=conditionalOrRightSide[$l.tree] -> $r
> | conditionalAndExpression
> ;
>
> protected
> conditionalOrRightSide [CommonTree l]
> : FALSE {shc=true;} -> $l
> | TRUE {shc=true;} -> TRUE
> | r=conditionalOrExpression -> OR $l $r
> ;
So maybe it might work like:
protected
conditionalOrRightSide [CommonTree l]
: FALSE {shc=true;} -> $l
| TRUE {shc=true;} -> TRUE
| r=conditionalOrExpression -> OR {$l} $r
;
> conditionalOrExpression2 rises the error "(137): reference to undefined
> label in rewrite rule: $l", which is the same I got in the parsing grammar
> and which was circumvented by adopting a different notation (thanks to
> John).
>
> I have ANTLR 3.2. Is it a bug or am I the bug?
>
> Regards,
>
> Giampaolo
>
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>
List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe:
http://www.antlr.org/mailman/options/antlr-interest/your-email-address
--
You received this message because you are subscribed to the Google Groups
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/il-antlr-interest?hl=en.