我在使用LALR方法解析以下语法时遇到麻烦。
s -> y
y -> dX | ydX
X -> e | Zd
z -> F | epsilon
一开始我很好,这里是项目状态0 :( ,,分隔了前瞻状态)
s -> .y, $
y -> .dX, $d
y -> .ydX, $d
现在这很好,但是当您从d终端移至状态1时,我会感到困惑。我的书的状态2如下:
y -> d.X, $d
X -> .e, $d
X -> .Zd, $d
Z -> .f, d
Z -> ., d
超前终端“ d”来自X非终端?我以为dX来自.dX,其前瞻性终端为“ $”和$ d”,但是当进行E封闭时,前瞻性应该不是$ d的第一个即“ $”?为什么是“ $”,还是“ d”?我以为它可能来自另一个州,因为这是LALR,但最终合并状态1的州也没有广告,所以有人可以向我解释为什么会有“ d”对吗与“ $”处于该状态的前期吗?
我在使用LALR方法解析以下语法时遇到麻烦。 s-> y y-> dX | ydX X-> e | Zd z-> F | epsilon我一开始没问题,这里是项目状态0 :( the,分隔为...
d之后的推导序列中,[[S $-> Y $-> dX $]在X之后是{$}