我正在尝试解决有关 LR(1) 语法的问题:
S->AA
A->Aa
A-> b
我在以下情况下陷入状态 4:
S-> AA. ,$
A-> A.a ,$
A->.Aa ,$
A->.a ,$
a并A转移到其他状态并A在同一状态下减少我是否应该因为这种冲突而认为该语法不是 LR(1) 和 SLR(1) ?
我正在尝试解决有关 LR(1) 语法的问题:
S->AA
A->Aa
A-> b
我在以下情况下陷入状态 4:
S-> AA. ,$
A-> A.a ,$
A->.Aa ,$
A->.a ,$
a并A转移到其他状态并A在同一状态下减少我是否应该因为这种冲突而认为该语法不是 LR(1) 和 SLR(1) ?
您需要检查 shift-reduce(SR) 或 reduce-reduce(RR) 问题
在您提到的状态 4 中,只有一个 reduce 条目S-> AA., $,因此不存在 RR问题。检查 SR:
对于 LR(1) 和在 follow(S)S-> AA.,$处的减少条目,即对于 SLR(1)。$$
Shift 条目只检查终端而不是变量。变量条目在表格的GOTO部分进行,而移位条目在表格的ACTION部分进行。移位仅在aSLR(1) 和 LR(1) 的情况下位于终端。
因此,在您提供的状态下,没有问题(SR 和 RR 都没有)。