summaryrefslogtreecommitdiff
path: root/ext/mbstring/oniguruma/oniguruma.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mbstring/oniguruma/oniguruma.h')
-rw-r--r--ext/mbstring/oniguruma/oniguruma.h447
1 files changed, 0 insertions, 447 deletions
diff --git a/ext/mbstring/oniguruma/oniguruma.h b/ext/mbstring/oniguruma/oniguruma.h
deleted file mode 100644
index e5236a80a7..0000000000
--- a/ext/mbstring/oniguruma/oniguruma.h
+++ /dev/null
@@ -1,447 +0,0 @@
-/**********************************************************************
-
- oniguruma.h - Oniguruma (regular expression library)
-
- Copyright (C) 2002-2003 K.Kosako (kosako@sofnec.co.jp)
-
-**********************************************************************/
-#ifndef ONIGURUMA_H
-#define ONIGURUMA_H
-
-#include "php_compat.h"
-
-#define ONIGURUMA
-#define ONIGURUMA_VERSION_MAJOR 1
-#define ONIGURUMA_VERSION_MINOR 9
-#define ONIGURUMA_VERSION_TEENY 1
-
-/* config parameters */
-#ifndef RE_NREGS
-#define RE_NREGS 10
-#endif
-#define REG_NREGION RE_NREGS
-#define REG_MAX_BACKREF_NUM 1000
-#define REG_MAX_REPEAT_NUM 100000
-#define REG_MAX_MULTI_BYTE_RANGES_NUM 1000
-/* constants */
-#define REG_MAX_ERROR_MESSAGE_LEN 90
-
-#ifndef P_
-#ifdef __STDC__
-# define P_(args) args
-#else
-# define P_(args) ()
-#endif
-#endif
-
-#ifndef PV_
-#ifdef HAVE_STDARG_PROTOTYPES
-# define PV_(args) args
-#else
-# define PV_(args) ()
-#endif
-#endif
-
-#ifndef REG_EXTERN
-#if defined(_WIN32) && !defined(__CYGWIN__)
-#if defined(EXPORT) || defined(RUBY_EXPORT)
-#define REG_EXTERN extern __declspec(dllexport)
-#elif defined(IMPORT)
-#define REG_EXTERN extern __declspec(dllimport)
-#endif
-#endif
-#endif
-
-#ifndef REG_EXTERN
-#define REG_EXTERN extern
-#endif
-
-#define REG_CHAR_TABLE_SIZE 256
-
-#define REGCODE_UNDEF ((RegCharEncoding )0)
-
-#if defined(RUBY_PLATFORM) && defined(M17N_H)
-#define REG_RUBY_M17N
-typedef m17n_encoding* RegCharEncoding;
-#define REGCODE_DEFAULT REGCODE_UNDEF
-#else
-typedef const char* RegCharEncoding;
-#define MBCTYPE_ASCII 0
-#define MBCTYPE_EUC 1
-#define MBCTYPE_SJIS 2
-#define MBCTYPE_UTF8 3
-
-#define REGCODE_ASCII REG_MBLEN_TABLE[MBCTYPE_ASCII]
-#define REGCODE_UTF8 REG_MBLEN_TABLE[MBCTYPE_UTF8]
-#define REGCODE_EUCJP REG_MBLEN_TABLE[MBCTYPE_EUC]
-#define REGCODE_SJIS REG_MBLEN_TABLE[MBCTYPE_SJIS]
-#define REGCODE_DEFAULT REGCODE_ASCII
-
-REG_EXTERN const char REG_MBLEN_TABLE[][REG_CHAR_TABLE_SIZE];
-#endif /* else RUBY && M17N */
-
-REG_EXTERN RegCharEncoding RegDefaultCharEncoding;
-
-#if defined(RUBY_PLATFORM) && !defined(M17N_H)
-#undef ismbchar
-#define ismbchar(c) (mbclen((c)) != 1)
-#define mbclen(c) RegDefaultCharEncoding[(unsigned char )(c)]
-#endif
-
-typedef unsigned int RegOptionType;
-typedef unsigned char* RegTransTableType;
-typedef unsigned int RegDistance;
-typedef unsigned char UChar;
-
-#define REG_OPTION_DEFAULT REG_OPTION_NONE
-
-/* GNU regex options */
-#define RE_OPTION_IGNORECASE (1L)
-#define RE_OPTION_EXTENDED (RE_OPTION_IGNORECASE << 1)
-#define RE_OPTION_MULTILINE (RE_OPTION_EXTENDED << 1)
-#define RE_OPTION_SINGLELINE (RE_OPTION_MULTILINE << 1)
-#define RE_OPTION_POSIXLINE (RE_OPTION_MULTILINE|RE_OPTION_SINGLELINE)
-#define RE_OPTION_LONGEST (RE_OPTION_SINGLELINE << 1)
-
-/* options */
-#define REG_OPTION_NONE 0
-#define REG_OPTION_SINGLELINE RE_OPTION_SINGLELINE
-#define REG_OPTION_MULTILINE RE_OPTION_MULTILINE
-#define REG_OPTION_IGNORECASE RE_OPTION_IGNORECASE
-#define REG_OPTION_EXTEND RE_OPTION_EXTENDED
-#define REG_OPTION_FIND_LONGEST RE_OPTION_LONGEST
-#define REG_OPTION_FIND_NOT_EMPTY (REG_OPTION_FIND_LONGEST << 1)
-#define REG_OPTION_NEGATE_SINGLELINE (REG_OPTION_FIND_NOT_EMPTY << 1)
-#define REG_OPTION_CAPTURE_ONLY_NAMED_GROUP (REG_OPTION_NEGATE_SINGLELINE << 1)
-/* options (search time) */
-#define REG_OPTION_NOTBOL (REG_OPTION_CAPTURE_ONLY_NAMED_GROUP << 1)
-#define REG_OPTION_NOTEOL (REG_OPTION_NOTBOL << 1)
-#define REG_OPTION_POSIX_REGION (REG_OPTION_NOTEOL << 1)
-
-#define REG_OPTION_ON(options,regopt) ((options) |= (regopt))
-#define REG_OPTION_OFF(options,regopt) ((options) &= ~(regopt))
-#define IS_REG_OPTION_ON(options,option) ((options) & (option))
-
-/* syntax */
-typedef struct {
- unsigned int op;
- unsigned int op2;
- unsigned int behavior;
- RegOptionType options; /* default option */
-} RegSyntaxType;
-
-REG_EXTERN RegSyntaxType RegSyntaxPosixBasic;
-REG_EXTERN RegSyntaxType RegSyntaxPosixExtended;
-REG_EXTERN RegSyntaxType RegSyntaxEmacs;
-REG_EXTERN RegSyntaxType RegSyntaxGrep;
-REG_EXTERN RegSyntaxType RegSyntaxGnuRegex;
-REG_EXTERN RegSyntaxType RegSyntaxJava;
-REG_EXTERN RegSyntaxType RegSyntaxPerl;
-REG_EXTERN RegSyntaxType RegSyntaxRuby;
-
-/* predefined syntaxes (see regcomp.c) */
-#define REG_SYNTAX_POSIX_BASIC (&RegSyntaxPosixBasic)
-#define REG_SYNTAX_POSIX_EXTENDED (&RegSyntaxPosixExtended)
-#define REG_SYNTAX_EMACS (&RegSyntaxEmacs)
-#define REG_SYNTAX_GREP (&RegSyntaxGrep)
-#define REG_SYNTAX_GNU_REGEX (&RegSyntaxGnuRegex)
-#define REG_SYNTAX_JAVA (&RegSyntaxJava)
-#define REG_SYNTAX_PERL (&RegSyntaxPerl)
-#define REG_SYNTAX_RUBY (&RegSyntaxRuby)
-
-/* default syntax */
-#define REG_SYNTAX_DEFAULT RegDefaultSyntax
-
-REG_EXTERN RegSyntaxType* RegDefaultSyntax;
-
-/* syntax (operators) */
-#define REG_SYN_OP_ANYCHAR 1 /* . */
-#define REG_SYN_OP_0INF (1<<1) /* * */
-#define REG_SYN_OP_ESC_0INF (1<<2)
-#define REG_SYN_OP_1INF (1<<3) /* + */
-#define REG_SYN_OP_ESC_1INF (1<<4)
-#define REG_SYN_OP_01 (1<<5) /* ? */
-#define REG_SYN_OP_ESC_01 (1<<6)
-#define REG_SYN_OP_INTERVAL (1<<7) /* {lower,upper} */
-#define REG_SYN_OP_ESC_INTERVAL (1<<8)
-#define REG_SYN_OP_ALT (1<<9) /* | */
-#define REG_SYN_OP_ESC_ALT (1<<10)
-#define REG_SYN_OP_SUBEXP (1<<11) /* (...) */
-#define REG_SYN_OP_ESC_SUBEXP (1<<12)
-#define REG_SYN_OP_ESC_BUF_ANCHOR (1<<13) /* \A, \Z, \z */
-#define REG_SYN_OP_ESC_GNU_BUF_ANCHOR (1<<14) /* \`, \' */
-#define REG_SYN_OP_BACK_REF (1<<15) /* \num */
-#define REG_SYN_OP_CC (1<<16) /* [...] */
-#define REG_SYN_OP_ESC_WORD (1<<17) /* \w, \W */
-#define REG_SYN_OP_ESC_WORD_BEGIN_END (1<<18) /* \<. \> */
-#define REG_SYN_OP_ESC_WORD_BOUND (1<<19) /* \b, \B */
-#define REG_SYN_OP_ESC_WHITE_SPACE (1<<20) /* \s, \S */
-#define REG_SYN_OP_ESC_DIGIT (1<<21) /* \d, \D */
-#define REG_SYN_OP_LINE_ANCHOR (1<<22) /* ^, $ */
-#define REG_SYN_OP_POSIX_BRACKET (1<<23) /* [:xxxx:] */
-#define REG_SYN_OP_NON_GREEDY (1<<24) /* ??,*?,+?,{n,m}? */
-#define REG_SYN_OP_ESC_CONTROL_CHAR (1<<25) /* \n,\r,\t,\a ... */
-#define REG_SYN_OP_ESC_C_CONTROL (1<<26) /* \cx */
-#define REG_SYN_OP_ESC_OCTAL3 (1<<27) /* \OOO */
-#define REG_SYN_OP_ESC_X_HEX2 (1<<28) /* \xHH */
-#define REG_SYN_OP_ESC_X_BRACE_HEX8 (1<<29) /* \x{7HHHHHHH} */
-#define REG_SYN_OP_SUBEXP_EFFECT (1<<30) /* (?...) */
-#define REG_SYN_OP_QUOTE (1<<31) /* \Q...\E */
-
-#define REG_SYN_OP2_OPTION_PERL (1<<0) /* (?imsx), (?-imsx) */
-#define REG_SYN_OP2_OPTION_RUBY (1<<1) /* (?imx), (?-imx) */
-#define REG_SYN_OP2_POSSESSIVE_REPEAT (1<<2) /* ?+,*+,++ */
-#define REG_SYN_OP2_POSSESSIVE_INTERVAL (1<<3) /* {n,m}+ */
-#define REG_SYN_OP2_CCLASS_SET (1<<4) /* [...&&..[..].] */
-#define REG_SYN_OP2_NAMED_SUBEXP (1<<5) /*(?<name>.),\k<name>*/
-#define REG_SYN_OP2_SUBEXP_CALL (1<<6) /* \g<name> */
-#define REG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL (1<<7) /* \C-x */
-#define REG_SYN_OP2_ESC_M_BAR_META (1<<8) /* \M-x */
-#define REG_SYN_OP2_ESC_V_VTAB (1<<9) /* \v as VTAB */
-#define REG_SYN_OP2_ESC_U_HEX4 (1<<10) /* \uHHHH */
-
-/* syntax (behavior) */
-#define REG_SYN_CONTEXT_INDEP_ANCHORS (1<<0) /* not implemented */
-#define REG_SYN_CONTEXT_INDEP_OPS (1<<1) /* ?, *, +, {n,m} */
-#define REG_SYN_CONTEXT_INVALID_OPS (1<<2) /* error or ignore */
-#define REG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP (1<<3) /* ...)... */
-#define REG_SYN_ALLOW_INVALID_INTERVAL (1<<4) /* {??? */
-#define REG_SYN_STRICT_CHECK_BACKREF (1<<5) /* /(\1)/,/\1()/ etc.*/
-#define REG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND (1<<6) /* (?<=a|bc) */
-
-/* syntax in char class [...] */
-#define REG_SYN_WARN_FOR_CC_OP_NOT_ESCAPED (1<<10) /* [,-,] */
-#define REG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1<<11)
-#define REG_SYN_ESCAPE_IN_CC (1<<12) /* [...\w..] etc.. */
-#define REG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1<<13)
-#define REG_SYN_ALLOW_RANGE_OP_IN_CC (1<<14) /* [0-9-a] */
-
-
-/* error codes */
-#define REG_IS_PATTERN_ERROR(ecode) ((ecode) <= -100 && (ecode) > -300)
-/* normal return */
-#define REG_NORMAL 0
-#define REG_MISMATCH -1
-#define REG_NO_SUPPORT_CONFIG -2
-/* internal error */
-#define REGERR_MEMORY -5
-#define REGERR_MATCH_STACK_LIMIT_OVER -6
-#define REGERR_TYPE_BUG -10
-#define REGERR_PARSER_BUG -11
-#define REGERR_STACK_BUG -12
-#define REGERR_UNDEFINED_BYTECODE -13
-#define REGERR_UNEXPECTED_BYTECODE -14
-#define REGERR_DEFAULT_ENCODING_IS_NOT_SETTED -21
-#define REGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR -22
-/* syntax error */
-#define REGERR_END_PATTERN_AT_LEFT_BRACE -100
-#define REGERR_END_PATTERN_AT_LEFT_BRACKET -101
-#define REGERR_EMPTY_CHAR_CLASS -102
-#define REGERR_PREMATURE_END_OF_CHAR_CLASS -103
-#define REGERR_END_PATTERN_AT_BACKSLASH -104
-#define REGERR_END_PATTERN_AT_META -105
-#define REGERR_END_PATTERN_AT_CONTROL -106
-#define REGERR_META_CODE_SYNTAX -108
-#define REGERR_CONTROL_CODE_SYNTAX -109
-#define REGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE -110
-#define REGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE -111
-#define REGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS -112
-#define REGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED -113
-#define REGERR_TARGET_OF_REPEAT_OPERATOR_INVALID -114
-#define REGERR_NESTED_REPEAT_OPERATOR -115
-#define REGERR_UNMATCHED_CLOSE_PARENTHESIS -116
-#define REGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS -117
-#define REGERR_END_PATTERN_IN_GROUP -118
-#define REGERR_UNDEFINED_GROUP_OPTION -119
-#define REGERR_INVALID_POSIX_BRACKET_TYPE -121
-#define REGERR_INVALID_LOOK_BEHIND_PATTERN -122
-#define REGERR_INVALID_REPEAT_RANGE_PATTERN -123
-/* values error (syntax error) */
-#define REGERR_TOO_BIG_NUMBER -200
-#define REGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE -201
-#define REGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE -202
-#define REGERR_EMPTY_RANGE_IN_CHAR_CLASS -203
-#define REGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE -204
-#define REGERR_TOO_MANY_MULTI_BYTE_RANGES -205
-#define REGERR_TOO_SHORT_MULTI_BYTE_STRING -206
-#define REGERR_TOO_BIG_BACKREF_NUMBER -207
-#define REGERR_INVALID_BACKREF -208
-#define REGERR_TOO_BIG_WIDE_CHAR_VALUE -209
-#define REGERR_TOO_LONG_WIDE_CHAR_VALUE -210
-#define REGERR_INVALID_WIDE_CHAR_VALUE -211
-#define REGERR_INVALID_SUBEXP_NAME -212
-#define REGERR_UNDEFINED_NAME_REFERENCE -213
-#define REGERR_UNDEFINED_GROUP_REFERENCE -214
-#define REGERR_MULTIPLEX_DEFINITION_NAME_CALL -215
-#define REGERR_NEVER_ENDING_RECURSION -216
-/* errors related to thread */
-#define REGERR_OVER_THREAD_PASS_LIMIT_COUNT -301
-
-
-/* match result region type */
-struct re_registers {
- int allocated;
- int num_regs;
- int* beg;
- int* end;
-};
-
-#define REG_REGION_NOTPOS -1
-
-typedef struct re_registers RegRegion;
-
-typedef struct {
- UChar* par;
- UChar* par_end;
-} RegErrorInfo;
-
-typedef struct {
- int lower;
- int upper;
-} RegRepeatRange;
-
-/* regex_t state */
-#define REG_STATE_NORMAL 0
-#define REG_STATE_SEARCHING 1
-#define REG_STATE_COMPILING -1
-#define REG_STATE_MODIFY -2
-
-#define REG_STATE(regex) \
- ((regex)->state > 0 ? REG_STATE_SEARCHING : (regex)->state)
-
-typedef struct re_pattern_buffer {
- /* common members in BBuf(bytes-buffer) type */
- unsigned char* p; /* compiled pattern */
- unsigned int used; /* used space for p */
- unsigned int alloc; /* allocated space for p */
-
- int state; /* normal, searching, compiling */
- int num_mem; /* used memory(...) num counted from 1 */
- int num_repeat; /* OP_REPEAT/OP_REPEAT_NG id-counter */
- int num_null_check; /* OP_NULL_CHECK_START/END id counter */
- int num_call; /* number of subexp call */
- unsigned int backtrack_mem;
- int stack_pop_level;
- int repeat_range_alloc;
- RegRepeatRange* repeat_range;
-
- RegCharEncoding enc;
- RegOptionType options;
- RegSyntaxType* syntax;
- void* name_table;
-
- /* optimize info (string search and char-map and anchor) */
- int optimize; /* optimize flag */
- int threshold_len; /* search str-length for apply optimize */
- int anchor; /* BEGIN_BUF, BEGIN_POS, (SEMI_)END_BUF */
- RegDistance anchor_dmin; /* (SEMI_)END_BUF anchor distance */
- RegDistance anchor_dmax; /* (SEMI_)END_BUF anchor distance */
- int sub_anchor; /* start-anchor for exact or map */
- unsigned char *exact;
- unsigned char *exact_end;
- unsigned char map[REG_CHAR_TABLE_SIZE]; /* used as BM skip or char-map */
- int *int_map; /* BM skip for exact_len > 255 */
- int *int_map_backward; /* BM skip for backward search */
- RegDistance dmin; /* min-distance of exact or map */
- RegDistance dmax; /* max-distance of exact or map */
-
- /* regex_t link chain */
- struct re_pattern_buffer* chain; /* escape compile-conflict on multi-thread */
-} regex_t;
-
-#ifdef RUBY_PLATFORM
-#define re_mbcinit ruby_re_mbcinit
-#define re_compile_pattern ruby_re_compile_pattern
-#define re_recompile_pattern ruby_re_recompile_pattern
-#define re_free_pattern ruby_re_free_pattern
-#define re_adjust_startpos ruby_re_adjust_startpos
-#define re_search ruby_re_search
-#define re_match ruby_re_match
-#define re_set_casetable ruby_re_set_casetable
-#define re_copy_registers ruby_re_copy_registers
-#define re_free_registers ruby_re_free_registers
-#define register_info_type ruby_register_info_type
-#define re_error_code_to_str ruby_error_code_to_str
-
-#define ruby_error_code_to_str regex_error_code_to_str
-#define ruby_re_copy_registers regex_region_copy
-#else
-#define re_error_code_to_str regex_error_code_to_str
-#define re_copy_registers regex_region_copy
-#endif
-
-/* Oniguruma Native API */
-REG_EXTERN
-int regex_init P_((void));
-REG_EXTERN
-int regex_error_code_to_str PV_((UChar* s, int err_code, ...));
-REG_EXTERN
-int regex_new P_((regex_t**, UChar* pattern, UChar* pattern_end, RegOptionType option, RegCharEncoding code, RegSyntaxType* syntax, RegErrorInfo* einfo));
-REG_EXTERN
-void regex_free P_((regex_t*));
-REG_EXTERN
-int regex_recompile P_((regex_t*, UChar* pattern, UChar* pattern_end, RegOptionType option, RegCharEncoding code, RegSyntaxType* syntax, RegErrorInfo* einfo));
-REG_EXTERN
-int regex_search P_((regex_t*, UChar* str, UChar* end, UChar* start, UChar* range, RegRegion* region, RegOptionType option));
-REG_EXTERN
-int regex_match P_((regex_t*, UChar* str, UChar* end, UChar* at, RegRegion* region, RegOptionType option));
-REG_EXTERN
-RegRegion* regex_region_new P_((void));
-REG_EXTERN
-void regex_region_free P_((RegRegion* region, int free_self));
-REG_EXTERN
-void regex_region_copy P_((RegRegion* to, RegRegion* from));
-REG_EXTERN
-void regex_region_clear P_((RegRegion* region));
-REG_EXTERN
-int regex_region_resize P_((RegRegion* region, int n));
-REG_EXTERN
-int regex_name_to_group_numbers P_((regex_t* reg, UChar* name, UChar* name_end,
- int** nums));
-REG_EXTERN
-int regex_foreach_name P_((regex_t* reg, int (*func)(UChar*,int,int*,void*), void* arg));
-REG_EXTERN
-UChar* regex_get_prev_char_head P_((RegCharEncoding code, UChar* start, UChar* s));
-REG_EXTERN
-UChar* regex_get_left_adjust_char_head P_((RegCharEncoding code, UChar* start, UChar* s));
-REG_EXTERN
-UChar* regex_get_right_adjust_char_head P_((RegCharEncoding code, UChar* start, UChar* s));
-REG_EXTERN
-void regex_set_default_trans_table P_((UChar* table));
-REG_EXTERN
-int regex_set_default_syntax P_((RegSyntaxType* syntax));
-REG_EXTERN
-int regex_end P_((void));
-REG_EXTERN
-const char* regex_version P_((void));
-
-
-/* GNU regex API */
-#ifdef REG_RUBY_M17N
-REG_EXTERN
-void re_mbcinit P_((RegCharEncoding));
-#else
-REG_EXTERN
-void re_mbcinit P_((int));
-#endif
-
-REG_EXTERN
-int re_compile_pattern P_((const char*, int, struct re_pattern_buffer*, char* err_buf));
-REG_EXTERN
-int re_recompile_pattern P_((const char*, int, struct re_pattern_buffer*, char* err_buf));
-REG_EXTERN
-void re_free_pattern P_((struct re_pattern_buffer*));
-REG_EXTERN
-int re_adjust_startpos P_((struct re_pattern_buffer*, const char*, int, int, int));
-REG_EXTERN
-int re_search P_((struct re_pattern_buffer*, const char*, int, int, int, struct re_registers*));
-REG_EXTERN
-int re_match P_((struct re_pattern_buffer*, const char *, int, int, struct re_registers*));
-REG_EXTERN
-void re_set_casetable P_((const char*));
-REG_EXTERN
-void re_free_registers P_((struct re_registers*));
-REG_EXTERN
-int re_alloc_pattern P_((struct re_pattern_buffer**)); /* added */
-
-#endif /* ONIGURUMA_H */