下载此文档

基于LEX的词法分析器实验报告.docx


文档分类:高等教育 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
编译原理课程实验报告实验名称:基于LEX的词法分析器学生姓名:赵宁学生学号:指导教师毛静一、实验目标自动构造C-语言的的词法分析器,要求能够掌握编译原理的基本理论,,理解编译程序的基本结构,掌握编译各阶段的基本理论和技术,掌握编译程序设计的基本理论和步骤.,增强编写和调试高级语言源程序的能力,掌握词法分析的基本概念和实现方法,熟悉C-语言的各种Token。二、实验原理及方法Lex输入文件由3个部分组成:定义集(definition),规则集(rule)和辅助程序集(auxiliaryroutine)或用户程序集(userroutine)。这三个部分由位于新一行第一列的双百分号分开,因此,Lex输入文件的格式如下{definitions}%%{rules}%%{auxiliaryroutines}而且第一部分用“%{”和“%}”括起来。第一和第三个部分为C语言的代码和函数定义,第二个部分为一些规则。定义正则表达式如下ID=letterletter*NUM=digitdigit*Letter=a|…|z|A|…|ZDigit=0|…|9Keyword=else|if|int|return|void|whileSpecialsymbol=+|-|*|/|<|<=|>|>=|==|!=|=|;|,|(|)|[|]|{|}|/*|*/Whitespace=“”Enter=\n在lex中的构造letter[A-Za-z]digit[0-9]id({letter}|[_])({letter}|{digit}|[_])*error_id({digit})+({letter})+num{digit}+whitespace[\t]+enter[\n]+构造DFA图三、的安装配置;利用ParserGenarator的词法分析器构造四、的安装配置1、lex的安装首先,,安装完毕后,将c:\gnuwin32\:\MinGW\lib里面。再者,设置环境变量。最后,测试安装是否成功。2、使用lex生成此法分析器:新建文本文件,,敲入下面代码-------词法分析器的源代码%{intwordCount=0;intnumcount=0;%}chars[A-Za-z\_\'\.\"]numbers([0-9])+delim[""\n\t]whitespace{delim}+words{chars}+%%while{ECHO;printf("%s\n",yytext);}{words}{wordCount++;/*increasethewordcountbyone*/}{whitespace}{/*donothing*/}([0-9])+{numcount++;/*onemaywanttoaddsomeprocessinghere*/}%%voidmain(){printf("ok1\n");yylex();/*starttheanalysis*/printf("ok2\n");printf("Noofwords:%d\nnumber:%d\n",wordCount,numcount);return0;}intyywrap(){return1;}2、新建文本文件,,敲入下面代码--------此为输入源代码asdasdf23qa1b2!#***@while3、打开菜单,运行,输入cmd。输入:cd文件夹路径输入::gcc--,现在我们已得到了一个简易的词法分析器,下面就是运用次词法分析器,:<>"int"|"else"|"return"|"void"|"if"|"while"{Upper(yytext,yyleng);printf("%d行",lineno);printf("%sreservedword\n",yytext);}//保留字定义识别数字规则{num}{printf("%d行",lineno);printf("%sNUM\n",yytext);}//数字定义识别专用符号规则","|";"|"("|")"|"{"|"}"|"*"|"/"|"+"|"-"|">"|"<"|">="|"<="|"=="|"!="|"="|"/*"|"*/"{printf("%d行",lineno);printf("%sspecialsymbol\n",yytext);}//特殊符号定义识别标识符规则

基于LEX的词法分析器实验报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人bb21547
  • 文件大小222 KB
  • 时间2020-05-27