Romaji Kana Table to KotoeriRomaji.plist
タブ区切りのローマ字かな対応表をKotoeriRomaji.plistに変換する手順を考えてみた。
- 一行読み込んでローマ字とかなの対に分解する。
- 読み込んだローマ字は、アルファベット一文字を一つのノードとする多分木の木構造に構成する。
- ルートノードは空文字として、入力の一文字目がルートノードの子ノードとなる。
- 同様に二文字目は一文字目の子ノードとなる。
- ローマ字に対応するかなは、そのローマ字を辿って到達する末端のノードから一文字ずつの子ノードを構成する。
- アルファベットはノードのNodeValueに、かなはResultに保持する。
- 例えば、kya きゃ、kyu きゅ、というローマ字かながあると、ルートノードの子ノードのk、kの子ノードのy、yの子ノードのaとuがある。
- このときaのResultは'き'であって子ノードに'ゃ'を持つ。
- 同様にuのResultは'き'で子ノードに'ゅ'を持つ。
- また、各ノードはフラグNodeFlagsを持つ。
- 兄弟ノードの末尾以外はビット値0x01が立つ。
- 葉ノードのResultが’っ’の場合はビット値0x02が立つ。
- 葉ノード以外でResultが設定されている場合はビット値0x04が立つ。