编译原理(三)语法分析:7.LL(1)、LR(0)和SLR(1)
一、LL(1)
1.意思
第一个L代表从左到右扫描输入序列,第二个L表示产生最左推导,1表示在确定分析器的每一步动作时向前看一个终结符。
2.判断
- 有左递归和左因子的文法不是LL(1)文法。
- 当且仅当为它构造的预测分析表中不含多重定义的条目(即每个非终结符的FIRST集和FOLLOW集没有交集),才是LL(1)文法。
例:
有交集不是。
3.推论3.2
G是LL(1)的,当且仅当G的任何两个产生式A→α|β满足:
- 对任何终结符a,α和β不能同时推导出以a开始的串;
- α和β最多有一个可以推导出ε;
- 若,则α不能导出以FOLLOW(A)中终结符开始的任何串。
二、LR(0)和SLR(1)
1.判断
- 二义文法不是SLR(1)文法