2
是否有可能以某种方式将“通用”错误处理(如本教程中给出的)与Nabialek技巧结合使用?就像这样:Boost.Spirit,Nabialek技巧和错误处理
...
on_error<fail>
(
start
, std::cout
<< val("Error! Expecting ")
<< _4 // what failed?
<< val(" here: \"")
<< construct<std::string>(_3, _2) // iterators to error-pos, end
<< val("\"")
<< std::endl
);
start = *(keyword[_a = _1] > lazy(*_a));
some_other_rule.name("other rule's name");
...
现在,当some_other_rule
是懒惰的,所谓的和失败,错误消息说,"lazy"
逐字预期,而不是"other rule's name"
(我需要)。是否应该这样工作,我只是在其他地方弄错了,或者还有其他一些特定的技巧?