* Anthyライブラリの使用方法の説明 *

ライブラリのオプション	-lanthy -lanthydic
(もしくはpkg-configでanthyを指定する)
インクルードファイル	anthy/anthy.h
+anthy_ で始まる関数名はライブラリ内部の使用のために予約されている

* データ型 *
anthy_conv_stat 現在の変換の状態を得るために用いる
 文がいくつの文節に分割されたかを得ることができる
anthy_segment_stat 文節の状態を得るために用いる
 文節がいくつの変換候補を持っているかを得ることができる
 文節の長さを得ることができる(テスト用)
anthy_prediction_stat 予測候補の数を得ることができる
anthy_context_t 変換のコンテキストを識別するために用いる
 ポインタ型である
char * デフォルトではエンコードにはEUC-JPを利用する。

* 関数の概説 *
初期化関数
 anthy_init                   Anthyの初期化
 anthy_conf_override          設定の更新
 anthy_set_personality        パーソナリティの設定
 anthy_quit                   Anthyの終了
コンテキストの管理
 anthy_create_context         変換コンテキストの作成
 anthy_reset_context          変換コンテキストのリセット
 anthy_release_context        変換コンテキスト解放
コンテキストに対する操作
 anthy_set_string             変換文字列の設定
 anthy_resize_segment         文節の伸縮
変換結果の取得
 anthy_get_stat               変換結果の文節数の取得
 anthy_get_segment_stat       文節に対する候補数の取得
 anthy_get_segment            候補の取得
結果のコミット
 anthy_commit_segment	      変換結果のコミット
予測入力
 anthy_set_prediction_string  予測入力の文字列の設定
 anthy_get_prediction_stat    予測入力の状態の取得
 anthy_get_prediction         予測文字列の取得
 anthy_commit_prediction      予測文字列の確定
逆変換
 anthy_set_reconversion_mode  逆変換モードの設定
エンコーディング
 anthy_context_set_encoding   エンコーディングの設定
その他
 anthy_print_context          変換コンテキストの内容の表示
 anthy_get_version_string     Anthyのバージョンを取得する
 anthy_set_logger             ログ出力用の関数をセットする

