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