[squeak-dev] Re: Precedence in SmaCC
Andrew Tween
amtween at hotmail.com
Sun Mar 9 11:30:30 UTC 2008
Hi,
I get the same problem.
But if I change the parser def slightly (simply insert a cr after %left "*"
"/"; ) to give...
%left "+" "-";
%left "*" "/";
Expression :
Expression 'exp1' "+" Expression 'exp2' {exp1 + exp2} | Expression
'exp1' "-" Expression 'exp2' {exp1 - exp2} | Expression 'exp1' "*"
Expression 'exp2' {exp1 * exp2} | Expression 'exp1' "/" Expression 'exp2'
{exp1 / exp2} | Number 'number' {number};
Number : <number> 'numberToken' {numberToken value asNumber};
and recompile, then it works as expected, giving 2+3*4 = 14.
Comparing the generated classes for the two parser defs shows that the only
difference in the generated code is in TestParser>>#transitionTable
Cheers,
Andy
More information about the Squeak-dev
mailing list
|