Xcode 11 中的 yacc 未生成 yacc 令牌头文件

yacc token header file not being generated by yacc in Xcode 11

我可能误诊了这一点,但是当我在 Xcode 中编译我的 flex/bison 项目时,它似乎没有更新包含标记的头文件,在我的例子中 parser.h。我在我的 .y 中添加了一个新标记,但它没有出现在我的 .l

如果您在 yacc/bison 中指定 -d 标志,通常会发生。我以为这会默认打开,但为了确保我在目标的构建设置中将 -d 添加到 'other yacc flags' 设置,但这似乎没有任何效果。

我还怀疑它可能会生成 parser.tab.h,但这也没有发生。

最有可能的是 XCode 使用 -y 标志调用 bison(可能使用 yacc 命令),结果头文件被命名为 y.tab.h,与旧的基于 yacc 的编译脚本兼容。

不推荐使用"yacc"模式;仅在需要处理遗留源代码时才应使用它。所以值得尝试弄清楚如何让 XCode 不使用 -y 标志。