已知表达式文法的S-翻译模式
S → E |
{ print(E.val) } |
E → E1 + T |
{ E.val := E1 .val + T.val } |
E → E1 - T |
{ E.val := E1 .val - T.val } |
E → T |
{ E.val := T.val } |
T → T1 * F |
{ T.val := T1 .val * F.val } |
T → T1 / F |
{ T.val := T1 .val / F.val } |
T → F |
{ T.val := F.val } |
F →P^F |
{ F.val := P.val ^ F.val } |
F →P |
{ F.val := P.val } |
P →( E ) |
{ P.val := E.val } |
P → d |
{ P.val := d.lexval } |
请使用算符优先算法编写基于S-翻译模式的语义计算程序