regexp_parser 2.11.3 → 2.13.1
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.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/lib/regexp_parser/expression/base.rb +50 -14
- data/lib/regexp_parser/expression/classes/character_set/range.rb +1 -1
- data/lib/regexp_parser/expression/classes/character_set.rb +1 -1
- data/lib/regexp_parser/expression/classes/unicode_property.rb +1 -1
- data/lib/regexp_parser/expression/methods/match_length.rb +15 -7
- data/lib/regexp_parser/expression/methods/tests.rb +20 -4
- data/lib/regexp_parser/expression/methods/traverse.rb +51 -13
- data/lib/regexp_parser/expression/quantifier.rb +1 -1
- data/lib/regexp_parser/expression/shared.rb +24 -22
- data/lib/regexp_parser/expression/subexpression.rb +2 -2
- data/lib/regexp_parser/lexer.rb +21 -22
- data/lib/regexp_parser/parser.rb +12 -36
- data/lib/regexp_parser/scanner/properties/long.csv +13 -0
- data/lib/regexp_parser/scanner/properties/short.csv +4 -0
- data/lib/regexp_parser/scanner.rb +867 -878
- data/lib/regexp_parser/syntax/token/unicode_property.rb +71 -26
- data/lib/regexp_parser/syntax/version_lookup.rb +25 -10
- data/lib/regexp_parser/syntax/versions/4.0.0.rb +4 -0
- data/lib/regexp_parser/version.rb +1 -1
- data/regexp_parser.gemspec +3 -9
- metadata +3 -9
- data/Gemfile +0 -17
- data/Rakefile +0 -25
- data/lib/regexp_parser/scanner/char_type.rl +0 -28
- data/lib/regexp_parser/scanner/property.rl +0 -30
- data/lib/regexp_parser/scanner/scanner.rl +0 -864
|
@@ -11,43 +11,10 @@ require_relative 'scanner/errors/premature_end_error'
|
|
|
11
11
|
require_relative 'scanner/errors/validation_error'
|
|
12
12
|
|
|
13
13
|
class Regexp::Scanner
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
# given, it gets called for each emitted token.
|
|
17
|
-
#
|
|
18
|
-
# This method may raise errors if a syntax error is encountered.
|
|
19
|
-
# --------------------------------------------------------------------------
|
|
20
|
-
def self.scan(input_object, options: nil, collect_tokens: true, &block)
|
|
21
|
-
new.scan(input_object, options: options, collect_tokens: collect_tokens, &block)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def scan(input_object, options: nil, collect_tokens: true, &block)
|
|
25
|
-
self.collect_tokens = collect_tokens
|
|
26
|
-
self.literal_run = nil
|
|
27
|
-
stack = []
|
|
28
|
-
|
|
29
|
-
input = input_object.is_a?(Regexp) ? input_object.source : input_object
|
|
30
|
-
self.free_spacing = free_spacing?(input_object, options)
|
|
31
|
-
self.regexp_encoding = extract_encoding(input_object, options)
|
|
32
|
-
self.spacing_stack = [{:free_spacing => free_spacing, :depth => 0}]
|
|
33
|
-
|
|
34
|
-
data = input.unpack("c*")
|
|
35
|
-
eof = data.length
|
|
36
|
-
|
|
37
|
-
self.tokens = []
|
|
38
|
-
self.block = block
|
|
39
|
-
|
|
40
|
-
self.set_depth = 0
|
|
41
|
-
self.group_depth = 0
|
|
42
|
-
self.capturing_group_count = 0
|
|
43
|
-
self.conditional_stack = []
|
|
44
|
-
self.char_pos = 0
|
|
14
|
+
# Emit fixed machine data once. The ragel task converts its generated
|
|
15
|
+
# accessors and tables to constants with frozen values.
|
|
45
16
|
|
|
46
|
-
|
|
47
|
-
attr_accessor :_re_scanner_trans_keys
|
|
48
|
-
private :_re_scanner_trans_keys, :_re_scanner_trans_keys=
|
|
49
|
-
end
|
|
50
|
-
self._re_scanner_trans_keys = [
|
|
17
|
+
RE_SCANNER_TRANS_KEYS = [
|
|
51
18
|
0,0,-128,-65,-128,-65,
|
|
52
19
|
-128,-65,41,41,39,
|
|
53
20
|
57,39,39,33,62,
|
|
@@ -62,27 +29,27 @@ self._re_scanner_trans_keys = [
|
|
|
62
29
|
62,62,62,48,57,
|
|
63
30
|
43,62,48,57,48,62,
|
|
64
31
|
48,57,48,125,44,
|
|
65
|
-
125,
|
|
66
|
-
9,
|
|
67
|
-
|
|
68
|
-
93
|
|
69
|
-
-128,-65,-128,-65
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
48,102,48,102,
|
|
74
|
-
|
|
32
|
+
125,9,122,9,125,
|
|
33
|
+
9,122,-128,-65,-128,-65,
|
|
34
|
+
38,38,58,93,58,
|
|
35
|
+
93,-128,-65,-128,-65,
|
|
36
|
+
-128,-65,-128,-65,45,45,
|
|
37
|
+
92,92,92,92,45,
|
|
38
|
+
45,92,92,92,92,
|
|
39
|
+
48,123,48,102,48,102,
|
|
40
|
+
48,102,48,102,9,
|
|
41
|
+
125,9,125,9,125,
|
|
75
42
|
9,125,9,125,9,125,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
43
|
+
48,102,120,120,56,
|
|
44
|
+
102,48,102,39,39,
|
|
45
|
+
41,41,41,57,62,62,
|
|
46
|
+
-128,127,-62,-12,1,
|
|
47
|
+
127,1,127,9,32,
|
|
48
|
+
33,126,10,10,63,63,
|
|
49
|
+
33,126,33,126,43,
|
|
50
|
+
63,43,63,43,63,
|
|
51
|
+
65,122,44,57,68,119,
|
|
52
|
+
80,112,123,123,-62,
|
|
86
53
|
125,-128,-65,-128,-65,
|
|
87
54
|
-128,-65,38,38,38,93,
|
|
88
55
|
58,58,-62,120,-128,
|
|
@@ -98,61 +65,49 @@ self._re_scanner_trans_keys = [
|
|
|
98
65
|
92,39,60,39,57,
|
|
99
66
|
48,57,41,57,33,62,
|
|
100
67
|
0
|
|
101
|
-
]
|
|
68
|
+
].freeze
|
|
102
69
|
|
|
103
|
-
|
|
104
|
-
attr_accessor :_re_scanner_key_spans
|
|
105
|
-
private :_re_scanner_key_spans, :_re_scanner_key_spans=
|
|
106
|
-
end
|
|
107
|
-
self._re_scanner_key_spans = [
|
|
70
|
+
RE_SCANNER_KEY_SPANS = [
|
|
108
71
|
0,64,64,64,1,19,1,30,
|
|
109
72
|
1,22,19,1,10,19,10,19,
|
|
110
73
|
30,1,10,20,10,15,22,19,
|
|
111
74
|
1,10,19,10,19,30,1,10,
|
|
112
|
-
20,10,15,10,78,82,
|
|
113
|
-
|
|
114
|
-
64,64,
|
|
115
|
-
|
|
116
|
-
117,117,117,
|
|
117
|
-
1,
|
|
118
|
-
|
|
119
|
-
|
|
75
|
+
20,10,15,10,78,82,114,117,
|
|
76
|
+
114,64,64,1,36,36,64,64,
|
|
77
|
+
64,64,1,1,1,1,1,1,
|
|
78
|
+
76,55,55,55,55,117,117,117,
|
|
79
|
+
117,117,117,55,1,47,55,1,
|
|
80
|
+
1,17,1,256,51,127,127,24,
|
|
81
|
+
94,1,1,94,94,21,21,21,
|
|
82
|
+
58,14,52,33,1,188,64,64,
|
|
120
83
|
64,1,56,1,183,64,64,64,
|
|
121
84
|
8,8,188,64,64,64,8,8,
|
|
122
85
|
10,10,10,10,1,1,0,33,
|
|
123
86
|
1,0,1,55,55,1,22,19,
|
|
124
87
|
10,17,30
|
|
125
|
-
]
|
|
88
|
+
].freeze
|
|
126
89
|
|
|
127
|
-
|
|
128
|
-
attr_accessor :_re_scanner_index_offsets
|
|
129
|
-
private :_re_scanner_index_offsets, :_re_scanner_index_offsets=
|
|
130
|
-
end
|
|
131
|
-
self._re_scanner_index_offsets = [
|
|
90
|
+
RE_SCANNER_INDEX_OFFSETS = [
|
|
132
91
|
0,0,65,130,195,197,217,219,
|
|
133
92
|
250,252,275,295,297,308,328,339,
|
|
134
93
|
359,390,392,403,424,435,451,474,
|
|
135
94
|
494,496,507,527,538,558,589,591,
|
|
136
|
-
602,623,634,650,661,740,823,
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
1649,
|
|
140
|
-
|
|
141
|
-
2822,2824,
|
|
142
|
-
|
|
143
|
-
|
|
95
|
+
602,623,634,650,661,740,823,938,
|
|
96
|
+
1056,1171,1236,1301,1303,1340,1377,1442,
|
|
97
|
+
1507,1572,1637,1639,1641,1643,1645,1647,
|
|
98
|
+
1649,1726,1782,1838,1894,1950,2068,2186,
|
|
99
|
+
2304,2422,2540,2658,2714,2716,2764,2820,
|
|
100
|
+
2822,2824,2842,2844,3101,3153,3281,3409,
|
|
101
|
+
3434,3529,3531,3533,3628,3723,3745,3767,
|
|
102
|
+
3789,3848,3863,3916,3950,3952,4141,4206,
|
|
144
103
|
4271,4336,4338,4395,4397,4581,4646,4711,
|
|
145
104
|
4776,4785,4794,4983,5048,5113,5178,5187,
|
|
146
105
|
5196,5207,5218,5229,5240,5242,5244,5245,
|
|
147
106
|
5279,5281,5282,5284,5340,5396,5398,5421,
|
|
148
107
|
5441,5452,5470
|
|
149
|
-
]
|
|
108
|
+
].freeze
|
|
150
109
|
|
|
151
|
-
|
|
152
|
-
attr_accessor :_re_scanner_indicies
|
|
153
|
-
private :_re_scanner_indicies, :_re_scanner_indicies=
|
|
154
|
-
end
|
|
155
|
-
self._re_scanner_indicies = [
|
|
110
|
+
RE_SCANNER_INDICIES = [
|
|
156
111
|
1,1,1,1,1,1,1,1,
|
|
157
112
|
1,1,1,1,1,1,1,1,
|
|
158
113
|
1,1,1,1,1,1,1,1,
|
|
@@ -255,37 +210,22 @@ self._re_scanner_indicies = [
|
|
|
255
210
|
38,38,38,38,38,38,38,38,
|
|
256
211
|
38,38,38,38,38,38,38,38,
|
|
257
212
|
38,38,38,38,38,38,38,38,
|
|
258
|
-
38,38,38,38,38,40,38,
|
|
259
|
-
|
|
213
|
+
38,38,38,38,38,40,38,44,
|
|
214
|
+
44,44,44,44,43,43,43,43,
|
|
260
215
|
43,43,43,43,43,43,43,43,
|
|
216
|
+
43,43,43,43,43,43,44,43,
|
|
261
217
|
43,43,43,43,43,43,43,43,
|
|
262
|
-
|
|
263
|
-
43,43,43,43,43,44,44,43,
|
|
264
|
-
44,44,44,44,44,44,44,44,
|
|
265
|
-
44,44,43,43,43,44,43,43,
|
|
266
|
-
43,44,44,44,44,44,44,44,
|
|
267
|
-
44,44,44,44,44,44,44,44,
|
|
218
|
+
43,43,43,44,44,43,44,44,
|
|
268
219
|
44,44,44,44,44,44,44,44,
|
|
269
|
-
|
|
270
|
-
43,44,44,44,44,44,44,44,
|
|
220
|
+
43,43,43,44,43,43,43,44,
|
|
271
221
|
44,44,44,44,44,44,44,44,
|
|
272
222
|
44,44,44,44,44,44,44,44,
|
|
273
|
-
44,44,44,43,44,44,44,44,
|
|
274
|
-
44,43,43,43,43,43,43,43,
|
|
275
|
-
43,43,43,43,43,43,43,43,
|
|
276
|
-
43,43,43,44,43,43,43,43,
|
|
277
|
-
43,43,43,43,43,43,43,43,
|
|
278
|
-
44,44,43,44,44,44,44,44,
|
|
279
|
-
44,44,44,44,44,43,43,43,
|
|
280
|
-
44,43,43,43,44,44,44,44,
|
|
281
223
|
44,44,44,44,44,44,44,44,
|
|
224
|
+
44,43,43,43,45,44,43,44,
|
|
282
225
|
44,44,44,44,44,44,44,44,
|
|
283
|
-
44,44,44,44,44,44,43,43,
|
|
284
|
-
43,43,44,43,44,44,44,44,
|
|
285
226
|
44,44,44,44,44,44,44,44,
|
|
286
227
|
44,44,44,44,44,44,44,44,
|
|
287
|
-
44,44,44,44,44,44,43,
|
|
288
|
-
46,43,44,44,44,44,44,43,
|
|
228
|
+
44,43,44,44,44,44,44,43,
|
|
289
229
|
43,43,43,43,43,43,43,43,
|
|
290
230
|
43,43,43,43,43,43,43,43,
|
|
291
231
|
43,44,43,43,43,43,43,43,
|
|
@@ -299,7 +239,22 @@ self._re_scanner_indicies = [
|
|
|
299
239
|
44,43,44,44,44,44,44,44,
|
|
300
240
|
44,44,44,44,44,44,44,44,
|
|
301
241
|
44,44,44,44,44,44,44,44,
|
|
302
|
-
44,44,44,44,43,
|
|
242
|
+
44,44,44,44,43,43,46,43,
|
|
243
|
+
44,44,44,44,44,43,43,43,
|
|
244
|
+
43,43,43,43,43,43,43,43,
|
|
245
|
+
43,43,43,43,43,43,43,44,
|
|
246
|
+
43,43,43,43,43,43,43,43,
|
|
247
|
+
43,43,43,43,44,44,43,44,
|
|
248
|
+
44,44,44,44,44,44,44,44,
|
|
249
|
+
44,43,43,43,44,43,43,43,
|
|
250
|
+
44,44,44,44,44,44,44,44,
|
|
251
|
+
44,44,44,44,44,44,44,44,
|
|
252
|
+
44,44,44,44,44,44,44,44,
|
|
253
|
+
44,44,43,43,43,43,44,43,
|
|
254
|
+
44,44,44,44,44,44,44,44,
|
|
255
|
+
44,44,44,44,44,44,44,44,
|
|
256
|
+
44,44,44,44,44,44,44,44,
|
|
257
|
+
44,44,43,48,48,48,48,48,
|
|
303
258
|
48,48,48,48,48,48,48,48,
|
|
304
259
|
48,48,48,48,48,48,48,48,
|
|
305
260
|
48,48,48,48,48,48,48,48,
|
|
@@ -307,7 +262,7 @@ self._re_scanner_indicies = [
|
|
|
307
262
|
48,48,48,48,48,48,48,48,
|
|
308
263
|
48,48,48,48,48,48,48,48,
|
|
309
264
|
48,48,48,48,48,48,48,48,
|
|
310
|
-
48,48,48,
|
|
265
|
+
48,48,48,47,49,49,49,49,
|
|
311
266
|
49,49,49,49,49,49,49,49,
|
|
312
267
|
49,49,49,49,49,49,49,49,
|
|
313
268
|
49,49,49,49,49,49,49,49,
|
|
@@ -315,17 +270,17 @@ self._re_scanner_indicies = [
|
|
|
315
270
|
49,49,49,49,49,49,49,49,
|
|
316
271
|
49,49,49,49,49,49,49,49,
|
|
317
272
|
49,49,49,49,49,49,49,49,
|
|
318
|
-
49,49,49,49,
|
|
319
|
-
50,54,53,53,53,53,53,53,
|
|
273
|
+
49,49,49,49,47,51,50,54,
|
|
320
274
|
53,53,53,53,53,53,53,53,
|
|
321
275
|
53,53,53,53,53,53,53,53,
|
|
322
276
|
53,53,53,53,53,53,53,53,
|
|
323
|
-
53,53,55,53,55,53,54,53,
|
|
324
277
|
53,53,53,53,53,53,53,53,
|
|
278
|
+
55,53,55,53,54,53,53,53,
|
|
325
279
|
53,53,53,53,53,53,53,53,
|
|
326
280
|
53,53,53,53,53,53,53,53,
|
|
327
|
-
53,53,53,53,53,53,53,
|
|
328
|
-
53,
|
|
281
|
+
53,53,53,53,53,53,53,53,
|
|
282
|
+
53,53,53,53,53,55,53,56,
|
|
283
|
+
53,58,58,58,58,58,58,58,
|
|
329
284
|
58,58,58,58,58,58,58,58,
|
|
330
285
|
58,58,58,58,58,58,58,58,
|
|
331
286
|
58,58,58,58,58,58,58,58,
|
|
@@ -333,7 +288,7 @@ self._re_scanner_indicies = [
|
|
|
333
288
|
58,58,58,58,58,58,58,58,
|
|
334
289
|
58,58,58,58,58,58,58,58,
|
|
335
290
|
58,58,58,58,58,58,58,58,
|
|
336
|
-
58,
|
|
291
|
+
58,57,59,59,59,59,59,59,
|
|
337
292
|
59,59,59,59,59,59,59,59,
|
|
338
293
|
59,59,59,59,59,59,59,59,
|
|
339
294
|
59,59,59,59,59,59,59,59,
|
|
@@ -341,7 +296,7 @@ self._re_scanner_indicies = [
|
|
|
341
296
|
59,59,59,59,59,59,59,59,
|
|
342
297
|
59,59,59,59,59,59,59,59,
|
|
343
298
|
59,59,59,59,59,59,59,59,
|
|
344
|
-
59,59,
|
|
299
|
+
59,59,57,61,61,61,61,61,
|
|
345
300
|
61,61,61,61,61,61,61,61,
|
|
346
301
|
61,61,61,61,61,61,61,61,
|
|
347
302
|
61,61,61,61,61,61,61,61,
|
|
@@ -349,7 +304,7 @@ self._re_scanner_indicies = [
|
|
|
349
304
|
61,61,61,61,61,61,61,61,
|
|
350
305
|
61,61,61,61,61,61,61,61,
|
|
351
306
|
61,61,61,61,61,61,61,61,
|
|
352
|
-
61,61,61,
|
|
307
|
+
61,61,61,60,62,62,62,62,
|
|
353
308
|
62,62,62,62,62,62,62,62,
|
|
354
309
|
62,62,62,62,62,62,62,62,
|
|
355
310
|
62,62,62,62,62,62,62,62,
|
|
@@ -357,219 +312,200 @@ self._re_scanner_indicies = [
|
|
|
357
312
|
62,62,62,62,62,62,62,62,
|
|
358
313
|
62,62,62,62,62,62,62,62,
|
|
359
314
|
62,62,62,62,62,62,62,62,
|
|
360
|
-
62,62,62,62,
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
75,75,75,75,75,75,75,75,
|
|
373
|
-
75,75,43,43,43,43,43,43,
|
|
374
|
-
43,75,75,75,75,75,75,43,
|
|
375
|
-
43,43,43,43,43,43,43,43,
|
|
376
|
-
43,43,43,43,43,43,43,43,
|
|
377
|
-
43,43,43,43,43,43,43,43,
|
|
378
|
-
43,75,75,75,75,75,75,43,
|
|
315
|
+
62,62,62,62,60,63,64,66,
|
|
316
|
+
65,68,65,69,64,71,70,73,
|
|
317
|
+
70,74,74,74,74,74,74,74,
|
|
318
|
+
74,74,74,64,64,64,64,64,
|
|
319
|
+
64,64,74,74,74,74,74,74,
|
|
320
|
+
64,64,64,64,64,64,64,64,
|
|
321
|
+
64,64,64,64,64,64,64,64,
|
|
322
|
+
64,64,64,64,64,64,64,64,
|
|
323
|
+
64,64,74,74,74,74,74,74,
|
|
324
|
+
64,64,64,64,64,64,64,64,
|
|
325
|
+
64,64,64,64,64,64,64,64,
|
|
326
|
+
64,64,64,64,75,64,76,76,
|
|
379
327
|
76,76,76,76,76,76,76,76,
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
328
|
+
64,64,64,64,64,64,64,76,
|
|
329
|
+
76,76,76,76,76,64,64,64,
|
|
330
|
+
64,64,64,64,64,64,64,64,
|
|
331
|
+
64,64,64,64,64,64,64,64,
|
|
332
|
+
64,64,64,64,64,64,64,76,
|
|
333
|
+
76,76,76,76,76,64,77,77,
|
|
386
334
|
77,77,77,77,77,77,77,77,
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
335
|
+
64,64,64,64,64,64,64,77,
|
|
336
|
+
77,77,77,77,77,64,64,64,
|
|
337
|
+
64,64,64,64,64,64,64,64,
|
|
338
|
+
64,64,64,64,64,64,64,64,
|
|
339
|
+
64,64,64,64,64,64,64,77,
|
|
340
|
+
77,77,77,77,77,64,78,78,
|
|
393
341
|
78,78,78,78,78,78,78,78,
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
74,74,74,74,74,43,43,43,
|
|
401
|
-
43,43,43,43,43,43,43,43,
|
|
402
|
-
43,43,43,43,43,43,43,74,
|
|
403
|
-
43,43,43,43,43,43,43,43,
|
|
404
|
-
43,43,43,43,43,43,43,79,
|
|
342
|
+
64,64,64,64,64,64,64,78,
|
|
343
|
+
78,78,78,78,78,64,64,64,
|
|
344
|
+
64,64,64,64,64,64,64,64,
|
|
345
|
+
64,64,64,64,64,64,64,64,
|
|
346
|
+
64,64,64,64,64,64,64,78,
|
|
347
|
+
78,78,78,78,78,64,79,79,
|
|
405
348
|
79,79,79,79,79,79,79,79,
|
|
406
|
-
|
|
407
|
-
79,79,79,79,79,
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
79,79,79,79,79,
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
43,43,43,43,43,43,43,74,
|
|
462
|
-
43,43,43,43,43,43,43,43,
|
|
463
|
-
43,43,43,43,43,43,43,83,
|
|
349
|
+
64,64,64,64,64,64,64,79,
|
|
350
|
+
79,79,79,79,79,64,64,64,
|
|
351
|
+
64,64,64,64,64,64,64,64,
|
|
352
|
+
64,64,64,64,64,64,64,64,
|
|
353
|
+
64,64,64,64,64,64,64,79,
|
|
354
|
+
79,79,79,79,79,64,75,75,
|
|
355
|
+
75,75,75,64,64,64,64,64,
|
|
356
|
+
64,64,64,64,64,64,64,64,
|
|
357
|
+
64,64,64,64,64,75,64,64,
|
|
358
|
+
64,64,64,64,64,64,64,64,
|
|
359
|
+
64,64,64,64,64,80,80,80,
|
|
360
|
+
80,80,80,80,80,80,80,64,
|
|
361
|
+
64,64,64,64,64,64,80,80,
|
|
362
|
+
80,80,80,80,64,64,64,64,
|
|
363
|
+
64,64,64,64,64,64,64,64,
|
|
364
|
+
64,64,64,64,64,64,64,64,
|
|
365
|
+
64,64,64,64,64,64,80,80,
|
|
366
|
+
80,80,80,80,64,64,64,64,
|
|
367
|
+
64,64,64,64,64,64,64,64,
|
|
368
|
+
64,64,64,64,64,64,64,64,
|
|
369
|
+
64,64,78,64,75,75,75,75,
|
|
370
|
+
75,64,64,64,64,64,64,64,
|
|
371
|
+
64,64,64,64,64,64,64,64,
|
|
372
|
+
64,64,64,75,64,64,64,64,
|
|
373
|
+
64,64,64,64,64,64,64,64,
|
|
374
|
+
64,64,64,81,81,81,81,81,
|
|
375
|
+
81,81,81,81,81,64,64,64,
|
|
376
|
+
64,64,64,64,81,81,81,81,
|
|
377
|
+
81,81,64,64,64,64,64,64,
|
|
378
|
+
64,64,64,64,64,64,64,64,
|
|
379
|
+
64,64,64,64,64,64,64,64,
|
|
380
|
+
64,64,64,64,81,81,81,81,
|
|
381
|
+
81,81,64,64,64,64,64,64,
|
|
382
|
+
64,64,64,64,64,64,64,64,
|
|
383
|
+
64,64,64,64,64,64,64,64,
|
|
384
|
+
78,64,75,75,75,75,75,64,
|
|
385
|
+
64,64,64,64,64,64,64,64,
|
|
386
|
+
64,64,64,64,64,64,64,64,
|
|
387
|
+
64,75,64,64,64,64,64,64,
|
|
388
|
+
64,64,64,64,64,64,64,64,
|
|
389
|
+
64,82,82,82,82,82,82,82,
|
|
390
|
+
82,82,82,64,64,64,64,64,
|
|
391
|
+
64,64,82,82,82,82,82,82,
|
|
392
|
+
64,64,64,64,64,64,64,64,
|
|
393
|
+
64,64,64,64,64,64,64,64,
|
|
394
|
+
64,64,64,64,64,64,64,64,
|
|
395
|
+
64,64,82,82,82,82,82,82,
|
|
396
|
+
64,64,64,64,64,64,64,64,
|
|
397
|
+
64,64,64,64,64,64,64,64,
|
|
398
|
+
64,64,64,64,64,64,78,64,
|
|
399
|
+
75,75,75,75,75,64,64,64,
|
|
400
|
+
64,64,64,64,64,64,64,64,
|
|
401
|
+
64,64,64,64,64,64,64,75,
|
|
402
|
+
64,64,64,64,64,64,64,64,
|
|
403
|
+
64,64,64,64,64,64,64,83,
|
|
464
404
|
83,83,83,83,83,83,83,83,
|
|
465
|
-
83,
|
|
466
|
-
83,83,83,83,83,83,
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
83,83,83,83,83,83,
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
87,
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
405
|
+
83,64,64,64,64,64,64,64,
|
|
406
|
+
83,83,83,83,83,83,64,64,
|
|
407
|
+
64,64,64,64,64,64,64,64,
|
|
408
|
+
64,64,64,64,64,64,64,64,
|
|
409
|
+
64,64,64,64,64,64,64,64,
|
|
410
|
+
83,83,83,83,83,83,64,64,
|
|
411
|
+
64,64,64,64,64,64,64,64,
|
|
412
|
+
64,64,64,64,64,64,64,64,
|
|
413
|
+
64,64,64,64,78,64,75,75,
|
|
414
|
+
75,75,75,64,64,64,64,64,
|
|
415
|
+
64,64,64,64,64,64,64,64,
|
|
416
|
+
64,64,64,64,64,75,64,64,
|
|
417
|
+
64,64,64,64,64,64,64,64,
|
|
418
|
+
64,64,64,64,64,84,84,84,
|
|
419
|
+
84,84,84,84,84,84,84,64,
|
|
420
|
+
64,64,64,64,64,64,84,84,
|
|
421
|
+
84,84,84,84,64,64,64,64,
|
|
422
|
+
64,64,64,64,64,64,64,64,
|
|
423
|
+
64,64,64,64,64,64,64,64,
|
|
424
|
+
64,64,64,64,64,64,84,84,
|
|
425
|
+
84,84,84,84,64,64,64,64,
|
|
426
|
+
64,64,64,64,64,64,64,64,
|
|
427
|
+
64,64,64,64,64,64,64,64,
|
|
428
|
+
64,64,78,64,75,75,75,75,
|
|
429
|
+
75,64,64,64,64,64,64,64,
|
|
430
|
+
64,64,64,64,64,64,64,64,
|
|
431
|
+
64,64,64,75,64,64,64,64,
|
|
432
|
+
64,64,64,64,64,64,64,64,
|
|
433
|
+
64,64,64,64,64,64,64,64,
|
|
434
|
+
64,64,64,64,64,64,64,64,
|
|
435
|
+
64,64,64,64,64,64,64,64,
|
|
436
|
+
64,64,64,64,64,64,64,64,
|
|
437
|
+
64,64,64,64,64,64,64,64,
|
|
438
|
+
64,64,64,64,64,64,64,64,
|
|
439
|
+
64,64,64,64,64,64,64,64,
|
|
440
|
+
64,64,64,64,64,64,64,64,
|
|
441
|
+
64,64,64,64,64,64,64,64,
|
|
442
|
+
64,64,64,64,64,64,64,64,
|
|
443
|
+
78,64,86,86,86,86,86,86,
|
|
444
|
+
86,86,87,87,85,85,85,85,
|
|
445
|
+
85,85,85,87,87,87,87,87,
|
|
446
|
+
87,85,85,85,85,85,85,85,
|
|
447
|
+
85,85,85,85,85,85,85,85,
|
|
448
|
+
85,85,85,85,85,85,85,85,
|
|
449
|
+
85,85,85,87,87,87,87,87,
|
|
450
|
+
87,85,89,88,90,90,88,88,
|
|
451
|
+
88,88,88,88,88,90,90,90,
|
|
452
|
+
90,90,90,88,88,88,88,88,
|
|
453
|
+
88,88,88,88,88,88,88,88,
|
|
454
|
+
88,88,88,88,88,88,88,88,
|
|
455
|
+
88,88,88,88,88,90,90,90,
|
|
456
|
+
90,90,90,88,91,91,91,91,
|
|
457
|
+
91,91,91,91,91,91,88,88,
|
|
458
|
+
88,88,88,88,88,91,91,91,
|
|
459
|
+
91,91,91,88,88,88,88,88,
|
|
460
|
+
88,88,88,88,88,88,88,88,
|
|
461
|
+
88,88,88,88,88,88,88,88,
|
|
462
|
+
88,88,88,88,88,91,91,91,
|
|
463
|
+
91,91,91,88,94,93,95,92,
|
|
464
|
+
95,92,92,92,92,92,92,96,
|
|
465
|
+
96,96,96,96,96,96,96,96,
|
|
466
|
+
96,92,94,97,64,64,64,64,
|
|
467
|
+
64,64,64,64,64,64,64,64,
|
|
468
|
+
64,64,64,64,64,64,64,64,
|
|
469
|
+
64,64,64,64,64,64,64,64,
|
|
470
|
+
64,64,64,64,64,64,64,64,
|
|
471
|
+
64,64,64,64,64,64,64,64,
|
|
472
|
+
64,64,64,64,64,64,64,64,
|
|
473
|
+
64,64,64,64,64,64,64,64,
|
|
474
|
+
64,64,64,64,64,64,2,2,
|
|
520
475
|
2,2,2,2,2,2,2,2,
|
|
521
476
|
2,2,2,2,2,2,2,2,
|
|
522
477
|
2,2,2,2,2,2,2,2,
|
|
523
|
-
2,2,2,2,
|
|
478
|
+
2,2,2,2,3,3,3,3,
|
|
524
479
|
3,3,3,3,3,3,3,3,
|
|
525
|
-
3,3,3,3,
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
99,99,99,99,
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
480
|
+
3,3,3,3,98,98,98,98,
|
|
481
|
+
98,64,64,64,64,64,64,64,
|
|
482
|
+
64,64,64,64,64,99,99,99,
|
|
483
|
+
99,99,99,99,99,100,100,100,
|
|
484
|
+
100,100,99,99,99,99,99,99,
|
|
485
|
+
99,99,99,99,99,99,99,99,
|
|
486
|
+
99,99,99,99,101,102,102,103,
|
|
487
|
+
104,102,102,102,105,106,107,108,
|
|
488
|
+
102,102,109,102,102,102,102,102,
|
|
489
|
+
102,102,102,102,102,102,102,102,
|
|
490
|
+
102,102,102,110,102,102,102,102,
|
|
491
|
+
102,102,102,102,102,102,102,102,
|
|
492
|
+
102,102,102,102,102,102,102,102,
|
|
493
|
+
102,102,102,102,102,102,102,111,
|
|
494
|
+
112,113,114,102,102,102,102,102,
|
|
495
|
+
102,102,102,102,102,102,102,102,
|
|
496
|
+
102,102,102,102,102,102,102,102,
|
|
497
|
+
102,102,102,102,102,102,102,115,
|
|
498
|
+
116,113,102,99,102,2,2,2,
|
|
544
499
|
2,2,2,2,2,2,2,2,
|
|
545
500
|
2,2,2,2,2,2,2,2,
|
|
546
501
|
2,2,2,2,2,2,2,2,
|
|
547
|
-
2,2,2,
|
|
502
|
+
2,2,2,3,3,3,3,3,
|
|
548
503
|
3,3,3,3,3,3,3,3,
|
|
549
|
-
3,3,3,
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
98,98,116,116,116,116,116,116,
|
|
555
|
-
116,116,116,116,116,116,116,116,
|
|
556
|
-
116,116,116,116,116,116,116,116,
|
|
557
|
-
116,116,116,116,116,116,116,116,
|
|
558
|
-
116,116,116,116,116,116,116,116,
|
|
559
|
-
116,116,116,116,116,116,116,116,
|
|
560
|
-
116,116,116,116,116,116,116,116,
|
|
561
|
-
116,116,116,116,116,116,116,116,
|
|
562
|
-
116,116,116,116,116,116,116,116,
|
|
563
|
-
116,116,116,116,116,116,116,116,
|
|
564
|
-
116,116,116,116,116,116,116,116,
|
|
565
|
-
116,116,116,116,116,116,116,116,
|
|
566
|
-
116,98,116,98,98,98,98,98,
|
|
567
|
-
98,98,98,99,99,99,99,99,
|
|
568
|
-
98,98,98,98,98,98,98,98,
|
|
569
|
-
98,98,98,98,98,98,98,98,
|
|
570
|
-
98,98,100,117,117,117,117,117,
|
|
571
|
-
117,117,117,117,117,117,117,117,
|
|
572
|
-
117,117,117,117,117,117,117,117,
|
|
504
|
+
3,3,3,98,98,98,98,98,
|
|
505
|
+
117,99,99,99,99,99,99,99,
|
|
506
|
+
99,99,99,99,99,99,99,99,
|
|
507
|
+
99,99,99,99,99,99,99,99,
|
|
508
|
+
99,99,99,99,99,99,99,99,
|
|
573
509
|
117,117,117,117,117,117,117,117,
|
|
574
510
|
117,117,117,117,117,117,117,117,
|
|
575
511
|
117,117,117,117,117,117,117,117,
|
|
@@ -579,98 +515,117 @@ self._re_scanner_indicies = [
|
|
|
579
515
|
117,117,117,117,117,117,117,117,
|
|
580
516
|
117,117,117,117,117,117,117,117,
|
|
581
517
|
117,117,117,117,117,117,117,117,
|
|
582
|
-
117,98,117,100,100,100,100,100,
|
|
583
518
|
117,117,117,117,117,117,117,117,
|
|
584
519
|
117,117,117,117,117,117,117,117,
|
|
585
|
-
117,117,
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
101,
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
520
|
+
117,117,117,117,117,117,117,99,
|
|
521
|
+
117,99,99,99,99,99,99,99,
|
|
522
|
+
99,100,100,100,100,100,99,99,
|
|
523
|
+
99,99,99,99,99,99,99,99,
|
|
524
|
+
99,99,99,99,99,99,99,99,
|
|
525
|
+
101,118,118,118,118,118,118,118,
|
|
526
|
+
118,118,118,118,118,118,118,118,
|
|
527
|
+
118,118,118,118,118,118,118,118,
|
|
528
|
+
118,118,118,118,118,118,118,118,
|
|
529
|
+
118,118,118,118,118,118,118,118,
|
|
530
|
+
118,118,118,118,118,118,118,118,
|
|
531
|
+
118,118,118,118,118,118,118,118,
|
|
532
|
+
118,118,118,118,118,118,118,118,
|
|
533
|
+
118,118,118,118,118,118,118,118,
|
|
534
|
+
118,118,118,118,118,118,118,118,
|
|
535
|
+
118,118,118,118,118,118,118,118,
|
|
536
|
+
118,118,118,118,118,118,118,99,
|
|
537
|
+
118,101,101,101,101,101,118,118,
|
|
538
|
+
118,118,118,118,118,118,118,118,
|
|
539
|
+
118,118,118,118,118,118,118,118,
|
|
540
|
+
101,118,102,102,117,117,102,102,
|
|
541
|
+
102,117,117,117,117,102,102,117,
|
|
542
|
+
102,102,102,102,102,102,102,102,
|
|
543
|
+
102,102,102,102,102,102,102,102,
|
|
544
|
+
117,102,102,102,102,102,102,102,
|
|
545
|
+
102,102,102,102,102,102,102,102,
|
|
546
|
+
102,102,102,102,102,102,102,102,
|
|
547
|
+
102,102,102,102,117,117,117,117,
|
|
548
|
+
102,102,102,102,102,102,102,102,
|
|
549
|
+
102,102,102,102,102,102,102,102,
|
|
550
|
+
102,102,102,102,102,102,102,102,
|
|
551
|
+
102,102,102,102,117,117,117,102,
|
|
552
|
+
117,120,103,122,121,10,124,5,
|
|
553
|
+
124,124,124,125,126,123,124,124,
|
|
554
|
+
124,124,124,124,124,124,124,124,
|
|
555
|
+
124,124,124,124,124,124,8,124,
|
|
556
|
+
127,10,8,124,124,124,124,124,
|
|
557
|
+
124,124,124,124,124,124,124,124,
|
|
558
|
+
124,124,124,124,124,124,124,124,
|
|
559
|
+
124,124,124,124,124,124,124,124,
|
|
560
|
+
124,124,124,124,124,124,124,124,
|
|
561
|
+
124,124,124,124,124,124,124,124,
|
|
562
|
+
124,124,124,124,124,124,124,124,
|
|
563
|
+
124,124,124,124,124,124,124,124,
|
|
564
|
+
124,124,8,124,123,124,123,124,
|
|
565
|
+
124,124,123,123,123,124,124,124,
|
|
566
|
+
124,124,124,124,124,124,124,124,
|
|
567
|
+
124,124,124,124,124,128,124,123,
|
|
568
|
+
123,123,124,124,124,124,124,124,
|
|
569
|
+
124,124,124,124,124,124,124,124,
|
|
570
|
+
124,124,124,124,124,124,124,124,
|
|
571
|
+
124,124,124,124,124,124,124,124,
|
|
572
|
+
124,124,124,124,124,124,124,124,
|
|
573
|
+
124,124,124,124,124,124,124,124,
|
|
574
|
+
124,124,124,124,124,124,124,124,
|
|
575
|
+
124,124,124,124,124,124,124,124,
|
|
576
|
+
124,123,124,130,129,129,129,129,
|
|
577
|
+
129,129,129,129,129,129,129,129,
|
|
578
|
+
129,129,129,129,129,129,129,130,
|
|
579
|
+
129,132,131,131,131,131,131,131,
|
|
580
|
+
131,131,131,131,131,131,131,131,
|
|
581
|
+
131,131,131,131,131,132,131,134,
|
|
582
|
+
133,133,133,133,133,133,133,133,
|
|
583
|
+
133,133,133,133,133,133,133,133,
|
|
584
|
+
133,133,133,134,133,136,136,135,
|
|
585
|
+
135,135,135,136,135,135,135,137,
|
|
586
|
+
135,135,135,135,135,135,135,135,
|
|
587
|
+
135,135,135,135,135,135,136,135,
|
|
588
|
+
135,135,135,135,135,135,136,135,
|
|
589
|
+
135,135,135,138,135,135,135,139,
|
|
590
|
+
135,135,135,135,135,135,135,135,
|
|
591
|
+
135,135,135,135,135,135,136,135,
|
|
592
|
+
141,140,140,140,41,41,41,41,
|
|
593
|
+
41,41,41,41,41,41,140,142,
|
|
594
|
+
64,64,64,142,64,64,64,64,
|
|
595
|
+
64,64,64,64,64,142,142,64,
|
|
596
|
+
64,64,142,142,64,64,64,64,
|
|
597
|
+
64,64,64,64,64,64,64,142,
|
|
598
|
+
64,64,64,142,64,64,64,64,
|
|
599
|
+
64,64,64,64,64,64,142,64,
|
|
600
|
+
64,64,142,64,143,64,64,64,
|
|
601
|
+
64,64,64,64,64,64,64,64,
|
|
602
|
+
64,64,64,64,64,64,64,64,
|
|
603
|
+
64,64,64,64,64,64,64,64,
|
|
604
|
+
64,64,64,64,143,64,145,144,
|
|
605
|
+
146,146,146,146,146,146,146,146,
|
|
606
|
+
146,146,146,146,146,146,146,146,
|
|
607
|
+
146,146,146,146,146,146,146,146,
|
|
608
|
+
146,146,146,146,146,146,147,147,
|
|
609
|
+
147,147,147,147,147,147,147,147,
|
|
610
|
+
147,147,147,147,147,147,148,148,
|
|
611
|
+
148,148,148,48,48,48,48,48,
|
|
657
612
|
48,48,48,48,48,48,48,48,
|
|
658
613
|
48,48,48,48,48,48,48,48,
|
|
659
614
|
48,48,48,48,48,48,48,48,
|
|
660
615
|
48,48,48,48,48,48,48,48,
|
|
661
616
|
48,48,48,48,48,48,48,48,
|
|
662
|
-
48,48,
|
|
663
|
-
|
|
617
|
+
48,48,149,48,150,48,149,149,
|
|
618
|
+
149,149,48,151,149,48,48,48,
|
|
664
619
|
48,48,48,48,48,48,48,48,
|
|
665
|
-
48,48,48,48,48,
|
|
620
|
+
48,48,48,48,48,149,48,48,
|
|
666
621
|
48,48,48,48,48,48,48,48,
|
|
667
622
|
48,48,48,48,48,48,48,48,
|
|
668
623
|
48,48,48,48,48,48,48,48,
|
|
669
|
-
48,
|
|
624
|
+
48,152,153,154,155,48,48,48,
|
|
670
625
|
48,48,48,48,48,48,48,48,
|
|
671
626
|
48,48,48,48,48,48,48,48,
|
|
672
627
|
48,48,48,48,48,48,48,48,
|
|
673
|
-
48,
|
|
628
|
+
48,149,149,149,48,48,48,48,
|
|
674
629
|
48,48,48,48,48,48,48,48,
|
|
675
630
|
48,48,48,48,48,48,48,48,
|
|
676
631
|
48,48,48,48,48,48,48,48,
|
|
@@ -678,7 +633,7 @@ self._re_scanner_indicies = [
|
|
|
678
633
|
48,48,48,48,48,48,48,48,
|
|
679
634
|
48,48,48,48,48,48,48,48,
|
|
680
635
|
48,48,48,48,48,48,48,48,
|
|
681
|
-
48,48,48,48,48,
|
|
636
|
+
48,48,48,48,48,156,49,49,
|
|
682
637
|
49,49,49,49,49,49,49,49,
|
|
683
638
|
49,49,49,49,49,49,49,49,
|
|
684
639
|
49,49,49,49,49,49,49,49,
|
|
@@ -686,29 +641,29 @@ self._re_scanner_indicies = [
|
|
|
686
641
|
49,49,49,49,49,49,49,49,
|
|
687
642
|
49,49,49,49,49,49,49,49,
|
|
688
643
|
49,49,49,49,49,49,49,49,
|
|
689
|
-
49,49,49,49,49,49,
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
644
|
+
49,49,49,49,49,49,156,157,
|
|
645
|
+
157,157,157,157,157,157,157,157,
|
|
646
|
+
157,157,157,157,157,157,157,157,
|
|
647
|
+
157,157,157,157,157,157,157,157,
|
|
648
|
+
157,157,157,157,157,157,157,157,
|
|
649
|
+
157,157,157,157,157,157,157,157,
|
|
650
|
+
157,157,157,157,157,157,157,157,
|
|
651
|
+
157,157,157,157,157,157,157,157,
|
|
652
|
+
157,157,157,157,157,157,157,156,
|
|
653
|
+
158,156,160,159,159,159,159,159,
|
|
654
|
+
159,159,159,159,159,159,159,159,
|
|
655
|
+
159,159,159,159,159,159,159,159,
|
|
656
|
+
159,159,159,159,159,159,159,159,
|
|
657
|
+
159,159,159,159,159,159,159,159,
|
|
658
|
+
159,159,159,159,159,159,159,159,
|
|
659
|
+
159,159,159,159,159,159,159,159,
|
|
660
|
+
159,161,159,53,163,164,164,164,
|
|
661
|
+
164,164,164,164,164,164,164,164,
|
|
662
|
+
164,164,164,164,164,164,164,164,
|
|
663
|
+
164,164,164,164,164,164,164,164,
|
|
664
|
+
164,164,164,165,165,165,165,165,
|
|
665
|
+
165,165,165,165,165,165,165,165,
|
|
666
|
+
165,165,165,166,166,166,166,166,
|
|
712
667
|
58,58,58,58,58,58,58,58,
|
|
713
668
|
58,58,58,58,58,58,58,58,
|
|
714
669
|
58,58,58,58,58,58,58,58,
|
|
@@ -716,16 +671,16 @@ self._re_scanner_indicies = [
|
|
|
716
671
|
58,58,58,58,58,58,58,58,
|
|
717
672
|
58,58,58,58,58,58,58,58,
|
|
718
673
|
58,58,58,58,58,58,58,58,
|
|
719
|
-
58,58,58,
|
|
720
|
-
|
|
721
|
-
58,58,58,58,58,58,
|
|
722
|
-
58,58,58,
|
|
723
|
-
|
|
724
|
-
58,58,
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
58,
|
|
728
|
-
|
|
674
|
+
58,58,58,167,167,167,167,167,
|
|
675
|
+
167,167,167,58,58,58,58,58,
|
|
676
|
+
58,58,58,58,58,58,168,168,
|
|
677
|
+
58,58,58,168,58,58,58,58,
|
|
678
|
+
168,58,58,168,58,58,168,58,
|
|
679
|
+
58,58,168,58,58,58,168,168,
|
|
680
|
+
168,58,58,58,168,168,168,168,
|
|
681
|
+
168,168,58,168,58,58,58,58,
|
|
682
|
+
58,168,58,168,58,168,168,168,
|
|
683
|
+
168,168,168,168,58,58,58,58,
|
|
729
684
|
58,58,58,58,58,58,58,58,
|
|
730
685
|
58,58,58,58,58,58,58,58,
|
|
731
686
|
58,58,58,58,58,58,58,58,
|
|
@@ -733,7 +688,7 @@ self._re_scanner_indicies = [
|
|
|
733
688
|
58,58,58,58,58,58,58,58,
|
|
734
689
|
58,58,58,58,58,58,58,58,
|
|
735
690
|
58,58,58,58,58,58,58,58,
|
|
736
|
-
58,58,58,58,58,
|
|
691
|
+
58,58,58,58,58,169,59,59,
|
|
737
692
|
59,59,59,59,59,59,59,59,
|
|
738
693
|
59,59,59,59,59,59,59,59,
|
|
739
694
|
59,59,59,59,59,59,59,59,
|
|
@@ -741,41 +696,41 @@ self._re_scanner_indicies = [
|
|
|
741
696
|
59,59,59,59,59,59,59,59,
|
|
742
697
|
59,59,59,59,59,59,59,59,
|
|
743
698
|
59,59,59,59,59,59,59,59,
|
|
744
|
-
59,59,59,59,59,59,
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
169,169,169,169,169,169,169,169,
|
|
754
|
-
168,170,170,170,170,170,170,170,
|
|
755
|
-
170,168,171,171,171,171,171,171,
|
|
756
|
-
171,171,171,171,171,171,171,171,
|
|
757
|
-
171,171,171,171,171,171,171,171,
|
|
758
|
-
171,171,171,171,171,171,171,171,
|
|
759
|
-
172,172,172,172,172,172,172,172,
|
|
699
|
+
59,59,59,59,59,59,169,170,
|
|
700
|
+
170,170,170,170,170,170,170,170,
|
|
701
|
+
170,170,170,170,170,170,170,170,
|
|
702
|
+
170,170,170,170,170,170,170,170,
|
|
703
|
+
170,170,170,170,170,170,170,170,
|
|
704
|
+
170,170,170,170,170,170,170,170,
|
|
705
|
+
170,170,170,170,170,170,170,170,
|
|
706
|
+
170,170,170,170,170,170,170,170,
|
|
707
|
+
170,170,170,170,170,170,170,169,
|
|
760
708
|
172,172,172,172,172,172,172,172,
|
|
761
|
-
173,173,173,173,173,
|
|
709
|
+
171,173,173,173,173,173,173,173,
|
|
710
|
+
173,171,174,174,174,174,174,174,
|
|
711
|
+
174,174,174,174,174,174,174,174,
|
|
712
|
+
174,174,174,174,174,174,174,174,
|
|
713
|
+
174,174,174,174,174,174,174,174,
|
|
714
|
+
175,175,175,175,175,175,175,175,
|
|
715
|
+
175,175,175,175,175,175,175,175,
|
|
716
|
+
176,176,176,176,176,61,61,61,
|
|
762
717
|
61,61,61,61,61,61,61,61,
|
|
763
718
|
61,61,61,61,61,61,61,61,
|
|
764
719
|
61,61,61,61,61,61,61,61,
|
|
765
720
|
61,61,61,61,61,61,61,61,
|
|
766
721
|
61,61,61,61,61,61,61,61,
|
|
767
|
-
61,61,61,61,
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
61,
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
61,
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
722
|
+
61,61,61,61,177,61,61,61,
|
|
723
|
+
177,177,177,177,61,61,177,61,
|
|
724
|
+
178,179,179,179,179,179,179,179,
|
|
725
|
+
180,180,61,61,61,61,61,177,
|
|
726
|
+
61,64,64,181,182,61,61,64,
|
|
727
|
+
182,61,61,64,61,183,61,61,
|
|
728
|
+
184,61,182,182,61,61,61,182,
|
|
729
|
+
182,61,64,177,177,177,177,61,
|
|
730
|
+
61,185,185,63,182,185,185,61,
|
|
731
|
+
182,61,61,61,61,61,185,61,
|
|
732
|
+
184,61,185,182,185,186,185,182,
|
|
733
|
+
187,61,64,177,177,177,61,61,
|
|
779
734
|
61,61,61,61,61,61,61,61,
|
|
780
735
|
61,61,61,61,61,61,61,61,
|
|
781
736
|
61,61,61,61,61,61,61,61,
|
|
@@ -783,7 +738,7 @@ self._re_scanner_indicies = [
|
|
|
783
738
|
61,61,61,61,61,61,61,61,
|
|
784
739
|
61,61,61,61,61,61,61,61,
|
|
785
740
|
61,61,61,61,61,61,61,61,
|
|
786
|
-
61,61,61,61,61,61,61,
|
|
741
|
+
61,61,61,61,61,61,61,188,
|
|
787
742
|
62,62,62,62,62,62,62,62,
|
|
788
743
|
62,62,62,62,62,62,62,62,
|
|
789
744
|
62,62,62,62,62,62,62,62,
|
|
@@ -792,130 +747,118 @@ self._re_scanner_indicies = [
|
|
|
792
747
|
62,62,62,62,62,62,62,62,
|
|
793
748
|
62,62,62,62,62,62,62,62,
|
|
794
749
|
62,62,62,62,62,62,62,62,
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
209,
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
]
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
end
|
|
850
|
-
self._re_scanner_trans_targs = [
|
|
851
|
-
76,77,1,2,76,4,76,6,
|
|
852
|
-
76,8,76,76,10,16,11,76,
|
|
750
|
+
188,189,189,189,189,189,189,189,
|
|
751
|
+
189,189,189,189,189,189,189,189,
|
|
752
|
+
189,189,189,189,189,189,189,189,
|
|
753
|
+
189,189,189,189,189,189,189,189,
|
|
754
|
+
189,189,189,189,189,189,189,189,
|
|
755
|
+
189,189,189,189,189,189,189,189,
|
|
756
|
+
189,189,189,189,189,189,189,189,
|
|
757
|
+
189,189,189,189,189,189,189,189,
|
|
758
|
+
189,188,191,191,191,191,191,191,
|
|
759
|
+
191,191,190,192,192,192,192,192,
|
|
760
|
+
192,192,192,190,194,194,194,194,
|
|
761
|
+
194,194,194,194,195,195,193,195,
|
|
762
|
+
195,195,195,195,195,195,195,195,
|
|
763
|
+
195,193,195,195,195,195,195,195,
|
|
764
|
+
195,195,195,195,193,195,195,195,
|
|
765
|
+
195,195,195,195,195,195,195,193,
|
|
766
|
+
197,65,199,198,65,201,70,70,
|
|
767
|
+
70,70,70,70,70,70,70,70,
|
|
768
|
+
70,70,70,70,70,70,70,70,
|
|
769
|
+
70,70,70,70,70,70,70,70,
|
|
770
|
+
70,70,70,70,70,202,70,204,
|
|
771
|
+
203,70,73,70,206,206,206,206,
|
|
772
|
+
206,206,206,206,206,206,205,205,
|
|
773
|
+
205,205,205,205,205,206,206,206,
|
|
774
|
+
206,206,206,205,205,205,205,205,
|
|
775
|
+
205,205,205,205,205,205,205,205,
|
|
776
|
+
205,205,205,205,205,205,205,205,
|
|
777
|
+
205,205,205,205,205,206,206,206,
|
|
778
|
+
206,206,206,205,91,91,91,91,
|
|
779
|
+
91,91,91,91,91,91,205,205,
|
|
780
|
+
205,205,205,205,205,91,91,91,
|
|
781
|
+
91,91,91,205,205,205,205,205,
|
|
782
|
+
205,205,205,205,205,205,205,205,
|
|
783
|
+
205,205,205,205,205,205,205,205,
|
|
784
|
+
205,205,205,205,205,91,91,91,
|
|
785
|
+
91,91,91,205,208,207,210,209,
|
|
786
|
+
209,209,209,209,211,209,209,212,
|
|
787
|
+
212,212,212,212,212,212,212,212,
|
|
788
|
+
212,209,209,213,209,94,93,93,
|
|
789
|
+
93,93,93,214,93,93,214,214,
|
|
790
|
+
214,214,214,214,214,214,214,214,
|
|
791
|
+
93,96,96,96,96,96,96,96,
|
|
792
|
+
96,96,96,214,95,214,214,214,
|
|
793
|
+
214,214,214,96,96,96,96,96,
|
|
794
|
+
96,96,96,96,96,214,214,97,
|
|
795
|
+
97,97,97,97,97,97,97,97,
|
|
796
|
+
97,97,214,97,97,214,214,214,
|
|
797
|
+
214,214,214,214,214,214,214,97,
|
|
798
|
+
97,97,214,94,97,0
|
|
799
|
+
].freeze
|
|
800
|
+
|
|
801
|
+
RE_SCANNER_TRANS_TARGS = [
|
|
802
|
+
75,76,1,2,75,4,75,6,
|
|
803
|
+
75,8,75,75,10,16,11,75,
|
|
853
804
|
12,13,14,15,17,18,19,20,
|
|
854
|
-
21,23,29,24,
|
|
855
|
-
28,30,31,32,33,34,
|
|
856
|
-
|
|
857
|
-
93,
|
|
858
|
-
93,100,100,
|
|
859
|
-
106,116,106,118,
|
|
860
|
-
121,58,
|
|
861
|
-
64,65,66,
|
|
862
|
-
70,
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
95,96,93,97,98,
|
|
870
|
-
93,93,
|
|
871
|
-
93,101,102,103,104,
|
|
872
|
-
100,105,100,107,108,
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
106,
|
|
877
|
-
128,129,130,126
|
|
878
|
-
]
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
attr_accessor :_re_scanner_trans_actions
|
|
882
|
-
private :_re_scanner_trans_actions, :_re_scanner_trans_actions=
|
|
883
|
-
end
|
|
884
|
-
self._re_scanner_trans_actions = [
|
|
805
|
+
21,23,29,24,75,25,26,27,
|
|
806
|
+
28,30,31,32,33,34,75,36,
|
|
807
|
+
75,37,91,91,39,40,91,93,
|
|
808
|
+
93,41,93,93,93,44,45,93,
|
|
809
|
+
93,100,100,46,106,106,48,51,
|
|
810
|
+
0,106,116,106,118,54,106,119,
|
|
811
|
+
106,121,57,60,58,59,106,61,
|
|
812
|
+
62,63,64,65,66,106,123,124,
|
|
813
|
+
106,69,70,125,126,71,72,126,
|
|
814
|
+
73,74,3,77,78,79,80,81,
|
|
815
|
+
75,82,75,85,86,75,87,75,
|
|
816
|
+
88,75,75,89,75,75,75,75,
|
|
817
|
+
75,75,83,75,84,5,75,7,
|
|
818
|
+
75,75,75,75,75,75,75,75,
|
|
819
|
+
75,75,9,22,75,35,90,92,
|
|
820
|
+
91,38,94,95,96,93,97,98,
|
|
821
|
+
99,93,93,93,93,42,93,93,
|
|
822
|
+
43,93,93,93,101,102,103,104,
|
|
823
|
+
100,100,47,100,105,100,107,108,
|
|
824
|
+
109,106,110,112,115,50,106,53,
|
|
825
|
+
106,106,56,67,106,49,106,111,
|
|
826
|
+
106,106,113,114,106,117,106,52,
|
|
827
|
+
106,120,122,106,55,106,106,106,
|
|
828
|
+
68,126,127,128,129,130,126
|
|
829
|
+
].freeze
|
|
830
|
+
|
|
831
|
+
RE_SCANNER_TRANS_ACTIONS = [
|
|
885
832
|
1,2,0,0,3,0,4,0,
|
|
886
833
|
5,0,6,7,0,0,0,8,
|
|
887
834
|
0,0,0,0,0,0,0,0,
|
|
888
835
|
0,0,0,0,9,0,0,0,
|
|
889
836
|
0,0,0,0,0,0,10,0,
|
|
890
|
-
11,0,
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
0,0,0,0,0,
|
|
895
|
-
0,0,0,0,
|
|
896
|
-
0,0,
|
|
897
|
-
0,0,0,0,0,0,0,
|
|
898
|
-
39,40,0,0,
|
|
899
|
-
|
|
900
|
-
50,
|
|
837
|
+
11,0,12,13,0,0,14,15,
|
|
838
|
+
16,0,17,18,19,0,0,20,
|
|
839
|
+
21,22,23,0,24,25,0,0,
|
|
840
|
+
0,27,0,28,0,0,29,0,
|
|
841
|
+
30,0,0,0,0,0,31,0,
|
|
842
|
+
0,0,0,0,0,32,0,0,
|
|
843
|
+
33,0,0,34,35,0,0,36,
|
|
844
|
+
0,0,0,0,0,0,0,0,
|
|
845
|
+
39,40,41,0,0,42,0,43,
|
|
846
|
+
34,44,45,34,46,47,48,49,
|
|
847
|
+
50,51,34,52,0,0,53,0,
|
|
901
848
|
54,55,56,57,58,59,60,61,
|
|
902
|
-
62,0,0,
|
|
903
|
-
|
|
904
|
-
70,71,
|
|
905
|
-
76,
|
|
906
|
-
79,
|
|
907
|
-
0,0,0,
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
]
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
attr_accessor :_re_scanner_to_state_actions
|
|
916
|
-
private :_re_scanner_to_state_actions, :_re_scanner_to_state_actions=
|
|
917
|
-
end
|
|
918
|
-
self._re_scanner_to_state_actions = [
|
|
849
|
+
62,63,0,0,64,0,66,34,
|
|
850
|
+
67,0,0,34,34,68,0,34,
|
|
851
|
+
69,70,71,72,73,0,74,75,
|
|
852
|
+
0,76,77,78,0,34,34,0,
|
|
853
|
+
79,80,0,81,0,82,0,34,
|
|
854
|
+
34,83,0,0,0,0,84,0,
|
|
855
|
+
85,86,0,0,87,0,88,0,
|
|
856
|
+
89,90,0,0,91,34,92,0,
|
|
857
|
+
93,34,0,94,0,95,96,97,
|
|
858
|
+
0,98,34,34,34,34,99
|
|
859
|
+
].freeze
|
|
860
|
+
|
|
861
|
+
RE_SCANNER_TO_STATE_ACTIONS = [
|
|
919
862
|
0,0,0,0,0,0,0,0,
|
|
920
863
|
0,0,0,0,0,0,0,0,
|
|
921
864
|
0,0,0,0,0,0,0,0,
|
|
@@ -925,21 +868,17 @@ self._re_scanner_to_state_actions = [
|
|
|
925
868
|
0,0,0,0,0,0,0,0,
|
|
926
869
|
0,0,0,0,0,0,0,0,
|
|
927
870
|
0,0,0,0,0,0,0,0,
|
|
928
|
-
0,0,0,0,
|
|
871
|
+
0,0,0,37,0,0,0,0,
|
|
929
872
|
0,0,0,0,0,0,0,0,
|
|
930
|
-
0,0,
|
|
931
|
-
0,0,0,0,
|
|
932
|
-
0,0,
|
|
873
|
+
0,0,65,65,0,65,0,0,
|
|
874
|
+
0,0,0,0,65,0,0,0,
|
|
875
|
+
0,0,65,0,0,0,0,0,
|
|
933
876
|
0,0,0,0,0,0,0,0,
|
|
934
|
-
0,0,0,0,0,0,
|
|
877
|
+
0,0,0,0,0,0,65,0,
|
|
935
878
|
0,0,0
|
|
936
|
-
]
|
|
879
|
+
].freeze
|
|
937
880
|
|
|
938
|
-
|
|
939
|
-
attr_accessor :_re_scanner_from_state_actions
|
|
940
|
-
private :_re_scanner_from_state_actions, :_re_scanner_from_state_actions=
|
|
941
|
-
end
|
|
942
|
-
self._re_scanner_from_state_actions = [
|
|
881
|
+
RE_SCANNER_FROM_STATE_ACTIONS = [
|
|
943
882
|
0,0,0,0,0,0,0,0,
|
|
944
883
|
0,0,0,0,0,0,0,0,
|
|
945
884
|
0,0,0,0,0,0,0,0,
|
|
@@ -949,110 +888,106 @@ self._re_scanner_from_state_actions = [
|
|
|
949
888
|
0,0,0,0,0,0,0,0,
|
|
950
889
|
0,0,0,0,0,0,0,0,
|
|
951
890
|
0,0,0,0,0,0,0,0,
|
|
952
|
-
0,0,0,0,
|
|
891
|
+
0,0,0,38,0,0,0,0,
|
|
953
892
|
0,0,0,0,0,0,0,0,
|
|
954
|
-
0,0,
|
|
955
|
-
0,0,0,0,
|
|
956
|
-
0,0,
|
|
893
|
+
0,0,38,38,0,38,0,0,
|
|
894
|
+
0,0,0,0,38,0,0,0,
|
|
895
|
+
0,0,38,0,0,0,0,0,
|
|
957
896
|
0,0,0,0,0,0,0,0,
|
|
958
|
-
0,0,0,0,0,0,
|
|
897
|
+
0,0,0,0,0,0,38,0,
|
|
959
898
|
0,0,0
|
|
960
|
-
]
|
|
899
|
+
].freeze
|
|
961
900
|
|
|
962
|
-
|
|
963
|
-
attr_accessor :_re_scanner_eof_actions
|
|
964
|
-
private :_re_scanner_eof_actions, :_re_scanner_eof_actions=
|
|
965
|
-
end
|
|
966
|
-
self._re_scanner_eof_actions = [
|
|
901
|
+
RE_SCANNER_EOF_ACTIONS = [
|
|
967
902
|
0,0,0,0,0,0,0,0,
|
|
968
903
|
0,0,0,0,0,0,0,0,
|
|
969
904
|
0,0,0,0,0,0,0,0,
|
|
970
905
|
0,0,0,0,0,0,0,0,
|
|
971
|
-
0,0,0,0,0,0,12,12,
|
|
972
|
-
12,12,0,0,0,0,0,0,
|
|
973
|
-
0,0,0,25,25,0,25,25,
|
|
974
|
-
0,25,25,25,25,25,25,25,
|
|
975
|
-
25,25,25,25,25,0,0,0,
|
|
976
906
|
0,0,0,0,0,0,0,0,
|
|
977
907
|
0,0,0,0,0,0,0,0,
|
|
978
|
-
0,0,
|
|
908
|
+
0,0,26,26,0,26,26,0,
|
|
909
|
+
26,26,26,26,26,26,26,26,
|
|
910
|
+
26,26,26,26,0,0,0,0,
|
|
979
911
|
0,0,0,0,0,0,0,0,
|
|
980
|
-
0,0,
|
|
912
|
+
0,0,0,0,0,0,0,0,
|
|
913
|
+
0,0,0,0,0,26,0,0,
|
|
914
|
+
0,0,0,0,0,0,0,0,
|
|
915
|
+
0,0,26,0,0,0,0,0,
|
|
981
916
|
0,0,0,0,0,0,0,0,
|
|
982
917
|
0,0,0,0,0,0,0,0,
|
|
983
918
|
0,0,0
|
|
984
|
-
]
|
|
919
|
+
].freeze
|
|
985
920
|
|
|
986
|
-
|
|
987
|
-
attr_accessor :_re_scanner_eof_trans
|
|
988
|
-
private :_re_scanner_eof_trans, :_re_scanner_eof_trans=
|
|
989
|
-
end
|
|
990
|
-
self._re_scanner_eof_trans = [
|
|
921
|
+
RE_SCANNER_EOF_TRANS = [
|
|
991
922
|
0,1,1,1,5,5,5,5,
|
|
992
923
|
5,12,12,12,12,12,12,12,
|
|
993
924
|
12,12,12,12,12,12,12,12,
|
|
994
925
|
12,12,12,12,12,12,12,12,
|
|
995
|
-
12,12,12,39,39,39,
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
0,0,0,0,
|
|
1000
|
-
|
|
1001
|
-
118,
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
]
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
self.re_scanner_error = 0;
|
|
926
|
+
12,12,12,39,39,39,43,43,
|
|
927
|
+
43,48,48,51,53,53,58,58,
|
|
928
|
+
61,61,0,0,68,0,0,73,
|
|
929
|
+
0,0,0,0,0,0,0,0,
|
|
930
|
+
0,0,0,0,89,89,89,93,
|
|
931
|
+
93,93,93,0,118,118,119,119,
|
|
932
|
+
118,120,122,124,124,130,132,134,
|
|
933
|
+
136,141,0,0,145,0,157,157,
|
|
934
|
+
157,157,160,163,0,170,170,170,
|
|
935
|
+
172,172,0,189,189,189,191,191,
|
|
936
|
+
194,194,194,194,197,197,197,201,
|
|
937
|
+
201,201,201,206,206,208,0,215,
|
|
938
|
+
215,215,215
|
|
939
|
+
].freeze
|
|
940
|
+
|
|
941
|
+
RE_SCANNER_START = 75.freeze
|
|
942
|
+
RE_SCANNER_FIRST_FINAL = 75.freeze
|
|
943
|
+
RE_SCANNER_ERROR = 0.freeze
|
|
944
|
+
|
|
945
|
+
RE_SCANNER_EN_CHAR_TYPE = 90.freeze
|
|
946
|
+
RE_SCANNER_EN_UNICODE_PROPERTY = 91.freeze
|
|
947
|
+
RE_SCANNER_EN_CHARACTER_SET = 93.freeze
|
|
948
|
+
RE_SCANNER_EN_SET_ESCAPE_SEQUENCE = 100.freeze
|
|
949
|
+
RE_SCANNER_EN_ESCAPE_SEQUENCE = 106.freeze
|
|
950
|
+
RE_SCANNER_EN_CONDITIONAL_EXPRESSION = 126.freeze
|
|
951
|
+
RE_SCANNER_EN_MAIN = 75.freeze
|
|
1022
952
|
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
self.
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
953
|
+
# Scans the given regular expression text, or Regexp object and collects the
|
|
954
|
+
# emitted token into an array that gets returned at the end. If a block is
|
|
955
|
+
# given, it gets called for each emitted token.
|
|
956
|
+
#
|
|
957
|
+
# This method may raise errors if a syntax error is encountered.
|
|
958
|
+
# --------------------------------------------------------------------------
|
|
959
|
+
def self.scan(input_object, options: nil, collect_tokens: true, &block)
|
|
960
|
+
new.scan(input_object, options: options, collect_tokens: collect_tokens, &block)
|
|
961
|
+
end
|
|
962
|
+
|
|
963
|
+
def scan(input_object, options: nil, collect_tokens: true, &block)
|
|
964
|
+
self.collect_tokens = collect_tokens
|
|
965
|
+
self.literal_run = nil
|
|
966
|
+
stack = []
|
|
967
|
+
|
|
968
|
+
input = input_object.is_a?(Regexp) ? input_object.source : input_object
|
|
969
|
+
self.free_spacing = free_spacing?(input_object, options)
|
|
970
|
+
self.regexp_encoding = extract_encoding(input_object, options)
|
|
971
|
+
self.spacing_stack = [{:free_spacing => free_spacing, :depth => 0}]
|
|
972
|
+
|
|
973
|
+
# Keep token text stable if a callback mutates the caller's String.
|
|
974
|
+
source = input.dup.freeze
|
|
975
|
+
data = source.unpack("c*")
|
|
976
|
+
eof = data.length
|
|
977
|
+
|
|
978
|
+
self.tokens = []
|
|
979
|
+
self.block = block
|
|
980
|
+
|
|
981
|
+
self.set_depth = 0
|
|
982
|
+
self.group_depth = 0
|
|
983
|
+
self.capturing_group_count = 0
|
|
984
|
+
self.conditional_stack = []
|
|
985
|
+
self.char_pos = 0
|
|
1051
986
|
|
|
1052
987
|
begin
|
|
1053
988
|
p ||= 0
|
|
1054
989
|
pe ||= data.length
|
|
1055
|
-
cs =
|
|
990
|
+
cs = RE_SCANNER_START
|
|
1056
991
|
top = 0
|
|
1057
992
|
ts = nil
|
|
1058
993
|
te = nil
|
|
@@ -1080,41 +1015,41 @@ begin
|
|
|
1080
1015
|
end
|
|
1081
1016
|
end
|
|
1082
1017
|
if _goto_level <= _resume
|
|
1083
|
-
case
|
|
1084
|
-
when
|
|
1018
|
+
case RE_SCANNER_FROM_STATE_ACTIONS[cs]
|
|
1019
|
+
when 38
|
|
1085
1020
|
begin
|
|
1086
1021
|
ts = p
|
|
1087
1022
|
end
|
|
1088
1023
|
end
|
|
1089
1024
|
_keys = cs << 1
|
|
1090
|
-
_inds =
|
|
1091
|
-
_slen =
|
|
1025
|
+
_inds = RE_SCANNER_INDEX_OFFSETS[cs]
|
|
1026
|
+
_slen = RE_SCANNER_KEY_SPANS[cs]
|
|
1092
1027
|
_wide = data[p].ord
|
|
1093
1028
|
_trans = if ( _slen > 0 &&
|
|
1094
|
-
|
|
1095
|
-
_wide <=
|
|
1029
|
+
RE_SCANNER_TRANS_KEYS[_keys] <= _wide &&
|
|
1030
|
+
_wide <= RE_SCANNER_TRANS_KEYS[_keys + 1]
|
|
1096
1031
|
)
|
|
1097
|
-
|
|
1032
|
+
RE_SCANNER_INDICIES[ _inds + _wide - RE_SCANNER_TRANS_KEYS[_keys] ]
|
|
1098
1033
|
else
|
|
1099
|
-
|
|
1034
|
+
RE_SCANNER_INDICIES[ _inds + _slen ]
|
|
1100
1035
|
end
|
|
1101
1036
|
end
|
|
1102
1037
|
if _goto_level <= _eof_trans
|
|
1103
|
-
cs =
|
|
1104
|
-
if
|
|
1105
|
-
case
|
|
1106
|
-
when
|
|
1038
|
+
cs = RE_SCANNER_TRANS_TARGS[_trans]
|
|
1039
|
+
if RE_SCANNER_TRANS_ACTIONS[_trans] != 0
|
|
1040
|
+
case RE_SCANNER_TRANS_ACTIONS[_trans]
|
|
1041
|
+
when 40
|
|
1107
1042
|
begin
|
|
1108
1043
|
self.group_depth = group_depth + 1 end
|
|
1109
|
-
when
|
|
1044
|
+
when 34
|
|
1110
1045
|
begin
|
|
1111
1046
|
te = p+1
|
|
1112
1047
|
end
|
|
1113
|
-
when
|
|
1048
|
+
when 66
|
|
1114
1049
|
begin
|
|
1115
1050
|
te = p+1
|
|
1116
1051
|
begin
|
|
1117
|
-
case text = copy(
|
|
1052
|
+
case text = copy(source, ts-1,te)
|
|
1118
1053
|
when '\d'; emit(:type, :digit, text)
|
|
1119
1054
|
when '\D'; emit(:type, :nondigit, text)
|
|
1120
1055
|
when '\h'; emit(:type, :hex, text)
|
|
@@ -1135,11 +1070,11 @@ te = p+1
|
|
|
1135
1070
|
|
|
1136
1071
|
end
|
|
1137
1072
|
end
|
|
1138
|
-
when
|
|
1073
|
+
when 14
|
|
1139
1074
|
begin
|
|
1140
1075
|
te = p+1
|
|
1141
1076
|
begin
|
|
1142
|
-
text = copy(
|
|
1077
|
+
text = copy(source, ts-1,te)
|
|
1143
1078
|
type = (text[1] == 'P') ^ (text[3] == '^') ? :nonproperty : :property
|
|
1144
1079
|
|
|
1145
1080
|
name = text[3..-2].gsub(/[\^\s_\-]/, '').downcase
|
|
@@ -1158,7 +1093,35 @@ te = p+1
|
|
|
1158
1093
|
|
|
1159
1094
|
end
|
|
1160
1095
|
end
|
|
1161
|
-
when
|
|
1096
|
+
when 67
|
|
1097
|
+
begin
|
|
1098
|
+
te = p
|
|
1099
|
+
p = p - 1; begin
|
|
1100
|
+
emit(:escape, :literal, copy(source, ts-1,te))
|
|
1101
|
+
begin
|
|
1102
|
+
top -= 1
|
|
1103
|
+
cs = stack[top]
|
|
1104
|
+
_goto_level = _again
|
|
1105
|
+
next
|
|
1106
|
+
end
|
|
1107
|
+
|
|
1108
|
+
end
|
|
1109
|
+
end
|
|
1110
|
+
when 13
|
|
1111
|
+
begin
|
|
1112
|
+
begin p = ((te))-1; end
|
|
1113
|
+
begin
|
|
1114
|
+
emit(:escape, :literal, copy(source, ts-1,te))
|
|
1115
|
+
begin
|
|
1116
|
+
top -= 1
|
|
1117
|
+
cs = stack[top]
|
|
1118
|
+
_goto_level = _again
|
|
1119
|
+
next
|
|
1120
|
+
end
|
|
1121
|
+
|
|
1122
|
+
end
|
|
1123
|
+
end
|
|
1124
|
+
when 18
|
|
1162
1125
|
begin
|
|
1163
1126
|
te = p+1
|
|
1164
1127
|
begin # special case, emits two tokens
|
|
@@ -1166,7 +1129,7 @@ te = p+1
|
|
|
1166
1129
|
emit(:set, :intersection, '&&')
|
|
1167
1130
|
end
|
|
1168
1131
|
end
|
|
1169
|
-
when
|
|
1132
|
+
when 72
|
|
1170
1133
|
begin
|
|
1171
1134
|
te = p+1
|
|
1172
1135
|
begin
|
|
@@ -1177,14 +1140,14 @@ te = p+1
|
|
|
1177
1140
|
end
|
|
1178
1141
|
end
|
|
1179
1142
|
end
|
|
1180
|
-
when
|
|
1143
|
+
when 74
|
|
1181
1144
|
begin
|
|
1182
1145
|
te = p+1
|
|
1183
1146
|
begin
|
|
1184
1147
|
emit(:set, :intersection, '&&')
|
|
1185
1148
|
end
|
|
1186
1149
|
end
|
|
1187
|
-
when
|
|
1150
|
+
when 70
|
|
1188
1151
|
begin
|
|
1189
1152
|
te = p+1
|
|
1190
1153
|
begin
|
|
@@ -1198,22 +1161,22 @@ te = p+1
|
|
|
1198
1161
|
|
|
1199
1162
|
end
|
|
1200
1163
|
end
|
|
1201
|
-
when
|
|
1164
|
+
when 68
|
|
1202
1165
|
begin
|
|
1203
1166
|
te = p+1
|
|
1204
1167
|
begin
|
|
1205
|
-
emit(:literal, :literal, copy(
|
|
1168
|
+
emit(:literal, :literal, copy(source, ts, te))
|
|
1206
1169
|
end
|
|
1207
1170
|
end
|
|
1208
|
-
when
|
|
1171
|
+
when 16
|
|
1209
1172
|
begin
|
|
1210
1173
|
te = p+1
|
|
1211
1174
|
begin
|
|
1212
|
-
text = copy(
|
|
1175
|
+
text = copy(source, ts, te)
|
|
1213
1176
|
emit(:literal, :literal, text)
|
|
1214
1177
|
end
|
|
1215
1178
|
end
|
|
1216
|
-
when
|
|
1179
|
+
when 75
|
|
1217
1180
|
begin
|
|
1218
1181
|
te = p
|
|
1219
1182
|
p = p - 1; begin
|
|
@@ -1226,7 +1189,7 @@ p = p - 1; begin
|
|
|
1226
1189
|
end
|
|
1227
1190
|
end
|
|
1228
1191
|
end
|
|
1229
|
-
when
|
|
1192
|
+
when 78
|
|
1230
1193
|
begin
|
|
1231
1194
|
te = p
|
|
1232
1195
|
p = p - 1; begin
|
|
@@ -1241,15 +1204,15 @@ p = p - 1; begin
|
|
|
1241
1204
|
|
|
1242
1205
|
end
|
|
1243
1206
|
end
|
|
1244
|
-
when
|
|
1207
|
+
when 73
|
|
1245
1208
|
begin
|
|
1246
1209
|
te = p
|
|
1247
1210
|
p = p - 1; begin
|
|
1248
|
-
text = copy(
|
|
1211
|
+
text = copy(source, ts, te)
|
|
1249
1212
|
emit(:literal, :literal, text)
|
|
1250
1213
|
end
|
|
1251
1214
|
end
|
|
1252
|
-
when
|
|
1215
|
+
when 17
|
|
1253
1216
|
begin
|
|
1254
1217
|
begin p = ((te))-1; end
|
|
1255
1218
|
begin
|
|
@@ -1262,7 +1225,7 @@ p = p - 1; begin
|
|
|
1262
1225
|
end
|
|
1263
1226
|
end
|
|
1264
1227
|
end
|
|
1265
|
-
when
|
|
1228
|
+
when 20
|
|
1266
1229
|
begin
|
|
1267
1230
|
begin p = ((te))-1; end
|
|
1268
1231
|
begin
|
|
@@ -1277,19 +1240,19 @@ p = p - 1; begin
|
|
|
1277
1240
|
|
|
1278
1241
|
end
|
|
1279
1242
|
end
|
|
1280
|
-
when
|
|
1243
|
+
when 15
|
|
1281
1244
|
begin
|
|
1282
1245
|
begin p = ((te))-1; end
|
|
1283
1246
|
begin
|
|
1284
|
-
text = copy(
|
|
1247
|
+
text = copy(source, ts, te)
|
|
1285
1248
|
emit(:literal, :literal, text)
|
|
1286
1249
|
end
|
|
1287
1250
|
end
|
|
1288
|
-
when
|
|
1251
|
+
when 82
|
|
1289
1252
|
begin
|
|
1290
1253
|
te = p+1
|
|
1291
1254
|
begin
|
|
1292
|
-
emit(:escape, :octal, copy(
|
|
1255
|
+
emit(:escape, :octal, copy(source, ts-1,te))
|
|
1293
1256
|
begin
|
|
1294
1257
|
top -= 1
|
|
1295
1258
|
cs = stack[top]
|
|
@@ -1299,7 +1262,7 @@ te = p+1
|
|
|
1299
1262
|
|
|
1300
1263
|
end
|
|
1301
1264
|
end
|
|
1302
|
-
when
|
|
1265
|
+
when 79
|
|
1303
1266
|
begin
|
|
1304
1267
|
te = p+1
|
|
1305
1268
|
begin
|
|
@@ -1315,11 +1278,11 @@ te = p+1
|
|
|
1315
1278
|
|
|
1316
1279
|
end
|
|
1317
1280
|
end
|
|
1318
|
-
when
|
|
1281
|
+
when 23
|
|
1319
1282
|
begin
|
|
1320
1283
|
te = p+1
|
|
1321
1284
|
begin
|
|
1322
|
-
emit(:escape, :literal, copy(
|
|
1285
|
+
emit(:escape, :literal, copy(source, ts-1,te))
|
|
1323
1286
|
begin
|
|
1324
1287
|
top -= 1
|
|
1325
1288
|
cs = stack[top]
|
|
@@ -1329,11 +1292,11 @@ te = p+1
|
|
|
1329
1292
|
|
|
1330
1293
|
end
|
|
1331
1294
|
end
|
|
1332
|
-
when
|
|
1295
|
+
when 81
|
|
1333
1296
|
begin
|
|
1334
1297
|
te = p
|
|
1335
1298
|
p = p - 1; begin
|
|
1336
|
-
emit(:escape, :octal, copy(
|
|
1299
|
+
emit(:escape, :octal, copy(source, ts-1,te))
|
|
1337
1300
|
begin
|
|
1338
1301
|
top -= 1
|
|
1339
1302
|
cs = stack[top]
|
|
@@ -1343,11 +1306,11 @@ p = p - 1; begin
|
|
|
1343
1306
|
|
|
1344
1307
|
end
|
|
1345
1308
|
end
|
|
1346
|
-
when
|
|
1309
|
+
when 80
|
|
1347
1310
|
begin
|
|
1348
1311
|
te = p
|
|
1349
1312
|
p = p - 1; begin
|
|
1350
|
-
emit(:escape, :literal, copy(
|
|
1313
|
+
emit(:escape, :literal, copy(source, ts-1,te))
|
|
1351
1314
|
begin
|
|
1352
1315
|
top -= 1
|
|
1353
1316
|
cs = stack[top]
|
|
@@ -1357,11 +1320,11 @@ p = p - 1; begin
|
|
|
1357
1320
|
|
|
1358
1321
|
end
|
|
1359
1322
|
end
|
|
1360
|
-
when
|
|
1323
|
+
when 22
|
|
1361
1324
|
begin
|
|
1362
1325
|
begin p = ((te))-1; end
|
|
1363
1326
|
begin
|
|
1364
|
-
emit(:escape, :literal, copy(
|
|
1327
|
+
emit(:escape, :literal, copy(source, ts-1,te))
|
|
1365
1328
|
begin
|
|
1366
1329
|
top -= 1
|
|
1367
1330
|
cs = stack[top]
|
|
@@ -1371,11 +1334,11 @@ p = p - 1; begin
|
|
|
1371
1334
|
|
|
1372
1335
|
end
|
|
1373
1336
|
end
|
|
1374
|
-
when
|
|
1337
|
+
when 89
|
|
1375
1338
|
begin
|
|
1376
1339
|
te = p+1
|
|
1377
1340
|
begin
|
|
1378
|
-
emit(:escape, :octal, copy(
|
|
1341
|
+
emit(:escape, :octal, copy(source, ts-1,te))
|
|
1379
1342
|
begin
|
|
1380
1343
|
top -= 1
|
|
1381
1344
|
cs = stack[top]
|
|
@@ -1385,11 +1348,11 @@ te = p+1
|
|
|
1385
1348
|
|
|
1386
1349
|
end
|
|
1387
1350
|
end
|
|
1388
|
-
when
|
|
1351
|
+
when 83
|
|
1389
1352
|
begin
|
|
1390
1353
|
te = p+1
|
|
1391
1354
|
begin
|
|
1392
|
-
case text = copy(
|
|
1355
|
+
case text = copy(source, ts-1,te)
|
|
1393
1356
|
when '\.'; emit(:escape, :dot, text)
|
|
1394
1357
|
when '\|'; emit(:escape, :alternation, text)
|
|
1395
1358
|
when '\^'; emit(:escape, :bol, text)
|
|
@@ -1415,13 +1378,13 @@ te = p+1
|
|
|
1415
1378
|
|
|
1416
1379
|
end
|
|
1417
1380
|
end
|
|
1418
|
-
when
|
|
1381
|
+
when 86
|
|
1419
1382
|
begin
|
|
1420
1383
|
te = p+1
|
|
1421
1384
|
begin
|
|
1422
1385
|
# \b is emitted as backspace only when inside a character set, otherwise
|
|
1423
1386
|
# it is a word boundary anchor. A syntax might "normalize" it if needed.
|
|
1424
|
-
case text = copy(
|
|
1387
|
+
case text = copy(source, ts-1,te)
|
|
1425
1388
|
when '\a'; emit(:escape, :bell, text)
|
|
1426
1389
|
when '\b'; emit(:escape, :backspace, text)
|
|
1427
1390
|
when '\e'; emit(:escape, :escape, text)
|
|
@@ -1440,11 +1403,11 @@ te = p+1
|
|
|
1440
1403
|
|
|
1441
1404
|
end
|
|
1442
1405
|
end
|
|
1443
|
-
when
|
|
1406
|
+
when 31
|
|
1444
1407
|
begin
|
|
1445
1408
|
te = p+1
|
|
1446
1409
|
begin
|
|
1447
|
-
text = copy(
|
|
1410
|
+
text = copy(source, ts-1,te)
|
|
1448
1411
|
if text[2] == '{'
|
|
1449
1412
|
emit(:escape, :codepoint_list, text)
|
|
1450
1413
|
else
|
|
@@ -1459,11 +1422,11 @@ te = p+1
|
|
|
1459
1422
|
|
|
1460
1423
|
end
|
|
1461
1424
|
end
|
|
1462
|
-
when
|
|
1425
|
+
when 96
|
|
1463
1426
|
begin
|
|
1464
1427
|
te = p+1
|
|
1465
1428
|
begin
|
|
1466
|
-
emit(:escape, :hex, copy(
|
|
1429
|
+
emit(:escape, :hex, copy(source, ts-1,te))
|
|
1467
1430
|
begin
|
|
1468
1431
|
top -= 1
|
|
1469
1432
|
cs = stack[top]
|
|
@@ -1473,11 +1436,11 @@ te = p+1
|
|
|
1473
1436
|
|
|
1474
1437
|
end
|
|
1475
1438
|
end
|
|
1476
|
-
when
|
|
1439
|
+
when 27
|
|
1477
1440
|
begin
|
|
1478
1441
|
te = p+1
|
|
1479
1442
|
begin
|
|
1480
|
-
emit_meta_control_sequence(data, ts, te, :control)
|
|
1443
|
+
emit_meta_control_sequence(data, source, ts, te, :control)
|
|
1481
1444
|
begin
|
|
1482
1445
|
top -= 1
|
|
1483
1446
|
cs = stack[top]
|
|
@@ -1487,11 +1450,11 @@ te = p+1
|
|
|
1487
1450
|
|
|
1488
1451
|
end
|
|
1489
1452
|
end
|
|
1490
|
-
when
|
|
1453
|
+
when 29
|
|
1491
1454
|
begin
|
|
1492
1455
|
te = p+1
|
|
1493
1456
|
begin
|
|
1494
|
-
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
|
1457
|
+
emit_meta_control_sequence(data, source, ts, te, :meta_sequence)
|
|
1495
1458
|
begin
|
|
1496
1459
|
top -= 1
|
|
1497
1460
|
cs = stack[top]
|
|
@@ -1501,43 +1464,43 @@ te = p+1
|
|
|
1501
1464
|
|
|
1502
1465
|
end
|
|
1503
1466
|
end
|
|
1504
|
-
when
|
|
1467
|
+
when 84
|
|
1505
1468
|
begin
|
|
1506
1469
|
te = p+1
|
|
1507
1470
|
begin
|
|
1508
1471
|
p = p - 1;
|
|
1509
|
-
cs = ((in_set? ? 93 :
|
|
1472
|
+
cs = ((in_set? ? 93 : 75));
|
|
1510
1473
|
begin
|
|
1511
1474
|
stack[top] = cs
|
|
1512
1475
|
top+= 1
|
|
1513
|
-
cs =
|
|
1476
|
+
cs = 90
|
|
1514
1477
|
_goto_level = _again
|
|
1515
1478
|
next
|
|
1516
1479
|
end
|
|
1517
1480
|
|
|
1518
1481
|
end
|
|
1519
1482
|
end
|
|
1520
|
-
when
|
|
1483
|
+
when 85
|
|
1521
1484
|
begin
|
|
1522
1485
|
te = p+1
|
|
1523
1486
|
begin
|
|
1524
1487
|
p = p - 1;
|
|
1525
|
-
cs = ((in_set? ? 93 :
|
|
1488
|
+
cs = ((in_set? ? 93 : 75));
|
|
1526
1489
|
begin
|
|
1527
1490
|
stack[top] = cs
|
|
1528
1491
|
top+= 1
|
|
1529
|
-
cs =
|
|
1492
|
+
cs = 91
|
|
1530
1493
|
_goto_level = _again
|
|
1531
1494
|
next
|
|
1532
1495
|
end
|
|
1533
1496
|
|
|
1534
1497
|
end
|
|
1535
1498
|
end
|
|
1536
|
-
when
|
|
1499
|
+
when 25
|
|
1537
1500
|
begin
|
|
1538
1501
|
te = p+1
|
|
1539
1502
|
begin
|
|
1540
|
-
emit(:escape, :literal, copy(
|
|
1503
|
+
emit(:escape, :literal, copy(source, ts-1,te))
|
|
1541
1504
|
begin
|
|
1542
1505
|
top -= 1
|
|
1543
1506
|
cs = stack[top]
|
|
@@ -1547,11 +1510,11 @@ te = p+1
|
|
|
1547
1510
|
|
|
1548
1511
|
end
|
|
1549
1512
|
end
|
|
1550
|
-
when
|
|
1513
|
+
when 90
|
|
1551
1514
|
begin
|
|
1552
1515
|
te = p
|
|
1553
1516
|
p = p - 1; begin
|
|
1554
|
-
text = copy(
|
|
1517
|
+
text = copy(source, ts-1,te)
|
|
1555
1518
|
|
|
1556
1519
|
# If not enough groups have been opened, there is a fallback to either an
|
|
1557
1520
|
# octal or literal interpretation for 2+ digit numerical escapes.
|
|
@@ -1574,11 +1537,11 @@ p = p - 1; begin
|
|
|
1574
1537
|
|
|
1575
1538
|
end
|
|
1576
1539
|
end
|
|
1577
|
-
when
|
|
1540
|
+
when 88
|
|
1578
1541
|
begin
|
|
1579
1542
|
te = p
|
|
1580
1543
|
p = p - 1; begin
|
|
1581
|
-
emit(:escape, :octal, copy(
|
|
1544
|
+
emit(:escape, :octal, copy(source, ts-1,te))
|
|
1582
1545
|
begin
|
|
1583
1546
|
top -= 1
|
|
1584
1547
|
cs = stack[top]
|
|
@@ -1588,11 +1551,11 @@ p = p - 1; begin
|
|
|
1588
1551
|
|
|
1589
1552
|
end
|
|
1590
1553
|
end
|
|
1591
|
-
when
|
|
1554
|
+
when 97
|
|
1592
1555
|
begin
|
|
1593
1556
|
te = p
|
|
1594
1557
|
p = p - 1; begin
|
|
1595
|
-
text = copy(
|
|
1558
|
+
text = copy(source, ts-1,te)
|
|
1596
1559
|
if regexp_encoding == Encoding::BINARY
|
|
1597
1560
|
text.split(/(?=\\)/).each { |part| emit(:escape, :hex, part) }
|
|
1598
1561
|
else
|
|
@@ -1607,11 +1570,11 @@ p = p - 1; begin
|
|
|
1607
1570
|
|
|
1608
1571
|
end
|
|
1609
1572
|
end
|
|
1610
|
-
when
|
|
1573
|
+
when 95
|
|
1611
1574
|
begin
|
|
1612
1575
|
te = p
|
|
1613
1576
|
p = p - 1; begin
|
|
1614
|
-
emit(:escape, :hex, copy(
|
|
1577
|
+
emit(:escape, :hex, copy(source, ts-1,te))
|
|
1615
1578
|
begin
|
|
1616
1579
|
top -= 1
|
|
1617
1580
|
cs = stack[top]
|
|
@@ -1621,11 +1584,11 @@ p = p - 1; begin
|
|
|
1621
1584
|
|
|
1622
1585
|
end
|
|
1623
1586
|
end
|
|
1624
|
-
when
|
|
1587
|
+
when 92
|
|
1625
1588
|
begin
|
|
1626
1589
|
te = p
|
|
1627
1590
|
p = p - 1; begin
|
|
1628
|
-
emit_meta_control_sequence(data, ts, te, :control)
|
|
1591
|
+
emit_meta_control_sequence(data, source, ts, te, :control)
|
|
1629
1592
|
begin
|
|
1630
1593
|
top -= 1
|
|
1631
1594
|
cs = stack[top]
|
|
@@ -1635,11 +1598,11 @@ p = p - 1; begin
|
|
|
1635
1598
|
|
|
1636
1599
|
end
|
|
1637
1600
|
end
|
|
1638
|
-
when
|
|
1601
|
+
when 94
|
|
1639
1602
|
begin
|
|
1640
1603
|
te = p
|
|
1641
1604
|
p = p - 1; begin
|
|
1642
|
-
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
|
1605
|
+
emit_meta_control_sequence(data, source, ts, te, :meta_sequence)
|
|
1643
1606
|
begin
|
|
1644
1607
|
top -= 1
|
|
1645
1608
|
cs = stack[top]
|
|
@@ -1649,11 +1612,11 @@ p = p - 1; begin
|
|
|
1649
1612
|
|
|
1650
1613
|
end
|
|
1651
1614
|
end
|
|
1652
|
-
when
|
|
1615
|
+
when 87
|
|
1653
1616
|
begin
|
|
1654
1617
|
te = p
|
|
1655
1618
|
p = p - 1; begin
|
|
1656
|
-
emit(:escape, :literal, copy(
|
|
1619
|
+
emit(:escape, :literal, copy(source, ts-1,te))
|
|
1657
1620
|
begin
|
|
1658
1621
|
top -= 1
|
|
1659
1622
|
cs = stack[top]
|
|
@@ -1663,11 +1626,11 @@ p = p - 1; begin
|
|
|
1663
1626
|
|
|
1664
1627
|
end
|
|
1665
1628
|
end
|
|
1666
|
-
when
|
|
1629
|
+
when 33
|
|
1667
1630
|
begin
|
|
1668
1631
|
begin p = ((te))-1; end
|
|
1669
1632
|
begin
|
|
1670
|
-
text = copy(
|
|
1633
|
+
text = copy(source, ts-1,te)
|
|
1671
1634
|
if regexp_encoding == Encoding::BINARY
|
|
1672
1635
|
text.split(/(?=\\)/).each { |part| emit(:escape, :hex, part) }
|
|
1673
1636
|
else
|
|
@@ -1682,11 +1645,11 @@ p = p - 1; begin
|
|
|
1682
1645
|
|
|
1683
1646
|
end
|
|
1684
1647
|
end
|
|
1685
|
-
when
|
|
1648
|
+
when 24
|
|
1686
1649
|
begin
|
|
1687
1650
|
begin p = ((te))-1; end
|
|
1688
1651
|
begin
|
|
1689
|
-
emit(:escape, :literal, copy(
|
|
1652
|
+
emit(:escape, :literal, copy(source, ts-1,te))
|
|
1690
1653
|
begin
|
|
1691
1654
|
top -= 1
|
|
1692
1655
|
cs = stack[top]
|
|
@@ -1696,17 +1659,17 @@ p = p - 1; begin
|
|
|
1696
1659
|
|
|
1697
1660
|
end
|
|
1698
1661
|
end
|
|
1699
|
-
when
|
|
1662
|
+
when 36
|
|
1700
1663
|
begin
|
|
1701
1664
|
te = p+1
|
|
1702
1665
|
begin
|
|
1703
|
-
text = copy(
|
|
1666
|
+
text = copy(source, ts, te-1)
|
|
1704
1667
|
text =~ /[^0]/ or raise ValidationError.for(:backref, 'condition', 'invalid ref ID')
|
|
1705
1668
|
emit(:conditional, :condition, text)
|
|
1706
1669
|
emit(:conditional, :condition_close, ')')
|
|
1707
1670
|
end
|
|
1708
1671
|
end
|
|
1709
|
-
when
|
|
1672
|
+
when 98
|
|
1710
1673
|
begin
|
|
1711
1674
|
te = p+1
|
|
1712
1675
|
begin
|
|
@@ -1714,14 +1677,14 @@ te = p+1
|
|
|
1714
1677
|
begin
|
|
1715
1678
|
stack[top] = cs
|
|
1716
1679
|
top+= 1
|
|
1717
|
-
cs =
|
|
1680
|
+
cs = 75
|
|
1718
1681
|
_goto_level = _again
|
|
1719
1682
|
next
|
|
1720
1683
|
end
|
|
1721
1684
|
|
|
1722
1685
|
end
|
|
1723
1686
|
end
|
|
1724
|
-
when
|
|
1687
|
+
when 99
|
|
1725
1688
|
begin
|
|
1726
1689
|
te = p
|
|
1727
1690
|
p = p - 1; begin
|
|
@@ -1729,14 +1692,14 @@ p = p - 1; begin
|
|
|
1729
1692
|
begin
|
|
1730
1693
|
stack[top] = cs
|
|
1731
1694
|
top+= 1
|
|
1732
|
-
cs =
|
|
1695
|
+
cs = 75
|
|
1733
1696
|
_goto_level = _again
|
|
1734
1697
|
next
|
|
1735
1698
|
end
|
|
1736
1699
|
|
|
1737
1700
|
end
|
|
1738
1701
|
end
|
|
1739
|
-
when
|
|
1702
|
+
when 35
|
|
1740
1703
|
begin
|
|
1741
1704
|
begin p = ((te))-1; end
|
|
1742
1705
|
begin
|
|
@@ -1744,57 +1707,57 @@ p = p - 1; begin
|
|
|
1744
1707
|
begin
|
|
1745
1708
|
stack[top] = cs
|
|
1746
1709
|
top+= 1
|
|
1747
|
-
cs =
|
|
1710
|
+
cs = 75
|
|
1748
1711
|
_goto_level = _again
|
|
1749
1712
|
next
|
|
1750
1713
|
end
|
|
1751
1714
|
|
|
1752
1715
|
end
|
|
1753
1716
|
end
|
|
1754
|
-
when
|
|
1717
|
+
when 42
|
|
1755
1718
|
begin
|
|
1756
1719
|
te = p+1
|
|
1757
1720
|
begin
|
|
1758
|
-
emit(:meta, :dot, copy(
|
|
1721
|
+
emit(:meta, :dot, copy(source, ts, te))
|
|
1759
1722
|
end
|
|
1760
1723
|
end
|
|
1761
|
-
when
|
|
1724
|
+
when 46
|
|
1762
1725
|
begin
|
|
1763
1726
|
te = p+1
|
|
1764
1727
|
begin
|
|
1765
1728
|
if conditional_stack.last == group_depth
|
|
1766
|
-
emit(:conditional, :separator, copy(
|
|
1729
|
+
emit(:conditional, :separator, copy(source, ts, te))
|
|
1767
1730
|
else
|
|
1768
|
-
emit(:meta, :alternation, copy(
|
|
1731
|
+
emit(:meta, :alternation, copy(source, ts, te))
|
|
1769
1732
|
end
|
|
1770
1733
|
end
|
|
1771
1734
|
end
|
|
1772
|
-
when
|
|
1735
|
+
when 45
|
|
1773
1736
|
begin
|
|
1774
1737
|
te = p+1
|
|
1775
1738
|
begin
|
|
1776
|
-
emit(:anchor, :bol, copy(
|
|
1739
|
+
emit(:anchor, :bol, copy(source, ts, te))
|
|
1777
1740
|
end
|
|
1778
1741
|
end
|
|
1779
|
-
when
|
|
1742
|
+
when 39
|
|
1780
1743
|
begin
|
|
1781
1744
|
te = p+1
|
|
1782
1745
|
begin
|
|
1783
|
-
emit(:anchor, :eol, copy(
|
|
1746
|
+
emit(:anchor, :eol, copy(source, ts, te))
|
|
1784
1747
|
end
|
|
1785
1748
|
end
|
|
1786
|
-
when
|
|
1749
|
+
when 63
|
|
1787
1750
|
begin
|
|
1788
1751
|
te = p+1
|
|
1789
1752
|
begin
|
|
1790
|
-
emit(:keep, :mark, copy(
|
|
1753
|
+
emit(:keep, :mark, copy(source, ts, te))
|
|
1791
1754
|
end
|
|
1792
1755
|
end
|
|
1793
|
-
when
|
|
1756
|
+
when 62
|
|
1794
1757
|
begin
|
|
1795
1758
|
te = p+1
|
|
1796
1759
|
begin
|
|
1797
|
-
case text = copy(
|
|
1760
|
+
case text = copy(source, ts, te)
|
|
1798
1761
|
when '\A'; emit(:anchor, :bos, text)
|
|
1799
1762
|
when '\z'; emit(:anchor, :eos, text)
|
|
1800
1763
|
when '\Z'; emit(:anchor, :eos_ob_eol, text)
|
|
@@ -1804,18 +1767,18 @@ te = p+1
|
|
|
1804
1767
|
end
|
|
1805
1768
|
end
|
|
1806
1769
|
end
|
|
1807
|
-
when
|
|
1770
|
+
when 44
|
|
1808
1771
|
begin
|
|
1809
1772
|
te = p+1
|
|
1810
1773
|
begin
|
|
1811
|
-
append_literal(
|
|
1774
|
+
append_literal(source, ts, te)
|
|
1812
1775
|
end
|
|
1813
1776
|
end
|
|
1814
|
-
when
|
|
1777
|
+
when 53
|
|
1815
1778
|
begin
|
|
1816
1779
|
te = p+1
|
|
1817
1780
|
begin
|
|
1818
|
-
text = copy(
|
|
1781
|
+
text = copy(source, ts, te)
|
|
1819
1782
|
|
|
1820
1783
|
conditional_stack << group_depth
|
|
1821
1784
|
|
|
@@ -1831,11 +1794,11 @@ te = p+1
|
|
|
1831
1794
|
|
|
1832
1795
|
end
|
|
1833
1796
|
end
|
|
1834
|
-
when
|
|
1797
|
+
when 54
|
|
1835
1798
|
begin
|
|
1836
1799
|
te = p+1
|
|
1837
1800
|
begin
|
|
1838
|
-
text = copy(
|
|
1801
|
+
text = copy(source, ts, te)
|
|
1839
1802
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
|
1840
1803
|
raise ValidationError.for(:group_option, $1 || "-#{$2}", text)
|
|
1841
1804
|
end
|
|
@@ -1846,7 +1809,7 @@ te = p+1
|
|
|
1846
1809
|
begin
|
|
1847
1810
|
te = p+1
|
|
1848
1811
|
begin
|
|
1849
|
-
case text = copy(
|
|
1812
|
+
case text = copy(source, ts, te)
|
|
1850
1813
|
when '(?='; emit(:assertion, :lookahead, text)
|
|
1851
1814
|
when '(?!'; emit(:assertion, :nlookahead, text)
|
|
1852
1815
|
when '(?<='; emit(:assertion, :lookbehind, text)
|
|
@@ -1858,7 +1821,7 @@ te = p+1
|
|
|
1858
1821
|
begin
|
|
1859
1822
|
te = p+1
|
|
1860
1823
|
begin
|
|
1861
|
-
case text = copy(
|
|
1824
|
+
case text = copy(source, ts, te)
|
|
1862
1825
|
when '(?:'; emit(:group, :passive, text)
|
|
1863
1826
|
when '(?>'; emit(:group, :atomic, text)
|
|
1864
1827
|
when '(?~'; emit(:group, :absence, text)
|
|
@@ -1879,7 +1842,7 @@ te = p+1
|
|
|
1879
1842
|
begin
|
|
1880
1843
|
te = p+1
|
|
1881
1844
|
begin
|
|
1882
|
-
case text = copy(
|
|
1845
|
+
case text = copy(source, ts, te)
|
|
1883
1846
|
when /^\\k(.)[^0-9\-][^+\-]*['>]$/
|
|
1884
1847
|
emit(:backref, $1 == '<' ? :name_ref_ab : :name_ref_sq, text)
|
|
1885
1848
|
when /^\\k(.)0*[1-9]\d*['>]$/
|
|
@@ -1899,7 +1862,7 @@ te = p+1
|
|
|
1899
1862
|
begin
|
|
1900
1863
|
te = p+1
|
|
1901
1864
|
begin
|
|
1902
|
-
case text = copy(
|
|
1865
|
+
case text = copy(source, ts, te)
|
|
1903
1866
|
when /^\\g(.)[^0-9+\-].*['>]$/
|
|
1904
1867
|
emit(:backref, $1 == '<' ? :name_call_ab : :name_call_sq, text)
|
|
1905
1868
|
when /^\\g(.)(?:0|0*[1-9]\d*)['>]$/
|
|
@@ -1911,33 +1874,33 @@ te = p+1
|
|
|
1911
1874
|
end
|
|
1912
1875
|
end
|
|
1913
1876
|
end
|
|
1914
|
-
when
|
|
1877
|
+
when 60
|
|
1915
1878
|
begin
|
|
1916
1879
|
te = p+1
|
|
1917
1880
|
begin
|
|
1918
|
-
case text = copy(
|
|
1881
|
+
case text = copy(source, ts, te)
|
|
1919
1882
|
when '?' ; emit(:quantifier, :zero_or_one, text)
|
|
1920
1883
|
when '??'; emit(:quantifier, :zero_or_one_reluctant, text)
|
|
1921
1884
|
when '?+'; emit(:quantifier, :zero_or_one_possessive, text)
|
|
1922
1885
|
end
|
|
1923
1886
|
end
|
|
1924
1887
|
end
|
|
1925
|
-
when
|
|
1888
|
+
when 56
|
|
1926
1889
|
begin
|
|
1927
1890
|
te = p+1
|
|
1928
1891
|
begin
|
|
1929
|
-
case text = copy(
|
|
1892
|
+
case text = copy(source, ts, te)
|
|
1930
1893
|
when '*' ; emit(:quantifier, :zero_or_more, text)
|
|
1931
1894
|
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text)
|
|
1932
1895
|
when '*+'; emit(:quantifier, :zero_or_more_possessive, text)
|
|
1933
1896
|
end
|
|
1934
1897
|
end
|
|
1935
1898
|
end
|
|
1936
|
-
when
|
|
1899
|
+
when 58
|
|
1937
1900
|
begin
|
|
1938
1901
|
te = p+1
|
|
1939
1902
|
begin
|
|
1940
|
-
case text = copy(
|
|
1903
|
+
case text = copy(source, ts, te)
|
|
1941
1904
|
when '+' ; emit(:quantifier, :one_or_more, text)
|
|
1942
1905
|
when '+?'; emit(:quantifier, :one_or_more_reluctant, text)
|
|
1943
1906
|
when '++'; emit(:quantifier, :one_or_more_possessive, text)
|
|
@@ -1948,84 +1911,84 @@ te = p+1
|
|
|
1948
1911
|
begin
|
|
1949
1912
|
te = p+1
|
|
1950
1913
|
begin
|
|
1951
|
-
emit(:quantifier, :interval, copy(
|
|
1914
|
+
emit(:quantifier, :interval, copy(source, ts, te))
|
|
1952
1915
|
end
|
|
1953
1916
|
end
|
|
1954
|
-
when
|
|
1917
|
+
when 50
|
|
1955
1918
|
begin
|
|
1956
1919
|
te = p+1
|
|
1957
1920
|
begin
|
|
1958
1921
|
if free_spacing
|
|
1959
|
-
emit(:free_space, :comment, copy(
|
|
1922
|
+
emit(:free_space, :comment, copy(source, ts, te))
|
|
1960
1923
|
else
|
|
1961
1924
|
# consume only the pound sign (#) and backtrack to do regular scanning
|
|
1962
|
-
append_literal(
|
|
1925
|
+
append_literal(source, ts, ts + 1)
|
|
1963
1926
|
begin p = (( ts + 1))-1; end
|
|
1964
1927
|
|
|
1965
1928
|
end
|
|
1966
1929
|
end
|
|
1967
1930
|
end
|
|
1968
|
-
when
|
|
1931
|
+
when 52
|
|
1969
1932
|
begin
|
|
1970
1933
|
te = p
|
|
1971
1934
|
p = p - 1; begin
|
|
1972
|
-
text = copy(
|
|
1935
|
+
text = copy(source, ts, te)
|
|
1973
1936
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
|
1974
1937
|
raise ValidationError.for(:group_option, $1 || "-#{$2}", text)
|
|
1975
1938
|
end
|
|
1976
1939
|
emit_options(text)
|
|
1977
1940
|
end
|
|
1978
1941
|
end
|
|
1979
|
-
when
|
|
1942
|
+
when 51
|
|
1980
1943
|
begin
|
|
1981
1944
|
te = p
|
|
1982
1945
|
p = p - 1; begin
|
|
1983
1946
|
self.capturing_group_count = capturing_group_count + 1
|
|
1984
|
-
text = copy(
|
|
1947
|
+
text = copy(source, ts, te)
|
|
1985
1948
|
emit(:group, :capture, text)
|
|
1986
1949
|
end
|
|
1987
1950
|
end
|
|
1988
|
-
when
|
|
1951
|
+
when 59
|
|
1989
1952
|
begin
|
|
1990
1953
|
te = p
|
|
1991
1954
|
p = p - 1; begin
|
|
1992
|
-
case text = copy(
|
|
1955
|
+
case text = copy(source, ts, te)
|
|
1993
1956
|
when '?' ; emit(:quantifier, :zero_or_one, text)
|
|
1994
1957
|
when '??'; emit(:quantifier, :zero_or_one_reluctant, text)
|
|
1995
1958
|
when '?+'; emit(:quantifier, :zero_or_one_possessive, text)
|
|
1996
1959
|
end
|
|
1997
1960
|
end
|
|
1998
1961
|
end
|
|
1999
|
-
when
|
|
1962
|
+
when 55
|
|
2000
1963
|
begin
|
|
2001
1964
|
te = p
|
|
2002
1965
|
p = p - 1; begin
|
|
2003
|
-
case text = copy(
|
|
1966
|
+
case text = copy(source, ts, te)
|
|
2004
1967
|
when '*' ; emit(:quantifier, :zero_or_more, text)
|
|
2005
1968
|
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text)
|
|
2006
1969
|
when '*+'; emit(:quantifier, :zero_or_more_possessive, text)
|
|
2007
1970
|
end
|
|
2008
1971
|
end
|
|
2009
1972
|
end
|
|
2010
|
-
when
|
|
1973
|
+
when 57
|
|
2011
1974
|
begin
|
|
2012
1975
|
te = p
|
|
2013
1976
|
p = p - 1; begin
|
|
2014
|
-
case text = copy(
|
|
1977
|
+
case text = copy(source, ts, te)
|
|
2015
1978
|
when '+' ; emit(:quantifier, :one_or_more, text)
|
|
2016
1979
|
when '+?'; emit(:quantifier, :one_or_more_reluctant, text)
|
|
2017
1980
|
when '++'; emit(:quantifier, :one_or_more_possessive, text)
|
|
2018
1981
|
end
|
|
2019
1982
|
end
|
|
2020
1983
|
end
|
|
2021
|
-
when
|
|
1984
|
+
when 64
|
|
2022
1985
|
begin
|
|
2023
1986
|
te = p
|
|
2024
1987
|
p = p - 1; begin
|
|
2025
|
-
append_literal(
|
|
1988
|
+
append_literal(source, ts, te)
|
|
2026
1989
|
end
|
|
2027
1990
|
end
|
|
2028
|
-
when
|
|
1991
|
+
when 61
|
|
2029
1992
|
begin
|
|
2030
1993
|
te = p
|
|
2031
1994
|
p = p - 1; begin
|
|
@@ -2039,43 +2002,43 @@ p = p - 1; begin
|
|
|
2039
2002
|
|
|
2040
2003
|
end
|
|
2041
2004
|
end
|
|
2042
|
-
when
|
|
2005
|
+
when 49
|
|
2043
2006
|
begin
|
|
2044
2007
|
te = p
|
|
2045
2008
|
p = p - 1; begin
|
|
2046
2009
|
if free_spacing
|
|
2047
|
-
emit(:free_space, :comment, copy(
|
|
2010
|
+
emit(:free_space, :comment, copy(source, ts, te))
|
|
2048
2011
|
else
|
|
2049
2012
|
# consume only the pound sign (#) and backtrack to do regular scanning
|
|
2050
|
-
append_literal(
|
|
2013
|
+
append_literal(source, ts, ts + 1)
|
|
2051
2014
|
begin p = (( ts + 1))-1; end
|
|
2052
2015
|
|
|
2053
2016
|
end
|
|
2054
2017
|
end
|
|
2055
2018
|
end
|
|
2056
|
-
when
|
|
2019
|
+
when 48
|
|
2057
2020
|
begin
|
|
2058
2021
|
te = p
|
|
2059
2022
|
p = p - 1; begin
|
|
2060
2023
|
if free_spacing
|
|
2061
|
-
emit(:free_space, :whitespace, copy(
|
|
2024
|
+
emit(:free_space, :whitespace, copy(source, ts, te))
|
|
2062
2025
|
else
|
|
2063
|
-
append_literal(
|
|
2026
|
+
append_literal(source, ts, te)
|
|
2064
2027
|
end
|
|
2065
2028
|
end
|
|
2066
2029
|
end
|
|
2067
|
-
when
|
|
2030
|
+
when 47
|
|
2068
2031
|
begin
|
|
2069
2032
|
te = p
|
|
2070
2033
|
p = p - 1; begin
|
|
2071
|
-
append_literal(
|
|
2034
|
+
append_literal(source, ts, te)
|
|
2072
2035
|
end
|
|
2073
2036
|
end
|
|
2074
2037
|
when 3
|
|
2075
2038
|
begin
|
|
2076
2039
|
begin p = ((te))-1; end
|
|
2077
2040
|
begin
|
|
2078
|
-
text = copy(
|
|
2041
|
+
text = copy(source, ts, te)
|
|
2079
2042
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
|
2080
2043
|
raise ValidationError.for(:group_option, $1 || "-#{$2}", text)
|
|
2081
2044
|
end
|
|
@@ -2086,7 +2049,7 @@ p = p - 1; begin
|
|
|
2086
2049
|
begin
|
|
2087
2050
|
begin p = ((te))-1; end
|
|
2088
2051
|
begin
|
|
2089
|
-
append_literal(
|
|
2052
|
+
append_literal(source, ts, te)
|
|
2090
2053
|
end
|
|
2091
2054
|
end
|
|
2092
2055
|
when 7
|
|
@@ -2113,17 +2076,35 @@ p = p - 1; begin
|
|
|
2113
2076
|
next
|
|
2114
2077
|
end
|
|
2115
2078
|
end
|
|
2116
|
-
when
|
|
2079
|
+
when 59
|
|
2117
2080
|
begin begin p = ((te))-1; end
|
|
2118
2081
|
|
|
2119
|
-
append_literal(
|
|
2082
|
+
append_literal(source, ts, te)
|
|
2120
2083
|
end
|
|
2121
2084
|
end
|
|
2122
2085
|
end
|
|
2123
|
-
when
|
|
2086
|
+
when 12
|
|
2087
|
+
begin
|
|
2088
|
+
|
|
2089
|
+
raise PrematureEndError.new('unicode property')
|
|
2090
|
+
end
|
|
2091
|
+
begin
|
|
2092
|
+
begin p = ((te))-1; end
|
|
2093
|
+
begin
|
|
2094
|
+
emit(:escape, :literal, copy(source, ts-1,te))
|
|
2095
|
+
begin
|
|
2096
|
+
top -= 1
|
|
2097
|
+
cs = stack[top]
|
|
2098
|
+
_goto_level = _again
|
|
2099
|
+
next
|
|
2100
|
+
end
|
|
2101
|
+
|
|
2102
|
+
end
|
|
2103
|
+
end
|
|
2104
|
+
when 77
|
|
2124
2105
|
begin
|
|
2125
2106
|
|
|
2126
|
-
text =
|
|
2107
|
+
text = error_text(source, ts, p)
|
|
2127
2108
|
raise PrematureEndError.new(text)
|
|
2128
2109
|
end
|
|
2129
2110
|
begin
|
|
@@ -2140,10 +2121,10 @@ p = p - 1; begin
|
|
|
2140
2121
|
|
|
2141
2122
|
end
|
|
2142
2123
|
end
|
|
2143
|
-
when
|
|
2124
|
+
when 19
|
|
2144
2125
|
begin
|
|
2145
2126
|
|
|
2146
|
-
text =
|
|
2127
|
+
text = error_text(source, ts, p)
|
|
2147
2128
|
raise PrematureEndError.new(text)
|
|
2148
2129
|
end
|
|
2149
2130
|
begin
|
|
@@ -2160,16 +2141,16 @@ p = p - 1; begin
|
|
|
2160
2141
|
|
|
2161
2142
|
end
|
|
2162
2143
|
end
|
|
2163
|
-
when
|
|
2144
|
+
when 91
|
|
2164
2145
|
begin
|
|
2165
2146
|
|
|
2166
|
-
text =
|
|
2147
|
+
text = error_text(source, ts, p)
|
|
2167
2148
|
raise PrematureEndError.new(text)
|
|
2168
2149
|
end
|
|
2169
2150
|
begin
|
|
2170
2151
|
te = p
|
|
2171
2152
|
p = p - 1; begin
|
|
2172
|
-
emit_meta_control_sequence(data, ts, te, :control)
|
|
2153
|
+
emit_meta_control_sequence(data, source, ts, te, :control)
|
|
2173
2154
|
begin
|
|
2174
2155
|
top -= 1
|
|
2175
2156
|
cs = stack[top]
|
|
@@ -2179,16 +2160,16 @@ p = p - 1; begin
|
|
|
2179
2160
|
|
|
2180
2161
|
end
|
|
2181
2162
|
end
|
|
2182
|
-
when
|
|
2163
|
+
when 93
|
|
2183
2164
|
begin
|
|
2184
2165
|
|
|
2185
|
-
text =
|
|
2166
|
+
text = error_text(source, ts, p)
|
|
2186
2167
|
raise PrematureEndError.new(text)
|
|
2187
2168
|
end
|
|
2188
2169
|
begin
|
|
2189
2170
|
te = p
|
|
2190
2171
|
p = p - 1; begin
|
|
2191
|
-
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
|
2172
|
+
emit_meta_control_sequence(data, source, ts, te, :meta_sequence)
|
|
2192
2173
|
begin
|
|
2193
2174
|
top -= 1
|
|
2194
2175
|
cs = stack[top]
|
|
@@ -2198,16 +2179,16 @@ p = p - 1; begin
|
|
|
2198
2179
|
|
|
2199
2180
|
end
|
|
2200
2181
|
end
|
|
2201
|
-
when
|
|
2182
|
+
when 28
|
|
2202
2183
|
begin
|
|
2203
2184
|
|
|
2204
|
-
text =
|
|
2185
|
+
text = error_text(source, ts, p)
|
|
2205
2186
|
raise PrematureEndError.new(text)
|
|
2206
2187
|
end
|
|
2207
2188
|
begin
|
|
2208
2189
|
begin p = ((te))-1; end
|
|
2209
2190
|
begin
|
|
2210
|
-
emit_meta_control_sequence(data, ts, te, :control)
|
|
2191
|
+
emit_meta_control_sequence(data, source, ts, te, :control)
|
|
2211
2192
|
begin
|
|
2212
2193
|
top -= 1
|
|
2213
2194
|
cs = stack[top]
|
|
@@ -2217,16 +2198,16 @@ p = p - 1; begin
|
|
|
2217
2198
|
|
|
2218
2199
|
end
|
|
2219
2200
|
end
|
|
2220
|
-
when
|
|
2201
|
+
when 30
|
|
2221
2202
|
begin
|
|
2222
2203
|
|
|
2223
|
-
text =
|
|
2204
|
+
text = error_text(source, ts, p)
|
|
2224
2205
|
raise PrematureEndError.new(text)
|
|
2225
2206
|
end
|
|
2226
2207
|
begin
|
|
2227
2208
|
begin p = ((te))-1; end
|
|
2228
2209
|
begin
|
|
2229
|
-
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
|
2210
|
+
emit_meta_control_sequence(data, source, ts, te, :meta_sequence)
|
|
2230
2211
|
begin
|
|
2231
2212
|
top -= 1
|
|
2232
2213
|
cs = stack[top]
|
|
@@ -2236,10 +2217,10 @@ p = p - 1; begin
|
|
|
2236
2217
|
|
|
2237
2218
|
end
|
|
2238
2219
|
end
|
|
2239
|
-
when
|
|
2220
|
+
when 32
|
|
2240
2221
|
begin
|
|
2241
2222
|
|
|
2242
|
-
text =
|
|
2223
|
+
text = error_text(source, ts, p)
|
|
2243
2224
|
raise ValidationError.for(:sequence, 'sequence', text)
|
|
2244
2225
|
end
|
|
2245
2226
|
begin
|
|
@@ -2260,10 +2241,10 @@ te = p+1
|
|
|
2260
2241
|
begin
|
|
2261
2242
|
te = p+1
|
|
2262
2243
|
begin
|
|
2263
|
-
emit(:group, :comment, copy(
|
|
2244
|
+
emit(:group, :comment, copy(source, ts, te))
|
|
2264
2245
|
end
|
|
2265
2246
|
end
|
|
2266
|
-
when
|
|
2247
|
+
when 41
|
|
2267
2248
|
begin
|
|
2268
2249
|
self.group_depth = group_depth - 1 end
|
|
2269
2250
|
begin
|
|
@@ -2285,13 +2266,13 @@ te = p+1
|
|
|
2285
2266
|
end
|
|
2286
2267
|
end
|
|
2287
2268
|
end
|
|
2288
|
-
when
|
|
2269
|
+
when 43
|
|
2289
2270
|
begin
|
|
2290
2271
|
self.set_depth = set_depth + 1 end
|
|
2291
2272
|
begin
|
|
2292
2273
|
te = p+1
|
|
2293
2274
|
begin
|
|
2294
|
-
emit(:set, :open, copy(
|
|
2275
|
+
emit(:set, :open, copy(source, ts, te))
|
|
2295
2276
|
begin
|
|
2296
2277
|
stack[top] = cs
|
|
2297
2278
|
top+= 1
|
|
@@ -2302,13 +2283,13 @@ te = p+1
|
|
|
2302
2283
|
|
|
2303
2284
|
end
|
|
2304
2285
|
end
|
|
2305
|
-
when
|
|
2286
|
+
when 71
|
|
2306
2287
|
begin
|
|
2307
2288
|
self.set_depth = set_depth - 1 end
|
|
2308
2289
|
begin
|
|
2309
2290
|
te = p+1
|
|
2310
2291
|
begin
|
|
2311
|
-
emit(:set, :close, copy(
|
|
2292
|
+
emit(:set, :close, copy(source, ts, te))
|
|
2312
2293
|
if in_set?
|
|
2313
2294
|
begin
|
|
2314
2295
|
top -= 1
|
|
@@ -2319,7 +2300,7 @@ te = p+1
|
|
|
2319
2300
|
|
|
2320
2301
|
else
|
|
2321
2302
|
begin
|
|
2322
|
-
cs =
|
|
2303
|
+
cs = 75
|
|
2323
2304
|
_goto_level = _again
|
|
2324
2305
|
next
|
|
2325
2306
|
end
|
|
@@ -2327,7 +2308,7 @@ te = p+1
|
|
|
2327
2308
|
end
|
|
2328
2309
|
end
|
|
2329
2310
|
end
|
|
2330
|
-
when
|
|
2311
|
+
when 76
|
|
2331
2312
|
begin
|
|
2332
2313
|
self.set_depth = set_depth - 1 end
|
|
2333
2314
|
begin
|
|
@@ -2345,7 +2326,7 @@ te = p+1
|
|
|
2345
2326
|
|
|
2346
2327
|
else
|
|
2347
2328
|
begin
|
|
2348
|
-
cs =
|
|
2329
|
+
cs = 75
|
|
2349
2330
|
_goto_level = _again
|
|
2350
2331
|
next
|
|
2351
2332
|
end
|
|
@@ -2353,13 +2334,13 @@ te = p+1
|
|
|
2353
2334
|
end
|
|
2354
2335
|
end
|
|
2355
2336
|
end
|
|
2356
|
-
when
|
|
2337
|
+
when 21
|
|
2357
2338
|
begin
|
|
2358
2339
|
self.set_depth = set_depth - 1 end
|
|
2359
2340
|
begin
|
|
2360
2341
|
te = p+1
|
|
2361
2342
|
begin
|
|
2362
|
-
text = copy(
|
|
2343
|
+
text = copy(source, ts, te)
|
|
2363
2344
|
|
|
2364
2345
|
type = :posixclass
|
|
2365
2346
|
class_name = text[2..-3]
|
|
@@ -2375,7 +2356,7 @@ te = p+1
|
|
|
2375
2356
|
emit(type, class_name.to_sym, text)
|
|
2376
2357
|
end
|
|
2377
2358
|
end
|
|
2378
|
-
when
|
|
2359
|
+
when 69
|
|
2379
2360
|
begin
|
|
2380
2361
|
te = p+1
|
|
2381
2362
|
end
|
|
@@ -2386,16 +2367,16 @@ te = p+1
|
|
|
2386
2367
|
te = p+1
|
|
2387
2368
|
end
|
|
2388
2369
|
begin
|
|
2389
|
-
act =
|
|
2370
|
+
act = 59; end
|
|
2390
2371
|
end
|
|
2391
2372
|
end
|
|
2392
2373
|
end
|
|
2393
2374
|
if _goto_level <= _again
|
|
2394
|
-
case
|
|
2395
|
-
when
|
|
2375
|
+
case RE_SCANNER_TO_STATE_ACTIONS[cs]
|
|
2376
|
+
when 65
|
|
2396
2377
|
begin
|
|
2397
2378
|
ts = nil; end
|
|
2398
|
-
when
|
|
2379
|
+
when 37
|
|
2399
2380
|
begin
|
|
2400
2381
|
ts = nil; end
|
|
2401
2382
|
begin
|
|
@@ -2415,21 +2396,16 @@ act = 0
|
|
|
2415
2396
|
end
|
|
2416
2397
|
if _goto_level <= _test_eof
|
|
2417
2398
|
if p == eof
|
|
2418
|
-
if
|
|
2419
|
-
_trans =
|
|
2399
|
+
if RE_SCANNER_EOF_TRANS[cs] > 0
|
|
2400
|
+
_trans = RE_SCANNER_EOF_TRANS[cs] - 1;
|
|
2420
2401
|
_goto_level = _eof_trans
|
|
2421
2402
|
next;
|
|
2422
2403
|
end
|
|
2423
|
-
case
|
|
2424
|
-
when
|
|
2425
|
-
begin
|
|
2426
|
-
|
|
2427
|
-
raise PrematureEndError.new('unicode property')
|
|
2428
|
-
end
|
|
2429
|
-
when 25
|
|
2404
|
+
case RE_SCANNER_EOF_ACTIONS[cs]
|
|
2405
|
+
when 26
|
|
2430
2406
|
begin
|
|
2431
2407
|
|
|
2432
|
-
text =
|
|
2408
|
+
text = error_text(source, ts, p)
|
|
2433
2409
|
raise PrematureEndError.new(text)
|
|
2434
2410
|
end
|
|
2435
2411
|
end
|
|
@@ -2445,9 +2421,9 @@ end
|
|
|
2445
2421
|
# to avoid "warning: assigned but unused variable - testEof"
|
|
2446
2422
|
testEof = testEof
|
|
2447
2423
|
|
|
2448
|
-
if cs ==
|
|
2449
|
-
text =
|
|
2450
|
-
raise ScannerError.new("Scan error at
|
|
2424
|
+
if cs == RE_SCANNER_ERROR
|
|
2425
|
+
text = error_text(source, ts, p)
|
|
2426
|
+
raise ScannerError.new("Scan error at #{text}")
|
|
2451
2427
|
end
|
|
2452
2428
|
|
|
2453
2429
|
raise PrematureEndError.new("(missing group closing paranthesis) "+
|
|
@@ -2545,15 +2521,28 @@ end
|
|
|
2545
2521
|
set_depth > 0
|
|
2546
2522
|
end
|
|
2547
2523
|
|
|
2548
|
-
#
|
|
2549
|
-
def copy(
|
|
2550
|
-
|
|
2524
|
+
# Ragel offsets are bytes; emitted token positions are characters.
|
|
2525
|
+
def copy(source, ts, te)
|
|
2526
|
+
source.byteslice(ts, te - ts).force_encoding('utf-8')
|
|
2527
|
+
end
|
|
2528
|
+
|
|
2529
|
+
def error_text(source, ts, position)
|
|
2530
|
+
start = ts ? [ts - 1,0].max : 0
|
|
2531
|
+
finish = source.bytesize
|
|
2532
|
+
if position < finish
|
|
2533
|
+
# Include the complete offending UTF-8 character, but no following text.
|
|
2534
|
+
character = source.byteslice(position, 4).force_encoding('utf-8').each_char.first
|
|
2535
|
+
finish = position + character.bytesize
|
|
2536
|
+
end
|
|
2537
|
+
text = copy(source, start, finish)
|
|
2538
|
+
text = "…#{text[-9..-1]}" if text.length > 10
|
|
2539
|
+
text
|
|
2551
2540
|
end
|
|
2552
2541
|
|
|
2553
2542
|
# Appends one or more characters to the literal buffer, to be emitted later
|
|
2554
2543
|
# by a call to emit_literal.
|
|
2555
|
-
def append_literal(
|
|
2556
|
-
(self.literal_run ||= []) << copy(
|
|
2544
|
+
def append_literal(source, ts, te)
|
|
2545
|
+
(self.literal_run ||= []) << copy(source, ts, te)
|
|
2557
2546
|
end
|
|
2558
2547
|
|
|
2559
2548
|
# Emits the literal run collected by calls to the append_literal method.
|
|
@@ -2592,10 +2581,10 @@ end
|
|
|
2592
2581
|
emit(:group, token, text)
|
|
2593
2582
|
end
|
|
2594
2583
|
|
|
2595
|
-
def emit_meta_control_sequence(data, ts, te, token)
|
|
2584
|
+
def emit_meta_control_sequence(data, source, ts, te, token)
|
|
2596
2585
|
if data.last < 0x00 || data.last > 0x7F
|
|
2597
2586
|
raise ValidationError.for(:sequence, 'escape', token.to_s)
|
|
2598
2587
|
end
|
|
2599
|
-
emit(:escape, token, copy(
|
|
2588
|
+
emit(:escape, token, copy(source, ts-1,te))
|
|
2600
2589
|
end
|
|
2601
|
-
end
|
|
2590
|
+
end
|