本份课堂笔记来源于我院最最高大的七米八同学,不知道他用不用CSDN写博客,但是不管如何向他表示感谢。
LR文法——通用语法分析法,基于规约、FA
对于文法 B→αAβ,A→γ ,我们有自动机,确切地说,是分层的有限自动机(NFA),如下图。
对于每个状态(就是每个圈)的命名,我们不会和以前一样一路 A−Z 命名下来,而是会有特定的命名方式。
状态命名
状态命名: LR项{ 层的信息——用相应的产生式体现顺序——用点表示
就比如说,第一层的加黄的状态是 B→α⋅Aβ ,第一层加蓝的状态是 B→αAβ⋅ 。
第二层的最左边状态是 A→⋅γ 。
其中, B→αAβ⋅ 这种点在最后的 LR 项,叫做“可归约 LR 项”,否则叫做“移进 LR 项( shift LR item )”
状态的拓展
NFA{ ϵ产生式→状态内部的拓展子集构造→状态之间的拓展(移点)
if(