收藏 分享(赏)

编译原理词法分析程序实验报告.doc

上传人:春华秋实 文档编号:3329567 上传时间:2018-10-14 格式:DOC 页数:12 大小:184KB
下载 相关 举报
编译原理词法分析程序实验报告.doc_第1页
第1页 / 共12页
编译原理词法分析程序实验报告.doc_第2页
第2页 / 共12页
编译原理词法分析程序实验报告.doc_第3页
第3页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、.编译原理实验报告实验名称:编写词法分析程序 实验类型:设计性实验 指导教师:* 专业班级:软件工程 1401 姓 名:* 学 号:* 实验地点:东六 E 座 301 实验成绩:_日期: 2016 年 5 月 8 日.实验一编写词法分析程序一、实验目的1. 通过设计、调试词法分析程序,掌握词法分析程序的设计工具(有穷自动机) ,进一步理解自动机理论2. 掌握正则文法和正则表达式转换成有穷自动机的方法及有穷自动机实现的方法3. 确定词法分析程序的输出形式及标识符与关键字的区分方法4. 加深对理论知识的理解二、实验设计1. 设计原理:对源程序代码从头到尾扫描,将符合词法语言规则的单词输出,包括:标

2、识符、保留字、无符号整数、分界符、运算符、注释分离;判断程序的词法是否正确TEST 语言的词法规则如下:1) 、标识符:字母打头,后接任意字母或数字。2) 、保留字:标识符的子集,包括:if,else,for,while,do, int,write,read。3) 、无符号整数:由数字组成,但最高位不能为 0,允许一位的 0。4) 、分界符:(、) 、;、5) 、运算符:+、-、*、/、= 、 、=、 | = | | 0)buff0 = ch;buff1 = 0;ch = getc(fin);fprintf(fout,“%st%sn“,buff,buff);/双分界符else if(strch

3、r(doubleword,ch) 0)buff0 = ch;ch = getc(fin);if(ch = =)buff1 = ch;buff2 = 0;ch = getc(fin);fprintf(fout,“%st%sn“,buff,buff);elsebuff1 = 0;if(buff0 = !)printf(“Line %dt%st%sn“,line,“错误:“,buff);.fprintf(fout,“%st%sn“,“Error“,buff);elsefprintf(fout,“%st%sn“,buff,buff);/注释else if(ch = /)ch = getc(fin);i

4、f(ch = *)char ch1 = getc(fin);while(true)if(ch1 = EOF)printf(“Line %dt%st 没有匹配!n“, line,“错误:“ );break;ch = ch1;ch1 = getc(fin);if(ch =* ch = getc(fin);elsebuff0 = /;buff1 = 0;./输出单分界符/fprintf(fout,“%st%sn“,buff,buff);elsebuff0 = ch;buff1 = 0;flag = 3;ch = getc(fin);printf(“Line %dt%st%sn“, line, “错误:“, buff);fprintf(fout,“%st%sn“,“Error“,buff);fclose(fin);fclose(fout);return flag;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报