f152134151111611611011110111110111
其中,前9列为actio
值,后2列为goto值;0~16表示17个移进状态(即Si);1表示出错;ACC表示分析成功;而100~106对应7个归约产生式:100S’S101SifeSelseS102SwhileeS103SL104Sa105LS106LSL
2算术表达式的LR分析表2设计如下:
0S’E
1EEE
2EEE
3EE4Ei(过程略)
ACTION
I
0
S3
S2
1
S4
S5
2
S3
S2
3
R4
R4
4
S3
S2
5
S3
S2
6
S4
S5
7
R1
R5
8
R2
R2
9
R3
R3
statici
tactio
110703112111114511ACC12311211631104104110410414311211753112118614519117110151101101181102102110210219110310311031031
GOTO
E
1
ACC
6
R4
R4
7
8
S9
R1
R1
R2
R2
R3
R3
f3布尔表达式的SLR分析表3设计如下:(过程略)
1S’B
2Bi
3Biropi
4BB
5BB
6AB
7BAB
8OB
9BOB
ACTION
i
Rop
0
S1
S4
S5
1
S2
R1
R1
2
S3
3
R2
R2
4
S1
S4
S5
5
S1
S4
S5
6
R4
S9
7
S1
S4
S5
8
S1
S4
S5
9
R5
R5
R5
10
R7
R7
R7
11
S12
S9
12
R3
R3
13
S9
14
R6
S9
15
R8
S9
R1
R1
R2
R2
S10R4
S10
R3
R3
S10ACC
S10R6
S10R8
GOTO
B
A
O
13
7
8
11
7
8
6
7
8
14
7
8
15
7
8
statici
tactio
21611011415111137811211011101101101111231111111111311110211021021021114114151111178511415111678611110419101041117114151111478811415111157891051105110511111110107110711071111111111112191011111211110311031031031111311111910ACC111
f141111061910106111151111081910108111
LR分析表控制语义加工的实现:当扫描LR分析表的当前状态为归约状态时,则在调用与该状态对应的产生式进行归约的同时,
调用相应的语义子程序进行有关的翻译工作。现在对LR分析器的分析栈加以扩充,使得每个文法符号之后都跟着它的语义值。为了清晰起见,我们把这个栈的每一项看成由三部分组成:状态state,
文法符号syl和语义r