summaryrefslogtreecommitdiff
path: root/ext/mbstring/oniguruma/onigcmpt200.h
blob: 4c029304b6ae52b93c9028ddb138b4ad4bfe1d2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
/**********************************************************************

  onigcmpt200.h - Oniguruma (regular expression library)

  Copyright (C) 2004  K.Kosako (kosako@sofnec.co.jp)

**********************************************************************/
#ifndef ONIGCMPT200_H
#define ONIGCMPT200_H

/* constants */
#define REG_MAX_ERROR_MESSAGE_LEN  ONIG_MAX_ERROR_MESSAGE_LEN

#define RegCharEncoding           OnigEncoding

#define REG_ENCODING_ASCII        ONIG_ENCODING_ASCII        
#define REG_ENCODING_ISO_8859_1   ONIG_ENCODING_ISO_8859_1
#define REG_ENCODING_ISO_8859_15  ONIG_ENCODING_ISO_8859_15
#define REG_ENCODING_UTF8         ONIG_ENCODING_UTF8
#define REG_ENCODING_EUC_JP       ONIG_ENCODING_EUC_JP
#define REG_ENCODING_SJIS         ONIG_ENCODING_SJIS
#define REG_ENCODING_BIG5         ONIG_ENCODING_BIG5
#define REG_ENCODING_UNDEF        ONIG_ENCODING_UNDEF

/* Don't use REGCODE_XXXX. (obsoleted) */
#define REGCODE_UNDEF         REG_ENCODING_UNDEF
#define REGCODE_ASCII         REG_ENCODING_ASCII
#define REGCODE_UTF8          REG_ENCODING_UTF8
#define REGCODE_EUCJP         REG_ENCODING_EUC_JP
#define REGCODE_SJIS          REG_ENCODING_SJIS

typedef unsigned char*   RegTransTableType;
#define RegOptionType    OnigOptionType
#define RegDistance      OnigDistance

#define REG_OPTION_DEFAULT      ONIG_OPTION_DEFAULT

/* options */
#define REG_OPTION_NONE                 ONIG_OPTION_NONE
#define REG_OPTION_SINGLELINE           ONIG_OPTION_SINGLELINE
#define REG_OPTION_MULTILINE            ONIG_OPTION_MULTILINE
#define REG_OPTION_IGNORECASE           ONIG_OPTION_IGNORECASE
#define REG_OPTION_EXTEND               ONIG_OPTION_EXTEND
#define REG_OPTION_FIND_LONGEST         ONIG_OPTION_FIND_LONGEST
#define REG_OPTION_FIND_NOT_EMPTY       ONIG_OPTION_FIND_NOT_EMPTY
#define REG_OPTION_NEGATE_SINGLELINE    ONIG_OPTION_NEGATE_SINGLELINE
#define REG_OPTION_DONT_CAPTURE_GROUP   ONIG_OPTION_DONT_CAPTURE_GROUP
#define REG_OPTION_CAPTURE_GROUP        ONIG_OPTION_CAPTURE_GROUP
#define REG_OPTION_NOTBOL               ONIG_OPTION_NOTBOL
#define REG_OPTION_NOTEOL               ONIG_OPTION_NOTEOL
#define REG_OPTION_POSIX_REGION         ONIG_OPTION_POSIX_REGION

#define REG_OPTION_ON                   ONIG_OPTION_ON 
#define REG_OPTION_OFF                  ONIG_OPTION_OFF
#define IS_REG_OPTION_ON                ONIG_IS_OPTION_ON

/* syntax */
#define RegSyntaxType OnigSyntaxType

#define RegSyntaxPosixBasic     OnigSyntaxPosixBasic
#define RegSyntaxPosixExtended  OnigSyntaxPosixExtended
#define RegSyntaxEmacs          OnigSyntaxEmacs
#define RegSyntaxGrep           OnigSyntaxGrep
#define RegSyntaxGnuRegex       OnigSyntaxGnuRegex
#define RegSyntaxJava           OnigSyntaxJava
#define RegSyntaxPerl           OnigSyntaxPerl
#define RegSyntaxRuby           OnigSyntaxRuby

