diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:19:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:19:22 +0000 |
commit | c21c3b0befeb46a51b6bf3758ffa30813bea0ff0 (patch) | |
tree | 9754ff1ca740f6346cf8483ec915d4054bc5da2d /fluent-bit/lib/onigmo/doc | |
parent | Adding upstream version 1.43.2. (diff) | |
download | netdata-c21c3b0befeb46a51b6bf3758ffa30813bea0ff0.tar.xz netdata-c21c3b0befeb46a51b6bf3758ffa30813bea0ff0.zip |
Adding upstream version 1.44.3.upstream/1.44.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/lib/onigmo/doc')
-rw-r--r-- | fluent-bit/lib/onigmo/doc/API | 702 | ||||
-rw-r--r-- | fluent-bit/lib/onigmo/doc/API.ja | 710 | ||||
-rw-r--r-- | fluent-bit/lib/onigmo/doc/FAQ | 23 | ||||
-rw-r--r-- | fluent-bit/lib/onigmo/doc/FAQ.ja | 23 | ||||
-rw-r--r-- | fluent-bit/lib/onigmo/doc/RE | 569 | ||||
-rw-r--r-- | fluent-bit/lib/onigmo/doc/RE.ja | 565 | ||||
-rw-r--r-- | fluent-bit/lib/onigmo/doc/UnicodeProps.txt | 901 |
7 files changed, 3493 insertions, 0 deletions
diff --git a/fluent-bit/lib/onigmo/doc/API b/fluent-bit/lib/onigmo/doc/API new file mode 100644 index 000000000..1dcb93ce8 --- /dev/null +++ b/fluent-bit/lib/onigmo/doc/API @@ -0,0 +1,702 @@ +Onigmo (Oniguruma-mod) API Version 6.1.2 2017/05/10 + +#include <onigmo.h> + + +# int onig_initialize(OnigEncoding use_encodings[], int num_encodings) + + Initialize library. + This is added for compatibility to Oniguruma 6.0. + Currently this is same as onig_init(). + + arguments + 1 use_encodings: array of encodings used in application. + 2 num_encodings: number of encodings. + + +# int onig_init(void) + + Initialize library. + + Single thread program: + You don't have to call it explicitly, because it is called in onig_new(). + However calling it is preferred. + + Multi thread program: + You have to call it explicitly from a specific thread (normally the main + thread) before you use onig_new(), because onig_init() is not thread safe. + + +# int onig_error_code_to_str(UChar* err_buf, OnigPosition err_code, ...) + + Get error message string. + If this function is used for onig_new(), + don't call this after the pattern argument of onig_new() is freed. + + normal return: error message string length + + arguments + 1 err_buf: error message string buffer. + (required size: ONIG_MAX_ERROR_MESSAGE_LEN) + 2 err_code: error code returned by other API functions. + 3 err_info (optional): error info returned by onig_new(). + + +# void onig_set_warn_func(OnigWarnFunc func) + + Set warning function. + + WARNING: + '[', '-', ']' in character class without escape. + ']' in pattern without escape. + + arguments + 1 func: function pointer. void (*func)(char* warning_message) + + +# void onig_set_verb_warn_func(OnigWarnFunc func) + + Set verbose warning function. + + WARNING: + redundant nested repeat operator. + + arguments + 1 func: function pointer. void (*func)(char* warning_message) + + +# int onig_new(regex_t** reg, const UChar* pattern, const UChar* pattern_end, + OnigOptionType option, OnigEncoding enc, + const OnigSyntaxType* syntax, OnigErrorInfo* err_info) + + Create a regex object. + + normal return: ONIG_NORMAL + + arguments + 1 reg: return regex object's address. + 2 pattern: regex pattern string. + 3 pattern_end: terminate address of pattern. (pattern + pattern length) + 4 option: compile time options. + + ONIG_OPTION_NONE no option + ONIG_OPTION_SINGLELINE '^' -> '\A', '$' -> '\Z' + ONIG_OPTION_DOTALL '.' match with newline + ONIG_OPTION_MULTILINE same as ONIG_OPTION_DOTALL + ONIG_OPTION_IGNORECASE ambiguity match on + ONIG_OPTION_EXTEND extended pattern form + ONIG_OPTION_FIND_LONGEST find longest match + ONIG_OPTION_FIND_NOT_EMPTY ignore empty match + ONIG_OPTION_NEGATE_SINGLELINE + clear ONIG_OPTION_SINGLELINE which is enabled on + ONIG_SYNTAX_POSIX_BASIC, ONIG_SYNTAX_POSIX_EXTENDED, + ONIG_SYNTAX_PERL, ONIG_SYNTAX_PERL58, ONIG_SYNTAX_PERL58_NG, + ONIG_SYNTAX_JAVA, ONIG_SYNTAX_PYTHON + + ONIG_OPTION_DONT_CAPTURE_GROUP only named group captured. + ONIG_OPTION_CAPTURE_GROUP named and no-named group captured. + + ONIG_OPTION_NEWLINE_CRLF + Treat CR+LF as a newline too. (default: LF only) + To use this option, you must enable the following line in regenc.h. + + /* #define USE_CRNL_AS_LINE_TERMINATOR */ + + 5 enc: character encoding. + + ONIG_ENCODING_ASCII ASCII + ONIG_ENCODING_ISO_8859_1 ISO 8859-1 + ONIG_ENCODING_ISO_8859_2 ISO 8859-2 + ONIG_ENCODING_ISO_8859_3 ISO 8859-3 + ONIG_ENCODING_ISO_8859_4 ISO 8859-4 + ONIG_ENCODING_ISO_8859_5 ISO 8859-5 + ONIG_ENCODING_ISO_8859_6 ISO 8859-6 + ONIG_ENCODING_ISO_8859_7 ISO 8859-7 + ONIG_ENCODING_ISO_8859_8 ISO 8859-8 + ONIG_ENCODING_ISO_8859_9 ISO 8859-9 + ONIG_ENCODING_ISO_8859_10 ISO 8859-10 + ONIG_ENCODING_ISO_8859_11 ISO 8859-11 + ONIG_ENCODING_ISO_8859_13 ISO 8859-13 + ONIG_ENCODING_ISO_8859_14 ISO 8859-14 + ONIG_ENCODING_ISO_8859_15 ISO 8859-15 + ONIG_ENCODING_ISO_8859_16 ISO 8859-16 + ONIG_ENCODING_UTF_8 UTF-8 + ONIG_ENCODING_UTF_16BE UTF-16BE + ONIG_ENCODING_UTF_16LE UTF-16LE + ONIG_ENCODING_UTF_32BE UTF-32BE + ONIG_ENCODING_UTF_32LE UTF-32LE + ONIG_ENCODING_EUC_JP EUC-JP + ONIG_ENCODING_EUC_TW EUC-TW + ONIG_ENCODING_EUC_KR EUC-KR + ONIG_ENCODING_EUC_CN EUC-CN + ONIG_ENCODING_SHIFT_JIS Shift_JIS + ONIG_ENCODING_WINDOWS_31J Windows-31J (CP932) + ONIG_ENCODING_KOI8_R KOI8-R + ONIG_ENCODING_KOI8_U KOI8-U + ONIG_ENCODING_WINDOWS_1250 Windows-1250 (CP1250) + ONIG_ENCODING_WINDOWS_1251 Windows-1251 (CP1251) + ONIG_ENCODING_WINDOWS_1252 Windows-1252 (CP1252) + ONIG_ENCODING_WINDOWS_1253 Windows-1253 (CP1253) + ONIG_ENCODING_WINDOWS_1254 Windows-1254 (CP1254) + ONIG_ENCODING_WINDOWS_1257 Windows-1257 (CP1257) + ONIG_ENCODING_BIG5 Big5 + ONIG_ENCODING_GB18030 GB18030 + + or any OnigEncodingType data address defined by user. + + The following encoding names can be also used for backward compatibility: + + ONIG_ENCODING_UTF8 UTF-8 + ONIG_ENCODING_UTF16_BE UTF-16BE + ONIG_ENCODING_UTF16_LE UTF-16LE + ONIG_ENCODING_UTF32_BE UTF-32BE + ONIG_ENCODING_UTF32_LE UTF-32LE + ONIG_ENCODING_SJIS Shift_JIS + ONIG_ENCODING_CP932 Windows-31J (CP932) + ONIG_ENCODING_CP1250 Windows-1250 (CP1250) + ONIG_ENCODING_CP1251 Windows-1251 (CP1251) + ONIG_ENCODING_CP1252 Windows-1252 (CP1252) + ONIG_ENCODING_CP1253 Windows-1253 (CP1253) + ONIG_ENCODING_CP1254 Windows-1254 (CP1254) + ONIG_ENCODING_CP1257 Windows-1257 (CP1257) + + + 6 syntax: address of pattern syntax definition. + + ONIG_SYNTAX_ASIS plain text + ONIG_SYNTAX_POSIX_BASIC POSIX Basic RE + ONIG_SYNTAX_POSIX_EXTENDED POSIX Extended RE + ONIG_SYNTAX_EMACS Emacs + ONIG_SYNTAX_GREP grep + ONIG_SYNTAX_GNU_REGEX GNU regex + ONIG_SYNTAX_JAVA Java (Sun java.util.regex) + ONIG_SYNTAX_PERL58 Perl 5.8 + ONIG_SYNTAX_PERL58_NG Perl 5.8 + named group + ONIG_SYNTAX_PERL Perl 5.10+ + ONIG_SYNTAX_PYTHON Python + ONIG_SYNTAX_RUBY Ruby + ONIG_SYNTAX_DEFAULT default (== Ruby) + onig_set_default_syntax() + + or any OnigSyntaxType data address defined by user. + + 7 err_info: address for return optional error info. + Use this value as 3rd argument of onig_error_code_to_str(). + + + +# int onig_new_without_alloc(regex_t* reg, const UChar* pattern, + const UChar* pattern_end, + OnigOptionType option, OnigEncoding enc, + const OnigSyntaxType* syntax, OnigErrorInfo* err_info) + + Create a regex object. + reg object area is not allocated in this function. + + normal return: ONIG_NORMAL + + + +# int onig_new_deluxe(regex_t** reg, const UChar* pattern, const UChar* pattern_end, + OnigCompileInfo* ci, OnigErrorInfo* einfo) + + Create a regex object. + This function is deluxe version of onig_new(). + + normal return: ONIG_NORMAL + + arguments + 1 reg: return address of regex object. + 2 pattern: regex pattern string. + 3 pattern_end: terminate address of pattern. (pattern + pattern length) + 4 ci: compile time info. + + ci->num_of_elements: number of elements in ci. (current version: 5) + ci->pattern_enc: pattern string character encoding. + ci->target_enc: target string character encoding. + ci->syntax: address of pattern syntax definition. + ci->option: compile time option. + ci->case_fold_flag: character matching case fold bit flag for + ONIG_OPTION_IGNORECASE mode. + + ONIGENC_CASE_FOLD_MIN: minimum + ONIGENC_CASE_FOLD_DEFAULT: minimum + onig_set_default_case_fold_flag() + + 5 err_info: address for return optional error info. + Use this value as 3rd argument of onig_error_code_to_str(). + + + Different character encoding combination is allowed for + the following cases only. + + pattern_enc: ASCII, ISO_8859_1 + target_enc: UTF_16BE, UTF_16LE, UTF_32BE, UTF_32LE + + pattern_enc: UTF_16BE/LE + target_enc: UTF_16LE/BE + + pattern_enc: UTF_32BE/LE + target_enc: UTF_32LE/BE + + +# void onig_free(regex_t* reg) + + Free memory used by regex object. + + arguments + 1 reg: regex object. + + +# void onig_free_body(regex_t* reg) + + Free memory used by regex object. (Except reg oneself.) + + arguments + 1 reg: regex object. + + +# OnigPosition onig_search(regex_t* reg, const UChar* str, const UChar* end, + const UChar* start, const UChar* range, OnigRegion* region, + OnigOptionType option) +# OnigPosition onig_search_gpos(regex_t* reg, const UChar* str, const UChar* end, + const UChar* global_pos, + const UChar* start, const UChar* range, OnigRegion* region, + OnigOptionType option) + + Search string and return search result and matching region. + + normal return: match position offset (i.e. p - str >= 0) + not found: ONIG_MISMATCH (< 0) + + arguments + 1 reg: regex object + 2 str: target string + 3 end: terminate address of target string + 4 global_pos: position of \G + if not need, set same value as str. + 5 start: search start address of target string + 6 range: search terminate address of target string + in forward search (start <= searched string < range) + in backward search (range <= searched string <= start) + 7 region: address for return group match range info (NULL is allowed) + 8 option: search time option + + ONIG_OPTION_NOTBOL string head(str) isn't considered as begin of line + ONIG_OPTION_NOTEOL string end (end) isn't considered as end of line + ONIG_OPTION_NOTBOS string head(str) isn't considered as begin of string (\A) + ONIG_OPTION_NOTEOS string end (end) isn't considered as end of string (\z) + + +# OnigPosition onig_match(regex_t* reg, const UChar* str, const UChar* end, + const UChar* at, OnigRegion* region, OnigOptionType option) + + Match string and return result and matching region. + + normal return: match length (>= 0) + not match: ONIG_MISMATCH ( < 0) + + arguments + 1 reg: regex object + 2 str: target string + 3 end: terminate address of target string + 4 at: match address of target string + 5 region: address for return group match range info (NULL is allowed) + 6 option: search time option + + ONIG_OPTION_NOTBOL string head(str) isn't considered as begin of line + ONIG_OPTION_NOTEOL string end (end) isn't considered as end of line + ONIG_OPTION_NOTBOS string head(str) isn't considered as begin of string (\A) + ONIG_OPTION_NOTEOS string end (end) isn't considered as end of string (\z) + + +# OnigPosition onig_scan(regex_t* reg, const UChar* str, const UChar* end, + OnigRegion* region, OnigOptionType option, + int (*scan_callback)(OnigPosition, OnigPosition, OnigRegion*, void*), + void* callback_arg) + + Scan string and callback with matching region. + + normal return: number of matching times + error: error code + interruption: return value of callback function (!= 0) + + arguments + 1 reg: regex object + 2 str: target string + 3 end: terminate address of target string + 4 region: address for return group match range info (NULL is allowed) + 5 option: search time option + 6 scan_callback: callback function (defined by user) + 7 callback_arg: optional argument passed to callback + + +# OnigRegion* onig_region_new(void) + + Create a region. + + +# void onig_region_free(OnigRegion* region, int free_self) + + Free memory used by region. + + arguments + 1 region: target region + 2 free_self: [1: free all, 0: free memory used in region but not self] + + +# void onig_region_copy(OnigRegion* to, const OnigRegion* from) + + Copy contents of region. + + arguments + 1 to: target region + 2 from: source region + + +# void onig_region_clear(OnigRegion* region) + + Clear contents of region. + + arguments + 1 region: target region + + +# int onig_region_resize(OnigRegion* region, int n) + + Resize group range area of region. + + normal return: ONIG_NORMAL + + arguments + 1 region: target region + 2 n: new size + + +# int onig_name_to_group_numbers(regex_t* reg, const UChar* name, const UChar* name_end, + int** num_list) + + Return the group number list of the name. + Named subexp is defined by (?<name>....). + + normal return: number of groups for the name. + (ex. /(?<x>..)(?<x>..)/ ==> 2) + name not found: -1 + + arguments + 1 reg: regex object. + 2 name: group name. + 3 name_end: terminate address of group name. + 4 num_list: return list of group number. + + +# int onig_name_to_backref_number(regex_t* reg, const UChar* name, const UChar* name_end, + const OnigRegion *region) + + Return the group number corresponding to the named backref (\k<name>). + If two or more regions for the groups of the name are effective, + the greatest number in it is obtained. + + normal return: group number. + + arguments + 1 reg: regex object. + 2 name: group name. + 3 name_end: terminate address of group name. + 4 region: search/match result region. + + +# int onig_foreach_name(regex_t* reg, + int (*func)(const UChar*, const UChar*, int,int*,regex_t*,void*), + void* arg) + + Iterate function call for all names. + + normal return: 0 + error: func's return value. + + arguments + 1 reg: regex object. + 2 func: callback function. + func(name, name_end, <number of groups>, <group number's list>, + reg, arg); + if func does not return 0, then iteration is stopped. + 3 arg: argument for func. + + +# int onig_number_of_names(const regex_t* reg) + + Return the number of names defined in the pattern. + Multiple definitions of one name is counted as one. + + arguments + 1 reg: regex object. + + +# OnigEncoding onig_get_encoding(const regex_t* reg) +# OnigOptionType onig_get_options(const regex_t* reg) +# OnigCaseFoldType onig_get_case_fold_flag(const regex_t* reg) +# const OnigSyntaxType* onig_get_syntax(const regex_t* reg) + + Return a value of the regex object. + + arguments + 1 reg: regex object. + + +# int onig_number_of_captures(const regex_t* reg) + + Return the number of capture group in the pattern. + + arguments + 1 reg: regex object. + + +# int onig_number_of_capture_histories(const regex_t* reg) + + Return the number of capture history defined in the pattern. + + You can't use capture history if ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY + is disabled in the pattern syntax.(disabled in the default syntax) + + arguments + 1 reg: regex object. + + + +# OnigCaptureTreeNode* onig_get_capture_tree(OnigRegion* region) + + Return the root node of capture history data tree. + + This value is undefined if matching has faild. + + arguments + 1 region: matching result. + + +# int onig_capture_tree_traverse(OnigRegion* region, int at, + int(*func)(int,OnigPosition,OnigPosition,int,int,void*), + void* arg) + + Traverse and callback in capture history data tree. + + normal return: 0 + error: callback func's return value. + + arguments + 1 region: match region data. + 2 at: callback position. + + ONIG_TRAVERSE_CALLBACK_AT_FIRST: callback first, then traverse children. + ONIG_TRAVERSE_CALLBACK_AT_LAST: traverse children first, then callback. + ONIG_TRAVERSE_CALLBACK_AT_BOTH: callback first, then traverse children, + and at last callback again. + + 3 func: callback function. + if func does not return 0, then traverse is stopped. + + int func(int group, OnigPosition beg, OnigPosition end, + int level, int at, void* arg) + + group: group number + beg: capture start position + end: capture end position + level: nest level (from 0) + at: callback position + ONIG_TRAVERSE_CALLBACK_AT_FIRST + ONIG_TRAVERSE_CALLBACK_AT_LAST + arg: optional callback argument + + 4 arg; optional callback argument. + + +# int onig_noname_group_capture_is_active(const regex_t* reg) + + Return noname group capture activity. + + active: 1 + inactive: 0 + + arguments + 1 reg: regex object. + + if option ONIG_OPTION_DONT_CAPTURE_GROUP == ON + --> inactive + + if the regex pattern have named group + and syntax ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP == ON + and option ONIG_OPTION_CAPTURE_GROUP == OFF + --> inactive + + else --> active + + +# UChar* onigenc_get_prev_char_head(OnigEncoding enc, const UChar* start, + const UChar* s, const UChar* end) + + Return previous character head address. + + arguments + 1 enc: character encoding + 2 start: string address + 3 s: target address of string + 4 end: end of string + + +# UChar* onigenc_get_left_adjust_char_head(OnigEncoding enc, + const UChar* start, const UChar* s, const UChar* end) + + Return left-adjusted head address of a character. + + arguments + 1 enc: character encoding + 2 start: string address + 3 s: target address of string + 4 end: end of string + + +# UChar* onigenc_get_right_adjust_char_head(OnigEncoding enc, + const UChar* start, const UChar* s, const UChar* end) + + Return right-adjusted head address of a character. + + arguments + 1 enc: character encoding + 2 start: string address + 3 s: target address of string + 4 end: end of string + + +# int onigenc_strlen(OnigEncoding enc, const UChar* s, const UChar* end) +# int onigenc_strlen_null(OnigEncoding enc, const UChar* s) + + Return number of characters in the string. + + +# int onigenc_str_bytelen_null(OnigEncoding enc, const UChar* s) + + Return number of bytes in the string. + + +# int onig_set_default_syntax(const OnigSyntaxType* syntax) + + Set default syntax. + + arguments + 1 syntax: address of pattern syntax definition. + + +# void onig_copy_syntax(OnigSyntaxType* to, const OnigSyntaxType* from) + + Copy syntax. + + arguments + 1 to: destination address. + 2 from: source address. + + +# unsigned int onig_get_syntax_op(const OnigSyntaxType* syntax) +# unsigned int onig_get_syntax_op2(const OnigSyntaxType* syntax) +# unsigned int onig_get_syntax_behavior(const OnigSyntaxType* syntax) +# OnigOptionType onig_get_syntax_options(const OnigSyntaxType* syntax) + +# void onig_set_syntax_op(OnigSyntaxType* syntax, unsigned int op) +# void onig_set_syntax_op2(OnigSyntaxType* syntax, unsigned int op2) +# void onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior) +# void onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options) + + Get/Set elements of the syntax. + + arguments + 1 syntax: syntax + 2 op, op2, behavior, options: value of element. + + +# void onig_copy_encoding(OnigEncodingType *to, OnigEncoding from) + + Copy encoding. + + arguments + 1 to: destination address. + 2 from: source address. + + +# int onig_set_meta_char(OnigSyntaxType* syntax, unsigned int what, + OnigCodePoint code) + + Set a variable meta character to the code point value. + Except for an escape character, this meta characters specification + is not work, if ONIG_SYN_OP_VARIABLE_META_CHARACTERS is not effective + by the syntax. (Build-in syntaxes are not effective.) + + normal return: ONIG_NORMAL + + arguments + 1 syntax: target syntax + 2 what: specifies which meta character it is. + + ONIG_META_CHAR_ESCAPE + ONIG_META_CHAR_ANYCHAR + ONIG_META_CHAR_ANYTIME + ONIG_META_CHAR_ZERO_OR_ONE_TIME + ONIG_META_CHAR_ONE_OR_MORE_TIME + ONIG_META_CHAR_ANYCHAR_ANYTIME + + 3 code: meta character or ONIG_INEFFECTIVE_META_CHAR. + + +# OnigCaseFoldType onig_get_default_case_fold_flag(void) + + Get default case fold flag. + + +# int onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag) + + Set default case fold flag. + + 1 case_fold_flag: case fold flag + + +# unsigned int onig_get_match_stack_limit_size(void) + + Return the maximum number of stack size. + (default: 0 == unlimited) + + +# int onig_set_match_stack_limit_size(unsigned int size) + + Set the maximum number of stack size. + (size = 0: unlimited) + + normal return: ONIG_NORMAL + + +# unsigned int onig_get_parse_depth_limit(void) + + Return the maximum depth of parser recursion. + (default: DEFAULT_PARSE_DEPTH_LIMIT defined in regint.h. Currently 4096.) + + +# int onig_set_parse_depth_limit(unsigned int depth) + + Set the maximum depth of parser recursion. + (depth = 0: Set to the default value defined in regint.h.) + + normal return: ONIG_NORMAL + + +# int onig_end(void) + + The use of this library is finished. + + normal return: ONIG_NORMAL + + It is not allowed to use regex objects which created + before onig_end() call. + + +# const char* onig_version(void) + + Return version string. (ex. "5.0.3") + +// END diff --git a/fluent-bit/lib/onigmo/doc/API.ja b/fluent-bit/lib/onigmo/doc/API.ja new file mode 100644 index 000000000..4ae972f66 --- /dev/null +++ b/fluent-bit/lib/onigmo/doc/API.ja @@ -0,0 +1,710 @@ +Onigmo インターフェース Version 6.1.2 2017/05/10 + +#include <onigmo.h> + + +# int onig_initialize(OnigEncoding use_encodings[], int num_encodings) + + ライブラリの初期化 + 鬼車6.0との互換性のために追加された。 + 現時点ではonig_init()と同じである。 + + 引数 + 1 use_encodings: 使用する文字エンコーディングの配列 + 2 num_encodings: 文字エンコーディングの数 + + +# int onig_init(void) + + ライブラリの初期化 + + シングルスレッドプログラム: + onig_new()の中で呼び出されるので、この関数を明示的に呼び出さなくてもよい。 + しかし呼び出す方が望ましい。 + + マルチスレッドプログラム: + この関数はスレッドセーフではないため、onig_new()を呼ぶ前にある特定の + スレッド(通常はメインスレッド)からこの関数を呼び出さなければならない。 + + +# int onig_error_code_to_str(UChar* err_buf, OnigPosition err_code, ...) + + エラーメッセージを取得する。 + + この関数を、onig_new()の結果に対して呼び出す場合には、onig_new()のpattern引数を + メモリ解放するよりも前に呼び出さなければならない。 + + 正常終了戻り値: エラーメッセージ文字列のバイト長 + + 引数 + 1 err_buf: エラーメッセージを格納する領域 + (必要なサイズ: ONIG_MAX_ERROR_MESSAGE_LEN) + 2 err_code: エラーコード + 3 err_info (optional): onig_new()のerr_info + + +# void onig_set_warn_func(OnigWarnFunc func) + + 警告通知関数をセットする。 + + 警告: + '[', '-', ']' in character class without escape. + ']' in pattern without escape. + + 引数 + 1 func: 警告関数 void (*func)(char* warning_message) + + +# void onig_set_verb_warn_func(OnigWarnFunc func) + + 詳細警告通知関数をセットする。 + + 詳細警告: + redundant nested repeat operator. + + 引数 + 1 func: 詳細警告関数 void (*func)(char* warning_message) + + +# int onig_new(regex_t** reg, const UChar* pattern, const UChar* pattern_end, + OnigOptionType option, OnigEncoding enc, + const OnigSyntaxType* syntax, OnigErrorInfo* err_info) + + 正規表現オブジェクト(regex)を作成する。 + + 正常終了戻り値: ONIG_NORMAL + + 引数 + 1 reg: 作成された正規表現オブジェクトを返すアドレス + 2 pattern: 正規表現パターン文字列 + 3 pattern_end: 正規表現パターン文字列の終端アドレス(pattern + pattern length) + 4 option: 正規表現コンパイル時オプション + + ONIG_OPTION_NONE オプションなし + ONIG_OPTION_SINGLELINE '^' -> '\A', '$' -> '\Z' + ONIG_OPTION_DOTALL '.'が改行にマッチする + ONIG_OPTION_MULTILINE ONIG_OPTION_DOTALLと同じ + ONIG_OPTION_IGNORECASE 曖昧マッチ オン + ONIG_OPTION_EXTEND パターン拡張形式 + ONIG_OPTION_FIND_LONGEST 最長マッチ + ONIG_OPTION_FIND_NOT_EMPTY 空マッチを無視 + ONIG_OPTION_NEGATE_SINGLELINE + ONIG_SYNTAX_POSIX_BASIC, ONIG_SYNTAX_POSIX_EXTENDED, + ONIG_SYNTAX_PERL, ONIG_SYNTAX_PERL58, ONIG_SYNTAX_PERL58_NG, + ONIG_SYNTAX_JAVA, ONIG_SYNTAX_PYTHONで + デフォルトで有効なONIG_OPTION_SINGLELINEをクリアする。 + + ONIG_OPTION_DONT_CAPTURE_GROUP 名前付き捕獲式集合のみ捕獲 + ONIG_OPTION_CAPTURE_GROUP 名前無し捕獲式集合も捕獲 + + ONIG_OPTION_NEWLINE_CRLF + CR+LFも改行として扱う。(デフォルトではLFのみ。) + この機能を使うには、regenc.hの以下の行を有効にする必要がある。 + + /* #define USE_CRNL_AS_LINE_TERMINATOR */ + + 5 enc: 文字エンコーディング + + ONIG_ENCODING_ASCII ASCII + ONIG_ENCODING_ISO_8859_1 ISO 8859-1 + ONIG_ENCODING_ISO_8859_2 ISO 8859-2 + ONIG_ENCODING_ISO_8859_3 ISO 8859-3 + ONIG_ENCODING_ISO_8859_4 ISO 8859-4 + ONIG_ENCODING_ISO_8859_5 ISO 8859-5 + ONIG_ENCODING_ISO_8859_6 ISO 8859-6 + ONIG_ENCODING_ISO_8859_7 ISO 8859-7 + ONIG_ENCODING_ISO_8859_8 ISO 8859-8 + ONIG_ENCODING_ISO_8859_9 ISO 8859-9 + ONIG_ENCODING_ISO_8859_10 ISO 8859-10 + ONIG_ENCODING_ISO_8859_11 ISO 8859-11 + ONIG_ENCODING_ISO_8859_13 ISO 8859-13 + ONIG_ENCODING_ISO_8859_14 ISO 8859-14 + ONIG_ENCODING_ISO_8859_15 ISO 8859-15 + ONIG_ENCODING_ISO_8859_16 ISO 8859-16 + ONIG_ENCODING_UTF_8 UTF-8 + ONIG_ENCODING_UTF_16BE UTF-16BE + ONIG_ENCODING_UTF_16LE UTF-16LE + ONIG_ENCODING_UTF_32BE UTF-32BE + ONIG_ENCODING_UTF_32LE UTF-32LE + ONIG_ENCODING_EUC_JP EUC-JP + ONIG_ENCODING_EUC_TW EUC-TW + ONIG_ENCODING_EUC_KR EUC-KR + ONIG_ENCODING_EUC_CN EUC-CN + ONIG_ENCODING_SHIFT_JIS Shift_JIS + ONIG_ENCODING_WINDOWS_31J Windows-31J (CP932) + ONIG_ENCODING_KOI8_R KOI8-R + ONIG_ENCODING_KOI8_U KOI8-U + ONIG_ENCODING_WINDOWS_1250 Windows-1250 (CP1250) + ONIG_ENCODING_WINDOWS_1251 Windows-1251 (CP1251) + ONIG_ENCODING_WINDOWS_1252 Windows-1252 (CP1252) + ONIG_ENCODING_WINDOWS_1253 Windows-1253 (CP1253) + ONIG_ENCODING_WINDOWS_1254 Windows-1254 (CP1254) + ONIG_ENCODING_WINDOWS_1257 Windows-1257 (CP1257) + ONIG_ENCODING_BIG5 Big5 + ONIG_ENCODING_GB18030 GB18030 + + または、ユーザが定義したOnigEncodingTypeデータのアドレス + + 後方互換性のため、以下のエンコーディング名も使用できる。 + + ONIG_ENCODING_UTF8 UTF-8 + ONIG_ENCODING_UTF16_BE UTF-16BE + ONIG_ENCODING_UTF16_LE UTF-16LE + ONIG_ENCODING_UTF32_BE UTF-32BE + ONIG_ENCODING_UTF32_LE UTF-32LE + ONIG_ENCODING_SJIS Shift_JIS + ONIG_ENCODING_CP932 Windows-31J (CP932) + ONIG_ENCODING_CP1250 Windows-1250 (CP1250) + ONIG_ENCODING_CP1251 Windows-1251 (CP1251) + ONIG_ENCODING_CP1252 Windows-1252 (CP1252) + ONIG_ENCODING_CP1253 Windows-1253 (CP1253) + ONIG_ENCODING_CP1254 Windows-1254 (CP1254) + ONIG_ENCODING_CP1257 Windows-1257 (CP1257) + + + 6 syntax: 正規表現パターン文法定義 + + ONIG_SYNTAX_ASIS plain text + ONIG_SYNTAX_POSIX_BASIC POSIX Basic RE + ONIG_SYNTAX_POSIX_EXTENDED POSIX Extended RE + ONIG_SYNTAX_EMACS Emacs + ONIG_SYNTAX_GREP grep + ONIG_SYNTAX_GNU_REGEX GNU regex + ONIG_SYNTAX_JAVA Java (Sun java.util.regex) + ONIG_SYNTAX_PERL58 Perl 5.8 + ONIG_SYNTAX_PERL58_NG Perl 5.8 + 名前付き捕獲式集合 + ONIG_SYNTAX_PERL Perl 5.10以降 + ONIG_SYNTAX_PYTHON Python + ONIG_SYNTAX_RUBY Ruby + ONIG_SYNTAX_DEFAULT default (== Ruby) + onig_set_default_syntax() + + または、ユーザが定義したOnigSyntaxTypeデータのアドレス + + 7 err_info: エラー情報を返すためのアドレス + onig_error_code_to_str()の三番目の引数として使用する + + + +# int onig_new_without_alloc(regex_t* reg, const UChar* pattern, + const UChar* pattern_end, + OnigOptionType option, OnigEncoding enc, + const OnigSyntaxType* syntax, OnigErrorInfo* err_info) + + 正規表現オブジェクト(regex)を作成する。 + regの領域を内部で割り当てない。 + + 正常終了戻り値: ONIG_NORMAL + + + +# int onig_new_deluxe(regex_t** reg, const UChar* pattern, const UChar* pattern_end, + OnigCompileInfo* ci, OnigErrorInfo* einfo) + + 正規表現オブジェクト(regex)を作成する。 + この関数は、onig_new()のデラックス版。 + + 正常終了戻り値: ONIG_NORMAL + + 引数 + 1 reg: 作成された正規表現オブジェクトを返すアドレス + 2 pattern: 正規表現パターン文字列 + 3 pattern_end: 正規表現パターン文字列の終端アドレス(pattern + pattern length) + 4 ci: コンパイル情報 + + ci->num_of_elements: ciの要素数 (現在の版では: 5) + ci->pattern_enc: パターン文字列の文字エンコーディング + ci->target_enc: 対象文字列の文字エンコーディング + ci->syntax: 正規表現パターン文法定義 + ci->option: 正規表現コンパイル時オプション + ci->case_fold_flag: ONIG_OPTION_IGNORECASEモードでの + 文字曖昧マッチ指定ビットフラグ + + ONIGENC_CASE_FOLD_MIN: 最小 + ONIGENC_CASE_FOLD_DEFAULT: 最小 + onig_set_default_case_fold_flag() + + 5 err_info: エラー情報を返すためのアドレス + onig_error_code_to_str()の三番目の引数として使用する + + + 異なる文字エンコーディングの組み合わせは、以下の場合にのみ許される。 + + pattern_enc: ASCII, ISO_8859_1 + target_enc: UTF16_BE, UTF16_LE, UTF32_BE, UTF32_LE + + pattern_enc: UTF16_BE/LE + target_enc: UTF16_LE/BE + + pattern_enc: UTF32_BE/LE + target_enc: UTF32_LE/BE + + +# void onig_free(regex_t* reg) + + 正規表現オブジェクトのメモリを解放する。 + + 引数 + 1 reg: 正規表現オブジェクト + + +# void onig_free_body(regex_t* reg) + + 正規表現オブジェクトのメモリを解放する。(reg自身の領域を除いて) + + 引数 + 1 reg: 正規表現オブジェクト + + + +# OnigPosition onig_search(regex_t* reg, const UChar* str, const UChar* end, + const UChar* start, const UChar* range, OnigRegion* region, + OnigOptionType option) +# OnigPosition onig_search_gpos(regex_t* reg, const UChar* str, const UChar* end, + const UChar* global_pos, + const UChar* start, const UChar* range, OnigRegion* region, + OnigOptionType option) + + 正規表現で文字列を検索し、検索結果とマッチ領域を返す。 + + 正常終了戻り値: マッチ位置 (p - str >= 0) + 検索失敗: ONIG_MISMATCH (< 0) + + 引数 + 1 reg: 正規表現オブジェクト + 2 str: 検索対象文字列 + 3 end: 検索対象文字列の終端アドレス + 4 global_pos: \Gのアドレス + 不要時はstrと同じ値を設定すること + 5 start: 検索対象文字列の検索先頭位置アドレス + 6 range: 検索対象文字列の検索終了位置アドレス + 前方探索 (start <= 探索される文字列 < range) + 後方探索 (range <= 探索される文字列 <= start) + 7 region: マッチ領域情報(region) (NULLも許される) + 8 option: 検索時オプション + + ONIG_OPTION_NOTBOL 文字列の先頭(str)を行頭と看做さない + ONIG_OPTION_NOTEOL 文字列の終端(end)を行末と看做さない + ONIG_OPTION_NOTBOS 文字列の先頭(str)を先頭(\A)と看做さない + ONIG_OPTION_NOTEOS 文字列の終端(end)を終端(\z)と看做さない + + +# OnigPosition onig_match(regex_t* reg, const UChar* str, const UChar* end, + const UChar* at, OnigRegion* region, OnigOptionType option) + + 文字列の指定位置でマッチングを行い、結果とマッチ領域を返す。 + + 正常終了戻り値: マッチしたバイト長 (>= 0) + not match: ONIG_MISMATCH ( < 0) + + 引数 + 1 reg: 正規表現オブジェクト + 2 str: 検索対象文字列 + 3 end: 検索対象文字列の終端アドレス + 4 at: 検索対象文字列の検索アドレス + 5 region: マッチ領域情報(region) (NULLも許される) + 6 option: 検索時オプション + + ONIG_OPTION_NOTBOL 文字列の先頭(str)を行頭と看做さない + ONIG_OPTION_NOTEOL 文字列の終端(end)を行末と看做さない + ONIG_OPTION_NOTBOS 文字列の先頭(str)を先頭(\A)と看做さない + ONIG_OPTION_NOTEOS 文字列の終端(end)を終端(\z)と看做さない + + +# OnigPosition onig_scan(regex_t* reg, const UChar* str, const UChar* end, + OnigRegion* region, OnigOptionType option, + int (*scan_callback)(OnigPosition, OnigPosition, OnigRegion*, void*), + void* callback_arg) + + 正規表現で文字列をスキャンして、マッチングする毎にコールバック関数を呼び出す。 + + 正常終了: マッチ回数 (0回も含める) + エラー: エラーコード (< 0) + 中断: コールバック関数が0以外の戻り値を返したとき、その値を戻り値として中断 + + 引数 + 1 reg: 正規表現オブジェクト + 2 str: 検索対象文字列 + 3 end: 検索対象文字列の終端アドレス + 4 region: マッチ領域情報(region) (NULLも許される) + 5 option: 検索時オプション + 6 scan_callback: コールバック関数 + 7 callback_arg: コールバック関数に渡される付加引数値 + + +# OnigRegion* onig_region_new(void) + + マッチ領域情報(region)を作成する。 + + +# void onig_region_free(OnigRegion* region, int free_self) + + マッチ領域情報(region)で使用されているメモリを解放する。 + + 引数 + 1 region: マッチ領域情報オブジェクト + 2 free_self: [1: region自身を含めて全て解放, 0: region自身は解放しない] + + +# void onig_region_copy(OnigRegion* to, const OnigRegion* from) + + マッチ領域情報(region)を複製する。 + + 引数 + 1 to: 対象領域 + 2 from: 元領域 + + +# void onig_region_clear(OnigRegion* region) + + マッチ領域情報(region)の中味をクリアする。 + + 引数 + 1 region: 対象領域 + + +# int onig_region_resize(OnigRegion* region, int n) + + マッチ領域情報(region)の捕獲式集合(グループ)数を変更する。 + + 正常終了戻り値: ONIG_NORMAL + + 引数 + 1 region: 対象領域 + 2 n: 新しいサイズ + + +# int onig_name_to_group_numbers(regex_t* reg, const UChar* name, const UChar* name_end, + int** num_list) + + 指定した名前に対する名前付き捕獲式集合(グループ)の + グループ番号リストを返す。 + 名前付き捕獲式集合は、(?<name>....)によって定義できる。 + + 正常終了戻り値: 指定された名前に対するグループ数 + (例 /(?<x>..)(?<x>..)/ ==> 2) + 名前に対するグループが存在しない: -1 + + 引数 + 1 reg: 正規表現オブジェクト + 2 name: 捕獲式集合(グループ)名 + 3 name_end: 捕獲式集合(グループ)名の終端アドレス + 4 num_list: 番号リストを返すアドレス + + +# int onig_name_to_backref_number(regex_t* reg, const UChar* name, const UChar* name_end, + const OnigRegion *region) + + 指定された名前の後方参照(\k<name>)に対する捕獲式集合(グループ)の番号を返す。 + 名前に対して、複数のマッチ領域が有効であれば、その中の最大の番号を返す。 + 名前に対する捕獲式集合が一個しかないときには、対応するマッチ領域が有効か + どうかに関係なく、その番号を返す。(従って、regionにはNULLを渡してもよい。) + + 正常終了戻り値: 番号 + + 引数 + 1 reg: 正規表現オブジェクト + 2 name: 捕獲式集合(グループ)名 + 3 name_end: 捕獲式集合(グループ)名の終端アドレス + 4 region: search/match結果のマッチ領域 + + +# int onig_foreach_name(regex_t* reg, + int (*func)(const UChar*, const UChar*, int,int*,regex_t*,void*), + void* arg) + + 全ての名前に対してコールバック関数呼び出しを実行する。 + + 正常終了戻り値: 0 + エラー: コールバック関数の戻り値 + + 引数 + 1 reg: 正規表現オブジェクト + 2 func: コールバック関数 + func(name, name_end, <number of groups>, <group number's list>, + reg, arg); + + funcが0以外の値を返すと、それ以降のコールバックは行なわずに + 終了する。 + + 3 arg: funcに対する追加引数 + + +# int onig_number_of_names(const regex_t* reg) + + パターン中で定義された名前の数を返す。 + 一個の名前の多重定義は一個と看做す。 + + 引数 + 1 reg: 正規表現オブジェクト + + +# OnigEncoding onig_get_encoding(const regex_t* reg) +# OnigOptionType onig_get_options(const regex_t* reg) +# OnigCaseFoldType onig_get_case_fold_flag(const regex_t* reg) +# const OnigSyntaxType* onig_get_syntax(const regex_t* reg) + + 正規表現オブジェクトに対して、対応する値を返す。 + + 引数 + 1 reg: 正規表現オブジェクト + + +# int onig_number_of_captures(const regex_t* reg) + + パターン中で定義された捕獲グループの数を返す。 + + 引数 + 1 reg: 正規表現オブジェクト + + +# int onig_number_of_capture_histories(const regex_t* reg) + + パターン中で定義された捕獲履歴(?@...)の数を返す。 + + 使用する文法で捕獲履歴機能が有効(ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY) + でなければ、捕獲履歴機能は使用できない。 + + 引数 + 1 reg: 正規表現オブジェクト + + +# OnigCaptureTreeNode* onig_get_capture_tree(OnigRegion* region) + + 捕獲履歴データのルートノードを返す。 + + マッチが失敗している場合には、この値は不定である。 + + 引数 + 1 region: マッチ領域 + + +# int onig_capture_tree_traverse(OnigRegion* region, int at, + int(*func)(int,OnigPosition,OnigPosition,int,int,void*), + void* arg) + + 捕獲履歴データ木を巡回してコールバックする。 + + 正常終了戻り値: 0 + エラー: コールバック関数の戻り値 + + 引数 + 1 region: マッチ領域 + 2 at: コールバックを行なうタイミング + + ONIG_TRAVERSE_CALLBACK_AT_FIRST: + 最初にコールバックして、子ノードを巡回 + ONIG_TRAVERSE_CALLBACK_AT_LAST: + 子ノードを巡回して、コールバック + ONIG_TRAVERSE_CALLBACK_AT_BOTH: + 最初にコールバックして、子ノードを巡回、最後にもう一度コールバック + + 3 func: コールバック関数 + funcが0以外の値を返すと、それ以降の巡回は行なわずに + 終了する。 + + int func(int group, OnigPosition beg, OnigPosition end, + int level, int at, void* arg) + group: グループ番号 + beg: マッチ開始位置 + end マッチ終了位置 + level: ネストレベル (0から) + at: コールバックが呼び出されたタイミング + ONIG_TRAVERSE_CALLBACK_AT_FIRST + ONIG_TRAVERSE_CALLBACK_AT_LAST + arg: 追加引数 + + 4 arg; funcに対する追加引数 + + +# int onig_noname_group_capture_is_active(const regex_t* reg) + + 名前なし式集合の捕獲機能が有効かどうかを返す。 + + 有効: 1 + 無効: 0 + + 引数 + 1 reg: 正規表現オブジェクト + + + オプションのONIG_OPTION_DONT_CAPTURE_GROUPがON --> 無効 + + パターンが名前つき式集合を使用している + AND 使用文法で、ONIG_SYN_CAPTURE_ONLY_NAMED_GROUPがON + AND オプションのONIG_OPTION_CAPTURE_GROUPがOFF + --> 無効 + + 上記以外の場合 --> 有効 + + +# UChar* onigenc_get_prev_char_head(OnigEncoding enc, const UChar* start, + const UChar* s, const UChar* end) + + 文字一個分前の文字列位置を返す。 + + 引数 + 1 enc: 文字エンコーディング + 2 start: 文字列の先頭アドレス + 3 s: 文字列中の位置 + 4 end: 文字列の末尾 + + +# UChar* onigenc_get_left_adjust_char_head(OnigEncoding enc, + const UChar* start, const UChar* s, const UChar* end) + + 文字の先頭バイト位置になるように左側に調整したアドレスを返す。 + + 引数 + 1 enc: 文字エンコーディング + 2 start: 文字列の先頭アドレス + 3 s: 文字列中の位置 + 4 end: 文字列の末尾 + + +# UChar* onigenc_get_right_adjust_char_head(OnigEncoding enc, + const UChar* start, const UChar* s, const UChar* end) + + 文字の先頭バイト位置になるように右側に調整したアドレスを返す。 + + 引数 + 1 enc: 文字エンコーディング + 2 start: 文字列の先頭アドレス + 3 s: 文字列中の位置 + 4 end: 文字列の末尾 + + +# int onigenc_strlen(OnigEncoding enc, const UChar* s, const UChar* end) +# int onigenc_strlen_null(OnigEncoding enc, const UChar* s) + + 文字列の文字数を返す。 + + +# int onigenc_str_bytelen_null(OnigEncoding enc, const UChar* s) + + 文字列のバイト数を返す。 + + +# int onig_set_default_syntax(const OnigSyntaxType* syntax) + + デフォルトの正規表現パターン文法をセットする。 + + 引数 + 1 syntax: 正規表現パターン文法 + + +# void onig_copy_syntax(OnigSyntaxType* to, const OnigSyntaxType* from) + + 正規表現パターン文法をコピーする。 + + 引数 + 1 to: 対象 + 2 from: 元 + + +# unsigned int onig_get_syntax_op(const OnigSyntaxType* syntax) +# unsigned int onig_get_syntax_op2(const OnigSyntaxType* syntax) +# unsigned int onig_get_syntax_behavior(const OnigSyntaxType* syntax) +# OnigOptionType onig_get_syntax_options(const OnigSyntaxType* syntax) + +# void onig_set_syntax_op(OnigSyntaxType* syntax, unsigned int op) +# void onig_set_syntax_op2(OnigSyntaxType* syntax, unsigned int op2) +# void onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior) +# void onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options) + + 正規表現パターン文法の要素を参照/取得する。 + + 引数 + 1 syntax: 正規表現パターン文法 + 2 op, op2, behavior, options: 要素の値 + + +# void onig_copy_encoding(OnigEncodingType *to, OnigEncoding from) + + 文字エンコーディングをコピーする。 + + 引数 + 1 to: 対象 + 2 from: 元 + + +# int onig_set_meta_char(OnigSyntaxType* syntax, unsigned int what, + OnigCodePoint code) + + メタ文字を指定したコードポイント値にセットする。 + ONIG_SYN_OP_VARIABLE_META_CHARACTERSが正規表現パターン文法で有効に + なっていない場合には、エスケープ文字を除いて、ここで指定したメタ文字は + 機能しない。(組込みの文法では有効にしていない。) + + 正常終了戻り値: ONIG_NORMAL + + 引数 + 1 syntax: 対象文法 + 2 what: メタ文字機能の指定 + + ONIG_META_CHAR_ESCAPE + ONIG_META_CHAR_ANYCHAR + ONIG_META_CHAR_ANYTIME + ONIG_META_CHAR_ZERO_OR_ONE_TIME + ONIG_META_CHAR_ONE_OR_MORE_TIME + ONIG_META_CHAR_ANYCHAR_ANYTIME + + 3 code: メタ文字のコードポイント または ONIG_INEFFECTIVE_META_CHAR. + + +# OnigCaseFoldType onig_get_default_case_fold_flag(void) + + デフォルトのcase foldフラグを取得する。 + + +# int onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag) + + デフォルトのcase foldフラグをセットする。 + + 引数 + 1 case_fold_flag: case foldフラグ + + +# unsigned int onig_get_match_stack_limit_size(void) + + マッチスタックサイズの最大値を返す。 + (デフォルト: 0 == 無制限) + + +# int onig_set_match_stack_limit_size(unsigned int size) + + マッチスタックサイズの最大値を指定する。 + (size = 0: 無制限) + + 正常終了戻り値: ONIG_NORMAL + + +# unsigned int onig_get_parse_depth_limit(void) + + 再帰パース処理の最大深さを返す。 + (デフォルト: regint.h で定義されている DEFAULT_PARSE_DEPTH_LIMIT。現在は 4096) + + +# int onig_set_parse_depth_limit(unsigned int depth) + + 再帰パース処理の最大深さを指定する。 + (depth = 0: regint.h で定義されたデフォルト値に設定する。) + + 正常終了戻り値: ONIG_NORMAL + + +# int onig_end(void) + + ライブラリの使用を終了する。 + + 正常終了戻り値: ONIG_NORMAL + + onig_init()を再度呼び出しても、以前に作成した正規表現オブジェクト + を使用することはできない。 + + +# const char* onig_version(void) + + バージョン文字列を返す。(例 "5.0.3") + +// END diff --git a/fluent-bit/lib/onigmo/doc/FAQ b/fluent-bit/lib/onigmo/doc/FAQ new file mode 100644 index 000000000..444753adc --- /dev/null +++ b/fluent-bit/lib/onigmo/doc/FAQ @@ -0,0 +1,23 @@ +FAQ 2016/11/07 + +1. Longest match + + You can execute longest match by using ONIG_OPTION_FIND_LONGEST option + in onig_new(). + + +2. CR + LF + + DOS newline (CR (0x0c) + LF (0x0a) sequence) + + Enable the following line in regenc.h, and use ONIG_OPTION_NEWLINE_CRLF + option in onig_new(). + + /* #define USE_CRNL_AS_LINE_TERMINATOR */ + + +3. Mailing list + + There is no mailing list about Onigmo/Oniguruma. + +// END diff --git a/fluent-bit/lib/onigmo/doc/FAQ.ja b/fluent-bit/lib/onigmo/doc/FAQ.ja new file mode 100644 index 000000000..0749aca82 --- /dev/null +++ b/fluent-bit/lib/onigmo/doc/FAQ.ja @@ -0,0 +1,23 @@ +FAQ 2016/11/07 + +1. 最長マッチ + + onig_new()の中で、ONIG_OPTION_FIND_LONGESTオプション + を使用すれば最長マッチになる。 + + +2. CR + LF + + DOSの改行(CR(0x0c) + LF(0x0a)の連続) + + regenc.hの中の、以下の部分を有効にし、onig_new()で + ONIG_OPTION_NEWLINE_CRLFオプションを使用する。 + + /* #define USE_CRNL_AS_LINE_TERMINATOR */ + + +3. メーリングリスト + + 鬼雲/鬼車に関するメーリングリストは存在しない。 + +//END diff --git a/fluent-bit/lib/onigmo/doc/RE b/fluent-bit/lib/onigmo/doc/RE new file mode 100644 index 000000000..4d2cdaba3 --- /dev/null +++ b/fluent-bit/lib/onigmo/doc/RE @@ -0,0 +1,569 @@ +Onigmo (Oniguruma-mod) Regular Expressions Version 6.1.0 2016/12/25 + +syntax: ONIG_SYNTAX_RUBY (default) + + +1. Syntax elements + + \ escape (enable or disable meta character) + | alternation + (...) group + [...] character class + + +2. Characters + + \t horizontal tab (0x09) + \v vertical tab (0x0B) + \n newline (line feed) (0x0A) + \r carriage return (0x0D) + \b backspace (0x08) + \f form feed (0x0C) + \a bell (0x07) + \e escape (0x1B) + \nnn octal char (encoded byte value) + \xHH hexadecimal char (encoded byte value) + \x{7HHHHHHH} wide hexadecimal char (character code point value) + \uHHHH wide hexadecimal char (character code point value) + \cx control char (character code point value) + \C-x control char (character code point value) + \M-x meta (x|0x80) (character code point value) + \M-\C-x meta control char (character code point value) + + (* \b as backspace is effective in character class only) + + * ONIG_SYNTAX_PERL: \o{nnn} (octal char) can be also used. + + +3. Character types + + . any character (except newline) + + \w word character + + Not Unicode: + alphanumeric and "_". + + Unicode: + General_Category -- (Letter|Mark|Number|Connector_Punctuation) + + It depends on ONIG_OPTION_ASCII_RANGE option that non-ASCII char + includes or not. + + \W non-word char + + \s whitespace char + + Not Unicode: + \t, \n, \v, \f, \r, \x20 + + Unicode: + 0009, 000A, 000B, 000C, 000D, 0085(NEL), + General_Category -- Line_Separator + -- Paragraph_Separator + -- Space_Separator + + It depends on ONIG_OPTION_ASCII_RANGE option that non-ASCII char + includes or not. + + \S non-whitespace char + + \d decimal digit char + + Unicode: General_Category -- Decimal_Number + + It depends on ONIG_OPTION_ASCII_RANGE option that non-ASCII char + includes or not. + + \D non-decimal-digit char + + \h hexadecimal-digit char [0-9a-fA-F] + + \H non-hexadecimal-digit char + + + Character Property + + * \p{property-name} + * \p{^property-name} (negative) + * \P{property-name} (negative) + + property-name: + + + works on all encodings + Alnum, Alpha, Blank, Cntrl, Digit, Graph, Lower, + Print, Punct, Space, Upper, XDigit, Word, ASCII + + + works on EUC_JP, Shift_JIS, CP932 + Hiragana, Katakana, Han, Latin, Greek, Cyrillic + + + works on UTF-8, UTF-16, UTF-32 + see UnicodeProps.txt + + \p{Punct} works slightly different on Unicode encodings and the other + encodings. It matches the nine characters "$+<=>^`|~" on non-Unicode + encodings (which is the same as [[:punct:]]), but not on Unicode encodings. + \p{XPosixPunct} matches the nine characters on Unicode encodings. + + + \R Linebreak + + Unicode: + (?>\x0D\x0A|[\x0A-\x0D\x{85}\x{2028}\x{2029}]) + + Not Unicode: + (?>\x0D\x0A|[\x0A-\x0D]) + + \X Extended Grapheme cluster + + Unicode: + See: Unicode Standard Annex #29 UNICODE TEXT SEGMENTATION + http://unicode.org/reports/tr29/ + + Not Unicode: + (?>\x0D\x0A|(?m:.)) + + + +4. Quantifier + + greedy + + ? 1 or 0 times + * 0 or more times + + 1 or more times + {n,m} at least n but no more than m times + {n,} at least n times + {,n} at least 0 but no more than n times ({0,n}) + {n} n times + + reluctant + + ?? 1 or 0 times + *? 0 or more times + +? 1 or more times + {n,m}? at least n but not more than m times + {n,}? at least n times + {,n}? at least 0 but not more than n times (== {0,n}?) + + possessive (greedy and does not backtrack once match) + + ?+ 1 or 0 times + *+ 0 or more times + ++ 1 or more times + + ({n,m}+, {n,}+, {n}+ are possessive op. in ONIG_SYNTAX_JAVA and + ONIG_SYNTAX_PERL only) + + ex. /a*+/ === /(?>a*)/ + + +5. Anchors + + ^ beginning of the line + $ end of the line + \b word boundary + \B non-word boundary + \A beginning of string + \Z end of string, or before newline at the end + \z end of string + \G where the current search attempt begins + + +6. Character class + + ^... negative class (lowest precedence) + x-y range from x to y + [...] set (character class in character class) + ..&&.. intersection (low precedence, only higher than ^) + + ex. [a-w&&[^c-g]z] ==> ([a-w] AND ([^c-g] OR z)) ==> [abh-w] + + * If you want to use '[', '-', or ']' as a normal character + in character class, you should escape them with '\'. + + + POSIX bracket ([:xxxxx:], negate [:^xxxxx:]) + + Not Unicode Case: + + alnum alphabet or digit char + alpha alphabet + ascii code value: [0 - 127] + blank \t, \x20 + cntrl + digit 0-9 + graph \x21-\x7E and all of multibyte encoded characters + lower + print \x20-\x7E and all of multibyte encoded characters + punct + space \t, \n, \v, \f, \r, \x20 + upper + xdigit 0-9, a-f, A-F + word alphanumeric, "_" and multibyte characters + + + Unicode Case: + + alnum Letter | Mark | Decimal_Number + alpha Letter | Mark + ascii 0000 - 007F + blank Space_Separator | 0009 + cntrl Control | Format | Unassigned | Private_Use | Surrogate + digit Decimal_Number + graph [[:^space:]] && ^Control && ^Unassigned && ^Surrogate + lower Lowercase_Letter + print [[:graph:]] | Space_Separator + punct Connector_Punctuation | Dash_Punctuation | Close_Punctuation | + Final_Punctuation | Initial_Punctuation | Other_Punctuation | + Open_Punctuation | 0024 | 002B | 003C | 003D | 003E | 005E | + 0060 | 007C | 007E + space Space_Separator | Line_Separator | Paragraph_Separator | + 0009 | 000A | 000B | 000C | 000D | 0085 + upper Uppercase_Letter + xdigit 0030 - 0039 | 0041 - 0046 | 0061 - 0066 + (0-9, a-f, A-F) + word Letter | Mark | Decimal_Number | Connector_Punctuation + + + It depends on ONIG_OPTION_ASCII_RANGE option and + ONIG_OPTION_POSIX_BRACKET_ALL_RANGE option that POSIX brackets + match non-ASCII char or not. + + + +7. Extended groups + + (?#...) comment + + (?imxdau-imx) option on/off + i: ignore case + m: multi-line (dot (.) also matches newline) + x: extended form + + character set option (character range option) + d: Default (compatible with Ruby 1.9.3) + \w, \d and \s doesn't match non-ASCII characters. + \b, \B and POSIX brackets use the each encoding's + rules. + a: ASCII + ONIG_OPTION_ASCII_RANGE option is turned on. + \w, \d, \s and POSIX brackets doesn't match + non-ASCII characters. + \b and \B use the ASCII rules. + u: Unicode + ONIG_OPTION_ASCII_RANGE option is turned off. + \w (\W), \d (\D), \s (\S), \b (\B) and POSIX + brackets use the each encoding's rules. + + (?imxdau-imx:subexp) + option on/off for subexp + + (?:subexp) non-capturing group + (subexp) capturing group + + (?=subexp) look-ahead + (?!subexp) negative look-ahead + (?<=subexp) look-behind + (?<!subexp) negative look-behind + + Subexp of look-behind must be fixed-width. + But top-level alternatives can be of various lengths. + ex. (?<=a|bc) is OK. (?<=aaa(?:b|cd)) is not allowed. + + In negative look-behind, capturing group isn't allowed, + but non-capturing group (?:) is allowed. + + \K keep + Another expression of look-behind. Keep the stuff left + of the \K, don't include it in the result. + + (?>subexp) atomic group + no backtracks in subexp. + + (?<name>subexp), (?'name'subexp) + define named group + (Each character of the name must be a word character.) + + Not only a name but a number is assigned like a capturing + group. + + Assigning the same name to two or more subexps is allowed. + + (?(cond)yes-subexp), (?(cond)yes-subexp|no-subexp) + conditional expression + Matches yes-subexp if (cond) yields a true value, matches + no-subexp otherwise. + Following (cond) can be used: + + (n) (n >= 1) + Checks if the numbered capturing group has matched + something. + + (<name>), ('name') + Checks if a group with the given name has matched + something. + + BUG: If the name is defined more than once, the + left-most group is checked, but it should be the + same as \k<name>. + + (?~subexp) absence operator (experimental) + Matches any string which doesn't contain any string which + matches subexp. + More precisely, (?~subexp) matches the complement set of + a set which .*subexp.* matches. This is regular in the + meaning of formal language theory. + Similar to (?:(?!subexp).)*, but easy to write. + + E.g.: + (?~abc) matches: "", "ab", "aab", "ccdd", etc. + It doesn't match: "abc", "aabc", "ccabcdd", etc. + + \/\*(?~\*\/)\*\/ matches C style comments: + "/**/", "/* foobar */", etc. + + \A\/\*(?~\*\/)\*\/\z doesn't match "/**/ */". + This is different from \A\/\*.*?\*\/\z which uses a + reluctant quantifier (.*?). + + Unlike (?:(?!abc).)*c, (?~abc)c matches "abc", because + (?~abc) matches "ab". + + (?~) never matches. + + Theoretical backgrounds are discussed in Tanaka Akira's + paper and slide (both Japanese): + + * Absent Operator for Regular Expression + https://staff.aist.go.jp/tanaka-akira/pub/prosym49-akr-paper.pdf + * 正規表現における非包含オペレータの提案 + https://staff.aist.go.jp/tanaka-akira/pub/prosym49-akr-presen.pdf + + +8. Backreferences + + When we say "backreference a group," it actually means, "re-match the same + text matched by the subexp in that group." + + \n \k<n> \k'n' (n >= 1) backreference the nth group in the regexp + \k<-n> \k'-n' (n >= 1) backreference the nth group counting + backwards from the referring position + \k<name> \k'name' backreference a group with the specified name + + When backreferencing with a name that is assigned to more than one groups, + the last group with the name is checked first, if not matched then the + previous one with the name, and so on, until there is a match. + + * Backreference by number is forbidden if any named group is defined and + ONIG_OPTION_CAPTURE_GROUP is not set. + + * ONIG_SYNTAX_PERL: \g{n}, \g{-n} and \g{name} can also be used. + If a name is defined more than once in Perl syntax, only the left-most + group is checked. + + + backreference with recursion level + + (n >= 1, level >= 0) + + \k<n+level> \k'n+level' + \k<n-level> \k'n-level' + \k<-n+level> \k'-n+level' + \k<-n-level> \k'-n-level' + + \k<name+level> \k'name+level' + \k<name-level> \k'name-level' + + Refer a group on the recursion level relative to the referring position. + + ex 1. + + /\A(?<a>|.|(?:(?<b>.)\g<a>\k<b>))\z/.match("reee") + /\A(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))\z/.match("reer") + + \k<b+0> refers to the (?<b>.) on the same recursion level with it. + + ex 2. + + r = Regexp.compile(<<'__REGEXP__'.strip, Regexp::EXTENDED) + (?<element> \g<stag> \g<content>* \g<etag> ){0} + (?<stag> < \g<name> \s* > ){0} + (?<name> [a-zA-Z_:]+ ){0} + (?<content> [^<&]+ (\g<element> | [^<&]+)* ){0} + (?<etag> </ \k<name+1> >){0} + \g<element> + __REGEXP__ + + p r.match("<foo>f<bar>bbb</bar>f</foo>").captures + + +9. Subexp calls ("Tanaka Akira special") + + When we say "call a group," it actually means, "re-execute the subexp in + that group." + + \g<0> \g'0' call the whole pattern recursively + \g<n> \g'n' (n >= 1) call the nth group + \g<-n> \g'-n' (n >= 1) call the nth group counting backwards from + the calling position + \g<+n> \g'+n' (n >= 1) call the nth group counting forwards from + the calling position + \g<name> \g'name' call the group with the specified name + + * Left-most recursive calls are not allowed. + + ex. (?<name>a|\g<name>b) => error + (?<name>a|b\g<name>c) => OK + + * Calls with a name that is assigned to more than one groups are not + allowed in ONIG_SYNTAX_RUBY. + + * Call by number is forbidden if any named group is defined and + ONIG_OPTION_CAPTURE_GROUP is not set. + + * The option status of the called group is always effective. + + ex. /(?-i:\g<name>)(?i:(?<name>a)){0}/.match("A") + + * ONIG_SYNTAX_PERL: + Use (?&name), (?n), (?-n), (?+n), (?R) or (?0) instead of \g<>. + Calls with a name that is assigned to more than one groups are allowed, + and the left-most subexp is used. + + +10. Captured group + + Behavior of an unnamed group (...) changes with the following conditions. + (But named group is not changed.) + + case 1. /.../ (named group is not used, no option) + + (...) is treated as a capturing group. + + case 2. /.../g (named group is not used, 'g' option) + + (...) is treated as a non-capturing group (?:...). + + case 3. /..(?<name>..)../ (named group is used, no option) + + (...) is treated as a non-capturing group. + numbered-backref/call is not allowed. + + case 4. /..(?<name>..)../G (named group is used, 'G' option) + + (...) is treated as a capturing group. + numbered-backref/call is allowed. + + where + g: ONIG_OPTION_DONT_CAPTURE_GROUP + G: ONIG_OPTION_CAPTURE_GROUP + + ('g' and 'G' options are argued in ruby-dev ML) + + + +----------------------------- +A-1. Syntax-dependent options + + + ONIG_SYNTAX_RUBY + (?m): dot (.) also matches newline + + + ONIG_SYNTAX_PERL, ONIG_SYNTAX_JAVA and ONIG_SYNTAX_PYTHON + (?s): dot (.) also matches newline + (?m): ^ matches after newline, $ matches before newline + + + ONIG_SYNTAX_PERL + (?d), (?l): same as (?u) + + +A-2. Original extensions + + + hexadecimal digit char type \h, \H + + named group (?<name>...), (?'name'...) + + named backref \k<name> + + subexp call \g<name>, \g<group-num> + + +A-3. Missing features compared with perl 5.18.0 + + + \N{name}, \N{U+xxxx}, \N + + \l,\u,\L,\U, \C + + \v, \V, \h, \H + + (?{code}) + + (??{code}) + + (?|...) + + (?[]) + + (*VERB:ARG) + + * \Q...\E + This is effective on ONIG_SYNTAX_PERL and ONIG_SYNTAX_JAVA. + + +A-4. Differences with Japanized GNU regex(version 0.12) of Ruby 1.8 + + + add character property (\p{property}, \P{property}) + + add hexadecimal digit char type (\h, \H) + + add look-behind + (?<=fixed-width-pattern), (?<!fixed-width-pattern) + + add possessive quantifier. ?+, *+, ++ + + add operations in character class. [], && + ('[' must be escaped as an usual char in character class.) + + add named group and subexp call. + + octal or hexadecimal number sequence can be treated as + a multibyte code char in character class if multibyte encoding + is specified. + (ex. [\xa1\xa2], [\xa1\xa7-\xa4\xa1]) + + allow the range of single byte char and multibyte char in character + class. + ex. /[a-<<any EUC-JP character>>]/ in EUC-JP encoding. + + effect range of isolated option is to next ')'. + ex. (?:(?i)a|b) is interpreted as (?:(?i:a|b)), not (?:(?i:a)|b). + + isolated option is not transparent to previous pattern. + ex. a(?i)* is a syntax error pattern. + + allowed unpaired left brace as a normal character. + ex. /{/, /({)/, /a{2,3/ etc... + + negative POSIX bracket [:^xxxx:] is supported. + + POSIX bracket [:ascii:] is added. + + repeat of look-ahead is not allowed. + ex. /(?=a)*/, /(?!b){5}/ + + Ignore case option is effective to escape sequence. + ex. /\x61/i =~ "A" + + In the range quantifier, the number of the minimum is optional. + /a{,n}/ == /a{0,n}/ + The omission of both minimum and maximum values is not allowed. + /a{,}/ + + /{n}?/ is not a reluctant quantifier. + /a{n}?/ == /(?:a{n})?/ + + invalid back reference is checked and raises error. + /\1/, /(a)\2/ + + Zero-width match in an infinite loop stops the repeat, + then changes of the capture group status are checked as stop condition. + /(?:()|())*\1\2/ =~ "" + /(?:\1a|())*/ =~ "a" + + +A-5. Features disabled in default syntax + + + capture history + + (?@...) and (?@<name>...) + + ex. /(?@a)*/.match("aaa") ==> [<0-1>, <1-2>, <2-3>] + + see sample/listcap.c file. + + +A-6. Problems + + + Invalid encoding byte sequence is not checked. + + ex. UTF-8 + + * Invalid first byte is treated as a character. + /./u =~ "\xa3" + + * Incomplete byte sequence is not checked. + /\w+/ =~ "a\xf3\x8ec" + +// END diff --git a/fluent-bit/lib/onigmo/doc/RE.ja b/fluent-bit/lib/onigmo/doc/RE.ja new file mode 100644 index 000000000..c4e256874 --- /dev/null +++ b/fluent-bit/lib/onigmo/doc/RE.ja @@ -0,0 +1,565 @@ +鬼雲 (鬼車改) 正規表現 Version 6.1.0 2016/12/25 + +使用文法: ONIG_SYNTAX_RUBY (既定値) + + +1. 基本要素 + + \ 退避修飾 (エスケープ) 正規表現記号の有効/無効の制御 + | 選択子 + (...) 式集合 (グループ) + [...] 文字集合 (文字クラス) + + +2. 文字 + + \t 水平タブ (0x09) + \v 垂直タブ (0x0B) + \n 改行 (0x0A) + \r 復帰 (0x0D) + \b 後退空白 (0x08) + \f 改頁 (0x0C) + \a 鐘 (0x07) + \e 退避修飾 (0x1B) + \nnn 八進数表現 符号化バイト値(の一部) + \xHH 十六進数表現 符号化バイト値(の一部) + \x{7HHHHHHH} 拡張十六進数表現 コードポイント値 + \uHHHH 拡張十六進数表現 コードポイント値 + \cx 制御文字表現 コードポイント値 + \C-x 制御文字表現 コードポイント値 + \M-x 超 (x|0x80) コードポイント値 + \M-\C-x 超 + 制御文字表現 コードポイント値 + + ※ \bは、文字集合内でのみ有効 + + ※ ONIG_SYNTAX_PERLでは \o{nnn} (八進数表現)も使用できる。 + + +3. 文字種 + + . 任意文字 (改行を除く) + + \w 単語構成文字 + + Unicode以外の場合: + 英数字 および "_"。 + + Unicodeの場合: + General_Category -- (Letter|Mark|Number|Connector_Punctuation) + + ASCII外の文字を含むかどうかは ONIG_OPTION_ASCII_RANGE オプションに + 依存する。 + + \W 非単語構成文字 + + \s 空白文字 + + Unicode以外の場合: + \t, \n, \v, \f, \r, \x20 + + Unicodeの場合: + 0009, 000A, 000B, 000C, 000D, 0085(NEL), + General_Category -- Line_Separator + -- Paragraph_Separator + -- Space_Separator + + ASCII外の文字を含むかどうかは ONIG_OPTION_ASCII_RANGE オプションに + 依存する。 + + \S 非空白文字 + + \d 10進数字 + + Unicodeの場合: General_Category -- Decimal_Number + + ASCII外の文字を含むかどうかは ONIG_OPTION_ASCII_RANGE オプションに + 依存する。 + + \D 非10進数字 + + \h 16進数字 [0-9a-fA-F] + + \H 非16進数字 + + + Character Property + + * \p{property-name} + * \p{^property-name} (negative) + * \P{property-name} (negative) + + property-name: + + + 全てのエンコーディングで有効 + Alnum, Alpha, Blank, Cntrl, Digit, Graph, Lower, + Print, Punct, Space, Upper, XDigit, Word, ASCII, + + + EUC-JP, Shift_JIS, CP932で有効 + Hiragana, Katakana, Han, Latin, Greek, Cyrillic + + + UTF-8, UTF-16, UTF-32で有効 + UnicodeProps.txt 参照 + + \p{Punct} は、Unicodeの場合とそれ以外で少し異なった動作をする。Unicode + 以外の場合は、"$+<=>^`|~" の9個の文字にマッチするが(これは [[:punct:]] と + 同じである)、Unicodeの場合はマッチしない。 + Unicodeの場合、\p{XPosixPunct} はこの9個の文字にマッチする。 + + + \R 改行文字 (Linebreak) + + Unicodeの場合: + (?>\x0D\x0A|[\x0A-\x0D\x{85}\x{2028}\x{2029}]) + + Unicode以外の場合: + (?>\x0D\x0A|[\x0A-\x0D]) + + \X 拡張書記素クラスタ (Extended Grapheme cluster) + + Unicodeの場合: + 参照: Unicode Standard Annex #29 UNICODE TEXT SEGMENTATION + http://unicode.org/reports/tr29/ + + Unicode以外の場合: + (?>\x0D\x0A|(?m:.)) + + + +4. 量指定子 + + 欲張り + + ? 一回または零回 + * 零回以上 + + 一回以上 + {n,m} n回以上m回以下 + {n,} n回以上 + {,n} 零回以上n回以下 ({0,n}) + {n} n回 + + 無欲 + + ?? 一回または零回 + *? 零回以上 + +? 一回以上 + {n,m}? n回以上m回以下 + {n,}? n回以上 + {,n}? 零回以上n回以下 (== {0,n}?) + + 強欲 (欲張りで、繰り返しに成功した後は回数を減らすような後退再試行をしない) + + ?+ 一回または零回 + *+ 零回以上 + ++ 一回以上 + + ({n,m}+, {n,}+, {n}+ は、ONIG_SYNTAX_JAVAとONIG_SYNTAX_PERLでのみ強欲な + 指定子) + + 例. /a*+/ === /(?>a*)/ + + +5. 錨 + + ^ 行頭 + $ 行末 + \b 単語境界 + \B 非単語境界 + \A 文字列先頭 + \Z 文字列末尾、または文字列末尾の改行の直前 + \z 文字列末尾 + \G 照合開始位置 + + +6. 文字集合 + + ^... 否定 (最低優先度演算子) + x-y 範囲 (xからyまで) + [...] 集合 (文字集合内文字集合) + ..&&.. 積演算 (^の次に優先度が低い演算子) + + 例. [a-w&&[^c-g]z] ==> ([a-w] and ([^c-g] or z)) ==> [abh-w] + + ※ '[', '-', ']'を、文字集合内で通常文字の意味で使用したい場合には、 + これらの文字を'\'で退避修飾しなければならない。 + + + POSIXブラケット ([:xxxxx:], 否定 [:^xxxxx:]) + + Unicode以外の場合: + + alnum 英数字 + alpha 英字 + ascii 0 - 127 + blank \t, \x20 + cntrl + digit 0-9 + graph \x21-\x7E および 多バイト文字全部を含む + lower + print \x20-\x7E および 多バイト文字全部を含む + punct + space \t, \n, \v, \f, \r, \x20 + upper + xdigit 0-9, a-f, A-F + word 英数字, "_" および 多バイト文字 + + Unicodeの場合: + + alnum Letter | Mark | Decimal_Number + alpha Letter | Mark + ascii 0000 - 007F + blank Space_Separator | 0009 + cntrl Control | Format | Unassigned | Private_Use | Surrogate + digit Decimal_Number + graph [[:^space:]] && ^Control && ^Unassigned && ^Surrogate + lower Lowercase_Letter + print [[:graph:]] | Space_Separator + punct Connector_Punctuation | Dash_Punctuation | Close_Punctuation | + Final_Punctuation | Initial_Punctuation | Other_Punctuation | + Open_Punctuation | 0024 | 002B | 003C | 003D | 003E | 005E | + 0060 | 007C | 007E + space Space_Separator | Line_Separator | Paragraph_Separator | + 0009 | 000A | 000B | 000C | 000D | 0085 + upper Uppercase_Letter + xdigit 0030 - 0039 | 0041 - 0046 | 0061 - 0066 + (0-9, a-f, A-F) + word Letter | Mark | Decimal_Number | Connector_Punctuation + + + POSIXブラケットがASCII外の文字にマッチするかどうかは + ONIG_OPTION_ASCII_RANGEオプションとONIG_OPTION_POSIX_BRACKET_ALL_RANGE + オプションに依存する。 + + + +7. 拡張式集合 + + (?#...) 注釈 + (?imxdau-imx) 孤立オプション + i: 大文字小文字照合 + m: 複数行 + x: 拡張形式 + + 文字集合オプション (文字範囲オプション) + d: デフォルト (Ruby 1.9.3 互換) + \w, \d, \s は、非ASCII文字にマッチしない。 + \b, \B, POSIXブラケットは、各エンコーディングの + ルールに従う。 + a: ASCII + ONIG_OPTION_ASCII_RANGEオプションがオンになる。 + \w, \d, \s, POSIXブラケットは、非ASCII文字に + マッチしない。 + \b, \B は、ASCIIのルールに従う。 + u: Unicode + ONIG_OPTION_ASCII_RANGEオプションがオフになる。 + \w (\W), \d (\D), \s (\S), \b (\B), POSIXブラケット + は、各エンコーディングのルールに従う。 + + (?imxdau-imx:式) 式オプション + + (式) 捕獲式集合 + (?:式) 非捕獲式集合 + + (?=式) 先読み + (?!式) 否定先読み + (?<=式) 戻り読み + (?<!式) 否定戻り読み + + 戻り読みの式は固定文字長でなければならない。 + しかし、最上位の選択子だけは異なった文字長が許される。 + 例. (?<=a|bc) は許可. (?<=aaa(?:b|cd)) は不許可 + + 否定戻り読みでは、捕獲式集合は許されないが、 + 非捕獲式集合は許される。 + + \K 保持 + 戻り読みの別表記。\K の左側を保持し、検索結果に含まない。 + + (?>式) 原子的式集合 + 式全体を通過したとき、式の中での後退再試行を行なわない + + (?<name>式), (?'name'式) + 名前付き捕獲式集合 + 式集合に名前を割り当てる(定義する)。 + (名前は単語構成文字でなければならない。) + + 名前だけでなく、捕獲式集合と同様に番号も割り当てられる。 + 番号指定が禁止されていない状態 (10. 捕獲式集合 を参照) + のときは、名前を使わないで番号でも参照できる。 + + 複数の式集合に同じ名前を与えることは許されている。 + + (?(条件)真の式), (?(条件)真の式|偽の式) + 条件式 + (条件)が真であれば真の式がマッチし、偽であれば偽の式が + マッチする。 + (条件)には以下のものが使用できる。 + + (n) (n >= 1) + 番号指定の後方参照が何かにマッチしていれば真、 + マッチしていなければ偽 + + (<name>), ('name') + 名前指定の後方参照が何かにマッチしていれば真、 + マッチしていなければ偽 + + バグ: 指定されていた名前が多重定義されていた場合、 + 最も左のグループを参照するが、これは本来 \k<name> + と同じ動作になるべきである。 + + (?~式) 非包含オペレータ (実験的) + 式にマッチする文字列を含まない任意の文字列にマッチする。 + より正確には、(?~式) は、.*式.* がマッチする集合の補集合に + マッチする。これは形式言語理論の意味で正規である。 + (?:(?!式).)* と似ているが簡単に書ける。 + + 例: + (?~abc) は以下にマッチする: "", "ab", "aab", "ccdd" 等 + 以下にはマッチしない: "abc", "aabc", "ccabcdd" 等 + + \/\*(?~\*\/)\*\/ は C スタイルのコメントにマッチする: + "/**/", "/* foobar */" 等 + + \A\/\*(?~\*\/)\*\/\z は "/**/ */" にはマッチしない。 + これは、無欲な量指定子(.*?)を使った \A\/\*.*?\*\/\z とは + 異なる。 + + (?:(?!abc).)*c とは違い、(?~abc)c は "abc" にマッチする。 + なぜなら (?~abc) は "ab" にマッチするからである。 + + (?~) は何にもマッチしない。 + + 理論的背景は田中哲氏の論文とスライドで議論されている + (どちらも日本語): + + * Absent Operator for Regular Expression + https://staff.aist.go.jp/tanaka-akira/pub/prosym49-akr-paper.pdf + * 正規表現における非包含オペレータの提案 + https://staff.aist.go.jp/tanaka-akira/pub/prosym49-akr-presen.pdf + + +8. 後方参照 + + \n \k<n> \k'n' (n >= 1) 番号指定参照 + \k<-n> \k'-n' (n >= 1) 相対番号指定参照 + \k<name> \k'name' 名前指定参照 + + 名前指定参照で、その名前が複数の式集合で多重定義されている場合には、 + 番号の大きい式集合から優先的に参照される。 + (マッチしないときには番号の小さい式集合が参照される) + + ※ 番号指定参照は、名前付き捕獲式集合が定義され、 + かつ ONIG_OPTION_CAPTURE_GROUPが指定されていない場合には、 + 禁止される。(10. 捕獲式集合 を参照) + + ※ ONIG_SYNTAX_PERLでは、\g{n}, \g{-n}, \g{name} も使用可能。 + Perl文法で名前が多重定義されていた場合、最も左のグループのみが + 参照される。 + + + 再帰レベル付き後方参照 + + (n >= 1, level >= 0) + + \k<n+level> \k'n+level' + \k<n-level> \k'n-level' + \k<-n+level> \k'-n+level' + \k<-n-level> \k'-n-level' + + \k<name+level> \k'name+level' + \k<name-level> \k'name-level' + + 後方参照の位置から相対的な部分式呼出し再帰レベルを指定して、そのレベルでの + 捕獲値を参照する。 + + 例-1. + + /\A(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))\z/.match("reer") + + 例-2. + + r = Regexp.compile(<<'__REGEXP__'.strip, Regexp::EXTENDED) + (?<element> \g<stag> \g<content>* \g<etag> ){0} + (?<stag> < \g<name> \s* > ){0} + (?<name> [a-zA-Z_:]+ ){0} + (?<content> [^<&]+ (\g<element> | [^<&]+)* ){0} + (?<etag> </ \k<name+1> >){0} + \g<element> + __REGEXP__ + + p r.match('<foo>f<bar>bbb</bar>f</foo>').captures + + + +9. 部分式呼出し ("田中哲スペシャル") + + \g<0> \g'0' パターン全体の再帰呼び出し + \g<n> \g'n' (n >= 1) 番号指定呼出し + \g<-n> \g'-n' (n >= 1) 後方への相対番号指定呼出し + \g<+n> \g'+n' (n >= 1) 前方への相対番号指定呼出し + \g<name> \g'name' 名前指定呼出し + + ※ ONIG_SYNTAX_RUBYでは多重定義された名前による部分式呼び出しはできない。 + + ※ 最左位置での再帰呼出しは禁止される。 + 例. (?<name>a|\g<name>b) => error + (?<name>a|b\g<name>c) => OK + + ※ 番号指定呼出しは、名前付き捕獲式集合が定義され、 + かつ ONIG_OPTION_CAPTURE_GROUPが指定されていない場合には、 + 禁止される。 (10. 捕獲式集合 を参照) + + ※ 呼び出された式集合のオプション状態が呼出し側のオプション状態と異なっている + とき、呼び出された側のオプション状態が有効である。 + + 例. (?-i:\g<name>)(?i:(?<name>a)){0} は "A" に照合成功する。 + + ※ ONIG_SYNTAX_PERLでは \g<> の代わりに (?&name), (?n), (?-n), (?+n), (?R), + (?0) を使用する。 + 多重定義された名前による部分式呼び出しは可能である。その際、最も左の + 部分式が利用される。 + + +10. 捕獲式集合 + + 捕獲式集合(...)は、以下の条件に応じて振舞が変化する。 + (名前付き捕獲式集合は変化しない) + + case 1. /.../ (名前付き捕獲式集合は不使用、オプションなし) + + (...) は、捕獲式集合として扱われる。 + + case 2. /.../g (名前付き捕獲式集合は不使用、オプション 'g'を指定) + + (...) は、非捕獲式集合として扱われる。 + + case 3. /..(?<name>..)../ (名前付き捕獲式集合は使用、オプションなし) + + (...) は、非捕獲式集合として扱われる。 + 番号指定参照/呼び出しは不許可。 + + case 4. /..(?<name>..)../G (名前付き捕獲式集合は使用、オプション 'G'を指定) + + (...) は、捕獲式集合として扱われる。 + 番号指定参照/呼び出しは許可。 + + 但し + g: ONIG_OPTION_DONT_CAPTURE_GROUP + G: ONIG_OPTION_CAPTURE_GROUP + ('g'と'G'オプションは、ruby-dev MLで議論された。) + + これらの振舞の意味は、 + 名前付き捕獲と名前無し捕獲を同時に使用する必然性のある場面は少ないであろう + という理由から考えられたものである。 + + +----------------------------- +補記 1. 文法依存オプション + + + ONIG_SYNTAX_RUBY + (?m): 終止符記号(.)は改行と照合成功 + + + ONIG_SYNTAX_PERL、ONIG_SYNTAX_JAVA、ONIG_SYNTAX_PYTHON + (?s): 終止符記号(.)は改行と照合成功 + (?m): ^ は改行の直後に照合する、$ は改行の直前に照合する + + + ONIG_SYNTAX_PERL + (?d), (?l): (?u)と同じ + + +補記 2. 独自拡張機能 + + + 16進数数字、非16進数字 \h, \H + + 名前付き捕獲式集合 (?<name>...), (?'name'...) + + 名前指定後方参照 \k<name> + + 部分式呼出し \g<name>, \g<group-num> + + +補記 3. Perl 5.18.0と比較して存在しない機能 + + + \N{name}, \N{U+xxxx}, \N + + \l,\u,\L,\U, \C + + \v, \V, \h, \H + + (?{code}) + + (??{code}) + + (?|...) + + (?[]) + + (*VERB:ARG) + + * \Q...\E + 但しONIG_SYNTAX_PERLとONIG_SYNTAX_JAVAでは有効 + + +補記 4. Ruby 1.8 の日本語化 GNU regex(version 0.12)との違い + + + 文字Property機能追加 (\p{property}, \P{Property}) + + 16進数字タイプ追加 (\h, \H) + + 戻り読み機能を追加 + + 強欲な繰り返し指定子を追加 (?+, *+, ++) + + 文字集合の中の演算子を追加 ([...], &&) + ('[' は、文字集合の中で通常の文字として使用するときには + 退避修飾しなければならない) + + 名前付き捕獲式集合と、部分式呼出し機能追加 + + 多バイト文字コードが指定されているとき、 + 文字集合の中で八進数または十六進数表現の連続は、多バイト符号で表現された + 一個の文字と解釈される + (例. [\xa1\xa2], [\xa1\xa7-\xa4\xa1]) + + 文字集合の中で、一バイト文字と多バイト文字の範囲指定は許される。 + ex. /[a-あ]/ + + 孤立オプションの有効範囲は、その孤立オプションを含んでいる式集合の + 終わりまでである + 例. (?:(?i)a|b) は (?:(?i:a|b)) と解釈される、(?:(?i:a)|b)ではない + + 孤立オプションはその前の式に対して透過的ではない + 例. /a(?i)*/ は文法エラーとなる + + 不完全な繰り返し範囲指定子は通常の文字列として許可される + 例. /{/, /({)/, /a{2,3/ + + 否定的POSIXブラケット [:^xxxx:] を追加 + + POSIXブラケット [:ascii:] を追加 + + 先読みの繰り返しは不許可 + 例. /(?=a)*/, /(?!b){5}/ + + 数値で指定された文字に対しても、大文字小文字照合オプションは有効 + 例. /\x61/i =~ "A" + + 繰り返し回数指定で、最低回数の省略(0回)ができる + /a{,n}/ == /a{0,n}/ + 最低回数と最大回数の同時省略は許されない。(/a{,}/) + + /a{n}?/は無欲な演算子ではない。 + /a{n}?/ == /(?:a{n})?/ + + 無効な後方参照をチェックしてエラーにする。 + /\1/, /(a)\2/ + + 無限繰り返しの中で、長さ零での照合成功は繰り返しを中断させるが、 + このとき、中断すべきかどうかの判定として、捕獲式集合の捕獲状態の + 変化まで考慮している + /(?:()|())*\1\2/ =~ "" + /(?:\1a|())*/ =~ "a" + + + +補記 5. 実装されているが、既定値では有効にしていない機能 + + + 捕獲履歴参照 + + (?@...) と (?@<name>...) + + 例. /(?@a)*/.match("aaa") ==> [<0-1>, <1-2>, <2-3>] + + 使用方法は、sample/listcap.cを参照 + + 有効にしていない理由は、どの程度役に立つかはっきりしないため。 + + +補記 6. 問題点 + + + エンコーディングバイト値が適正な価かどうかのチェックは行なっていない。 + + 例: UTF-8 + + * 先頭バイトとして不正なバイトを一文字とみなす + /./u =~ "\xa3" + + * 不完全なバイトシーケンスのチェックをしない + /\w+/u =~ "a\xf3\x8ec" + + これを調べることは可能ではあるが、遅くなるので行なわない。 + + 文字列として、そのようなバイト列を指定した場合の動作は保証しない。 + +終り diff --git a/fluent-bit/lib/onigmo/doc/UnicodeProps.txt b/fluent-bit/lib/onigmo/doc/UnicodeProps.txt new file mode 100644 index 000000000..59124ee28 --- /dev/null +++ b/fluent-bit/lib/onigmo/doc/UnicodeProps.txt @@ -0,0 +1,901 @@ +Onigmo (Oniguruma-mod) Unicode Properties Version 6.2.2 2022/09/20 + +* POSIX brackets + Alpha + Blank + Cntrl + Digit + Graph + Lower + Print + Punct + Space + Upper + XDigit + Word + Alnum + ASCII + XPosixPunct + +* Special + Any + Assigned + +* Major and General Categories + C + Cc + Cf + Cn + Co + Cs + L + LC + Ll + Lm + Lo + Lt + Lu + M + Mc + Me + Mn + N + Nd + Nl + No + P + Pc + Pd + Pe + Pf + Pi + Po + Ps + S + Sc + Sk + Sm + So + Z + Zl + Zp + Zs + +* Scripts + Adlam + Ahom + Anatolian_Hieroglyphs + Arabic + Armenian + Avestan + Balinese + Bamum + Bassa_Vah + Batak + Bengali + Bhaiksuki + Bopomofo + Brahmi + Braille + Buginese + Buhid + Canadian_Aboriginal + Carian + Caucasian_Albanian + Chakma + Cham + Cherokee + Chorasmian + Common + Coptic + Cuneiform + Cypriot + Cypro_Minoan + Cyrillic + Deseret + Devanagari + Dives_Akuru + Dogra + Duployan + Egyptian_Hieroglyphs + Elbasan + Elymaic + Ethiopic + Georgian + Glagolitic + Gothic + Grantha + Greek + Gujarati + Gunjala_Gondi + Gurmukhi + Han + Hangul + Hanifi_Rohingya + Hanunoo + Hatran + Hebrew + Hiragana + Imperial_Aramaic + Inherited + Inscriptional_Pahlavi + Inscriptional_Parthian + Javanese + Kaithi + Kannada + Katakana + Kawi + Kayah_Li + Kharoshthi + Khitan_Small_Script + Khmer + Khojki + Khudawadi + Lao + Latin + Lepcha + Limbu + Linear_A + Linear_B + Lisu + Lycian + Lydian + Mahajani + Makasar + Malayalam + Mandaic + Manichaean + Marchen + Masaram_Gondi + Medefaidrin + Meetei_Mayek + Mende_Kikakui + Meroitic_Cursive + Meroitic_Hieroglyphs + Miao + Modi + Mongolian + Mro + Multani + Myanmar + Nabataean + Nag_Mundari + Nandinagari + New_Tai_Lue + Newa + Nko + Nushu + Nyiakeng_Puachue_Hmong + Ogham + Ol_Chiki + Old_Hungarian + Old_Italic + Old_North_Arabian + Old_Permic + Old_Persian + Old_Sogdian + Old_South_Arabian + Old_Turkic + Old_Uyghur + Oriya + Osage + Osmanya + Pahawh_Hmong + Palmyrene + Pau_Cin_Hau + Phags_Pa + Phoenician + Psalter_Pahlavi + Rejang + Runic + Samaritan + Saurashtra + Sharada + Shavian + Siddham + SignWriting + Sinhala + Sogdian + Sora_Sompeng + Soyombo + Sundanese + Syloti_Nagri + Syriac + Tagalog + Tagbanwa + Tai_Le + Tai_Tham + Tai_Viet + Takri + Tamil + Tangsa + Tangut + Telugu + Thaana + Thai + Tibetan + Tifinagh + Tirhuta + Toto + Ugaritic + Unknown + Vai + Vithkuqi + Wancho + Warang_Citi + Yezidi + Yi + Zanabazar_Square + +* DerivedCoreProperties + Alphabetic + Case_Ignorable + Cased + Changes_When_Casefolded + Changes_When_Casemapped + Changes_When_Lowercased + Changes_When_Titlecased + Changes_When_Uppercased + Default_Ignorable_Code_Point + Grapheme_Base + Grapheme_Extend + Grapheme_Link + ID_Continue + ID_Start + Lowercase + Math + Uppercase + XID_Continue + XID_Start + +* PropList + ASCII_Hex_Digit + Bidi_Control + Dash + Deprecated + Diacritic + Extender + Hex_Digit + Hyphen + IDS_Binary_Operator + IDS_Trinary_Operator + Ideographic + Join_Control + Logical_Order_Exception + Noncharacter_Code_Point + Other_Alphabetic + Other_Default_Ignorable_Code_Point + Other_Grapheme_Extend + Other_ID_Continue + Other_ID_Start + Other_Lowercase + Other_Math + Other_Uppercase + Pattern_Syntax + Pattern_White_Space + Prepended_Concatenation_Mark + Quotation_Mark + Radical + Regional_Indicator + Sentence_Terminal + Soft_Dotted + Terminal_Punctuation + Unified_Ideograph + Variation_Selector + White_Space + +* Emoji + Emoji + Emoji_Component + Emoji_Modifier + Emoji_Modifier_Base + Emoji_Presentation + +* PropertyAliases + AHex + Bidi_C + CI + CWCF + CWCM + CWL + CWT + CWU + DI + Dep + Dia + EBase + EComp + EMod + EPres + Ext + Gr_Base + Gr_Ext + Gr_Link + Hex + IDC + IDS + IDSB + IDST + Ideo + Join_C + LOE + NChar + OAlpha + ODI + OGr_Ext + OIDC + OIDS + OLower + OMath + OUpper + PCM + Pat_Syn + Pat_WS + QMark + RI + SD + STerm + Term + UIdeo + VS + WSpace + XIDC + XIDS + +* PropertyValueAliases (General_Category) + Other + Control + Format + Unassigned + Private_Use + Surrogate + Letter + Cased_Letter + Lowercase_Letter + Modifier_Letter + Other_Letter + Titlecase_Letter + Uppercase_Letter + Mark + Combining_Mark + Spacing_Mark + Enclosing_Mark + Nonspacing_Mark + Number + Decimal_Number + Letter_Number + Other_Number + Punctuation + Connector_Punctuation + Dash_Punctuation + Close_Punctuation + Final_Punctuation + Initial_Punctuation + Other_Punctuation + Open_Punctuation + Symbol + Currency_Symbol + Modifier_Symbol + Math_Symbol + Other_Symbol + Separator + Line_Separator + Paragraph_Separator + Space_Separator + +* PropertyValueAliases (Script) + Adlm + Aghb + Arab + Armi + Armn + Avst + Bali + Bamu + Bass + Batk + Beng + Bhks + Bopo + Brah + Brai + Bugi + Buhd + Cakm + Cans + Cari + Cher + Chrs + Copt + Qaac + Cpmn + Cprt + Cyrl + Deva + Diak + Dogr + Dsrt + Dupl + Egyp + Elba + Elym + Ethi + Geor + Glag + Gong + Gonm + Goth + Gran + Grek + Gujr + Guru + Hang + Hani + Hano + Hatr + Hebr + Hira + Hluw + Hmng + Hmnp + Hung + Ital + Java + Kali + Kana + Khar + Khmr + Khoj + Kits + Knda + Kthi + Lana + Laoo + Latn + Lepc + Limb + Lina + Linb + Lyci + Lydi + Mahj + Maka + Mand + Mani + Marc + Medf + Mend + Merc + Mero + Mlym + Mong + Mroo + Mtei + Mult + Mymr + Nagm + Nand + Narb + Nbat + Nkoo + Nshu + Ogam + Olck + Orkh + Orya + Osge + Osma + Ougr + Palm + Pauc + Perm + Phag + Phli + Phlp + Phnx + Plrd + Prti + Rjng + Rohg + Runr + Samr + Sarb + Saur + Sgnw + Shaw + Shrd + Sidd + Sind + Sinh + Sogd + Sogo + Sora + Soyo + Sund + Sylo + Syrc + Tagb + Takr + Tale + Talu + Taml + Tang + Tavt + Telu + Tfng + Tglg + Thaa + Tibt + Tirh + Tnsa + Ugar + Vaii + Vith + Wara + Wcho + Xpeo + Xsux + Yezi + Yiii + Zanb + Zinh + Qaai + Zyyy + Zzzz + +* DerivedAges + Age=1.1 + Age=10.0 + Age=11.0 + Age=12.0 + Age=12.1 + Age=13.0 + Age=14.0 + Age=15.0 + Age=2.0 + Age=2.1 + Age=3.0 + Age=3.1 + Age=3.2 + Age=4.0 + Age=4.1 + Age=5.0 + Age=5.1 + Age=5.2 + Age=6.0 + Age=6.1 + Age=6.2 + Age=6.3 + Age=7.0 + Age=8.0 + Age=9.0 + +* Blocks + In_Basic_Latin + In_Latin_1_Supplement + In_Latin_Extended_A + In_Latin_Extended_B + In_IPA_Extensions + In_Spacing_Modifier_Letters + In_Combining_Diacritical_Marks + In_Greek_and_Coptic + In_Cyrillic + In_Cyrillic_Supplement + In_Armenian + In_Hebrew + In_Arabic + In_Syriac + In_Arabic_Supplement + In_Thaana + In_NKo + In_Samaritan + In_Mandaic + In_Syriac_Supplement + In_Arabic_Extended_B + In_Arabic_Extended_A + In_Devanagari + In_Bengali + In_Gurmukhi + In_Gujarati + In_Oriya + In_Tamil + In_Telugu + In_Kannada + In_Malayalam + In_Sinhala + In_Thai + In_Lao + In_Tibetan + In_Myanmar + In_Georgian + In_Hangul_Jamo + In_Ethiopic + In_Ethiopic_Supplement + In_Cherokee + In_Unified_Canadian_Aboriginal_Syllabics + In_Ogham + In_Runic + In_Tagalog + In_Hanunoo + In_Buhid + In_Tagbanwa + In_Khmer + In_Mongolian + In_Unified_Canadian_Aboriginal_Syllabics_Extended + In_Limbu + In_Tai_Le + In_New_Tai_Lue + In_Khmer_Symbols + In_Buginese + In_Tai_Tham + In_Combining_Diacritical_Marks_Extended + In_Balinese + In_Sundanese + In_Batak + In_Lepcha + In_Ol_Chiki + In_Cyrillic_Extended_C + In_Georgian_Extended + In_Sundanese_Supplement + In_Vedic_Extensions + In_Phonetic_Extensions + In_Phonetic_Extensions_Supplement + In_Combining_Diacritical_Marks_Supplement + In_Latin_Extended_Additional + In_Greek_Extended + In_General_Punctuation + In_Superscripts_and_Subscripts + In_Currency_Symbols + In_Combining_Diacritical_Marks_for_Symbols + In_Letterlike_Symbols + In_Number_Forms + In_Arrows + In_Mathematical_Operators + In_Miscellaneous_Technical + In_Control_Pictures + In_Optical_Character_Recognition + In_Enclosed_Alphanumerics + In_Box_Drawing + In_Block_Elements + In_Geometric_Shapes + In_Miscellaneous_Symbols + In_Dingbats + In_Miscellaneous_Mathematical_Symbols_A + In_Supplemental_Arrows_A + In_Braille_Patterns + In_Supplemental_Arrows_B + In_Miscellaneous_Mathematical_Symbols_B + In_Supplemental_Mathematical_Operators + In_Miscellaneous_Symbols_and_Arrows + In_Glagolitic + In_Latin_Extended_C + In_Coptic + In_Georgian_Supplement + In_Tifinagh + In_Ethiopic_Extended + In_Cyrillic_Extended_A + In_Supplemental_Punctuation + In_CJK_Radicals_Supplement + In_Kangxi_Radicals + In_Ideographic_Description_Characters + In_CJK_Symbols_and_Punctuation + In_Hiragana + In_Katakana + In_Bopomofo + In_Hangul_Compatibility_Jamo + In_Kanbun + In_Bopomofo_Extended + In_CJK_Strokes + In_Katakana_Phonetic_Extensions + In_Enclosed_CJK_Letters_and_Months + In_CJK_Compatibility + In_CJK_Unified_Ideographs_Extension_A + In_Yijing_Hexagram_Symbols + In_CJK_Unified_Ideographs + In_Yi_Syllables + In_Yi_Radicals + In_Lisu + In_Vai + In_Cyrillic_Extended_B + In_Bamum + In_Modifier_Tone_Letters + In_Latin_Extended_D + In_Syloti_Nagri + In_Common_Indic_Number_Forms + In_Phags_pa + In_Saurashtra + In_Devanagari_Extended + In_Kayah_Li + In_Rejang + In_Hangul_Jamo_Extended_A + In_Javanese + In_Myanmar_Extended_B + In_Cham + In_Myanmar_Extended_A + In_Tai_Viet + In_Meetei_Mayek_Extensions + In_Ethiopic_Extended_A + In_Latin_Extended_E + In_Cherokee_Supplement + In_Meetei_Mayek + In_Hangul_Syllables + In_Hangul_Jamo_Extended_B + In_High_Surrogates + In_High_Private_Use_Surrogates + In_Low_Surrogates + In_Private_Use_Area + In_CJK_Compatibility_Ideographs + In_Alphabetic_Presentation_Forms + In_Arabic_Presentation_Forms_A + In_Variation_Selectors + In_Vertical_Forms + In_Combining_Half_Marks + In_CJK_Compatibility_Forms + In_Small_Form_Variants + In_Arabic_Presentation_Forms_B + In_Halfwidth_and_Fullwidth_Forms + In_Specials + In_Linear_B_Syllabary + In_Linear_B_Ideograms + In_Aegean_Numbers + In_Ancient_Greek_Numbers + In_Ancient_Symbols + In_Phaistos_Disc + In_Lycian + In_Carian + In_Coptic_Epact_Numbers + In_Old_Italic + In_Gothic + In_Old_Permic + In_Ugaritic + In_Old_Persian + In_Deseret + In_Shavian + In_Osmanya + In_Osage + In_Elbasan + In_Caucasian_Albanian + In_Vithkuqi + In_Linear_A + In_Latin_Extended_F + In_Cypriot_Syllabary + In_Imperial_Aramaic + In_Palmyrene + In_Nabataean + In_Hatran + In_Phoenician + In_Lydian + In_Meroitic_Hieroglyphs + In_Meroitic_Cursive + In_Kharoshthi + In_Old_South_Arabian + In_Old_North_Arabian + In_Manichaean + In_Avestan + In_Inscriptional_Parthian + In_Inscriptional_Pahlavi + In_Psalter_Pahlavi + In_Old_Turkic + In_Old_Hungarian + In_Hanifi_Rohingya + In_Rumi_Numeral_Symbols + In_Yezidi + In_Arabic_Extended_C + In_Old_Sogdian + In_Sogdian + In_Old_Uyghur + In_Chorasmian + In_Elymaic + In_Brahmi + In_Kaithi + In_Sora_Sompeng + In_Chakma + In_Mahajani + In_Sharada + In_Sinhala_Archaic_Numbers + In_Khojki + In_Multani + In_Khudawadi + In_Grantha + In_Newa + In_Tirhuta + In_Siddham + In_Modi + In_Mongolian_Supplement + In_Takri + In_Ahom + In_Dogra + In_Warang_Citi + In_Dives_Akuru + In_Nandinagari + In_Zanabazar_Square + In_Soyombo + In_Unified_Canadian_Aboriginal_Syllabics_Extended_A + In_Pau_Cin_Hau + In_Devanagari_Extended_A + In_Bhaiksuki + In_Marchen + In_Masaram_Gondi + In_Gunjala_Gondi + In_Makasar + In_Kawi + In_Lisu_Supplement + In_Tamil_Supplement + In_Cuneiform + In_Cuneiform_Numbers_and_Punctuation + In_Early_Dynastic_Cuneiform + In_Cypro_Minoan + In_Egyptian_Hieroglyphs + In_Egyptian_Hieroglyph_Format_Controls + In_Anatolian_Hieroglyphs + In_Bamum_Supplement + In_Mro + In_Tangsa + In_Bassa_Vah + In_Pahawh_Hmong + In_Medefaidrin + In_Miao + In_Ideographic_Symbols_and_Punctuation + In_Tangut + In_Tangut_Components + In_Khitan_Small_Script + In_Tangut_Supplement + In_Kana_Extended_B + In_Kana_Supplement + In_Kana_Extended_A + In_Small_Kana_Extension + In_Nushu + In_Duployan + In_Shorthand_Format_Controls + In_Znamenny_Musical_Notation + In_Byzantine_Musical_Symbols + In_Musical_Symbols + In_Ancient_Greek_Musical_Notation + In_Kaktovik_Numerals + In_Mayan_Numerals + In_Tai_Xuan_Jing_Symbols + In_Counting_Rod_Numerals + In_Mathematical_Alphanumeric_Symbols + In_Sutton_SignWriting + In_Latin_Extended_G + In_Glagolitic_Supplement + In_Cyrillic_Extended_D + In_Nyiakeng_Puachue_Hmong + In_Toto + In_Wancho + In_Nag_Mundari + In_Ethiopic_Extended_B + In_Mende_Kikakui + In_Adlam + In_Indic_Siyaq_Numbers + In_Ottoman_Siyaq_Numbers + In_Arabic_Mathematical_Alphabetic_Symbols + In_Mahjong_Tiles + In_Domino_Tiles + In_Playing_Cards + In_Enclosed_Alphanumeric_Supplement + In_Enclosed_Ideographic_Supplement + In_Miscellaneous_Symbols_and_Pictographs + In_Emoticons + In_Ornamental_Dingbats + In_Transport_and_Map_Symbols + In_Alchemical_Symbols + In_Geometric_Shapes_Extended + In_Supplemental_Arrows_C + In_Supplemental_Symbols_and_Pictographs + In_Chess_Symbols + In_Symbols_and_Pictographs_Extended_A + In_Symbols_for_Legacy_Computing + In_CJK_Unified_Ideographs_Extension_B + In_CJK_Unified_Ideographs_Extension_C + In_CJK_Unified_Ideographs_Extension_D + In_CJK_Unified_Ideographs_Extension_E + In_CJK_Unified_Ideographs_Extension_F + In_CJK_Compatibility_Ideographs_Supplement + In_CJK_Unified_Ideographs_Extension_G + In_CJK_Unified_Ideographs_Extension_H + In_Tags + In_Variation_Selectors_Supplement + In_Supplementary_Private_Use_Area_A + In_Supplementary_Private_Use_Area_B + In_No_Block |