跳到主要内容

flex

https://www.bilibili.com/video/BV1KF411h7M7

Flex

Flex 是一个快速词法分析器生成器,支持通过正则表达式对词法单元进行描述。

Flex 源程序以后缀.y结尾。

Flex 将输入的模式转换成一个状态转移图,并生成相应的代码。代码核心是yylex()函数,存放到lex.yy.c文件中。

Flex 源程序结构

Flex 源程序的结构一般如下:

声明部分
%%
转换规则
%%
辅助函数

声明部分 包含了 名称声明 和 选项设置。

在该部分中%{%}之间的内容会被原样复制到生成的C文件的开头,可以编写任意的C代码,实际使用中通常是放置一些 头文件以及注释

在 转换规则 部分,每个规则都由两部分组成:模式 和 动作。中间由空白隔开,当程序识别到某个模式时,就会执行相应的动作。