#define REG_SYNTAX_POSIX_BASIC     ONIG_SYNTAX_POSIX_BASIC
#define REG_SYNTAX_POSIX_EXTENDED  ONIG_SYNTAX_POSIX_EXTENDED
#define REG_SYNTAX_EMACS           ONIG_SYNTAX_EMACS
#define REG_SYNTAX_GREP            ONIG_SYNTAX_GREP
#define REG_SYNTAX_GNU_REGEX       ONIG_SYNTAX_GNU_REGEX       
#define REG_SYNTAX_JAVA            ONIG_SYNTAX_JAVA
#define REG_SYNTAX_PERL            ONIG_SYNTAX_PERL
#define REG_SYNTAX_RUBY            ONIG_SYNTAX_RUBY

#define REG_SYNTAX_DEFAULT         ONIG_SYNTAX_DEFAULT
#define RegDefaultSyntax           OnigDefaultSyntax

/* syntax (operators) */
#define REG_SYN_OP_VARIABLE_META_CHARACTERS \
       ONIG_SYN_OP_VARIABLE_META_CHARACTERS
#define REG_SYN_OP_DOT_ANYCHAR \
       ONIG_SYN_OP_DOT_ANYCHAR
#define REG_SYN_OP_ASTERISK_ZERO_INF \
       ONIG_SYN_OP_ASTERISK_ZERO_INF
#define REG_SYN_OP_ESC_ASTERISK_ZERO_INF \
       ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF
#define REG_SYN_OP_PLUS_ONE_INF \
       ONIG_SYN_OP_PLUS_ONE_INF
#define REG_SYN_OP_ESC_PLUS_ONE_INF \
       ONIG_SYN_OP_ESC_PLUS_ONE_INF
#define REG_SYN_OP_QMARK_ZERO_ONE \
       ONIG_SYN_OP_QMARK_ZERO_ONE
#define REG_SYN_OP_ESC_QMARK_ZERO_ONE \
       ONIG_SYN_OP_ESC_QMARK_ZERO_ONE
#define REG_SYN_OP_BRACE_INTERVAL \
       ONIG_SYN_OP_BRACE_INTERVAL
#define REG_SYN_OP_ESC_BRACE_INTERVAL \
       ONIG_SYN_OP_ESC_BRACE_INTERVAL
#define REG_SYN_OP_VBAR_ALT \
       ONIG_SYN_OP_VBAR_ALT
#define REG_SYN_OP_ESC_VBAR_ALT \
       ONIG_SYN_OP_ESC_VBAR_ALT
#define REG_SYN_OP_LPAREN_SUBEXP \
       ONIG_SYN_OP_LPAREN_SUBEXP
#define REG_SYN_OP_ESC_LPAREN_SUBEXP \
       ONIG_SYN_OP_ESC_LPAREN_SUBEXP
#define REG_SYN_OP_ESC_AZ_BUF_ANCHOR \
       ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR
#define REG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR \
       ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR
#define REG_SYN_OP_DECIMAL_BACKREF \
       ONIG_SYN_OP_DECIMAL_BACKREF
#define REG_SYN_OP_BRACKET_CC \
       ONIG_SYN_OP_BRACKET_CC
#define REG_SYN_OP_ESC_W_WORD \
       ONIG_SYN_OP_ESC_W_WORD
#define REG_SYN_OP_ESC_LTGT_WORD_BEGIN_END \
       ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END
#define REG_SYN_OP_ESC_B_WORD_BOUND \
       ONIG_SYN_OP_ESC_B_WORD_BOUND
#define REG_SYN_OP_ESC_S_WHITE_SPACE \
       ONIG_SYN_OP_ESC_S_WHITE_SPACE
#define REG_SYN_OP_ESC_D_DIGIT \
       ONIG_SYN_OP_ESC_D_DIGIT
#define REG_SYN_OP_LINE_ANCHOR \
       ONIG_SYN_OP_LINE_ANCHOR
#define REG_SYN_OP_POSIX_BRACKET \
       ONIG_SYN_OP_POSIX_BRACKET
#define REG_SYN_OP_QMARK_NON_GREEDY \
       ONIG_SYN_OP_QMARK_NON_GREEDY
#define REG_SYN_OP_ESC_CONTROL_CHARS \
       ONIG_SYN_OP_ESC_CONTROL_CHARS
#define REG_SYN_OP_ESC_C_CONTROL \
       ONIG_SYN_OP_ESC_C_CONTROL
