私は最近、boost::spirit::qi をいじっていて、解析する独自の (非常に単純な) スクリプト言語を書こうとしています。スクリプトの if ステートメントに到達するときに問題が発生しました。関数呼び出しが true に戻った場合、入力の一部をスキップするパーサーが必要です。
たとえば、変数名 (a-zA-Z_) を受け入れるように定義されたトークンと、">" または "<" を受け入れるように設定された比較があります。コードの例を以下に示します。
comparison_statement = token >> comparison >> token;
statement = lit("if ") >> comparison_statement[&compare] >> "then";
qi::phrase_parse(first, last, script, space); // This call the parser
関数compareがtrueに戻った場合、次のセクションをスキップするにはどうすればよいですか?