1Callouts API  Version 6.8.2 2018/06/08
2
3#include <oniguruma.h>
4
5(1) 呼び出し関数
6(2) 内容の呼び出し関数の設定/取得
7(3) 名前の呼び出し関数の設定
8(4) ユーザデータ
9(5) OnigCalloutArgsからの値の取得
10(6) 名札
11(7) 呼び出しデータ (呼び出し関数内から使用される)
12(8) 呼び出しデータ (アプリケーションから使用される)
13(9) その他の関数
14
15
16(1) 呼び出し関数
17
18  型: OnigCalloutFunc
19
20  typedef int (*OnigCalloutFunc)(OnigCalloutArgs* args, void* user_data);
21
22  若し呼び出し関数として0(NULL)がセットされると、呼ばれることはない
23
24
25  * 呼び出し関数の戻り値 (int)
26
27    ONIG_CALLOUT_FAIL (== 1):     失敗
28    ONIG_CALLOUT_SUCCESS (== 0):  成功
29    -1未満:                       エラーコード (検索/照合の終了)
30
31    ONIG_CALLOUT_FAIL/SUCCESSは、後退中の呼び出しでは無視される。
32    後退は失敗の回復過程なので。
33
34  * 呼び出し関数の例
35
36    extern int always_success(OnigCalloutArgs* args, void* user_data)
37    {
38      return ONIG_CALLOUT_SUCCESS;
39    }
40
41
42
43(2) 内容の呼び出し関数の設定/取得
44
45# OnigCalloutFunc onig_get_progress_callout(void)
46
47  内容の呼び出し関数(前進中)を返す
48
49
50# int onig_set_progress_callout(OnigCalloutFunc f)
51
52  内容の呼び出し関数(前進中)をセットする。
53  この値はonig_initialize_match_param()の中でデフォルトの呼び出し関数として
54  セットされる。
55
56  正常終了: ONIG_NORMAL
57
58
59# OnigCalloutFunc onig_get_retraction_callout(void)
60
61  内容の呼び出し関数(後退中)を返す
62
63
64# int onig_set_retraction_callout(OnigCalloutFunc f)
65
66  内容の呼び出し関数(後退中)をセットする。
67  この値はonig_initialize_match_param()の中でデフォルトの呼び出し関数として
68  セットされる。
69
70  正常終了: ONIG_NORMAL
71
72
73# int onig_set_progress_callout_of_match_param(OnigMatchParam* mp, OnigCalloutFunc f)
74
75  内容の呼び出し関数(前進中)をセットする。
76
77  引数
78  1 mp: match-paramアドレス
79  2 f: 関数
80
81  正常終了: ONIG_NORMAL
82
83
84# int onig_set_retraction_callout_of_match_param(OnigMatchParam* mp, OnigCalloutFunc f)
85
86  内容の呼び出し関数(後退中)をセットする。
87
88  引数
89  1 mp: match-paramアドレス
90  2 f: 関数
91
92  正常終了: ONIG_NORMAL
93
94
95
96(3) 名前の呼び出し関数の設定
97
98# 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[])
99
100  名前の呼び出し関数をセットする。
101  名前に許される文字: _ A-Z a-z 0-9   (* 最初の文字: _ A-Z a-z)
102
103  (enc, name)のペアが、呼び出し関数を見つけるためのキーとして使用される。
104  アプリケーションで使用される各エンコーディングに対してこの関数を呼ぶ必要がある。
105  しかし若しencエンコーディングがASCII互換であり、(enc, name)に対するエントリが
106  見つからない場合には、(ASCII, name)エントリが参照される。
107  従って、若しASCII互換エンコーディングのみ使用している場合には、この関数を(ASCII, name)
108  について一回呼べば十分である。
109
110  引数
111   1 enc:         文字エンコーディング
112   2 type:        呼び出し型 (現在は ONIG_CALLOUT_TYPE_SINGLE のみサポート)
113   3 name:        名前のアドレス (encでエンコーディングされている文字列)
114   4 name_end:    名前の終端アドレス
115   5 callout_in:  方向フラグ (ONIG_CALLOUT_IN_PROGRESS/RETRACTION/BOTH)
116   6 callout:     呼び出し関数
117   7 end_callout: *まだ使用していない (0をセット)
118   8 arg_num:     引数の数 (* 最大値 ONIG_CALLOUT_MAX_ARGS_NUM == 4)
119   9 arg_types:   引数の型の配列
120  10 opt_arg_num: オプション引数の数
121  11 opt_defaults: オプション引数のデフォルト値
122
123  正常終了: ONIG_NORMAL
124  error:
125    ONIGERR_INVALID_CALLOUT_NAME
126    ONIGERR_INVALID_ARGUMENT
127    ONIGERR_INVALID_CALLOUT_ARG
128
129
130
131(4) ユーザデータ
132
133# int onig_set_callout_user_data_of_match_param(OnigMatchParam* param, void* user_data)
134
135  呼び出し関数の引数として渡されるユーザデータをセットする。
136
137  正常終了: ONIG_NORMAL
138
139
140
141(5) OnigCalloutArgsからの値の取得
142
143# int onig_get_callout_num_by_callout_args(OnigCalloutArgs* args)
144
145  この呼び出しの呼び出し番号を返す。
146  "呼び出し番号"とは、正規表現パターンの中の呼び出しに対する識別子である。
147
148
149# OnigCalloutIn onig_get_callout_in_by_callout_args(OnigCalloutArgs* args)
150
151  この呼び出しが起きた時の方向(前進中/後退中)を返す。
152  (ONIG_CALLOUT_IN_PROGRESS か ONIG_CALLOUT_IN_RETRACTION)
153
154
155# int onig_get_name_id_by_callout_args(OnigCalloutArgs* args)
156
157  この呼び出しの名前(name)の識別子を返す。
158  若しこの呼び出しが内容の呼び出しのときには、ONIG_NON_NAME_IDが返される。
159
160
161# const OnigUChar* onig_get_contents_by_callout_args(OnigCalloutArgs* args)
162
163  この呼び出しの内容文字列(NULL終端あり)を返す。
164  若しこの呼び出しが名前の呼び出しのときには、NULLを返す。
165
166
167# const OnigUChar* onig_get_contents_end_by_callout_args(OnigCalloutArgs* args)
168
169  この呼び出しの内容(contents)の終端を返す。
170  若しこの呼び出しが名前の呼び出しのときには、NULLを返す。
171
172
173# int onig_get_args_num_by_callout_args(OnigCalloutArgs* args)
174
175  この呼び出しの引数の数を返す。
176  正規表現パターンの中で渡されなかったオプション引数も含む。
177  若しこの呼び出しが内容の呼び出しのときには、ONIGERR_INVALID_ARGUMENTが返される。
178
179
180# int onig_get_passed_args_num_by_callout_args(OnigCalloutArgs* args)
181
182  この呼び出しの本当に渡された引数の数を返す。
183  若しこの呼び出しが内容の呼び出しのときには、ONIGERR_INVALID_ARGUMENTが返される。
184
185
186# int onig_get_arg_by_callout_args(OnigCalloutArgs* args, int index, OnigType* type, OnigValue* val)
187
188  この呼び出しの一個の引数の値と型を返す。
189  若しこの呼び出しが内容の呼び出しのときには、ONIGERR_INVALID_ARGUMENTが返される。
190
191  正常終了: ONIG_NORMAL
192
193
194# const OnigUChar* onig_get_string_by_callout_args(OnigCalloutArgs* args)
195
196  対象文字列のアドレスを返す。
197  onig_search()の二番目の引数(str)である。
198
199
200# const OnigUChar* onig_get_string_end_by_callout_args(OnigCalloutArgs* args)
201
202  対象文字列の終端アドレスを返す。
203  onig_search()の三番目の引数(end)である。
204
205
206# const OnigUChar* onig_get_start_by_callout_args(OnigCalloutArgs* args)
207
208  対象文字列の現在の照合処理開始アドレスを返す。
209
210
211# const OnigUChar* onig_get_right_range_by_callout_args(OnigCalloutArgs* args)
212
213  対象文字列の現在の照合範囲アドレスを返す。
214
215
216# const OnigUChar* onig_get_current_by_callout_args(OnigCalloutArgs* args)
217
218  対象文字列の現在の照合位置アドレスを返す。
219
220
221# OnigRegex onig_get_regex_by_callout_args(OnigCalloutArgs* args)
222
223  この呼び出しの正規表現オブジェクトのアドレスを返す。
224
225
226# unsigned long onig_get_retry_counter_by_callout_args(OnigCalloutArgs* args)
227
228  retry-limit-in-matchのためのリトライカウンタの現在値を返す。
229
230
231
232(6) 名札
233
234  "Tag" (名札)とは、正規表現パターンの中で呼び出しに割り当てられた名前である。
235  tag文字列に使用できる文字: _ A-Z a-z 0-9   (* 先頭の文字: _ A-Z a-z)
236
237
238# int onig_callout_tag_is_exist_at_callout_num(OnigRegex reg, int callout_num)
239
240  その呼び出しにtagが割り当てられていれば1を返す、そうでなければ0を返す。
241
242
243# const OnigUChar* onig_get_callout_tag_start(OnigRegex reg, int callout_num)
244
245  その呼び出しに対するtag文字列(NULL終端あり)の先頭アドレスを返す。
246
247
248# const OnigUChar* onig_get_callout_tag_end(OnigRegex reg, int callout_num)
249
250  その呼び出しに対するtag文字列の終端アドレスを返す。
251
252
253# int onig_get_callout_num_by_tag(OnigRegex reg, const OnigUChar* tag, const OnigUChar* tag_end)
254
255  そのtagに対する呼び出し番号を返す。
256
257
258
259(7) 呼び出しデータ (呼び出し関数内から使用される)
260
261  "呼び出しデータ" (callout data)とは、
262  それぞれの呼び出しに対してそれぞれの検索処理の中で割り当てられた、
263  ONIG_CALLOUT_DATA_SLOT_NUM(== 5)個の値の領域である。
264  一個の呼び出しに対する各値の領域は、"スロット"(slot)番号(0 - 4)によって示される。
265  呼び出しデータは呼び出し関数の実装者によって任意の目的に使用される。
266
267
268# int onig_get_callout_data_by_callout_args(OnigCalloutArgs* args, int callout_num, int slot, OnigType* type, OnigValue* val)
269
270  callout_num/slotによって示された呼び出しスロットに対するデータの値/型を返す。
271
272  正常終了: ONIG_NORMAL
273        1: 値が未セット (typeは ONIG_TYPE_VOID)
274      < 0: エラーコード
275
276
277# int onig_get_callout_data_by_callout_args_self(OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val)
278
279  自分自身の呼び出しのslotによって示されたスロットに対するデータの値/型を返す。
280
281  正常終了: ONIG_NORMAL
282        1: 値が未セット (typeは ONIG_TYPE_VOID)
283      < 0: エラーコード
284
285
286# int onig_set_callout_data_by_callout_args(OnigCalloutArgs* args, int callout_num, int slot, OnigType type, OnigValue* val)
287
288  callout_num/slotによって示された呼び出しスロットに対する値/型をセットする。。
289
290  正常終了: ONIG_NORMAL
291      < 0: エラーコード
292
293
294# int onig_set_callout_data_by_callout_args_self(OnigCalloutArgs* args, int slot, OnigType type, OnigValue* val)
295
296  自分自身の呼び出しのslotによって示されたスロットに対する値/型をセットする。。
297
298  正常終了: ONIG_NORMAL
299      < 0: エラーコード
300
301
302# int onig_get_callout_data_by_callout_args_self_dont_clear_old(OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val)
303
304  この関数は、onig_get_callout_data_by_callout_args_self()とほぼ同じである。
305  しかしこの関数は、現在の照合処理以前の失敗した照合処理の中でセットされた値を
306  クリアしない。
307  他のonig_get_callout_data_xxxx()関数は、以前の失敗した照合処理の中でセットされた値を
308  クリアする。
309
310  例えば、組み込み呼び出し(*TOTAL_COUNT)は、検索処理の中の全ての照合処理の積算カウントを
311  得るためにこの関数を使用して実装されている。
312  組み込む呼び出し(*COUNT)は、この関数を使用しないので、最後の成功した照合処理だけの
313  カウントを返す。
314
315
316
317(8) 呼び出しデータ (アプリケーションから使用される)
318
319# int onig_get_callout_data(OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val)
320
321  callout_num/slotによって示された呼び出しスロットに対するデータの値/型を返す。
322
323  正常終了: ONIG_NORMAL
324        1: 値が未セット (typeは ONIG_TYPE_VOID)
325      < 0: エラーコード
326
327
328# int onig_get_callout_data_by_tag(OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType* type, OnigValue* val)
329
330  tag/slotによって示された呼び出しスロットに対するデータの値/型を返す。
331
332  正常終了: ONIG_NORMAL
333        1: 値が未セット (typeは ONIG_TYPE_VOID)
334      < 0: エラーコード
335
336
337# int onig_set_callout_data(OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType type, OnigValue* val)
338
339  callout_num/slotによって示された呼び出しスロットに対する値/型をセットする。。
340
341  正常終了: ONIG_NORMAL
342      < 0: エラーコード
343
344
345# int onig_set_callout_data_by_tag(OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType type, OnigValue* val)
346
347  tag/slotによって示された呼び出しスロットに対する値/型をセットする。。
348
349  正常終了: ONIG_NORMAL
350      < 0: エラーコード
351
352
353# int onig_get_callout_data_dont_clear_old(OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val)
354
355  この関数を使用する必要はないと思われる。
356  廃止予定。
357
358
359
360(9) その他の関数
361
362# OnigUChar* onig_get_callout_name_by_name_id(int name_id)
363
364  名前の識別子に対する名前を返す。
365  不正な識別子が渡された場合には0を返す。
366
367
368# int onig_get_capture_range_in_callout(OnigCalloutArgs* args, int mem_num, int* begin, int* end)
369
370  現在の捕獲範囲を返す。
371  位置は、対象文字列に対するバイト単位で表される。
372  未捕獲のmem_numに対しては、ONIG_REGION_NOTPOSがセットされる。
373
374
375# int onig_get_used_stack_size_in_callout(OnigCalloutArgs* args, int* used_num, int* used_bytes)
376
377  現在使用されている照合処理用スタックサイズを返す。
378
379  used_num:   要素数
380  used_bytes: バイト数
381
382//END
383