Blame doc/CALLOUTS.API.ja

Packit Service bd74e6
Callouts API  Version 6.8.2 2018/04/13
Packit Service bd74e6
Packit Service bd74e6
#include <oniguruma.h>
Packit Service bd74e6
Packit Service bd74e6
(1) 呼び出し関数
Packit Service bd74e6
(2) 内容の呼び出し関数の設定/取得
Packit Service bd74e6
(3) 名前の呼び出し関数の設定
Packit Service bd74e6
(4) ユーザデータ
Packit Service bd74e6
(5) OnigCalloutArgsからの値の取得
Packit Service bd74e6
(6) 名札
Packit Service bd74e6
(7) 呼び出しデータ (呼び出し関数内から使用される)
Packit Service bd74e6
(8) 呼び出しデータ (アプリケーションから使用される)
Packit Service bd74e6
(9) その他の関数
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
(1) 呼び出し関数
Packit Service bd74e6
Packit Service bd74e6
  型: OnigCalloutFunc
Packit Service bd74e6
Packit Service bd74e6
  typedef int (*OnigCalloutFunc)(OnigCalloutArgs* args, void* user_data);
Packit Service bd74e6
Packit Service bd74e6
  若し呼び出し関数として0(NULL)がセットされると、呼ばれることはない
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
  * 呼び出し関数の戻り値 (int)
Packit Service bd74e6
Packit Service bd74e6
    ONIG_CALLOUT_FAIL(1):     失敗
Packit Service bd74e6
    ONIG_CALLOUT_SUCCESS(0):  成功
Packit Service bd74e6
    -1未満:                   エラーコード (検索/照合の終了)
Packit Service bd74e6
Packit Service bd74e6
    ONIG_CALLOUT_FAIL/SUCCESSは、後退中の呼び出しでは無視される。
Packit Service bd74e6
    後退は失敗の回復過程なので。
Packit Service bd74e6
Packit Service bd74e6
  * 呼び出し関数の例
Packit Service bd74e6
Packit Service bd74e6
    extern int always_success(OnigCalloutArgs* args, void* user_data)
Packit Service bd74e6
    {
Packit Service bd74e6
      return ONIG_CALLOUT_SUCCESS;
Packit Service bd74e6
    }
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
(2) 内容の呼び出し関数の設定/取得
Packit Service bd74e6
Packit Service bd74e6
# OnigCalloutFunc onig_get_progress_callout(void)
Packit Service bd74e6
Packit Service bd74e6
  内容の呼び出し関数(前進)を返す
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_set_progress_callout(OnigCalloutFunc f)
Packit Service bd74e6
Packit Service bd74e6
  内容の呼び出し関数(前進)をセットする。
Packit Service bd74e6
  この値はonig_initialize_match_param()の中でデフォルトの呼び出し関数として
Packit Service bd74e6
  セットされる。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# OnigCalloutFunc onig_get_retraction_callout(void)
Packit Service bd74e6
Packit Service bd74e6
  内容の呼び出し関数(後退)を返す
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_set_retraction_callout(OnigCalloutFunc f)
Packit Service bd74e6
Packit Service bd74e6
  内容の呼び出し関数(後退)をセットする。
Packit Service bd74e6
  この値はonig_initialize_match_param()の中でデフォルトの呼び出し関数として
Packit Service bd74e6
  セットされる。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_set_progress_callout_of_match_param(OnigMatchParam* mp, OnigCalloutFunc f)
Packit Service bd74e6
Packit Service bd74e6
  内容の呼び出し関数(前進)をセットする。
Packit Service bd74e6
Packit Service bd74e6
  引数
Packit Service bd74e6
  1 mp: match-paramアドレス
Packit Service bd74e6
  2 f: 関数
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_set_retraction_callout_of_match_param(OnigMatchParam* mp, OnigCalloutFunc f)
Packit Service bd74e6
Packit Service bd74e6
  内容の呼び出し関数(後退)をセットする。
Packit Service bd74e6
Packit Service bd74e6
  引数
Packit Service bd74e6
  1 mp: match-paramアドレス
