謹賀新年

あけましておめでとうございます。今年もよろしくお願いします。クラス図を更新したのでお披露目します。

http://aquaskk.sourceforge.jp/images/class_diagram2.png

キーマップを管理する汎用的なクラスとして SKKInputKeymap を作り、SKKPreProcessor から分離してみました。また、現在の KanaTreeController の UTF-8 版として、SKKConverter を用意しています。SKKBackEnd と DictionarySet は IPC で通信します。これは今と同じ仕組みですね。


手元では SKKEngine を仮組みしてキー入力を処理させ、基本的な状態遷移の検証を進めています。レガシーエンジンをそのまま有効にしてあるので、SKKEngine 側では表示も変換も行なわれず、コンソールログに内部状態を吐き出すだけ。それを眺めては一喜一憂するという原始的な段階ですが、まるでピタゴラ装置を作っているかのようなドキドキ感があります。


実装を進めていると、設定ファイルをパースして簡易データベースを作り、問合せに答える、という処理パターンのクラス*1が多いのに気付きます。ところが C++ では、PerlRuby などのスクリプト言語と比較してパース部分がどうにも野暮ったくなってしまいがちです。そこで、あれこれ試行錯誤して、stringstream を使った方法を考えてみました。あまりエレガントではありませんが、多少はましな気もするので後ほど紹介したいと思います。


それにしても、まとまった休みは貴重ですね。しみじみ。

*1:この手のクラスを総称する名前があると良いと思うのですが、ないのかなぁ...