请学员自己用LL(1)文法的定义,证明例5.1~例5.3满足LL(1)文法, 例5.4~例5.6不满足LL(1)文法。
现给出例5.3和例5.5的证明供学员验证。
 |
例5.3的文法G3[S] 为:
S→aA
S→d
A→bAS
A→ε
不难看出由定义5.3可得:
SELECT(S→aA)={a}
SELECT(S→d)={d}
SELECT(A→bAS)={b}
SELECT(A→ε)={a,d,#, }
所以 SELECT(S→aA)∩SELECT(S→d)={a}∩{d}= 
SELECT(A→bAS)∩SELECT(A→ε)={b}∩{a,d,#, }= 
由定义5.4知例5.3文法是LL(1)文法,所以可用确定的自顶向下分析。 |
 |
而对例5.5 文法G5[S]为:
S→aAS
S→b
A→bA
A→ε
则 SELECT(S→aAS)={a}
SELECT(S→b)={b}
SELECT(A→bA)={b}
SELECT(A→ε)={a,b}
所以 SELECT(S→aAS)∩SELECT(S→b)={a}∩{b}= 
SELECT(A→bA)∩SELECT(A→ε)={b}∩{a,b}≠ 
因此,例5.5文法不是LL(1)文法,因而也就不可能用确定的自顶向下分析。 |
|