第4章 语法分析(2).pptVIP

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * 4.4.4 非递归的预测分析 可以使用显式的栈,而不是递归调用来完成分析。 * 成功的自顶向下的分析的一般示意法: 两个基本动作: 利用文法选择A ? ?将栈顶部的非终结符A替换成串?。 将栈顶的记号和下一个输入记号匹配。 分析栈 输入(lookahead) 动作 $StartSymbol InputString$ … … … … $ $ 接受 * 例:生成配对括号的文法S ? (S) S | ? 对串(),下表给出自顶向下的分析程序的动作: 分析栈 输入 动作 $ S ( ) $ S ? (S) S $ S ) S ( ( ) $ 匹配 $ S ) S ) $ S ? ? $ S ) ) $ 匹配 $ S $ S ? ? $ $ 接受 自顶向下的分析程序的动作 对于LL(1)文法,将?边作为默认选择可以解决是否选择一个?边的二义性问题。 * a + b $ 输入 预测分析程序 分析表M 输出 X Y Z $ 栈 * 输入:输入符号串w和文法G的分析表M 输出:若w?L(G),则输出w的最左推导; 否则,报告出错信息。 方法:初始状态: $在栈底,S在栈顶; w$在输入缓冲区中。 预测分析程序利用预测分析表M对于输入作出分析。 算法4.3 非递归预测分析方法 * 置ip指向w$的第一个符号,栈为$和开始符号S repeat 令X是栈顶符号, a是ip所指向的符号; if X 是一个终结符号或$ then if X=a then 从栈中弹出X,ip指向下一个符号 else error() else /*X是非终结符号*/ if M[X,a]=X?Y1Y2.. .. Yk then begin 从栈中弹出X; 将 Yk,Yk-1,.. ..,Y1压入栈中,即Y1在栈顶; 输出产生式 X?Y1Y2.. .. Yk end else error() until X=$ /*栈为空*/ 图4-14 预测分析程序 Input pointer 就是lookahead * 例4.16 图4-15 文法的分析表M 非终结符 E ? TE? E? ? +TE? | ? T ? FT? T? ? *FT? | ? F ? ( E ) | id 输入符号 id + * ( ) $ E E? T T? F E?TE? T?FT? F?id E??+TE? T?? ? T? ?*FT? F?(E) T?FT? E?TE? T? ? ? E? ? ? E? ? ? T? ? ? * 图4-16 预测分析器在输入id+id*id上的动作 $E $E’T $E’T’F $E’T’id $E’T’ $E’ $E’T+ $E’T id + id * id$ id + id * id$ id + id * id$ id + id * id$ + id * id$ + id * id$ + id * id$ id * id$ E? TE’ T? FT’ F ? id T’ ? ? E’ ? +TE’ STACK INPUT OUTPUT * 图4-16 预测分析器在输入id+id*id上的动作 (续) STACK INPUT OUTPUT $E’T’

文档评论(0)

35425 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档