【发布时间】:2012-06-15 12:25:43
【问题描述】:
在yacc 中调用YYACCEPT 之前有什么方法可以清除解析器缓冲区。
如果我不清除缓冲区,当我第二次调用yyparse 时会导致一些问题。
还要注意我使用了一些全局变量,所以不能使用可重入解析器。
提前致谢!!
【问题讨论】:
在yacc 中调用YYACCEPT 之前有什么方法可以清除解析器缓冲区。
如果我不清除缓冲区,当我第二次调用yyparse 时会导致一些问题。
还要注意我使用了一些全局变量,所以不能使用可重入解析器。
提前致谢!!
【问题讨论】:
确实有。请参阅弹性手册的this section。具体来说,在调用yyparse之前调用YY_FLUSH_BUFFER。
【讨论】:
YY_FLUSH_BUFFER??
yyparse(); 所以就在这行之前放 YY_FLUSH_BUFFER(); 你应该很好。
extern YY_FLUSH_BUFFER;。而且,检查我的一个项目,它最后显然没有使用()。所以电话只是YY_FLUSH_BUFFER;。
extern YY_FLUSH_BUFFER;会在编译时出错你确定这是它的使用方式吗?