编译原理实践 词法分析程序的自动生成器LEX
编译原理实践 --词法分析程序的自动生成器LEX
畚由于各种高级程序设计语言的单词形式 基本上可以用一组正规式来描述,人们 就希望能否构造一个自动生成系统,只 要给出程序设计语言的各类单词描述以 及识别出各类单词后应输出的结果,这 种自动系统便能自动产生此程序设计语 言的词法分析程序 Lex就是这样一个工具,他将正规式转换 为一个NFA,进而转换为相应的DFA, 这个DFA可以识别该正规式所表示的语 言的句子
由于各种高级程序设计语言的单词形式 基本上可以用一组正规式来描述,人们 就希望能否构造一个自动生成系统,只 要给出程序设计语言的各类单词描述以 及识别出各类单词后应输出的结果,这 种自动系统便能自动产生此程序设计语 言的词法分析程序 Lex就是这样一个工具,他将正规式转换 为一个NFA,进而转换为相应的DFA, 这个DFA可以识别该正规式所表示的语 言的句子
LEX筒单的介绍 1 LEX(lexical analyzer generator 个词法分析程序的自动生成器 LEX是1972年贝尔实验室首先在 UNIX上实现的 2 FLEX(fast lexical analyzer generator)是对LEX的扩充它可在 MS-DOS下运行.我们这里实际使用 的是FLEX,但仍称呼为LEX
LEX简单的介绍 1 LEX(lexical ananlyzer generator) 一个词法分析程序的自动生成器. LEX是1972年贝尔实验室首先在 UNIX上实现的. 2 FLEX(fast lexical ananlyzer generator) 是对LEX的扩充,它可在 MS-DOS下运行. 我们这里实际使用 的是FLEX,但仍称呼为LEX
)LEX简单的介绍 LEX能根据给定的正则表达式自动生成 相应的词法分析程序 输入是用LEX语言写的源程序 生成:用C语言描述的词法分析程序 LEX生成的目标程序包含一个状态转换 矩阵和一个控制执行程序
LEX简单的介绍 • LEX能根据给定的正则表达式自动生成 相应的词法分析程序 • 输入:是用LEX 语言写的源程序 • 生成:用C语言描述的词法分析程序 • LEX生成的目标程序包含一个状态转换 矩阵和一个控制执行程序
③LEX使用流程 使用LEX的流程如图 LEX源程序 LEⅩ YYLEX. C YYLEX. C C编译器 YYLEⅩ,EⅩE 字符串源程序 YYLEX. EXEH符号串源程序 LEX源程序是使用LEX语言编写的词法规则说明,经过LEⅩ 翻译后形成目标文件 YYLEX. C;再用C编译器对 YYLEX.C进 行翻译,生成目标程序 YYLEX. EXE,它就是词法分析程序用 YYLEⅩEXE就可以将字符串源程序转换成符号串源程序
LEX使用流程 使用LEX的流程如图: LEX源程序 LEX YYLEX.C YYLEX.C C编译器 YYLEX.EXE 字符串源程序 YYLEX.EXE 符号串源程序 LEX源程序是使用LEX语言编写的词法规则说明,经过LEX 翻译后形成目标文件YYLEX.C;再用C编译器对YYLEX.C进 行翻译,生成目标程序YYLEX.EXE,它就是词法分析程序,用 YYLEX.EXE就可以将字符串源程序转换成符号串源程序