ことえりのローマ字入力を改造

サブテーブルとは、先頭の No. で指定され、そこから NodeFlags が偶数になるまで No. の昇順に並んだ、テーブルの行の集合である。
初期行とは、サブテーブルの一つで No.240 で指定されるもの。 実行の開始時点では初期行にいる。
サブテーブルからサブテーブルへの遷移は入力に従って決まる。
NodeValue が 0 ならば(サブテーブルはただ一つの行からなるはずだ)入力を消費せずに Cursor 値で指定されるサブテーブルに遷移する。
それ以外の場合、サブテーブルの中の行で NodeValue が入力に合致するものがあればその行の Cursor 値で指定されるサブテーブルに遷移する。 ただし Cursor 値が -1 ならば遷移先は初期行とする。
残った場合、即ち、入力に合致する行が無ければ、初期行に遷移する。
遷移に際して、次の動作を行う。
Cursor が 0 以上でかつ NodeFlags が {0,1} かつ Result が 0 ならば、エラーキューに NodeValue を送る。
Cursor が 0 以上でかつ NodeFlags が {0,1} かつ Result が 0 でないならば、エラーキューに Result を送る。
Cursor が 0 以上でかつ NodeFlags が {4,5} ならば、エラーキューに NodeValue を送り、出力キューに Result を送る。
Cursor が -1 ならば、出力キューに Result を送り、出力キューを出力に流して、エラーキューを破棄する。
Cursor が -1 でかつ NodeFlags が {3} ならば、上記に加え入力を一つ戻す。
合致行なしでの遷移の場合、エラーキューを出力に流し、出力キューを破棄する。

[From Floating Log 8.4.2007]

を参考にして、ことえりのローマ字入力を少し変更してみた。ciなどcでサ行になるのをカ行に変更。うまくいったけど、今後Dvorak-JP化するには修正がもっと複雑になるだろうからちょっと心配。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です