该文法不是 SLR(1) 文法,因为在状态 2 中,有两个 reduce 项同时适用于输入符号 b,即 reduce A→aAb 和 reduce A→ε,无法通过 FOLLOW 集合区分,导致冲突。

下面是相应的状态转换图:

image.png

根据冲突的原因,我们可以使用 LR(1) 文法的项集族来构造分析表。下面是相应的 LR(1) 项集族:

I0: A'->.A A->.aAd A->.aAb A->.ε

I1: A'->A. S->A.

I2: A->aA.d A->aA.b

I3: A->aA.d A->aA.b A->.ε

下面是相应的分析表:

| | a | b | $ | |---|---|---|---|| | 0 | S3 | S2 | | | 1 | | | ACC | | 2 | S3 | S2 | | | 3 | R3 | R3 | R3 |

SLR(1) 文法判断及分析表构造:已知文法 A→aAd|aAb|ε

原文地址: https://www.cveoy.top/t/topic/na6i 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录