summaryrefslogtreecommitdiff
path: root/doc/CALLOUTS.API
diff options
context:
space:
mode:
Diffstat (limited to 'doc/CALLOUTS.API')
-rw-r--r--doc/CALLOUTS.API385
1 files changed, 385 insertions, 0 deletions
diff --git a/doc/CALLOUTS.API b/doc/CALLOUTS.API
new file mode 100644
index 0000000..6003532
--- /dev/null
+++ b/doc/CALLOUTS.API
@@ -0,0 +1,385 @@
+Callouts API Version 6.8.2 2018/04/14
+
+#include <oniguruma.h>
+
+(1) Callout functions
+(2) Set/Get functions for Callouts of contents
+(3) Set functions for Callouts of name
+(4) User data
+(5) Get values from OnigCalloutArgs
+(6) Tag
+(7) Callout data (used in callout functions)
+(8) Callout data (used in applications)
+(9) Miscellaneous functions
+
+
+(1) Callout functions
+
+ type: OnigCalloutFunc
+
+ typedef int (*OnigCalloutFunc)(OnigCalloutArgs* args, void* user_data);
+
+ If 0 (NULL) is set as a callout function value, never called.
+
+
+ * Callout function return value (int)
+
+ ONIG_CALLOUT_FAIL(1): fail
+ ONIG_CALLOUT_SUCCESS(0): success
+ less than -1: error code (terminate search/match)
+
+ ONIG_CALLOUT_FAIL/SUCCESS values are ignored in retractions,
+ because retraction is a part of recovery process after failure.
+
+ * Example of callout function
+
+ extern int always_success(OnigCalloutArgs* args, void* user_data)
+ {
+ return ONIG_CALLOUT_SUCCESS;
+ }
+
+
+
+(2) Set/Get functions for Callouts of contents
+
+# OnigCalloutFunc onig_get_progress_callout(void)
+
+ Get a function for callouts of contents in progress.
+
+
+# int onig_set_progress_callout(OnigCalloutFunc f)
+
+ Set a function for callouts of contents in progress.
+ This value set in onig_initialize_match_param() as a default
+ callout function.
+
+ normal return: ONIG_NORMAL
+
+
+# OnigCalloutFunc onig_get_retraction_callout(void)
+
+ Get a function for callouts of contents in retraction (backtrack).
+
+
+# int onig_set_retraction_callout(OnigCalloutFunc f)
+
+ Set a function for callouts of contents in retraction (backtrack).
+ This value set in onig_initialize_match_param() as a default
+ callout function.
+
+ normal return: ONIG_NORMAL
+
+
+# int onig_set_progress_callout_of_match_param(OnigMatchParam* mp, OnigCalloutFunc f)
+
+ Set a function for callouts of contents in progress.
+
+ arguments
+ 1 mp: match-param pointer
+ 2 f: function
+
+ normal return: ONIG_NORMAL
+
+
+# int onig_set_retraction_callout_of_match_param(OnigMatchParam* mp, OnigCalloutFunc f)
+
+ Set a function for callouts of contents in retraction (backtrack).
+
+ arguments
+ 1 mp: match-param pointer
+ 2 f: function
+
+ normal return: ONIG_NORMAL
+
+
+
+(3) Set functions for Callouts of name
+
+# 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[])
+
+ Set a function for callouts of name.
+ Allowed name string characters: _ A-Z a-z 0-9 (* first character: _ A-Z a-z)
+
+ (enc, name) pair is used as key value to find callout function.
+ You have to call this function for every encoding used in your applications.
+ But if enc is ASCII compatible and (enc, name) entry is not found,
+ then (ASCII, name) entry is used.
+ Therefore, if you use ASCII compatible encodings only, it is enough to call
+ this function one time for (ASCII, name).
+
+ arguments
+ 1 enc: character encoding
+ 2 type: callout type (currently ONIG_CALLOUT_TYPE_SINGLE only supported)
+ 3 name: name string address (the string is encoded by enc)
+ 4 name_end: name string end address
+ 5 callout_in: direction (ONIG_CALLOUT_IN_PROGRESS/RETRACTION/BOTH)
+ 6 callout: callout function
+ 7 end_callout: * not used currently (set 0)
+ 8 arg_num: number of arguments (*limit by ONIG_CALLOUT_MAX_ARGS_NUM == 4)
+ 9 arg_types: type array of arguments
+ 10 opt_arg_num: number of optional arguments
+ 11 opt_defaults: default values array of optional arguments
+
+ normal return: ONIG_NORMAL
+ error:
+ ONIGERR_INVALID_CALLOUT_NAME
+ ONIGERR_INVALID_ARGUMENT
+ ONIGERR_INVALID_CALLOUT_ARG
+
+
+
+(4) User data
+
+# int onig_set_callout_user_data_of_match_param(OnigMatchParam* param, void* user_data)
+
+ Set a user_data value which passed as second argument of callout.
+
+ normal return: ONIG_NORMAL
+
+
+
+(5) Get values from OnigCalloutArgs
+
+# int onig_get_callout_num_by_callout_args(OnigCalloutArgs* args)
+
+ Returns callout number of this callout.
+ "Callout number" is an identifier of callout in a regex pattern.
+
+
+# OnigCalloutIn onig_get_callout_in_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the direction of this callout.
+ (ONIG_CALLOUT_IN_PROGRESS or ONIG_CALLOUT_IN_RETRACTION)
+
+
+# int onig_get_name_id_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the name identifier of this callout.
+ If this callout is callout of contents, then returns ONIG_NON_NAME_ID.
+
+
+# const OnigUChar* onig_get_contents_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the contents string of this callout. (NULL terminated string)
+ If this callout is callout of name, then returns NULL.
+
+
+# const OnigUChar* onig_get_contents_end_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the end of contents string of this callout.
+ If this callout is callout of name, then returns NULL.
+
+
+# int onig_get_args_num_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the number of args of this callout.
+ It includes optional arguments that doesn't passed in regex pattern.
+ If this callout is callout of contents, then returns
+ ONIGERR_INVALID_ARGUMENT.
+
+
+# int onig_get_passed_args_num_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the number of args that passed really in regex pattern.
+ If this callout is callout of contents, then returns
+ ONIGERR_INVALID_ARGUMENT.
+
+
+# int onig_get_arg_by_callout_args(OnigCalloutArgs* args, int index, OnigType* type, OnigValue* val)
+
+ Returns a value and a type of the callout argument.
+ If this callout is callout of contents, then returns
+ ONIGERR_INVALID_ARGUMENT.
+
+ normal return: ONIG_NORMAL
+
+
+# const OnigUChar* onig_get_string_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the subject string adress.
+ This is the second argument(str) of onig_search().
+
+
+# const OnigUChar* onig_get_string_end_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the end address of subject string.
+ This is the third argument(end) of onig_search().
+
+
+# const OnigUChar* onig_get_start_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the start address of subject string in current match process.
+
+
+# const OnigUChar* onig_get_right_range_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the right range address of subject string.
+
+
+# const OnigUChar* onig_get_current_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the current address of subject string in current match process.
+
+
+# OnigRegex onig_get_regex_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the regex object address of this callout.
+
+
+# unsigned long onig_get_retry_counter_by_callout_args(OnigCalloutArgs* args)
+
+ Returns the current counter value for retry-limit-in-match.
+
+
+
+(6) Tag
+
+ "Tag" is a name assigned to a callout in regexp pattern.
+ Allowed tag string characters: _ A-Z a-z 0-9 (* first character: _ A-Z a-z)
+
+
+# int onig_callout_tag_is_exist_at_callout_num(OnigRegex reg, int callout_num)
+
+ Returns 1 if tag is assigned for the callout, else returns 0.
+
+
+# int onig_get_callout_num_by_tag(OnigRegex reg, const OnigUChar* tag, const OnigUChar* tag_end)
+
+ Returns the callout number for the tag.
+
+
+# const OnigUChar* onig_get_callout_tag_start(OnigRegex reg, int callout_num)
+
+ Returns the start address of tag string for the callout.
+ (NULL terminated string)
+
+
+# const OnigUChar* onig_get_callout_tag_end(OnigRegex reg, int callout_num)
+
+ Returns the end address of tag string for the callout.
+
+
+
+(7) Callout data (used in callout functions)
+
+ "Callout data" is ONIG_CALLOUT_DATA_SLOT_NUM(5) values area
+ for each callout in each search process.
+ Each value area in a callout is indicated by "slot" number (0 - 4).
+ Callout data are used for any purpose by callout function implementers.
+
+
+# int onig_get_callout_data_by_callout_args(OnigCalloutArgs* args, int callout_num, int slot, OnigType* type, OnigValue* val)
+
+ Returns the callout data value/type for a callout slot indicated by
+ callout_num/slot.
+
+ normal return: ONIG_NORMAL
+ 1: not yet set (type is ONIG_TYPE_VOID)
+ < 0: error code
+
+
+# int onig_get_callout_data_by_callout_args_self(OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val)
+
+ Returns self callout data value/type.
+
+ normal return: ONIG_NORMAL
+ 1: not yet set (type is ONIG_TYPE_VOID)
+ < 0: error code
+
+
+# int onig_set_callout_data_by_callout_args(OnigCalloutArgs* args, int callout_num, int slot, OnigType type, OnigValue* val)
+
+ Set the callout data value/type for a callout slot indicated by callout_num/slot.
+
+ normal return: ONIG_NORMAL
+ < 0: error code
+
+
+# int onig_set_callout_data_by_callout_args_self(OnigCalloutArgs* args, int slot, OnigType type, OnigValue* val)
+
+ Set self callout data value/type for a callout slot indicated by slot.
+
+ normal return: ONIG_NORMAL
+ < 0: error code
+
+
+# int onig_get_callout_data_by_callout_args_self_dont_clear_old(OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val)
+
+ This function is almost same as onig_get_callout_data_by_callout_args_self().
+ But this function doesn't clear values which set in previous failed match process.
+ Other onig_get_callout_data_xxxx() functions clear all values which set
+ in previous failed match process.
+
+ For example, Builtin callout (*TOTAL_COUNT) is implemented by using this
+ function for accumulate count of all of match processes in a search process.
+ Builtin callout (*COUNT) returns count in last success match process only,
+ because it doesn't use this function.
+
+
+(8) Callout data (used in apllications)
+
+# int onig_get_callout_data(OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val)
+
+ Returns the callout data value/type for a callout slot indicated by
+ callout_num/slot.
+
+ normal return: ONIG_NORMAL
+ 1: not yet set (type is ONIG_TYPE_VOID)
+ < 0: error code
+
+
+# int onig_get_callout_data_by_tag(OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType* type, OnigValue* val)
+
+ Returns the callout data value/type for a callout slot indicated by tag/slot.
+
+ normal return: ONIG_NORMAL
+ 1: not yet set (type is ONIG_TYPE_VOID)
+ < 0: error code
+
+
+# int onig_set_callout_data(OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType type, OnigValue* val)
+
+ Set the callout data value/type for a callout slot indicated by callout_num/slot.
+
+ normal return: ONIG_NORMAL
+ < 0: error code
+
+
+# int onig_set_callout_data_by_tag(OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType type, OnigValue* val)
+
+ Set the callout data value/type for a callout slot indicated by tag/slot.
+
+ normal return: ONIG_NORMAL
+ < 0: error code
+
+
+# int onig_get_callout_data_dont_clear_old(OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val)
+
+ No needs to use this function.
+ It will be abolished.
+
+
+
+(9) Miscellaneous functions
+
+# OnigUChar* onig_get_callout_name_by_name_id(int name_id)
+
+ Returns callout name of the name id.
+ if invalid name id is passed, return 0.
+
+
+# int onig_get_capture_range_in_callout(OnigCalloutArgs* args, int mem_num, int* begin, int* end)
+
+ Returns current capture range position.
+ Position is byte length offset from subject string.
+ For uncaptured mem_num, ONIG_REGION_NOTPOS is set.
+
+
+# int onig_get_used_stack_size_in_callout(OnigCalloutArgs* args, int* used_num, int* used_bytes)
+
+ Returns current used match-stack size.
+
+ used_num: number of match-stack elements
+ used_bytes: used byte size of match-stack
+
+//END