Jun Mukai
mukai****@jmuk*****
2004年 7月 16日 (金) 22:57:01 JST
向井です。 加藤さんのコードでも私のテストはとりあえず解決できますが、他の問題がい ろいろ出てくるように思います。たとえば、末尾に子音の s や k が入った状 態で他の子音(t とか c とか)を入力しても、「っ」が入ります。これは直感 に反しますし(関係ない子音ならば無視しないといけない)、子音によって「っ」 が入るかどうか決まるというのは覚えるのが複雑すぎると感じます。また、現 在の SKK-JISYO.L にのみ依存するのもおかしいです。 私も residual-kana を利用するのは考えていたのですが、ルールを追加する のではなく、「今入力したキーが子音の場合、そのキーを(送り仮名ではなく) 変換対象の方のローマ字変換前のもの(rkc?)に追加してから residual-kana を実行する」という構造の方が簡単に行く気がします。 この場合、 ・末尾が (子音 . 子音) の場合 → 同じキーな場合は「っ」が入る。さもな ければルールにマッチしないので無視するだけ ・末尾が (母音 . 子音) の場合 → 母音はもうひらがなになっているはず。 子音は residual-kana で消されるので問題なし となり、意図した動作が実現できるように思います。 が、 rkc のデータ構造や操作のための関数名など、 skk.scm に全体的に不案 内なため、このコードをどうやれば実現できるかわからないのです……。 とりあえず、 (skk-context-set-rk-context! sc (rk-push-key! rkc key)) を skk-state-okuri にするあたりの skk-append-residual-kana の直前に入 れてみたりしているのですが、どうも違うようですね。