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