【正确答案】改写文法为:
(0)S→d
(1)S→∧
(2)S→(T)
(3)T→SN
(4)N→,SN
(5)N→ε
非终结符 FIRST集 FOLLOW集
S {a,∧,(} {#,,,}}
T {a,∧,(} {}}…
N {,,ε}. {}}…
对左部为N的产生式可知:
FIRST(→,SN);{,}
FIRST(→ε):{ε}
FOLLOW(N)={}}
【答案解析】[分析]
对于文法
S→d|^|(T) T→T,S|S
由于SELECT(N→,SN)∩SELECT(N→ε)={,}∩{}}=[*],所以文法是。LL(1)的。
也可由预测分析表中无多重入口判定文法是LL(1)的。
(3)对输入串(a,a)#的分析过程为:
栈 当前输入符 剩余输入符 所用产生式
(STACK) (CUR CHAR) (1NOUT STRING) (OPERATION)
#S ( a,a)#... ..
#)T( ( a,a)#... S→(T)
#)T a ,a)#... .
#)NS a ,a)#... T→SN
#)Na a ,a).. S→a
#)N , a)#... .
#)NS, , a)#... N→,SN
#)NS a )#... .
#)Na a )#... S→a
#)N ) #... .
#) ) #... N→ε
# #
可见输入串(a,a)#是文法的句子。