编译原理实验报告 学 院 专 业 班 级 学 号 姓 名 指导教师 2 0 1 1 年 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])