Packit Service bd74e6
  2 f: 関数
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
(3) 名前の呼び出し関数の設定
Packit Service bd74e6
Packit Service bd74e6
# int onig_set_callout_of_name(OnigEncoding enc, OnigCalloutType type, OnigUChar* name, OnigUChar* name_end, int callout_in, OnigCalloutFunc callout, OnigCalloutFunc end_callout, int arg_num, unsigned int arg_types[], int opt_arg_num, OnigValue opt_defaults[])
Packit Service bd74e6
Packit Service bd74e6
  名前の呼び出し関数をセットする。
Packit Service bd74e6
  名前に許される文字: _ A-Z a-z 0-9   (* 最初の文字: _ A-Z a-z)
Packit Service bd74e6
Packit Service bd74e6
  (enc, name)のペアが、呼び出し関数を見つけるためのキーとして使用される。
Packit Service bd74e6
  アプリケーションで使用される各エンコーディングに対してこの関数を呼ぶ必要がある。
Packit Service bd74e6
  しかし若しencエンコーディングがASCII互換であり、(enc, name)に対するエントリが
Packit Service bd74e6
  見つからない場合には、(ASCII, name)エントリが参照される。
Packit Service bd74e6
  従って、若しASCII互換エンコーディングのみ使用している場合には、この関数を(ASCII, name)
Packit Service bd74e6
  について一回呼べば十分である。
Packit Service bd74e6
Packit Service bd74e6
  引数
Packit Service bd74e6
   1 enc:         文字エンコーディング
Packit Service bd74e6
   2 type:        呼び出し型 (現在は ONIG_CALLOUT_TYPE_SINGLE のみサポート)
Packit Service bd74e6
   3 name:        名前のアドレス (encでエンコーディングされている文字列)
Packit Service bd74e6
   4 name_end:    名前の終端アドレス
Packit Service bd74e6
   5 callout_in:  方向フラグ (ONIG_CALLOUT_IN_PROGRESS/RETRACTION/BOTH)
Packit Service bd74e6
   6 callout:     呼び出し関数
Packit Service bd74e6
   7 end_callout: *まだ使用していない (0をセット)
Packit Service bd74e6
   8 arg_num:     引数の数 (* 最大値 ONIG_CALLOUT_MAX_ARGS_NUM == 4)
Packit Service bd74e6
   9 arg_types:   引数の型の配列
Packit Service bd74e6
  10 opt_arg_num: オプション引数の数
Packit Service bd74e6
  11 opt_defaults: オプション引数のデフォルト値
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
  error:
Packit Service bd74e6
    ONIGERR_INVALID_CALLOUT_NAME
Packit Service bd74e6
    ONIGERR_INVALID_ARGUMENT
Packit Service bd74e6
    ONIGERR_INVALID_CALLOUT_ARG
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
(4) ユーザデータ
Packit Service bd74e6
Packit Service bd74e6
# int onig_set_callout_user_data_of_match_param(OnigMatchParam* param, void* user_data)
Packit Service bd74e6
Packit Service bd74e6
  呼び出し関数の引数として渡されるユーザデータをセットする。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
(5) OnigCalloutArgsからの値の取得
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_callout_num_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  この呼び出しの呼び出し番号を返す。
Packit Service bd74e6
  "呼び出し番号"とは、正規表現パターンの中の呼び出しに対する識別子である。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# OnigCalloutIn onig_get_callout_in_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  この呼び出しが起きた時の方向(前進中/後退中)を返す。
Packit Service bd74e6
  (ONIG_CALLOUT_IN_PROGRESS か ONIG_CALLOUT_IN_RETRACTION)
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_name_id_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  この呼び出しの名前(name)の識別子を返す。
Packit Service bd74e6
  若しこの呼び出しが内容の呼び出しのときには、ONIG_NON_NAME_IDが返される。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# const OnigUChar* onig_get_contents_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  この呼び出しの内容文字列(NULL終端あり)を返す。
Packit Service bd74e6
  若しこの呼び出しが名前の呼び出しのときには、NULLを返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# const OnigUChar* onig_get_contents_end_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  この呼び出しの内容(contents)の終端を返す。
