《编译原理》课程实验报告(词法分析)完整版

《编译原理》课程实验报告(词法分析)完整版

ID:27557152

大小:151.61 KB

页数:9页

时间:2018-12-03

《编译原理》课程实验报告(词法分析)完整版_第1页
《编译原理》课程实验报告(词法分析)完整版_第2页
《编译原理》课程实验报告(词法分析)完整版_第3页
《编译原理》课程实验报告(词法分析)完整版_第4页
《编译原理》课程实验报告(词法分析)完整版_第5页
资源描述:

《《编译原理》课程实验报告(词法分析)完整版》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、题目词法分析专业计算机指导教师签名华东理工大学信息学院计算机系2013年4月100一.实验序号:《编译原理》第一次实验二.实验题目:词法分析三.实验日期:2013.3.27-2013.4.10四.实验环境(操作系统,开发语言)操作系统:Windows开发语言.•C五.实验要求•修改词法:1)将标识符的词法改为“以大写字母或小写字母开头,后面可以跟大写字母或小写字母或数字或下划线”。把while((isalpha(buffer))

2、

3、(isdigit(buffer)))改成while((isalpha(buffer))

4、

5、(

6、isdigit(buffer))

7、

8、buffer==’」)2)将<条件〉中的表示相等关系的单词“=”改“char*relation[6]={nn,n>=",n<>n};把其中的=改成==即可3)将原来无小数的数改为可以有小数的数把while(isdigit(buffer))改成while(isdigit(buffer)

9、

10、buffer==’.’)•用C语言开发词法分析程序。读入用PL/0语言编写的测试用例源程序,将识别出的一个个单词组成争词流依序同吋输出到屛幕和文件屮。六.实验步骤1)根据修改词

11、法后的PL/0语言编写测试用例源程序。2)用C语言编写词法分析程序。读入PL/0语言的测试用例源程序,进行词法分析,将识别出的一个个单词组成单词流依序同吋输出到屏幕和文件中。3)设立断点,单步运行词法分析程序,依次单个输出单词。分析和理解词法分析程序,解释同法分析程序屮的数据和变量变化的原因和输出结果。七.实验结果(测试川例源稈序,运行结果部分截图,词法分析函数主要部分源程序PL0程序:consta=6,b=81;varx,y;procEdurep;procedureq;x:=2;beginwrite(x);end;beg

12、incallp;end.c程序:#include#include#include#include#include#defineNULL0FILE*fp;charcbuffer;char*key[19]={”auto",nbreak”,"case","char",nconst",ncontinue","defaultn,’’dodouble",’’else",’’enum’’,"extern’’,"float","for","go

13、to’’,"ir’,"int’’,’’long","register’’};char*border[6]={",”,n;",’’{",n}",n(",")’’};char*arithmetic[4]={"+n,"-",n*","/n};char*relation[6]={n<",”<=char*consts[ll]={"0",”l",”2","3”,”4n,”5”,"6",”7","8”,”9",”.”};char*label[20];intlabelnum=O;intsearch(charsearchchar[],int

14、wordtype)inti=0;switch(wordtype){casel:for(i=0;i<=18;i++){if(strcmp(key[i],searchchar)==O){return(l);}}return(O);break;case2:{for(i=0;i<=5;i++){if(strcmp(border[i],searchchar)==0)return(i+l);}return(O);}break;case3:{for(i=0;i<=3;i++){if(strcmp(arithmetic[i],search

15、char)==O){return(l);}}return(O);Jbreak;case4:{for(i=0;i<=5;i++){if(strcmp(relation[i],searchchar)==0){return(l);}}return(O);}break;case5:{for(i=0;i<=10;i++){if(strcmp(consts[i],searchchar)==0){return;}}return(O);Jbreak;}charalphaprocess(charbuffer){intatype;inti=-

16、l;charalphatp[20];while((isalpha(buffer))

17、

18、(isdigit(buffer))){alphatp[++i]=buffer;buffer=fgetc(fp);alphatp[i+l]=’O’;atype=search(alphatp,l);if(atype==l

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

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

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