条件 FLEX/BISON 代码生成可能吗?

Is conditional FLEX/BISON code generation possible?

我可以在 FLEX and/or BISON 源代码中使用#ifdef 之类的东西吗?我想根据不同的编译参数来控制我的扫描仪识别哪些选项。

另外,有没有办法同时使用多个源? (例如scanner1.lex和scanner2.lex合并成lex.yy.c)

flex 和 bison 都没有预处理器,使用 C 预处理器是不明智的,因为您的源文件可能包含旨在传递给生成代码的 C 预处理器指令。

但是没有什么能阻止您编写自己的预处理器,或使用像 m4 这样的宏语言。 (m4 必须可用,因为 flex 和 bison 都依赖它。)