SLR(1)

参考文章

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集合
    在这里插入图片描述
  • 构建分析表在这里插入图片描述