




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学院:计算机科学与技术学院班级: 计科 09-1 班 姓名:潘伟群学号:08093334实验一 词法分析实验目的1、学会针对 DFA转换图实现相应的高级语言源程序。2、深刻领会状态转换图的含义,逐步理解有限自动机。3、掌握手工生成词法分析器的方法,了解词法分析器的内部工作原理。 实验内容TINY计算机语言的编译程序的词法分析部分实现。token )从左到右扫描每行该语言源程序的符号, 拼成单词, 换成统一的内部表示 送给语法分析程序。为了简化程序的编写,有具体的要求如下:(1)数仅仅是整数。(2)空白符仅仅是空格、回车符、制表符。(3)代码是自由格式。(4)注释应放在花括号之内,并且不允许嵌套
2、三实验要求要求实现编译器的以下功能:(1) 按规则拼单词 , 并转换成二元式形式( 2) 删除注释行( 3) 删除空白符 ( 空格、回车符、制表符 )( 4) 列表打印源程序,按照源程序的行打印,在每行的前面加上行号,并且打印出每行包含的记号的二元形式5) 发现并定位错误,词法分析进行具体的要求:( 1) 记号的二元式形式中种类采用枚举方法定义;其中保留字和特殊字符是每个都 一个种类, 标示符自己是一类, 数字是一类; 单词的属性就是表示的字符串值。(2) 词法分析的具体功能实现是一个函数 GetToken() ,每次调用都对剩余的字符串 分析得到一个单词或记号识别其种类,收集该记号的符号串属
3、性,当识别一个 单词完毕,采用返回值的形式返回符号的种类,同时采用程序变量的形式提供 当前识别出记号的属性值。 这样配合语法分析程序的分析需要的记号及其属性, 生成一个语法树。( 3) 标示符和保留字的词法构成相同,为了更好的实现,把语言的保留字建立一个 表格存储,这样可以把保留字的识别放在标示符之后,用识别出的标示符对比 该表格,如果存在该表格中则是保留字,否则是一般标示符。四、实验代码 #include#include#include char prog80,token8;char ch;int syn,p,m=0,n,row,sum=0;char *rwtab6=begin,if,the
4、n,while,do,end;void scaner()for(n=0;n=a&ch=A&ch=0&ch=a&ch=A&ch=Z) tokenm+=ch;ch=progp+;tokenm+=0;p-;syn=10;for(n=0;n=0&ch=0&ch32767)syn=-1;else switch(ch)case)syn=21;tokenm+=ch;else if(ch=)syn=22;tokenm+=ch;elsesyn=23;p-;break;case:m=0;tokenm+=ch; ch=progp+; if(ch=) syn=24;tokenm+=ch;elsesyn=20;p-;b
5、reak;case:m=0;tokenm+=ch; ch=progp+; if(ch=)syn=18;tokenm+=ch;elsesyn=17; p-;break;case*:syn=13;token0=ch;break;case/:syn=14;token0=ch;break;case+:syn=15;token0=ch;break;case-:syn=16;token0=ch;break;case=:syn=25;token0=ch;break;case;:syn=26;token0=ch;break;case(:syn=27;token0=ch;break;case):syn=28;token0=ch;break;case#:syn=0;token0=ch;break;casen:syn=-2;break;default: syn=-1;break;void main()p=0;row=1;coutPlease input string:endl;docin.get(ch);progp+=ch;while(ch!=#);p=0;doscaner();switch(syn)case 11: cout(syn,sum)endl; break;case -1: coutError in row row!endl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年湖北省随州市高一下学期2月联考化学试题及答案
- 深入了解视觉传播设计小自考考试内容及试题及答案
- 幼儿园公招试题及答案
- 小学六年级语文阅读训练试题及答案
- 2024年CPBA考题研究试题及答案
- 市场创新与新产品小自考试题及答案
- 广西防城港市上思县2022-2023年三年级下学期英语第二次学习成果监测(含答案)
- 妇科主管护师试题及答案
- 古代文学史演绎选择题及答案
- 移动互联网技术考题及答案
- 2024年宁波枢智交通科技有限公司招聘考试真题
- 数学丨湖北省八市2025届高三下学期3月联考数学试卷及答案
- 2024年贵州省普通高中学业水平选择性考试地理试题
- 2024年中国工商银行远程银行中心招聘考试真题
- 2025年我的师德小故事标准教案21
- 3 学会反思第二课时 养成反思好习惯 教学设计-2023-2024学年道德与法治六年级下册统编版
- 二零二五年度汽车销售业务员劳动合同(新车与二手车)
- 护理人员中医技术使用手册(2024版)
- 设备设施风险分级管控清单
- 河北养老托育项目可行性研究报告
- 急诊医学题库含参考答案
评论
0/150
提交评论