编译原理课程设计-词法分析之基于lex实现词法分析

编译原理课程设计-词法分析之基于lex实现词法分析

ID:9875255

大小:413.78 KB

页数:27页

时间:2018-05-13

编译原理课程设计-词法分析之基于lex实现词法分析_第1页
编译原理课程设计-词法分析之基于lex实现词法分析_第2页
编译原理课程设计-词法分析之基于lex实现词法分析_第3页
编译原理课程设计-词法分析之基于lex实现词法分析_第4页
编译原理课程设计-词法分析之基于lex实现词法分析_第5页
资源描述:

《编译原理课程设计-词法分析之基于lex实现词法分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、山东科技大学学生课程设计课程设计说明书设计题目:编译原理课程设计专业:计算机科学与技术班级:2012-2设计人:高世军学号:201201050210山东科技大学2015年7月12日2山东科技大学学生课程设计课程设计任务书学院信息科学与工程学院专业计算机科学与技术班级2012-2姓名高世军一、课程设计题目:编译原理课程设计二、课程设计主要参考资料(1)韩太鲁等,编译原理.石油大学出版社.2007.9(2)(3)三、课程设计应解决的主要问题:(1)词法分析之基于Lex实现词法分析(2)词法分析之基于文法的实现(3)语法分析之LL1分析法实现(4)四、课程设计相关附件(如:图纸、软件等

2、):(1)vc++6.0(2)ParserGenerator五、任务发出日期:2015-7-5课程设计完成日期:2015-7-12指导教师签字:系主任签字:山东科技大学学生课程设计指导教师对课程设计的评语成绩:指导教师签字:年月日山东科技大学学生课程设计目录词法分析之基于Lex实现词法分析6一、设计目的6二、设计要求6三、设计说明61.需求分析62.概要设计73.详细设计9四、运行结果及分析111.测试数据112.测试输出的结果123.设计与思考12五、总结12词法分析之基于文法的实现13一、设计目的13二、设计要求13三、设计说明131.需求分析:132.概要设计143.详细设

3、计15四、运行结果及分析191.测试数据192.测试输出的结果203.设计和思考20五、总结2123山东科技大学学生课程设计语法分析之LL1分析法实现22一、设计目的22二、设计要求22三、设计说明231.需求分析:232.概要设计243.详细设计25四、运行结果及分析261.测试数据262.测试输出的结果263.设计和思考26五、总结2723山东科技大学学生课程设计词法分析之基于Lex实现词法分析一、设计目的通过编写并上机调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将其分解成各类单词的词法分析方法。二、设计要求编制一个读单词过程,从输入的源程序中,识别出

4、各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示)三、设计说明1.需求分析a)输入及其范围Lex输入文件由3个部分组成:定义集(definition),规则集(rule)和辅助程序集(auxiliaryroutine)或用户程序集(userroutine)。这三个部分由位于新一行第一列的双百分号分开,因此,Lex输入文件的格式如下{definitions}%%{rules}%%{auxiliaryroutines}范围:识别保留字:if、int、for

5、、while、do、return等保留字类别码为1。23山东科技大学学生课程设计其他的都识别为标识符;单词类别码为2。常数为无符号整形数;单词类别码为3。运算符包括:+、-、*、/、=、>、<、>=、<=、!=;类别码为4。分隔符包括:,、;、{、}、(、);类别码为5。错误字符类别码为6。b)输出形式([数字],“单词“)数字代表所识别的单词所属的类型。c)程序功能读取文件中的源程序,然后对源程序分析,输出分析结果。d)测试数据将测试数据写在文本文件中,测试为程序的输入数据。2.概要设计a)数据类型的定义//定义集,包括头文件和变量定义%{#include#i

6、nclude#include#includeintlineno=1;//定义行号%}//定义正则表达式letter[A-Za-z]//字母digit[0-9]//数字23山东科技大学学生课程设计id({letter}

7、[_])({letter}

8、{digit}

9、[_])*//开头为字母的标识符error_id({digit})+({letter})+//开头为数字的错误标识符num{digit}+//数字集合whitespace[t]+//空格enter[]+//回车//定义识别规则%%a)主程序流程23山东科技大学

10、学生课程设计a)模块间的调用关系3.详细设计主体代码部分:%%//识别关键字{key}{printf("%d行",linenum);//打印行号printf("%s关键字",yytext);}//输出关键字//识别数字{num}{printf("%d行",linenum);//打印行号printf("%s数字",yytext);}//输出数字//识别关系运算符{guanxi}{printf("%d行",linenum);//打印行号printf("%s关系运算符",y

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

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

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