皆さん!C++、boost :: spiritはテキストを解析します
テキストファイルの一部の文字列を解析するためにboost :: spiritを使用します。私はブラケットが、私はトラブルを得た「IF」で文字列を解析する場合
IF([banana] and [apple] and [yellow] or [green] or [red] and [!white])
THEN
do sth...;
ELSE
do sth...;
:ここ
は、テキストファイルのサンプルです。
if_rule=str_p(IF)>>ch_p("(")>>if_mem>>*("and"|"or">>if_mem)>>ch_p(")");
if_mem=ch_p("[")>>*~ch_p("]")>>ch_p("]");
それはちょうど「または」2「と」最初のを解析し、無視work.Itない線量:
は、ここに私のコードです。
私はいくつかの異なる文法を試してきましたが、まだ動作しませんでした。
ありがとうございました!
http://en.cppreference.com/w/cpp/language/operator_precedence – llonesmiz
@jv_ありがとうございます!boost :: spiritでは、bitwiseまたはorは論理的な意味を持ちます。または、起こるかどうか。 – zdczdcc
'("と "|"または ")'はコンパイルできませんでした。 'ruleA =!ruleB &&!ruleC'、どうすればboost :: spiritで表現できますか? – zdczdcc