查找语法 E → E + T、E → T、T → T * F、T → F、F → (E)、F → id 的 LR(0) 项目的规范集合。
解决方案
步骤1 - 构造增强语法并对产生式进行编号
(0) E′ → E
(1) E → E + T
(2) E → T
(3) T → T * F
(4) T → F
(5) F → (E)
(6) F → id
步骤2 - 对项目集应用闭包并查找 goto
方框表示新状态或项目,圆圈表示重复项目。
因此,通过在 I0 上应用 goto,已完成 I0 的所有规则。现在,以相同的方式在 I1、I2 上应用 goto,然后继续。
绘制 DFA
每个项目集可以作为 DFA 的一个状态,即 I0、I1 … … I11 将是 DFA 的 11 个状态。它们使用 goto 函数连接。
例如,作为 goto(I0, E) = I1。
∴ 从状态 I0 到 I1 将有一条边。
广告