PL0编译原理课程设计PL0 + 理课程设计报告.docxVIP

PL0编译原理课程设计PL0 + 理课程设计报告.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 2 PAGE 1 ‘PL0.cpp’ #include pl0.h /************************************************************************** * PL/0 语言编译程序,由江汉石油学院计算机系周云才根据清华大学出版社出版, * 吕映芝,张素琴,蒋维杜编写的教材《编译原理》中第二章(PL/0编译程序的实现) * 以及附录A中的代码改编而成。 * 代码版权由周云才拥有,使用者必须遵循以下约定: * 可以免费使用此文件,但必须包含此声明。 * 可以修改、传播、打印、出版这里的源代码。 * 可以在任何软件工程中使用这里的源代码。 ********************************************************************************************* */ // 错误字符串数组 string PL0::errStr[]={ ,error 0001: 常数说明中“=”写成“:=”, error 0002: 常数说明中的“=”后应为数字, error 0003: 常数说明中的标识符后应是“=”, error 0004: const,var,procedure后应为标识符, error 0005: 漏掉了‘,’或‘;’, error 0006: 过程说明后的符号不正确(应是语句开始符或过程开始符), error 0007: 应是语句开始符, error 0008: 过程体内语句部分的后跟符不正确, error 0009: 程序皆为丢了句号‘.’, error 0010: 语句之间漏了‘;’, error 0011: 标识符没说明, error 0012: 赋值语句中,赋值号左部标识符属性应是变量, error 0013: 赋值语句左部标识符应是赋值号:=, error 0014: call后应为标识符, error 0015: call后标识符属性应为过程, error 0016: 条件语句中丢了then, error 0017: 丢了end或;, error 0018: while型循环语句中丢了do, error 0019: 语句后的标识符不正确, error 0020: 应为关系运算符, error 0021: 表达式内标识符属性不能是过程, error 0022: 表达式中漏掉了右括号‘)’, error 0023: 因子后的非法符号, error 0024: 表达式开始符不能是此符号, error 0025: 文件在不该结束的地方结束了, error 0026: 结束符出现在不该结束的地方, error 0027: ,error 0028: ,error 0029: ,error 0030: , error 0031: 数越界, error 0032: read语句括号中标识符不是变量, error 0033: else附近错误 , error 0034: repeat附近错误}; // PL0构造函数 PL0::PL0(char* source,char*destination) { listswitch=true,sourceEnd=false; strcpy(word[1],begin); // 初始化存储保留字 strcpy(word[2],call); strcpy(word[3],const); strcpy(word[4],do); strcpy(word[5],else); strcpy(word[6],end); strcpy(word[7],if); strcpy(word[8],odd); strcpy(word[9],procedure); strcpy(word[10],read); strcpy(word[11],repeat); strcpy(word[12],then); strcpy(word[13],until); strcpy(word[14],var); strcpy(word[15],while); strcpy(word[16],write); wsym[1]= BEGINSYM; wsym[2]= CALLSYM; // 初始化保留字表中每一个保留字对应的symbol类型 wsym[3]= CONSTSYM; wsym[4]= DOSYM; wsym[5]= ELSESYM;

文档评论(0)

zhuliyan1314 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档