「一般的な」エラー処理(チュートリアルで与えられているような)とNabialekのトリックをどういう形で組み合わせることはできますか?このように:some_other_rule
は怠け者-と呼ばれ、失敗した場合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");
...
、エラーメッセージが(私が必要とする)"lazy"
が逐語的に期待されていたと言い、そしてない"other rule's name"
。それはそのように動作するはずですが、私は単に他の場所と間違えられているのでしょうか?
some_other_rule
をし、そのポインタをkeyword
パーサを介して、選択されている他のルールはqi::eps > ...
で始める必要があります。