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