编译原理学习笔记(二十七)~习题:构造基于LR(0)、LR(1)项目的识别活前缀的DFA(2)

题目

文法:
S–>Aa | bAc | Bc | bBa
A–>d
B–>d
通过构造基于LR(0)、LR(1)项目的识别活前缀的DFA,判断上面文法

  1. 是否是SLR(1)文法??
  2. 是否是LALR(1)文法??
  3. 是否是LR(1)文法??

依次说明理由。

(1)基于LR(0)项目识别活前缀的DFA、
在这里插入图片描述
(2)基于LR(1)项目识别活前缀的DFA
在这里插入图片描述
判断:

  • 是LR(1) 的,因为该DFA是确定的,没有冲突!
  • I5、 I9合并后,读入a或c时,不知道按照哪一个产生式归约 ,所以不是LALR(1) 的,必然 不是SLR(1)