网站大量收购闲置独家精品文档,联系QQ:2885784924

ch5自底向下语法剖析.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch5自底向下语法剖析

* FIRST(S)={a} FIRST(S’)={*, ε} FIRST(T)={+ ,ε} FOLLOW(S)={#} FOLLOW(S’)={#} FOLLOW(T)={*,#} * * + a # S →aTS’ S’ →*aTS’ →ε T →ε →+aT →ε * 句子a*a*a+a的分析过程 栈 输入 输出 #S #S’Ta #S’T #S’Ta* #S’T #S’ #S’ # S’Ta* # S’T #S’T a+ #S’T #S’ a*a*a+a# a*a*a+a# *a*a+a# *a*a+a# *a*a+a# *a+a# *a+a# +a# +a# +a# # # S→aT S’ T →ε T →ε T →+aT T’→ ε S’ →*aTS’ S’ →*aTS’ S’→ ε # # end * 七、预测分析的错误恢复 1、发现错误 ①栈顶的终结符与当前输入符不匹配 ②非终结符A位于栈顶,面临的输入符为a,但分析表M的M[A,a]为空 2、“应急”恢复策略 跳过输入串中的一些符号直至遇到“同步符号”为止。 * 3、同步符号的选择 ①把FOLLOW(A)中的所有符号作为A的同步符号。跳过输入串中的一些符号直至遇到这些“同步符号”,把A从栈中弹出,可使分析继续 ②把FIRST(A)中的符号加到A的同步符号集,当FIRST(A)中的符号在输入中出现时,可根据A恢复分析 * ③可以把表示语句开始的一些关键字加入到同步记号集中 ④如果栈顶的终结符不能被匹配,就可以弹出该终结符,此时相当于把所有的符号都看作同步符号 用synch 表示由相应非终结符的FOLLOW集得到的同步符号,则前面的预测分析表变为: * 非终结符 输入符号 E E’ T T’ F i * ( ) # + →TE’ →TE’ →+TE’ → ε → ε →FT’ →FT’ → ε → ε T’ → ε →*FT’ →(E) →i 不含错误处理的分析表 * 非终结符 输入符号 E E’ T T’ F i * ( ) # + →TE’ →TE’ →+TE’ → ε → ε →FT’ →FT’ → ε → ε → ε T→*FT’ →(E) →i 加入错误处理的分析表 synch synch synch synch synch synch synch synch synch * 句子)i*+i的分析过程 栈 输入 备注 #E #E #E’T #E’T’i #E’T’ #E’T’F #E’T’F* #E’T’F #E’T’ #E’ #E’T+ # #E’T’F #E’T’i #E’T’ #E’ #E’T )i*+i# i*+i# i*+i# i*+i# i*+i# *+i# *+i# +i# +i# +i# +i# i# i# i# # # # 错误,跳过) i在FIRST(E)中 错误,M[F,+]=synch F 已被弹出 * 文法G: A→[B B→X]|BA X→Xa|Xb|a|b 构造其 LL(1)分析表 消除左递归 A→[B B→X]B’ B’ → AB’ B’ → ε X→aX’ X → bX’ X’ → aX’ X’ → bX’ |X’→ ε {[} {a,b} {[} {ε} {a} {b} {a} {b} {ε} FIRST * FIRST(A)={[} FIRST(B)={a,b} FIRST(B’)={[, ε} FIRST(X)={a,b} FIRST(B)={a,b, ε} * Follow(A)={[,#} Follow(B)={[,#} Follow(B’)={

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档