我真的很难理解以下之间的关系:
- LR(0)
- LL(0)
- LALR(1)
- SLR(1)
- LR(1)
- LL(1)
我很确定 LALR(1) 和 SLR(1) 是 LR(1) 的子集,但我不知道其他的。它们都是独家的吗? LL(0) 是 LL(1) 的子集吗?
Thanks
遏制规则如下:
- 每个 LR(0) 文法也是 SLR(1),但并非所有 SLR(1) 文法都是 LR(0)。
- 每个 SLR(1) 文法也是 LALR(1),但并非所有 LALR(1) 文法都是 SLR(1)。
- 每个 LALR(1) 文法也是 LR(1),但并非所有 LR(1) 文法都是 LALR(1)。
- 每个 LL(1) 文法也是 LR(1),但并非所有 LR(1) 文法都是 LL(1)。
- 每个 LL(0) 文法也是 LR(0)、SLR(1)、LALR(1)、LR(1) 和 LL(1)。 (LL(0)文法基本没用;请参阅此问题了解详细原因 https://stackoverflow.com/questions/14674912/why-are-there-lr0-parsers-but-not-ll0-parsers).
同样的情况是,每种具有 LR(1) 语法的语言也具有 LR(0) 语法,前提是您对该语法进行了尾标,尽管不能保证该语法很漂亮。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)