第5章语法分析——自底q.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 语法分析——自底向上分析 5.1 规范推导、规范句型和规范归约 5.2自底向上分析方法的一般过程 5.2自底向上分析方法的一般过程 5.3 LR分析方法 5.3.1 LR分析器逻辑结构 5.3.2 LR分析表的构成 5.3.2 LR分析表的构成 5.3.2 LR分析表的构成 5.3.3 LR分析过程 5.3.3 LR分析过程 5.4 LR(0)分析方法 5.4.1活前缀和可归前缀 5.4.1活前缀和可归前缀 5.4.2 LR(0)项目 第5章 语法分析——自底向上分析 第5章 语法分析——自底向上分析 第5章 语法分析——自底向上分析 第5章 语法分析——自底向上分析 5.4.3 构造识别活前缀的有穷自动机 5.4.3 构造识别活前缀的有穷自动机 5.4.3 构造识别活前缀的有穷自动机 5.4.3 构造识别活前缀的有穷自动机 5.4.3 构造识别活前缀的有穷自动机 5.4.3 构造识别活前缀的有穷自动机 5.4.3 构造识别活前缀的有穷自动机 5.4.3 构造识别活前缀的有穷自动机 5.4.4 LR(0)分析表的构造 5.4.4 LR(0)分析表的构造 5.4.4 LR(0)分析表的构造 5.4.5 LR(0)分析器的工作过程 5.4.5 LR(0)分析器的工作过程 5.4.6 LR(0)文法 5.4.6 LR(0)文法 5.5 SLR(1)分析器 5.4.4 LR(0)分析表的构造 5.5.1 SLR解决方法的基本思想 5.5.1 SLR解决方法的基本思想 5.5.2 SLR(1)分析表的构造 5.5.2 SLR(1)分析表的构造 5.5.2 SLR(1)分析表的构造 5.5.2 SLR(1)分析表的构造 5.5.2 SLR(1)分析表的构造 5.5.2 SLR(1)分析表的构造 5.6 LR(1)分析方法 5.6 LR(1)分析方法 5.6.1 LR(1)项目 5.6.1 LR(1)项目 5.6.2 LR(1)项目集规范族构造算法 5.6.2 LR(1)项目集规范族构造算法 输入符号为),查动作表5行)列为R1,用A→(A) 归约,(A)出符号栈、A入符号栈,245出状态栈、2为栈顶,查GOTO表2行A列得4,4入状态栈。 4 R1 )# #((A) 02245 6 输入符号为),查动作表4行)列为S5,5入状态栈,)入符号栈。 S5 )# #(A 024 7 输入符号为#,查动作表5行#列为R1,用A→(A) 归约,(A)出符号栈、A入符号栈,245出状态栈、0为栈顶,查GOTO表0行A列得1,1入状态栈。 1 R1 # #(A) 0245 8 输入符号为#,查动作表1行#列为ACCEPT,接受。 ACC # #A 01 9 输入符号为),查动作表4行)列为S5,5入状态栈,)入符号栈。 S5 ))# #((A 0224 5 输入符号为),查动作表3行)列为R2,用A→a 归约,a 出符号栈、A入符号栈,3出状态栈、2为栈顶,查GOTO表2行A列得4,4入状态栈。 4 R2 ))# #((a 0223 4 输入符号为a,查动作表2行a列为S3,3入状态栈,a入符号栈。 S3 a))# #(( 022 3 输入符号为(,查动作表2行(列为S2,2入状态栈,(入符号栈。 S2 (a))# #( 02 2 开始时,0入状态栈,#入符号栈,输入符号为(,查动作表0行(列为S2,2入状态栈,(入符号栈。 S2 ((a))# # 0 1 说明 GOTO ACTION 输入符号串 符号栈 状态栈 步骤 表5.4符号串 (a)的分析过程 项目分成4类:移进项目、归约项目、待约项目和接受项目。一个项目集中可能包含不同类型的项目,但必须满住下面两个条件: 1)不能有移进项目和归约项目并存, 2)不能有多个归约项目并存。 ?如果某一项目集出现移进项目和归约项目并存,我们说该项目集存在“移进-归约冲突”;如果某一项目集出现多个归约项目并存,我们说该项目集存在“归约-归约冲突”。 例如,某项目集为{ S →E.,E →E.+T },因S →E.是归约项目,而E →E.+T是移进项目,所以该项目集存在“移进-归约冲突”。 如果一个文法的项目集规范族不存在“移进-归约冲突”或“归约-归约冲突”的项目集,那么,称该文法为LR(0)文法,所构造的分析表为LR(0)分析表。 只有LR(0)文法才能构造LR(0)分析表,否则,构造的分析表会出现多重定义。LR(0)文法是一种非常简单的文法,在这种文法的识别活前缀的自动机中,每一个状态对应的项目集都不含冲突项目。然而,很多文法都不是LR(0)文法,如在上一章我们使用的表达式文法就不是

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档