0
私の問題は次のとおりです。私は次のようにのように定義されたASTノードがあります。コンテナを使用してastノードに単一の値を解析する
struct foo_node{
std::vector<std::string> value;
}
を、私は正常に動作し、構造体に解析するために、このようなパーサ、持っている:
typedef x3::rule<struct foo_node_class, foo_node> foo_node_type;
const foo_node_type foo_node = "foo_node";
auto const foo_node_def = "(" >> +x3::string("bar") >> ")";
を今、私はそれを達成したいですパーサーはまた、括弧を使わずに"bar"
を解析しますが、その単一のバーのみが解析されます。
auto const foo_node_def = x3::string("bar")
| "(" > +x3::string("bar") > ")";
をしかしx3::string("bar")
がstd::vector<std::string>
文字列を返していないので、これは、私のコンパイル時のエラーを与える:私はこのようにそれを実行しようとしました。 私の質問は、x3::string("bar")
パーサ(および文字列を返す他のすべてのパーサ)がベクトルを解析する方法は何ですか?
いつも投稿してください。 a [mcve] –
私は完全に同意しますMCVE/SSCCEの要件。あなたの場合、専門家だけが "推測する"方法を知っているということは、命名の競合や必須のものが不足していた(SPIRIT_DEFINE) – sehe
私は本当に申し訳ありません。 – Exagon