Spirit
文字列解析に使いたくて手を出したんですが、いまいち使い方が分かりません。
とりあえず練習にと、よくあるサンプルの電卓を、演算子や数字が全角でも通るように改造しようと思ったのですがいきなり躓きました。
expr = term[_val = _1] >> *( (L'+' >> term[_val += _1]) | (L'+' >> term[_val += _1]) | (L'−' >> term[_val -= _1]) | (L'-' >> term[_val -= _1]) ); term = fctr[_val = _1] >> *( (L'*' >> fctr[_val *= _1]) | (L'*' >> fctr[_val *= _1]) | (L'/' >> fctr[_val /= _1]) | (L'/' >> fctr[_val /= _1]) ); fctr = int_ | L'(' >> expr >> L')';
これなら通るんですが、
expr = term[_val = _1] >> *( ((L'+'|L'+') >> term[_val += _1]) | ((L'-'|L'−') >> term[_val -= _1]) ); term = fctr[_val = _1] >> *( ((L'*'|L'*') >> fctr[_val *= _1]) | ((L'/'|L'/') >> fctr[_val /= _1]) ); fctr = int_ | L'(' >> expr >> L')';
こっちだと通りません。
unused|unusedのAttributeはunusedで、解析結果に影響しないと思うんですが、何か勘違いしているんでしょうか。