TOKUNAGA Hiroyuki
tkng****@xem*****
2004年 8月 30日 (月) 17:48:22 JST
On Fri, 27 Aug 2004 23:38:04 +0900 Etsushi Kato <ekato****@ees*****> wrote: > uim-skk でも接頭辞と接尾辞による変換 (*1) ができるようにして svn > repository commit しました (ただ理由は知りませんが、現在 http 経由だと > svn update できない時がよくあるようです)。 最近、subversionで苦しむ事例を周囲でよくみかけるような気がします…。 > 話は変りまして徳永さん、田畑さんに質問なのですが、 uim-skk や > uim-anthy で "n" に続いて記号 (や数値) を入力すると、"ん" になりますが > 、これを " ん記号" ("n1" だったら、"ん1") になるようにするにはどうすれ > ば良いでしょう。 これを修正するのはめんどくさい気がします。たぶん、rk.scmの方までいじら なければならないんじゃないかと思います。具体的にどこらへんをいじればいい のかなと思って見てみると、skk.scmの838行目あたりに ;; XXX need to handle "n1" sequence as "ん1" here. ;; This seems like a problem on rkc in japanese.scm(?). というコメントがありました。(たぶんヤマケンさんが書いたんじゃないかと思 いますが。) japanese.scmではなくrk.scmの問題です。解決するために、去年の12月頃に hk.scmというのを書いてみたりはしたものの、使いものになる前に忙しくなって しまって放置しています。 解決にはなってませんが、とりあえず現在のrk回りの仕様について、知ってい る事を書いておきます。余裕があれば後でもうちょっと調べて書き加えます。さ らに余裕があれば解決策を考えてみたいと思います。 * rk-context-new 新しいrk contextを作成する。引数にはcontextが参照するべきrule(「a→あ 」みたいな表)などを指定する。immediate-commitとback-matchが何に必要だっ たかは忘れた。rk contextはローマ字かな変換などに使う。 * rk-expect rk contextが次に期待するアルファベットを返す。例えば、既にtが入力され ている状態では、aiueoの母音(たちつてとに遷移する)やt(っtに遷移する) が次の入力として期待される。 * rk-push-key! rk contextに実際に入力をする。遷移が起これば遷移後の文字が返って来る。 * rk-push-key-last! rk-push-key!ではnを入力しても「ん」が返ってこない(次にaiueoが来る可能 性があるから)ので、ε遷移(すいません、覚えたての用語を使ってみたいだけ です)で「ん」を出力させるための関数です。今から考えると明らかに誤読を招 く関数名です。 * rk-pending 現在pending状態、つまりまだかなに変わっていないアルファベットを返す。 * rk-flush rk contextをリセットする。 * rk-partial 何に使うんだったか忘れた。 * rk-current-seq 何に使うんだったか忘れた。 * rk-backspace pendingされているアルファベット列の最後の文字を削除する。似た関数とし てrk-deleteもある。 -- 徳永拓之 tkng****@xem*****