KAKASI:src/conv-util.c2007年10月09日 12時41分18秒

KAKASI のソースを調べています。 今回は src/conv-util.c で、これは辞書ツール(atoc_conv, rdic_conv, wx2_conv)で使われるものです。

int isallkana PARAMS(unsigned char *str);

引数: EUC-JP 文字列
戻値: 1 ... 全てが全角「ひらがな」または全角「カタカナ」で構成。 0 ... それ以外
int isallzenkaku PARAMS(unsigned char *str);

引数: EUC-JP 文字列
戻値: 1 ... 全てが全角で構成。 0 ... それ以外
int includekanji PARAMS(unsigned char *str);

引数: 全て全角文字のEUC-JP 文字列
戻値: 1 ... 漢字を含む。 0 ... それ以外

EUC-JP 文字列は1バイトのUS-ASCIIと2バイトの全角文字で構成されていることが前提です。 0x8e 0xXX の2バイトで構成される半角カナには対応していないので、引数の文字列に含まれていてはいけません。 また、3バイトの補助漢字は考慮されていませんので、これも引数の文字列に含まれていてはいけません。

includekanji は、isallzenkaku で全てが全角で構成されていることを確認した文字列を引数に渡す必要があります。

これらは atoc_conv, rdic_conv, wx2_conv の入力データの制限に関係することになります。 ただし、atoc_conv の入力はShift_JIS であり、rdic_conv の入力は JIS ですので、内部で EUC-JP に変換する際には更に制限がかかります。

atoc_conv の入力データ2007年10月09日 16時28分33秒

atoc_conv は、KAKASI 付属の辞書ツールです。 ATOK の辞書から KAKASI の辞書(ソース形式)を作成するツールです。

atoc_conv の入力データのフォーマットは次の通りです。

ヨミ,漢字

Shift_JIS コードを想定しています。半角カナは全角ひらがなに変換されます。 '#' で始まる行はコメントです。 区切り記号の "," は空白文字(タブ、スペース)でも構いませんので

よみ 漢字

でも構いません。

また、mkkanwa は、よみのカタカナをひらがなに変換して kanwadict を作成しますので、カタカナでもひらがなでも構いません。 フォーマットが合うなら、ATOKの辞書に限らず、Shift_JIS コードの辞書データの変換に利用できます。

$ nkf -Se < 入力ファイル | tr , ' '

相当の処理を atoc_conv は行います。

なお、名前が atok_conv ではない理由については、私は知りません。