如何报告解析器警告? 类似于报告错误,但解析器不能停止。 仅记录警告消息和引起警告的子表达式。
示例输入:
select * from table where row>='' && row<>'hello'
预期输出:
Warning: expression is always true: row>=''
Warning: && is deprecated, use AND: row>='' && row<>'hello'
Warning: <> is deprecated, use !=: row<>'hello'
最佳答案
如果你想继续解析你可以像以前一样注册一个错误处理程序,除了你必须指定 accept
作为处理程序策略:
rule<Iterator> r = ... > !eps;
on_error<accept>(r, handler);
附加的 > !eps
在任何情况下都会强制错误并像往常一样调用 handler
,但它会在“错误”之后接受匹配,就像继续一样什么都没发生。
关于c++ - 提神气 : How to report parser warnings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6135762/