MATCH

bjam_grammarにMATCHルールを実装するのを忘れていたので追加しました。
差分


MATCHルールは拡張正規表現のマッチングを行い、マッチした場合は部分式のリストを返します。

ECHO [ MATCH (.)b(.) : abc ] ; # 「a c」を表示

正規表現に括弧を含めていないと、結果は必ず空になるので注意が必要です。

if [ MATCH . : a ]
{
    # マッチするが結果が空なので、ここは決して実行されない
}


今回は実装にBoost.Regexを使用しました。
Boost.Xpressiveも試してみましたが、これ以上コンパイル時間を長くしたくなかったのでやめました。
あと、1.33.1でも動くようにするためでもあります。