云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > (完整版)基于LEX的词法分析器实验报告

(完整版)基于LEX的词法分析器实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/5/28 2:57:12

编译原理课程实验报告

实验名称: 基于LEX的词法分析器 学生姓名: 赵 宁 学生学号: 2013020109 指导 教 师 毛 静

一、实验目标

自动构造C-语言的的词法分析器,要求能够掌握编译原理的基本理论,,理解编译程序的基本结构,掌握编译各阶段的基本理论和技术,掌握编译程序设计的基本理论和步骤.,增强编写和调试高级语言源程序的能力,掌握词法分析的基本概念和实现方法,熟悉C-语言的各种Token。

二、实验原理及方法

Lex输入文件由3个部分组成:定义集(definition),规则集(rule)和辅助程序集(auxiliary routine)或用户程序集(user routine)。这三个部分由位于新一行第一列的双百分号分开,因此,Lex输入文件的格式如下

{definitions} %% {rules} %%

{auxiliary routines}

而且第一部分用“%{”和“%}”括起来。

第一和第三个部分为C语言的代码和函数定义,第二个部分为一些规则。 定义正则表达式如下

ID = letter letter* NUM = digit digit* Letter = a|…|z|A|…|Z Digit = 0|…|9

Keyword = else|if|int|return|void|while

Special symbol = +|-|*|/|<|<=|>|>=|==|!=|=|;|,|(|)|[|]|{|}|/*|*/ White space = “ ” 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图

三、实验内容

? Win7下lex 与 yacc的安装配置; ? 利用Parser Genarator的词法分析器构造

四、实验步骤

1) Win7下lex 与 yacc的安装配置

1、lex的安装

首先,下载下载flex和bison.

其次,安装完毕后,将c:\\gnuwin32\\lib里面的libfl.a和liby.a复制到C:\\MinGW\\lib里面。

再者,设置环境变量。 最后,测试安装是否成功。 2、使用lex生成此法分析器:

新建文本文件,更改名称为a.lex,敲入下面代码-------词法分析器的源代码 %{

int wordCount = 0; int numcount = 0; %}

chars [A-Za-z\\_\\'\\.\\\numbers ([0-9])+ delim [\whitespace {delim}+ words {chars}+ %%

while {ECHO; printf(\{words} { wordCount++;

/* increase the word count by one*/ } {whitespace} { /* do nothing*/ }

([0-9])+ { numcount++; /* one may want to add some processing here*/ %%

void main() {

printf(\

yylex(); /* start the analysis*/

printf(\

printf(\

return 0; }

int yywrap() { return 1;

}

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

编译原理课程实验报告 实验名称: 基于LEX的词法分析器 学生姓名: 赵 宁 学生学号: 2013020109 指导 教 师 毛 静 一、实验目标 自动构造C-语言的的词法分析器,要求能够掌握编译原理的基本理论,

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com