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

第五章自顶向下语法分析方法.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
非终结符相应的分析子程序的构造方法 对于每个非终结符U,编写一个相应的子程序P(U); 对于产生式U→x1 | x2 |…|xn,x1,...xn都≠ ε关于U的子程序P(U)按如下方法构造: if TOKEN in first(x1) then p(x1) else if TOKEN in first(x2) then p(x2) else … …. if TOKEN in first(xn) then p(xn) else ERROR * 2021/9/12 如果U还有空产生式U→ ε,则算法中的语句: if TOKEN in first(xn) then p(xn) else ERROR 改写为 if TOKEN in first(xn) then p(xn) else if TOKEN not in follow(U) then ERROR 对于符号串x=y1y2…yn;p(x)的含义为: begin p(y1);p(y2);…;p(yn) end 如果yi∈VN,则P(yi)就代表调用yi的子程序;yi∈VT,则P(yi)为形如下述语句的一段程序 if TOKEN=yi then GETNEXT(TOKEN) else ERROR * 2021/9/12 (1) program MAIN; /* 主程序 */ begin GETNEXT (TOKEN); E (TOKEN); /* 转匹配E→TE */ if TOKEN ≠# then ERROR end. 构造文法G’: E→TE E→+TE│ε T→FT T→*FT│ε F→(E)│i 的递归下降分析器 (2) procedure E (TOKEN); /*匹配E→TE*/ begin T (TOKEN); /*转匹配T→FT*/ E’ (TOKEN) /*转匹配E→+TE│ε*/ end; * 2021/9/12 (3) procedure E’ (TOKEN); /*匹配E→+TE│ε*/ begin if TOKEN=’+’ then /*选择产生式E→+TE*/ begin GETNEXT (TOKEN); /*匹配’+’,读下一个TOKEN字*/ T (TOKEN); /*转匹配T→FT*/ E’ (TOKEN) /*转匹配E→+TE│ε*/ end else /*E’→ε对应的语句*/ if TOKEN≠’)’ and TOKEN≠’#’ then ERROR end; * 2021/9/12 (5) procedure T (TOKEN); /* 匹配T→*FT│ε */ begin if TOKEN = * then /* 选择产生式T→*FT */ begin GETNEXT (TOKEN); /* 匹配*,读下一TOKEN字 */ F (TOKEN); /* 转匹配F→(E)│i */ T (TOKEN) /* 转匹配T→*FT│ε */ end else /* T‘→ε对应的语句*/ if TOKEN≠+ and TOKEN≠)

文档评论(0)

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

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

1亿VIP精品文档

相关文档