实验一 简单样本语言的词法分析器

实验一 简单样本语言的词法分析器

ID:47491011

大小:278.01 KB

页数:9页

时间:2020-01-12

实验一 简单样本语言的词法分析器_第1页
实验一 简单样本语言的词法分析器_第2页
实验一 简单样本语言的词法分析器_第3页
实验一 简单样本语言的词法分析器_第4页
实验一 简单样本语言的词法分析器_第5页
资源描述:

《实验一 简单样本语言的词法分析器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、昆明理工大学信息工程与自动化学院学生实验报告(2014—2015学年第1学期)课程名称:编译原理开课实验室:信自楼机房4442014年11月20日年级、专业、班学号姓名成绩实验项目名称简单样本语言的词法分析器指导教师李亚教师评语该同学是否了解实验原理:A.了解□B.基本了解□C.不了解□该同学的实验能力:A.强□B.中等□C.差□该同学的实验是否达到要求:A.达到□B.基本达到□C.未达到□实验报告是否规范:A.规范□B.基本规范□C.不规范□实验过程是否详细记录:A.详细□B.一般□C.没有□教师签名:年月日

2、一、实验目的及内容实验目的:能够采用C编程语言实现简单的词法分析程序,设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。实验内容:实现我们定义的语言的词法分析器。这种语言的程序结构很简单,语法相当于c的函数体,即由一对大括号括起来的语句序列,没有过程或函数。声明语句、表达式语句及控制语句的写法都与c类似,但规定:一条声明语句只能声明一个整型变量,没有数组;控制语句只是if、for和while三个语句,这三个语句本身也可以包含语句序列;表达式仅局限于布尔表达式和整型算术表达式,布尔表达式由对两个算术表达

3、式的比较组成,该比较使用<,>,<=,>=,==,!=比较运算符;算术表达式可以包括整型常数、变量以及+,-,*,/这四个运算符。另外,还可以有复合语句。用read和write语句实现输入输出。注释用/*和*/括起来,但注释不能嵌套。-9-一、实验原理及基本技术路线图(方框原理图或程序流程图)词法分析器流程图:三、所用仪器、材料(设备名称、型号、规格等或使用软件)1台PC及VISUALC++6.0软件。四、实验方法、步骤(或:程序代码或操作过程)源代码:#include#include

4、ring>usingnamespacestd;-9-#defineMAX22charch='';stringkey[15]={"begin","end","if","then","else","while","write","read","do","call","const","char","until","procedure","repeat"};intIskey(stringc){//关键字判断inti;for(i=0;i

5、return0;}intIsLetter(charc){//判断是否为字母if(((c<='z')&&(c>='a'))

6、

7、((c<='Z')&&(c>='A')))return1;elsereturn0;}intIsDigit(charc){//判断是否为数字if(c>='0'&&c<='9')return1;elsereturn0;}voidanalyse(FILE*fpin){stringarr="";while((ch=fgetc(fpin))!=EOF){arr="";-9-if(ch==''

8、

9、ch

10、=='t'

11、

12、ch==''){}elseif(IsLetter(ch)){while(IsLetter(ch)

13、

14、IsDigit(ch)){if((ch<='Z')&&(ch>='A'))ch=ch+32;arr=arr+ch;ch=fgetc(fpin);}fseek(fpin,-1L,SEEK_CUR);if(Iskey(arr)){cout<

15、(IsDigit(ch)

16、

17、ch=='.'&&IsDigit(fgetc(fpin))){arr=arr+ch;ch=fgetc(fpin);}fseek(fpin,-1L,SEEK_CUR);cout<

18、e'.':case',':case'{':case'}':cout<':

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。