找到语法的 LR (0) 项集的规范集合 - E → E + T E → T T → T * F T → F F → (E) F → id

解决方案

Step1 - 构建增强语法并对产生式进行编号

(0) E′ → E

(1) E → E + T

(2) E → T

(3) T → T * F

(4) T → F

(5) F → (E)

(6) F→id

Step2 - 将闭包应用于项目集 & 找到转到

Square Boxes 代表新的状态或项目,Circle 代表重复的项目。

因此,通过在 I 0 上应用 goto 已经完成了 I 0所有规则。现在,以相同的方式将 goto 应用于 I 1, I 2,然后继续。

绘图 DFA


每组item都可以看作是DFA的一个状态,即I 0 , I 1 ... ... I 11将是DFA的11状态。它们使用 goto 函数连接。

例如,As goto (I 0 , E) = I 1

∴ 从状态 I 0到 I 1会有一条边..

猜你喜欢