LR分析包含四种分析技术
LR(1)文法所处的位置
算法解释
1
2
3
4
5
6
void processLR_1(){
//1. 移进
//2. 针对·后为非终结符的情况,采用下方的方法进行处理得到新的二元组
//3. 扩展上面得到的二元组
//4. 重复,按照某一个方向进行DFA的构造
}
针对点
·
后为非终结符的情况:如$A \rightarrow a·Bc,#$,文法中有$B \rightarrow cA$
则扩展出:
($B \rightarrow cA,c$) ——(因为$c \in first(c#)$)
例子:
图中$I_5,I_7$存在冲突项,进行$LR(1)$分析
构造表: