已知文法 A→fAa|fAg|b 判断该文法是否是 SLR(1)文法
时间: 2023-06-18 09:05:34 浏览: 56
首先,我们需要构造该文法的 LR(0)自动机。
LR(0)自动机的状态集合如下:
| 状态 | 项目集 |
| :-----: | :----------------: |
| I0 | A→•fAa |
| | A→•fAg |
| | A→•b |
| I1 | A→f•Aa |
| | A→f•Ag |
| I2 | A→fA•a |
| I3 | A→fA•g |
| I4 | A→•fAa |
| | A→•fAg |
| | A→•b |
| | A→f•Aa |
| | A→f•Ag |
| I5 | A→fA•a |
| I6 | A→fA•g |
| I7 | A→fAa• |
| I8 | A→fAg• |
接下来,我们需要构造该文法的 SLR(1)分析表。
| 状态 | a | b | f | g | $ |
| :---------: | :-----: | :-----: | :----: | :----: | :----: |
| 0 | s2 | s3 | s4 | s5 | |
| 1 | | | r3 | r3 | r3 |
| 2 | | | r2 | r2 | r2 |
| 3 | | | r1 | r1 | r1 |
| 4 | s2 | s3 | s4 | s5 | |
| 5 | | | s6 | s7 | |
| 6 | | | r5 | r5 | r5 |
| 7 | | | r4 | r4 | r4 |
| 8 | | | r6 | r6 | r6 |
其中,s表示移入状态,r表示规约状态,数字表示将要转移到的状态。
可以发现,该文法存在移入-规约冲突和规约-规约冲突,因此该文法不是 SLR(1)文法。