LEX/FLEX词法分析器 | 您所在的位置:网站首页 › lex专栏是什么 › LEX/FLEX词法分析器 |
LEX/FLEX词法分析器
CONTENTS: LEXFLEX词法分析器 LexFlex词法分析器 Flex的安装和使用 Lex语法格式 definitions rules user subroutines FLEX实例这篇文章的内容包括: lex语法格式 linux下flex的安装和使用 flex实例 flex源代码的编译和使用 Lex/Flex词法分析器Lex是LEXical compiler的缩写,是Unix环境下非常著名的工具,主要功能是生成一个词法分析器(scanner)的C源码,描述规则采用正则表达式(regular expression)。描述词法分析器的文件*.l,经过lex编译后,生成一个lex.yy.c 的文件,然后由C编译器编译生成一个词法分析器。词法分析器,简单来说,其任务就是将输入的各种符号,转化成相应的标识符(token),转化后的标识符 很容易被后续阶段处理。 —— [ 百度百科 ] Flex的安装和使用在使用apt软件包管理器linux系统上我们可以非常方便地安装并使用flex。在终端中输入以下代码安装flex:(可能需要root权限) $> sudo apt-get install flexflex代码的源文件往往是以.l为后缀名的。 .l文件通过以下命令编译(以文件名为scanner.l为例): $> flex scanner.l编译后在源代码相同目录下会生成一个lex.yy.c,这就是生成的能够执行上述scanner.l功能的c语言代码。使用gcc编译即可生成词法分析程序1: $> gcc lex.yy.c -o scanner然后将需要分析的文件(以input.txt为例)作为参数传递给scanner执行分析: $> ./scanner input.txt Lex语法格式flex的语法被分为三个部分: {definitions} %% {rules} %% {user subroutines} definitions: LABEL REGULAR_EXPRESSIONLABEL是这里类字符串的名称,REGULAR_EXPRESSIO |
CopyRight 2018-2019 实验室设备网 版权所有 |