- 可归前缀图DFA如下:
- LR预测分析表如下:
分析句子bab的规约过程?
栈 输入 动作说明
0
# bab# action(0,b)=s4
04
#b ab# action(4,a)=r3
0(因为3产生式右面只有一个所以移去一个状态)
#B ab# goto(0,B)=2
02
#B ab# action(2,a)=s3
023
#Ba b# action(3,b)=s4
0234
#Bab # action(4,#)=r3
023
#BaB # goto(3,B)=6
0236
#BaB # action(6,#)=r2
02
#BB # goto(2,B)=5
025
#BB # action(5,#)=r1
0
#S # goto(0,S)=1
01
#S # action(1,#)=acc
最后一个动作为acc说明这个句子规约成功。
栈中标红的地方为什么规约完会删去两个状态呢?
根据规律总结出:产生式右边有几个状态,规约完状态栈中就删除几个
例如:
红色部分S->BB右边有两个状态BB,所以0236->02
蓝色部分B->b右边一个状态b,所以0234->023
希望这些对你有所帮助!