有没有办法让Yacc / Bison打印出它对其处理的输入所做的所有减少?这将是一个很好的调试辅助工具。我已经尝试了
| Item1 { printf("Item1: %s\n", yytext); }
仅打印最后一个字符
| Item1 { printf("Item1: %s\n", $$); }
导致 format参数不是编译器的指针警告。我做错了吗?
答案 0 :(得分:2)
我能够通过
启用调试输出将#define YYDEBUG 1
放入我的C声明
将int yydebug = 1;
放入其他C代码部分
如需其他阅读,请检查Using YYDEBUG to generate debugging information,Debugging Your Parser和this yacc example。