Meta/Multi Line Preprocessor 更新

気が向いたので。

http://shinh.skr.jp/mlpp/mlpp.tar.bz2

テンポラリファイルは -s を付けない限りは消します。 -v を付けない限りメッセージを吐きません。

独自マクロをサポートしました。とりあえず __MLPP_LINE__, __MLPP_FILE__, __MLPP_FUNCTION__, __MLPP_CLASS__ を。

        __MLPP_CLASS__:
            match: '^(\s*(public|protected|private|final)\s+)class\s+(\w+)'
            to: '"$3"'

などと設定すると、 match の方の正規表現を毎行チェックして、前回マッチしたデータを使用して to に置換します。

もちろんこの正規表現に従ってないとダメなので __MLPP_FUNCTION__ と __MLPP_CLASS__ はかなりいいかげんなものだと言えます。でも D 言語で、

class Test {
    static void test() {
        printf("line=%d\n", __MLPP_LINE__);
        stdout.writeLine("file=" ~ __MLPP_FILE__);
        stdout.writeLine("func=" ~ __MLPP_FUNCTION__);
        stdout.writeLine("class=" ~  __MLPP_CLASS__);
    }
}

などと書いて func=test class=Test と出るのは嬉しいですね。

あと -c で設定ファイルを指定できるみたいです。前からあった機能らしい。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h