版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、昆明理工大学信息工程与自动化学院学生实验报告( 2012 2013 学年 第 1 学期 )课程名称:编译原理 开课实验室: 信自楼44 年月 日年级、专业、班学号姓名成绩实验项目名称简单样本语言的词法分析器指导教师李亚教师评语该同学是否了解实验原理:A.了解B.基本了解C.不了解该同学的实验能力:A.强 B.中等 C.差 该同学的实验是否达到要求:A.达到B.基本达到C.未达到实验报告是否规范:A.规范B.基本规范C.不规范实验过程是否详细记录:A.详细B.一般 C.没有 教师签名: 年 月 日一、实验目的及内容设计、编制、调试一个词法分析子程序识别单词,加深对词法分析原理的理解。二、实验原理
2、及基本技术路线图(方框原理图或程序流程图)对给定的程序通过词法分析器弄够识别一个个单词符号,并以二元式(单词种别码,单词符号的属性值)显示。而本程序则是通过对给定路径的文件的分析后以单词符号和文字提示显示。三、所用仪器、材料(设备名称、型号、规格等或使用软件)Windows下的visual c+6.0;四、实验方法、步骤(或:程序代码或操作过程)#include <iostream>#include<string>using namespace std;#define MAX 22
3、0; char ch =' 'string key15="begin","end","if","then","else","while","write","read","do", "call","const","char","until","procedure&quo
4、t;,"repeat"int Iskey(string c) /关键字判断 int i; for(i=0;i<MAX;i+) if(pare(c)=0) return 1;
5、0;return 0;int IsLetter(char c) /判断是否为字母 if(c<='z')&&(c>='a')|(c<='Z')&&(c>='A') return 1; else return 0;int IsDigit(char c)
6、0; /判断是否为数字 if(c>='0'&&c<='9') return 1; else return 0;void analyse(FILE *fpin) string arr=""
7、60; while(ch=fgetc(fpin)!=EOF) arr="" if(ch=' '|ch='t'|ch='n')
8、160; else if(IsLetter(ch) while(IsLetter(ch)|IsDigit(ch)
9、; if(ch<='Z')&&(ch>='A') ch=ch+32;
10、60; arr=arr+ch; ch=fgetc(fpin); &
11、#160; fseek(fpin,-1L,SEEK_CUR);
12、 if (Iskey(arr)cout<<arr<<"t$关键字"<<endl; else cout<<a
13、rr<<"t$普通标识符"<<endl;
14、 else if(IsDigit(ch) while(IsDigit(ch)|ch='.'&&IsDigit(fgetc(fpin)
15、0; arr=arr+ch; ch=fgetc(fpin);
16、160; fseek(fpin,-1L,SEEK_CUR); cout<<a
17、rr<<"t$无符号实数"<<endl; else switch(ch)
18、60; case'+': case'-' : case'*' : &
19、#160; case'=' : case'/' :cout<<ch<<"t$运算符"<<endl;break;
20、; case'(' : case')' : case'' :
21、60; case'' : case'' : &
22、#160; case'.' : case',' : case'' :
23、; case'' :cout<<ch<<"t$界符"<<endl;break; case':' :ch=fgetc(fpin);
24、160; if(ch='=') cout<<":="<<"t$运算符"<<endl;
25、60; else cout<<"="<<"t$运算符"<<endl; fseek(f
26、pin,-1L,SEEK_CUR); break;case'>' :ch=fgetc(fpin); &
27、#160; if(ch='=') cout<<">="<<"t$运算符"<<endl; if(ch='
28、>')cout<<">>"<<"t$输入控制符"<<endl; else cout<<">"<<"t$运算符"<<en
29、dl; fseek(fpin,-1L,SEEK_CUR);
30、160; break; case'<' :ch=fgetc(fpin);
31、60; if(ch='=')cout<<"<="<<"t$运算符"<<endl; else if(ch='<')cout&l
32、t;<"<<"<<"t$输出控制符"<<endl; else if(ch='>') cout<<"<>"<<"t$运算符"
33、<<endl; elsecout<<"<"<<"t$运算符"<<endl; &
34、#160; fseek(fpin,-1L,SEEK_CUR); break; default : cout<<ch<<"t$无法识别字符"<<endl; void main() char in_fn30; FILE * fpin;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市政工程竣工验收资料归档全部内容精
- 市老年人体育文娱活动中心项目可行性研究报告
- 糖尿病肾病患者的饮食宣教
- 2025《谏太宗十思疏》君主修养之道课件
- 2025《祝福》人物命运课件
- 幼儿园安全用电制度培训课件
- 建筑施工高处作业吊篮安全生产管理制度培训
- 尘毒噪及射线安全管理制度培训
- 从业人员健康与培训管理制度全流程实施指南
- 发电厂运行工人岗位安全职责培训课件
- 舌下腺囊肿护理
- 保洁公司合作协议
- 学校食堂“三同三公开”制度实施方案
- 2024年开学第一课:人工智能与未来教育
- 《老年性骨质疏松症中西医结合诊疗指南》
- 社会实践报告之山西传统民俗文化
- GB/T 18314-2024全球导航卫星系统(GNSS)测量规范
- 专题10 说明文阅读(含答案+原卷版)备战2025年中考语文真题专项汇编(全国版)
- 【乡村振兴背景下农村居家养老服务的问题及对策:H村为例(后附问卷)11000字(论文)】
- DL-T-5115-2016混凝土面板堆石坝接缝止水技术规范
- 中考数学常见几何模型全归纳提分精练专题13最值模型-瓜豆原理(原卷版+解析)
评论
0/150
提交评论