タイピングソフトでは、入力してもらう例題が日本語であれば、かな入力か、ローマ字入力か、の処理がつきまとう。で、こんなものは変換テーブルで処理するしかない。
ローマ字入力の場合、
a -> あ
ka -> か
といった具合ですね。かな入力だと、
3 -> あ
t -> か
って感じか? ここで難しくなるのは、濁音とか「ん」の処理とか、そんなんだが、それら全部ひっくるめて変換テーブルで処理すればよい。できる。
これらを入力文字列が更新される毎に、入力バッファの先頭から再評価を行う、という規則と、探索は最初から行われる、という規則に基づいている。
ローマ字入力の場合
a -> あ
aka -> あか
かな入力の場合
3 -> あ
3t -> あか
で、これらを実装するあたりだが、テーブルはテキストファイルで管理し、プログラム用のテーブルは、このテキストファイルをスクリプトで変換して作るようにすると、よさげ。抜けてる変換があったら、追加すればいいだけだしな。
- 変換テーブルの準備
- 変換テーブルを都合のよい言語のプログラムに変換 (スクリプトで)
- 変換したプログラムを使うクラスを実装
って感じ。まぁ、これらのプログラムについては次回かな? Ruby スクリプトで、C/C++ 用のヘッダファイルを生成しようと思う。では、また次回〜♪