Lex文件是如何编译的?

在网上看了一些,大概流程是:
1. 创建lex文件
2. 使用flex xxx.lex来生成.c文件
3. 使用c编译器(如gcc),来生成一个可执行文件。
其中第二步并不能理解,flex是什么东西?(一个软件还是一个命令?),

分析器工具
https://github.com/westes/flex

flex是一个用来解析lex的命令行工具,这个工具可以从网上下载,在命令提示符下执行。