Mac @ Floating Log 8.4.2007

2007-04-08

# ことえりのローマ字カスタマイズ(解読)

テーブルを眺めている内に気が付いたが、NodeFlags の値 0,1,3,4,5 は3つのグループ {0,1}, {3}, {4,5} に分かれる。 そして 0, 4 という偶数バージョンはグループの終端に使われている。

ことえりヘルプには載っていない組み合わせも発見。 ca,ci,cu,ce,co で か,し,く,せ,こ になる。 まあ、これはいいが、jhi で「ざ」というのは何? jyy と zyy は何も残さずに消えるし。 結構いい加減なテーブルだ。 と、これは余談。

前回あやふやだった Cursor の -1 は NodeFlags が {0,1} のときは初期状態に戻る。 初期状態が最後の組に当たっているので、Python 使いとしては解り易い。 このとき、Result を出力。

NodeFlags 3 は「っ」の出力にしか使われないし、このとき Cursor は常に -1。 どう解釈しても良いが、「っ」を出力して、入力を破棄せずに初期状態に戻り次の入力として使う、ということかな。

NodeFlags が {4,5} のときは、Cursor は -1 にならない。

ということで、Cursor が -1 の場合の動作も判明したので、全体をまとめておこう。 なお、No. の言及は前回のテーブルの数字から 1 引いたもの。

  • サブテーブルとは、先頭の 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} ならば、上記に加え入力を一つ戻す。
    • 合致行なしでの遷移の場合、エラーキューを出力に流し、出力キューを破棄する。

と、こんなもんかな。

posted at 07:21:52    #
4月 2007
1 2 3 4 5 6 7
8 91011121314
15161718192021
22232425262728
2930     
3月
2007
 5月
2007

Mac に関すること。

Feed Icon Letterimage

Python
Desktop
Server

© 2007, Matsui Fe2+ Tetsushi