;;; ;;; cabochalib.stub ;;; ;;; 2009.3.15 by naoya_t ;;; " #include #include #include #include \"cabocha.h\" " ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-cclass "ScmCaboCha*" "Scm_CaboChaClass" () ()) (define-type "cabocha_t*" "cabocha_t" "SCM_CABOCHAP" "unwrap_cabocha_t" "wrap_cabocha_t") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;cabocha_t *cabocha_new(int argc, char **argv) ;; cabocha のインスタンスを生成します. ;; 引数には, C 言語の, main 関数で使用される argc, argv スタイルの引数を与えます. ;; この引数は, cabocha コマンドと同じ方法で処理されます. ;; 成功すれば, cabocha_t 型のポインタが返ってきます. このポインタを通して解析を行います. (define-cproc cabocha-new (&rest args) (expr "cabocha_call_cabocha_func(&cabocha_new,args)")) ;;cabocha_t *cabocha_new2(char *arg) ;; cabocha のインスタンスを生成します. ;; 引数には, 一つの文字列として表現したパラメータを与えます. ;; この引数は, cabocha コマンドと同じ方法で処理されますが, ;; 文字列を解釈するルーチンが貧弱なので留意してください. ;; 成功すれば, cabocha_t 型のポインタが返ってきます. このポインタを通して解析を行います. (define-cproc cabocha-new2 (arg::) (call "cabocha_new2")) ;;char *cabocha_sparse_tostr(cabocha_t *p, char *str) ;; 解析を行います. 引数には, cabocha_new で得られた cabocha_t 型のポインタと, ;; 各レイヤの1解析単位を1つの文字列で表現した char 型のポインタ文字列を与えます. ;; デフォルトの動作ならば, 引数の文字列は生文となります. ;; 成功すれば, 解析後の結果が char 型のポインタとして返ってきます. ;; 戻り値のポインタが指すメモリ領域は, 呼び出し側で管理する必要はありませんが, ;; cabocha_sparse_tostr を呼ぶ度に上書きされます. ;; また, cabocha_destroy を呼ぶと解放されます. (define-cproc cabocha-sparse-tostr (c:: str::) (call "cabocha_sparse_tostr")) ;;char *cabocha_sparse_tostr2 (cabocha_t *m, char *str, unsigned int len) ;; cabocha_sparse_tostr とほぼ同じですが, len にて, 解析する文の長さを指定できます. (define-cproc cabocha-sparse-tostr2 (c:: str:: len::) (call "cabocha_sparse_tostr2")) ;;char *cabocha_sparse_tostr3 (cabocha_t *m, char *istr,unsigned int ilen char *ostr,unsigned int olen) ;; cabocha_sparse_tostr2 に加え, 出力用のバッファ領域 (ostr), 及びその長さ (olen) を指定できます. ostr の領域の管理は, 呼び出し側が行います. 成功すれば, 解析後の結果が char 型のポインタとして返ってきます. これは, ostr と同じになります. もし, 解析結果の長さが olen 以上になった場合は, 解析失敗とみなし, NULL を返します. ;;char *cabocha_strerror (cabocha_t* m) ;; エラーの内容を文字列として取得します. cabocha_sparse_tostr 等で, NULL が返ってきた場合に, cabocha_strerror を呼ぶことで, エラーの内容を取得できます. cabocha_new,cabocha_new2 のエラーは, m を NULL と指定してください. (define-cproc cabocha-strerror (c::) (call "cabocha_strerror")) ;;void cabocha_destroy(cabocha_t *p) ;; cabocha_t 型のポインタを解放します. ;;(define-cproc cabocha-destroy (c::) ;; (call "cabocha_destroy")) (define-cproc cabocha-destroy (p::) " if (p->c) { cabocha_destroy(p->c); p->c = NULL; } SCM_RETURN(SCM_UNDEFINED); ") (define-cproc cabocha-destroyed? (c::) " SCM_RETURN(SCM_MAKE_BOOL(c == NULL)); ") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Local variables: ;; mode: scheme ;; end: