1 / 33
文档名称:

使用说明.pptx

格式:pptx   大小:1,027KB   页数:33页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

使用说明.pptx

上传人:wz_198613 2018/6/9 文件大小:1 MB

下载得到文件列表

使用说明.pptx

相关文档

文档介绍

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