现用表7.17对表达式的输入串i+i*i#分析过程如表7.18所示。
表7.18 用二义性文法的分析表对输入串i+i*i#的分析过程
步骤 状态栈 符号栈 输入串 ACTION GOTO
1
2
3
4
5
6
7
8
9
10
11
0
03
01
014
0143
0147
01475
014753
014758
0147
01
#
#i
#E
#E+
#E+i
#E+E
#E+E*
#E+E*i
#E+E*E
#E+E
#E
i+i*i#
+i*i#
+i*i#
i*i#
*i#
*i#
i#
#
#
#
#
S3
r4
S4
S3
r4
S5
S3
r4
r2
r1
acc
.
1
.
.
7
.
.
8
7
1
  不难发现对二义性文法规定了优先关系和结合性后的LR分析速度比相应的非二义性文法的LR分析速度要快一些,对输入串i+i*i#的分析,用表7.17比用表7.8(见第7.3节)分析少3步,其分析过程见表7.18和表7.9。对于其它的二义性文法也可用类似的方法处理,可能构造出无冲突的LR分析表。
  对二义性文法规定了优先关系和结合性后,构造出的LR分析表,是否冲突都能解决,需要逐个考察决定。