NEWT0_0.0.7_20041020_1 を公開しました。
今回のトピックは正規表現のサポートです。
[変更箇所]
– 構文として正規表現オブジェクト表現を追加(独自機能)
– 拡張ライブラリ protoREGEX を追加
– Mac OS X版バイナリで拡張ライブラリが複数読込めない問題を修正(Xcode のコンパイルオプションを変更)
– P 関数で文字列中の ” がエスケープされない問題を修正
[実行環境]
– Mac OS X 10.3 以上(フルスペック)
– Mac OS X 10.2 (注意:外部ライブラリの読込みができません)
– Linux (KNOPPIX 3.6 でコンパイル)
⇒ NEWT0_20041020_1_src.tgz (download)
⇒ NEWT0_20041020_1_macosx.tgz (download)
⇒ NEWT0_20041020_1_linux.tgz (download)
Tags: NewtonScript
今後もライブラリーが増えるようであればメインのMakefileで一緒にmakeして欲しいです。
私案。
PROTO = extLibs/protoFILE extLibs/protoREGEX
all: $(build) $(NEWT) $(PROTO)
$(PROTO)::
$(MAKE) -C $@
documebts/04_library.txtで
file:cleanup();となってます。
gnuのregexは複数あっても一つしか返さないようです。
protoREGEXのmatchでNULLを渡してもエラーにして欲しくない。
そうですね、拡張ライブラリの Make もメイン1発でできるようにします。
“documents/04_library.txt” のタイポミス、次の更新で修正します。
gnu の regex は複数あっても一つしか返さないということですが、これはグループ化(括弧で囲まれ部分)していないからではないでしょうか。
考え方としては perl や ruby の $1, $2, … が matchs[1], matchs[2], … (matchs は match メソッドの戻り値)に相当します。matchs[0] はマッチした全体の文字列で ruby では $& になります。
protoREGEX の match で NIL を渡した場合の挙動ですが、確かにエラーにならないほうが便利そうですね。次の修正でそうします。
protoREGEXの返す値についてですがrubyでも同じ結果でした。
私のregexに対する認識が間違っているようです。
re := /ba/;
rm := re:match(“bababebibabebuba”);
で全てのbaがリストアップされるものと思ってたものですから。