flex 规范参考

概述

   Flex 是扫描器(scanner)生成工具,在编译器开发中,则可以作为词法分析器。Flex 通过正则表达式和部分C代码片段对输入文本进行扫描和匹配,并可以输出 Token 流。这些 Token 流可以作为下一级工具(如语法分析工具 Bison)的输入。
   Flex 是由ratfor语言写成的lex工具演化而来的,被命名为 “Flex”,意为 “快速词法分析器生成程序”(Fast Lexical Analyzer Generator)。

结构规范

flex 程序由三部分构成:定义部分、规则部分和用户子例程(subroutine):

1
2
3
4
5
6
7
8
9
10
11
%{
// C头文件 或 变量声明
%}

...定义...

%%
...规则...
%%

...用户子例程...