广工编译原理实验报告
17页1、1课内实验报告项目名称 PL/0 编译器 学 院_ 计算机学院_专 业_ _年级班别_学 号 _学生姓名_ _辅导教师_成 绩_ _目录2一、课内实验的内容-4二、实验修改部分-4三、概述-11四、结构设计说明-11五、各功能模块描述-14六、主要成份描述-14七、测试用例-16八、开发过程和完成情况-21一、课内实验的内容对 PL/0 作以下修改扩充:(1)增加单词:保留字 ELSE,FOR, STEP,RETURN运算符 +=,-=,+,-, &,|,(2)修改单词:不等号# 改为 =a&ch=a&ch=0&ch=0)i=k+1;while(ij)sym=wsymk;elsesym=ident;elseif(ch=0&ch=0&chnmax)error(30);elseif(ch=:) /*检测赋值符号*/getchdo;if(ch=)sym=becomes;getchdo;elsesym=nul; /*不能识别的符号*/elseif(ch=) /*检测大于或大于等于符号*/ getchdo;if(ch=)sym=geq;getchdo;elsesym=gtr;/*这里之间为添加的
2、内容*/else if(ch=+)/*检测+,+=,+符号*/getchdo;if(ch=)sym=pluseq;getchdo;else if(ch=+)sym=plusone;getchdo;elsesym=plus;else if(ch=-)/*检测 -,-=,-符号*/getchdo;if(ch=)sym=minuseq;getchdo;else if(ch=-)sym=minusone;getchdo;else sym=minus;/*这里之间为添加的内容*/elsesym=ssymch;/* 当符号不满足上述条件时,全部按照单字符号处理*/getchdo;/richardif(sym!=period)getchdo;/end richardreturn 0;Statement()增加的内容:(将本来“if(sym=becomes)”部分的内容修 36改为处理+, +=,-,-=),并在 Statement()中定义变量 int sym2;if(sym=becomes|sym=pluseq|sym=minuseq|sym=plusone|sym=minusone) sym2=
3、sym;getsymdo;gendo(lod,lev-tablei.level,tablei.adr);elseerror(13);if(sym2=plusone|sym2=minusone)/* 准备按照 a+、a- 语句处理,与 read 类似 */if(i!=0)if(sym2=plusone)gendo(lit,0,1);gendo(opr,0,2);gendo(sto,lev-tablei.level,tablei.adr); if(sym2=minusone)gendo(lit,0,1);gendo(opr,0,3);gendo(sto,lev-tablei.level,tablei.adr); elsememcpy(nxtlev,fsys,sizeof(bool)* symnum);expressiondo(nxtlev,ptx,lev);if(i!=0) if(sym2=becomes)gendo(sto,lev-tablei.level,tablei.adr);if(sym2=pluseq)gendo(opr,0,2);gendo(sto,lev-tablei.lev
4、el,tablei.adr);if(sym2=minuseq)gendo(opr,0,3);gendo(sto,lev-tablei.level,tablei.adr);/else74、修改单词:不等号# 改为 的识别( 在)那部分:if(ch=) /add neq sym=neq;getchdo;/*在之间添加*/else sym=lss;5、增加条件语句的 ELSE 子句 PL0.cpp在 statement()里的“if.then”语句处理的基础上添加对 else 子句 1的处理,使之能处理 ifthenelse的语句。elseif(sym=ifsym) /*准备按照 if 语句处理*/getsymdo;memcpy(nxtlev,fsys,sizeof(bool)*symnum);nxtlevthensym=true;nxtlevdosym=true; /*后跟符号为then或 do*/conditiondo(nxtlev,ptx,lev); /*调用8条件处理(逻辑运算)函数*/if(sym=thensym)getsymdo;elseerror(16); /*缺少 then*
《广工编译原理实验报告》由会员宝路分享,可在线阅读,更多相关《广工编译原理实验报告》请在金锄头文库上搜索。
一种高炉喷煤喷吹罐底部硫化装置密封改造
谈谈公文写作的两个关键问题
大学生职业生涯规划之课件【P33】
2018高考物理(新课标)一轮复习讲解第六章机械能第3讲机械能守恒定律及其应用
两学一做四个合格做合格党员PPT课件
软件体系结构-作业2017-3
嵌入式Linux操作系统第2章-1
售前交流技巧和经验
《民主选举:投出理性一票》课件(新人教版必修2)1
路面工程施工与检测单元一沥青混合料路面基础知识
有机反应机理(2013年1月21日)
武汉枫叶学校4BC分级考试说明
思想品德《友好交往礼为先》课件(人教新课标八年级上)
青开八中教师草根讲坛张所治
医患关系紧张的主要原因
【南昌银沙湾农庄】项目介绍
苏教版六年级语文8《三打白骨精》
高三第二阶段历史复习要略(周崴)
语言表达准确生动得体
2017语文S版语文一年级下册识字4《拍手歌》课件3
2024-05-10 7页
2024-05-06 3页
2024-05-06 105页
2024-05-06 98页
2024-05-06 98页
2024-05-05 73页
2024-05-05 253页
2024-05-05 62页
2024-05-05 64页
2024-05-05 72页