KotoeriRomaji.plist

去年の四月頃作ってバグっていた KotoeriRomaji.plist ←→ ローマ字かなテーブル変換プログラムを久しぶりにデバッグしてみた。 (d:id:tsntsumi:20090423:1247112359, d:id:tsntsumi:20090424:1247129866, d:id:tsntsumi:20100119:EnbugedKotoeriRomajiPlistConvertingTool。)

デバッグ用に出力した中間情報テーブルを読んでみると、 どうもノードのインデックスが -1 のものがある。

インデックスは 0 番から順に振られていなければならない。

ノードは配列になっていて、 そのインデックスを使って木構造を表現している。 各ノードもしくはサブツリーで同じ値を持っているものをマージするようにしていた。 その処理でどうやらバグっている模様。

そこでマージ処理をコメントアウトしてビルドしたら、 一見正常な KotoeriRomaji.plist を出力することができた。

これを /System/Library/Input Methods/Kotoeri.app/Contents/Resources/MsimeRomaji.plist にコピーして使ってみるとうまく変換できているようで一部うまく行かなかった。 例えば cha, chu, cho が ゃ、 ゅ、 ょ になってしまう。 ch を入力した時点では 「ち」 に変換されているので、 「ちゃ」 などになる時に 「ち」 が食べられてしまっているようだった。

これじゃ使い物にならない。 まだまだデバッグする必要があるようだ。