#define REG_SYN_OP_ESC_OCTAL3 \
       ONIG_SYN_OP_ESC_OCTAL3
#define REG_SYN_OP_ESC_X_HEX2 \
       ONIG_SYN_OP_ESC_X_HEX2
#define REG_SYN_OP_ESC_X_BRACE_HEX8 \
       ONIG_SYN_OP_ESC_X_BRACE_HEX8

#define REG_SYN_OP2_ESC_CAPITAL_Q_QUOTE \
       ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE
#define REG_SYN_OP2_QMARK_GROUP_EFFECT \
       ONIG_SYN_OP2_QMARK_GROUP_EFFECT
#define REG_SYN_OP2_OPTION_PERL \
       ONIG_SYN_OP2_OPTION_PERL
#define REG_SYN_OP2_OPTION_RUBY \
       ONIG_SYN_OP2_OPTION_RUBY
#define REG_SYN_OP2_PLUS_POSSESSIVE_REPEAT \
       ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT
#define REG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL \
       ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL
#define REG_SYN_OP2_CCLASS_SET_OP \
       ONIG_SYN_OP2_CCLASS_SET_OP
#define REG_SYN_OP2_QMARK_LT_NAMED_GROUP \
       ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP
#define REG_SYN_OP2_ESC_K_NAMED_BACKREF \
       ONIG_SYN_OP2_ESC_K_NAMED_BACKREF
#define REG_SYN_OP2_ESC_G_SUBEXP_CALL \
       ONIG_SYN_OP2_ESC_G_SUBEXP_CALL
#define REG_SYN_OP2_ATMARK_CAPTURE_HISTORY \
       ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY
#define REG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL \
       ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL
#define REG_SYN_OP2_ESC_CAPITAL_M_BAR_META \
       ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META
#define REG_SYN_OP2_ESC_V_VTAB \
       ONIG_SYN_OP2_ESC_V_VTAB
#define REG_SYN_OP2_ESC_U_HEX4 \
       ONIG_SYN_OP2_ESC_U_HEX4
#define REG_SYN_OP2_ESC_GNU_BUF_ANCHOR \
       ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR

#define REG_SYN_CONTEXT_INDEP_ANCHORS \
       ONIG_SYN_CONTEXT_INDEP_ANCHORS
#define REG_SYN_CONTEXT_INDEP_REPEAT_OPS \
       ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS
#define REG_SYN_CONTEXT_INVALID_REPEAT_OPS \
       ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS
#define REG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP \
       ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP
#define REG_SYN_ALLOW_INVALID_INTERVAL \
       ONIG_SYN_ALLOW_INVALID_INTERVAL
#define REG_SYN_STRICT_CHECK_BACKREF \
       ONIG_SYN_STRICT_CHECK_BACKREF
#define REG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND \
       ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND
#define REG_SYN_CAPTURE_ONLY_NAMED_GROUP \
       ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP
#define REG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME \
       ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME

#define REG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC \
       ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC
#define REG_SYN_BACKSLASH_ESCAPE_IN_CC \
       ONIG_SYN_BACKSLASH_ESCAPE_IN_CC
#define REG_SYN_ALLOW_EMPTY_RANGE_IN_CC \
       ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC
#define REG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC \
       ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC
#define REG_SYN_WARN_CC_OP_NOT_ESCAPED \
       ONIG_SYN_WARN_CC_OP_NOT_ESCAPED
#define REG_SYN_WARN_REDUNDANT_NESTED_REPEAT \
       ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT

/* meta character specifiers (regex_set_meta_char()) */
#define REG_META_CHAR_ESCAPE            ONIG_META_CHAR_ESCAPE
#define REG_META_CHAR_ANYCHAR           ONIG_META_CHAR_ANYCHAR
#define REG_META_CHAR_ANYTIME           ONIG_META_CHAR_ANYTIME
#define REG_META_CHAR_ZERO_OR_ONE_TIME  ONIG_META_CHAR_ZERO_OR_ONE_TIME
#define REG_META_CHAR_ONE_OR_MORE_TIME  ONIG_META_CHAR_ONE_OR_MORE_TIME
#define REG_META_CHAR_ANYCHAR_ANYTIME   ONIG_META_CHAR_ANYCHAR_ANYTIME

#define REG_INEFFECTIVE_META_CHAR       ONIG_INEFFECTIVE_META_CHAR

