0
私はプロジェクトにブースト::精神を実施してきたし、私の課題の一つは、タイプの容器に直接解析することです:デフォルト値を提供する::精神
map<string, string>
Iほとんどそこにいる。私が実行した問題は、std :: pairのキー値を自動的に割り当てることです。つまり、入力文字列内の各トークンには事前に決められたキーがあり、トークンが解析されると自動的にペアに挿入されます。
は私が近いんだと思いますが、そうでないかもしれない...ここで(切り捨て)文法だ:
最終結果はコマンドラインに入力することである command =
string("select")
;
key = string("command") | qi::attr(std::string("command"));
command_pair = key >> ' ' >> command;
start =
command_pair >> *command_pair
;
qi::rule<Iterator, std::string()> command;
qi::rule<Iterator, std::pair<std::string, std::string>()> command_pair;
qi::rule<Iterator,parserMap()> start;
:
select
とマップにアクセスし、[「コマンド」]、これ
command select
要素が返されます:私は、入力されたのだかのように、キーとしてパーサ挿入「コマンド」を持っています「選択」の値
問題は、qi :: attr()を使ってジョブを実行できないということです。つまり、「コマンド選択」とタイプすると機能しますが、「選択」だけではありません。