debugger-ruby_core_source 1.1.5 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +3 -0
- data/README.md +1 -1
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/addr2line.h +21 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/constant.h +34 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/debug.h +41 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/dln.h +50 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/encdb.h +167 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/eval_intern.h +234 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/gc.h +99 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/id.h +175 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/insns.inc +179 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/insns_info.inc +695 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/internal.h +239 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/iseq.h +127 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/known_errors.inc +731 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/method.h +105 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/node.h +503 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/node_name.inc +208 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/opt_sc.inc +670 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/optinsn.inc +30 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/optunifs.inc +116 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/parse.h +302 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/regenc.h +219 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/regint.h +850 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/regparse.h +362 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/revision.h +1 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/ruby_atomic.h +115 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/siphash.h +48 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/thread_pthread.h +51 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/thread_win32.h +40 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/timev.h +21 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/transcode_data.h +117 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/transdb.h +189 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/version.h +52 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/vm.inc +3054 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/vm_core.h +756 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/vm_exec.h +184 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/vm_insnhelper.h +220 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/vm_opts.h +51 -0
- data/lib/debugger/ruby_core_source/ruby-1.9.3-p362/vmtc.inc +97 -0
- data/lib/debugger/ruby_core_source/version.rb +1 -1
- metadata +40 -2
@@ -0,0 +1,30 @@
|
|
1
|
+
/* -*-c-*- *********************************************************/
|
2
|
+
/*******************************************************************/
|
3
|
+
/*******************************************************************/
|
4
|
+
/**
|
5
|
+
This file is for threaded code.
|
6
|
+
|
7
|
+
----
|
8
|
+
This file is auto generated by insns2vm.rb
|
9
|
+
DO NOT TOUCH!
|
10
|
+
|
11
|
+
If you want to fix something, you must edit 'template/optinsn.inc.tmpl'
|
12
|
+
or rb/insns2vm.rb
|
13
|
+
*/
|
14
|
+
|
15
|
+
static INSN *
|
16
|
+
insn_operands_unification(INSN *insnobj){
|
17
|
+
#ifdef OPT_OPERANDS_UNIFICATION
|
18
|
+
/* optimize rule */
|
19
|
+
switch(insnobj->insn_id){
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
default:
|
24
|
+
/* do nothing */;
|
25
|
+
break;
|
26
|
+
}
|
27
|
+
#endif
|
28
|
+
return insnobj;
|
29
|
+
}
|
30
|
+
|
@@ -0,0 +1,116 @@
|
|
1
|
+
/* -*-c-*- *********************************************************/
|
2
|
+
/*******************************************************************/
|
3
|
+
/*******************************************************************/
|
4
|
+
/**
|
5
|
+
This file is for threaded code.
|
6
|
+
|
7
|
+
----
|
8
|
+
This file is auto generated by insns2vm.rb
|
9
|
+
DO NOT TOUCH!
|
10
|
+
|
11
|
+
If you want to fix something, you must edit 'template/optunifs.inc.tmpl'
|
12
|
+
or rb/insns2vm.rb
|
13
|
+
*/
|
14
|
+
|
15
|
+
/*
|
16
|
+
static const int UNIFIED_insn_name_1[] = {id, size, ...};
|
17
|
+
static const int UNIFIED_insn_name_2[] = {id, size, ...};
|
18
|
+
...
|
19
|
+
|
20
|
+
static const int *const UNIFIED_insn_name[] = {size,
|
21
|
+
UNIFIED_insn_name_1,
|
22
|
+
UNIFIED_insn_name_2, ...};
|
23
|
+
...
|
24
|
+
|
25
|
+
static const int *const *const unified_insns_data[] = {
|
26
|
+
UNIFIED_insn_nameA,
|
27
|
+
UNIFIED_insn_nameB, ...};
|
28
|
+
*/
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
static const int *const *const unified_insns_data[] = {
|
33
|
+
0,
|
34
|
+
0,
|
35
|
+
0,
|
36
|
+
0,
|
37
|
+
0,
|
38
|
+
0,
|
39
|
+
0,
|
40
|
+
0,
|
41
|
+
0,
|
42
|
+
0,
|
43
|
+
0,
|
44
|
+
0,
|
45
|
+
0,
|
46
|
+
0,
|
47
|
+
0,
|
48
|
+
0,
|
49
|
+
0,
|
50
|
+
0,
|
51
|
+
0,
|
52
|
+
0,
|
53
|
+
0,
|
54
|
+
0,
|
55
|
+
0,
|
56
|
+
0,
|
57
|
+
0,
|
58
|
+
0,
|
59
|
+
0,
|
60
|
+
0,
|
61
|
+
0,
|
62
|
+
0,
|
63
|
+
0,
|
64
|
+
0,
|
65
|
+
0,
|
66
|
+
0,
|
67
|
+
0,
|
68
|
+
0,
|
69
|
+
0,
|
70
|
+
0,
|
71
|
+
0,
|
72
|
+
0,
|
73
|
+
0,
|
74
|
+
0,
|
75
|
+
0,
|
76
|
+
0,
|
77
|
+
0,
|
78
|
+
0,
|
79
|
+
0,
|
80
|
+
0,
|
81
|
+
0,
|
82
|
+
0,
|
83
|
+
0,
|
84
|
+
0,
|
85
|
+
0,
|
86
|
+
0,
|
87
|
+
0,
|
88
|
+
0,
|
89
|
+
0,
|
90
|
+
0,
|
91
|
+
0,
|
92
|
+
0,
|
93
|
+
0,
|
94
|
+
0,
|
95
|
+
0,
|
96
|
+
0,
|
97
|
+
0,
|
98
|
+
0,
|
99
|
+
0,
|
100
|
+
0,
|
101
|
+
0,
|
102
|
+
0,
|
103
|
+
0,
|
104
|
+
0,
|
105
|
+
0,
|
106
|
+
0,
|
107
|
+
0,
|
108
|
+
0,
|
109
|
+
0,
|
110
|
+
0,
|
111
|
+
0,
|
112
|
+
0};
|
113
|
+
|
114
|
+
|
115
|
+
#undef GET_INSN_NAME
|
116
|
+
|
@@ -0,0 +1,302 @@
|
|
1
|
+
/* A Bison parser, made by GNU Bison 2.3. */
|
2
|
+
|
3
|
+
/* Skeleton interface for Bison's Yacc-like parsers in C
|
4
|
+
|
5
|
+
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
6
|
+
Free Software Foundation, Inc.
|
7
|
+
|
8
|
+
This program is free software; you can redistribute it and/or modify
|
9
|
+
it under the terms of the GNU General Public License as published by
|
10
|
+
the Free Software Foundation; either version 2, or (at your option)
|
11
|
+
any later version.
|
12
|
+
|
13
|
+
This program is distributed in the hope that it will be useful,
|
14
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
GNU General Public License for more details.
|
17
|
+
|
18
|
+
You should have received a copy of the GNU General Public License
|
19
|
+
along with this program; if not, write to the Free Software
|
20
|
+
Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
21
|
+
Boston, MA 02110-1301, USA. */
|
22
|
+
|
23
|
+
/* As a special exception, you may create a larger work that contains
|
24
|
+
part or all of the Bison parser skeleton and distribute that work
|
25
|
+
under terms of your choice, so long as that work isn't itself a
|
26
|
+
parser generator using the skeleton or a modified version thereof
|
27
|
+
as a parser skeleton. Alternatively, if you modify or redistribute
|
28
|
+
the parser skeleton itself, you may (at your option) remove this
|
29
|
+
special exception, which will cause the skeleton and the resulting
|
30
|
+
Bison output files to be licensed under the GNU General Public
|
31
|
+
License without this special exception.
|
32
|
+
|
33
|
+
This special exception was added by the Free Software Foundation in
|
34
|
+
version 2.2 of Bison. */
|
35
|
+
|
36
|
+
/* Tokens. */
|
37
|
+
#ifndef YYTOKENTYPE
|
38
|
+
# define YYTOKENTYPE
|
39
|
+
/* Put the tokens into the symbol table, so that GDB and other debuggers
|
40
|
+
know about them. */
|
41
|
+
enum yytokentype {
|
42
|
+
keyword_class = 258,
|
43
|
+
keyword_module = 259,
|
44
|
+
keyword_def = 260,
|
45
|
+
keyword_undef = 261,
|
46
|
+
keyword_begin = 262,
|
47
|
+
keyword_rescue = 263,
|
48
|
+
keyword_ensure = 264,
|
49
|
+
keyword_end = 265,
|
50
|
+
keyword_if = 266,
|
51
|
+
keyword_unless = 267,
|
52
|
+
keyword_then = 268,
|
53
|
+
keyword_elsif = 269,
|
54
|
+
keyword_else = 270,
|
55
|
+
keyword_case = 271,
|
56
|
+
keyword_when = 272,
|
57
|
+
keyword_while = 273,
|
58
|
+
keyword_until = 274,
|
59
|
+
keyword_for = 275,
|
60
|
+
keyword_break = 276,
|
61
|
+
keyword_next = 277,
|
62
|
+
keyword_redo = 278,
|
63
|
+
keyword_retry = 279,
|
64
|
+
keyword_in = 280,
|
65
|
+
keyword_do = 281,
|
66
|
+
keyword_do_cond = 282,
|
67
|
+
keyword_do_block = 283,
|
68
|
+
keyword_do_LAMBDA = 284,
|
69
|
+
keyword_return = 285,
|
70
|
+
keyword_yield = 286,
|
71
|
+
keyword_super = 287,
|
72
|
+
keyword_self = 288,
|
73
|
+
keyword_nil = 289,
|
74
|
+
keyword_true = 290,
|
75
|
+
keyword_false = 291,
|
76
|
+
keyword_and = 292,
|
77
|
+
keyword_or = 293,
|
78
|
+
keyword_not = 294,
|
79
|
+
modifier_if = 295,
|
80
|
+
modifier_unless = 296,
|
81
|
+
modifier_while = 297,
|
82
|
+
modifier_until = 298,
|
83
|
+
modifier_rescue = 299,
|
84
|
+
keyword_alias = 300,
|
85
|
+
keyword_defined = 301,
|
86
|
+
keyword_BEGIN = 302,
|
87
|
+
keyword_END = 303,
|
88
|
+
keyword__LINE__ = 304,
|
89
|
+
keyword__FILE__ = 305,
|
90
|
+
keyword__ENCODING__ = 306,
|
91
|
+
tIDENTIFIER = 307,
|
92
|
+
tFID = 308,
|
93
|
+
tGVAR = 309,
|
94
|
+
tIVAR = 310,
|
95
|
+
tCONSTANT = 311,
|
96
|
+
tCVAR = 312,
|
97
|
+
tLABEL = 313,
|
98
|
+
tINTEGER = 314,
|
99
|
+
tFLOAT = 315,
|
100
|
+
tSTRING_CONTENT = 316,
|
101
|
+
tCHAR = 317,
|
102
|
+
tNTH_REF = 318,
|
103
|
+
tBACK_REF = 319,
|
104
|
+
tREGEXP_END = 320,
|
105
|
+
tUPLUS = 321,
|
106
|
+
tUMINUS = 322,
|
107
|
+
tPOW = 323,
|
108
|
+
tCMP = 324,
|
109
|
+
tEQ = 325,
|
110
|
+
tEQQ = 326,
|
111
|
+
tNEQ = 327,
|
112
|
+
tGEQ = 328,
|
113
|
+
tLEQ = 329,
|
114
|
+
tANDOP = 330,
|
115
|
+
tOROP = 331,
|
116
|
+
tMATCH = 332,
|
117
|
+
tNMATCH = 333,
|
118
|
+
tDOT2 = 334,
|
119
|
+
tDOT3 = 335,
|
120
|
+
tAREF = 336,
|
121
|
+
tASET = 337,
|
122
|
+
tLSHFT = 338,
|
123
|
+
tRSHFT = 339,
|
124
|
+
tCOLON2 = 340,
|
125
|
+
tCOLON3 = 341,
|
126
|
+
tOP_ASGN = 342,
|
127
|
+
tASSOC = 343,
|
128
|
+
tLPAREN = 344,
|
129
|
+
tLPAREN_ARG = 345,
|
130
|
+
tRPAREN = 346,
|
131
|
+
tLBRACK = 347,
|
132
|
+
tLBRACE = 348,
|
133
|
+
tLBRACE_ARG = 349,
|
134
|
+
tSTAR = 350,
|
135
|
+
tAMPER = 351,
|
136
|
+
tLAMBDA = 352,
|
137
|
+
tSYMBEG = 353,
|
138
|
+
tSTRING_BEG = 354,
|
139
|
+
tXSTRING_BEG = 355,
|
140
|
+
tREGEXP_BEG = 356,
|
141
|
+
tWORDS_BEG = 357,
|
142
|
+
tQWORDS_BEG = 358,
|
143
|
+
tSTRING_DBEG = 359,
|
144
|
+
tSTRING_DVAR = 360,
|
145
|
+
tSTRING_END = 361,
|
146
|
+
tLAMBEG = 362,
|
147
|
+
tLOWEST = 363,
|
148
|
+
tUMINUS_NUM = 364,
|
149
|
+
idNULL = 365,
|
150
|
+
idRespond_to = 366,
|
151
|
+
idIFUNC = 367,
|
152
|
+
idCFUNC = 368,
|
153
|
+
id_core_set_method_alias = 369,
|
154
|
+
id_core_set_variable_alias = 370,
|
155
|
+
id_core_undef_method = 371,
|
156
|
+
id_core_define_method = 372,
|
157
|
+
id_core_define_singleton_method = 373,
|
158
|
+
id_core_set_postexe = 374,
|
159
|
+
tLAST_TOKEN = 375
|
160
|
+
};
|
161
|
+
#endif
|
162
|
+
/* Tokens. */
|
163
|
+
#define keyword_class 258
|
164
|
+
#define keyword_module 259
|
165
|
+
#define keyword_def 260
|
166
|
+
#define keyword_undef 261
|
167
|
+
#define keyword_begin 262
|
168
|
+
#define keyword_rescue 263
|
169
|
+
#define keyword_ensure 264
|
170
|
+
#define keyword_end 265
|
171
|
+
#define keyword_if 266
|
172
|
+
#define keyword_unless 267
|
173
|
+
#define keyword_then 268
|
174
|
+
#define keyword_elsif 269
|
175
|
+
#define keyword_else 270
|
176
|
+
#define keyword_case 271
|
177
|
+
#define keyword_when 272
|
178
|
+
#define keyword_while 273
|
179
|
+
#define keyword_until 274
|
180
|
+
#define keyword_for 275
|
181
|
+
#define keyword_break 276
|
182
|
+
#define keyword_next 277
|
183
|
+
#define keyword_redo 278
|
184
|
+
#define keyword_retry 279
|
185
|
+
#define keyword_in 280
|
186
|
+
#define keyword_do 281
|
187
|
+
#define keyword_do_cond 282
|
188
|
+
#define keyword_do_block 283
|
189
|
+
#define keyword_do_LAMBDA 284
|
190
|
+
#define keyword_return 285
|
191
|
+
#define keyword_yield 286
|
192
|
+
#define keyword_super 287
|
193
|
+
#define keyword_self 288
|
194
|
+
#define keyword_nil 289
|
195
|
+
#define keyword_true 290
|
196
|
+
#define keyword_false 291
|
197
|
+
#define keyword_and 292
|
198
|
+
#define keyword_or 293
|
199
|
+
#define keyword_not 294
|
200
|
+
#define modifier_if 295
|
201
|
+
#define modifier_unless 296
|
202
|
+
#define modifier_while 297
|
203
|
+
#define modifier_until 298
|
204
|
+
#define modifier_rescue 299
|
205
|
+
#define keyword_alias 300
|
206
|
+
#define keyword_defined 301
|
207
|
+
#define keyword_BEGIN 302
|
208
|
+
#define keyword_END 303
|
209
|
+
#define keyword__LINE__ 304
|
210
|
+
#define keyword__FILE__ 305
|
211
|
+
#define keyword__ENCODING__ 306
|
212
|
+
#define tIDENTIFIER 307
|
213
|
+
#define tFID 308
|
214
|
+
#define tGVAR 309
|
215
|
+
#define tIVAR 310
|
216
|
+
#define tCONSTANT 311
|
217
|
+
#define tCVAR 312
|
218
|
+
#define tLABEL 313
|
219
|
+
#define tINTEGER 314
|
220
|
+
#define tFLOAT 315
|
221
|
+
#define tSTRING_CONTENT 316
|
222
|
+
#define tCHAR 317
|
223
|
+
#define tNTH_REF 318
|
224
|
+
#define tBACK_REF 319
|
225
|
+
#define tREGEXP_END 320
|
226
|
+
#define tUPLUS 321
|
227
|
+
#define tUMINUS 322
|
228
|
+
#define tPOW 323
|
229
|
+
#define tCMP 324
|
230
|
+
#define tEQ 325
|
231
|
+
#define tEQQ 326
|
232
|
+
#define tNEQ 327
|
233
|
+
#define tGEQ 328
|
234
|
+
#define tLEQ 329
|
235
|
+
#define tANDOP 330
|
236
|
+
#define tOROP 331
|
237
|
+
#define tMATCH 332
|
238
|
+
#define tNMATCH 333
|
239
|
+
#define tDOT2 334
|
240
|
+
#define tDOT3 335
|
241
|
+
#define tAREF 336
|
242
|
+
#define tASET 337
|
243
|
+
#define tLSHFT 338
|
244
|
+
#define tRSHFT 339
|
245
|
+
#define tCOLON2 340
|
246
|
+
#define tCOLON3 341
|
247
|
+
#define tOP_ASGN 342
|
248
|
+
#define tASSOC 343
|
249
|
+
#define tLPAREN 344
|
250
|
+
#define tLPAREN_ARG 345
|
251
|
+
#define tRPAREN 346
|
252
|
+
#define tLBRACK 347
|
253
|
+
#define tLBRACE 348
|
254
|
+
#define tLBRACE_ARG 349
|
255
|
+
#define tSTAR 350
|
256
|
+
#define tAMPER 351
|
257
|
+
#define tLAMBDA 352
|
258
|
+
#define tSYMBEG 353
|
259
|
+
#define tSTRING_BEG 354
|
260
|
+
#define tXSTRING_BEG 355
|
261
|
+
#define tREGEXP_BEG 356
|
262
|
+
#define tWORDS_BEG 357
|
263
|
+
#define tQWORDS_BEG 358
|
264
|
+
#define tSTRING_DBEG 359
|
265
|
+
#define tSTRING_DVAR 360
|
266
|
+
#define tSTRING_END 361
|
267
|
+
#define tLAMBEG 362
|
268
|
+
#define tLOWEST 363
|
269
|
+
#define tUMINUS_NUM 364
|
270
|
+
#define idNULL 365
|
271
|
+
#define idRespond_to 366
|
272
|
+
#define idIFUNC 367
|
273
|
+
#define idCFUNC 368
|
274
|
+
#define id_core_set_method_alias 369
|
275
|
+
#define id_core_set_variable_alias 370
|
276
|
+
#define id_core_undef_method 371
|
277
|
+
#define id_core_define_method 372
|
278
|
+
#define id_core_define_singleton_method 373
|
279
|
+
#define id_core_set_postexe 374
|
280
|
+
#define tLAST_TOKEN 375
|
281
|
+
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
286
|
+
typedef union YYSTYPE
|
287
|
+
{
|
288
|
+
VALUE val;
|
289
|
+
NODE *node;
|
290
|
+
ID id;
|
291
|
+
int num;
|
292
|
+
const struct vtable *vars;
|
293
|
+
}
|
294
|
+
/* Line 1489 of yacc.c. */
|
295
|
+
YYSTYPE;
|
296
|
+
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
297
|
+
# define YYSTYPE_IS_DECLARED 1
|
298
|
+
# define YYSTYPE_IS_TRIVIAL 1
|
299
|
+
#endif
|
300
|
+
|
301
|
+
|
302
|
+
|
@@ -0,0 +1,219 @@
|
|
1
|
+
#ifndef ONIGURUMA_REGENC_H
|
2
|
+
#define ONIGURUMA_REGENC_H
|
3
|
+
/**********************************************************************
|
4
|
+
regenc.h - Oniguruma (regular expression library)
|
5
|
+
**********************************************************************/
|
6
|
+
/*-
|
7
|
+
* Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
|
8
|
+
* All rights reserved.
|
9
|
+
*
|
10
|
+
* Redistribution and use in source and binary forms, with or without
|
11
|
+
* modification, are permitted provided that the following conditions
|
12
|
+
* are met:
|
13
|
+
* 1. Redistributions of source code must retain the above copyright
|
14
|
+
* notice, this list of conditions and the following disclaimer.
|
15
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
16
|
+
* notice, this list of conditions and the following disclaimer in the
|
17
|
+
* documentation and/or other materials provided with the distribution.
|
18
|
+
*
|
19
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
20
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
23
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
24
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
25
|
+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
26
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
27
|
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
28
|
+
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
29
|
+
* SUCH DAMAGE.
|
30
|
+
*/
|
31
|
+
#ifndef REGINT_H
|
32
|
+
#ifndef RUBY_EXTERN
|
33
|
+
#include "ruby/config.h"
|
34
|
+
#include "ruby/defines.h"
|
35
|
+
#endif
|
36
|
+
#ifdef ONIG_ESCAPE_UCHAR_COLLISION
|
37
|
+
#undef ONIG_ESCAPE_UCHAR_COLLISION
|
38
|
+
#endif
|
39
|
+
#endif
|
40
|
+
#include "ruby/oniguruma.h"
|
41
|
+
|
42
|
+
#if defined __GNUC__ && __GNUC__ >= 4
|
43
|
+
#pragma GCC visibility push(default)
|
44
|
+
#endif
|
45
|
+
|
46
|
+
typedef struct {
|
47
|
+
OnigCodePoint from;
|
48
|
+
OnigCodePoint to;
|
49
|
+
} OnigPairCaseFoldCodes;
|
50
|
+
|
51
|
+
|
52
|
+
#ifndef NULL
|
53
|
+
#define NULL ((void* )0)
|
54
|
+
#endif
|
55
|
+
|
56
|
+
#ifndef TRUE
|
57
|
+
#define TRUE 1
|
58
|
+
#endif
|
59
|
+
|
60
|
+
#ifndef FALSE
|
61
|
+
#define FALSE 0
|
62
|
+
#endif
|
63
|
+
|
64
|
+
#ifndef ARG_UNUSED
|
65
|
+
#if defined(__GNUC__)
|
66
|
+
# define ARG_UNUSED __attribute__ ((unused))
|
67
|
+
#else
|
68
|
+
# define ARG_UNUSED
|
69
|
+
#endif
|
70
|
+
#endif
|
71
|
+
|
72
|
+
#define ONIG_IS_NULL(p) (((void*)(p)) == (void*)0)
|
73
|
+
#define ONIG_IS_NOT_NULL(p) (((void*)(p)) != (void*)0)
|
74
|
+
#define ONIG_CHECK_NULL_RETURN(p) if (ONIG_IS_NULL(p)) return NULL
|
75
|
+
#define ONIG_CHECK_NULL_RETURN_VAL(p,val) if (ONIG_IS_NULL(p)) return (val)
|
76
|
+
|
77
|
+
#define enclen(enc,p,e) ((enc->max_enc_len == enc->min_enc_len) ? enc->min_enc_len : ONIGENC_MBC_ENC_LEN(enc,p,e))
|
78
|
+
|
79
|
+
/* character types bit flag */
|
80
|
+
#define BIT_CTYPE_NEWLINE (1<< ONIGENC_CTYPE_NEWLINE)
|
81
|
+
#define BIT_CTYPE_ALPHA (1<< ONIGENC_CTYPE_ALPHA)
|
82
|
+
#define BIT_CTYPE_BLANK (1<< ONIGENC_CTYPE_BLANK)
|
83
|
+
#define BIT_CTYPE_CNTRL (1<< ONIGENC_CTYPE_CNTRL)
|
84
|
+
#define BIT_CTYPE_DIGIT (1<< ONIGENC_CTYPE_DIGIT)
|
85
|
+
#define BIT_CTYPE_GRAPH (1<< ONIGENC_CTYPE_GRAPH)
|
86
|
+
#define BIT_CTYPE_LOWER (1<< ONIGENC_CTYPE_LOWER)
|
87
|
+
#define BIT_CTYPE_PRINT (1<< ONIGENC_CTYPE_PRINT)
|
88
|
+
#define BIT_CTYPE_PUNCT (1<< ONIGENC_CTYPE_PUNCT)
|
89
|
+
#define BIT_CTYPE_SPACE (1<< ONIGENC_CTYPE_SPACE)
|
90
|
+
#define BIT_CTYPE_UPPER (1<< ONIGENC_CTYPE_UPPER)
|
91
|
+
#define BIT_CTYPE_XDIGIT (1<< ONIGENC_CTYPE_XDIGIT)
|
92
|
+
#define BIT_CTYPE_WORD (1<< ONIGENC_CTYPE_WORD)
|
93
|
+
#define BIT_CTYPE_ALNUM (1<< ONIGENC_CTYPE_ALNUM)
|
94
|
+
#define BIT_CTYPE_ASCII (1<< ONIGENC_CTYPE_ASCII)
|
95
|
+
|
96
|
+
#define CTYPE_TO_BIT(ctype) (1<<(ctype))
|
97
|
+
#define CTYPE_IS_WORD_GRAPH_PRINT(ctype) \
|
98
|
+
((ctype) == ONIGENC_CTYPE_WORD || (ctype) == ONIGENC_CTYPE_GRAPH ||\
|
99
|
+
(ctype) == ONIGENC_CTYPE_PRINT)
|
100
|
+
|
101
|
+
|
102
|
+
typedef struct {
|
103
|
+
const UChar *name;
|
104
|
+
int ctype;
|
105
|
+
short int len;
|
106
|
+
} PosixBracketEntryType;
|
107
|
+
|
108
|
+
#define PosixBracketEntryInit(name, ctype) {(const UChar *)name, ctype, (short int)(sizeof(name) - 1)}
|
109
|
+
|
110
|
+
/* #define USE_CRNL_AS_LINE_TERMINATOR */
|
111
|
+
#define USE_UNICODE_PROPERTIES
|
112
|
+
/* #define USE_UNICODE_CASE_FOLD_TURKISH_AZERI */
|
113
|
+
/* #define USE_UNICODE_ALL_LINE_TERMINATORS */ /* see Unicode.org UTF#18 */
|
114
|
+
|
115
|
+
|
116
|
+
#define ONIG_ENCODING_INIT_DEFAULT ONIG_ENCODING_ASCII
|
117
|
+
|
118
|
+
/* for encoding system implementation (internal) */
|
119
|
+
ONIG_EXTERN int onigenc_ascii_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc));
|
120
|
+
ONIG_EXTERN int onigenc_ascii_get_case_fold_codes_by_str P_((OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], OnigEncoding enc));
|
121
|
+
ONIG_EXTERN int onigenc_apply_all_case_fold_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg));
|
122
|
+
ONIG_EXTERN int onigenc_get_case_fold_codes_by_str_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]));
|
123
|
+
ONIG_EXTERN int onigenc_not_support_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], OnigEncoding enc));
|
124
|
+
ONIG_EXTERN int onigenc_is_mbc_newline_0x0a P_((const UChar* p, const UChar* end, OnigEncoding enc));
|
125
|
+
|
126
|
+
|
127
|
+
/* methods for single byte encoding */
|
128
|
+
ONIG_EXTERN int onigenc_ascii_mbc_case_fold P_((OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower, OnigEncoding enc));
|
129
|
+
ONIG_EXTERN int onigenc_single_byte_mbc_enc_len P_((const UChar* p, const UChar* e, OnigEncoding enc));
|
130
|
+
ONIG_EXTERN OnigCodePoint onigenc_single_byte_mbc_to_code P_((const UChar* p, const UChar* end, OnigEncoding enc));
|
131
|
+
ONIG_EXTERN int onigenc_single_byte_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc));
|
132
|
+
ONIG_EXTERN int onigenc_single_byte_code_to_mbc P_((OnigCodePoint code, UChar *buf, OnigEncoding enc));
|
133
|
+
ONIG_EXTERN UChar* onigenc_single_byte_left_adjust_char_head P_((const UChar* start, const UChar* s, const OnigUChar* end, OnigEncoding enc));
|
134
|
+
ONIG_EXTERN int onigenc_always_true_is_allowed_reverse_match P_((const UChar* s, const UChar* end, OnigEncoding enc));
|
135
|
+
ONIG_EXTERN int onigenc_always_false_is_allowed_reverse_match P_((const UChar* s, const UChar* end, OnigEncoding enc));
|
136
|
+
ONIG_EXTERN int onigenc_ascii_is_code_ctype P_((OnigCodePoint code, unsigned int ctype, OnigEncoding enc));
|
137
|
+
|
138
|
+
/* methods for multi byte encoding */
|
139
|
+
ONIG_EXTERN OnigCodePoint onigenc_mbn_mbc_to_code P_((OnigEncoding enc, const UChar* p, const UChar* end));
|
140
|
+
ONIG_EXTERN int onigenc_mbn_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower));
|
141
|
+
ONIG_EXTERN int onigenc_mb2_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc));
|
142
|
+
ONIG_EXTERN int onigenc_mb2_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf));
|
143
|
+
ONIG_EXTERN int onigenc_minimum_property_name_to_ctype P_((OnigEncoding enc, UChar* p, UChar* end));
|
144
|
+
ONIG_EXTERN int onigenc_unicode_property_name_to_ctype P_((OnigEncoding enc, UChar* p, UChar* end));
|
145
|
+
ONIG_EXTERN int onigenc_mb2_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype));
|
146
|
+
ONIG_EXTERN int onigenc_mb4_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc));
|
147
|
+
ONIG_EXTERN int onigenc_mb4_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf));
|
148
|
+
ONIG_EXTERN int onigenc_mb4_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype));
|
149
|
+
|
150
|
+
|
151
|
+
/* in enc/unicode.c */
|
152
|
+
ONIG_EXTERN int onigenc_unicode_is_code_ctype P_((OnigCodePoint code, unsigned int ctype, OnigEncoding enc));
|
153
|
+
ONIG_EXTERN int onigenc_utf16_32_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint* ranges[], OnigEncoding enc));
|
154
|
+
ONIG_EXTERN int onigenc_unicode_ctype_code_range P_((int ctype, const OnigCodePoint* ranges[]));
|
155
|
+
ONIG_EXTERN int onigenc_unicode_get_case_fold_codes_by_str P_((OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]));
|
156
|
+
ONIG_EXTERN int onigenc_unicode_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** pp, const UChar* end, UChar* fold));
|
157
|
+
ONIG_EXTERN int onigenc_unicode_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc));
|
158
|
+
|
159
|
+
|
160
|
+
#define UTF16_IS_SURROGATE_FIRST(c) (((c) & 0xfc) == 0xd8)
|
161
|
+
#define UTF16_IS_SURROGATE_SECOND(c) (((c) & 0xfc) == 0xdc)
|
162
|
+
|
163
|
+
#define ONIGENC_ISO_8859_1_TO_LOWER_CASE(c) \
|
164
|
+
OnigEncISO_8859_1_ToLowerCaseTable[c]
|
165
|
+
#define ONIGENC_ISO_8859_1_TO_UPPER_CASE(c) \
|
166
|
+
OnigEncISO_8859_1_ToUpperCaseTable[c]
|
167
|
+
|
168
|
+
ONIG_EXTERN const UChar OnigEncISO_8859_1_ToLowerCaseTable[];
|
169
|
+
ONIG_EXTERN const UChar OnigEncISO_8859_1_ToUpperCaseTable[];
|
170
|
+
|
171
|
+
ONIG_EXTERN int
|
172
|
+
onigenc_with_ascii_strncmp P_((OnigEncoding enc, const UChar* p, const UChar* end, const UChar* sascii /* ascii */, int n));
|
173
|
+
ONIG_EXTERN UChar*
|
174
|
+
onigenc_step P_((OnigEncoding enc, const UChar* p, const UChar* end, int n));
|
175
|
+
|
176
|
+
/* defined in regexec.c, but used in enc/xxx.c */
|
177
|
+
extern int onig_is_in_code_range P_((const UChar* p, OnigCodePoint code));
|
178
|
+
|
179
|
+
ONIG_EXTERN OnigEncoding OnigEncDefaultCharEncoding;
|
180
|
+
ONIG_EXTERN const UChar OnigEncAsciiToLowerCaseTable[];
|
181
|
+
ONIG_EXTERN const UChar OnigEncAsciiToUpperCaseTable[];
|
182
|
+
ONIG_EXTERN const unsigned short OnigEncAsciiCtypeTable[];
|
183
|
+
|
184
|
+
#define ONIGENC_IS_ASCII_CODE(code) ((code) < 0x80)
|
185
|
+
#define ONIGENC_ASCII_CODE_TO_LOWER_CASE(c) OnigEncAsciiToLowerCaseTable[c]
|
186
|
+
#define ONIGENC_ASCII_CODE_TO_UPPER_CASE(c) OnigEncAsciiToUpperCaseTable[c]
|
187
|
+
#define ONIGENC_IS_ASCII_CODE_CTYPE(code,ctype) \
|
188
|
+
((OnigEncAsciiCtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0)
|
189
|
+
#define ONIGENC_IS_ASCII_CODE_CASE_AMBIG(code) \
|
190
|
+
(ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_UPPER) ||\
|
191
|
+
ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_LOWER))
|
192
|
+
|
193
|
+
#ifdef ONIG_ENC_REGISTER
|
194
|
+
extern int ONIG_ENC_REGISTER(const char *, OnigEncodingType*);
|
195
|
+
#define OnigEncodingName(n) encoding_##n
|
196
|
+
#define OnigEncodingDeclare(n) static OnigEncodingType OnigEncodingName(n)
|
197
|
+
#define OnigEncodingDefine(f,n) \
|
198
|
+
OnigEncodingDeclare(n); \
|
199
|
+
void Init_##f(void) { \
|
200
|
+
ONIG_ENC_REGISTER(OnigEncodingName(n).name, \
|
201
|
+
&OnigEncodingName(n)); \
|
202
|
+
} \
|
203
|
+
OnigEncodingDeclare(n)
|
204
|
+
#else
|
205
|
+
#define OnigEncodingName(n) OnigEncoding##n
|
206
|
+
#define OnigEncodingDeclare(n) OnigEncodingType OnigEncodingName(n)
|
207
|
+
#define OnigEncodingDefine(f,n) OnigEncodingDeclare(n)
|
208
|
+
#endif
|
209
|
+
|
210
|
+
/* macros for define replica encoding and encoding alias */
|
211
|
+
#define ENC_REPLICATE(name, orig)
|
212
|
+
#define ENC_ALIAS(name, orig)
|
213
|
+
#define ENC_DUMMY(name)
|
214
|
+
|
215
|
+
#if defined __GNUC__ && __GNUC__ >= 4
|
216
|
+
#pragma GCC visibility pop
|
217
|
+
#endif
|
218
|
+
|
219
|
+
#endif /* ONIGURUMA_REGENC_H */
|