yacc令牌头文件不是由Xcode 11中的yacc生成的

yacc令牌头文件不是由Xcode 11中的yacc生成的,xcode,yacc,Xcode,Yacc,我可能错误地诊断了这一点,但当我在Xcode中编译flex/bison项目时,它似乎没有更新包含令牌的头文件,在我的例子中是parser.h。我在我的.y中添加了一个新令牌,但它没有显示在我的.l中 如果在yacc/bison中指定-d标志,则通常会发生。我原以为默认情况下会启用此选项,但可以肯定的是,我将-d添加到了目标的构建设置中的“other yacc flags”设置中,但这似乎没有任何效果 我还怀疑它可能正在生成parser.tab.h,但这也没有发生。最有可能的是XCode使用-y标

我可能错误地诊断了这一点,但当我在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标志。

Ah!你搞定了。我没有注意到这一点,因为它将生成的文件隐藏在目录链下的生成文件夹waaaayyy中。搜索那个名字就知道了。好的,现在我有一个方向要看,谢谢!