I'm wondering how much unlearning this is going to require. Even though I've only used ANTLR for a couple of years, the conditioning to avoid left-recursing like the plague is already deeply etched into my frontal cortex. When I first looked at this latest example I couldn't cope with it at all because it was too easy.
Michael On 28 February 2011 11:56, Terence Parr <[email protected]> wrote: > ta da! > > e returns [int v] > : e '*'^ b=e {$v *= $b.v;} > | e '+'^ b=e {$v += $b.v;} > | INT {$v = $INT.int;} > ; > > works. :) builds a tree and computes v. $v automatically set for > left-recursive call. generates this more or less: > > e returns [int v] : =e_[0] {$v=$e_.v;} ; > > e_[int _p] returns [int v] > : e_primary {root_0=$e_primary.tree;} {$v=$e_primary.v;} > ( ( {_p <= 4}?=> '*' ^b= e {$v *= $b.v;} > | {_p <= 3}?=> '+' ^b= e {$v += $b.v;} > ) > )* > ; > > e_primary returns [int v] > : INT {$v = $INT.int;} > ; > > Ter > > 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.
