Lex からトークンを受け取るこの qi 文法を使用すると、次のようになります。
pair %= token(ID_MARKER)
>> ':'
>> atom
>> ','
>> atom
;
このフュージョン/タプル マッピングと組み合わせて、キャプチャを支援します。
BOOST_FUSION_ADAPT_STRUCT(
Client::pair_rec,
(std::string, m_dummy ) // want to rid of this capture of ID_MARKER
(Client::atom_rec, m_atom_1 )
(Client::atom_rec, m_atom_2 )
)
すべて正常に動作します。
ID_MARKER
しかし、解析のためにだけを使用したいと思います。私は本当にそれをキャプチャする必要も、キャプチャしたくもありません。
そこで、次を使用して属性を無視しようとしましたqi::lit
:
pair %= qi::lit( token(ID_MARKER) )
>> ':'
>> atom
>> ','
>> atom
;
キャプチャから削除するm_dummy
だけでなく、テンプレート エラーの壁が表示されます。
これをクリーンアップするには、代わりに何をすべきですか?