Flex-lexer:使用`%option debug`与定义`FLEX_DEBUG`相同

时间:2017-10-10 08:05:02

标签: flex-lexer

使用flex在我的* .l文件上运行%option debug时,我会在生成的扫描程序文件中看到#define FLEX_DEBUG

使用%option debug与仅通过将FLEX_DEBUG传递给gcc来定义-DFLEX_DEBUG之间有什么区别吗?

1 个答案:

答案 0 :(得分:1)

当前版本的flex没有任何区别。 %option debug唯一能做的就是将#define FLEX_DEBUG插入到输出文件中。如果在flex命令行中指定-d--debug,也会执行此操作。

但是,有一个重要区别:FLEX_DEBUG宏未记录,因此无法保证该行为不会随将来的版本而改变。 (这与yacc / bison YYDEBUG宏不同,后者已记录在案。)