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