查找给定语法的规范分析表 (CLR) 或 LR(1) 分析表。\nS → CC\nC → c C | d


解决方案

步骤1 − 构造扩充文法

(0) S′ → S

(1) S → CC

(2) C → cC

(3) C → d.

步骤2 − 查找闭包和 goto 以构造 LR(1) 项目

在 I7、I8、I9 上应用 goto

在 I7、I8、I9 中,我们有产生式 C → d ∙,$,c → cC ∙,c | d 和 ∙ C → cC ∙,$,即点无法进一步移动。

因此,无法在 I7、I8、I9 上应用 goto。

绘制 DFA

首先,10 个状态,即 I0 到 I9 将充当 DFA 的节点。

使用 goto 语句连接边。例如,goto(I0, S) = I1

∴ 将有一条从 I0 到 I1 的边,标记为 S。

类似地,通过查看语法 LR(1) 项目中的所有 goto 语句来连接其他节点。

更新于: 2021 年 11 月 2 日

6K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告