版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电流转电压电路课程设计
- 2024年版混凝土施工承包合同样本版
- 永济薪酬绩效课程设计
- 家长会学生发言稿13篇
- 2024年度冷链运输危险货物全程安全监控合同3篇
- 2025年山东淄博市省属公费师范毕业生竞岗选聘203人历年管理单位笔试遴选500模拟题附带答案详解
- 2025年山东淄博临淄区卫生健康系统急需紧缺专业人才招聘37人历年管理单位笔试遴选500模拟题附带答案详解
- 2025年山东济宁梁山县事业单位招聘工作人员(综合类)32人历年管理单位笔试遴选500模拟题附带答案详解
- 2025年山东济南市章丘区殡仪馆招聘工作人员10人管理单位笔试遴选500模拟题附带答案详解
- 2025年山东泰安市东平县事业单位招考管理单位笔试遴选500模拟题附带答案详解
- 建筑结构荷载统计计算表格(自动版)
- 部编人教版七年级上册道德与法治 第8课 第二框 敬畏生命 同步练习(作业设计)
- 事故隐患报告和举报奖励制度
- 腹部外伤门诊病历
- 银行保险理财沙龙.ppt课件
- 品质异常处理及要求培训
- 模具部年终总结--ppt课件
- 标准OBD-II故障码
- 连铸机维护及维修标准
- 立式热虹吸再沸器机械设计说明书
- 国家开放大学《水利水电工程造价管理》形考任务1-4参考答案
评论
0/150
提交评论