Flex-lexer:使用“%option debug”与定义“FLEX_DEBUG”相同
Flex-lexer: Is using `%option debug` the same as defining `FLEX_DEBUG`
当我的 *.l 文件 运行 flex
%option debug
时,我在生成的扫描仪文件中看到 #define FLEX_DEBUG
。
使用 %option debug
和通过将 -DFLEX_DEBUG
传递给 gcc 来定义 FLEX_DEBUG
之间有什么区别吗?
与当前版本的flex没有区别。 %option debug
所做的唯一一件事就是将 #define FLEX_DEBUG
插入到输出文件中。如果在 flex 命令行上指定了 -d
或 --debug
,也会执行此操作。
但是,有一个重要区别:FLEX_DEBUG
宏没有记录,因此不能保证该行为不会随着未来版本的变化而改变。 (这与记录在案的 yacc/bison YYDEBUG
宏不同。)
当我的 *.l 文件 运行 flex
%option debug
时,我在生成的扫描仪文件中看到 #define FLEX_DEBUG
。
使用 %option debug
和通过将 -DFLEX_DEBUG
传递给 gcc 来定义 FLEX_DEBUG
之间有什么区别吗?
与当前版本的flex没有区别。 %option debug
所做的唯一一件事就是将 #define FLEX_DEBUG
插入到输出文件中。如果在 flex 命令行上指定了 -d
或 --debug
,也会执行此操作。
但是,有一个重要区别:FLEX_DEBUG
宏没有记录,因此不能保证该行为不会随着未来版本的变化而改变。 (这与记录在案的 yacc/bison YYDEBUG
宏不同。)