Flex扫描器使用指南:从基础配置到高级应用
1. 构建扫描器时的选项设置
在构建扫描器时,Flex提供了数百个选项。大多数选项可以写成%option name的形式放在扫描器开头,也可以在命令行中写成--name。若要关闭某个选项,在其前面加上no,例如%option noyywrap或--noyywrap。通常情况下,将选项放在%option行中比放在命令行中更好,因为选项设置错误可能导致扫描器无法正常工作。完整的选项列表可查看Flex附带的信息文档中的“扫描器选项索引”部分。
2. Flex词法分析器的可移植性
Flex词法分析器在不同的C实现中具有相当好的可移植性。可以在两个层面上移植词法分析器:原始的Flex规范或Flex生成的C源文件。
2.1 移植生成的C词法分析器
Flex生成的是可移植的C代码,通常可以将其轻松移植到任何C编译器中。为避免依赖Flex库,要使用%option noyywrap或包含自己的yywrap()版本。若要兼容非常旧的C编译器,可使用%option noansi-definitions和%option noansi-prototypes让Flex分别生成K&R风格的过程定义和原型。
2.2 缓冲区大小调整
有