How to get rid of warnings in Bison?
我在我的项目中收到很多警告。这是我的语法文件的摘录:
1 2 3 | stmtlist : stmt ';' { printf(".."); } | stmtlist stmt ';' { printf(".."); } ; |
问题是我不想使用 $1 和 $2。有没有比使用"-Wno-other"调用 Bison 更好的解决方案来消除这些警告???
我还收到警告说 $$ 未在某些规则中设置。我该如何解决这个问题?我应该总是将 $$ 设置为一个值吗?如果我有清理解析堆栈并执行某些操作的规则怎么办。 $$ 总是在解析堆栈上放一个新值,对吧?
嗯,计算值而不使用值是一种代码味道。具有未设置然后使用的值绝对是一个问题。将两者结合起来,您会得到有时设置、有时未初始化、有时使用的值,如果不是彻底的错误,这只是等待发生的意外。
那么你需要弄清楚的是,你为什么会有这些未使用和未初始化的东西?在您的示例中,您似乎为
在设置
因此,您可以通过删除不需要的