* 各関数の説明 *
 int anthy_init(void)
 引数: 無し
 返り値: 0 なら成功 -1なら失敗
 anthy全体の初期化を行う。anthy_conf_override()以外の関数は
 初期化してから呼ばないといけない。


 void anthy_conf_override(char *var, char *val);
 引数: var 変数名
       val 値
 返り値: 無し
 *各変数については述べない。
 *anthy_initの前に呼ぶことによって、動作を変えることもできる。


 int anthy_set_personality(char *id);
 引数: var 変数名
 返り値: 成功時には0、失敗時には-1
 *カレントpersonalityを変更する。最初にcontextを作成するまでに
 一度だけ設定できる。
 *使用できる文字はファイル名に使える文字と同じ


 void anthy_quit(void);
 引数: 無し
 返り値: 無し
 *Anthy library内で確保したメモリなどのリソースを解放する
 *現時点では実装されていない
 *アプリケーション終了時に呼出す必要は無い


 anthy_context_t anthy_create_context(void);
 引数: 無し
 返り値: 作成したコンテキスト 失敗なら0
 *変換コンテキストを作成する。


 void anthy_reset_context(anthy_context_t ac);
 引数: ac コンテキスト
 返り値: 無し
 *変換コンテキストをリセットする。


 void anthy_release_context(anthy_context_t ac);
 引数: ac コンテキスト
 返り値: 無し
 *変換コンテキストを解放する。
 *このコンテキストはそれ以降使えない。


 int anthy_set_string(anthy_context_t ac, char *str);
 引数: ac コンテキスト
       str 変換対象の文字列
 返り値: 成功時には0、失敗時には-1
 *変換コンテキストに文字列を設定する。
 *そのコンテキストに関連するそれまでの情報は破棄される。
 *strはEUC-JPで与える。
 *漢字かな混じり文を渡した場合、各漢字を一旦ひらがなに変換した上で
  再変換を行う。


 void anthy_resize_segment(anthy_context_t ac, int nth, int resize);
 引数: ac コンテキスト
       nth 文節のインデックス 0から始まる
       resize 文節を何文字伸ばすか。
 返り値: 無し
 *文節を伸縮する。
 *resizeに負の数を与えることによって文節を縮めることができる。
 *無効な操作の場合は無視される。


 int anthy_get_stat(anthy_context_t ac, struct anthy_conv_stat *cs);
 引数: ac コンテキスト
       cs anthy_conv_stat
 返り値: 成功の場合は0
 *現在のコンテキストの状態を取得する。
 *コンテキストに設定した文字列がいくつの文節に分割されたかを知ることができる。


 int anthy_get_segment_stat(anthy_context_t ac, int n, struct anthy_segment_stat *ss);
 引数: ac コンテキスト
       n 文節の番号 0から始まる
       ss anthy_segment_stat
 返り値: 成功の場合は0
 *現在のコンテキストのn番目の文節の状態を取得する。
 *その文節にいくつの候補があるかを知ることができる。


 int anthy_get_segment(anthy_context_t ac, int s, int n, char *buf, int len);
 引数: ac コンテキスト
       s 文節の番号 0から始まる
       n 候補の番号 0から始まる
       buf 候補の文字列を取得するバッファ
       len バッファの長さ
       nにNTH_UNCONVERTED_CANDIDATEを指定すると
       変換前のひらがな文字列を得ることができる(再変換
       (anthy_set_string参照)を行なった場合、一度ひらがなに
       変換された文字列が対象となる)
       他にも次の候補番号が指定できる
        NTH_KATAKANA_CANDIDATE カタカナの候補
        NTH_HIRAGANA_CANDIDATE 平仮名の候補
        NTH_HALFKANA_CANDIDATE 半角カナの候補
       NTH_HALFKANA_CANDIDATEに限り確定しても学習は行われない。
 返り値: 失敗の場合は -1、成功の場合は文字数(nullは含まない)を返す
 *s番目の文節のn番目の候補を取得することができる。
 *結果はbuf中に最後のnull terminateまで含めてlenバイトまで確保される。
 *もしbuf が nullであれば結果のコピーは行われない。
  (これを利用して確保すべきバッファのサイズを取得すると良い)


 int anthy_commit_segment(anthy_context_t ac, int s, int n);
 引数: ac コンテキスト
       s 文節の番号
       n 候補の番号
 *コンテキスト中のs番目の文節をn番目の候補で確定する。
 *すべての文節が確定したときに学習などがおこなわれる。


 int anthy_set_prediction_string(anthy_context_t ac, const char *str);
 int anthy_get_prediction_stat(anthy_context_tm struct anthy_prediction_stat *aps);
 int anthy_get_prediction(anthy_context_t ac, int nth, char *buf, int buf_len);
 int anthy_commit_prediction(anthy_context_t ac, int nth);


 int anthy_set_reconversion_mode(anthy_context_t ac, int mode);
 引数: ac コンテキスト
       mode 逆変換のモード
       modeには次の定数が指定できる。
       ANTHY_RECONVERT_AUTO 漢字が混じっている場合に逆変換を行なう
       ANTHY_RECONVERT_DISABLE 常に順変換を行なう
       ANTHY_RECONVERT_ALWAYS 常に逆変換を行なう
       デフォルトではANTHY_RECONVERT_AUTOを指定した状態で動作する
 返り値: 設定されたモード
 *指定したコンテキストの逆変換の利用方法を設定する。


 int anthy_context_set_encoding(anthy_context_t ac, int encoding);
 引数: ac コンテキスト
       encoding エンコーディング
       encodingには次のいずれかの定数を指定する。
       ANTHY_COMPILED_ENCODING (現時点では動作は不定)
       ANTHY_EUC_JP_ENCODING EUC-JPを使用します
       ANTHY_UTF8_ENCODING UTF8を使用します
 返り値: 設定されたエンコーディング
 *変換コンテキストのAPI呼び出しに使用する文字列のエンコーディングを
  指定する。
 *デフォルトではANTHY_EUC_JP_ENCODINGが指定された状態で動作する


 int anthy_print_context(anthy_context_t ac);
 引数: ac コンテキスト
 変換コンテキストの内容を標準出力に書き出す
 形式は実装依存


 char *anthy_get_version_string (void);
 返り値: Anthyのバージョンを表す文字列
 Anthyのバージョンを取得する


 void anthy_set_logger(anthy_logger logger, int level);
