[antlr-interest] Error in http://www.antlr.org/wiki/display/ANTLR3/Pie

Terence Parr parrt at cs.usfca.edu
Thu Oct 28 10:52:22 PDT 2010


You are so right! sorry. how come you didn't write my book! ;)
Ter
On Oct 28, 2010, at 9:31 AM, Juan Fernando Herrera J. wrote:

> There's another one I can't wrap my head around. 1 + 2 + 3 is giving
> 4. The code reads:
> 
> addexpr[boolean defer] returns [Object value]
>    :   a=mulexpr[defer]       {if (!defer) $value=$a.value;}
>        ( '+' b=mulexpr[defer]
>          {if (!defer) $value = interp.add($a.value, $b.value);}
>        | '-' b=mulexpr[defer]
>          {if (!defer) $value = interp.sub($a.value, $b.value);}
>        )*
> 
> I get the right result with
> 
> addexpr[boolean defer] returns [Object value]
>    :   a=mulexpr[defer]       {if (!defer) $value=$a.value;}
>        ( '+' b=mulexpr[defer]
>          {if (!defer) $value = interp.add($addexpr.value, $b.value);}
>        | '-' b=mulexpr[defer]
>          {if (!defer) $value = interp.sub($a.value, $b.value);}
>        )*
> 
> But I'm not sure if that's just some lucky hack. Can you confirm?



More information about the antlr-interest mailing list