LR分析法
1.LR分析法介绍
L:left,对输入从左向右扫描;
R:right,反向构造一个最右推导序列
LR(k):需要向前查看k个输入符号的LR分析;一般k=0或k=1;
2.基本原理
移进状态:S->·bBB;
待约状态:S->b·BB,S->bB·B;
归约状态:S->bBB·;
增广文法:如果G是以S为开始符号的文法,则G的增广文法是在G中添加S’和产生式S’->S;目的是使开始符号E’只一次在产生式的左部;
后继项目:同属一个产生式的项目,相差一个圆点;eg:S->·bBB和S->b·BB
状态:将圆点后的等价项目放入同一个状态中,构成项目集闭包;
3.SLR和LR(0)
SLR分析法向前查看一个符号。
LR(0)中如果遇到规约状态,则无论遇到什么符号都会规约;
SLR中如果遇到规约状态,只将Follow集中的符号进行规约操作(事实上只是必要条件);
SLR有可能遇到移入-规约冲突,只能引入LR(1)分析法;