如何在助人为乐中获得期望失败的背景?

时间:2019-01-03 16:01:54

标签: c++ boost boost-spirit boost-spirit-qi

我正在使用Boost Spirit v1.67。

我希望解析器提供确切的错误代码,即有关失败之处的上下文错误消息。

例如-

  1. InvalidNumber-int_的数字大于2,147,483,647。
  2. InvalidSequence-字符AB的无效序列,期望为BA。

我认为可行的选项,但需要提供解决方法的建议-

  1. 从on_error抛出自定义异常,并在parse方法之后捕获它们
  2. 使用on_error跟踪确切的故障,然后将错误代码保存在某个变量中,以便以后使用。
  3. 在解析器中接受一些无效数据,仅在解析器在后处理检查中运行后才对其进行标记。 (例如-如果数字大于max_int,则在接受后处理时接受long int而不是int并将其标记为错误)。

0 个答案:

没有答案