[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