diff options
Diffstat (limited to 'doc/CALLOUTS.API')
| -rw-r--r-- | doc/CALLOUTS.API | 385 | 
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  | 
