Flex扫描器使用指南
1. 构建扫描器的选项
在构建扫描器时,Flex提供了数百个选项。大多数选项可以写成%option name的形式放在扫描器的开头,也可以在命令行中写成--name。若要关闭某个选项,可在前面加上no,例如%option noyywrap或--noyywrap。在大多数情况下,将选项放在%option行中比放在命令行中更好,因为如果选项设置错误,扫描器通常无法正常工作。
2. Flex词法分析器的可移植性
Flex词法分析器在C语言实现中具有较好的可移植性。可以在两个层面上移植词法分析器:原始的Flex规范或Flex生成的C源文件。
-移植生成的C词法分析器:Flex生成的是可移植的C代码,通常可以将代码无问题地移植到任何C编译器上。为避免依赖Flex库,要使用%option noyywrap或者包含自己的yywrap()版本。对于非常旧的C编译器,%option noansi-definitions和%option noansi-prototypes可分别让Flex生成K&R过程定义和原型。
3. 缓冲区大小
有时需要调整某些缓冲区的大小。Flex使用两个输入缓冲区,每个默认大小为16K,对于一些微型计算机实现来说