/* error codes */
#define REG_IS_PATTERN_ERROR  ONIG_IS_PATTERN_ERROR
/* normal return */
#define REG_NORMAL               ONIG_NORMAL
#define REG_MISMATCH             ONIG_MISMATCH
#define REG_NO_SUPPORT_CONFIG    ONIG_NO_SUPPORT_CONFIG
/* internal error */
#define REGERR_MEMORY                    ONIGERR_MEMORY
#define REGERR_MATCH_STACK_LIMIT_OVER    ONIGERR_MATCH_STACK_LIMIT_OVER
#define REGERR_TYPE_BUG                  ONIGERR_TYPE_BUG
#define REGERR_PARSER_BUG                ONIGERR_PARSER_BUG
#define REGERR_STACK_BUG                 ONIGERR_STACK_BUG
#define REGERR_UNDEFINED_BYTECODE        ONIGERR_UNDEFINED_BYTECODE
#define REGERR_UNEXPECTED_BYTECODE       ONIGERR_UNEXPECTED_BYTECODE
#define REGERR_DEFAULT_ENCODING_IS_NOT_SETTED \
       ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED
#define REGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR \
       ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR
/* general error */
#define REGERR_INVALID_ARGUMENT     ONIGERR_INVALID_ARGUMENT
/* errors related to thread */
#define REGERR_OVER_THREAD_PASS_LIMIT_COUNT \
       ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT


/* must be smaller than BIT_STATUS_BITS_NUM (unsigned int * 8) */
#define REG_MAX_CAPTURE_HISTORY_GROUP      ONIG_MAX_CAPTURE_HISTORY_GROUP
#define REG_IS_CAPTURE_HISTORY_GROUP       ONIG_IS_CAPTURE_HISTORY_GROUP

#define REG_REGION_NOTPOS      ONIG_REGION_NOTPOS

#define RegRegion        OnigRegion
#define RegErrorInfo     OnigErrorInfo
#define RegRepeatRange   OnigRepeatRange

#define RegWarnFunc      OnigWarnFunc
#define regex_null_warn  onig_null_warn
#define REG_NULL_WARN    ONIG_NULL_WARN

/* regex_t state */
#define REG_STATE_NORMAL      ONIG_STATE_NORMAL
#define REG_STATE_SEARCHING   ONIG_STATE_SEARCHING
#define REG_STATE_COMPILING   ONIG_STATE_COMPILING
#define REG_STATE_MODIFY      ONIG_STATE_MODIFY

#define REG_STATE     ONIG_STATE

/* Oniguruma Native API */
#define regex_init                   onig_init
#define regex_error_code_to_str      onig_error_code_to_str
#define regex_set_warn_func          onig_set_warn_func      
#define regex_set_verb_warn_func     onig_set_verb_warn_func
#define regex_new                    onig_new
#define regex_free                   onig_free
#define regex_recompile              onig_recompile
#define regex_search                 onig_search
#define regex_match                  onig_match
#define regex_region_new             onig_region_new
#define regex_region_free            onig_region_free
#define regex_region_copy            onig_region_copy
#define regex_region_clear           onig_region_clear
#define regex_region_resize          onig_region_resize
#define regex_name_to_group_numbers  onig_name_to_group_numbers
#define regex_name_to_backref_number onig_name_to_backref_number
#define regex_foreach_name           onig_foreach_name 
#define regex_number_of_names        onig_number_of_names
#define regex_get_encoding           onig_get_encoding
#define regex_get_options            onig_get_options
#define regex_get_syntax             onig_get_syntax
#define regex_set_default_syntax     onig_set_default_syntax
#define regex_copy_syntax            onig_copy_syntax 
#define regex_set_meta_char          onig_set_meta_char
#define regex_end                    onig_end
#define regex_version                onig_version

/* encoding API */
#define enc_get_prev_char_head          onigenc_get_prev_char_head
#define enc_get_left_adjust_char_head   onigenc_get_left_adjust_char_head 
#define enc_get_right_adjust_char_head  onigenc_get_right_adjust_char_head
/* obsoleted API */
#define regex_get_prev_char_head         onigenc_get_prev_char_head
#define regex_get_left_adjust_char_head  onigenc_get_left_adjust_char_head
#define regex_get_right_adjust_char_head onigenc_get_right_adjust_char_head

#endif /* ONIGCMPT200_H */