SLR(1)
SLR文法判定:
- SLR文法不存在归约-归约冲突,有可能存在移进-归约冲突,但是如果可以用 follow集解决则是 SLR文法。
换句话说,SLR文法分析过程可以解决归约-归约冲突,但是不一定能解决移进-归约冲突。
用 follow集来处理即出现移进-归约冲突的两条产生式如果其 follow集相交为空则为 SLR文法,反之不是。
分析过程
- 拓广文法、写自动机、分析过程表与 LR(0)文法相同。但是由于可能存在移进-归约冲突,所以 利用FOLLO集合来处理。
构造分析表
步骤:
- 1.写出文法的扩展文法
- 2.写出扩展文法的初始项目集
- 3.构建DFA
- 4.计算G`的FOLLOW集合
- 5.根据步骤3.4 构建SLR(1)分析表
例子
- 写出扩展文法和项目集合
- 构建DFA
- - 写出G`的FOLLOW集合
- 构建分析表