编译原理-词法分析(精品)

编译原理-词法分析(精品)

ID:44645185

大小:356.37 KB

页数:8页

时间:2019-10-24

编译原理-词法分析(精品)_第1页
编译原理-词法分析(精品)_第2页
编译原理-词法分析(精品)_第3页
编译原理-词法分析(精品)_第4页
编译原理-词法分析(精品)_第5页
资源描述:

《编译原理-词法分析(精品)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《编译原理》课程实验报告题目词法分析专业计科二学位班级1班学号1102027姓名程振坤指导教师签名郑瑶实验序号:《编译原理》第一次实验二.实验题目:词法分析三.实验日期:2012.10.20至2012.11.3四.实验环境(操作系统,开发语言)操作系统:Windows开发语言:C++五.实验要求1)将标识符的词法改为“以大写字母或小写字母开头,后而可以跟大写字母或小写字母或数字或卜•划线”。2)将v条件〉中的表示相等关系的单词“二”改为3)增加字符串常量的识别。4)将原来无小数的数改为可以有小数的数二.实验步骤1)用PL/

2、O语言编写测试用例源程序。用C++语言编写词法分析程序。2)运行词法分析程序,读入PL/O语言的测试用例源程序,进行词法分析。3)设立断点,单步运行词法分析程序,依次单个输出单词。分析和理解词法分析程序,解释词法分析程序屮的数据和变量变化的原因和输出结果。4)根据上述“实验要求”修改词法分析程序,同时也应修改PL/O语言测试用例源程序中的相应的单词。因为整个程序核心读取函数是getaword()函数,所以根据实验要求我进行了如下修改:1.将标识符的词法改为“以大写字母或小写字母开头,后面可以跟大写字母或小写字母或数字或下划

3、线”。if(cACharacter>=,a&&cACharacter<=,z

4、cACharacter>=,A*&&cACharacter<=,Z')〃如果当前字符是小写的字母或大写字母增加了读入大写字母的功能do{if(nAWordIndex

5、racter>=,a'&&cACharactcr<=,z'IcACharacter>=,O'&&cACharacter<=,9?IcACharacter>=,A'&&cACharacter<=,Z,

6、

7、cACharacter==,_,)&&cACharacter!=EOF);〃只要后面继续跟a.•z或0・・9或AZ或下划线,就要继续看后而的字符2.将v条件〉中的表示相等关系的单词“二”改为“二二”if(cACharacter==,二')//当前符号是'二'?cACharacter=GetACharacterFromFil

8、e();〃如果当前符号是'二',则要再看下一个符号if(cACharacter二二'二')//如果下一个符号是'二'{//则单词是条件符号〃二二〃g_Words[g_nWordsIndex].eType=EQL;//单词类型为单词类型枚举值EQLstrcpy(g_Words[g_nWordsIndex].szName,〃二二〃);//识别出的单词放进单词队列g_Words中gWords[gnWordsIndex].nLineNo=g_nLineNo;//在源代码文件中单词所1在的行殴g_nWordsIndcx++;//识别

9、出的单词个数加一cACharacter=GetACharacterFromFile();//再取一个符号,为下一步准备rcturnOK;}else请修改错误!cout<

10、(nAWordTndex

11、ndex]=0;//以0结尾,在单词数组中组成一个单词字符串gWords[gnWordsIndex].eType二CHAR;//单词类型为单词类型枚举值CHARstrcpy(g_Words[g_nWordsIndcx].szNamc,szAWord);//识别出的单词放进单词队列gJVords屮gWor

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。