- 21
- 0
- 约4.79千字
- 约 7页
- 2017-09-02 发布于浙江
- 举报
编译原理实验报告增加单词修改单词增加条件语句的ELSE子句
编译原理实验报告
学 院
专 业
班 级
学 号
姓 名
指导教师
2011 年1 月 8 日
学院 专业 班 组、学号
姓名 协作者_________ 教师评定_________________
实验题目 增加单词
实验目的与要求
在分析理解一个教学型编译程序(如PL/0)的基础上,对其词法分析程序。
实验内容
增加单词:保留字 ELSE,FOR,TO,DOWNTO,RETURN
运算符 += -= ++ --
设计方法
1、首先修改头文件“pl0.h”:
enum symbol{
nul, ident, number, plus, minus,
times, slash, oddsym, eql, neq,
lss, leq, gtr, geq, lparen,
rparen, comma, semicolon, period, becomes,
beginsym, endsym, ifsym, thensym, whilesym,
writesym, readsym, dosym, callsym, constsym,
varsym, procsym, elsesym, forsym, tosym,
downtosym, returnsym, pluseql, minuseql, plusplus,
minusminus,
/*符号枚举体增加5个关键字4个运算符,用黑体字标注*/
};
# define norw 18 /*关键字个数数由初始值13增加至18 */
#define symnum 41 /*符号数初始值由32增加至41 */
2、接着修改源程序“PL0.cpp”:
/*设置保留字名字,按照字母顺序,便于折半查找*/
strcpy((word[0][0]),begin);
strcpy((word[1][0]),call);
strcpy((word[2][0]),const);
strcpy((word[3][0]),do);
strcpy((word[4][0]),downto); /*增加保留字DOWNTO*/
strcpy((word[5][0]),else); /*增加保留字ELSE*/
strcpy((word[6][0]),end);
strcpy((word[7][0]),for); /**增加保留字FOR*/
strcpy((word[8][0]),if);
strcpy((word[9][0]),odd);
strcpy((word[10][0]),procedure);
strcpy((word[11][0]),read);
strcpy((word[12][0]),return); /*增加保留字RETURN*/
strcpy((word[13][0]),then);
strcpy((word[14][0]),to); /*增加保留字TO*/
strcpy((word[15][0]),var);
strcpy((word[16][0]),while);
strcpy((word[17][0]),write);
/*设置保留字符号*/
wsym[0]=beginsym;
wsym[1]=callsym;
wsym[2]=constsym;
wsym[3]=dosym;
wsym[4]=downtosym; /*增加保留字符号downtosym*/
wsym[5]=elsesym; /*增加保留字符号elsesym*/
wsym[6]=endsym;
wsym[7]=forsym; /*增加保留字符号
您可能关注的文档
最近下载
- WF-007A多功能自动氩弧填丝机使用说明书7.pdf VIP
- 科技英语写作讲义.pdf VIP
- SYT 5382-2009 钻井液固相含量测定仪.docx VIP
- 《消毒供应质量控制指标(2024年版)》.docx VIP
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
- 2012下半年深圳市机关公开招考公务员职位表.doc VIP
- 国际期刊科技论文写作与发表.PDF VIP
- 《苹果手机删除的照片如何恢复?苹果最近删除照片恢复.docx VIP
- 水平井完井工艺技术要求,SY_T6-2016.pdf VIP
- SY/T 6270-2017 石油天然气钻采设备固井、压裂管汇的使用与维护.pdf VIP
原创力文档

文档评论(0)