![编译原理4[1].4-递归下降分析程序构造.ppt_第1页](http://file1.renrendoc.com/fileroot2/2020-1/17/ee8902d6-f3aa-4cdd-b34b-9741d7ebab41/ee8902d6-f3aa-4cdd-b34b-9741d7ebab411.gif)
![编译原理4[1].4-递归下降分析程序构造.ppt_第2页](http://file1.renrendoc.com/fileroot2/2020-1/17/ee8902d6-f3aa-4cdd-b34b-9741d7ebab41/ee8902d6-f3aa-4cdd-b34b-9741d7ebab412.gif)
![编译原理4[1].4-递归下降分析程序构造.ppt_第3页](http://file1.renrendoc.com/fileroot2/2020-1/17/ee8902d6-f3aa-4cdd-b34b-9741d7ebab41/ee8902d6-f3aa-4cdd-b34b-9741d7ebab413.gif)
![编译原理4[1].4-递归下降分析程序构造.ppt_第4页](http://file1.renrendoc.com/fileroot2/2020-1/17/ee8902d6-f3aa-4cdd-b34b-9741d7ebab41/ee8902d6-f3aa-4cdd-b34b-9741d7ebab414.gif)
![编译原理4[1].4-递归下降分析程序构造.ppt_第5页](http://file1.renrendoc.com/fileroot2/2020-1/17/ee8902d6-f3aa-4cdd-b34b-9741d7ebab41/ee8902d6-f3aa-4cdd-b34b-9741d7ebab415.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章,4.1 语法分析器的功能 4.2 自上而下分析面临的问题 4.3 LL(1)分析法 4.4 递归下降分析程序构造 4.5 预测分析程序 4.6 LL(1)分析中的错误处理,4.4 递归下降分析程序构造,前提: 文法满足LL(1)文法 实现思想: 每个非终结符对应一个递归过程,约定的数据结构和函数,IP: 输入串指示器 SYM: IP当前所指的输入符号 ADVANCE: 使IP指向下一输入符号 getsym , NextCh ERROR: 出错诊察处理程序,p74,文法 (4.2) E TE E +TE| T FT T *FT| F (E) | i,E TE,PROCEDURE E; B
2、EGIN T;E END,T FT,PROCEDURE T; BEGIN F;T END,E +TE|,PROCEDURE E; IF SYM=+ THEN BEGIN ADVANCE; T;E END,T *FT|,PROCEDURE T; IF SYM=* THEN BEGIN ADVANCE; F;T END,F (E) | i,PROCEDURE F; IF SYM= i THEN ADVANCE ELSE IF SYM=( THEN BEGIN ADVANCE; E; IF SYM=) THEN ADVANCE; ELSE ERROR END ELSE ERROR,基本架构(1)Uu
3、1 | u2 | un,U( ) if (sym SELECT(Uu1) ) 处理u1 else if (sym SELECT(Uu2) ) 处理u2 else ERROR ,补充,基本架构(2)对于U的每个右部ui=x1x2xn,处理ui 处理x1的程序; 处理x2的程序; 处理xn的程序; 如果右部为, 则不处理,基本架构(3)对于右部中的每个符号xi,xiVT if(xi = =sym) ADVANCE; return; elseERROR xiVN xi( )/直接调用相应的过程,基本架构(4) sx*,while symselect (sx) do x,补充例: 用递归下降分析程序进
4、行句型分析,G: SbA ABaA| Bab 输入串 baba#,SELECT(SbA) = b SELECT(ABaA)= a SELECT(A)= # SELECT(Bab) = a,G: SbA ABaA| Bab 输入串 baba#,S,主程序,program parser begin getsym; S; If sym= # Success else fail end,SbA,procedure S begin if sym in SELECT(SbA) /b if sym = b getsym; A else error else error end,ABaA|,procedure A begin if sym in SELECT(ABaA) /a B if sym = a getsym; A; else error else if sym in SELECT(A) /# else error end,Bab,procedure B begin if sym in SELECT(Bab) /a if sym = a getsym
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农耕用地管理办法
- 农资欠账管理办法
- 冰淇淋店管理办法
- 出出版管理办法
- 出版工作管理办法
- 出货通知管理办法
- 分发平台管理办法
- 分类晋级管理办法
- 列车厕所管理办法
- 创投空间管理办法
- 医疗废物处理登记表
- 卷烟真伪鉴别知识
- 2022年百色市右江区辅警考试试卷真题
- 药理学绪论-课件
- JGJ106-2014 建筑基桩检测技术规范
- 2022年06月辽宁经济管理干部学院(辽宁经济职业技术学院)公开招聘高层次人才笔试题库含答案解析
- 电脑基础知识培训ppt课件-电脑基础知识培训课件
- 龙湖集团招标管理原则
- 近亲属任职情况申报表
- GB/T 6433-2006饲料中粗脂肪的测定
- GB/T 20145-2006灯和灯系统的光生物安全性
评论
0/150
提交评论