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