BoostSpirit.Qi:如何报告解析器警告
Boost.Spirit.Qi: How to report parser warnings?
如何报告解析器警告?类似于报告错误,但解析器不能停止。只有日志警告消息和子表达式导致了警告。
示例输入:
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
,但它会在"错误"之后接受匹配,继续进行,就像什么都没发生一样。
相关文章:
- 警告处理为错误这里有什么问题
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- cppcheck在const std::string[]上引发警告
- GCC对可能有效的代码抛出init list生存期警告
- 如何在BST的这个简单递归实现中消除警告
- 关于std::move的使用,是否有编译警告
- g++ 在某个类成员未初始化时不发出警告
- TSP递归解的迭代形式
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 我应该在锁定TBitmap画布后解锁它吗
- 使用C++进行运行长度解压缩
- 为什么当我解模块化时,这个C++代代码"效率较低"?
- 使用typeid警告未使用的变量
- 示例C++项目编译中的警告
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 如何修复编译器警告 C6386 和 C6385?
- C++ 如何将数组值解压缩为函数参数
- 返回语句后的代码,没有警告
- Boost -在构建时关于解引用指针的警告
- 解引用nullptr时编译器不发出警告