regexp_parser 1.7.0 → 2.0.0
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/CHANGELOG.md +80 -1
- data/README.md +24 -12
- data/lib/regexp_parser/expression.rb +10 -19
- data/lib/regexp_parser/expression/classes/group.rb +17 -2
- data/lib/regexp_parser/expression/classes/root.rb +4 -16
- data/lib/regexp_parser/expression/quantifier.rb +9 -0
- data/lib/regexp_parser/expression/sequence.rb +0 -10
- data/lib/regexp_parser/lexer.rb +6 -6
- data/lib/regexp_parser/parser.rb +45 -12
- data/lib/regexp_parser/scanner.rb +1305 -1193
- data/lib/regexp_parser/scanner/char_type.rl +11 -11
- data/lib/regexp_parser/scanner/property.rl +2 -2
- data/lib/regexp_parser/scanner/scanner.rl +194 -171
- data/lib/regexp_parser/syntax/version_lookup.rb +2 -2
- data/lib/regexp_parser/version.rb +1 -1
- data/regexp_parser.gemspec +1 -1
- data/spec/expression/base_spec.rb +10 -0
- data/spec/expression/to_s_spec.rb +16 -0
- data/spec/lexer/delimiters_spec.rb +68 -0
- data/spec/lexer/literals_spec.rb +24 -49
- data/spec/parser/escapes_spec.rb +1 -1
- data/spec/parser/options_spec.rb +28 -0
- data/spec/parser/quantifiers_spec.rb +16 -0
- data/spec/parser/set/ranges_spec.rb +3 -3
- data/spec/scanner/delimiters_spec.rb +52 -0
- data/spec/scanner/errors_spec.rb +0 -1
- data/spec/scanner/escapes_spec.rb +10 -0
- data/spec/scanner/free_space_spec.rb +32 -0
- data/spec/scanner/literals_spec.rb +28 -38
- data/spec/scanner/options_spec.rb +36 -0
- data/spec/scanner/quantifiers_spec.rb +18 -13
- data/spec/scanner/sets_spec.rb +8 -2
- metadata +65 -61
- data/spec/expression/root_spec.rb +0 -9
- data/spec/expression/sequence_spec.rb +0 -9
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# line 1 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
4
4
|
|
5
|
-
# line
|
5
|
+
# line 680 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
6
6
|
|
7
7
|
|
8
8
|
# THIS IS A GENERATED FILE, DO NOT EDIT DIRECTLY
|
@@ -67,21 +67,16 @@ class Regexp::Scanner
|
|
67
67
|
#
|
68
68
|
# This method may raise errors if a syntax error is encountered.
|
69
69
|
# --------------------------------------------------------------------------
|
70
|
-
def self.scan(input_object, &block)
|
71
|
-
new.scan(input_object, &block)
|
70
|
+
def self.scan(input_object, options: nil, &block)
|
71
|
+
new.scan(input_object, options: options, &block)
|
72
72
|
end
|
73
73
|
|
74
|
-
def scan(input_object, &block)
|
74
|
+
def scan(input_object, options: nil, &block)
|
75
75
|
self.literal = nil
|
76
76
|
stack = []
|
77
77
|
|
78
|
-
|
79
|
-
|
80
|
-
self.free_spacing = (input_object.options & Regexp::EXTENDED != 0)
|
81
|
-
else
|
82
|
-
input = input_object
|
83
|
-
self.free_spacing = false
|
84
|
-
end
|
78
|
+
input = input_object.is_a?(Regexp) ? input_object.source : input_object
|
79
|
+
self.free_spacing = free_spacing?(input_object, options)
|
85
80
|
self.spacing_stack = [{:free_spacing => free_spacing, :depth => 0}]
|
86
81
|
|
87
82
|
data = input.unpack("c*") if input.is_a?(String)
|
@@ -93,9 +88,10 @@ class Regexp::Scanner
|
|
93
88
|
self.set_depth = 0
|
94
89
|
self.group_depth = 0
|
95
90
|
self.conditional_stack = []
|
91
|
+
self.char_pos = 0
|
96
92
|
|
97
93
|
|
98
|
-
# line
|
94
|
+
# line 94 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
99
95
|
class << self
|
100
96
|
attr_accessor :_re_scanner_trans_keys
|
101
97
|
private :_re_scanner_trans_keys, :_re_scanner_trans_keys=
|
@@ -103,14 +99,14 @@ end
|
|
103
99
|
self._re_scanner_trans_keys = [
|
104
100
|
0, 0, -128, -65, -128, -65,
|
105
101
|
-128, -65, -128, -65, -128,
|
106
|
-
-65, -128, -65,
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
102
|
+
-65, -128, -65, 41, 41,
|
103
|
+
39, 122, 33, 122, 48, 122,
|
104
|
+
39, 60, 39, 122, 48,
|
105
|
+
57, 39, 57, 48, 57,
|
106
|
+
39, 57, 39, 122, 43, 122,
|
107
|
+
48, 57, 48, 62, 48,
|
108
|
+
57, 43, 62, 43, 122,
|
109
|
+
48, 57, 48, 125, 44, 125,
|
114
110
|
123, 123, 9, 122, 9,
|
115
111
|
125, 9, 122, -128, -65,
|
116
112
|
-128, -65, 38, 38, 45, 122,
|
@@ -134,31 +130,33 @@ self._re_scanner_trans_keys = [
|
|
134
130
|
112, 112, 111, 111, 114, 114,
|
135
131
|
100, 100, 100, 100, 65,
|
136
132
|
122, 61, 61, 93, 93,
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
48,
|
141
|
-
|
133
|
+
-128, -65, -128, -65, 45, 45,
|
134
|
+
92, 92, 92, 92, 45,
|
135
|
+
45, 92, 92, 92, 92,
|
136
|
+
48, 123, 48, 102, 48, 102,
|
137
|
+
48, 102, 48, 102, 9,
|
142
138
|
125, 9, 125, 9, 125,
|
143
|
-
9, 125,
|
144
|
-
|
145
|
-
122,
|
146
|
-
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
48,
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
48,
|
139
|
+
9, 125, 9, 125, 9, 125,
|
140
|
+
48, 123, 41, 41, 39,
|
141
|
+
122, 41, 57, 48, 122,
|
142
|
+
-128, 127, -62, -33, -32, -17,
|
143
|
+
-16, -12, 1, 127, 1,
|
144
|
+
127, 9, 32, 33, 126,
|
145
|
+
10, 10, 63, 63, 33, 126,
|
146
|
+
33, 126, 43, 63, 43,
|
147
|
+
63, 43, 63, 65, 122,
|
148
|
+
44, 57, 43, 63, 68, 119,
|
149
|
+
80, 112, -62, 125, -128,
|
150
|
+
-65, -128, -65, -128, -65,
|
151
|
+
38, 38, 38, 93, 46, 61,
|
152
|
+
48, 122, -62, 125, -128,
|
153
|
+
-65, -128, -65, -128, -65,
|
154
|
+
48, 55, 48, 55, 77, 77,
|
155
|
+
45, 45, 0, 0, 67,
|
156
|
+
99, 45, 45, 0, 0,
|
157
|
+
92, 92, 48, 102, 39, 60,
|
158
|
+
39, 122, 49, 57, 41,
|
159
|
+
57, 48, 122, 0
|
162
160
|
]
|
163
161
|
|
164
162
|
class << self
|
@@ -167,9 +165,9 @@ class << self
|
|
167
165
|
end
|
168
166
|
self._re_scanner_key_spans = [
|
169
167
|
0, 64, 64, 64, 64, 64, 64, 1,
|
170
|
-
|
171
|
-
|
172
|
-
|
168
|
+
84, 90, 75, 22, 84, 10, 19, 10,
|
169
|
+
19, 84, 80, 10, 15, 10, 20, 80,
|
170
|
+
10, 78, 82, 1, 114, 117, 114, 64,
|
173
171
|
64, 1, 78, 78, 1, 27, 24, 8,
|
174
172
|
3, 1, 1, 1, 1, 1, 1, 1,
|
175
173
|
1, 1, 1, 1, 1, 1, 1, 1,
|
@@ -177,15 +175,15 @@ self._re_scanner_key_spans = [
|
|
177
175
|
1, 1, 1, 1, 1, 1, 4, 1,
|
178
176
|
1, 1, 1, 1, 1, 1, 1, 1,
|
179
177
|
1, 1, 1, 1, 1, 58, 1, 1,
|
180
|
-
|
181
|
-
|
182
|
-
117, 76, 1, 84, 17, 75,
|
183
|
-
16, 5, 127, 127, 24, 94,
|
184
|
-
94, 94, 21, 21, 21, 58,
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
75
|
178
|
+
64, 64, 1, 1, 1, 1, 1, 1,
|
179
|
+
76, 55, 55, 55, 55, 117, 117, 117,
|
180
|
+
117, 117, 117, 76, 1, 84, 17, 75,
|
181
|
+
256, 30, 16, 5, 127, 127, 24, 94,
|
182
|
+
1, 1, 94, 94, 21, 21, 21, 58,
|
183
|
+
14, 21, 52, 33, 188, 64, 64, 64,
|
184
|
+
1, 56, 16, 75, 188, 64, 64, 64,
|
185
|
+
8, 8, 1, 1, 0, 33, 1, 0,
|
186
|
+
1, 55, 22, 84, 9, 17, 75
|
189
187
|
]
|
190
188
|
|
191
189
|
class << self
|
@@ -194,25 +192,25 @@ class << self
|
|
194
192
|
end
|
195
193
|
self._re_scanner_index_offsets = [
|
196
194
|
0, 0, 65, 130, 195, 260, 325, 390,
|
197
|
-
392,
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
195
|
+
392, 477, 568, 644, 667, 752, 763, 783,
|
196
|
+
794, 814, 899, 980, 991, 1007, 1018, 1039,
|
197
|
+
1120, 1131, 1210, 1293, 1295, 1410, 1528, 1643,
|
198
|
+
1708, 1773, 1775, 1854, 1933, 1935, 1963, 1988,
|
199
|
+
1997, 2001, 2003, 2005, 2007, 2009, 2011, 2013,
|
200
|
+
2015, 2017, 2019, 2021, 2023, 2025, 2027, 2029,
|
201
|
+
2031, 2033, 2035, 2037, 2039, 2041, 2043, 2045,
|
202
|
+
2047, 2049, 2051, 2053, 2055, 2057, 2059, 2064,
|
203
|
+
2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080,
|
204
|
+
2082, 2084, 2086, 2088, 2090, 2092, 2151, 2153,
|
205
|
+
2155, 2220, 2285, 2287, 2289, 2291, 2293, 2295,
|
206
|
+
2297, 2374, 2430, 2486, 2542, 2598, 2716, 2834,
|
207
|
+
2952, 3070, 3188, 3306, 3383, 3385, 3470, 3488,
|
208
|
+
3564, 3821, 3852, 3869, 3875, 4003, 4131, 4156,
|
209
|
+
4251, 4253, 4255, 4350, 4445, 4467, 4489, 4511,
|
210
|
+
4570, 4585, 4607, 4660, 4694, 4883, 4948, 5013,
|
211
|
+
5078, 5080, 5137, 5154, 5230, 5419, 5484, 5549,
|
212
|
+
5614, 5623, 5632, 5634, 5636, 5637, 5671, 5673,
|
213
|
+
5674, 5676, 5732, 5755, 5840, 5850, 5868
|
216
214
|
]
|
217
215
|
|
218
216
|
class << self
|
@@ -269,651 +267,701 @@ self._re_scanner_indicies = [
|
|
269
267
|
6, 6, 6, 6, 6, 6, 6, 6,
|
270
268
|
6, 6, 6, 6, 6, 6, 6, 6,
|
271
269
|
6, 6, 6, 6, 6, 0, 9, 8,
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
270
|
+
10, 7, 7, 7, 7, 7, 7, 7,
|
271
|
+
7, 11, 11, 11, 11, 11, 11, 11,
|
272
|
+
11, 11, 11, 7, 7, 7, 7, 7,
|
273
|
+
7, 7, 11, 11, 11, 11, 11, 11,
|
274
|
+
11, 11, 11, 11, 11, 11, 11, 11,
|
275
|
+
11, 11, 11, 11, 11, 11, 11, 11,
|
276
|
+
11, 11, 11, 11, 7, 7, 7, 7,
|
277
|
+
11, 7, 11, 11, 11, 11, 11, 11,
|
278
|
+
11, 11, 11, 11, 11, 11, 11, 11,
|
279
|
+
11, 11, 11, 11, 11, 11, 11, 11,
|
280
|
+
11, 11, 11, 11, 7, 12, 7, 7,
|
281
|
+
7, 7, 7, 7, 7, 7, 7, 7,
|
282
|
+
7, 7, 7, 7, 13, 13, 13, 13,
|
283
|
+
13, 13, 13, 13, 13, 13, 7, 7,
|
284
|
+
7, 12, 10, 7, 7, 13, 13, 13,
|
285
|
+
13, 13, 13, 13, 13, 13, 13, 13,
|
286
|
+
13, 13, 13, 13, 13, 13, 13, 13,
|
287
|
+
13, 13, 13, 13, 13, 13, 13, 7,
|
288
|
+
7, 7, 7, 13, 7, 13, 13, 13,
|
289
|
+
13, 13, 13, 13, 13, 13, 13, 13,
|
290
|
+
13, 13, 13, 13, 13, 13, 13, 13,
|
291
|
+
13, 13, 13, 13, 13, 13, 13, 7,
|
292
|
+
13, 13, 13, 13, 13, 13, 13, 13,
|
293
|
+
13, 13, 7, 7, 7, 7, 10, 7,
|
294
|
+
7, 13, 13, 13, 13, 13, 13, 13,
|
295
|
+
13, 13, 13, 13, 13, 13, 13, 13,
|
296
|
+
13, 13, 13, 13, 13, 13, 13, 13,
|
297
|
+
13, 13, 13, 7, 7, 7, 7, 13,
|
298
|
+
7, 13, 13, 13, 13, 13, 13, 13,
|
299
|
+
13, 13, 13, 13, 13, 13, 13, 13,
|
300
|
+
13, 13, 13, 13, 13, 13, 13, 13,
|
301
|
+
13, 13, 13, 7, 15, 14, 14, 14,
|
277
302
|
14, 14, 14, 14, 14, 14, 14, 14,
|
278
|
-
14, 14, 14, 14, 14, 14, 10, 10,
|
279
|
-
10, 10, 14, 10, 14, 14, 14, 14,
|
280
303
|
14, 14, 14, 14, 14, 14, 14, 14,
|
281
|
-
14,
|
282
|
-
14,
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
304
|
+
14, 16, 14, 17, 14, 14, 14, 18,
|
305
|
+
14, 19, 14, 14, 20, 20, 20, 20,
|
306
|
+
20, 20, 20, 20, 20, 20, 14, 14,
|
307
|
+
14, 14, 14, 14, 14, 20, 20, 20,
|
308
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
309
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
310
|
+
20, 20, 20, 20, 20, 20, 20, 14,
|
311
|
+
14, 14, 14, 20, 14, 20, 20, 20,
|
312
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
313
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
314
|
+
20, 20, 20, 20, 20, 20, 20, 14,
|
315
|
+
21, 21, 21, 21, 21, 21, 21, 21,
|
316
|
+
21, 21, 14, 17, 14, 14, 14, 14,
|
317
|
+
14, 14, 14, 14, 21, 21, 21, 21,
|
318
|
+
21, 21, 21, 21, 21, 21, 14, 21,
|
319
|
+
22, 22, 22, 22, 22, 22, 22, 22,
|
320
|
+
22, 14, 17, 14, 14, 14, 18, 14,
|
321
|
+
18, 14, 14, 22, 22, 22, 22, 22,
|
322
|
+
22, 22, 22, 22, 22, 14, 17, 14,
|
323
|
+
14, 14, 18, 14, 18, 14, 14, 20,
|
324
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
325
|
+
20, 14, 14, 14, 14, 14, 14, 14,
|
326
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
327
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
328
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
329
|
+
20, 20, 14, 14, 14, 14, 20, 14,
|
330
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
331
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
332
|
+
20, 20, 20, 20, 20, 20, 20, 20,
|
333
|
+
20, 20, 14, 23, 14, 24, 14, 14,
|
334
|
+
25, 25, 25, 25, 25, 25, 25, 25,
|
335
|
+
25, 25, 14, 14, 14, 14, 17, 14,
|
336
|
+
14, 25, 25, 25, 25, 25, 25, 25,
|
337
|
+
25, 25, 25, 25, 25, 25, 25, 25,
|
338
|
+
25, 25, 25, 25, 25, 25, 25, 25,
|
339
|
+
25, 25, 25, 14, 14, 14, 14, 25,
|
340
|
+
14, 25, 25, 25, 25, 25, 25, 25,
|
341
|
+
25, 25, 25, 25, 25, 25, 25, 25,
|
342
|
+
25, 25, 25, 25, 25, 25, 25, 25,
|
343
|
+
25, 25, 25, 14, 26, 26, 26, 26,
|
344
|
+
26, 26, 26, 26, 26, 26, 14, 26,
|
345
|
+
26, 26, 26, 26, 26, 26, 26, 26,
|
346
|
+
26, 14, 14, 14, 14, 17, 14, 26,
|
347
|
+
27, 27, 27, 27, 27, 27, 27, 27,
|
348
|
+
27, 14, 23, 14, 23, 14, 14, 27,
|
349
|
+
27, 27, 27, 27, 27, 27, 27, 27,
|
350
|
+
27, 14, 14, 14, 14, 17, 14, 23,
|
351
|
+
14, 23, 14, 14, 25, 25, 25, 25,
|
352
|
+
25, 25, 25, 25, 25, 25, 14, 14,
|
353
|
+
14, 14, 17, 14, 14, 25, 25, 25,
|
354
|
+
25, 25, 25, 25, 25, 25, 25, 25,
|
355
|
+
25, 25, 25, 25, 25, 25, 25, 25,
|
356
|
+
25, 25, 25, 25, 25, 25, 25, 14,
|
357
|
+
14, 14, 14, 25, 14, 25, 25, 25,
|
358
|
+
25, 25, 25, 25, 25, 25, 25, 25,
|
359
|
+
25, 25, 25, 25, 25, 25, 25, 25,
|
360
|
+
25, 25, 25, 25, 25, 25, 25, 14,
|
361
|
+
29, 29, 29, 29, 29, 29, 29, 29,
|
362
|
+
29, 29, 28, 29, 29, 29, 29, 29,
|
363
|
+
29, 29, 29, 29, 29, 28, 28, 28,
|
339
364
|
28, 28, 28, 28, 28, 28, 28, 28,
|
340
365
|
28, 28, 28, 28, 28, 28, 28, 28,
|
341
|
-
28, 28, 28, 28, 28, 17, 17, 17,
|
342
|
-
17, 28, 17, 28, 28, 28, 28, 28,
|
343
366
|
28, 28, 28, 28, 28, 28, 28, 28,
|
344
367
|
28, 28, 28, 28, 28, 28, 28, 28,
|
345
|
-
28, 28, 28, 28, 28, 17, 29, 29,
|
346
|
-
29, 29, 29, 29, 29, 29, 29, 29,
|
347
|
-
17, 29, 29, 29, 29, 29, 29, 29,
|
348
|
-
29, 29, 29, 17, 17, 17, 17, 20,
|
349
|
-
17, 29, 30, 30, 30, 30, 30, 30,
|
350
|
-
30, 30, 30, 17, 26, 17, 26, 17,
|
351
|
-
17, 30, 30, 30, 30, 30, 30, 30,
|
352
|
-
30, 30, 30, 17, 17, 17, 17, 20,
|
353
|
-
17, 26, 17, 26, 17, 17, 28, 28,
|
354
368
|
28, 28, 28, 28, 28, 28, 28, 28,
|
355
|
-
17, 17, 17, 17, 20, 17, 17, 28,
|
356
369
|
28, 28, 28, 28, 28, 28, 28, 28,
|
357
370
|
28, 28, 28, 28, 28, 28, 28, 28,
|
358
371
|
28, 28, 28, 28, 28, 28, 28, 28,
|
359
|
-
|
372
|
+
30, 28, 29, 28, 28, 28, 31, 31,
|
373
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
374
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
375
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
376
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
360
377
|
28, 28, 28, 28, 28, 28, 28, 28,
|
361
378
|
28, 28, 28, 28, 28, 28, 28, 28,
|
362
379
|
28, 28, 28, 28, 28, 28, 28, 28,
|
363
|
-
28,
|
380
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
381
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
382
|
+
28, 28, 28, 30, 28, 32, 33, 34,
|
383
|
+
34, 34, 34, 34, 33, 33, 33, 33,
|
364
384
|
33, 33, 33, 33, 33, 33, 33, 33,
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
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
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
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
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
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
|
-
36, 36, 36, 36, 36, 36, 36, 36,
|
618
|
-
36, 36, 36, 36, 36, 115, 36, 123,
|
619
|
-
123, 123, 123, 123, 123, 123, 123, 123,
|
385
|
+
33, 33, 33, 33, 33, 33, 34, 33,
|
386
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
387
|
+
33, 33, 33, 34, 34, 33, 34, 34,
|
388
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
389
|
+
33, 33, 33, 34, 33, 33, 33, 34,
|
390
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
391
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
392
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
393
|
+
34, 33, 33, 33, 35, 34, 33, 34,
|
394
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
395
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
396
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
397
|
+
34, 33, 34, 34, 34, 34, 34, 33,
|
398
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
399
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
400
|
+
33, 34, 33, 33, 33, 33, 33, 33,
|
401
|
+
33, 33, 33, 33, 33, 33, 34, 34,
|
402
|
+
33, 34, 34, 34, 34, 34, 34, 34,
|
403
|
+
34, 34, 34, 33, 33, 33, 34, 33,
|
404
|
+
33, 33, 34, 34, 34, 34, 34, 34,
|
405
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
406
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
407
|
+
34, 34, 34, 34, 33, 33, 33, 33,
|
408
|
+
34, 33, 34, 34, 34, 34, 34, 34,
|
409
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
410
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
411
|
+
34, 34, 34, 34, 33, 33, 36, 33,
|
412
|
+
34, 34, 34, 34, 34, 33, 33, 33,
|
413
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
414
|
+
33, 33, 33, 33, 33, 33, 33, 34,
|
415
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
416
|
+
33, 33, 33, 33, 34, 34, 33, 34,
|
417
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
418
|
+
34, 33, 33, 33, 34, 33, 33, 33,
|
419
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
420
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
421
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
422
|
+
34, 34, 33, 33, 33, 33, 34, 33,
|
423
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
424
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
425
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
426
|
+
34, 34, 33, 38, 38, 38, 38, 38,
|
427
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
428
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
429
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
430
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
431
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
432
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
433
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
434
|
+
38, 38, 38, 37, 39, 39, 39, 39,
|
435
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
436
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
437
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
438
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
439
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
440
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
441
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
442
|
+
39, 39, 39, 39, 37, 41, 40, 44,
|
443
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
444
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
445
|
+
43, 43, 43, 44, 44, 44, 44, 44,
|
446
|
+
44, 44, 44, 44, 44, 44, 44, 44,
|
447
|
+
44, 44, 44, 44, 44, 44, 44, 44,
|
448
|
+
44, 44, 44, 44, 44, 43, 43, 43,
|
449
|
+
43, 43, 43, 44, 44, 44, 44, 44,
|
450
|
+
44, 44, 44, 44, 44, 44, 44, 44,
|
451
|
+
44, 44, 44, 44, 44, 44, 44, 44,
|
452
|
+
44, 44, 44, 44, 44, 43, 44, 45,
|
453
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
454
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
455
|
+
43, 43, 44, 44, 44, 44, 44, 44,
|
456
|
+
44, 44, 44, 44, 44, 44, 44, 44,
|
457
|
+
44, 44, 44, 44, 44, 44, 44, 44,
|
458
|
+
44, 44, 44, 44, 43, 43, 43, 43,
|
459
|
+
43, 43, 44, 44, 44, 44, 44, 44,
|
460
|
+
44, 44, 44, 44, 44, 44, 44, 44,
|
461
|
+
44, 44, 44, 44, 44, 44, 44, 44,
|
462
|
+
44, 44, 44, 44, 43, 46, 43, 47,
|
463
|
+
43, 43, 48, 49, 50, 51, 43, 43,
|
464
|
+
52, 43, 43, 43, 43, 53, 43, 43,
|
465
|
+
43, 54, 43, 43, 55, 43, 56, 43,
|
466
|
+
57, 58, 43, 48, 49, 50, 51, 43,
|
467
|
+
43, 52, 43, 43, 43, 43, 53, 43,
|
468
|
+
43, 43, 54, 43, 43, 55, 43, 56,
|
469
|
+
43, 57, 58, 43, 59, 43, 43, 43,
|
470
|
+
43, 43, 43, 60, 43, 61, 43, 62,
|
471
|
+
43, 63, 43, 64, 43, 65, 43, 66,
|
472
|
+
43, 67, 43, 64, 43, 68, 43, 69,
|
473
|
+
43, 64, 43, 70, 43, 71, 43, 72,
|
474
|
+
43, 64, 43, 73, 43, 74, 43, 75,
|
475
|
+
43, 64, 43, 76, 43, 77, 43, 78,
|
476
|
+
43, 64, 43, 79, 43, 80, 43, 81,
|
477
|
+
43, 64, 43, 82, 43, 83, 43, 84,
|
478
|
+
43, 64, 43, 85, 43, 43, 86, 43,
|
479
|
+
87, 43, 78, 43, 88, 43, 78, 43,
|
480
|
+
89, 43, 90, 43, 91, 43, 64, 43,
|
481
|
+
92, 43, 83, 43, 93, 43, 94, 43,
|
482
|
+
64, 43, 51, 43, 95, 95, 95, 95,
|
483
|
+
95, 95, 95, 95, 95, 95, 95, 95,
|
484
|
+
95, 95, 95, 95, 95, 95, 95, 95,
|
485
|
+
95, 95, 95, 95, 95, 95, 43, 43,
|
486
|
+
43, 43, 43, 43, 95, 95, 95, 95,
|
487
|
+
95, 95, 95, 95, 95, 95, 95, 95,
|
488
|
+
95, 95, 95, 95, 95, 95, 95, 95,
|
489
|
+
95, 95, 95, 95, 95, 95, 43, 96,
|
490
|
+
43, 97, 43, 99, 99, 99, 99, 99,
|
491
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
492
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
493
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
494
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
495
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
496
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
497
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
498
|
+
99, 99, 99, 98, 100, 100, 100, 100,
|
499
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
500
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
501
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
502
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
503
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
504
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
505
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
506
|
+
100, 100, 100, 100, 98, 101, 33, 103,
|
507
|
+
102, 105, 102, 106, 33, 108, 107, 110,
|
508
|
+
107, 111, 111, 111, 111, 111, 111, 111,
|
509
|
+
111, 111, 111, 33, 33, 33, 33, 33,
|
510
|
+
33, 33, 111, 111, 111, 111, 111, 111,
|
511
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
512
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
513
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
514
|
+
33, 33, 111, 111, 111, 111, 111, 111,
|
515
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
516
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
517
|
+
33, 33, 33, 33, 112, 33, 113, 113,
|
518
|
+
113, 113, 113, 113, 113, 113, 113, 113,
|
519
|
+
33, 33, 33, 33, 33, 33, 33, 113,
|
520
|
+
113, 113, 113, 113, 113, 33, 33, 33,
|
521
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
522
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
523
|
+
33, 33, 33, 33, 33, 33, 33, 113,
|
524
|
+
113, 113, 113, 113, 113, 33, 114, 114,
|
525
|
+
114, 114, 114, 114, 114, 114, 114, 114,
|
526
|
+
33, 33, 33, 33, 33, 33, 33, 114,
|
527
|
+
114, 114, 114, 114, 114, 33, 33, 33,
|
528
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
529
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
530
|
+
33, 33, 33, 33, 33, 33, 33, 114,
|
531
|
+
114, 114, 114, 114, 114, 33, 115, 115,
|
532
|
+
115, 115, 115, 115, 115, 115, 115, 115,
|
533
|
+
33, 33, 33, 33, 33, 33, 33, 115,
|
534
|
+
115, 115, 115, 115, 115, 33, 33, 33,
|
535
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
536
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
537
|
+
33, 33, 33, 33, 33, 33, 33, 115,
|
538
|
+
115, 115, 115, 115, 115, 33, 116, 116,
|
539
|
+
116, 116, 116, 116, 116, 116, 116, 116,
|
540
|
+
33, 33, 33, 33, 33, 33, 33, 116,
|
541
|
+
116, 116, 116, 116, 116, 33, 33, 33,
|
542
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
543
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
544
|
+
33, 33, 33, 33, 33, 33, 33, 116,
|
545
|
+
116, 116, 116, 116, 116, 33, 112, 112,
|
546
|
+
112, 112, 112, 33, 33, 33, 33, 33,
|
547
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
548
|
+
33, 33, 33, 33, 33, 112, 33, 33,
|
549
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
550
|
+
33, 33, 33, 33, 33, 117, 117, 117,
|
551
|
+
117, 117, 117, 117, 117, 117, 117, 33,
|
552
|
+
33, 33, 33, 33, 33, 33, 117, 117,
|
553
|
+
117, 117, 117, 117, 33, 33, 33, 33,
|
554
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
555
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
556
|
+
33, 33, 33, 33, 33, 33, 117, 117,
|
557
|
+
117, 117, 117, 117, 33, 33, 33, 33,
|
558
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
559
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
560
|
+
33, 33, 115, 33, 112, 112, 112, 112,
|
561
|
+
112, 33, 33, 33, 33, 33, 33, 33,
|
562
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
563
|
+
33, 33, 33, 112, 33, 33, 33, 33,
|
564
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
565
|
+
33, 33, 33, 118, 118, 118, 118, 118,
|
566
|
+
118, 118, 118, 118, 118, 33, 33, 33,
|
567
|
+
33, 33, 33, 33, 118, 118, 118, 118,
|
568
|
+
118, 118, 33, 33, 33, 33, 33, 33,
|
569
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
570
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
571
|
+
33, 33, 33, 33, 118, 118, 118, 118,
|
572
|
+
118, 118, 33, 33, 33, 33, 33, 33,
|
573
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
574
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
575
|
+
115, 33, 112, 112, 112, 112, 112, 33,
|
576
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
577
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
578
|
+
33, 112, 33, 33, 33, 33, 33, 33,
|
579
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
580
|
+
33, 119, 119, 119, 119, 119, 119, 119,
|
581
|
+
119, 119, 119, 33, 33, 33, 33, 33,
|
582
|
+
33, 33, 119, 119, 119, 119, 119, 119,
|
583
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
584
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
585
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
586
|
+
33, 33, 119, 119, 119, 119, 119, 119,
|
587
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
588
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
589
|
+
33, 33, 33, 33, 33, 33, 115, 33,
|
590
|
+
112, 112, 112, 112, 112, 33, 33, 33,
|
591
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
592
|
+
33, 33, 33, 33, 33, 33, 33, 112,
|
593
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
594
|
+
33, 33, 33, 33, 33, 33, 33, 120,
|
595
|
+
120, 120, 120, 120, 120, 120, 120, 120,
|
596
|
+
120, 33, 33, 33, 33, 33, 33, 33,
|
597
|
+
120, 120, 120, 120, 120, 120, 33, 33,
|
598
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
599
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
600
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
601
|
+
120, 120, 120, 120, 120, 120, 33, 33,
|
602
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
603
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
604
|
+
33, 33, 33, 33, 115, 33, 112, 112,
|
605
|
+
112, 112, 112, 33, 33, 33, 33, 33,
|
606
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
607
|
+
33, 33, 33, 33, 33, 112, 33, 33,
|
608
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
609
|
+
33, 33, 33, 33, 33, 121, 121, 121,
|
610
|
+
121, 121, 121, 121, 121, 121, 121, 33,
|
611
|
+
33, 33, 33, 33, 33, 33, 121, 121,
|
612
|
+
121, 121, 121, 121, 33, 33, 33, 33,
|
613
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
614
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
615
|
+
33, 33, 33, 33, 33, 33, 121, 121,
|
616
|
+
121, 121, 121, 121, 33, 33, 33, 33,
|
617
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
618
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
619
|
+
33, 33, 115, 33, 112, 112, 112, 112,
|
620
|
+
112, 33, 33, 33, 33, 33, 33, 33,
|
621
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
622
|
+
33, 33, 33, 112, 33, 33, 33, 33,
|
623
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
624
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
625
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
626
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
627
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
628
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
629
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
630
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
631
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
632
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
633
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
634
|
+
115, 33, 123, 123, 123, 123, 123, 123,
|
635
|
+
123, 123, 123, 123, 122, 122, 122, 122,
|
636
|
+
122, 122, 122, 123, 123, 123, 123, 123,
|
620
637
|
123, 122, 122, 122, 122, 122, 122, 122,
|
621
|
-
123, 123, 123, 123, 123, 123, 122, 122,
|
622
|
-
122, 122, 122, 122, 122, 122, 122, 122,
|
623
638
|
122, 122, 122, 122, 122, 122, 122, 122,
|
624
639
|
122, 122, 122, 122, 122, 122, 122, 122,
|
625
|
-
|
626
|
-
|
640
|
+
122, 122, 122, 123, 123, 123, 123, 123,
|
641
|
+
123, 122, 122, 122, 122, 122, 122, 122,
|
627
642
|
122, 122, 122, 122, 122, 122, 122, 122,
|
628
|
-
122, 122,
|
629
|
-
124,
|
630
|
-
|
631
|
-
127,
|
632
|
-
|
633
|
-
127, 127, 127, 127, 127, 127, 127, 127,
|
643
|
+
122, 122, 122, 122, 122, 33, 122, 125,
|
644
|
+
124, 126, 124, 124, 124, 124, 124, 124,
|
645
|
+
124, 124, 127, 127, 127, 127, 127, 127,
|
646
|
+
127, 127, 127, 127, 124, 124, 124, 124,
|
647
|
+
124, 124, 124, 127, 127, 127, 127, 127,
|
634
648
|
127, 127, 127, 127, 127, 127, 127, 127,
|
635
|
-
127, 127, 124, 124, 124, 124, 127, 124,
|
636
649
|
127, 127, 127, 127, 127, 127, 127, 127,
|
650
|
+
127, 127, 127, 127, 127, 124, 124, 124,
|
651
|
+
124, 127, 124, 127, 127, 127, 127, 127,
|
637
652
|
127, 127, 127, 127, 127, 127, 127, 127,
|
638
653
|
127, 127, 127, 127, 127, 127, 127, 127,
|
639
|
-
127, 127,
|
640
|
-
124, 124,
|
641
|
-
128, 128, 128, 128,
|
642
|
-
129, 129, 129, 129, 129, 129, 129, 124,
|
643
|
-
124, 124, 124, 126, 124, 124, 129, 129,
|
654
|
+
127, 127, 127, 127, 127, 124, 125, 124,
|
655
|
+
124, 124, 124, 124, 124, 128, 128, 128,
|
656
|
+
128, 128, 128, 128, 128, 128, 128, 124,
|
644
657
|
129, 129, 129, 129, 129, 129, 129, 129,
|
658
|
+
129, 129, 124, 124, 124, 124, 126, 124,
|
659
|
+
124, 129, 129, 129, 129, 129, 129, 129,
|
645
660
|
129, 129, 129, 129, 129, 129, 129, 129,
|
646
661
|
129, 129, 129, 129, 129, 129, 129, 129,
|
647
|
-
|
662
|
+
129, 129, 129, 124, 124, 124, 124, 129,
|
663
|
+
124, 129, 129, 129, 129, 129, 129, 129,
|
648
664
|
129, 129, 129, 129, 129, 129, 129, 129,
|
649
665
|
129, 129, 129, 129, 129, 129, 129, 129,
|
650
|
-
129, 129, 129,
|
651
|
-
|
666
|
+
129, 129, 129, 124, 33, 33, 33, 33,
|
667
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
668
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
669
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
670
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
671
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
672
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
673
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
674
|
+
33, 33, 33, 33, 33, 33, 130, 130,
|
675
|
+
130, 130, 130, 130, 130, 130, 130, 130,
|
652
676
|
130, 130, 130, 130, 130, 130, 130, 130,
|
653
677
|
130, 130, 130, 130, 130, 130, 130, 130,
|
654
|
-
130, 130, 130, 130,
|
678
|
+
130, 130, 130, 130, 131, 131, 131, 131,
|
655
679
|
131, 131, 131, 131, 131, 131, 131, 131,
|
656
|
-
131, 131, 131, 131,
|
657
|
-
132,
|
658
|
-
|
659
|
-
133, 133, 133, 133, 133,
|
660
|
-
134, 134,
|
680
|
+
131, 131, 131, 131, 132, 132, 132, 132,
|
681
|
+
132, 33, 33, 33, 33, 33, 33, 33,
|
682
|
+
33, 33, 33, 33, 33, 133, 133, 133,
|
683
|
+
133, 133, 133, 133, 133, 134, 134, 134,
|
684
|
+
134, 134, 133, 133, 133, 133, 133, 133,
|
661
685
|
133, 133, 133, 133, 133, 133, 133, 133,
|
662
|
-
133, 133, 133, 133,
|
663
|
-
|
664
|
-
|
686
|
+
133, 133, 133, 133, 135, 136, 136, 137,
|
687
|
+
138, 136, 136, 136, 139, 140, 141, 142,
|
688
|
+
136, 136, 143, 136, 136, 136, 136, 136,
|
665
689
|
136, 136, 136, 136, 136, 136, 136, 136,
|
666
|
-
136, 136, 136,
|
690
|
+
136, 136, 136, 144, 136, 136, 136, 136,
|
667
691
|
136, 136, 136, 136, 136, 136, 136, 136,
|
668
692
|
136, 136, 136, 136, 136, 136, 136, 136,
|
693
|
+
136, 136, 136, 136, 136, 136, 136, 145,
|
694
|
+
146, 147, 148, 136, 136, 136, 136, 136,
|
669
695
|
136, 136, 136, 136, 136, 136, 136, 136,
|
670
|
-
136, 136, 145, 146, 31, 147, 136, 136,
|
671
696
|
136, 136, 136, 136, 136, 136, 136, 136,
|
672
|
-
136, 136, 136, 136, 136, 136, 136,
|
673
|
-
|
674
|
-
136, 136, 33, 148, 31, 136, 133, 31,
|
697
|
+
136, 136, 136, 136, 136, 136, 136, 149,
|
698
|
+
150, 147, 136, 133, 136, 130, 130, 130,
|
675
699
|
130, 130, 130, 130, 130, 130, 130, 130,
|
676
700
|
130, 130, 130, 130, 130, 130, 130, 130,
|
677
701
|
130, 130, 130, 130, 130, 130, 130, 130,
|
678
|
-
130, 130, 130,
|
702
|
+
130, 130, 130, 151, 131, 131, 131, 131,
|
679
703
|
131, 131, 131, 131, 131, 131, 131, 131,
|
680
|
-
131, 131, 131, 131,
|
681
|
-
132, 132,
|
704
|
+
131, 131, 131, 131, 151, 132, 132, 132,
|
705
|
+
132, 132, 151, 133, 133, 133, 133, 133,
|
682
706
|
133, 133, 133, 133, 133, 133, 133, 133,
|
683
707
|
133, 133, 133, 133, 133, 133, 133, 133,
|
684
708
|
133, 133, 133, 133, 133, 133, 133, 133,
|
685
|
-
133, 133,
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
133, 133, 133,
|
699
|
-
134, 134, 134, 133, 133, 133, 133, 133,
|
709
|
+
133, 133, 151, 151, 151, 151, 151, 151,
|
710
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
711
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
712
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
713
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
714
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
715
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
716
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
717
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
718
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
719
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
720
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
721
|
+
151, 133, 151, 133, 133, 133, 133, 133,
|
722
|
+
133, 133, 133, 134, 134, 134, 134, 134,
|
700
723
|
133, 133, 133, 133, 133, 133, 133, 133,
|
701
|
-
133, 133, 133, 133, 133,
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
136,
|
720
|
-
136, 136, 136, 136, 136, 149, 136, 136,
|
721
|
-
136, 136, 136, 136, 136, 136, 136, 136,
|
724
|
+
133, 133, 133, 133, 133, 133, 133, 133,
|
725
|
+
133, 133, 135, 152, 152, 152, 152, 152,
|
726
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
727
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
728
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
729
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
730
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
731
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
732
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
733
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
734
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
735
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
736
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
737
|
+
152, 133, 152, 135, 135, 135, 135, 135,
|
738
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
739
|
+
152, 152, 152, 152, 152, 152, 152, 152,
|
740
|
+
152, 152, 135, 152, 136, 136, 151, 151,
|
741
|
+
136, 136, 136, 151, 151, 151, 151, 136,
|
742
|
+
136, 151, 136, 136, 136, 136, 136, 136,
|
722
743
|
136, 136, 136, 136, 136, 136, 136, 136,
|
744
|
+
136, 136, 151, 136, 136, 136, 136, 136,
|
723
745
|
136, 136, 136, 136, 136, 136, 136, 136,
|
724
|
-
136, 149, 149, 149, 149, 136, 136, 136,
|
725
746
|
136, 136, 136, 136, 136, 136, 136, 136,
|
747
|
+
136, 136, 136, 136, 136, 136, 151, 151,
|
748
|
+
151, 151, 136, 136, 136, 136, 136, 136,
|
726
749
|
136, 136, 136, 136, 136, 136, 136, 136,
|
727
750
|
136, 136, 136, 136, 136, 136, 136, 136,
|
728
|
-
136,
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
749
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
750
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
751
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
752
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
753
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
754
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
755
|
-
154, 154, 154, 13, 154, 153, 154, 153,
|
756
|
-
154, 154, 154, 153, 153, 153, 154, 154,
|
757
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
758
|
-
154, 154, 154, 154, 154, 154, 157, 154,
|
759
|
-
153, 153, 153, 154, 154, 154, 154, 154,
|
760
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
761
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
762
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
763
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
764
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
765
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
766
|
-
154, 154, 154, 154, 154, 154, 154, 154,
|
767
|
-
154, 154, 153, 154, 159, 158, 158, 158,
|
751
|
+
136, 136, 136, 136, 136, 136, 151, 151,
|
752
|
+
151, 136, 151, 154, 137, 156, 155, 12,
|
753
|
+
158, 8, 158, 158, 158, 11, 159, 157,
|
754
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
755
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
756
|
+
10, 158, 160, 12, 10, 158, 158, 158,
|
757
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
758
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
759
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
760
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
761
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
762
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
763
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
764
|
+
158, 158, 158, 158, 10, 158, 157, 158,
|
765
|
+
157, 158, 158, 158, 157, 157, 157, 158,
|
766
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
767
|
+
158, 158, 158, 158, 158, 158, 158, 161,
|
768
|
+
158, 157, 157, 157, 158, 158, 158, 158,
|
769
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
770
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
768
771
|
158, 158, 158, 158, 158, 158, 158, 158,
|
769
772
|
158, 158, 158, 158, 158, 158, 158, 158,
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
773
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
774
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
775
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
776
|
+
158, 158, 158, 157, 158, 163, 162, 162,
|
774
777
|
162, 162, 162, 162, 162, 162, 162, 162,
|
775
|
-
162, 162, 162, 162,
|
776
|
-
|
777
|
-
|
778
|
-
164, 164, 164, 164, 164, 164, 164, 165,
|
779
|
-
164, 164, 164, 164, 164, 164, 164, 165,
|
780
|
-
164, 164, 164, 164, 167, 164, 164, 164,
|
781
|
-
167, 164, 164, 164, 164, 164, 164, 164,
|
778
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
779
|
+
162, 163, 162, 165, 164, 164, 164, 164,
|
780
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
782
781
|
164, 164, 164, 164, 164, 164, 164, 165,
|
783
|
-
164,
|
782
|
+
164, 167, 166, 166, 166, 166, 166, 166,
|
783
|
+
166, 166, 166, 166, 166, 166, 166, 166,
|
784
|
+
166, 166, 166, 166, 166, 167, 166, 169,
|
785
|
+
169, 168, 168, 168, 168, 169, 168, 168,
|
786
|
+
168, 170, 168, 168, 168, 168, 168, 168,
|
787
|
+
168, 168, 168, 168, 168, 168, 168, 168,
|
788
|
+
169, 168, 168, 168, 168, 168, 168, 168,
|
789
|
+
169, 168, 168, 168, 168, 171, 168, 168,
|
790
|
+
168, 171, 168, 168, 168, 168, 168, 168,
|
784
791
|
168, 168, 168, 168, 168, 168, 168, 168,
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
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
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
792
|
+
169, 168, 173, 172, 172, 172, 31, 31,
|
793
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
794
|
+
172, 175, 174, 174, 174, 174, 174, 174,
|
795
|
+
174, 174, 174, 174, 174, 174, 174, 174,
|
796
|
+
174, 174, 174, 174, 174, 175, 174, 176,
|
797
|
+
33, 33, 33, 176, 33, 33, 33, 33,
|
798
|
+
33, 33, 33, 33, 33, 176, 176, 33,
|
799
|
+
33, 33, 176, 176, 33, 33, 33, 33,
|
800
|
+
33, 33, 33, 33, 33, 33, 33, 176,
|
801
|
+
33, 33, 33, 176, 33, 33, 33, 33,
|
802
|
+
33, 33, 33, 33, 33, 33, 176, 33,
|
803
|
+
33, 33, 176, 33, 177, 33, 33, 33,
|
804
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
805
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
806
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
807
|
+
33, 33, 33, 33, 177, 33, 178, 178,
|
808
|
+
178, 178, 178, 178, 178, 178, 178, 178,
|
809
|
+
178, 178, 178, 178, 178, 178, 178, 178,
|
810
|
+
178, 178, 178, 178, 178, 178, 178, 178,
|
811
|
+
178, 178, 178, 178, 179, 179, 179, 179,
|
812
|
+
179, 179, 179, 179, 179, 179, 179, 179,
|
813
|
+
179, 179, 179, 179, 180, 180, 180, 180,
|
814
|
+
180, 38, 38, 38, 38, 38, 38, 38,
|
815
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
816
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
817
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
818
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
819
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
820
|
+
181, 38, 182, 38, 181, 181, 181, 181,
|
821
|
+
38, 183, 181, 38, 38, 38, 38, 38,
|
822
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
823
|
+
38, 38, 38, 181, 38, 38, 38, 38,
|
824
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
825
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
826
|
+
38, 38, 38, 38, 38, 38, 38, 184,
|
827
|
+
185, 186, 187, 38, 38, 38, 38, 38,
|
828
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
829
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
830
|
+
38, 38, 38, 38, 38, 38, 38, 181,
|
831
|
+
181, 181, 38, 38, 38, 38, 38, 38,
|
832
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
833
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
834
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
835
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
836
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
837
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
838
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
839
|
+
38, 38, 38, 188, 39, 39, 39, 39,
|
840
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
841
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
842
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
843
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
844
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
845
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
846
|
+
39, 39, 39, 39, 39, 39, 39, 39,
|
847
|
+
39, 39, 39, 39, 188, 189, 189, 189,
|
848
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
849
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
850
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
851
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
852
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
853
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
854
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
855
|
+
189, 189, 189, 189, 189, 188, 190, 188,
|
856
|
+
192, 191, 191, 191, 191, 191, 191, 191,
|
857
|
+
191, 191, 191, 191, 191, 191, 191, 191,
|
858
|
+
191, 191, 191, 191, 191, 191, 191, 191,
|
859
|
+
191, 191, 191, 191, 191, 191, 191, 191,
|
860
|
+
191, 191, 191, 191, 191, 191, 191, 191,
|
861
|
+
191, 191, 191, 191, 191, 191, 191, 191,
|
862
|
+
191, 191, 191, 191, 191, 191, 191, 193,
|
863
|
+
191, 196, 195, 195, 195, 195, 195, 195,
|
864
|
+
195, 195, 195, 195, 195, 197, 195, 195,
|
865
|
+
198, 195, 200, 200, 200, 200, 200, 200,
|
866
|
+
200, 200, 200, 200, 199, 199, 199, 199,
|
867
|
+
199, 199, 199, 200, 200, 200, 199, 199,
|
868
|
+
199, 200, 199, 199, 199, 200, 199, 200,
|
869
|
+
199, 199, 199, 199, 200, 199, 199, 199,
|
870
|
+
199, 199, 200, 199, 200, 199, 199, 199,
|
871
|
+
199, 199, 199, 199, 199, 200, 199, 199,
|
872
|
+
199, 200, 199, 199, 199, 200, 199, 199,
|
873
|
+
199, 199, 199, 199, 199, 199, 199, 199,
|
874
|
+
199, 199, 199, 199, 200, 199, 201, 201,
|
875
|
+
201, 201, 201, 201, 201, 201, 201, 201,
|
876
|
+
201, 201, 201, 201, 201, 201, 201, 201,
|
877
|
+
201, 201, 201, 201, 201, 201, 201, 201,
|
878
|
+
201, 201, 201, 201, 202, 202, 202, 202,
|
879
|
+
202, 202, 202, 202, 202, 202, 202, 202,
|
880
|
+
202, 202, 202, 202, 203, 203, 203, 203,
|
881
|
+
203, 99, 99, 99, 99, 99, 99, 99,
|
882
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
883
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
884
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
885
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
886
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
887
|
+
204, 99, 99, 99, 204, 204, 204, 204,
|
888
|
+
99, 99, 204, 99, 205, 206, 206, 206,
|
889
|
+
206, 206, 206, 206, 207, 207, 99, 99,
|
890
|
+
99, 99, 99, 204, 99, 33, 33, 208,
|
891
|
+
209, 99, 99, 33, 209, 99, 99, 33,
|
892
|
+
99, 210, 99, 99, 211, 99, 209, 209,
|
893
|
+
99, 99, 99, 209, 209, 99, 33, 204,
|
894
|
+
204, 204, 204, 99, 99, 212, 212, 101,
|
895
|
+
209, 212, 212, 99, 209, 99, 99, 99,
|
896
|
+
99, 99, 212, 99, 211, 99, 212, 209,
|
897
|
+
212, 213, 212, 209, 214, 99, 33, 204,
|
898
|
+
204, 204, 99, 99, 99, 99, 99, 99,
|
899
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
900
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
901
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
902
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
903
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
904
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
905
|
+
99, 99, 99, 99, 99, 99, 99, 99,
|
906
|
+
99, 99, 99, 215, 100, 100, 100, 100,
|
907
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
908
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
909
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
910
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
911
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
912
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
913
|
+
100, 100, 100, 100, 100, 100, 100, 100,
|
914
|
+
100, 100, 100, 100, 215, 216, 216, 216,
|
915
|
+
216, 216, 216, 216, 216, 216, 216, 216,
|
916
|
+
216, 216, 216, 216, 216, 216, 216, 216,
|
917
|
+
216, 216, 216, 216, 216, 216, 216, 216,
|
918
|
+
216, 216, 216, 216, 216, 216, 216, 216,
|
919
|
+
216, 216, 216, 216, 216, 216, 216, 216,
|
920
|
+
216, 216, 216, 216, 216, 216, 216, 216,
|
921
|
+
216, 216, 216, 216, 216, 216, 216, 216,
|
922
|
+
216, 216, 216, 216, 216, 215, 218, 218,
|
923
|
+
218, 218, 218, 218, 218, 218, 217, 220,
|
924
|
+
220, 220, 220, 220, 220, 220, 220, 219,
|
925
|
+
222, 102, 224, 223, 102, 226, 107, 107,
|
879
926
|
107, 107, 107, 107, 107, 107, 107, 107,
|
880
927
|
107, 107, 107, 107, 107, 107, 107, 107,
|
881
928
|
107, 107, 107, 107, 107, 107, 107, 107,
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
127,
|
896
|
-
|
897
|
-
127, 127, 127, 127, 127, 127, 127, 127,
|
929
|
+
107, 107, 107, 107, 107, 227, 107, 229,
|
930
|
+
228, 107, 110, 107, 232, 232, 232, 232,
|
931
|
+
232, 232, 232, 232, 232, 232, 231, 231,
|
932
|
+
231, 231, 231, 231, 231, 232, 232, 232,
|
933
|
+
232, 232, 232, 231, 231, 231, 231, 231,
|
934
|
+
231, 231, 231, 231, 231, 231, 231, 231,
|
935
|
+
231, 231, 231, 231, 231, 231, 231, 231,
|
936
|
+
231, 231, 231, 231, 231, 232, 232, 232,
|
937
|
+
232, 232, 232, 231, 234, 233, 233, 233,
|
938
|
+
233, 233, 235, 233, 233, 233, 236, 236,
|
939
|
+
236, 236, 236, 236, 236, 236, 236, 233,
|
940
|
+
233, 237, 233, 126, 238, 238, 238, 238,
|
941
|
+
238, 238, 238, 238, 127, 127, 127, 127,
|
942
|
+
127, 127, 127, 127, 127, 127, 238, 238,
|
943
|
+
238, 238, 238, 238, 238, 127, 127, 127,
|
898
944
|
127, 127, 127, 127, 127, 127, 127, 127,
|
899
|
-
127, 127, 228, 228, 228, 228, 127, 228,
|
900
945
|
127, 127, 127, 127, 127, 127, 127, 127,
|
946
|
+
127, 127, 127, 127, 127, 127, 127, 238,
|
947
|
+
238, 238, 238, 127, 238, 127, 127, 127,
|
901
948
|
127, 127, 127, 127, 127, 127, 127, 127,
|
902
949
|
127, 127, 127, 127, 127, 127, 127, 127,
|
903
|
-
127, 127,
|
904
|
-
128, 128, 128, 128,
|
905
|
-
|
906
|
-
|
950
|
+
127, 127, 127, 127, 127, 127, 127, 238,
|
951
|
+
128, 128, 128, 128, 128, 128, 128, 128,
|
952
|
+
128, 238, 125, 238, 238, 238, 238, 238,
|
953
|
+
238, 128, 128, 128, 128, 128, 128, 128,
|
954
|
+
128, 128, 128, 238, 129, 129, 129, 129,
|
955
|
+
129, 129, 129, 129, 129, 129, 238, 238,
|
956
|
+
238, 238, 126, 238, 238, 129, 129, 129,
|
907
957
|
129, 129, 129, 129, 129, 129, 129, 129,
|
908
|
-
129, 228, 228, 228, 228, 126, 228, 228,
|
909
958
|
129, 129, 129, 129, 129, 129, 129, 129,
|
959
|
+
129, 129, 129, 129, 129, 129, 129, 238,
|
960
|
+
238, 238, 238, 129, 238, 129, 129, 129,
|
910
961
|
129, 129, 129, 129, 129, 129, 129, 129,
|
911
962
|
129, 129, 129, 129, 129, 129, 129, 129,
|
912
|
-
129, 129,
|
913
|
-
|
914
|
-
129, 129, 129, 129, 129, 129, 129, 129,
|
915
|
-
129, 129, 129, 129, 129, 129, 129, 129,
|
916
|
-
129, 129, 228, 0
|
963
|
+
129, 129, 129, 129, 129, 129, 129, 238,
|
964
|
+
0
|
917
965
|
]
|
918
966
|
|
919
967
|
class << self
|
@@ -921,35 +969,36 @@ class << self
|
|
921
969
|
private :_re_scanner_trans_targs, :_re_scanner_trans_targs=
|
922
970
|
end
|
923
971
|
self._re_scanner_trans_targs = [
|
924
|
-
|
925
|
-
7,
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
|
952
|
-
|
972
|
+
112, 113, 3, 114, 5, 6, 115, 112,
|
973
|
+
7, 112, 112, 8, 112, 10, 112, 12,
|
974
|
+
18, 112, 13, 15, 17, 14, 16, 19,
|
975
|
+
21, 23, 20, 22, 112, 25, 129, 26,
|
976
|
+
28, 0, 29, 30, 131, 132, 132, 31,
|
977
|
+
132, 132, 132, 132, 35, 36, 132, 38,
|
978
|
+
39, 50, 54, 58, 62, 66, 70, 75,
|
979
|
+
79, 81, 84, 40, 47, 41, 45, 42,
|
980
|
+
43, 44, 132, 46, 48, 49, 51, 52,
|
981
|
+
53, 55, 56, 57, 59, 60, 61, 63,
|
982
|
+
64, 65, 67, 68, 69, 71, 73, 72,
|
983
|
+
74, 76, 77, 78, 80, 82, 83, 86,
|
984
|
+
87, 132, 140, 140, 88, 91, 140, 146,
|
985
|
+
140, 148, 94, 140, 149, 140, 151, 97,
|
986
|
+
100, 98, 99, 140, 101, 102, 103, 104,
|
987
|
+
105, 106, 140, 153, 154, 154, 108, 109,
|
988
|
+
110, 111, 1, 2, 4, 116, 117, 118,
|
989
|
+
119, 120, 112, 121, 112, 124, 125, 112,
|
990
|
+
126, 112, 127, 112, 112, 128, 112, 112,
|
991
|
+
112, 112, 112, 112, 122, 112, 123, 112,
|
992
|
+
9, 112, 112, 112, 112, 112, 112, 112,
|
993
|
+
112, 112, 112, 11, 112, 24, 112, 112,
|
994
|
+
130, 27, 133, 134, 135, 132, 136, 137,
|
995
|
+
138, 132, 132, 132, 132, 32, 132, 132,
|
996
|
+
33, 132, 132, 132, 34, 37, 85, 139,
|
997
|
+
139, 141, 142, 143, 140, 144, 144, 140,
|
998
|
+
90, 140, 93, 140, 140, 96, 107, 140,
|
999
|
+
89, 140, 145, 140, 140, 140, 147, 140,
|
1000
|
+
92, 140, 150, 152, 140, 95, 140, 140,
|
1001
|
+
140, 154, 155, 156, 157, 158, 154
|
953
1002
|
]
|
954
1003
|
|
955
1004
|
class << self
|
@@ -958,34 +1007,35 @@ class << self
|
|
958
1007
|
end
|
959
1008
|
self._re_scanner_trans_actions = [
|
960
1009
|
1, 2, 0, 2, 0, 0, 2, 3,
|
961
|
-
|
962
|
-
0,
|
963
|
-
0, 0, 0, 0,
|
964
|
-
0, 0, 0, 0,
|
965
|
-
15, 16,
|
966
|
-
0, 21, 0, 0, 0, 0, 0, 0,
|
1010
|
+
4, 5, 6, 0, 7, 0, 8, 0,
|
1011
|
+
0, 9, 0, 0, 0, 0, 0, 0,
|
1012
|
+
0, 0, 0, 0, 10, 0, 0, 0,
|
1013
|
+
0, 0, 0, 0, 12, 13, 14, 0,
|
1014
|
+
15, 16, 17, 18, 0, 0, 19, 0,
|
967
1015
|
0, 0, 0, 0, 0, 0, 0, 0,
|
968
|
-
0, 0, 0, 0, 0, 22, 0, 0,
|
969
1016
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1017
|
+
0, 0, 20, 0, 0, 0, 0, 0,
|
970
1018
|
0, 0, 0, 0, 0, 0, 0, 0,
|
971
1019
|
0, 0, 0, 0, 0, 0, 0, 0,
|
972
|
-
0, 0, 0, 0, 23, 0, 24, 0,
|
973
|
-
25, 0, 0, 26, 0, 27, 0, 0,
|
974
|
-
0, 0, 0, 28, 0, 0, 0, 0,
|
975
|
-
0, 0, 29, 0, 30, 31, 0, 0,
|
976
1020
|
0, 0, 0, 0, 0, 0, 0, 0,
|
977
|
-
0,
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
0,
|
983
|
-
|
984
|
-
|
985
|
-
0,
|
986
|
-
|
987
|
-
|
988
|
-
|
1021
|
+
0, 21, 22, 23, 0, 0, 25, 0,
|
1022
|
+
26, 0, 0, 27, 0, 28, 0, 0,
|
1023
|
+
0, 0, 0, 29, 0, 0, 0, 0,
|
1024
|
+
0, 0, 30, 0, 31, 32, 0, 0,
|
1025
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1026
|
+
0, 0, 35, 36, 37, 0, 0, 38,
|
1027
|
+
0, 39, 40, 41, 42, 40, 43, 44,
|
1028
|
+
45, 46, 47, 48, 49, 50, 0, 51,
|
1029
|
+
0, 52, 53, 54, 55, 56, 57, 58,
|
1030
|
+
59, 60, 61, 0, 62, 0, 63, 64,
|
1031
|
+
66, 0, 0, 40, 40, 67, 0, 40,
|
1032
|
+
68, 69, 70, 71, 72, 0, 73, 74,
|
1033
|
+
0, 75, 76, 77, 0, 0, 0, 78,
|
1034
|
+
79, 0, 40, 40, 80, 81, 82, 83,
|
1035
|
+
0, 84, 0, 85, 86, 0, 0, 87,
|
1036
|
+
0, 88, 0, 89, 90, 91, 40, 92,
|
1037
|
+
0, 93, 40, 0, 94, 0, 95, 96,
|
1038
|
+
97, 98, 40, 40, 40, 40, 99
|
989
1039
|
]
|
990
1040
|
|
991
1041
|
class << self
|
@@ -1006,13 +1056,13 @@ self._re_scanner_to_state_actions = [
|
|
1006
1056
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1007
1057
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1008
1058
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1009
|
-
0, 0, 0, 0, 0, 0, 32, 0,
|
1010
1059
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1014
|
-
0, 0, 0,
|
1015
|
-
0
|
1060
|
+
33, 0, 0, 0, 0, 0, 0, 0,
|
1061
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1062
|
+
0, 0, 65, 65, 65, 0, 0, 0,
|
1063
|
+
0, 0, 0, 65, 65, 0, 0, 0,
|
1064
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1065
|
+
0, 0, 65, 0, 0, 0, 0
|
1016
1066
|
]
|
1017
1067
|
|
1018
1068
|
class << self
|
@@ -1033,13 +1083,13 @@ self._re_scanner_from_state_actions = [
|
|
1033
1083
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1034
1084
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1035
1085
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1036
|
-
0, 0, 0, 0, 0, 0, 33, 0,
|
1037
1086
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
0, 0, 0,
|
1042
|
-
0
|
1087
|
+
34, 0, 0, 0, 0, 0, 0, 0,
|
1088
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1089
|
+
0, 0, 34, 34, 34, 0, 0, 0,
|
1090
|
+
0, 0, 0, 34, 34, 0, 0, 0,
|
1091
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1092
|
+
0, 0, 34, 0, 0, 0, 0
|
1043
1093
|
]
|
1044
1094
|
|
1045
1095
|
class << self
|
@@ -1050,7 +1100,7 @@ self._re_scanner_eof_actions = [
|
|
1050
1100
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1051
1101
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1052
1102
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1053
|
-
0,
|
1103
|
+
0, 0, 0, 11, 11, 11, 11, 0,
|
1054
1104
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1055
1105
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1056
1106
|
0, 0, 0, 0, 0, 0, 0, 0,
|
@@ -1058,15 +1108,15 @@ self._re_scanner_eof_actions = [
|
|
1058
1108
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1059
1109
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1060
1110
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1111
|
+
0, 0, 24, 24, 0, 24, 24, 0,
|
1112
|
+
24, 24, 24, 24, 24, 24, 24, 24,
|
1113
|
+
24, 24, 24, 24, 0, 0, 0, 0,
|
1064
1114
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1065
1115
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1066
|
-
0,
|
1067
|
-
0,
|
1116
|
+
0, 0, 0, 0, 24, 0, 0, 0,
|
1117
|
+
0, 0, 0, 0, 24, 0, 0, 0,
|
1068
1118
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1069
|
-
0
|
1119
|
+
0, 0, 0, 0, 0, 0, 0
|
1070
1120
|
]
|
1071
1121
|
|
1072
1122
|
class << self
|
@@ -1075,35 +1125,35 @@ class << self
|
|
1075
1125
|
end
|
1076
1126
|
self._re_scanner_eof_trans = [
|
1077
1127
|
0, 1, 1, 1, 1, 1, 1, 8,
|
1078
|
-
|
1079
|
-
|
1080
|
-
|
1081
|
-
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
0, 0, 105, 0, 0, 110,
|
1128
|
+
8, 8, 8, 15, 15, 15, 15, 15,
|
1129
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
1130
|
+
29, 29, 29, 0, 0, 0, 0, 38,
|
1131
|
+
38, 41, 43, 43, 43, 43, 43, 43,
|
1132
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
1133
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
1134
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
1135
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
1136
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
1137
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
1138
|
+
99, 99, 0, 0, 105, 0, 0, 110,
|
1089
1139
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1090
|
-
0, 0,
|
1091
|
-
|
1092
|
-
154,
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1140
|
+
0, 0, 0, 0, 125, 125, 125, 125,
|
1141
|
+
0, 152, 152, 152, 152, 153, 153, 152,
|
1142
|
+
154, 156, 158, 158, 163, 165, 167, 169,
|
1143
|
+
173, 175, 0, 0, 0, 189, 189, 189,
|
1144
|
+
189, 192, 195, 0, 0, 216, 216, 216,
|
1145
|
+
218, 220, 222, 222, 222, 226, 226, 226,
|
1146
|
+
226, 231, 0, 239, 239, 239, 239
|
1097
1147
|
]
|
1098
1148
|
|
1099
1149
|
class << self
|
1100
1150
|
attr_accessor :re_scanner_start
|
1101
1151
|
end
|
1102
|
-
self.re_scanner_start =
|
1152
|
+
self.re_scanner_start = 112;
|
1103
1153
|
class << self
|
1104
1154
|
attr_accessor :re_scanner_first_final
|
1105
1155
|
end
|
1106
|
-
self.re_scanner_first_final =
|
1156
|
+
self.re_scanner_first_final = 112;
|
1107
1157
|
class << self
|
1108
1158
|
attr_accessor :re_scanner_error
|
1109
1159
|
end
|
@@ -1112,36 +1162,36 @@ self.re_scanner_error = 0;
|
|
1112
1162
|
class << self
|
1113
1163
|
attr_accessor :re_scanner_en_char_type
|
1114
1164
|
end
|
1115
|
-
self.re_scanner_en_char_type =
|
1165
|
+
self.re_scanner_en_char_type = 130;
|
1116
1166
|
class << self
|
1117
1167
|
attr_accessor :re_scanner_en_unicode_property
|
1118
1168
|
end
|
1119
|
-
self.re_scanner_en_unicode_property =
|
1169
|
+
self.re_scanner_en_unicode_property = 131;
|
1120
1170
|
class << self
|
1121
1171
|
attr_accessor :re_scanner_en_character_set
|
1122
1172
|
end
|
1123
|
-
self.re_scanner_en_character_set =
|
1173
|
+
self.re_scanner_en_character_set = 132;
|
1124
1174
|
class << self
|
1125
1175
|
attr_accessor :re_scanner_en_set_escape_sequence
|
1126
1176
|
end
|
1127
|
-
self.re_scanner_en_set_escape_sequence =
|
1177
|
+
self.re_scanner_en_set_escape_sequence = 139;
|
1128
1178
|
class << self
|
1129
1179
|
attr_accessor :re_scanner_en_escape_sequence
|
1130
1180
|
end
|
1131
|
-
self.re_scanner_en_escape_sequence =
|
1181
|
+
self.re_scanner_en_escape_sequence = 140;
|
1132
1182
|
class << self
|
1133
1183
|
attr_accessor :re_scanner_en_conditional_expression
|
1134
1184
|
end
|
1135
|
-
self.re_scanner_en_conditional_expression =
|
1185
|
+
self.re_scanner_en_conditional_expression = 154;
|
1136
1186
|
class << self
|
1137
1187
|
attr_accessor :re_scanner_en_main
|
1138
1188
|
end
|
1139
|
-
self.re_scanner_en_main =
|
1189
|
+
self.re_scanner_en_main = 112;
|
1140
1190
|
|
1141
1191
|
|
1142
|
-
# line
|
1192
|
+
# line 768 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1143
1193
|
|
1144
|
-
# line
|
1194
|
+
# line 1194 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
1145
1195
|
begin
|
1146
1196
|
p ||= 0
|
1147
1197
|
pe ||= data.length
|
@@ -1152,9 +1202,9 @@ begin
|
|
1152
1202
|
act = 0
|
1153
1203
|
end
|
1154
1204
|
|
1155
|
-
# line
|
1205
|
+
# line 769 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1156
1206
|
|
1157
|
-
# line
|
1207
|
+
# line 1207 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
1158
1208
|
begin
|
1159
1209
|
testEof = false
|
1160
1210
|
_slen, _trans, _keys, _inds, _acts, _nacts = nil
|
@@ -1177,12 +1227,12 @@ begin
|
|
1177
1227
|
end
|
1178
1228
|
if _goto_level <= _resume
|
1179
1229
|
case _re_scanner_from_state_actions[cs]
|
1180
|
-
when
|
1230
|
+
when 34 then
|
1181
1231
|
# line 1 "NONE"
|
1182
1232
|
begin
|
1183
1233
|
ts = p
|
1184
1234
|
end
|
1185
|
-
# line
|
1235
|
+
# line 1235 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
1186
1236
|
end
|
1187
1237
|
_keys = cs << 1
|
1188
1238
|
_inds = _re_scanner_index_offsets[cs]
|
@@ -1201,42 +1251,35 @@ ts = p
|
|
1201
1251
|
cs = _re_scanner_trans_targs[_trans]
|
1202
1252
|
if _re_scanner_trans_actions[_trans] != 0
|
1203
1253
|
case _re_scanner_trans_actions[_trans]
|
1204
|
-
when 12 then
|
1205
|
-
# line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1206
|
-
begin
|
1207
|
-
|
1208
|
-
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
1209
|
-
raise PrematureEndError.new( text )
|
1210
|
-
end
|
1211
1254
|
when 36 then
|
1212
|
-
# line
|
1255
|
+
# line 149 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1213
1256
|
begin
|
1214
1257
|
self.group_depth = group_depth + 1 end
|
1215
|
-
when
|
1216
|
-
# line
|
1258
|
+
when 4 then
|
1259
|
+
# line 150 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1217
1260
|
begin
|
1218
1261
|
self.group_depth = group_depth - 1 end
|
1219
|
-
when
|
1262
|
+
when 40 then
|
1220
1263
|
# line 1 "NONE"
|
1221
1264
|
begin
|
1222
1265
|
te = p+1
|
1223
1266
|
end
|
1224
|
-
when
|
1267
|
+
when 66 then
|
1225
1268
|
# line 12 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/char_type.rl"
|
1226
1269
|
begin
|
1227
1270
|
te = p+1
|
1228
1271
|
begin
|
1229
|
-
case text =
|
1230
|
-
when '\d'; emit(:type, :digit, text
|
1231
|
-
when '\D'; emit(:type, :nondigit, text
|
1232
|
-
when '\h'; emit(:type, :hex, text
|
1233
|
-
when '\H'; emit(:type, :nonhex, text
|
1234
|
-
when '\s'; emit(:type, :space, text
|
1235
|
-
when '\S'; emit(:type, :nonspace, text
|
1236
|
-
when '\w'; emit(:type, :word, text
|
1237
|
-
when '\W'; emit(:type, :nonword, text
|
1238
|
-
when '\R'; emit(:type, :linebreak, text
|
1239
|
-
when '\X'; emit(:type, :xgrapheme, text
|
1272
|
+
case text = copy(data, ts-1, te)
|
1273
|
+
when '\d'; emit(:type, :digit, text)
|
1274
|
+
when '\D'; emit(:type, :nondigit, text)
|
1275
|
+
when '\h'; emit(:type, :hex, text)
|
1276
|
+
when '\H'; emit(:type, :nonhex, text)
|
1277
|
+
when '\s'; emit(:type, :space, text)
|
1278
|
+
when '\S'; emit(:type, :nonspace, text)
|
1279
|
+
when '\w'; emit(:type, :word, text)
|
1280
|
+
when '\W'; emit(:type, :nonword, text)
|
1281
|
+
when '\R'; emit(:type, :linebreak, text)
|
1282
|
+
when '\X'; emit(:type, :xgrapheme, text)
|
1240
1283
|
end
|
1241
1284
|
begin
|
1242
1285
|
top -= 1
|
@@ -1247,12 +1290,12 @@ te = p+1
|
|
1247
1290
|
|
1248
1291
|
end
|
1249
1292
|
end
|
1250
|
-
when
|
1293
|
+
when 12 then
|
1251
1294
|
# line 16 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
|
1252
1295
|
begin
|
1253
1296
|
te = p+1
|
1254
1297
|
begin
|
1255
|
-
text =
|
1298
|
+
text = copy(data, ts-1, te)
|
1256
1299
|
type = (text[1] == 'P') ^ (text[3] == '^') ? :nonproperty : :property
|
1257
1300
|
|
1258
1301
|
name = data[ts+2..te-2].pack('c*').gsub(/[\^\s_\-]/, '').downcase
|
@@ -1260,7 +1303,7 @@ te = p+1
|
|
1260
1303
|
token = self.class.short_prop_map[name] || self.class.long_prop_map[name]
|
1261
1304
|
raise UnknownUnicodePropertyError.new(name) unless token
|
1262
1305
|
|
1263
|
-
self.emit(type, token.to_sym, text
|
1306
|
+
self.emit(type, token.to_sym, text)
|
1264
1307
|
|
1265
1308
|
begin
|
1266
1309
|
top -= 1
|
@@ -1271,155 +1314,152 @@ te = p+1
|
|
1271
1314
|
|
1272
1315
|
end
|
1273
1316
|
end
|
1274
|
-
when
|
1275
|
-
# line
|
1317
|
+
when 16 then
|
1318
|
+
# line 177 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1276
1319
|
begin
|
1277
1320
|
te = p+1
|
1278
1321
|
begin # special case, emits two tokens
|
1279
|
-
emit(:literal, :literal, '-'
|
1280
|
-
emit(:set, :intersection, '&&'
|
1322
|
+
emit(:literal, :literal, '-')
|
1323
|
+
emit(:set, :intersection, '&&')
|
1281
1324
|
end
|
1282
1325
|
end
|
1283
|
-
when
|
1284
|
-
# line
|
1326
|
+
when 71 then
|
1327
|
+
# line 182 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1285
1328
|
begin
|
1286
1329
|
te = p+1
|
1287
1330
|
begin
|
1288
|
-
text =
|
1331
|
+
text = copy(data, ts, te)
|
1289
1332
|
if tokens.last[1] == :open
|
1290
|
-
emit(:set, :negate, text
|
1333
|
+
emit(:set, :negate, text)
|
1291
1334
|
else
|
1292
|
-
emit(:literal, :literal, text
|
1335
|
+
emit(:literal, :literal, text)
|
1293
1336
|
end
|
1294
1337
|
end
|
1295
1338
|
end
|
1296
|
-
when
|
1297
|
-
# line
|
1339
|
+
when 73 then
|
1340
|
+
# line 203 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1298
1341
|
begin
|
1299
1342
|
te = p+1
|
1300
1343
|
begin
|
1301
|
-
emit(:set, :intersection,
|
1344
|
+
emit(:set, :intersection, copy(data, ts, te))
|
1302
1345
|
end
|
1303
1346
|
end
|
1304
|
-
when
|
1305
|
-
# line
|
1347
|
+
when 69 then
|
1348
|
+
# line 207 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1306
1349
|
begin
|
1307
1350
|
te = p+1
|
1308
1351
|
begin
|
1309
1352
|
begin
|
1310
1353
|
stack[top] = cs
|
1311
1354
|
top+= 1
|
1312
|
-
cs =
|
1355
|
+
cs = 139
|
1313
1356
|
_goto_level = _again
|
1314
1357
|
next
|
1315
1358
|
end
|
1316
1359
|
|
1317
1360
|
end
|
1318
1361
|
end
|
1319
|
-
when
|
1320
|
-
# line
|
1362
|
+
when 67 then
|
1363
|
+
# line 237 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1321
1364
|
begin
|
1322
1365
|
te = p+1
|
1323
1366
|
begin
|
1324
|
-
emit(:literal, :literal,
|
1367
|
+
emit(:literal, :literal, copy(data, ts, te))
|
1325
1368
|
end
|
1326
1369
|
end
|
1327
|
-
when
|
1328
|
-
# line
|
1370
|
+
when 14 then
|
1371
|
+
# line 245 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1329
1372
|
begin
|
1330
1373
|
te = p+1
|
1331
1374
|
begin
|
1332
|
-
|
1333
|
-
|
1334
|
-
emit(:literal, :literal, char, *rest)
|
1375
|
+
text = copy(data, ts, te)
|
1376
|
+
emit(:literal, :literal, text)
|
1335
1377
|
end
|
1336
1378
|
end
|
1337
|
-
when
|
1338
|
-
# line
|
1379
|
+
when 74 then
|
1380
|
+
# line 191 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1339
1381
|
begin
|
1340
1382
|
te = p
|
1341
1383
|
p = p - 1; begin
|
1342
|
-
text =
|
1384
|
+
text = copy(data, ts, te)
|
1343
1385
|
# ranges cant start with a subset or intersection/negation/range operator
|
1344
1386
|
if tokens.last[0] == :set
|
1345
|
-
emit(:literal, :literal, text
|
1387
|
+
emit(:literal, :literal, text)
|
1346
1388
|
else
|
1347
|
-
emit(:set, :range, text
|
1389
|
+
emit(:set, :range, text)
|
1348
1390
|
end
|
1349
1391
|
end
|
1350
1392
|
end
|
1351
|
-
when
|
1352
|
-
# line
|
1393
|
+
when 77 then
|
1394
|
+
# line 211 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1353
1395
|
begin
|
1354
1396
|
te = p
|
1355
1397
|
p = p - 1; begin
|
1356
|
-
emit(:set, :open,
|
1398
|
+
emit(:set, :open, copy(data, ts, te))
|
1357
1399
|
begin
|
1358
1400
|
stack[top] = cs
|
1359
1401
|
top+= 1
|
1360
|
-
cs =
|
1402
|
+
cs = 132
|
1361
1403
|
_goto_level = _again
|
1362
1404
|
next
|
1363
1405
|
end
|
1364
1406
|
|
1365
1407
|
end
|
1366
1408
|
end
|
1367
|
-
when
|
1368
|
-
# line
|
1409
|
+
when 72 then
|
1410
|
+
# line 245 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1369
1411
|
begin
|
1370
1412
|
te = p
|
1371
1413
|
p = p - 1; begin
|
1372
|
-
|
1373
|
-
|
1374
|
-
emit(:literal, :literal, char, *rest)
|
1414
|
+
text = copy(data, ts, te)
|
1415
|
+
emit(:literal, :literal, text)
|
1375
1416
|
end
|
1376
1417
|
end
|
1377
|
-
when
|
1378
|
-
# line
|
1418
|
+
when 15 then
|
1419
|
+
# line 191 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1379
1420
|
begin
|
1380
1421
|
begin p = ((te))-1; end
|
1381
1422
|
begin
|
1382
|
-
text =
|
1423
|
+
text = copy(data, ts, te)
|
1383
1424
|
# ranges cant start with a subset or intersection/negation/range operator
|
1384
1425
|
if tokens.last[0] == :set
|
1385
|
-
emit(:literal, :literal, text
|
1426
|
+
emit(:literal, :literal, text)
|
1386
1427
|
else
|
1387
|
-
emit(:set, :range, text
|
1428
|
+
emit(:set, :range, text)
|
1388
1429
|
end
|
1389
1430
|
end
|
1390
1431
|
end
|
1391
|
-
when
|
1392
|
-
# line
|
1432
|
+
when 18 then
|
1433
|
+
# line 211 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1393
1434
|
begin
|
1394
1435
|
begin p = ((te))-1; end
|
1395
1436
|
begin
|
1396
|
-
emit(:set, :open,
|
1437
|
+
emit(:set, :open, copy(data, ts, te))
|
1397
1438
|
begin
|
1398
1439
|
stack[top] = cs
|
1399
1440
|
top+= 1
|
1400
|
-
cs =
|
1441
|
+
cs = 132
|
1401
1442
|
_goto_level = _again
|
1402
1443
|
next
|
1403
1444
|
end
|
1404
1445
|
|
1405
1446
|
end
|
1406
1447
|
end
|
1407
|
-
when
|
1408
|
-
# line
|
1448
|
+
when 13 then
|
1449
|
+
# line 245 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1409
1450
|
begin
|
1410
1451
|
begin p = ((te))-1; end
|
1411
1452
|
begin
|
1412
|
-
|
1413
|
-
|
1414
|
-
emit(:literal, :literal, char, *rest)
|
1453
|
+
text = copy(data, ts, te)
|
1454
|
+
emit(:literal, :literal, text)
|
1415
1455
|
end
|
1416
1456
|
end
|
1417
|
-
when
|
1418
|
-
# line
|
1457
|
+
when 79 then
|
1458
|
+
# line 254 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1419
1459
|
begin
|
1420
1460
|
te = p+1
|
1421
1461
|
begin
|
1422
|
-
emit(:escape, :literal,
|
1462
|
+
emit(:escape, :literal, copy(data, ts-1, te))
|
1423
1463
|
begin
|
1424
1464
|
top -= 1
|
1425
1465
|
cs = stack[top]
|
@@ -1429,30 +1469,30 @@ te = p+1
|
|
1429
1469
|
|
1430
1470
|
end
|
1431
1471
|
end
|
1432
|
-
when
|
1433
|
-
# line
|
1472
|
+
when 78 then
|
1473
|
+
# line 259 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1434
1474
|
begin
|
1435
1475
|
te = p+1
|
1436
1476
|
begin
|
1437
1477
|
p = p - 1;
|
1438
|
-
cs =
|
1478
|
+
cs = 132;
|
1439
1479
|
begin
|
1440
1480
|
stack[top] = cs
|
1441
1481
|
top+= 1
|
1442
|
-
cs =
|
1482
|
+
cs = 140
|
1443
1483
|
_goto_level = _again
|
1444
1484
|
next
|
1445
1485
|
end
|
1446
1486
|
|
1447
1487
|
end
|
1448
1488
|
end
|
1449
|
-
when
|
1450
|
-
# line
|
1489
|
+
when 83 then
|
1490
|
+
# line 270 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1451
1491
|
begin
|
1452
1492
|
te = p+1
|
1453
1493
|
begin
|
1454
|
-
text =
|
1455
|
-
emit(:backref, :number, text
|
1494
|
+
text = copy(data, ts-1, te)
|
1495
|
+
emit(:backref, :number, text)
|
1456
1496
|
begin
|
1457
1497
|
top -= 1
|
1458
1498
|
cs = stack[top]
|
@@ -1462,12 +1502,12 @@ te = p+1
|
|
1462
1502
|
|
1463
1503
|
end
|
1464
1504
|
end
|
1465
|
-
when
|
1466
|
-
# line
|
1505
|
+
when 90 then
|
1506
|
+
# line 276 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1467
1507
|
begin
|
1468
1508
|
te = p+1
|
1469
1509
|
begin
|
1470
|
-
emit(:escape, :octal,
|
1510
|
+
emit(:escape, :octal, copy(data, ts-1, te))
|
1471
1511
|
begin
|
1472
1512
|
top -= 1
|
1473
1513
|
cs = stack[top]
|
@@ -1477,27 +1517,27 @@ te = p+1
|
|
1477
1517
|
|
1478
1518
|
end
|
1479
1519
|
end
|
1480
|
-
when
|
1481
|
-
# line
|
1520
|
+
when 80 then
|
1521
|
+
# line 281 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1482
1522
|
begin
|
1483
1523
|
te = p+1
|
1484
1524
|
begin
|
1485
|
-
case text =
|
1486
|
-
when '\.'; emit(:escape, :dot, text
|
1487
|
-
when '\|'; emit(:escape, :alternation, text
|
1488
|
-
when '\^'; emit(:escape, :bol, text
|
1489
|
-
when '\$'; emit(:escape, :eol, text
|
1490
|
-
when '\?'; emit(:escape, :zero_or_one, text
|
1491
|
-
when '\*'; emit(:escape, :zero_or_more, text
|
1492
|
-
when '\+'; emit(:escape, :one_or_more, text
|
1493
|
-
when '\('; emit(:escape, :group_open, text
|
1494
|
-
when '\)'; emit(:escape, :group_close, text
|
1495
|
-
when '\{'; emit(:escape, :interval_open, text
|
1496
|
-
when '\}'; emit(:escape, :interval_close, text
|
1497
|
-
when '\['; emit(:escape, :set_open, text
|
1498
|
-
when '\]'; emit(:escape, :set_close, text
|
1525
|
+
case text = copy(data, ts-1, te)
|
1526
|
+
when '\.'; emit(:escape, :dot, text)
|
1527
|
+
when '\|'; emit(:escape, :alternation, text)
|
1528
|
+
when '\^'; emit(:escape, :bol, text)
|
1529
|
+
when '\$'; emit(:escape, :eol, text)
|
1530
|
+
when '\?'; emit(:escape, :zero_or_one, text)
|
1531
|
+
when '\*'; emit(:escape, :zero_or_more, text)
|
1532
|
+
when '\+'; emit(:escape, :one_or_more, text)
|
1533
|
+
when '\('; emit(:escape, :group_open, text)
|
1534
|
+
when '\)'; emit(:escape, :group_close, text)
|
1535
|
+
when '\{'; emit(:escape, :interval_open, text)
|
1536
|
+
when '\}'; emit(:escape, :interval_close, text)
|
1537
|
+
when '\['; emit(:escape, :set_open, text)
|
1538
|
+
when '\]'; emit(:escape, :set_close, text)
|
1499
1539
|
when "\\\\";
|
1500
|
-
emit(:escape, :backslash, text
|
1540
|
+
emit(:escape, :backslash, text)
|
1501
1541
|
end
|
1502
1542
|
begin
|
1503
1543
|
top -= 1
|
@@ -1508,22 +1548,22 @@ te = p+1
|
|
1508
1548
|
|
1509
1549
|
end
|
1510
1550
|
end
|
1511
|
-
when
|
1512
|
-
# line
|
1551
|
+
when 86 then
|
1552
|
+
# line 302 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1513
1553
|
begin
|
1514
1554
|
te = p+1
|
1515
1555
|
begin
|
1516
1556
|
# \b is emitted as backspace only when inside a character set, otherwise
|
1517
1557
|
# it is a word boundary anchor. A syntax might "normalize" it if needed.
|
1518
|
-
case text =
|
1519
|
-
when '\a'; emit(:escape, :bell, text
|
1520
|
-
when '\b'; emit(:escape, :backspace, text
|
1521
|
-
when '\e'; emit(:escape, :escape, text
|
1522
|
-
when '\f'; emit(:escape, :form_feed, text
|
1523
|
-
when '\n'; emit(:escape, :newline, text
|
1524
|
-
when '\r'; emit(:escape, :carriage, text
|
1525
|
-
when '\t'; emit(:escape, :tab, text
|
1526
|
-
when '\v'; emit(:escape, :vertical_tab, text
|
1558
|
+
case text = copy(data, ts-1, te)
|
1559
|
+
when '\a'; emit(:escape, :bell, text)
|
1560
|
+
when '\b'; emit(:escape, :backspace, text)
|
1561
|
+
when '\e'; emit(:escape, :escape, text)
|
1562
|
+
when '\f'; emit(:escape, :form_feed, text)
|
1563
|
+
when '\n'; emit(:escape, :newline, text)
|
1564
|
+
when '\r'; emit(:escape, :carriage, text)
|
1565
|
+
when '\t'; emit(:escape, :tab, text)
|
1566
|
+
when '\v'; emit(:escape, :vertical_tab, text)
|
1527
1567
|
end
|
1528
1568
|
begin
|
1529
1569
|
top -= 1
|
@@ -1534,16 +1574,16 @@ te = p+1
|
|
1534
1574
|
|
1535
1575
|
end
|
1536
1576
|
end
|
1537
|
-
when
|
1538
|
-
# line
|
1577
|
+
when 29 then
|
1578
|
+
# line 318 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1539
1579
|
begin
|
1540
1580
|
te = p+1
|
1541
1581
|
begin
|
1542
|
-
text =
|
1582
|
+
text = copy(data, ts-1, te)
|
1543
1583
|
if text[2].chr == '{'
|
1544
|
-
emit(:escape, :codepoint_list, text
|
1584
|
+
emit(:escape, :codepoint_list, text)
|
1545
1585
|
else
|
1546
|
-
emit(:escape, :codepoint, text
|
1586
|
+
emit(:escape, :codepoint, text)
|
1547
1587
|
end
|
1548
1588
|
begin
|
1549
1589
|
top -= 1
|
@@ -1554,12 +1594,12 @@ te = p+1
|
|
1554
1594
|
|
1555
1595
|
end
|
1556
1596
|
end
|
1557
|
-
when
|
1558
|
-
# line
|
1597
|
+
when 97 then
|
1598
|
+
# line 328 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1559
1599
|
begin
|
1560
1600
|
te = p+1
|
1561
1601
|
begin
|
1562
|
-
emit(:escape, :hex,
|
1602
|
+
emit(:escape, :hex, copy(data, ts-1, te))
|
1563
1603
|
begin
|
1564
1604
|
top -= 1
|
1565
1605
|
cs = stack[top]
|
@@ -1569,8 +1609,8 @@ te = p+1
|
|
1569
1609
|
|
1570
1610
|
end
|
1571
1611
|
end
|
1572
|
-
when
|
1573
|
-
# line
|
1612
|
+
when 25 then
|
1613
|
+
# line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1574
1614
|
begin
|
1575
1615
|
te = p+1
|
1576
1616
|
begin
|
@@ -1584,8 +1624,8 @@ te = p+1
|
|
1584
1624
|
|
1585
1625
|
end
|
1586
1626
|
end
|
1587
|
-
when
|
1588
|
-
# line
|
1627
|
+
when 27 then
|
1628
|
+
# line 342 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1589
1629
|
begin
|
1590
1630
|
te = p+1
|
1591
1631
|
begin
|
@@ -1599,46 +1639,46 @@ te = p+1
|
|
1599
1639
|
|
1600
1640
|
end
|
1601
1641
|
end
|
1602
|
-
when
|
1603
|
-
# line
|
1642
|
+
when 84 then
|
1643
|
+
# line 347 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1604
1644
|
begin
|
1605
1645
|
te = p+1
|
1606
1646
|
begin
|
1607
1647
|
p = p - 1;
|
1608
|
-
cs = ((in_set? ?
|
1648
|
+
cs = ((in_set? ? 132 : 112));
|
1609
1649
|
begin
|
1610
1650
|
stack[top] = cs
|
1611
1651
|
top+= 1
|
1612
|
-
cs =
|
1652
|
+
cs = 130
|
1613
1653
|
_goto_level = _again
|
1614
1654
|
next
|
1615
1655
|
end
|
1616
1656
|
|
1617
1657
|
end
|
1618
1658
|
end
|
1619
|
-
when
|
1620
|
-
# line
|
1659
|
+
when 85 then
|
1660
|
+
# line 353 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1621
1661
|
begin
|
1622
1662
|
te = p+1
|
1623
1663
|
begin
|
1624
1664
|
p = p - 1;
|
1625
|
-
cs = ((in_set? ?
|
1665
|
+
cs = ((in_set? ? 132 : 112));
|
1626
1666
|
begin
|
1627
1667
|
stack[top] = cs
|
1628
1668
|
top+= 1
|
1629
|
-
cs =
|
1669
|
+
cs = 131
|
1630
1670
|
_goto_level = _again
|
1631
1671
|
next
|
1632
1672
|
end
|
1633
1673
|
|
1634
1674
|
end
|
1635
1675
|
end
|
1636
|
-
when
|
1637
|
-
# line
|
1676
|
+
when 23 then
|
1677
|
+
# line 362 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1638
1678
|
begin
|
1639
1679
|
te = p+1
|
1640
1680
|
begin
|
1641
|
-
emit(:escape, :literal,
|
1681
|
+
emit(:escape, :literal, copy(data, ts-1, te))
|
1642
1682
|
begin
|
1643
1683
|
top -= 1
|
1644
1684
|
cs = stack[top]
|
@@ -1648,12 +1688,12 @@ te = p+1
|
|
1648
1688
|
|
1649
1689
|
end
|
1650
1690
|
end
|
1651
|
-
when
|
1652
|
-
# line
|
1691
|
+
when 89 then
|
1692
|
+
# line 276 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1653
1693
|
begin
|
1654
1694
|
te = p
|
1655
1695
|
p = p - 1; begin
|
1656
|
-
emit(:escape, :octal,
|
1696
|
+
emit(:escape, :octal, copy(data, ts-1, te))
|
1657
1697
|
begin
|
1658
1698
|
top -= 1
|
1659
1699
|
cs = stack[top]
|
@@ -1663,12 +1703,12 @@ p = p - 1; begin
|
|
1663
1703
|
|
1664
1704
|
end
|
1665
1705
|
end
|
1666
|
-
when
|
1667
|
-
# line
|
1706
|
+
when 96 then
|
1707
|
+
# line 328 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1668
1708
|
begin
|
1669
1709
|
te = p
|
1670
1710
|
p = p - 1; begin
|
1671
|
-
emit(:escape, :hex,
|
1711
|
+
emit(:escape, :hex, copy(data, ts-1, te))
|
1672
1712
|
begin
|
1673
1713
|
top -= 1
|
1674
1714
|
cs = stack[top]
|
@@ -1678,8 +1718,8 @@ p = p - 1; begin
|
|
1678
1718
|
|
1679
1719
|
end
|
1680
1720
|
end
|
1681
|
-
when
|
1682
|
-
# line
|
1721
|
+
when 92 then
|
1722
|
+
# line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1683
1723
|
begin
|
1684
1724
|
te = p
|
1685
1725
|
p = p - 1; begin
|
@@ -1693,8 +1733,8 @@ p = p - 1; begin
|
|
1693
1733
|
|
1694
1734
|
end
|
1695
1735
|
end
|
1696
|
-
when
|
1697
|
-
# line
|
1736
|
+
when 94 then
|
1737
|
+
# line 342 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1698
1738
|
begin
|
1699
1739
|
te = p
|
1700
1740
|
p = p - 1; begin
|
@@ -1708,15 +1748,45 @@ p = p - 1; begin
|
|
1708
1748
|
|
1709
1749
|
end
|
1710
1750
|
end
|
1711
|
-
when
|
1751
|
+
when 87 then
|
1752
|
+
# line 362 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1753
|
+
begin
|
1754
|
+
te = p
|
1755
|
+
p = p - 1; begin
|
1756
|
+
emit(:escape, :literal, copy(data, ts-1, te))
|
1757
|
+
begin
|
1758
|
+
top -= 1
|
1759
|
+
cs = stack[top]
|
1760
|
+
_goto_level = _again
|
1761
|
+
next
|
1762
|
+
end
|
1763
|
+
|
1764
|
+
end
|
1765
|
+
end
|
1766
|
+
when 22 then
|
1767
|
+
# line 362 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1768
|
+
begin
|
1769
|
+
begin p = ((te))-1; end
|
1770
|
+
begin
|
1771
|
+
emit(:escape, :literal, copy(data, ts-1, te))
|
1772
|
+
begin
|
1773
|
+
top -= 1
|
1774
|
+
cs = stack[top]
|
1775
|
+
_goto_level = _again
|
1776
|
+
next
|
1777
|
+
end
|
1778
|
+
|
1779
|
+
end
|
1780
|
+
end
|
1781
|
+
when 88 then
|
1712
1782
|
# line 1 "NONE"
|
1713
1783
|
begin
|
1714
1784
|
case act
|
1715
1785
|
when 18 then
|
1716
1786
|
begin begin p = ((te))-1; end
|
1717
1787
|
|
1718
|
-
text =
|
1719
|
-
emit(:backref, :number, text
|
1788
|
+
text = copy(data, ts-1, te)
|
1789
|
+
emit(:backref, :number, text)
|
1720
1790
|
begin
|
1721
1791
|
top -= 1
|
1722
1792
|
cs = stack[top]
|
@@ -1728,7 +1798,7 @@ p = p - 1; begin
|
|
1728
1798
|
when 19 then
|
1729
1799
|
begin begin p = ((te))-1; end
|
1730
1800
|
|
1731
|
-
emit(:escape, :octal,
|
1801
|
+
emit(:escape, :octal, copy(data, ts-1, te))
|
1732
1802
|
begin
|
1733
1803
|
top -= 1
|
1734
1804
|
cs = stack[top]
|
@@ -1739,18 +1809,18 @@ p = p - 1; begin
|
|
1739
1809
|
end
|
1740
1810
|
end
|
1741
1811
|
end
|
1742
|
-
when
|
1743
|
-
# line
|
1812
|
+
when 32 then
|
1813
|
+
# line 372 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1744
1814
|
begin
|
1745
1815
|
te = p+1
|
1746
1816
|
begin
|
1747
|
-
text =
|
1748
|
-
emit(:conditional, :condition, text
|
1749
|
-
emit(:conditional, :condition_close, ')'
|
1817
|
+
text = copy(data, ts, te-1)
|
1818
|
+
emit(:conditional, :condition, text)
|
1819
|
+
emit(:conditional, :condition_close, ')')
|
1750
1820
|
end
|
1751
1821
|
end
|
1752
|
-
when
|
1753
|
-
# line
|
1822
|
+
when 98 then
|
1823
|
+
# line 378 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1754
1824
|
begin
|
1755
1825
|
te = p+1
|
1756
1826
|
begin
|
@@ -1758,15 +1828,15 @@ te = p+1
|
|
1758
1828
|
begin
|
1759
1829
|
stack[top] = cs
|
1760
1830
|
top+= 1
|
1761
|
-
cs =
|
1831
|
+
cs = 112
|
1762
1832
|
_goto_level = _again
|
1763
1833
|
next
|
1764
1834
|
end
|
1765
1835
|
|
1766
1836
|
end
|
1767
1837
|
end
|
1768
|
-
when
|
1769
|
-
# line
|
1838
|
+
when 99 then
|
1839
|
+
# line 378 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1770
1840
|
begin
|
1771
1841
|
te = p
|
1772
1842
|
p = p - 1; begin
|
@@ -1774,15 +1844,15 @@ p = p - 1; begin
|
|
1774
1844
|
begin
|
1775
1845
|
stack[top] = cs
|
1776
1846
|
top+= 1
|
1777
|
-
cs =
|
1847
|
+
cs = 112
|
1778
1848
|
_goto_level = _again
|
1779
1849
|
next
|
1780
1850
|
end
|
1781
1851
|
|
1782
1852
|
end
|
1783
1853
|
end
|
1784
|
-
when
|
1785
|
-
# line
|
1854
|
+
when 31 then
|
1855
|
+
# line 378 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1786
1856
|
begin
|
1787
1857
|
begin p = ((te))-1; end
|
1788
1858
|
begin
|
@@ -1790,7 +1860,7 @@ p = p - 1; begin
|
|
1790
1860
|
begin
|
1791
1861
|
stack[top] = cs
|
1792
1862
|
top+= 1
|
1793
|
-
cs =
|
1863
|
+
cs = 112
|
1794
1864
|
_goto_level = _again
|
1795
1865
|
next
|
1796
1866
|
end
|
@@ -1798,387 +1868,421 @@ p = p - 1; begin
|
|
1798
1868
|
end
|
1799
1869
|
end
|
1800
1870
|
when 38 then
|
1801
|
-
# line
|
1871
|
+
# line 391 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1802
1872
|
begin
|
1803
1873
|
te = p+1
|
1804
1874
|
begin
|
1805
|
-
emit(:meta, :dot,
|
1875
|
+
emit(:meta, :dot, copy(data, ts, te))
|
1806
1876
|
end
|
1807
1877
|
end
|
1808
|
-
when
|
1809
|
-
# line
|
1878
|
+
when 43 then
|
1879
|
+
# line 395 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1810
1880
|
begin
|
1811
1881
|
te = p+1
|
1812
1882
|
begin
|
1813
1883
|
if conditional_stack.last == group_depth
|
1814
|
-
emit(:conditional, :separator,
|
1884
|
+
emit(:conditional, :separator, copy(data, ts, te))
|
1815
1885
|
else
|
1816
|
-
emit(:meta, :alternation,
|
1886
|
+
emit(:meta, :alternation, copy(data, ts, te))
|
1817
1887
|
end
|
1818
1888
|
end
|
1819
1889
|
end
|
1820
|
-
when
|
1821
|
-
# line
|
1890
|
+
when 42 then
|
1891
|
+
# line 405 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1822
1892
|
begin
|
1823
1893
|
te = p+1
|
1824
1894
|
begin
|
1825
|
-
emit(:anchor, :bol,
|
1895
|
+
emit(:anchor, :bol, copy(data, ts, te))
|
1826
1896
|
end
|
1827
1897
|
end
|
1828
1898
|
when 35 then
|
1829
|
-
# line
|
1899
|
+
# line 409 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1830
1900
|
begin
|
1831
1901
|
te = p+1
|
1832
1902
|
begin
|
1833
|
-
emit(:anchor, :eol,
|
1903
|
+
emit(:anchor, :eol, copy(data, ts, te))
|
1834
1904
|
end
|
1835
1905
|
end
|
1836
|
-
when
|
1837
|
-
# line
|
1906
|
+
when 61 then
|
1907
|
+
# line 413 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1838
1908
|
begin
|
1839
1909
|
te = p+1
|
1840
1910
|
begin
|
1841
|
-
emit(:keep, :mark,
|
1911
|
+
emit(:keep, :mark, copy(data, ts, te))
|
1842
1912
|
end
|
1843
1913
|
end
|
1844
|
-
when
|
1845
|
-
# line
|
1914
|
+
when 60 then
|
1915
|
+
# line 417 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1846
1916
|
begin
|
1847
1917
|
te = p+1
|
1848
1918
|
begin
|
1849
|
-
case text =
|
1850
|
-
when '\\A'; emit(:anchor, :bos, text
|
1851
|
-
when '\\z'; emit(:anchor, :eos, text
|
1852
|
-
when '\\Z'; emit(:anchor, :eos_ob_eol, text
|
1853
|
-
when '\\b'; emit(:anchor, :word_boundary, text
|
1854
|
-
when '\\B'; emit(:anchor, :nonword_boundary, text
|
1855
|
-
when '\\G'; emit(:anchor, :match_start, text
|
1919
|
+
case text = copy(data, ts, te)
|
1920
|
+
when '\\A'; emit(:anchor, :bos, text)
|
1921
|
+
when '\\z'; emit(:anchor, :eos, text)
|
1922
|
+
when '\\Z'; emit(:anchor, :eos_ob_eol, text)
|
1923
|
+
when '\\b'; emit(:anchor, :word_boundary, text)
|
1924
|
+
when '\\B'; emit(:anchor, :nonword_boundary, text)
|
1925
|
+
when '\\G'; emit(:anchor, :match_start, text)
|
1856
1926
|
end
|
1857
1927
|
end
|
1858
1928
|
end
|
1859
|
-
when
|
1860
|
-
# line
|
1929
|
+
when 41 then
|
1930
|
+
# line 428 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1931
|
+
begin
|
1932
|
+
te = p+1
|
1933
|
+
begin
|
1934
|
+
append_literal(data, ts, te)
|
1935
|
+
end
|
1936
|
+
end
|
1937
|
+
when 51 then
|
1938
|
+
# line 443 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1861
1939
|
begin
|
1862
1940
|
te = p+1
|
1863
1941
|
begin
|
1864
|
-
text =
|
1942
|
+
text = copy(data, ts, te)
|
1865
1943
|
|
1866
1944
|
conditional_stack << group_depth
|
1867
1945
|
|
1868
|
-
emit(:conditional, :open, text[0..-2]
|
1869
|
-
emit(:conditional, :condition_open, '('
|
1946
|
+
emit(:conditional, :open, text[0..-2])
|
1947
|
+
emit(:conditional, :condition_open, '(')
|
1870
1948
|
begin
|
1871
1949
|
stack[top] = cs
|
1872
1950
|
top+= 1
|
1873
|
-
cs =
|
1951
|
+
cs = 154
|
1874
1952
|
_goto_level = _again
|
1875
1953
|
next
|
1876
1954
|
end
|
1877
1955
|
|
1878
1956
|
end
|
1879
1957
|
end
|
1880
|
-
when
|
1881
|
-
# line
|
1958
|
+
when 52 then
|
1959
|
+
# line 474 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1882
1960
|
begin
|
1883
1961
|
te = p+1
|
1884
1962
|
begin
|
1885
|
-
text =
|
1963
|
+
text = copy(data, ts, te)
|
1886
1964
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
1887
1965
|
raise InvalidGroupOption.new($1 || "-#{$2}", text)
|
1888
1966
|
end
|
1889
|
-
emit_options(text
|
1967
|
+
emit_options(text)
|
1890
1968
|
end
|
1891
1969
|
end
|
1892
|
-
when
|
1893
|
-
# line
|
1970
|
+
when 7 then
|
1971
|
+
# line 488 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1894
1972
|
begin
|
1895
1973
|
te = p+1
|
1896
1974
|
begin
|
1897
|
-
case text =
|
1898
|
-
when '(?='; emit(:assertion, :lookahead, text
|
1899
|
-
when '(?!'; emit(:assertion, :nlookahead, text
|
1900
|
-
when '(?<='; emit(:assertion, :lookbehind, text
|
1901
|
-
when '(?<!'; emit(:assertion, :nlookbehind, text
|
1975
|
+
case text = copy(data, ts, te)
|
1976
|
+
when '(?='; emit(:assertion, :lookahead, text)
|
1977
|
+
when '(?!'; emit(:assertion, :nlookahead, text)
|
1978
|
+
when '(?<='; emit(:assertion, :lookbehind, text)
|
1979
|
+
when '(?<!'; emit(:assertion, :nlookbehind, text)
|
1902
1980
|
end
|
1903
1981
|
end
|
1904
1982
|
end
|
1905
|
-
when
|
1906
|
-
# line
|
1983
|
+
when 6 then
|
1984
|
+
# line 505 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1907
1985
|
begin
|
1908
1986
|
te = p+1
|
1909
1987
|
begin
|
1910
|
-
case text =
|
1911
|
-
when '(?:'; emit(:group, :passive, text
|
1912
|
-
when '(?>'; emit(:group, :atomic, text
|
1913
|
-
when '(?~'; emit(:group, :absence, text
|
1988
|
+
case text = copy(data, ts, te)
|
1989
|
+
when '(?:'; emit(:group, :passive, text)
|
1990
|
+
when '(?>'; emit(:group, :atomic, text)
|
1991
|
+
when '(?~'; emit(:group, :absence, text)
|
1914
1992
|
|
1915
1993
|
when /^\(\?(?:<>|'')/
|
1916
1994
|
validation_error(:group, 'named group', 'name is empty')
|
1917
1995
|
|
1918
1996
|
when /^\(\?<\w*>/
|
1919
|
-
emit(:group, :named_ab, text
|
1997
|
+
emit(:group, :named_ab, text)
|
1920
1998
|
|
1921
1999
|
when /^\(\?'\w*'/
|
1922
|
-
emit(:group, :named_sq, text
|
2000
|
+
emit(:group, :named_sq, text)
|
1923
2001
|
|
1924
2002
|
end
|
1925
2003
|
end
|
1926
2004
|
end
|
1927
|
-
when
|
1928
|
-
# line
|
2005
|
+
when 9 then
|
2006
|
+
# line 546 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1929
2007
|
begin
|
1930
2008
|
te = p+1
|
1931
2009
|
begin
|
1932
|
-
case text =
|
2010
|
+
case text = copy(data, ts, te)
|
1933
2011
|
when /^\\([gk])(<>|'')/ # angle brackets
|
1934
2012
|
validation_error(:backref, 'ref/call', 'ref ID is empty')
|
1935
2013
|
|
1936
2014
|
when /^\\([gk])<[^\d+-]\w*>/ # angle-brackets
|
1937
2015
|
if $1 == 'k'
|
1938
|
-
emit(:backref, :name_ref_ab, text
|
2016
|
+
emit(:backref, :name_ref_ab, text)
|
1939
2017
|
else
|
1940
|
-
emit(:backref, :name_call_ab, text
|
2018
|
+
emit(:backref, :name_call_ab, text)
|
1941
2019
|
end
|
1942
2020
|
|
1943
2021
|
when /^\\([gk])'[^\d+-]\w*'/ #single quotes
|
1944
2022
|
if $1 == 'k'
|
1945
|
-
emit(:backref, :name_ref_sq, text
|
2023
|
+
emit(:backref, :name_ref_sq, text)
|
1946
2024
|
else
|
1947
|
-
emit(:backref, :name_call_sq, text
|
2025
|
+
emit(:backref, :name_call_sq, text)
|
1948
2026
|
end
|
1949
2027
|
|
1950
2028
|
when /^\\([gk])<\d+>/ # angle-brackets
|
1951
2029
|
if $1 == 'k'
|
1952
|
-
emit(:backref, :number_ref_ab, text
|
2030
|
+
emit(:backref, :number_ref_ab, text)
|
1953
2031
|
else
|
1954
|
-
emit(:backref, :number_call_ab, text
|
2032
|
+
emit(:backref, :number_call_ab, text)
|
1955
2033
|
end
|
1956
2034
|
|
1957
2035
|
when /^\\([gk])'\d+'/ # single quotes
|
1958
2036
|
if $1 == 'k'
|
1959
|
-
emit(:backref, :number_ref_sq, text
|
2037
|
+
emit(:backref, :number_ref_sq, text)
|
1960
2038
|
else
|
1961
|
-
emit(:backref, :number_call_sq, text
|
2039
|
+
emit(:backref, :number_call_sq, text)
|
1962
2040
|
end
|
1963
2041
|
|
1964
2042
|
when /^\\(?:g<\+|g<-|(k)<-)\d+>/ # angle-brackets
|
1965
2043
|
if $1 == 'k'
|
1966
|
-
emit(:backref, :number_rel_ref_ab, text
|
2044
|
+
emit(:backref, :number_rel_ref_ab, text)
|
1967
2045
|
else
|
1968
|
-
emit(:backref, :number_rel_call_ab, text
|
2046
|
+
emit(:backref, :number_rel_call_ab, text)
|
1969
2047
|
end
|
1970
2048
|
|
1971
2049
|
when /^\\(?:g'\+|g'-|(k)'-)\d+'/ # single quotes
|
1972
2050
|
if $1 == 'k'
|
1973
|
-
emit(:backref, :number_rel_ref_sq, text
|
2051
|
+
emit(:backref, :number_rel_ref_sq, text)
|
1974
2052
|
else
|
1975
|
-
emit(:backref, :number_rel_call_sq, text
|
2053
|
+
emit(:backref, :number_rel_call_sq, text)
|
1976
2054
|
end
|
1977
2055
|
|
1978
2056
|
when /^\\k<[^\d+\-]\w*[+\-]\d+>/ # angle-brackets
|
1979
|
-
emit(:backref, :name_recursion_ref_ab, text
|
2057
|
+
emit(:backref, :name_recursion_ref_ab, text)
|
1980
2058
|
|
1981
2059
|
when /^\\k'[^\d+\-]\w*[+\-]\d+'/ # single-quotes
|
1982
|
-
emit(:backref, :name_recursion_ref_sq, text
|
2060
|
+
emit(:backref, :name_recursion_ref_sq, text)
|
1983
2061
|
|
1984
2062
|
when /^\\([gk])<[+\-]?\d+[+\-]\d+>/ # angle-brackets
|
1985
|
-
emit(:backref, :number_recursion_ref_ab, text
|
2063
|
+
emit(:backref, :number_recursion_ref_ab, text)
|
1986
2064
|
|
1987
2065
|
when /^\\([gk])'[+\-]?\d+[+\-]\d+'/ # single-quotes
|
1988
|
-
emit(:backref, :number_recursion_ref_sq, text
|
2066
|
+
emit(:backref, :number_recursion_ref_sq, text)
|
1989
2067
|
|
1990
2068
|
end
|
1991
2069
|
end
|
1992
2070
|
end
|
1993
|
-
when
|
1994
|
-
# line
|
2071
|
+
when 58 then
|
2072
|
+
# line 611 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1995
2073
|
begin
|
1996
2074
|
te = p+1
|
1997
2075
|
begin
|
1998
|
-
case text =
|
1999
|
-
when '?' ; emit(:quantifier, :zero_or_one, text
|
2000
|
-
when '??'; emit(:quantifier, :zero_or_one_reluctant, text
|
2001
|
-
when '?+'; emit(:quantifier, :zero_or_one_possessive, text
|
2076
|
+
case text = copy(data, ts, te)
|
2077
|
+
when '?' ; emit(:quantifier, :zero_or_one, text)
|
2078
|
+
when '??'; emit(:quantifier, :zero_or_one_reluctant, text)
|
2079
|
+
when '?+'; emit(:quantifier, :zero_or_one_possessive, text)
|
2002
2080
|
end
|
2003
2081
|
end
|
2004
2082
|
end
|
2005
|
-
when
|
2006
|
-
# line
|
2083
|
+
when 54 then
|
2084
|
+
# line 619 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2007
2085
|
begin
|
2008
2086
|
te = p+1
|
2009
2087
|
begin
|
2010
|
-
case text =
|
2011
|
-
when '*' ; emit(:quantifier, :zero_or_more, text
|
2012
|
-
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text
|
2013
|
-
when '*+'; emit(:quantifier, :zero_or_more_possessive, text
|
2088
|
+
case text = copy(data, ts, te)
|
2089
|
+
when '*' ; emit(:quantifier, :zero_or_more, text)
|
2090
|
+
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text)
|
2091
|
+
when '*+'; emit(:quantifier, :zero_or_more_possessive, text)
|
2014
2092
|
end
|
2015
2093
|
end
|
2016
2094
|
end
|
2017
|
-
when
|
2018
|
-
# line
|
2095
|
+
when 56 then
|
2096
|
+
# line 627 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2019
2097
|
begin
|
2020
2098
|
te = p+1
|
2021
2099
|
begin
|
2022
|
-
case text =
|
2023
|
-
when '+' ; emit(:quantifier, :one_or_more, text
|
2024
|
-
when '+?'; emit(:quantifier, :one_or_more_reluctant, text
|
2025
|
-
when '++'; emit(:quantifier, :one_or_more_possessive, text
|
2100
|
+
case text = copy(data, ts, te)
|
2101
|
+
when '+' ; emit(:quantifier, :one_or_more, text)
|
2102
|
+
when '+?'; emit(:quantifier, :one_or_more_reluctant, text)
|
2103
|
+
when '++'; emit(:quantifier, :one_or_more_possessive, text)
|
2026
2104
|
end
|
2027
2105
|
end
|
2028
2106
|
end
|
2029
|
-
when
|
2030
|
-
# line
|
2107
|
+
when 64 then
|
2108
|
+
# line 635 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2031
2109
|
begin
|
2032
2110
|
te = p+1
|
2033
2111
|
begin
|
2034
|
-
emit(:quantifier, :interval,
|
2112
|
+
emit(:quantifier, :interval, copy(data, ts, te))
|
2035
2113
|
end
|
2036
2114
|
end
|
2037
|
-
when
|
2038
|
-
# line
|
2115
|
+
when 47 then
|
2116
|
+
# line 650 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2039
2117
|
begin
|
2040
2118
|
te = p+1
|
2041
2119
|
begin
|
2042
2120
|
if free_spacing
|
2043
|
-
emit(:free_space, :comment,
|
2121
|
+
emit(:free_space, :comment, copy(data, ts, te))
|
2044
2122
|
else
|
2045
|
-
|
2123
|
+
# consume only the pound sign (#) and backtrack to do regular scanning
|
2124
|
+
append_literal(data, ts, ts + 1)
|
2125
|
+
begin p = (( ts + 1))-1; end
|
2126
|
+
|
2046
2127
|
end
|
2047
2128
|
end
|
2048
2129
|
end
|
2049
|
-
when
|
2050
|
-
# line
|
2130
|
+
when 50 then
|
2131
|
+
# line 474 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2051
2132
|
begin
|
2052
2133
|
te = p
|
2053
2134
|
p = p - 1; begin
|
2054
|
-
text =
|
2135
|
+
text = copy(data, ts, te)
|
2055
2136
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
2056
2137
|
raise InvalidGroupOption.new($1 || "-#{$2}", text)
|
2057
2138
|
end
|
2058
|
-
emit_options(text
|
2139
|
+
emit_options(text)
|
2059
2140
|
end
|
2060
2141
|
end
|
2061
|
-
when
|
2062
|
-
# line
|
2142
|
+
when 48 then
|
2143
|
+
# line 523 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2063
2144
|
begin
|
2064
2145
|
te = p
|
2065
2146
|
p = p - 1; begin
|
2066
|
-
text =
|
2067
|
-
emit(:group, :capture, text
|
2147
|
+
text = copy(data, ts, te)
|
2148
|
+
emit(:group, :capture, text)
|
2068
2149
|
end
|
2069
2150
|
end
|
2070
|
-
when
|
2071
|
-
# line
|
2151
|
+
when 57 then
|
2152
|
+
# line 611 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2072
2153
|
begin
|
2073
2154
|
te = p
|
2074
2155
|
p = p - 1; begin
|
2075
|
-
case text =
|
2076
|
-
when '?' ; emit(:quantifier, :zero_or_one, text
|
2077
|
-
when '??'; emit(:quantifier, :zero_or_one_reluctant, text
|
2078
|
-
when '?+'; emit(:quantifier, :zero_or_one_possessive, text
|
2156
|
+
case text = copy(data, ts, te)
|
2157
|
+
when '?' ; emit(:quantifier, :zero_or_one, text)
|
2158
|
+
when '??'; emit(:quantifier, :zero_or_one_reluctant, text)
|
2159
|
+
when '?+'; emit(:quantifier, :zero_or_one_possessive, text)
|
2079
2160
|
end
|
2080
2161
|
end
|
2081
2162
|
end
|
2082
|
-
when
|
2083
|
-
# line
|
2163
|
+
when 53 then
|
2164
|
+
# line 619 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2084
2165
|
begin
|
2085
2166
|
te = p
|
2086
2167
|
p = p - 1; begin
|
2087
|
-
case text =
|
2088
|
-
when '*' ; emit(:quantifier, :zero_or_more, text
|
2089
|
-
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text
|
2090
|
-
when '*+'; emit(:quantifier, :zero_or_more_possessive, text
|
2168
|
+
case text = copy(data, ts, te)
|
2169
|
+
when '*' ; emit(:quantifier, :zero_or_more, text)
|
2170
|
+
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text)
|
2171
|
+
when '*+'; emit(:quantifier, :zero_or_more_possessive, text)
|
2091
2172
|
end
|
2092
2173
|
end
|
2093
2174
|
end
|
2094
|
-
when
|
2095
|
-
# line
|
2175
|
+
when 55 then
|
2176
|
+
# line 627 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2096
2177
|
begin
|
2097
2178
|
te = p
|
2098
2179
|
p = p - 1; begin
|
2099
|
-
case text =
|
2100
|
-
when '+' ; emit(:quantifier, :one_or_more, text
|
2101
|
-
when '+?'; emit(:quantifier, :one_or_more_reluctant, text
|
2102
|
-
when '++'; emit(:quantifier, :one_or_more_possessive, text
|
2180
|
+
case text = copy(data, ts, te)
|
2181
|
+
when '+' ; emit(:quantifier, :one_or_more, text)
|
2182
|
+
when '+?'; emit(:quantifier, :one_or_more_reluctant, text)
|
2183
|
+
when '++'; emit(:quantifier, :one_or_more_possessive, text)
|
2103
2184
|
end
|
2104
2185
|
end
|
2105
2186
|
end
|
2106
|
-
when
|
2107
|
-
# line
|
2187
|
+
when 63 then
|
2188
|
+
# line 635 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2108
2189
|
begin
|
2109
2190
|
te = p
|
2110
2191
|
p = p - 1; begin
|
2111
|
-
emit(:quantifier, :interval,
|
2192
|
+
emit(:quantifier, :interval, copy(data, ts, te))
|
2112
2193
|
end
|
2113
2194
|
end
|
2114
|
-
when
|
2115
|
-
# line
|
2195
|
+
when 62 then
|
2196
|
+
# line 640 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2197
|
+
begin
|
2198
|
+
te = p
|
2199
|
+
p = p - 1; begin
|
2200
|
+
append_literal(data, ts, te)
|
2201
|
+
end
|
2202
|
+
end
|
2203
|
+
when 59 then
|
2204
|
+
# line 646 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2116
2205
|
begin
|
2117
2206
|
te = p
|
2118
2207
|
p = p - 1; begin
|
2119
2208
|
begin
|
2120
2209
|
stack[top] = cs
|
2121
2210
|
top+= 1
|
2122
|
-
cs =
|
2211
|
+
cs = 140
|
2123
2212
|
_goto_level = _again
|
2124
2213
|
next
|
2125
2214
|
end
|
2126
2215
|
|
2127
2216
|
end
|
2128
2217
|
end
|
2129
|
-
when
|
2130
|
-
# line
|
2218
|
+
when 46 then
|
2219
|
+
# line 650 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2220
|
+
begin
|
2221
|
+
te = p
|
2222
|
+
p = p - 1; begin
|
2223
|
+
if free_spacing
|
2224
|
+
emit(:free_space, :comment, copy(data, ts, te))
|
2225
|
+
else
|
2226
|
+
# consume only the pound sign (#) and backtrack to do regular scanning
|
2227
|
+
append_literal(data, ts, ts + 1)
|
2228
|
+
begin p = (( ts + 1))-1; end
|
2229
|
+
|
2230
|
+
end
|
2231
|
+
end
|
2232
|
+
end
|
2233
|
+
when 45 then
|
2234
|
+
# line 660 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2131
2235
|
begin
|
2132
2236
|
te = p
|
2133
2237
|
p = p - 1; begin
|
2134
2238
|
if free_spacing
|
2135
|
-
emit(:free_space, :whitespace,
|
2239
|
+
emit(:free_space, :whitespace, copy(data, ts, te))
|
2136
2240
|
else
|
2137
2241
|
append_literal(data, ts, te)
|
2138
2242
|
end
|
2139
2243
|
end
|
2140
2244
|
end
|
2141
|
-
when
|
2142
|
-
# line
|
2245
|
+
when 44 then
|
2246
|
+
# line 675 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2143
2247
|
begin
|
2144
2248
|
te = p
|
2145
2249
|
p = p - 1; begin
|
2146
2250
|
append_literal(data, ts, te)
|
2147
2251
|
end
|
2148
2252
|
end
|
2149
|
-
when
|
2150
|
-
# line
|
2253
|
+
when 3 then
|
2254
|
+
# line 474 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2151
2255
|
begin
|
2152
2256
|
begin p = ((te))-1; end
|
2153
2257
|
begin
|
2154
|
-
text =
|
2258
|
+
text = copy(data, ts, te)
|
2155
2259
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
2156
2260
|
raise InvalidGroupOption.new($1 || "-#{$2}", text)
|
2157
2261
|
end
|
2158
|
-
emit_options(text
|
2262
|
+
emit_options(text)
|
2159
2263
|
end
|
2160
2264
|
end
|
2161
2265
|
when 10 then
|
2162
|
-
# line
|
2266
|
+
# line 640 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2267
|
+
begin
|
2268
|
+
begin p = ((te))-1; end
|
2269
|
+
begin
|
2270
|
+
append_literal(data, ts, te)
|
2271
|
+
end
|
2272
|
+
end
|
2273
|
+
when 8 then
|
2274
|
+
# line 646 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2163
2275
|
begin
|
2164
2276
|
begin p = ((te))-1; end
|
2165
2277
|
begin
|
2166
2278
|
begin
|
2167
2279
|
stack[top] = cs
|
2168
2280
|
top+= 1
|
2169
|
-
cs =
|
2281
|
+
cs = 140
|
2170
2282
|
_goto_level = _again
|
2171
2283
|
next
|
2172
2284
|
end
|
2173
2285
|
|
2174
|
-
end
|
2175
|
-
end
|
2176
|
-
when 3 then
|
2177
|
-
# line 656 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2178
|
-
begin
|
2179
|
-
begin p = ((te))-1; end
|
2180
|
-
begin
|
2181
|
-
append_literal(data, ts, te)
|
2182
2286
|
end
|
2183
2287
|
end
|
2184
2288
|
when 1 then
|
@@ -2192,69 +2296,69 @@ p = p - 1; begin
|
|
2192
2296
|
next
|
2193
2297
|
end
|
2194
2298
|
end
|
2195
|
-
when
|
2299
|
+
when 56 then
|
2196
2300
|
begin begin p = ((te))-1; end
|
2197
2301
|
|
2198
2302
|
append_literal(data, ts, te)
|
2199
2303
|
end
|
2200
2304
|
end
|
2201
2305
|
end
|
2202
|
-
when
|
2203
|
-
# line
|
2306
|
+
when 76 then
|
2307
|
+
# line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2204
2308
|
begin
|
2205
2309
|
|
2206
|
-
text =
|
2310
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2207
2311
|
raise PrematureEndError.new( text )
|
2208
2312
|
end
|
2209
|
-
# line
|
2313
|
+
# line 211 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2210
2314
|
begin
|
2211
2315
|
te = p
|
2212
2316
|
p = p - 1; begin
|
2213
|
-
emit(:set, :open,
|
2317
|
+
emit(:set, :open, copy(data, ts, te))
|
2214
2318
|
begin
|
2215
2319
|
stack[top] = cs
|
2216
2320
|
top+= 1
|
2217
|
-
cs =
|
2321
|
+
cs = 132
|
2218
2322
|
_goto_level = _again
|
2219
2323
|
next
|
2220
2324
|
end
|
2221
2325
|
|
2222
2326
|
end
|
2223
2327
|
end
|
2224
|
-
when
|
2225
|
-
# line
|
2328
|
+
when 17 then
|
2329
|
+
# line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2226
2330
|
begin
|
2227
2331
|
|
2228
|
-
text =
|
2332
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2229
2333
|
raise PrematureEndError.new( text )
|
2230
2334
|
end
|
2231
|
-
# line
|
2335
|
+
# line 211 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2232
2336
|
begin
|
2233
2337
|
begin p = ((te))-1; end
|
2234
2338
|
begin
|
2235
|
-
emit(:set, :open,
|
2339
|
+
emit(:set, :open, copy(data, ts, te))
|
2236
2340
|
begin
|
2237
2341
|
stack[top] = cs
|
2238
2342
|
top+= 1
|
2239
|
-
cs =
|
2343
|
+
cs = 132
|
2240
2344
|
_goto_level = _again
|
2241
2345
|
next
|
2242
2346
|
end
|
2243
2347
|
|
2244
2348
|
end
|
2245
2349
|
end
|
2246
|
-
when
|
2247
|
-
# line
|
2350
|
+
when 95 then
|
2351
|
+
# line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2248
2352
|
begin
|
2249
2353
|
|
2250
|
-
text =
|
2354
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2251
2355
|
raise PrematureEndError.new( text )
|
2252
2356
|
end
|
2253
|
-
# line
|
2357
|
+
# line 328 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2254
2358
|
begin
|
2255
2359
|
te = p
|
2256
2360
|
p = p - 1; begin
|
2257
|
-
emit(:escape, :hex,
|
2361
|
+
emit(:escape, :hex, copy(data, ts-1, te))
|
2258
2362
|
begin
|
2259
2363
|
top -= 1
|
2260
2364
|
cs = stack[top]
|
@@ -2264,14 +2368,14 @@ p = p - 1; begin
|
|
2264
2368
|
|
2265
2369
|
end
|
2266
2370
|
end
|
2267
|
-
when
|
2268
|
-
# line
|
2371
|
+
when 91 then
|
2372
|
+
# line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2269
2373
|
begin
|
2270
2374
|
|
2271
|
-
text =
|
2375
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2272
2376
|
raise PrematureEndError.new( text )
|
2273
2377
|
end
|
2274
|
-
# line
|
2378
|
+
# line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2275
2379
|
begin
|
2276
2380
|
te = p
|
2277
2381
|
p = p - 1; begin
|
@@ -2285,14 +2389,14 @@ p = p - 1; begin
|
|
2285
2389
|
|
2286
2390
|
end
|
2287
2391
|
end
|
2288
|
-
when
|
2289
|
-
# line
|
2392
|
+
when 93 then
|
2393
|
+
# line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2290
2394
|
begin
|
2291
2395
|
|
2292
|
-
text =
|
2396
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2293
2397
|
raise PrematureEndError.new( text )
|
2294
2398
|
end
|
2295
|
-
# line
|
2399
|
+
# line 342 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2296
2400
|
begin
|
2297
2401
|
te = p
|
2298
2402
|
p = p - 1; begin
|
@@ -2306,14 +2410,14 @@ p = p - 1; begin
|
|
2306
2410
|
|
2307
2411
|
end
|
2308
2412
|
end
|
2309
|
-
when
|
2310
|
-
# line
|
2413
|
+
when 26 then
|
2414
|
+
# line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2311
2415
|
begin
|
2312
2416
|
|
2313
|
-
text =
|
2417
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2314
2418
|
raise PrematureEndError.new( text )
|
2315
2419
|
end
|
2316
|
-
# line
|
2420
|
+
# line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2317
2421
|
begin
|
2318
2422
|
begin p = ((te))-1; end
|
2319
2423
|
begin
|
@@ -2327,14 +2431,14 @@ p = p - 1; begin
|
|
2327
2431
|
|
2328
2432
|
end
|
2329
2433
|
end
|
2330
|
-
when
|
2331
|
-
# line
|
2434
|
+
when 28 then
|
2435
|
+
# line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2332
2436
|
begin
|
2333
2437
|
|
2334
|
-
text =
|
2438
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2335
2439
|
raise PrematureEndError.new( text )
|
2336
2440
|
end
|
2337
|
-
# line
|
2441
|
+
# line 342 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2338
2442
|
begin
|
2339
2443
|
begin p = ((te))-1; end
|
2340
2444
|
begin
|
@@ -2348,14 +2452,14 @@ p = p - 1; begin
|
|
2348
2452
|
|
2349
2453
|
end
|
2350
2454
|
end
|
2351
|
-
when
|
2352
|
-
# line
|
2455
|
+
when 30 then
|
2456
|
+
# line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2353
2457
|
begin
|
2354
2458
|
|
2355
|
-
text =
|
2459
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2356
2460
|
validation_error(:sequence, 'sequence', text)
|
2357
2461
|
end
|
2358
|
-
# line
|
2462
|
+
# line 333 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2359
2463
|
begin
|
2360
2464
|
te = p+1
|
2361
2465
|
begin
|
@@ -2368,28 +2472,28 @@ te = p+1
|
|
2368
2472
|
|
2369
2473
|
end
|
2370
2474
|
end
|
2371
|
-
when
|
2372
|
-
# line
|
2475
|
+
when 5 then
|
2476
|
+
# line 150 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2373
2477
|
begin
|
2374
2478
|
self.group_depth = group_depth - 1 end
|
2375
|
-
# line
|
2479
|
+
# line 459 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2376
2480
|
begin
|
2377
2481
|
te = p+1
|
2378
2482
|
begin
|
2379
|
-
emit(:group, :comment,
|
2483
|
+
emit(:group, :comment, copy(data, ts, te))
|
2380
2484
|
end
|
2381
2485
|
end
|
2382
2486
|
when 37 then
|
2383
|
-
# line
|
2487
|
+
# line 150 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2384
2488
|
begin
|
2385
2489
|
self.group_depth = group_depth - 1 end
|
2386
|
-
# line
|
2490
|
+
# line 528 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2387
2491
|
begin
|
2388
2492
|
te = p+1
|
2389
2493
|
begin
|
2390
2494
|
if conditional_stack.last == group_depth + 1
|
2391
2495
|
conditional_stack.pop
|
2392
|
-
emit(:conditional, :close,
|
2496
|
+
emit(:conditional, :close, copy(data, ts, te))
|
2393
2497
|
else
|
2394
2498
|
if spacing_stack.length > 1 &&
|
2395
2499
|
spacing_stack.last[:depth] == group_depth + 1
|
@@ -2397,38 +2501,38 @@ te = p+1
|
|
2397
2501
|
self.free_spacing = spacing_stack.last[:free_spacing]
|
2398
2502
|
end
|
2399
2503
|
|
2400
|
-
emit(:group, :close,
|
2504
|
+
emit(:group, :close, copy(data, ts, te))
|
2401
2505
|
end
|
2402
2506
|
end
|
2403
2507
|
end
|
2404
2508
|
when 39 then
|
2405
|
-
# line
|
2509
|
+
# line 151 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2406
2510
|
begin
|
2407
2511
|
self.set_depth = set_depth + 1 end
|
2408
|
-
# line
|
2512
|
+
# line 434 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2409
2513
|
begin
|
2410
2514
|
te = p+1
|
2411
2515
|
begin
|
2412
|
-
emit(:set, :open,
|
2516
|
+
emit(:set, :open, copy(data, ts, te))
|
2413
2517
|
begin
|
2414
2518
|
stack[top] = cs
|
2415
2519
|
top+= 1
|
2416
|
-
cs =
|
2520
|
+
cs = 132
|
2417
2521
|
_goto_level = _again
|
2418
2522
|
next
|
2419
2523
|
end
|
2420
2524
|
|
2421
2525
|
end
|
2422
2526
|
end
|
2423
|
-
when
|
2424
|
-
# line
|
2527
|
+
when 70 then
|
2528
|
+
# line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2425
2529
|
begin
|
2426
2530
|
self.set_depth = set_depth - 1 end
|
2427
|
-
# line
|
2531
|
+
# line 158 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2428
2532
|
begin
|
2429
2533
|
te = p+1
|
2430
2534
|
begin
|
2431
|
-
emit(:set, :close,
|
2535
|
+
emit(:set, :close, copy(data, ts, te))
|
2432
2536
|
if in_set?
|
2433
2537
|
begin
|
2434
2538
|
top -= 1
|
@@ -2439,7 +2543,7 @@ te = p+1
|
|
2439
2543
|
|
2440
2544
|
else
|
2441
2545
|
begin
|
2442
|
-
cs =
|
2546
|
+
cs = 112
|
2443
2547
|
_goto_level = _again
|
2444
2548
|
next
|
2445
2549
|
end
|
@@ -2447,16 +2551,16 @@ te = p+1
|
|
2447
2551
|
end
|
2448
2552
|
end
|
2449
2553
|
end
|
2450
|
-
when
|
2451
|
-
# line
|
2554
|
+
when 75 then
|
2555
|
+
# line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2452
2556
|
begin
|
2453
2557
|
self.set_depth = set_depth - 1 end
|
2454
|
-
# line
|
2558
|
+
# line 167 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2455
2559
|
begin
|
2456
2560
|
te = p+1
|
2457
2561
|
begin # special case, emits two tokens
|
2458
|
-
emit(:literal, :literal, copy(data, ts
|
2459
|
-
emit(:set, :close, copy(data, ts+1
|
2562
|
+
emit(:literal, :literal, copy(data, ts, te-1))
|
2563
|
+
emit(:set, :close, copy(data, ts+1, te))
|
2460
2564
|
if in_set?
|
2461
2565
|
begin
|
2462
2566
|
top -= 1
|
@@ -2467,7 +2571,7 @@ te = p+1
|
|
2467
2571
|
|
2468
2572
|
else
|
2469
2573
|
begin
|
2470
|
-
cs =
|
2574
|
+
cs = 112
|
2471
2575
|
_goto_level = _again
|
2472
2576
|
next
|
2473
2577
|
end
|
@@ -2475,15 +2579,15 @@ te = p+1
|
|
2475
2579
|
end
|
2476
2580
|
end
|
2477
2581
|
end
|
2478
|
-
when
|
2479
|
-
# line
|
2582
|
+
when 20 then
|
2583
|
+
# line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2480
2584
|
begin
|
2481
2585
|
self.set_depth = set_depth - 1 end
|
2482
|
-
# line
|
2586
|
+
# line 216 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2483
2587
|
begin
|
2484
2588
|
te = p+1
|
2485
2589
|
begin
|
2486
|
-
text =
|
2590
|
+
text = copy(data, ts, te)
|
2487
2591
|
|
2488
2592
|
type = :posixclass
|
2489
2593
|
class_name = text[2..-3]
|
@@ -2492,53 +2596,53 @@ te = p+1
|
|
2492
2596
|
type = :nonposixclass
|
2493
2597
|
end
|
2494
2598
|
|
2495
|
-
emit(type, class_name.to_sym, text
|
2599
|
+
emit(type, class_name.to_sym, text)
|
2496
2600
|
end
|
2497
2601
|
end
|
2498
|
-
when
|
2499
|
-
# line
|
2602
|
+
when 19 then
|
2603
|
+
# line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2500
2604
|
begin
|
2501
2605
|
self.set_depth = set_depth - 1 end
|
2502
|
-
# line
|
2606
|
+
# line 229 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2503
2607
|
begin
|
2504
2608
|
te = p+1
|
2505
2609
|
begin
|
2506
|
-
emit(:set, :collation,
|
2610
|
+
emit(:set, :collation, copy(data, ts, te))
|
2507
2611
|
end
|
2508
2612
|
end
|
2509
|
-
when
|
2510
|
-
# line
|
2613
|
+
when 21 then
|
2614
|
+
# line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2511
2615
|
begin
|
2512
2616
|
self.set_depth = set_depth - 1 end
|
2513
|
-
# line
|
2617
|
+
# line 233 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2514
2618
|
begin
|
2515
2619
|
te = p+1
|
2516
2620
|
begin
|
2517
|
-
emit(:set, :equivalent,
|
2621
|
+
emit(:set, :equivalent, copy(data, ts, te))
|
2518
2622
|
end
|
2519
2623
|
end
|
2520
|
-
when
|
2624
|
+
when 68 then
|
2521
2625
|
# line 1 "NONE"
|
2522
2626
|
begin
|
2523
2627
|
te = p+1
|
2524
2628
|
end
|
2525
|
-
# line
|
2629
|
+
# line 151 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2526
2630
|
begin
|
2527
2631
|
self.set_depth = set_depth + 1 end
|
2528
|
-
when
|
2632
|
+
when 82 then
|
2529
2633
|
# line 1 "NONE"
|
2530
2634
|
begin
|
2531
2635
|
te = p+1
|
2532
2636
|
end
|
2533
|
-
# line
|
2637
|
+
# line 270 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2534
2638
|
begin
|
2535
2639
|
act = 18; end
|
2536
|
-
when
|
2640
|
+
when 81 then
|
2537
2641
|
# line 1 "NONE"
|
2538
2642
|
begin
|
2539
2643
|
te = p+1
|
2540
2644
|
end
|
2541
|
-
# line
|
2645
|
+
# line 276 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2542
2646
|
begin
|
2543
2647
|
act = 19; end
|
2544
2648
|
when 2 then
|
@@ -2546,31 +2650,31 @@ act = 19; end
|
|
2546
2650
|
begin
|
2547
2651
|
te = p+1
|
2548
2652
|
end
|
2549
|
-
# line
|
2653
|
+
# line 675 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2550
2654
|
begin
|
2551
|
-
act =
|
2552
|
-
when
|
2655
|
+
act = 56; end
|
2656
|
+
when 49 then
|
2553
2657
|
# line 1 "NONE"
|
2554
2658
|
begin
|
2555
2659
|
te = p+1
|
2556
2660
|
end
|
2557
|
-
# line
|
2661
|
+
# line 150 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2558
2662
|
begin
|
2559
2663
|
self.group_depth = group_depth - 1 end
|
2560
|
-
# line
|
2664
|
+
# line 149 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2561
2665
|
begin
|
2562
2666
|
self.group_depth = group_depth + 1 end
|
2563
|
-
# line
|
2667
|
+
# line 2667 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
2564
2668
|
end
|
2565
2669
|
end
|
2566
2670
|
end
|
2567
2671
|
if _goto_level <= _again
|
2568
2672
|
case _re_scanner_to_state_actions[cs]
|
2569
|
-
when
|
2673
|
+
when 65 then
|
2570
2674
|
# line 1 "NONE"
|
2571
2675
|
begin
|
2572
2676
|
ts = nil; end
|
2573
|
-
when
|
2677
|
+
when 33 then
|
2574
2678
|
# line 1 "NONE"
|
2575
2679
|
begin
|
2576
2680
|
ts = nil; end
|
@@ -2578,7 +2682,7 @@ ts = nil; end
|
|
2578
2682
|
begin
|
2579
2683
|
act = 0
|
2580
2684
|
end
|
2581
|
-
# line
|
2685
|
+
# line 2685 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
2582
2686
|
end
|
2583
2687
|
|
2584
2688
|
if cs == 0
|
@@ -2599,20 +2703,20 @@ act = 0
|
|
2599
2703
|
next;
|
2600
2704
|
end
|
2601
2705
|
case _re_scanner_eof_actions[cs]
|
2602
|
-
when
|
2706
|
+
when 11 then
|
2603
2707
|
# line 8 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
|
2604
2708
|
begin
|
2605
2709
|
|
2606
2710
|
raise PrematureEndError.new('unicode property')
|
2607
2711
|
end
|
2608
|
-
when
|
2609
|
-
# line
|
2712
|
+
when 24 then
|
2713
|
+
# line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2610
2714
|
begin
|
2611
2715
|
|
2612
|
-
text =
|
2716
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2613
2717
|
raise PrematureEndError.new( text )
|
2614
2718
|
end
|
2615
|
-
# line
|
2719
|
+
# line 2719 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
2616
2720
|
end
|
2617
2721
|
end
|
2618
2722
|
|
@@ -2623,13 +2727,13 @@ act = 0
|
|
2623
2727
|
end
|
2624
2728
|
end
|
2625
2729
|
|
2626
|
-
# line
|
2730
|
+
# line 770 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2627
2731
|
|
2628
2732
|
# to avoid "warning: assigned but unused variable - testEof"
|
2629
2733
|
testEof = testEof
|
2630
2734
|
|
2631
2735
|
if cs == re_scanner_error
|
2632
|
-
text =
|
2736
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2633
2737
|
raise ScannerError.new("Scan error at '#{text}'")
|
2634
2738
|
end
|
2635
2739
|
|
@@ -2657,22 +2761,41 @@ end
|
|
2657
2761
|
end
|
2658
2762
|
|
2659
2763
|
# Emits an array with the details of the scanned pattern
|
2660
|
-
def emit(type, token, text
|
2764
|
+
def emit(type, token, text)
|
2661
2765
|
#puts "EMIT: type: #{type}, token: #{token}, text: #{text}, ts: #{ts}, te: #{te}"
|
2662
2766
|
|
2663
2767
|
emit_literal if literal
|
2664
2768
|
|
2769
|
+
# Ragel runs with byte-based indices (ts, te). These are of little value to
|
2770
|
+
# end-users, so we keep track of char-based indices and emit those instead.
|
2771
|
+
ts_char_pos = char_pos
|
2772
|
+
te_char_pos = char_pos + text.length
|
2773
|
+
|
2665
2774
|
if block
|
2666
|
-
block.call type, token, text,
|
2775
|
+
block.call type, token, text, ts_char_pos, te_char_pos
|
2667
2776
|
end
|
2668
2777
|
|
2669
|
-
tokens << [type, token, text,
|
2778
|
+
tokens << [type, token, text, ts_char_pos, te_char_pos]
|
2779
|
+
|
2780
|
+
self.char_pos = te_char_pos
|
2670
2781
|
end
|
2671
2782
|
|
2672
2783
|
private
|
2673
2784
|
|
2674
2785
|
attr_accessor :tokens, :literal, :block, :free_spacing, :spacing_stack,
|
2675
|
-
:group_depth, :set_depth, :conditional_stack
|
2786
|
+
:group_depth, :set_depth, :conditional_stack, :char_pos
|
2787
|
+
|
2788
|
+
def free_spacing?(input_object, options)
|
2789
|
+
if options && !input_object.is_a?(String)
|
2790
|
+
raise ArgumentError, 'options cannot be supplied unless scanning a String'
|
2791
|
+
end
|
2792
|
+
|
2793
|
+
options = input_object.options if input_object.is_a?(::Regexp)
|
2794
|
+
|
2795
|
+
return false unless options
|
2796
|
+
|
2797
|
+
options & Regexp::EXTENDED != 0
|
2798
|
+
end
|
2676
2799
|
|
2677
2800
|
def in_group?
|
2678
2801
|
group_depth > 0
|
@@ -2683,36 +2806,25 @@ end
|
|
2683
2806
|
end
|
2684
2807
|
|
2685
2808
|
# Copy from ts to te from data as text
|
2686
|
-
def copy(data,
|
2687
|
-
data[
|
2688
|
-
end
|
2689
|
-
|
2690
|
-
# Copy from ts to te from data as text, returning an array with the text
|
2691
|
-
# and the offsets used to copy it.
|
2692
|
-
def text(data, ts, te, soff = 0)
|
2693
|
-
[copy(data, ts-soff..te-1), ts-soff, te]
|
2809
|
+
def copy(data, ts, te)
|
2810
|
+
data[ts...te].pack('c*').force_encoding('utf-8')
|
2694
2811
|
end
|
2695
2812
|
|
2696
2813
|
# Appends one or more characters to the literal buffer, to be emitted later
|
2697
|
-
# by a call to emit_literal.
|
2814
|
+
# by a call to emit_literal.
|
2698
2815
|
def append_literal(data, ts, te)
|
2699
2816
|
self.literal = literal || []
|
2700
|
-
literal <<
|
2817
|
+
literal << copy(data, ts, te)
|
2701
2818
|
end
|
2702
2819
|
|
2703
|
-
# Emits the literal run collected by calls to the append_literal method
|
2704
|
-
# using the total start (ts) and end (te) offsets of the run.
|
2820
|
+
# Emits the literal run collected by calls to the append_literal method.
|
2705
2821
|
def emit_literal
|
2706
|
-
|
2707
|
-
text = literal.map {|t| t[0]}.join
|
2708
|
-
|
2709
|
-
text.force_encoding('utf-8') if text.respond_to?(:force_encoding)
|
2710
|
-
|
2822
|
+
text = literal.join
|
2711
2823
|
self.literal = nil
|
2712
|
-
emit(:literal, :literal, text
|
2824
|
+
emit(:literal, :literal, text)
|
2713
2825
|
end
|
2714
2826
|
|
2715
|
-
def emit_options(text
|
2827
|
+
def emit_options(text)
|
2716
2828
|
token = nil
|
2717
2829
|
|
2718
2830
|
# Ruby allows things like '(?-xxxx)' or '(?xx-xx--xx-:abc)'.
|
@@ -2738,14 +2850,14 @@ end
|
|
2738
2850
|
token = :options_switch
|
2739
2851
|
end
|
2740
2852
|
|
2741
|
-
emit(:group, token, text
|
2853
|
+
emit(:group, token, text)
|
2742
2854
|
end
|
2743
2855
|
|
2744
2856
|
def emit_meta_control_sequence(data, ts, te, token)
|
2745
2857
|
if data.last < 0x00 || data.last > 0x7F
|
2746
2858
|
validation_error(:sequence, 'escape', token.to_s)
|
2747
2859
|
end
|
2748
|
-
emit(:escape, token,
|
2860
|
+
emit(:escape, token, copy(data, ts-1, te))
|
2749
2861
|
end
|
2750
2862
|
|
2751
2863
|
# Centralizes and unifies the handling of validation related
|