考虑如下所示的翻译方案
S → T R
R → + T {print ('+');} R | ε
T → num {print (num.val);}
这里 num 是表示整数的标记,num.val 表示对应的整数值。对于输入字符串’9 + 5 + 2’,此翻译方案将打印
(一) 9 + 5 + 2
(B) 9 5 + 2 +
(C) 9 5 2 + +
(D) + + 9 5 2答案:(乙)
说明:让我们以自顶向下的方式制作 9+5+2 的解析树,左一推导。
Steps:
1) Exapnd S->TR
2) apply T->Num...
3) apply R -> +T...
4) appy T->Num...
5) apply R-> +T..
6) apply T-> Num..
7) apply R-> epsilon
通过形成的解析树中的打印语句打印后,您将得到答案为 95+2+
这个问题的测验