




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验 1:扫描器的设计与实现1.1. 目的和要求1 加深对词法分析理论的理解,培养动手实践的能力。2 学会从以字符串表示的源程序中识别出具有独立意义的基本语法单位,同时指出它们的属性的方法和技术。1.2. 实验环境windows xp + wintc1911.3. 实验准备1、先将课本3.5 节词法分析程序的生成认真的学习一遍,理解词法分析程序的构成过程。2、写出 c 语言测试程序,分析可能得到的结果。测试程序:#define pi 3.14void main()double r = 2.5;double s = 0.0;s = pi*r*r;printf(%f,s);预测结果:(513,#)
2、(14,define)(100,pi)(200,3)(514,.)(200,14)(1,void)(2,main)(502,()(503,)(506,)(15,double)(100,r)(402,=)(200,2)(514,.)(200,5)(501,;)(15,double)(100,s)(402,=)(200,0)(514,.)(200,0)(501,;)(100,s)(402,=)(100,pi)(416,*)(100,r)(416,*)(100,r)(501,;)(12,printf)(502,()(509,)(511,%)(100,f)(509,)(512,)(100,s)(503
3、,)(501,;)(507,)1.4. 实验内容及步骤1、输入已给的文本格式的扫描程序lexical.c文件,然后编译运行,检查修改错误。2、编译成功后,提示输入c 语言测试程序,用回车键查看输出的单词流,即单词符号及其属性。3、比较自己分析的结果和屏幕上的输出结果。1.5. 实验小结1、得到的经验。通过本次实验,我了解了如何设计、编制并调试词法分析程序,加深了对词法分析原理的理解。同时,在编制和调试程序时要全面考虑,避免漏掉或者错误定义定界符等,造成不必要的错误。2、遇到的主要问题。忘记对空格、回车符等定界符进行设置等。3、改进方案。( 1) char *keywords15 = void,
4、main,if,then,break,int,char,float,include,for ,while,printf,scanf,define,double;( 2) case 13:flag = 14;status = 1;break;case 14:flag = 15;status = 1;break;( 3) case.: wordsj = ch; wordsj+1 = 0; flag = 514; break;case : wordsj = ; flag = 250; break;casen: flag = 251; break;( 4) else if(flag = 250|fla
5、g = 251)修改前源代码:#includestdio.h#includestdlib.h#includestring.hint i,j,k,flag,number,status;/*status which is use to judge the string is keywords or not!*/ char ch;char words10 = ;char program500;int scan(char program)char *keywords13 =void,main,if,then,break,int,char,float,include,for,while,printf,s
6、canf;number = 0;status= 0;j = 0;ch = programi+;/*handle letters*/if (ch = a) & (ch = a) & (ch = z )wordsj+=ch;ch=programi+;i-;wordsj+ = 0;for (k = 0; k = 0) & (ch = 0 ) & (ch :if (ch = )wordsj+ = ch;wordsj= 0;ch= programi+;if (ch = =)wordsj+ = ch;wordsj = 0;flag = 403;elsei-;flag = 404;break;case:if
7、 (ch = = a) & (ch = a) & (ch = z )wordsj+=ch;ch=programi+;i-;wordsj+ = 0;for (k = 0; k = 0) & (ch = 0 ) & (ch :if (ch = )wordsj+ = ch;wordsj= 0;ch= programi+;if (ch = =)wordsj+ = ch;wordsj = 0;flag = 403;elsei-;flag = 404;break;case:if (ch = )wordsj+ = ch;wordsj= 0;ch= programi+;if (ch = =)wordsj+ =
8、 ch;wordsj= 0;flag = 405;elsei-;flag = 406;break;case!:if (ch = !)wordsj+ = ch;wordsj= 0;ch = programi+;if (ch = =)wordsj+ = ch;wordsj= 0;flag= 407;elsei-;flag = 408;break;case+:if (ch = +)wordsj+ = ch;wordsj= 0;ch= programi+;if (ch = =)wordsj+ = ch;wordsj= 0;flag= 409;else if (ch = +)wordsj+ = ch;w
9、ordsj= 0;flag= 410;elsei-;flag= 411;break;case-:if (ch = -)wordsj+ = ch;wordsj= 0;ch= programi+;if (ch = =)wordsj+ = ch;wordsj= 0;flag = 412;else if( ch = -)wordsj+ = ch;wordsj= 0;flag = 413;elsei-;flag = 414;break;case*:if (ch = *)wordsj+ = ch;wordsj= 0;ch= programi+;if (ch = =)wordsj+ = ch;wordsj=
10、 0;flag = 415;elsei-;flag = 416;break;case/:if (ch = /)wordsj+ = ch;wordsj= 0;ch= programi+;if (ch = =)wordsj+ = ch;wordsj= 0;flag= 417;elsei-;flag = 418;break;case;:wordsj= ch;wordsj+1 = 0;flag = 501;break;case(:wordsj= ch;wordsj+1 = 0;flag = 502;break;case):wordsj= ch;wordsj+1 = 0;flag = 503;break
11、;case:wordsj = ch;wordsj+1 = 0;flag = 504;break;case:wordsj= ch;wordsj+1 = 0;flag = 505;break;case:wordsj= ch;wordsj+1 = 0;flag= 506;break;case:wordsj = ch;wordsj+1 = 0;flag = 507;break;case:wordsj= ch;wordsj+1 = 0;flag = 508;break;case:wordsj = ch;wordsj+1 = 0;flag = 509;break;case%:if (ch = %)word
12、sj+ = ch;wordsj= 0;ch = programi+;if (ch = =)wordsj+ = ch;wordsj= 0;flag= 510;elsei-;flag = 511;break;case,:wordsj = ch;wordsj+1 = 0;flag = 512;break;case#:wordsj = ch;wordsj+1 = 0;flag = 513;break;case:wordsj = #;flag = 0;break;case.:wordsj = ch;wordsj+1 = 0;flag = 514;break;case :wordsj = ;flag = 250;break;casen:flag = 251;break;default:flag = -1;break;return flag;main()i=0;printf(please input a program end with );doch = getchar();programi+ = ch;while(ch != );i = 0;doflag = scan(program);if (flag = 200)printf(%2d,%4d),flag,num
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行收费管理办法试行
- 上海工程保修期管理办法
- 四年级数学下学期期末试卷分析
- 商场三八妇女节策划书
- 创业合伙协议书
- 2025年湖南省安乡县一中高一物理第二学期期末考试试题含解析
- 食品厂受限空间作业审批制度
- 常德市固体废物管理办法
- 防灾减灾考核管理办法
- 家长制到雇佣制管理办法
- 介入室耗材管理课件
- 三级直播销售员(高级)职业技能鉴定考试复习题及答案
- 炎症后色素沉着防治专家共识(2024版)解读
- T/SHPTA 093-2024漆面保护用聚氨酯薄膜
- 2025年中国半胱氨酸及其盐酸盐行业市场前景预测及投资价值评估分析报告
- 带小孩上班协议书
- 隧道居间合同协议书范本
- 2025年高考作文备考训练之题目解析及范文:大海与池塘
- 安全操作规程总结
- 农发行考试题及答案
- 高标准农田建设监理规范与实施策略
评论
0/150
提交评论