Flex是众所周知的快速词汇分析器,它是一种开源,完全免费的多平台命令行应用程序,以C / C ++实现,并从偏移设计用于生成扫描仪。
由Flex工具生成的扫描仪,不应与Lex的非GNU免费实现混淆,实际上是可以识别文本中的词法模式的程序,也称为在文本上执行模式匹配的应用程序。
Flex的设计方式使得它可以生成一个名为“lex.yy.c”的C源文件,它可以定义yylex()函数。该软件是一个命令行工具,因此您可以通过任何终端仿真器使用它。
命令行选项
程序的命令行选项按类别,如表压缩,调试,文件,扫描器行为,生成的代码和其他类型进行组织。要一目了然,请运行‘ flex --help’在您的系统上安装软件后,可以使用命令。
在表压缩命令行选项中,我们可以提到构建等价和/或元等价类的能力,使用替代表表示法,使用默认压缩来生成大型和快速扫描器,以及不压缩表。调试命令行选项包括支持在扫描仪中启用调试模式,支持将扫描仪统计信息写入stdout,支持在跟踪模式下运行Flex,以及支持将备份信息写入特定文件,一个表现报告给stderr。
扫描仪的行为也可以通过命令行选项进行定制,包括支持生成7位或8位扫描仪,支持生成批量扫描器,支持生成交互式扫描仪,以及支持跟踪线条数在yylineno。
支持32位/ 64位Linux和BSD平台
软件完全用C和C ++编程语言编写,已知在Linux和FreeBSD操作系统上都能很好地工作。目前,它可以安装在支持64位或32位指令集体系结构的计算机上。
此版本中的新功能 p>
- 构建
- 现在,缩进目标知道flex的新(2.6.0版本)布局。它应用的缩进规则是不正确的,需要修复。
- flex分发中包含的文件现在由分发版中包含的flex版本构建。
- 配置脚本更好地了解构建Flex所需的头文件。当检测到缺少功能时也会出错。
- 我们已经按照建立flex的要求降低了automake和gettext的configure.ac列表的版本。在autogen.sh中,我们现在检查如何调用libtoolize并使用我们在脚本的其余部分找到的内容。
- 由于lib /中的文件根据src /的需要被拾取,所以我们不再为该目录生成Makefile。
- 可以交叉编译Flex。
- 文档:
- 手册中删除了一些打字错误。
- 扫描器:
- 某些轻微的性能增强。
- 我们再次尊重用户定义的yy_ *宏。我们也更注意不要将宏定义泄漏到头文件中。
- 引入了许多可移植性修复程序,因此在更多平台上构建flex可靠性更高。另外,过时的函数调用已被删除。
- 当生成flex可执行文件时,在生成C源代码数组时,会从flex.skl中删除%#个注释。这减少了弯曲的大小。
- 测试套件:
- 测试套件中的所有脚本现在由$(SHELL)运行,并且已包含所需的可移植性修补程序。
- 测试套件依赖关系的处理要好得多。只有当您正在积极开发flex或其测试套件时,这才是重要的。
- 当这些平台不存在时,依赖于平台相关功能的测试可以正确跳过
- 运行“make check”时,现在可以使v = 0静音更多的构建。当您不太了解 时,这很有用
评论没有发现