Namazu-devel-ja(旧)


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

Re: sgmt



Fri, 13 Oct 2000 19:03:18 +0900 頃の
   Mail-Count: 00970
      Subject: [namazu-devel-ja] sgmt   
についてのお話にて Satoru Takabayashi さん曰く… 
(S == Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx> さん)

In article 00970, <20001013190318P.satoru-t@xxxxxxxxxxxxxxxxxx>
S> # ただいま libsgmt の Guile用のバインディングを準備していま
S> # す。Perl/Ruby/Python 用も作るといいかも。

Ruby バインディングの原形みたいのができたんですが, 
いくつかよくわかんないところがあります. 

  * pipe が動かない
    → 「そのようなファイルやディレクトリはありません」となります. 
    sgmt -m pipe -a 'kakasi -w' でも同様
    (kakasi コマンドはあります)

  * chasen を使った場合に sgmt_segment を二度呼び出すと
    segv をくらう(…ような気がする. 同じコードで kakasi なら OK).

  * 「存在しないモジュールを指定したとき」に
    libsgmt の中で abort している(?)ので, 
    バインディング的にちょっと困ってます. 
    どうするのが正しいんでしょう?

という感じなんですが, 
リリースされるまでもう少し待つのが正しいのかも? (^_^;


あ, で Ruby バインディングですがこんな感じのを考えてます:

  require 'sgmt'
  s1 = Sgmt.new('kakasi')
  s2 = Sgmt.new('chasen')
  s3 = Sgmt.new('pipe', '.....')

  # ふつーに呼び出すと結果が配列で返る
  s1.segment("私の名前は中野です") 
    #=> ["私","の","名前","は","中野","です","\n"]

  # イテレータとして呼び出すと単語に対してブロックをくり返す
  s1.segment("私の名前は中野です") {|w|
    print w, "\n"
  }

-- 

 やまだ あきら <URL:http://arika.org/>
 (akira@xxxxxxxxx, akira@xxxxxxxxxxxxx or akira@xxxxxxxxxx)