版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年人力资源管理实践笔试题目
- 2026年设计岗位晋级创意总监预测模拟试题
- 2026年食品安全与营养健康题库
- 2026年公务员考试党建与意识形态工作知识模拟题
- 2026年能源行业招聘面试题集市场分析与高效销售技巧考察
- 2026年国际商务谈判技巧模拟实操题目
- 2026年PMP项目计划编制与执行试题精讲
- 2026年工业设计师认证题集与答题技巧
- 2026年系统集成项目风险管理与信息处理模拟试题集
- 2026年旅游管理专业知识测试题目及答案
- 寻脉山河:中国主要河流与湖泊的空间认知与生态理解-八年级地理教学设计
- 达人精准运营方案
- 四川省凉山州2025-2026学年上学期期末考试七年级数学试题(含答案)
- 语文试题-汕头市2025-2026学年度普通高中毕业班教学质量监测(含解析)
- 水利水电工程单元工程施工质量验收标准(2025版)解读课件
- 水利工程项目设计审批流程与管理要点
- 湖北省2026届高三上学期元月调考政治+答案
- 2026年浙江高考英语考试真题及答案
- 垃圾填埋场排水施工方案
- 2026届江苏省连云港市赣榆区高二上数学期末综合测试试题含解析
- 办公室颈椎保养课件
评论
0/150
提交评论