下载此文档

使用说明.ppt


文档分类:办公文档 | 页数:约34页 举报非法文档有奖
1/34
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/34 下载此文档
文档列表 文档介绍
Lex软件的使用
编译原理实践课之一
9/6/2017
1
Lex 与 介绍
Lex 代表 Lexical Analyzar。
代表 Yet piler。
Lex 和 是 UNIX 两个非常重要的、功能
强大的工具。事实上,如果你熟练掌握 Lex
和 的话,它们的强大功能使创建 FORTRAN 和 C 的编译器很简单。
9/6/2017
2
Lex
Lex 是一种用来构造词法分析器的工具。它本身也可以称为一个编译器。
Lex读入词法分析器的规格说明,根据此说明,生成一个用c语言描述的词法分析器。
把描述词法分析器的规格说明的语言称为Lex 语言或词法分析器设计语言。
用Lex 语言书写的词法分析器规格说明称为Lex 源文件。
实用程序Lex 把Lex 源程序翻译成用c语言描述的目标程序,所以通常也称为Lex 编译器。
9/6/2017
3
Lex工作原理
一种匹配的常规表达式可能会包含相关的动作。这一动作可能还包括返回一个标记。
当 Lex 接收到文件或文本形式的输入时,它试图将文本与常规表达式进行匹配。它一次读入一个输入字符,直到找到一个匹配的模式。
如果能够找到一个匹配的模式,Lex 就执行相关的动作(可能包括返回一个标记)。
另一方面,如果没有可以匹配的常规表达式,将会停止进一步的处理,Lex 将显示一个错误消息。
9/6/2017
4
Lex 和 C的关系
Lex 和 C 是强耦合的。 文件(Lex 的扩展名)通过 lex 公用程序来传递,并生成 C 的输出文件。这些文件被编译为词法分析器的可执行版本。
9/6/2017
5
Lex 编程
Lex 编程可以分为三步:
以 Lex 可以理解的格式指定模式相关的动作。
在这一文件上运行 Lex,生成扫描器的 C 代码。
编译和链接 C 代码,生成可执行的扫描器。
注意: 如果扫描器是用 开发的解析器的一部分,只需要进行第一步和第二步。
9/6/2017
6
Lex 程序
说明部分
%%
翻译规则
%%
辅助过程
课本 64,65页
9/6/2017
7
Lex 程序
一个 Lex 程序分为三个段:
第一段是 C 和 Lex 的全局声明,
第二段包括模式(C 代码),
第三段是补充的 C 函数。第三段中一般都有 main() 函数。
这些段以%%来分界。
下面是一个字数统计的程序。
9/6/2017
8
程序不同段的构成
C 和 Lex 的全局声明
这一段中我们可以增加 C 变量声明。
(为字数统计程序声明一个整型变量,来保存程序统计出来的字数。)
我们还将进行 Lex 的标记声明。
9/6/2017
9
字数统计程序的声明
%{
int wc = 0; /* word count */
%}
%%
两个百分号标记指出了 Lex 程序中这一段的结束和三段中第二段的开始。
9/6/2017
10

使用说明 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数34
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小1.18 MB
  • 时间2017-09-06