- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中学教育自底向上LR分析法
文法G(S′): (0) S′?S (1) S ?CC (2) C ?cC (3) C ?d 判断该文法是否是LR(1)文法? [S′??S,#] [S??CC,#] [C??cC,c/d] [C??d,c/d] I0 S [S′?S?,#] I1 C [S?C?C,#] [C??cC,#] [C??d,#] I2 c [C?c?C,c/d] [C? ? cC,c/d] [C??d,c/d] I3 d [C?d?,c/d] I4 C [S?CC ?,#] I5 c [C?c?C,#] [C??cC,#] [C??d,#] I6 C [C?cC ?,#] I9 d [C?d?,#] I7 c d c C [C?cC ?,c/d] I8 d LR(1)分析表? 构造LR(1)分析表 按上述算法构造的分析表,如果每个入口是唯一确定的,则称它为文法G的一张LR(1)分析表。具有LR(1)分析表的文法称为LR(1)文法。使用LR(1)分析表的分析器称作一个LR(1)分析器。 5.5.5 LALR(1)分析及其分析表的构造(简介) 一般而言,同一个文法G1的LR(1)项目集个数要比LR(0)项目集个数个数多,而LALR(1)项目集个数比LR(0)项目个数多,而比LR(1) 项目集个数少。 1.LALR(1)项目集的构造: 同心集:LR(1)的两个项目集的LR(0)项目全部相同,则称两个LR(1)项目集具有相同的心。具有相同心的项目集称为同心集。 某一文法的LR(1)项目集规范族合并同心集就得同一文法的LALR(1)项目集规范族。 合并方法: (1)相同的心(LR(0)项目)不变 (2) 合并后项目集的搜索符等于合并前LR(0)项目搜索符的并集 例:设文法为:(0)S’→S (1)S→BB (2)B→aB(3)B→b 其LR(1)项目集规范族如下: 合并后: I3:B→a.B , a/bB→.aB , a/bB→.b , a/b I6:B→a.B , #B→.aB , #B→.b , # J3:B→a.B , a/b/#B→.aB , a/b/#B→.b , a/b/# I4:B→b. , a/b I7:B→b. , # J4:B→b. , a/b/# I8:B→aB. , a/b I9:B→aB. , # J6:B→aB. , a/b/# 若合并同心集后项目集规范族无分析动作冲突,则此表称为LALR(1)分析表。相应的文法称为LALR(1)文法。 讨论: 把同心的项目集合并为一,有可能导致冲突, 不会出现新的移进- 归约冲突; 但可能引起 归约-归约冲突。 Ik:{[A???,u1] [B???a?,b] } a?u1=? Ij:{[A???,u2] [B???a?,c] } a?u2=? Ikj:[A???,u1/u2] [B???a?,b/c] a?{u1, u2}=? 例:下面文法是LR(1)的,但不是LALR(1)的。 S′ ? S S? aAd ?bBd ? aBe ?bAe A ?c B ?c [S′ ? ?S,#] [S ? ?aAd, #] [S ? ?bBd, #] [S ? ?aBe, #] [S ? ?bAe, #] [S′ ? S ? ,#] [S? a ? Ad, #] [S ? a ? Be, #] [A ? ?c, d] [B ? ?c, e] a S [S? b? Bd, #] [S ? b ? Ae, #] [A ? ?c, e] [B ? ?c, d] b A [S? a A ? d, #] B [S ? a B ? e, #] c [A ? c ?, d] [B ? c ?, e] [A ? c ?, e] [B ? c ?, d] c [A ?c?,e/d] [B?c?,e/d] 文法G(S′): (0) S′?S (1) S ?CC (2) C ?cC (3) C ?d 判读该文法是否是LALR文法? [S′??S,#] [S??CC,#] [C??cC,c/d] [C??d,c/d] I0 S [S′?S?,#] I1 C [S?C?C,#] [C??cC,#] [C??d,#] I2 c [
文档评论(0)