00001 #ifndef ONIGURUMA_H
00002 #define ONIGURUMA_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #if 0
00036 }
00037 #endif
00038 #endif
00039
00040 #define ONIGURUMA
00041 #define ONIGURUMA_VERSION_MAJOR 5
00042 #define ONIGURUMA_VERSION_MINOR 13
00043 #define ONIGURUMA_VERSION_TEENY 5
00044
00045 #ifdef __cplusplus
00046 # ifndef HAVE_PROTOTYPES
00047 # define HAVE_PROTOTYPES 1
00048 # endif
00049 # ifndef HAVE_STDARG_PROTOTYPES
00050 # define HAVE_STDARG_PROTOTYPES 1
00051 # endif
00052 #endif
00053
00054
00055 #if defined(__APPLE__) && defined(__GNUC__) && __GNUC__ >= 4
00056 # ifndef HAVE_STDARG_PROTOTYPES
00057 # define HAVE_STDARG_PROTOTYPES 1
00058 # endif
00059 #endif
00060
00061 #ifdef HAVE_STDARG_H
00062 # ifndef HAVE_STDARG_PROTOTYPES
00063 # define HAVE_STDARG_PROTOTYPES 1
00064 # endif
00065 #endif
00066
00067 #ifndef P_
00068 #if defined(__STDC__) || defined(_WIN32)
00069 # define P_(args) args
00070 #else
00071 # define P_(args) ()
00072 #endif
00073 #endif
00074
00075 #ifndef PV_
00076 #ifdef HAVE_STDARG_PROTOTYPES
00077 # define PV_(args) args
00078 #else
00079 # define PV_(args) ()
00080 #endif
00081 #endif
00082
00083 #ifndef ONIG_EXTERN
00084 #ifdef RUBY_EXTERN
00085 #define ONIG_EXTERN RUBY_EXTERN
00086 #else
00087 #if defined(_WIN32) && !defined(__GNUC__)
00088 #if defined(EXPORT) || defined(RUBY_EXPORT)
00089 #define ONIG_EXTERN extern __declspec(dllexport)
00090 #else
00091 #define ONIG_EXTERN extern __declspec(dllimport)
00092 #endif
00093 #endif
00094 #endif
00095 #endif
00096
00097 #ifndef ONIG_EXTERN
00098 #define ONIG_EXTERN extern
00099 #endif
00100
00101 #if defined __GNUC__ && __GNUC__ >= 4
00102 #pragma GCC visibility push(default)
00103 #endif
00104
00105 #include <stddef.h>
00106
00107
00108
00109 #ifndef ONIG_ESCAPE_UCHAR_COLLISION
00110 #define UChar OnigUChar
00111 #endif
00112
00113 typedef unsigned char OnigUChar;
00114 typedef unsigned int OnigCodePoint;
00115 typedef unsigned int OnigCtype;
00116 typedef size_t OnigDistance;
00117 typedef ptrdiff_t OnigPosition;
00118
00119 #define ONIG_INFINITE_DISTANCE ~((OnigDistance )0)
00120
00121 typedef unsigned int OnigCaseFoldType;
00122
00123 ONIG_EXTERN OnigCaseFoldType OnigDefaultCaseFoldFlag;
00124
00125
00126
00127 #define ONIGENC_CASE_FOLD_TURKISH_AZERI (1<<20)
00128 #define INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR (1<<30)
00129
00130 #define ONIGENC_CASE_FOLD_MIN INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR
00131 #define ONIGENC_CASE_FOLD_DEFAULT OnigDefaultCaseFoldFlag
00132
00133
00134 #define ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN 3
00135 #define ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM 13
00136
00137
00138
00139 #define ONIGENC_CODE_RANGE_NUM(range) ((int )range[0])
00140 #define ONIGENC_CODE_RANGE_FROM(range,i) range[((i)*2) + 1]
00141 #define ONIGENC_CODE_RANGE_TO(range,i) range[((i)*2) + 2]
00142
00143 typedef struct {
00144 int byte_len;
00145 int code_len;
00146 OnigCodePoint code[ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN];
00147 } OnigCaseFoldCodeItem;
00148
00149 typedef struct {
00150 OnigCodePoint esc;
00151 OnigCodePoint anychar;
00152 OnigCodePoint anytime;
00153 OnigCodePoint zero_or_one_time;
00154 OnigCodePoint one_or_more_time;
00155 OnigCodePoint anychar_anytime;
00156 } OnigMetaCharTableType;
00157
00158 typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg);
00159
00160 typedef struct OnigEncodingTypeST {
00161 int (*precise_mbc_enc_len)(const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc);
00162 const char* name;
00163 int max_enc_len;
00164 int min_enc_len;
00165 int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
00166 OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
00167 int (*code_to_mbclen)(OnigCodePoint code, struct OnigEncodingTypeST* enc);
00168 int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf, struct OnigEncodingTypeST* enc);
00169 int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, struct OnigEncodingTypeST* enc);
00170 int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, struct OnigEncodingTypeST* enc);
00171 int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[], struct OnigEncodingTypeST* enc);
00172 int (*property_name_to_ctype)(struct OnigEncodingTypeST* enc, OnigUChar* p, OnigUChar* end);
00173 int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype, struct OnigEncodingTypeST* enc);
00174 int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], struct OnigEncodingTypeST* enc);
00175 OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
00176 int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end, struct OnigEncodingTypeST* enc);
00177 int ruby_encoding_index;
00178 unsigned int flags;
00179 } OnigEncodingType;
00180
00181 typedef OnigEncodingType* OnigEncoding;
00182
00183 ONIG_EXTERN OnigEncodingType OnigEncodingASCII;
00184
00185 #define ONIG_ENCODING_ASCII (&OnigEncodingASCII)
00186
00187 #define ONIG_ENCODING_UNDEF ((OnigEncoding )0)
00188
00189
00190
00191 #define ONIGENC_CODE_TO_MBC_MAXLEN 7
00192 #define ONIGENC_MBC_CASE_FOLD_MAXLEN 18
00193
00194
00195
00196 #define ONIGENC_CTYPE_NEWLINE 0
00197 #define ONIGENC_CTYPE_ALPHA 1
00198 #define ONIGENC_CTYPE_BLANK 2
00199 #define ONIGENC_CTYPE_CNTRL 3
00200 #define ONIGENC_CTYPE_DIGIT 4
00201 #define ONIGENC_CTYPE_GRAPH 5
00202 #define ONIGENC_CTYPE_LOWER 6
00203 #define ONIGENC_CTYPE_PRINT 7
00204 #define ONIGENC_CTYPE_PUNCT 8
00205 #define ONIGENC_CTYPE_SPACE 9
00206 #define ONIGENC_CTYPE_UPPER 10
00207 #define ONIGENC_CTYPE_XDIGIT 11
00208 #define ONIGENC_CTYPE_WORD 12
00209 #define ONIGENC_CTYPE_ALNUM 13
00210 #define ONIGENC_CTYPE_ASCII 14
00211 #define ONIGENC_MAX_STD_CTYPE ONIGENC_CTYPE_ASCII
00212
00213
00214 #define ONIGENC_FLAG_NONE 0U
00215 #define ONIGENC_FLAG_UNICODE 1U
00216
00217 #define onig_enc_len(enc,p,e) ONIGENC_MBC_ENC_LEN(enc, p, e)
00218
00219 #define ONIGENC_IS_UNDEF(enc) ((enc) == ONIG_ENCODING_UNDEF)
00220 #define ONIGENC_IS_SINGLEBYTE(enc) (ONIGENC_MBC_MAXLEN(enc) == 1)
00221 #define ONIGENC_IS_MBC_HEAD(enc,p,e) (ONIGENC_MBC_ENC_LEN(enc,p,e) != 1)
00222 #define ONIGENC_IS_MBC_ASCII(p) (*(p) < 128)
00223 #define ONIGENC_IS_CODE_ASCII(code) ((code) < 128)
00224 #define ONIGENC_IS_MBC_WORD(enc,s,end) \
00225 ONIGENC_IS_CODE_WORD(enc,ONIGENC_MBC_TO_CODE(enc,s,end))
00226 #define ONIGENC_IS_MBC_ASCII_WORD(enc,s,end) \
00227 onigenc_ascii_is_code_ctype( \
00228 ONIGENC_MBC_TO_CODE(enc,s,end),ONIGENC_CTYPE_WORD,enc)
00229 #define ONIGENC_IS_UNICODE(enc) ((enc)->flags & ONIGENC_FLAG_UNICODE)
00230
00231
00232 #define ONIGENC_NAME(enc) ((enc)->name)
00233
00234 #define ONIGENC_MBC_CASE_FOLD(enc,flag,pp,end,buf) \
00235 (enc)->mbc_case_fold(flag,(const OnigUChar** )pp,end,buf,enc)
00236 #define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) \
00237 (enc)->is_allowed_reverse_match(s,end,enc)
00238 #define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s,end) \
00239 (enc)->left_adjust_char_head(start, s, end, enc)
00240 #define ONIGENC_APPLY_ALL_CASE_FOLD(enc,case_fold_flag,f,arg) \
00241 (enc)->apply_all_case_fold(case_fold_flag,f,arg,enc)
00242 #define ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc,case_fold_flag,p,end,acs) \
00243 (enc)->get_case_fold_codes_by_str(case_fold_flag,p,end,acs,enc)
00244 #define ONIGENC_STEP_BACK(enc,start,s,end,n) \
00245 onigenc_step_back((enc),(start),(s),(end),(n))
00246
00247 #define ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) (n)
00248 #define ONIGENC_MBCLEN_CHARFOUND_P(r) (0 < (r))
00249 #define ONIGENC_MBCLEN_CHARFOUND_LEN(r) (r)
00250
00251 #define ONIGENC_CONSTRUCT_MBCLEN_INVALID() (-1)
00252 #define ONIGENC_MBCLEN_INVALID_P(r) ((r) == -1)
00253
00254 #define ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(n) (-1-(n))
00255 #define ONIGENC_MBCLEN_NEEDMORE_P(r) ((r) < -1)
00256 #define ONIGENC_MBCLEN_NEEDMORE_LEN(r) (-1-(r))
00257
00258 #define ONIGENC_PRECISE_MBC_ENC_LEN(enc,p,e) (enc)->precise_mbc_enc_len(p,e,enc)
00259
00260 ONIG_EXTERN
00261 int onigenc_mbclen_approximate P_((const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc));
00262
00263 #define ONIGENC_MBC_ENC_LEN(enc,p,e) onigenc_mbclen_approximate(p,e,enc)
00264 #define ONIGENC_MBC_MAXLEN(enc) ((enc)->max_enc_len)
00265 #define ONIGENC_MBC_MAXLEN_DIST(enc) ONIGENC_MBC_MAXLEN(enc)
00266 #define ONIGENC_MBC_MINLEN(enc) ((enc)->min_enc_len)
00267 #define ONIGENC_IS_MBC_NEWLINE(enc,p,end) (enc)->is_mbc_newline((p),(end),enc)
00268 #define ONIGENC_MBC_TO_CODE(enc,p,end) (enc)->mbc_to_code((p),(end),enc)
00269 #define ONIGENC_CODE_TO_MBCLEN(enc,code) (enc)->code_to_mbclen(code,enc)
00270 #define ONIGENC_CODE_TO_MBC(enc,code,buf) (enc)->code_to_mbc(code,buf,enc)
00271 #define ONIGENC_PROPERTY_NAME_TO_CTYPE(enc,p,end) \
00272 (enc)->property_name_to_ctype(enc,p,end)
00273
00274 #define ONIGENC_IS_CODE_CTYPE(enc,code,ctype) (enc)->is_code_ctype(code,ctype,enc)
00275
00276 #define ONIGENC_IS_CODE_NEWLINE(enc,code) \
00277 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_NEWLINE)
00278 #define ONIGENC_IS_CODE_GRAPH(enc,code) \
00279 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_GRAPH)
00280 #define ONIGENC_IS_CODE_PRINT(enc,code) \
00281 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PRINT)
00282 #define ONIGENC_IS_CODE_ALNUM(enc,code) \
00283 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALNUM)
00284 #define ONIGENC_IS_CODE_ALPHA(enc,code) \
00285 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALPHA)
00286 #define ONIGENC_IS_CODE_LOWER(enc,code) \
00287 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_LOWER)
00288 #define ONIGENC_IS_CODE_UPPER(enc,code) \
00289 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_UPPER)
00290 #define ONIGENC_IS_CODE_CNTRL(enc,code) \
00291 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_CNTRL)
00292 #define ONIGENC_IS_CODE_PUNCT(enc,code) \
00293 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PUNCT)
00294 #define ONIGENC_IS_CODE_SPACE(enc,code) \
00295 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_SPACE)
00296 #define ONIGENC_IS_CODE_BLANK(enc,code) \
00297 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_BLANK)
00298 #define ONIGENC_IS_CODE_DIGIT(enc,code) \
00299 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_DIGIT)
00300 #define ONIGENC_IS_CODE_XDIGIT(enc,code) \
00301 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_XDIGIT)
00302 #define ONIGENC_IS_CODE_WORD(enc,code) \
00303 ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_WORD)
00304
00305 #define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbout,ranges) \
00306 (enc)->get_ctype_code_range(ctype,sbout,ranges,enc)
00307
00308 ONIG_EXTERN
00309 OnigUChar* onigenc_step_back P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, int n));
00310
00311
00312
00313 ONIG_EXTERN
00314 int onigenc_init P_((void));
00315 ONIG_EXTERN
00316 int onigenc_set_default_encoding P_((OnigEncoding enc));
00317 ONIG_EXTERN
00318 OnigEncoding onigenc_get_default_encoding P_((void));
00319 ONIG_EXTERN
00320 void onigenc_set_default_caseconv_table P_((const OnigUChar* table));
00321 ONIG_EXTERN
00322 OnigUChar* onigenc_get_right_adjust_char_head_with_prev P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, const OnigUChar** prev));
00323 ONIG_EXTERN
00324 OnigUChar* onigenc_get_prev_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end));
00325 ONIG_EXTERN
00326 OnigUChar* onigenc_get_left_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end));
00327 ONIG_EXTERN
00328 OnigUChar* onigenc_get_right_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end));
00329 ONIG_EXTERN
00330 int onigenc_strlen P_((OnigEncoding enc, const OnigUChar* p, const OnigUChar* end));
00331 ONIG_EXTERN
00332 int onigenc_strlen_null P_((OnigEncoding enc, const OnigUChar* p));
00333 ONIG_EXTERN
00334 int onigenc_str_bytelen_null P_((OnigEncoding enc, const OnigUChar* p));
00335
00336
00337
00338
00339
00340
00341 #define ONIG_NREGION 10
00342 #define ONIG_MAX_BACKREF_NUM 1000
00343 #define ONIG_MAX_CAPTURE_GROUP_NUM 32767
00344 #define ONIG_MAX_REPEAT_NUM 100000
00345 #define ONIG_MAX_MULTI_BYTE_RANGES_NUM 10000
00346
00347 #define ONIG_MAX_ERROR_MESSAGE_LEN 90
00348
00349 typedef unsigned int OnigOptionType;
00350
00351 #define ONIG_OPTION_DEFAULT ONIG_OPTION_NONE
00352
00353
00354 #define ONIG_OPTION_NONE 0U
00355 #define ONIG_OPTION_IGNORECASE 1U
00356 #define ONIG_OPTION_EXTEND (ONIG_OPTION_IGNORECASE << 1)
00357 #define ONIG_OPTION_MULTILINE (ONIG_OPTION_EXTEND << 1)
00358 #define ONIG_OPTION_DOTALL ONIG_OPTION_MULTILINE
00359 #define ONIG_OPTION_SINGLELINE (ONIG_OPTION_MULTILINE << 1)
00360 #define ONIG_OPTION_FIND_LONGEST (ONIG_OPTION_SINGLELINE << 1)
00361 #define ONIG_OPTION_FIND_NOT_EMPTY (ONIG_OPTION_FIND_LONGEST << 1)
00362 #define ONIG_OPTION_NEGATE_SINGLELINE (ONIG_OPTION_FIND_NOT_EMPTY << 1)
00363 #define ONIG_OPTION_DONT_CAPTURE_GROUP (ONIG_OPTION_NEGATE_SINGLELINE << 1)
00364 #define ONIG_OPTION_CAPTURE_GROUP (ONIG_OPTION_DONT_CAPTURE_GROUP << 1)
00365
00366 #define ONIG_OPTION_NOTBOL (ONIG_OPTION_CAPTURE_GROUP << 1)
00367 #define ONIG_OPTION_NOTEOL (ONIG_OPTION_NOTBOL << 1)
00368 #define ONIG_OPTION_POSIX_REGION (ONIG_OPTION_NOTEOL << 1)
00369
00370 #define ONIG_OPTION_ASCII_RANGE (ONIG_OPTION_POSIX_REGION << 1)
00371 #define ONIG_OPTION_POSIX_BRACKET_ALL_RANGE (ONIG_OPTION_ASCII_RANGE << 1)
00372 #define ONIG_OPTION_WORD_BOUND_ALL_RANGE (ONIG_OPTION_POSIX_BRACKET_ALL_RANGE << 1)
00373
00374 #define ONIG_OPTION_NEWLINE_CRLF (ONIG_OPTION_WORD_BOUND_ALL_RANGE << 1)
00375 #define ONIG_OPTION_MAXBIT ONIG_OPTION_NEWLINE_CRLF
00376
00377 #define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt))
00378 #define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt))
00379 #define ONIG_IS_OPTION_ON(options,option) ((options) & (option))
00380
00381
00382 typedef struct {
00383 unsigned int op;
00384 unsigned int op2;
00385 unsigned int behavior;
00386 OnigOptionType options;
00387 OnigMetaCharTableType meta_char_table;
00388 } OnigSyntaxType;
00389
00390 ONIG_EXTERN const OnigSyntaxType OnigSyntaxASIS;
00391 ONIG_EXTERN const OnigSyntaxType OnigSyntaxPosixBasic;
00392 ONIG_EXTERN const OnigSyntaxType OnigSyntaxPosixExtended;
00393 ONIG_EXTERN const OnigSyntaxType OnigSyntaxEmacs;
00394 ONIG_EXTERN const OnigSyntaxType OnigSyntaxGrep;
00395 ONIG_EXTERN const OnigSyntaxType OnigSyntaxGnuRegex;
00396 ONIG_EXTERN const OnigSyntaxType OnigSyntaxJava;
00397 ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl58;
00398 ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl58_NG;
00399 ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl;
00400 ONIG_EXTERN const OnigSyntaxType OnigSyntaxRuby;
00401 ONIG_EXTERN const OnigSyntaxType OnigSyntaxPython;
00402
00403
00404 #define ONIG_SYNTAX_ASIS (&OnigSyntaxASIS)
00405 #define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic)
00406 #define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended)
00407 #define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs)
00408 #define ONIG_SYNTAX_GREP (&OnigSyntaxGrep)
00409 #define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex)
00410 #define ONIG_SYNTAX_JAVA (&OnigSyntaxJava)
00411 #define ONIG_SYNTAX_PERL58 (&OnigSyntaxPerl58)
00412 #define ONIG_SYNTAX_PERL58_NG (&OnigSyntaxPerl58_NG)
00413 #define ONIG_SYNTAX_PERL (&OnigSyntaxPerl)
00414 #define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby)
00415 #define ONIG_SYNTAX_PYTHON (&OnigSyntaxPython)
00416
00417
00418 ONIG_EXTERN const OnigSyntaxType* OnigDefaultSyntax;
00419 #define ONIG_SYNTAX_DEFAULT OnigDefaultSyntax
00420
00421
00422 #define ONIG_SYN_OP_VARIABLE_META_CHARACTERS (1U<<0)
00423 #define ONIG_SYN_OP_DOT_ANYCHAR (1U<<1)
00424 #define ONIG_SYN_OP_ASTERISK_ZERO_INF (1U<<2)
00425 #define ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF (1U<<3)
00426 #define ONIG_SYN_OP_PLUS_ONE_INF (1U<<4)
00427 #define ONIG_SYN_OP_ESC_PLUS_ONE_INF (1U<<5)
00428 #define ONIG_SYN_OP_QMARK_ZERO_ONE (1U<<6)
00429 #define ONIG_SYN_OP_ESC_QMARK_ZERO_ONE (1U<<7)
00430 #define ONIG_SYN_OP_BRACE_INTERVAL (1U<<8)
00431 #define ONIG_SYN_OP_ESC_BRACE_INTERVAL (1U<<9)
00432 #define ONIG_SYN_OP_VBAR_ALT (1U<<10)
00433 #define ONIG_SYN_OP_ESC_VBAR_ALT (1U<<11)
00434 #define ONIG_SYN_OP_LPAREN_SUBEXP (1U<<12)
00435 #define ONIG_SYN_OP_ESC_LPAREN_SUBEXP (1U<<13)
00436 #define ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR (1U<<14)
00437 #define ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR (1U<<15)
00438 #define ONIG_SYN_OP_DECIMAL_BACKREF (1U<<16)
00439 #define ONIG_SYN_OP_BRACKET_CC (1U<<17)
00440 #define ONIG_SYN_OP_ESC_W_WORD (1U<<18)
00441 #define ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END (1U<<19)
00442 #define ONIG_SYN_OP_ESC_B_WORD_BOUND (1U<<20)
00443 #define ONIG_SYN_OP_ESC_S_WHITE_SPACE (1U<<21)
00444 #define ONIG_SYN_OP_ESC_D_DIGIT (1U<<22)
00445 #define ONIG_SYN_OP_LINE_ANCHOR (1U<<23)
00446 #define ONIG_SYN_OP_POSIX_BRACKET (1U<<24)
00447 #define ONIG_SYN_OP_QMARK_NON_GREEDY (1U<<25)
00448 #define ONIG_SYN_OP_ESC_CONTROL_CHARS (1U<<26)
00449 #define ONIG_SYN_OP_ESC_C_CONTROL (1U<<27)
00450 #define ONIG_SYN_OP_ESC_OCTAL3 (1U<<28)
00451 #define ONIG_SYN_OP_ESC_X_HEX2 (1U<<29)
00452 #define ONIG_SYN_OP_ESC_X_BRACE_HEX8 (1U<<30)
00453 #define ONIG_SYN_OP_ESC_O_BRACE_OCTAL (1U<<31)
00454
00455 #define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (1U<<0)
00456 #define ONIG_SYN_OP2_QMARK_GROUP_EFFECT (1U<<1)
00457 #define ONIG_SYN_OP2_OPTION_PERL (1U<<2)
00458 #define ONIG_SYN_OP2_OPTION_RUBY (1U<<3)
00459 #define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (1U<<4)
00460 #define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (1U<<5)
00461 #define ONIG_SYN_OP2_CCLASS_SET_OP (1U<<6)
00462 #define ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP (1U<<7)
00463 #define ONIG_SYN_OP2_ESC_K_NAMED_BACKREF (1U<<8)
00464 #define ONIG_SYN_OP2_ESC_G_SUBEXP_CALL (1U<<9)
00465 #define ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY (1U<<10)
00466 #define ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL (1U<<11)
00467 #define ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META (1U<<12)
00468 #define ONIG_SYN_OP2_ESC_V_VTAB (1U<<13)
00469 #define ONIG_SYN_OP2_ESC_U_HEX4 (1U<<14)
00470 #define ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR (1U<<15)
00471 #define ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY (1U<<16)
00472 #define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1U<<17)
00473
00474 #define ONIG_SYN_OP2_ESC_H_XDIGIT (1U<<19)
00475 #define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (1U<<20)
00476 #define ONIG_SYN_OP2_ESC_CAPITAL_R_LINEBREAK (1U<<21)
00477 #define ONIG_SYN_OP2_ESC_CAPITAL_X_EXTENDED_GRAPHEME_CLUSTER (1U<<22)
00478 #define ONIG_SYN_OP2_ESC_V_VERTICAL_WHITESPACE (1U<<23)
00479 #define ONIG_SYN_OP2_ESC_H_HORIZONTAL_WHITESPACE (1U<<24)
00480 #define ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP (1U<<25)
00481 #define ONIG_SYN_OP2_ESC_G_BRACE_BACKREF (1U<<26)
00482 #define ONIG_SYN_OP2_QMARK_SUBEXP_CALL (1U<<27)
00483 #define ONIG_SYN_OP2_QMARK_VBAR_BRANCH_RESET (1U<<28)
00484 #define ONIG_SYN_OP2_QMARK_LPAREN_CONDITION (1U<<29)
00485 #define ONIG_SYN_OP2_QMARK_CAPITAL_P_NAMED_GROUP (1U<<30)
00486 #define ONIG_SYN_OP2_OPTION_JAVA (1U<<31)
00487
00488
00489 #define ONIG_SYN_CONTEXT_INDEP_ANCHORS (1U<<31)
00490 #define ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS (1U<<0)
00491 #define ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS (1U<<1)
00492 #define ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP (1U<<2)
00493 #define ONIG_SYN_ALLOW_INVALID_INTERVAL (1U<<3)
00494 #define ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV (1U<<4)
00495 #define ONIG_SYN_STRICT_CHECK_BACKREF (1U<<5)
00496 #define ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND (1U<<6)
00497 #define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP (1U<<7)
00498 #define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1U<<8)
00499 #define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY (1U<<9)
00500 #define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL (1U<<10)
00501
00502
00503 #define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20)
00504 #define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (1U<<21)
00505 #define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22)
00506 #define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC (1U<<23)
00507
00508 #define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED (1U<<24)
00509 #define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT (1U<<25)
00510 #define ONIG_SYN_WARN_CC_DUP (1U<<26)
00511
00512
00513 #define ONIG_META_CHAR_ESCAPE 0
00514 #define ONIG_META_CHAR_ANYCHAR 1
00515 #define ONIG_META_CHAR_ANYTIME 2
00516 #define ONIG_META_CHAR_ZERO_OR_ONE_TIME 3
00517 #define ONIG_META_CHAR_ONE_OR_MORE_TIME 4
00518 #define ONIG_META_CHAR_ANYCHAR_ANYTIME 5
00519
00520 #define ONIG_INEFFECTIVE_META_CHAR 0
00521
00522
00523 #define ONIG_IS_PATTERN_ERROR(ecode) ((ecode) <= -100 && (ecode) > -1000)
00524
00525 #define ONIG_NORMAL 0
00526 #define ONIG_MISMATCH -1
00527 #define ONIG_NO_SUPPORT_CONFIG -2
00528
00529
00530 #define ONIGERR_MEMORY -5
00531 #define ONIGERR_TYPE_BUG -6
00532 #define ONIGERR_PARSER_BUG -11
00533 #define ONIGERR_STACK_BUG -12
00534 #define ONIGERR_UNDEFINED_BYTECODE -13
00535 #define ONIGERR_UNEXPECTED_BYTECODE -14
00536 #define ONIGERR_MATCH_STACK_LIMIT_OVER -15
00537 #define ONIGERR_DEFAULT_ENCODING_IS_NOT_SET -21
00538 #define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR -22
00539
00540 #define ONIGERR_INVALID_ARGUMENT -30
00541
00542 #define ONIGERR_END_PATTERN_AT_LEFT_BRACE -100
00543 #define ONIGERR_END_PATTERN_AT_LEFT_BRACKET -101
00544 #define ONIGERR_EMPTY_CHAR_CLASS -102
00545 #define ONIGERR_PREMATURE_END_OF_CHAR_CLASS -103
00546 #define ONIGERR_END_PATTERN_AT_ESCAPE -104
00547 #define ONIGERR_END_PATTERN_AT_META -105
00548 #define ONIGERR_END_PATTERN_AT_CONTROL -106
00549 #define ONIGERR_META_CODE_SYNTAX -108
00550 #define ONIGERR_CONTROL_CODE_SYNTAX -109
00551 #define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE -110
00552 #define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE -111
00553 #define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS -112
00554 #define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED -113
00555 #define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID -114
00556 #define ONIGERR_NESTED_REPEAT_OPERATOR -115
00557 #define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS -116
00558 #define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS -117
00559 #define ONIGERR_END_PATTERN_IN_GROUP -118
00560 #define ONIGERR_UNDEFINED_GROUP_OPTION -119
00561 #define ONIGERR_INVALID_POSIX_BRACKET_TYPE -121
00562 #define ONIGERR_INVALID_LOOK_BEHIND_PATTERN -122
00563 #define ONIGERR_INVALID_REPEAT_RANGE_PATTERN -123
00564 #define ONIGERR_INVALID_CONDITION_PATTERN -124
00565
00566 #define ONIGERR_TOO_BIG_NUMBER -200
00567 #define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE -201
00568 #define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE -202
00569 #define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS -203
00570 #define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE -204
00571 #define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES -205
00572 #define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING -206
00573 #define ONIGERR_TOO_BIG_BACKREF_NUMBER -207
00574 #define ONIGERR_INVALID_BACKREF -208
00575 #define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED -209
00576 #define ONIGERR_TOO_SHORT_DIGITS -210
00577 #define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE -212
00578 #define ONIGERR_EMPTY_GROUP_NAME -214
00579 #define ONIGERR_INVALID_GROUP_NAME -215
00580 #define ONIGERR_INVALID_CHAR_IN_GROUP_NAME -216
00581 #define ONIGERR_UNDEFINED_NAME_REFERENCE -217
00582 #define ONIGERR_UNDEFINED_GROUP_REFERENCE -218
00583 #define ONIGERR_MULTIPLEX_DEFINED_NAME -219
00584 #define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL -220
00585 #define ONIGERR_NEVER_ENDING_RECURSION -221
00586 #define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY -222
00587 #define ONIGERR_INVALID_CHAR_PROPERTY_NAME -223
00588 #define ONIGERR_TOO_MANY_CAPTURE_GROUPS -224
00589 #define ONIGERR_INVALID_CODE_POINT_VALUE -400
00590 #define ONIGERR_INVALID_WIDE_CHAR_VALUE -400
00591 #define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE -401
00592 #define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION -402
00593 #define ONIGERR_INVALID_COMBINATION_OF_OPTIONS -403
00594
00595
00596 #define ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT -1001
00597
00598
00599
00600 #define ONIG_MAX_CAPTURE_HISTORY_GROUP 31
00601 #define ONIG_IS_CAPTURE_HISTORY_GROUP(r, i) \
00602 ((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i])
00603
00604 typedef struct OnigCaptureTreeNodeStruct {
00605 int group;
00606 OnigPosition beg;
00607 OnigPosition end;
00608 int allocated;
00609 int num_childs;
00610 struct OnigCaptureTreeNodeStruct** childs;
00611 } OnigCaptureTreeNode;
00612
00613
00614 struct re_registers {
00615 int allocated;
00616 int num_regs;
00617 OnigPosition* beg;
00618 OnigPosition* end;
00619
00620 OnigCaptureTreeNode* history_root;
00621 };
00622
00623
00624 #define ONIG_TRAVERSE_CALLBACK_AT_FIRST 1
00625 #define ONIG_TRAVERSE_CALLBACK_AT_LAST 2
00626 #define ONIG_TRAVERSE_CALLBACK_AT_BOTH \
00627 ( ONIG_TRAVERSE_CALLBACK_AT_FIRST | ONIG_TRAVERSE_CALLBACK_AT_LAST )
00628
00629
00630 #define ONIG_REGION_NOTPOS -1
00631
00632 typedef struct re_registers OnigRegion;
00633
00634 typedef struct {
00635 OnigEncoding enc;
00636 OnigUChar* par;
00637 OnigUChar* par_end;
00638 } OnigErrorInfo;
00639
00640 typedef struct {
00641 int lower;
00642 int upper;
00643 } OnigRepeatRange;
00644
00645 typedef void (*OnigWarnFunc) P_((const char* s));
00646 extern void onig_null_warn P_((const char* s));
00647 #define ONIG_NULL_WARN onig_null_warn
00648
00649 #define ONIG_CHAR_TABLE_SIZE 256
00650
00651
00652 #define ONIG_STATE_NORMAL 0
00653 #define ONIG_STATE_SEARCHING 1
00654 #define ONIG_STATE_COMPILING -1
00655 #define ONIG_STATE_MODIFY -2
00656
00657 #define ONIG_STATE(reg) \
00658 ((reg)->state > 0 ? ONIG_STATE_SEARCHING : (reg)->state)
00659
00660 typedef struct re_pattern_buffer {
00661
00662 unsigned char* p;
00663 unsigned int used;
00664 unsigned int alloc;
00665
00666 int state;
00667 int num_mem;
00668 int num_repeat;
00669 int num_null_check;
00670 int num_comb_exp_check;
00671 int num_call;
00672 unsigned int capture_history;
00673 unsigned int bt_mem_start;
00674 unsigned int bt_mem_end;
00675 int stack_pop_level;
00676 int repeat_range_alloc;
00677 OnigRepeatRange* repeat_range;
00678
00679 OnigEncoding enc;
00680 OnigOptionType options;
00681 const OnigSyntaxType* syntax;
00682 OnigCaseFoldType case_fold_flag;
00683 void* name_table;
00684
00685
00686 int optimize;
00687 int threshold_len;
00688 int anchor;
00689 OnigDistance anchor_dmin;
00690 OnigDistance anchor_dmax;
00691 int sub_anchor;
00692 unsigned char *exact;
00693 unsigned char *exact_end;
00694 unsigned char map[ONIG_CHAR_TABLE_SIZE];
00695 int *int_map;
00696 int *int_map_backward;
00697 OnigDistance dmin;
00698 OnigDistance dmax;
00699
00700
00701 struct re_pattern_buffer* chain;
00702 } OnigRegexType;
00703
00704 typedef OnigRegexType* OnigRegex;
00705
00706 #ifndef ONIG_ESCAPE_REGEX_T_COLLISION
00707 typedef OnigRegexType regex_t;
00708 #endif
00709
00710
00711 typedef struct {
00712 int num_of_elements;
00713 OnigEncoding pattern_enc;
00714 OnigEncoding target_enc;
00715 OnigSyntaxType* syntax;
00716 OnigOptionType option;
00717 OnigCaseFoldType case_fold_flag;
00718 } OnigCompileInfo;
00719
00720
00721 ONIG_EXTERN
00722 int onig_init P_((void));
00723 ONIG_EXTERN
00724 int onig_error_code_to_str PV_((OnigUChar* s, OnigPosition err_code, ...));
00725 ONIG_EXTERN
00726 void onig_set_warn_func P_((OnigWarnFunc f));
00727 ONIG_EXTERN
00728 void onig_set_verb_warn_func P_((OnigWarnFunc f));
00729 ONIG_EXTERN
00730 int onig_new P_((OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo));
00731 ONIG_EXTERN
00732 int onig_reg_init P_((OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, const OnigSyntaxType* syntax));
00733 ONIG_EXTERN
00734 int onig_new_without_alloc P_((OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo));
00735 ONIG_EXTERN
00736 int onig_new_deluxe P_((OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo));
00737 ONIG_EXTERN
00738 void onig_free P_((OnigRegex));
00739 ONIG_EXTERN
00740 void onig_free_body P_((OnigRegex));
00741 ONIG_EXTERN
00742 int onig_recompile P_((OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo));
00743 ONIG_EXTERN
00744 int onig_recompile_deluxe P_((OnigRegex reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo));
00745 ONIG_EXTERN
00746 OnigPosition onig_search P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option));
00747 ONIG_EXTERN
00748 OnigPosition onig_search_gpos P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* global_pos, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option));
00749 ONIG_EXTERN
00750 OnigPosition onig_match P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option));
00751 ONIG_EXTERN
00752 OnigRegion* onig_region_new P_((void));
00753 ONIG_EXTERN
00754 void onig_region_init P_((OnigRegion* region));
00755 ONIG_EXTERN
00756 void onig_region_free P_((OnigRegion* region, int free_self));
00757 ONIG_EXTERN
00758 void onig_region_copy P_((OnigRegion* to, OnigRegion* from));
00759 ONIG_EXTERN
00760 void onig_region_clear P_((OnigRegion* region));
00761 ONIG_EXTERN
00762 int onig_region_resize P_((OnigRegion* region, int n));
00763 ONIG_EXTERN
00764 int onig_region_set P_((OnigRegion* region, int at, int beg, int end));
00765 ONIG_EXTERN
00766 int onig_name_to_group_numbers P_((OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums));
00767 ONIG_EXTERN
00768 int onig_name_to_backref_number P_((OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, OnigRegion *region));
00769 ONIG_EXTERN
00770 int onig_foreach_name P_((OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg));
00771 ONIG_EXTERN
00772 int onig_number_of_names P_((OnigRegex reg));
00773 ONIG_EXTERN
00774 int onig_number_of_captures P_((OnigRegex reg));
00775 ONIG_EXTERN
00776 int onig_number_of_capture_histories P_((OnigRegex reg));
00777 ONIG_EXTERN
00778 OnigCaptureTreeNode* onig_get_capture_tree P_((OnigRegion* region));
00779 ONIG_EXTERN
00780 int onig_capture_tree_traverse P_((OnigRegion* region, int at, int(*callback_func)(int,OnigPosition,OnigPosition,int,int,void*), void* arg));
00781 ONIG_EXTERN
00782 int onig_noname_group_capture_is_active P_((OnigRegex reg));
00783 ONIG_EXTERN
00784 OnigEncoding onig_get_encoding P_((OnigRegex reg));
00785 ONIG_EXTERN
00786 OnigOptionType onig_get_options P_((OnigRegex reg));
00787 ONIG_EXTERN
00788 OnigCaseFoldType onig_get_case_fold_flag P_((OnigRegex reg));
00789 ONIG_EXTERN
00790 const OnigSyntaxType* onig_get_syntax P_((OnigRegex reg));
00791 ONIG_EXTERN
00792 int onig_set_default_syntax P_((const OnigSyntaxType* syntax));
00793 ONIG_EXTERN
00794 void onig_copy_syntax P_((OnigSyntaxType* to, const OnigSyntaxType* from));
00795 ONIG_EXTERN
00796 unsigned int onig_get_syntax_op P_((OnigSyntaxType* syntax));
00797 ONIG_EXTERN
00798 unsigned int onig_get_syntax_op2 P_((OnigSyntaxType* syntax));
00799 ONIG_EXTERN
00800 unsigned int onig_get_syntax_behavior P_((OnigSyntaxType* syntax));
00801 ONIG_EXTERN
00802 OnigOptionType onig_get_syntax_options P_((OnigSyntaxType* syntax));
00803 ONIG_EXTERN
00804 void onig_set_syntax_op P_((OnigSyntaxType* syntax, unsigned int op));
00805 ONIG_EXTERN
00806 void onig_set_syntax_op2 P_((OnigSyntaxType* syntax, unsigned int op2));
00807 ONIG_EXTERN
00808 void onig_set_syntax_behavior P_((OnigSyntaxType* syntax, unsigned int behavior));
00809 ONIG_EXTERN
00810 void onig_set_syntax_options P_((OnigSyntaxType* syntax, OnigOptionType options));
00811 ONIG_EXTERN
00812 int onig_set_meta_char P_((OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code));
00813 ONIG_EXTERN
00814 void onig_copy_encoding P_((OnigEncoding to, OnigEncoding from));
00815 ONIG_EXTERN
00816 OnigCaseFoldType onig_get_default_case_fold_flag P_((void));
00817 ONIG_EXTERN
00818 int onig_set_default_case_fold_flag P_((OnigCaseFoldType case_fold_flag));
00819 ONIG_EXTERN
00820 unsigned int onig_get_match_stack_limit_size P_((void));
00821 ONIG_EXTERN
00822 int onig_set_match_stack_limit_size P_((unsigned int size));
00823 ONIG_EXTERN
00824 int onig_end P_((void));
00825 ONIG_EXTERN
00826 const char* onig_version P_((void));
00827 ONIG_EXTERN
00828 const char* onig_copyright P_((void));
00829
00830 #if defined __GNUC__ && __GNUC__ >= 4
00831 #pragma GCC visibility pop
00832 #endif
00833
00834 #ifdef __cplusplus
00835 #if 0
00836 {
00837 #endif
00838 }
00839 #endif
00840
00841 #endif
00842