第三章构造LR分析表课堂练习题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SLR(1)文法描述能力有限
SLR(1)文法的弱点
例: SV=E SE V*E V id EV
I0 : S ·S S· V =E S ·E V· *E V ·id E ·V
V
I2 : S V ·= E EV·
I2中第一项目使得
action[2, = ] = s6
I5:
S'S · SV · =E EV · SE · V* · E E · V V · *E V · id Vid ·
I6:
I7: I8: I9:
SV= · E E · V V · *E V · id V*E · EV · SV=E ·
识别产生式文法活前缀的DFA
I0 S' S S V=E SE V *E V id EV id I5 E V id I6 S V = E E S V=E EV I9 id V *E V I3 S V =E = V id I2 E V V * * V * E I4 E V V E V I8 V id E id V * E V *E I7 S' S * S
I 1: I 0: S’->S· ,$ S’->· S, $ S->· V=E, $ I2: V S->V S->· E, $ · =E, $ V->· *E, =/$ E->V· ,$ V->· id, =/$ E E->· V, $ I 3: S->E· ,$
0 1 2 3 4 5
S S’ SV=E SE V*E V id EV
LR(1)分析练习解答过程
答: Step 1. 对原文法进行拓广 (添加产生式S->S’)
SV=E SE V*E V id EV
0 1 2 3 4 5
S S’ SV=E SE V*E V id EV
Step 2: 构建识别(拓广)文法活前缀的DFA
LR(1)分析练习解答过程
action = *
s4 s6 s4 r4 s12 r3 r5 s11 r3 r5 r1 r5 r4 s12 s11 r3 s5 r4
goto id
s5 acc r5 r2 8 10 7 9
$
S
1
V
2
E
3
10
13
8
S
=
E I 9: I 6: S->V=E· ,$ S->V=· E, $ E->· V, $ V I10: V->· *E, $ E->V· ,$ V->· id, $ id I11: * V->id· ,$
I12 : E I13: V->*· E, $ V->*E· ,$ E->· V, $ V V->· *E, $ 指向I10 * V->· id, $
I1
I3 SBaidu Nhomakorabea E
识别产生式文法活前缀的DFA
I1 S start I 0 R L id I5 I2 = id I6 R L I9
*
id I4 * L R
I8
*
I3
I7
LR(1)分析练习题目
基于LR(1)项目来构造识别G活前缀的DFA,并基于DFA构建分析表.
SV=E SE V*E V id EV
但是,文法中实际不存在 以E=…开始的右句型。
第二项目使得 action[2, = ]为按 EV归约,因为=是 E的一个后继符。
拓广文法G的LR(0)项目集规范族为:
I0: S' · S S · V=E S · E V · *E V · id E · V
I1: I2: I3: I4:
id
I 5: V->id· , =/$
*
E V * id
I 7: V->*E· , =/$ I 8: E->V· , =/$ 指向I5
I 4: V->*· E, =/$ E->· V, =/$ V->· *E, =/$ V->· id, =/$
id
指向I11
状态 0 1 2 3 4 5 6 7 8 9 10 11 12 13
相关文档
最新文档