SLR(1) 文法判断与 LR(1) 分析表构建
该文法不是 SLR(1) 文法。
原因是在状态 I2 中,存在两个不同的后继符号,即 'd' 和 'b',它们都可以作为下一个输入符号。这会导致 SLR(1) 分析表中同一个状态同时出现了移进和规约操作,无法做出正确的决策。
下面是该文法的 LR(1) 分析表:
| 状态 | a | b | d | $ | |---|---|---|---|---| | 0 | s1 | | | | | 1 | s1 | s2 | s3 | | | 2 | r3 | | | r3 | | 3 | r2 | s4 | | r2 | | 4 | r1 | | | r1 |
其中,s 表示移进操作,r 表示规约操作,数字表示状态编号,$ 表示输入串结束符号。在状态 I2 中,发现在读入一个 'a' 后,后继状态为 I1 或 I3,因此无法确定应该进行移进还是规约操作。
原文地址: https://www.cveoy.top/t/topic/na35 著作权归作者所有。请勿转载和采集!