似乎antlr-3.5.1-complete.jar和antlr-3.5.1-complete-no-st3.jar会生成 代码定位C运行时,在DFA中有很多“_empty”标识符 没有在任何地方定义。
antlr-3.4使用dfa31_T_empty生成代码,该代码应该是正确的id。
我可以通过将_empty定义为NULL来解决这个问题,但这是一个黑客攻击。
是否有任何可用的antlr-3.5.2修复此错误?
干杯, 阿德里安波普/
答案 0 :(得分:4)
我也遇到过这个错误。最简单和最干净的解决方案似乎确实是将其添加到您的语法中:
@header
{
#define _empty NULL
}
另一种解决方案是将此定义添加到编译器宏列表中(/D _empty=null
似乎在GCC和MSVC中都有效。)