regexモジュール
BBv2のjamファイルでテストしつつバグをつぶしていったところ、ようやく次のメッセージまで辿り着きました。
error: missing native rule 'regex.transform' error: or interface version of that rule is too low error: your version of bjam is likely out of date error: please get a fresh version from CVS.
というわけで、手始めにregexモジュールからネイティブルールの実装を開始しました。
regexのネイティブルールはtransformだけです。
rule transform ( list * : pattern : indices * )
listが変換対象、patternが正規表現、indicesは結果として使う部分式のインデックスです。
使い方は次のようになります。
import regex ; ECHO [ regex.transform a b1 : ^([a-z]+)([0-9]*)$ : 1 2 ] ; # 「a b 1」を出力
BBv2の高速化の都合上、空の部分式は結果に含められません。
結局、regex.transformのチェックもパスしてmodulesモジュールの途中まで動くようになりました。
今日の差分
今日はここまで。