namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: (1999-12-27m) mknmz: invalid wakati module: chasen



藤原  誠 Makoto Fujiwara <makoto@xxxxxxxxxxxx> wrote:

>最後に付けたように変更したのですが(commit はしていません) 、

パッチを適用して commit …しようと思ったら、ただいま
openlab.ring.gr.jp に繋がらないので、のちほど commit します。


>こんどは次のようになります。
>chasen: The format of the patricia dictionary is invalid.

うーん、なんだろう。手元では問題なく動作しています。


>ChaSen2 の make の辺りを見直して見ます。

僕が気を付けたのは Text::ChaSen モジュールを make する前に 
libchasen.a を /usr/local/lib に置いたくらいです。

-- Satoru Takabayashi

おまけ: Perl 5.6 で実現される再帰的正規表現に興味を持ち、開
発版の perl5.00563 で実験を行いました。パターンの中に自分自
身のパターンを含めることができます。

この機能により、対応する括弧やタグを、それらが入れ子構造になっ
ていても確実にマッチングできます。(XML対応の一環なのでしょう)

試しに、回文のパターンマッチングをする再帰的正規表現を書いて
みました。実に面白いです。:-)

$re = qr{
     (\w)
     (\w|(?p{ $re  })*)
     \1
}x;
while (<DATA>) {
    chomp;
    print "target:  $_\n";
    if ($_ =~ $re) {
	print "matched: $&\n";
    } else {
	print "matching FAILED!\n";
    }
    print "\n";
}

__DATA__
aa               // valid
aaa              // valid
abcba            // valid
abccba           // valid
axcdefcddcfedcxa // valid
a                // invalid
ab               // invalid
abc              // invalid
abcdecba         // invalid
abcbb            // sub-kaibun
abcdedcbxa       // sub-kaibun

実行結果
target:  aa               // valid
matched: aa

target:  aaa              // valid
matched: aaa

target:  abcba            // valid
matched: abcba

target:  abccba           // valid
matched: abccba

target:  axcdefcddcfedcxa // valid
matched: axcdefcddcfedcxa

target:  a                // invalid
matching FAILED!

target:  ab               // invalid
matching FAILED!

target:  abc              // invalid
matching FAILED!

target:  abcdecba         // invalid
matching FAILED!

target:  abcbb            // sub-kaibun
matched: bcb

target:  abcdedcbxa       // sub-kaibun
matched: bcdedcb