Packit Service bd74e6
  若しこの呼び出しが名前の呼び出しのときには、NULLを返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_args_num_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  この呼び出しの引数の数を返す。
Packit Service bd74e6
  正規表現パターンの中で渡されなかったオプション引数も含む。
Packit Service bd74e6
  若しこの呼び出しが内容の呼び出しのときには、ONIGERR_INVALID_ARGUMENTが返される。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_passed_args_num_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  この呼び出しの本当に渡された引数の数を返す。
Packit Service bd74e6
  若しこの呼び出しが内容の呼び出しのときには、ONIGERR_INVALID_ARGUMENTが返される。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_arg_by_callout_args(OnigCalloutArgs* args, int index, OnigType* type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  この呼び出しの一個の引数の値と型を返す。
Packit Service bd74e6
  若しこの呼び出しが内容の呼び出しのときには、ONIGERR_INVALID_ARGUMENTが返される。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# const OnigUChar* onig_get_string_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  対象文字列のアドレスを返す。
Packit Service bd74e6
  onig_search()の二番目の引数(str)である。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# const OnigUChar* onig_get_string_end_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  対象文字列の終端アドレスを返す。
Packit Service bd74e6
  onig_search()の三番目の引数(end)である。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# const OnigUChar* onig_get_start_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  対象文字列の現在の照合処理開始アドレスを返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# const OnigUChar* onig_get_right_range_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  対象文字列の現在の照合範囲アドレスを返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# const OnigUChar* onig_get_current_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  対象文字列の現在の照合位置アドレスを返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# OnigRegex onig_get_regex_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  この呼び出しの正規表現オブジェクトのアドレスを返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# unsigned long onig_get_retry_counter_by_callout_args(OnigCalloutArgs* args)
Packit Service bd74e6
Packit Service bd74e6
  retry-limit-in-matchのためのリトライカウンタの現在値を返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
(6) 名札
Packit Service bd74e6
Packit Service bd74e6
  "Tag" (名札)とは、正規表現パターンの中で呼び出しに割り当てられた名前である。
Packit Service bd74e6
  tag文字列に使用できる文字: _ A-Z a-z 0-9   (* 先頭の文字: _ A-Z a-z)
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_callout_tag_is_exist_at_callout_num(OnigRegex reg, int callout_num)
Packit Service bd74e6
Packit Service bd74e6
  その呼び出しにtagが割り当てられていれば1を返す、そうでなければ0を返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# const OnigUChar* onig_get_callout_tag_start(OnigRegex reg, int callout_num)
Packit Service bd74e6
Packit Service bd74e6
  その呼び出しに対するtag文字列(NULL終端あり)の先頭アドレスを返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# const OnigUChar* onig_get_callout_tag_end(OnigRegex reg, int callout_num)
Packit Service bd74e6
Packit Service bd74e6
  その呼び出しに対するtag文字列の終端アドレスを返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_callout_num_by_tag(OnigRegex reg, const OnigUChar* tag, const OnigUChar* tag_end)
Packit Service bd74e6
Packit Service bd74e6
  そのtagに対する呼び出し番号を返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
(7) 呼び出しデータ (呼び出し関数内から使用される)
Packit Service bd74e6
Packit Service bd74e6
  "呼び出しデータ" (callout data)とは、
Packit Service bd74e6
  それぞれの呼び出しに対してそれぞれの検索処理の中で割り当てられた、
Packit Service bd74e6
  ONIG_CALLOUT_DATA_SLOT_NUM(== 5)個の値の領域である。
Packit Service bd74e6
  一個の呼び出しに対する各値の領域は、"スロット"(slot)番号(0 - 4)によって示される。
Packit Service bd74e6
  呼び出しデータは呼び出し関数の実装者によって任意の目的に使用される。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_callout_data_by_callout_args(OnigCalloutArgs* args, int callout_num, int slot, OnigType* type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  callout_num/slotによって示された呼び出しスロットに対するデータの値/型を返す。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
        1: 値が未セット (typeは ONIG_TYPE_VOID)
Packit Service bd74e6
      < 0: エラーコード
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_callout_data_by_callout_args_self(OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  自分自身の呼び出しのslotによって示されたスロットに対するデータの値/型を返す。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
        1: 値が未セット (typeは ONIG_TYPE_VOID)
Packit Service bd74e6
      < 0: エラーコード
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_set_callout_data_by_callout_args(OnigCalloutArgs* args, int callout_num, int slot, OnigType type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  callout_num/slotによって示された呼び出しスロットに対する値/型をセットする。。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
      < 0: エラーコード
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_set_callout_data_by_callout_args_self(OnigCalloutArgs* args, int slot, OnigType type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  自分自身の呼び出しのslotによって示されたスロットに対する値/型をセットする。。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
      < 0: エラーコード
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_callout_data_by_callout_args_self_dont_clear_old(OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  この関数は、onig_get_callout_data_by_callout_args_self()とほぼ同じである。
Packit Service bd74e6
  しかしこの関数は、現在の照合処理以前の失敗した照合処理の中でセットされた値を
Packit Service bd74e6
  クリアしない。
Packit Service bd74e6
  他のonig_get_callout_data_xxxx()関数は、以前の失敗した照合処理の中でセットされた値を
Packit Service bd74e6
  クリアする。
Packit Service bd74e6
Packit Service bd74e6
  例えば、組み込み呼び出し(*TOTAL_COUNT)は、検索処理の中の全ての照合処理の積算カウントを
Packit Service bd74e6
  得るためにこの関数を使用して実装されている。
Packit Service bd74e6
  組み込む呼び出し(*COUNT)は、この関数を使用しないので、最後の成功した照合処理だけの
Packit Service bd74e6
  カウントを返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
(8) 呼び出しデータ (アプリケーションから使用される)
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_callout_data(OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  callout_num/slotによって示された呼び出しスロットに対するデータの値/型を返す。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
        1: 値が未セット (typeは ONIG_TYPE_VOID)
Packit Service bd74e6
      < 0: エラーコード
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_callout_data_by_tag(OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType* type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  tag/slotによって示された呼び出しスロットに対するデータの値/型を返す。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
        1: 値が未セット (typeは ONIG_TYPE_VOID)
Packit Service bd74e6
      < 0: エラーコード
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_set_callout_data(OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  callout_num/slotによって示された呼び出しスロットに対する値/型をセットする。。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
      < 0: エラーコード
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_set_callout_data_by_tag(OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  tag/slotによって示された呼び出しスロットに対する値/型をセットする。。
Packit Service bd74e6
Packit Service bd74e6
  正常終了: ONIG_NORMAL
Packit Service bd74e6
      < 0: エラーコード
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_callout_data_dont_clear_old(OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val)
Packit Service bd74e6
Packit Service bd74e6
  この関数を使用する必要はないと思われる。
Packit Service bd74e6
  廃止予定。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
(9) その他の関数
Packit Service bd74e6
Packit Service bd74e6
# OnigUChar* onig_get_callout_name_by_name_id(int name_id)
Packit Service bd74e6
Packit Service bd74e6
  名前の識別子に対する名前を返す。
Packit Service bd74e6
  不正な識別子が渡された場合には0を返す。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_capture_range_in_callout(OnigCalloutArgs* args, int mem_num, int* begin, int* end)
Packit Service bd74e6
Packit Service bd74e6
  現在の捕獲範囲を返す。
Packit Service bd74e6
  位置は、対象文字列に対するバイト単位で表される。
Packit Service bd74e6
  未捕獲のmem_numに対しては、ONIG_REGION_NOTPOSがセットされる。
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
# int onig_get_used_stack_size_in_callout(OnigCalloutArgs* args, int* used_num, int* used_bytes)
Packit Service bd74e6
Packit Service bd74e6
  現在使用されている照合処理用スタックサイズを返す。
Packit Service bd74e6
Packit Service bd74e6
  used_num:   要素数
Packit Service bd74e6
  used_bytes: バイト数
Packit Service bd74e6
Packit Service bd74e6
//END