「一般的な」エラー処理(チュートリアルで説明されているような)と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"
(私が必要としている)ものではないことを示しています。それはそのように機能するはずであり、私は単にどこかで間違っていますか、それとも他の特定のトリックが関係していますか?