regexp_parser 2.7.0 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +62 -3
- data/Gemfile +3 -3
- data/LICENSE +1 -1
- data/README.md +33 -30
- 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 +3 -4
- 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/posix_class.rb +5 -1
- data/lib/regexp_parser/expression/classes/unicode_property.rb +5 -2
- data/lib/regexp_parser/expression/methods/construct.rb +2 -4
- 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 +2 -0
- data/lib/regexp_parser/lexer.rb +15 -7
- data/lib/regexp_parser/parser.rb +85 -86
- 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 +11 -0
- data/lib/regexp_parser/scanner/properties/short.csv +2 -0
- data/lib/regexp_parser/scanner/property.rl +1 -1
- data/lib/regexp_parser/scanner/scanner.rl +35 -129
- data/lib/regexp_parser/scanner.rb +1084 -1303
- 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 +17 -1
- data/lib/regexp_parser/syntax/token/virtual.rb +11 -0
- data/lib/regexp_parser/version.rb +1 -1
- metadata +9 -3
@@ -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 'regexp_parser/scanner/errors/scanner_error'
|
10
|
+
require 'regexp_parser/scanner/errors/premature_end_error'
|
11
|
+
require 'regexp_parser/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,77,77,45,45,
|
89
|
+
0,0,67,99,45,
|
90
|
+
45,0,0,92,92,
|
91
|
+
48,102,39,60,39,57,
|
92
|
+
48,57,41,57,33,
|
93
|
+
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,1,1,0,33,1,0,1,
|
115
|
+
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,4680,4682,4683,4717,4719,4720,
|
137
|
+
4722,4778,4801,4821,4832,4850
|
201
138
|
]
|
202
139
|
|
203
140
|
class << self
|
@@ -205,617 +142,617 @@ 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,62,
|
730
|
+
184,183,62,186,67,67,67,67,
|
731
|
+
67,67,67,67,67,67,67,67,
|
732
|
+
67,67,67,67,67,67,67,67,
|
733
|
+
67,67,67,67,67,67,67,67,
|
734
|
+
67,67,67,187,67,189,188,67,
|
735
|
+
70,67,191,191,191,191,191,191,
|
736
|
+
191,191,191,191,190,190,190,190,
|
737
|
+
190,190,190,191,191,191,191,191,
|
738
|
+
191,190,190,190,190,190,190,190,
|
739
|
+
190,190,190,190,190,190,190,190,
|
740
|
+
190,190,190,190,190,190,190,190,
|
741
|
+
190,190,190,191,191,191,191,191,
|
742
|
+
191,190,193,192,192,192,192,192,
|
743
|
+
194,192,192,195,195,195,195,195,
|
744
|
+
195,195,195,195,195,192,192,196,
|
745
|
+
192,86,85,85,85,85,85,197,
|
746
|
+
85,85,197,197,197,197,197,197,
|
747
|
+
197,197,197,197,85,88,88,88,
|
748
|
+
88,88,88,88,88,88,88,197,
|
749
|
+
87,197,197,197,197,197,197,88,
|
750
|
+
88,88,88,88,88,88,88,88,
|
751
|
+
88,197,197,89,89,89,89,89,
|
752
|
+
89,89,89,89,89,89,197,89,
|
753
|
+
89,197,197,197,197,197,197,197,
|
754
|
+
197,197,197,89,89,89,89,86,
|
755
|
+
89,0
|
819
756
|
]
|
820
757
|
|
821
758
|
class << self
|
@@ -823,31 +760,31 @@ class << self
|
|
823
760
|
private :_re_scanner_trans_targs, :_re_scanner_trans_targs=
|
824
761
|
end
|
825
762
|
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
|
-
|
763
|
+
71,72,1,2,71,4,71,6,
|
764
|
+
71,8,71,81,71,10,16,11,
|
765
|
+
71,12,13,14,15,17,18,19,
|
766
|
+
20,21,23,29,24,71,25,26,
|
767
|
+
27,28,30,31,32,33,34,71,
|
768
|
+
36,71,37,39,0,40,41,88,
|
769
|
+
89,89,42,89,89,89,45,46,
|
770
|
+
89,89,99,99,47,50,99,105,
|
771
|
+
99,107,53,99,108,99,110,56,
|
772
|
+
59,57,58,99,60,61,62,63,
|
773
|
+
64,65,99,112,113,67,68,113,
|
774
|
+
69,70,3,73,74,75,76,77,
|
775
|
+
71,78,71,82,83,71,84,71,
|
776
|
+
85,71,71,86,71,71,71,71,
|
777
|
+
71,71,79,71,80,5,71,7,
|
778
|
+
71,71,71,71,71,71,71,71,
|
779
|
+
71,71,71,9,22,71,35,87,
|
780
|
+
38,90,91,92,89,93,94,95,
|
781
|
+
89,89,89,89,43,89,89,44,
|
782
|
+
89,89,89,96,97,96,96,98,
|
783
|
+
96,100,101,102,99,103,103,99,
|
784
|
+
49,99,52,99,99,55,66,99,
|
785
|
+
48,99,104,99,99,99,106,99,
|
786
|
+
51,99,109,111,99,54,99,99,
|
787
|
+
113,114,115,116,117,113
|
851
788
|
]
|
852
789
|
|
853
790
|
class << self
|
@@ -855,31 +792,31 @@ class << self
|
|
855
792
|
private :_re_scanner_trans_actions, :_re_scanner_trans_actions=
|
856
793
|
end
|
857
794
|
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
|
-
|
795
|
+
1,2,0,0,3,0,4,0,
|
796
|
+
5,0,6,7,8,0,0,0,
|
797
|
+
9,0,0,0,0,0,0,0,
|
798
|
+
0,0,0,0,0,10,0,0,
|
799
|
+
0,0,0,0,0,0,0,11,
|
800
|
+
0,12,0,0,0,0,0,14,
|
801
|
+
15,16,0,17,18,19,0,0,
|
802
|
+
20,21,22,23,0,0,25,0,
|
803
|
+
26,0,0,27,0,28,0,0,
|
804
|
+
0,0,0,29,0,0,0,0,
|
805
|
+
0,0,30,0,31,0,0,32,
|
806
|
+
0,0,0,0,0,0,0,0,
|
807
|
+
35,36,37,0,0,38,0,39,
|
808
|
+
40,41,42,40,43,44,45,46,
|
809
|
+
47,48,49,50,0,0,51,0,
|
810
|
+
52,53,54,55,56,57,58,59,
|
811
|
+
60,61,62,0,0,63,0,65,
|
812
|
+
0,0,40,40,66,0,40,67,
|
813
|
+
68,69,70,71,0,72,73,0,
|
814
|
+
74,75,76,77,0,78,79,0,
|
815
|
+
80,0,40,40,81,82,83,84,
|
816
|
+
0,85,0,86,87,0,0,88,
|
817
|
+
0,89,0,90,91,92,40,93,
|
818
|
+
0,94,40,0,95,0,96,97,
|
819
|
+
98,40,40,40,40,99
|
883
820
|
]
|
884
821
|
|
885
822
|
class << self
|
@@ -887,21 +824,21 @@ class << self
|
|
887
824
|
private :_re_scanner_to_state_actions, :_re_scanner_to_state_actions=
|
888
825
|
end
|
889
826
|
self._re_scanner_to_state_actions = [
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
827
|
+
0,0,0,0,0,0,0,0,
|
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,33,
|
836
|
+
0,0,0,0,0,0,0,0,
|
837
|
+
0,0,0,0,0,0,0,64,
|
838
|
+
64,64,0,0,0,0,0,0,
|
839
|
+
64,0,0,64,0,0,0,0,
|
840
|
+
0,0,0,0,0,0,0,0,
|
841
|
+
0,64,0,0,0,0
|
905
842
|
]
|
906
843
|
|
907
844
|
class << self
|
@@ -909,21 +846,21 @@ class << self
|
|
909
846
|
private :_re_scanner_from_state_actions, :_re_scanner_from_state_actions=
|
910
847
|
end
|
911
848
|
self._re_scanner_from_state_actions = [
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
849
|
+
0,0,0,0,0,0,0,0,
|
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,34,
|
858
|
+
0,0,0,0,0,0,0,0,
|
859
|
+
0,0,0,0,0,0,0,34,
|
860
|
+
34,34,0,0,0,0,0,0,
|
861
|
+
34,0,0,34,0,0,0,0,
|
862
|
+
0,0,0,0,0,0,0,0,
|
863
|
+
0,34,0,0,0,0
|
927
864
|
]
|
928
865
|
|
929
866
|
class << self
|
@@ -931,21 +868,21 @@ class << self
|
|
931
868
|
private :_re_scanner_eof_actions, :_re_scanner_eof_actions=
|
932
869
|
end
|
933
870
|
self._re_scanner_eof_actions = [
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
871
|
+
0,0,0,0,0,0,0,0,
|
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,13,13,
|
876
|
+
13,13,0,0,0,0,0,0,
|
877
|
+
0,24,24,0,24,24,0,24,
|
878
|
+
24,24,24,24,24,24,24,24,
|
879
|
+
24,24,24,0,0,0,0,0,
|
880
|
+
0,0,0,0,0,0,0,0,
|
881
|
+
0,0,0,0,0,0,0,0,
|
882
|
+
0,24,0,0,0,0,0,0,
|
883
|
+
0,0,0,24,0,0,0,0,
|
884
|
+
0,0,0,0,0,0,0,0,
|
885
|
+
0,0,0,0,0,0
|
949
886
|
]
|
950
887
|
|
951
888
|
class << self
|
@@ -953,31 +890,31 @@ class << self
|
|
953
890
|
private :_re_scanner_eof_trans, :_re_scanner_eof_trans=
|
954
891
|
end
|
955
892
|
self._re_scanner_eof_trans = [
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
893
|
+
0,1,1,1,5,5,5,5,
|
894
|
+
1,13,13,13,13,13,13,13,
|
895
|
+
13,13,13,13,13,13,13,13,
|
896
|
+
13,13,13,13,13,13,13,13,
|
897
|
+
13,13,13,40,40,40,0,0,
|
898
|
+
0,0,49,49,52,54,54,59,
|
899
|
+
59,0,0,65,0,0,70,0,
|
900
|
+
0,0,0,0,0,0,0,0,
|
901
|
+
0,0,0,85,85,85,85,0,
|
902
|
+
110,110,111,111,110,112,114,116,
|
903
|
+
116,122,123,125,127,129,134,0,
|
904
|
+
0,0,148,148,148,148,151,154,
|
905
|
+
0,159,159,0,176,176,176,178,
|
906
|
+
180,182,182,182,186,186,186,186,
|
907
|
+
191,0,198,198,198,198
|
971
908
|
]
|
972
909
|
|
973
910
|
class << self
|
974
911
|
attr_accessor :re_scanner_start
|
975
912
|
end
|
976
|
-
self.re_scanner_start =
|
913
|
+
self.re_scanner_start = 71;
|
977
914
|
class << self
|
978
915
|
attr_accessor :re_scanner_first_final
|
979
916
|
end
|
980
|
-
self.re_scanner_first_final =
|
917
|
+
self.re_scanner_first_final = 71;
|
981
918
|
class << self
|
982
919
|
attr_accessor :re_scanner_error
|
983
920
|
end
|
@@ -986,36 +923,32 @@ self.re_scanner_error = 0;
|
|
986
923
|
class << self
|
987
924
|
attr_accessor :re_scanner_en_char_type
|
988
925
|
end
|
989
|
-
self.re_scanner_en_char_type =
|
926
|
+
self.re_scanner_en_char_type = 87;
|
990
927
|
class << self
|
991
928
|
attr_accessor :re_scanner_en_unicode_property
|
992
929
|
end
|
993
|
-
self.re_scanner_en_unicode_property =
|
930
|
+
self.re_scanner_en_unicode_property = 88;
|
994
931
|
class << self
|
995
932
|
attr_accessor :re_scanner_en_character_set
|
996
933
|
end
|
997
|
-
self.re_scanner_en_character_set =
|
934
|
+
self.re_scanner_en_character_set = 89;
|
998
935
|
class << self
|
999
936
|
attr_accessor :re_scanner_en_set_escape_sequence
|
1000
937
|
end
|
1001
|
-
self.re_scanner_en_set_escape_sequence =
|
938
|
+
self.re_scanner_en_set_escape_sequence = 96;
|
1002
939
|
class << self
|
1003
940
|
attr_accessor :re_scanner_en_escape_sequence
|
1004
941
|
end
|
1005
|
-
self.re_scanner_en_escape_sequence =
|
942
|
+
self.re_scanner_en_escape_sequence = 99;
|
1006
943
|
class << self
|
1007
944
|
attr_accessor :re_scanner_en_conditional_expression
|
1008
945
|
end
|
1009
|
-
self.re_scanner_en_conditional_expression =
|
946
|
+
self.re_scanner_en_conditional_expression = 113;
|
1010
947
|
class << self
|
1011
948
|
attr_accessor :re_scanner_en_main
|
1012
949
|
end
|
1013
|
-
self.re_scanner_en_main =
|
950
|
+
self.re_scanner_en_main = 71;
|
1014
951
|
|
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
952
|
begin
|
1020
953
|
p ||= 0
|
1021
954
|
pe ||= data.length
|
@@ -1026,9 +959,6 @@ begin
|
|
1026
959
|
act = 0
|
1027
960
|
end
|
1028
961
|
|
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
962
|
begin
|
1033
963
|
testEof = false
|
1034
964
|
_slen, _trans, _keys, _inds, _acts, _nacts = nil
|
@@ -1050,24 +980,22 @@ begin
|
|
1050
980
|
end
|
1051
981
|
end
|
1052
982
|
if _goto_level <= _resume
|
1053
|
-
case _re_scanner_from_state_actions[cs]
|
1054
|
-
when
|
1055
|
-
# line 1 "NONE"
|
983
|
+
case _re_scanner_from_state_actions[cs]
|
984
|
+
when 34 then
|
1056
985
|
begin
|
1057
986
|
ts = p
|
1058
987
|
end
|
1059
|
-
# line 1059 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
|
1060
988
|
end
|
1061
989
|
_keys = cs << 1
|
1062
990
|
_inds = _re_scanner_index_offsets[cs]
|
1063
991
|
_slen = _re_scanner_key_spans[cs]
|
1064
992
|
_wide = data[p].ord
|
1065
|
-
_trans = if ( _slen > 0 &&
|
1066
|
-
_re_scanner_trans_keys[_keys] <= _wide &&
|
1067
|
-
_wide <= _re_scanner_trans_keys[_keys + 1]
|
993
|
+
_trans = if ( _slen > 0 &&
|
994
|
+
_re_scanner_trans_keys[_keys] <= _wide &&
|
995
|
+
_wide <= _re_scanner_trans_keys[_keys + 1]
|
1068
996
|
) then
|
1069
|
-
_re_scanner_indicies[ _inds + _wide - _re_scanner_trans_keys[_keys] ]
|
1070
|
-
else
|
997
|
+
_re_scanner_indicies[ _inds + _wide - _re_scanner_trans_keys[_keys] ]
|
998
|
+
else
|
1071
999
|
_re_scanner_indicies[ _inds + _slen ]
|
1072
1000
|
end
|
1073
1001
|
end
|
@@ -1075,25 +1003,18 @@ ts = p
|
|
1075
1003
|
cs = _re_scanner_trans_targs[_trans]
|
1076
1004
|
if _re_scanner_trans_actions[_trans] != 0
|
1077
1005
|
case _re_scanner_trans_actions[_trans]
|
1078
|
-
when
|
1079
|
-
# line 147 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1006
|
+
when 36 then
|
1080
1007
|
begin
|
1081
1008
|
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"
|
1009
|
+
when 40 then
|
1088
1010
|
begin
|
1089
1011
|
te = p+1
|
1090
1012
|
end
|
1091
|
-
when
|
1092
|
-
# line 12 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/char_type.rl"
|
1013
|
+
when 65 then
|
1093
1014
|
begin
|
1094
1015
|
te = p+1
|
1095
|
-
begin
|
1096
|
-
case text = copy(data, ts-1,
|
1016
|
+
begin
|
1017
|
+
case text = copy(data, ts-1,te)
|
1097
1018
|
when '\d'; emit(:type, :digit, text)
|
1098
1019
|
when '\D'; emit(:type, :nondigit, text)
|
1099
1020
|
when '\h'; emit(:type, :hex, text)
|
@@ -1114,18 +1035,17 @@ te = p+1
|
|
1114
1035
|
|
1115
1036
|
end
|
1116
1037
|
end
|
1117
|
-
when
|
1118
|
-
# line 16 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/property.rl"
|
1038
|
+
when 14 then
|
1119
1039
|
begin
|
1120
1040
|
te = p+1
|
1121
|
-
begin
|
1122
|
-
text = copy(data, ts-1,
|
1041
|
+
begin
|
1042
|
+
text = copy(data, ts-1,te)
|
1123
1043
|
type = (text[1] == 'P') ^ (text[3] == '^') ? :nonproperty : :property
|
1124
1044
|
|
1125
1045
|
name = text[3..-2].gsub(/[\^\s_\-]/, '').downcase
|
1126
1046
|
|
1127
1047
|
token = self.class.short_prop_map[name] || self.class.long_prop_map[name]
|
1128
|
-
|
1048
|
+
raise ValidationError.for(:property, name) unless token
|
1129
1049
|
|
1130
1050
|
self.emit(type, token.to_sym, text)
|
1131
1051
|
|
@@ -1138,8 +1058,7 @@ te = p+1
|
|
1138
1058
|
|
1139
1059
|
end
|
1140
1060
|
end
|
1141
|
-
when
|
1142
|
-
# line 175 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1061
|
+
when 18 then
|
1143
1062
|
begin
|
1144
1063
|
te = p+1
|
1145
1064
|
begin # special case, emits two tokens
|
@@ -1147,11 +1066,10 @@ te = p+1
|
|
1147
1066
|
emit(:set, :intersection, '&&')
|
1148
1067
|
end
|
1149
1068
|
end
|
1150
|
-
when
|
1151
|
-
# line 180 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1069
|
+
when 70 then
|
1152
1070
|
begin
|
1153
1071
|
te = p+1
|
1154
|
-
begin
|
1072
|
+
begin
|
1155
1073
|
if prev_token[1] == :open
|
1156
1074
|
emit(:set, :negate, '^')
|
1157
1075
|
else
|
@@ -1159,51 +1077,46 @@ te = p+1
|
|
1159
1077
|
end
|
1160
1078
|
end
|
1161
1079
|
end
|
1162
|
-
when
|
1163
|
-
# line 200 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1080
|
+
when 72 then
|
1164
1081
|
begin
|
1165
1082
|
te = p+1
|
1166
|
-
begin
|
1083
|
+
begin
|
1167
1084
|
emit(:set, :intersection, '&&')
|
1168
1085
|
end
|
1169
1086
|
end
|
1170
|
-
when
|
1171
|
-
# line 204 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1087
|
+
when 68 then
|
1172
1088
|
begin
|
1173
1089
|
te = p+1
|
1174
|
-
begin
|
1090
|
+
begin
|
1175
1091
|
begin
|
1176
1092
|
stack[top] = cs
|
1177
1093
|
top+= 1
|
1178
|
-
cs =
|
1094
|
+
cs = 96
|
1179
1095
|
_goto_level = _again
|
1180
1096
|
next
|
1181
1097
|
end
|
1182
1098
|
|
1183
1099
|
end
|
1184
1100
|
end
|
1185
|
-
when
|
1186
|
-
# line 238 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1101
|
+
when 66 then
|
1187
1102
|
begin
|
1188
1103
|
te = p+1
|
1189
|
-
begin
|
1104
|
+
begin
|
1190
1105
|
emit(:literal, :literal, copy(data, ts, te))
|
1191
1106
|
end
|
1192
1107
|
end
|
1193
|
-
when
|
1194
|
-
# line 242 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1108
|
+
when 16 then
|
1195
1109
|
begin
|
1196
1110
|
te = p+1
|
1197
|
-
begin
|
1111
|
+
begin
|
1198
1112
|
text = copy(data, ts, te)
|
1199
1113
|
emit(:literal, :literal, text)
|
1200
1114
|
end
|
1201
1115
|
end
|
1202
|
-
when
|
1203
|
-
# line 188 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1116
|
+
when 73 then
|
1204
1117
|
begin
|
1205
1118
|
te = p
|
1206
|
-
p = p - 1; begin
|
1119
|
+
p = p - 1; begin
|
1207
1120
|
# ranges cant start with the opening bracket, a subset, or
|
1208
1121
|
# intersection/negation/range operators
|
1209
1122
|
if prev_token[0] == :set
|
@@ -1213,36 +1126,33 @@ p = p - 1; begin
|
|
1213
1126
|
end
|
1214
1127
|
end
|
1215
1128
|
end
|
1216
|
-
when
|
1217
|
-
# line 208 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1129
|
+
when 76 then
|
1218
1130
|
begin
|
1219
1131
|
te = p
|
1220
|
-
p = p - 1; begin
|
1132
|
+
p = p - 1; begin
|
1221
1133
|
emit(:set, :open, '[')
|
1222
1134
|
begin
|
1223
1135
|
stack[top] = cs
|
1224
1136
|
top+= 1
|
1225
|
-
cs =
|
1137
|
+
cs = 89
|
1226
1138
|
_goto_level = _again
|
1227
1139
|
next
|
1228
1140
|
end
|
1229
1141
|
|
1230
1142
|
end
|
1231
1143
|
end
|
1232
|
-
when
|
1233
|
-
# line 242 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1144
|
+
when 71 then
|
1234
1145
|
begin
|
1235
1146
|
te = p
|
1236
|
-
p = p - 1; begin
|
1147
|
+
p = p - 1; begin
|
1237
1148
|
text = copy(data, ts, te)
|
1238
1149
|
emit(:literal, :literal, text)
|
1239
1150
|
end
|
1240
1151
|
end
|
1241
|
-
when
|
1242
|
-
# line 188 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1152
|
+
when 17 then
|
1243
1153
|
begin
|
1244
1154
|
begin p = ((te))-1; end
|
1245
|
-
begin
|
1155
|
+
begin
|
1246
1156
|
# ranges cant start with the opening bracket, a subset, or
|
1247
1157
|
# intersection/negation/range operators
|
1248
1158
|
if prev_token[0] == :set
|
@@ -1252,37 +1162,34 @@ p = p - 1; begin
|
|
1252
1162
|
end
|
1253
1163
|
end
|
1254
1164
|
end
|
1255
|
-
when
|
1256
|
-
# line 208 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1165
|
+
when 20 then
|
1257
1166
|
begin
|
1258
1167
|
begin p = ((te))-1; end
|
1259
|
-
begin
|
1168
|
+
begin
|
1260
1169
|
emit(:set, :open, '[')
|
1261
1170
|
begin
|
1262
1171
|
stack[top] = cs
|
1263
1172
|
top+= 1
|
1264
|
-
cs =
|
1173
|
+
cs = 89
|
1265
1174
|
_goto_level = _again
|
1266
1175
|
next
|
1267
1176
|
end
|
1268
1177
|
|
1269
1178
|
end
|
1270
1179
|
end
|
1271
|
-
when
|
1272
|
-
# line 242 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1180
|
+
when 15 then
|
1273
1181
|
begin
|
1274
1182
|
begin p = ((te))-1; end
|
1275
|
-
begin
|
1183
|
+
begin
|
1276
1184
|
text = copy(data, ts, te)
|
1277
1185
|
emit(:literal, :literal, text)
|
1278
1186
|
end
|
1279
1187
|
end
|
1280
|
-
when
|
1281
|
-
# line 252 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1188
|
+
when 80 then
|
1282
1189
|
begin
|
1283
1190
|
te = p+1
|
1284
|
-
begin
|
1285
|
-
emit(:escape, :octal, copy(data, ts-1,
|
1191
|
+
begin
|
1192
|
+
emit(:escape, :octal, copy(data, ts-1,te))
|
1286
1193
|
begin
|
1287
1194
|
top -= 1
|
1288
1195
|
cs = stack[top]
|
@@ -1292,29 +1199,27 @@ te = p+1
|
|
1292
1199
|
|
1293
1200
|
end
|
1294
1201
|
end
|
1295
|
-
when
|
1296
|
-
# line 258 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1202
|
+
when 78 then
|
1297
1203
|
begin
|
1298
1204
|
te = p+1
|
1299
|
-
begin
|
1205
|
+
begin
|
1300
1206
|
p = p - 1;
|
1301
|
-
cs =
|
1207
|
+
cs = 89;
|
1302
1208
|
begin
|
1303
1209
|
stack[top] = cs
|
1304
1210
|
top+= 1
|
1305
|
-
cs =
|
1211
|
+
cs = 99
|
1306
1212
|
_goto_level = _again
|
1307
1213
|
next
|
1308
1214
|
end
|
1309
1215
|
|
1310
1216
|
end
|
1311
1217
|
end
|
1312
|
-
when
|
1313
|
-
# line 267 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1218
|
+
when 77 then
|
1314
1219
|
begin
|
1315
1220
|
te = p+1
|
1316
|
-
begin
|
1317
|
-
emit(:escape, :literal, copy(data, ts-1,
|
1221
|
+
begin
|
1222
|
+
emit(:escape, :literal, copy(data, ts-1,te))
|
1318
1223
|
begin
|
1319
1224
|
top -= 1
|
1320
1225
|
cs = stack[top]
|
@@ -1324,12 +1229,11 @@ te = p+1
|
|
1324
1229
|
|
1325
1230
|
end
|
1326
1231
|
end
|
1327
|
-
when
|
1328
|
-
# line 252 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1232
|
+
when 79 then
|
1329
1233
|
begin
|
1330
1234
|
te = p
|
1331
|
-
p = p - 1; begin
|
1332
|
-
emit(:escape, :octal, copy(data, ts-1,
|
1235
|
+
p = p - 1; begin
|
1236
|
+
emit(:escape, :octal, copy(data, ts-1,te))
|
1333
1237
|
begin
|
1334
1238
|
top -= 1
|
1335
1239
|
cs = stack[top]
|
@@ -1339,12 +1243,11 @@ p = p - 1; begin
|
|
1339
1243
|
|
1340
1244
|
end
|
1341
1245
|
end
|
1342
|
-
when
|
1343
|
-
# line 277 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1246
|
+
when 84 then
|
1344
1247
|
begin
|
1345
1248
|
te = p+1
|
1346
|
-
begin
|
1347
|
-
text = copy(data, ts-1,
|
1249
|
+
begin
|
1250
|
+
text = copy(data, ts-1,te)
|
1348
1251
|
emit(:backref, :number, text)
|
1349
1252
|
begin
|
1350
1253
|
top -= 1
|
@@ -1355,12 +1258,11 @@ te = p+1
|
|
1355
1258
|
|
1356
1259
|
end
|
1357
1260
|
end
|
1358
|
-
when
|
1359
|
-
# line 283 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1261
|
+
when 91 then
|
1360
1262
|
begin
|
1361
1263
|
te = p+1
|
1362
|
-
begin
|
1363
|
-
emit(:escape, :octal, copy(data, ts-1,
|
1264
|
+
begin
|
1265
|
+
emit(:escape, :octal, copy(data, ts-1,te))
|
1364
1266
|
begin
|
1365
1267
|
top -= 1
|
1366
1268
|
cs = stack[top]
|
@@ -1370,12 +1272,11 @@ te = p+1
|
|
1370
1272
|
|
1371
1273
|
end
|
1372
1274
|
end
|
1373
|
-
when
|
1374
|
-
# line 288 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1275
|
+
when 81 then
|
1375
1276
|
begin
|
1376
1277
|
te = p+1
|
1377
|
-
begin
|
1378
|
-
case text = copy(data, ts-1,
|
1278
|
+
begin
|
1279
|
+
case text = copy(data, ts-1,te)
|
1379
1280
|
when '\.'; emit(:escape, :dot, text)
|
1380
1281
|
when '\|'; emit(:escape, :alternation, text)
|
1381
1282
|
when '\^'; emit(:escape, :bol, text)
|
@@ -1401,14 +1302,13 @@ te = p+1
|
|
1401
1302
|
|
1402
1303
|
end
|
1403
1304
|
end
|
1404
|
-
when
|
1405
|
-
# line 309 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1305
|
+
when 87 then
|
1406
1306
|
begin
|
1407
1307
|
te = p+1
|
1408
|
-
begin
|
1308
|
+
begin
|
1409
1309
|
# \b is emitted as backspace only when inside a character set, otherwise
|
1410
1310
|
# it is a word boundary anchor. A syntax might "normalize" it if needed.
|
1411
|
-
case text = copy(data, ts-1,
|
1311
|
+
case text = copy(data, ts-1,te)
|
1412
1312
|
when '\a'; emit(:escape, :bell, text)
|
1413
1313
|
when '\b'; emit(:escape, :backspace, text)
|
1414
1314
|
when '\e'; emit(:escape, :escape, text)
|
@@ -1427,12 +1327,11 @@ te = p+1
|
|
1427
1327
|
|
1428
1328
|
end
|
1429
1329
|
end
|
1430
|
-
when
|
1431
|
-
# line 325 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1330
|
+
when 29 then
|
1432
1331
|
begin
|
1433
1332
|
te = p+1
|
1434
|
-
begin
|
1435
|
-
text = copy(data, ts-1,
|
1333
|
+
begin
|
1334
|
+
text = copy(data, ts-1,te)
|
1436
1335
|
if text[2] == '{'
|
1437
1336
|
emit(:escape, :codepoint_list, text)
|
1438
1337
|
else
|
@@ -1447,12 +1346,11 @@ te = p+1
|
|
1447
1346
|
|
1448
1347
|
end
|
1449
1348
|
end
|
1450
|
-
when
|
1451
|
-
# line 335 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1349
|
+
when 97 then
|
1452
1350
|
begin
|
1453
1351
|
te = p+1
|
1454
|
-
begin
|
1455
|
-
emit(:escape, :hex, copy(data, ts-1,
|
1352
|
+
begin
|
1353
|
+
emit(:escape, :hex, copy(data, ts-1,te))
|
1456
1354
|
begin
|
1457
1355
|
top -= 1
|
1458
1356
|
cs = stack[top]
|
@@ -1462,11 +1360,10 @@ te = p+1
|
|
1462
1360
|
|
1463
1361
|
end
|
1464
1362
|
end
|
1465
|
-
when
|
1466
|
-
# line 344 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1363
|
+
when 25 then
|
1467
1364
|
begin
|
1468
1365
|
te = p+1
|
1469
|
-
begin
|
1366
|
+
begin
|
1470
1367
|
emit_meta_control_sequence(data, ts, te, :control)
|
1471
1368
|
begin
|
1472
1369
|
top -= 1
|
@@ -1477,11 +1374,10 @@ te = p+1
|
|
1477
1374
|
|
1478
1375
|
end
|
1479
1376
|
end
|
1480
|
-
when
|
1481
|
-
# line 349 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1377
|
+
when 27 then
|
1482
1378
|
begin
|
1483
1379
|
te = p+1
|
1484
|
-
begin
|
1380
|
+
begin
|
1485
1381
|
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
1486
1382
|
begin
|
1487
1383
|
top -= 1
|
@@ -1492,46 +1388,43 @@ te = p+1
|
|
1492
1388
|
|
1493
1389
|
end
|
1494
1390
|
end
|
1495
|
-
when
|
1496
|
-
# line 354 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1391
|
+
when 85 then
|
1497
1392
|
begin
|
1498
1393
|
te = p+1
|
1499
|
-
begin
|
1394
|
+
begin
|
1500
1395
|
p = p - 1;
|
1501
|
-
cs = ((in_set? ?
|
1396
|
+
cs = ((in_set? ? 89 : 71));
|
1502
1397
|
begin
|
1503
1398
|
stack[top] = cs
|
1504
1399
|
top+= 1
|
1505
|
-
cs =
|
1400
|
+
cs = 87
|
1506
1401
|
_goto_level = _again
|
1507
1402
|
next
|
1508
1403
|
end
|
1509
1404
|
|
1510
1405
|
end
|
1511
1406
|
end
|
1512
|
-
when
|
1513
|
-
# line 360 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1407
|
+
when 86 then
|
1514
1408
|
begin
|
1515
1409
|
te = p+1
|
1516
|
-
begin
|
1410
|
+
begin
|
1517
1411
|
p = p - 1;
|
1518
|
-
cs = ((in_set? ?
|
1412
|
+
cs = ((in_set? ? 89 : 71));
|
1519
1413
|
begin
|
1520
1414
|
stack[top] = cs
|
1521
1415
|
top+= 1
|
1522
|
-
cs =
|
1416
|
+
cs = 88
|
1523
1417
|
_goto_level = _again
|
1524
1418
|
next
|
1525
1419
|
end
|
1526
1420
|
|
1527
1421
|
end
|
1528
1422
|
end
|
1529
|
-
when
|
1530
|
-
# line 366 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1423
|
+
when 23 then
|
1531
1424
|
begin
|
1532
1425
|
te = p+1
|
1533
|
-
begin
|
1534
|
-
emit(:escape, :literal, copy(data, ts-1,
|
1426
|
+
begin
|
1427
|
+
emit(:escape, :literal, copy(data, ts-1,te))
|
1535
1428
|
begin
|
1536
1429
|
top -= 1
|
1537
1430
|
cs = stack[top]
|
@@ -1541,12 +1434,11 @@ te = p+1
|
|
1541
1434
|
|
1542
1435
|
end
|
1543
1436
|
end
|
1544
|
-
when
|
1545
|
-
# line 283 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1437
|
+
when 90 then
|
1546
1438
|
begin
|
1547
1439
|
te = p
|
1548
|
-
p = p - 1; begin
|
1549
|
-
emit(:escape, :octal, copy(data, ts-1,
|
1440
|
+
p = p - 1; begin
|
1441
|
+
emit(:escape, :octal, copy(data, ts-1,te))
|
1550
1442
|
begin
|
1551
1443
|
top -= 1
|
1552
1444
|
cs = stack[top]
|
@@ -1556,12 +1448,11 @@ p = p - 1; begin
|
|
1556
1448
|
|
1557
1449
|
end
|
1558
1450
|
end
|
1559
|
-
when
|
1560
|
-
# line 335 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1451
|
+
when 96 then
|
1561
1452
|
begin
|
1562
1453
|
te = p
|
1563
|
-
p = p - 1; begin
|
1564
|
-
emit(:escape, :hex, copy(data, ts-1,
|
1454
|
+
p = p - 1; begin
|
1455
|
+
emit(:escape, :hex, copy(data, ts-1,te))
|
1565
1456
|
begin
|
1566
1457
|
top -= 1
|
1567
1458
|
cs = stack[top]
|
@@ -1571,11 +1462,10 @@ p = p - 1; begin
|
|
1571
1462
|
|
1572
1463
|
end
|
1573
1464
|
end
|
1574
|
-
when
|
1575
|
-
# line 344 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1465
|
+
when 93 then
|
1576
1466
|
begin
|
1577
1467
|
te = p
|
1578
|
-
p = p - 1; begin
|
1468
|
+
p = p - 1; begin
|
1579
1469
|
emit_meta_control_sequence(data, ts, te, :control)
|
1580
1470
|
begin
|
1581
1471
|
top -= 1
|
@@ -1586,11 +1476,10 @@ p = p - 1; begin
|
|
1586
1476
|
|
1587
1477
|
end
|
1588
1478
|
end
|
1589
|
-
when
|
1590
|
-
# line 349 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1479
|
+
when 95 then
|
1591
1480
|
begin
|
1592
1481
|
te = p
|
1593
|
-
p = p - 1; begin
|
1482
|
+
p = p - 1; begin
|
1594
1483
|
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
1595
1484
|
begin
|
1596
1485
|
top -= 1
|
@@ -1601,12 +1490,11 @@ p = p - 1; begin
|
|
1601
1490
|
|
1602
1491
|
end
|
1603
1492
|
end
|
1604
|
-
when
|
1605
|
-
# line 366 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1493
|
+
when 88 then
|
1606
1494
|
begin
|
1607
1495
|
te = p
|
1608
|
-
p = p - 1; begin
|
1609
|
-
emit(:escape, :literal, copy(data, ts-1,
|
1496
|
+
p = p - 1; begin
|
1497
|
+
emit(:escape, :literal, copy(data, ts-1,te))
|
1610
1498
|
begin
|
1611
1499
|
top -= 1
|
1612
1500
|
cs = stack[top]
|
@@ -1616,12 +1504,11 @@ p = p - 1; begin
|
|
1616
1504
|
|
1617
1505
|
end
|
1618
1506
|
end
|
1619
|
-
when
|
1620
|
-
# line 366 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1507
|
+
when 22 then
|
1621
1508
|
begin
|
1622
1509
|
begin p = ((te))-1; end
|
1623
|
-
begin
|
1624
|
-
emit(:escape, :literal, copy(data, ts-1,
|
1510
|
+
begin
|
1511
|
+
emit(:escape, :literal, copy(data, ts-1,te))
|
1625
1512
|
begin
|
1626
1513
|
top -= 1
|
1627
1514
|
cs = stack[top]
|
@@ -1631,14 +1518,13 @@ p = p - 1; begin
|
|
1631
1518
|
|
1632
1519
|
end
|
1633
1520
|
end
|
1634
|
-
when
|
1635
|
-
# line 1 "NONE"
|
1521
|
+
when 89 then
|
1636
1522
|
begin
|
1637
1523
|
case act
|
1638
1524
|
when 17 then
|
1639
1525
|
begin begin p = ((te))-1; end
|
1640
1526
|
|
1641
|
-
text = copy(data, ts-1,
|
1527
|
+
text = copy(data, ts-1,te)
|
1642
1528
|
emit(:backref, :number, text)
|
1643
1529
|
begin
|
1644
1530
|
top -= 1
|
@@ -1651,7 +1537,7 @@ p = p - 1; begin
|
|
1651
1537
|
when 18 then
|
1652
1538
|
begin begin p = ((te))-1; end
|
1653
1539
|
|
1654
|
-
emit(:escape, :octal, copy(data, ts-1,
|
1540
|
+
emit(:escape, :octal, copy(data, ts-1,te))
|
1655
1541
|
begin
|
1656
1542
|
top -= 1
|
1657
1543
|
cs = stack[top]
|
@@ -1660,79 +1546,73 @@ p = p - 1; begin
|
|
1660
1546
|
end
|
1661
1547
|
|
1662
1548
|
end
|
1663
|
-
end
|
1549
|
+
end
|
1664
1550
|
end
|
1665
|
-
when
|
1666
|
-
# line 376 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1551
|
+
when 32 then
|
1667
1552
|
begin
|
1668
1553
|
te = p+1
|
1669
|
-
begin
|
1554
|
+
begin
|
1670
1555
|
text = copy(data, ts, te-1)
|
1671
1556
|
emit(:conditional, :condition, text)
|
1672
1557
|
emit(:conditional, :condition_close, ')')
|
1673
1558
|
end
|
1674
1559
|
end
|
1675
|
-
when
|
1676
|
-
# line 382 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1560
|
+
when 98 then
|
1677
1561
|
begin
|
1678
1562
|
te = p+1
|
1679
|
-
begin
|
1563
|
+
begin
|
1680
1564
|
p = p - 1;
|
1681
1565
|
begin
|
1682
1566
|
stack[top] = cs
|
1683
1567
|
top+= 1
|
1684
|
-
cs =
|
1568
|
+
cs = 71
|
1685
1569
|
_goto_level = _again
|
1686
1570
|
next
|
1687
1571
|
end
|
1688
1572
|
|
1689
1573
|
end
|
1690
1574
|
end
|
1691
|
-
when
|
1692
|
-
# line 382 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1575
|
+
when 99 then
|
1693
1576
|
begin
|
1694
1577
|
te = p
|
1695
|
-
p = p - 1; begin
|
1578
|
+
p = p - 1; begin
|
1696
1579
|
p = p - 1;
|
1697
1580
|
begin
|
1698
1581
|
stack[top] = cs
|
1699
1582
|
top+= 1
|
1700
|
-
cs =
|
1583
|
+
cs = 71
|
1701
1584
|
_goto_level = _again
|
1702
1585
|
next
|
1703
1586
|
end
|
1704
1587
|
|
1705
1588
|
end
|
1706
1589
|
end
|
1707
|
-
when
|
1708
|
-
# line 382 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1590
|
+
when 31 then
|
1709
1591
|
begin
|
1710
1592
|
begin p = ((te))-1; end
|
1711
|
-
begin
|
1593
|
+
begin
|
1712
1594
|
p = p - 1;
|
1713
1595
|
begin
|
1714
1596
|
stack[top] = cs
|
1715
1597
|
top+= 1
|
1716
|
-
cs =
|
1598
|
+
cs = 71
|
1717
1599
|
_goto_level = _again
|
1718
1600
|
next
|
1719
1601
|
end
|
1720
1602
|
|
1721
1603
|
end
|
1722
1604
|
end
|
1723
|
-
when
|
1724
|
-
# line 395 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1605
|
+
when 38 then
|
1725
1606
|
begin
|
1726
1607
|
te = p+1
|
1727
|
-
begin
|
1608
|
+
begin
|
1728
1609
|
emit(:meta, :dot, copy(data, ts, te))
|
1729
1610
|
end
|
1730
1611
|
end
|
1731
|
-
when
|
1732
|
-
# line 399 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1612
|
+
when 43 then
|
1733
1613
|
begin
|
1734
1614
|
te = p+1
|
1735
|
-
begin
|
1615
|
+
begin
|
1736
1616
|
if conditional_stack.last == group_depth
|
1737
1617
|
emit(:conditional, :separator, copy(data, ts, te))
|
1738
1618
|
else
|
@@ -1740,35 +1620,31 @@ te = p+1
|
|
1740
1620
|
end
|
1741
1621
|
end
|
1742
1622
|
end
|
1743
|
-
when
|
1744
|
-
# line 409 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1623
|
+
when 42 then
|
1745
1624
|
begin
|
1746
1625
|
te = p+1
|
1747
|
-
begin
|
1626
|
+
begin
|
1748
1627
|
emit(:anchor, :bol, copy(data, ts, te))
|
1749
1628
|
end
|
1750
1629
|
end
|
1751
|
-
when
|
1752
|
-
# line 413 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1630
|
+
when 35 then
|
1753
1631
|
begin
|
1754
1632
|
te = p+1
|
1755
|
-
begin
|
1633
|
+
begin
|
1756
1634
|
emit(:anchor, :eol, copy(data, ts, te))
|
1757
1635
|
end
|
1758
1636
|
end
|
1759
|
-
when
|
1760
|
-
# line 417 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1637
|
+
when 62 then
|
1761
1638
|
begin
|
1762
1639
|
te = p+1
|
1763
|
-
begin
|
1640
|
+
begin
|
1764
1641
|
emit(:keep, :mark, copy(data, ts, te))
|
1765
1642
|
end
|
1766
1643
|
end
|
1767
|
-
when
|
1768
|
-
# line 421 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1644
|
+
when 61 then
|
1769
1645
|
begin
|
1770
1646
|
te = p+1
|
1771
|
-
begin
|
1647
|
+
begin
|
1772
1648
|
case text = copy(data, ts, te)
|
1773
1649
|
when '\A'; emit(:anchor, :bos, text)
|
1774
1650
|
when '\z'; emit(:anchor, :eos, text)
|
@@ -1779,19 +1655,17 @@ te = p+1
|
|
1779
1655
|
end
|
1780
1656
|
end
|
1781
1657
|
end
|
1782
|
-
when
|
1783
|
-
# line 432 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1658
|
+
when 41 then
|
1784
1659
|
begin
|
1785
1660
|
te = p+1
|
1786
|
-
begin
|
1661
|
+
begin
|
1787
1662
|
append_literal(data, ts, te)
|
1788
1663
|
end
|
1789
1664
|
end
|
1790
|
-
when
|
1791
|
-
# line 447 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1665
|
+
when 51 then
|
1792
1666
|
begin
|
1793
1667
|
te = p+1
|
1794
|
-
begin
|
1668
|
+
begin
|
1795
1669
|
text = copy(data, ts, te)
|
1796
1670
|
|
1797
1671
|
conditional_stack << group_depth
|
@@ -1801,30 +1675,28 @@ te = p+1
|
|
1801
1675
|
begin
|
1802
1676
|
stack[top] = cs
|
1803
1677
|
top+= 1
|
1804
|
-
cs =
|
1678
|
+
cs = 113
|
1805
1679
|
_goto_level = _again
|
1806
1680
|
next
|
1807
1681
|
end
|
1808
1682
|
|
1809
1683
|
end
|
1810
1684
|
end
|
1811
|
-
when
|
1812
|
-
# line 478 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1685
|
+
when 52 then
|
1813
1686
|
begin
|
1814
1687
|
te = p+1
|
1815
|
-
begin
|
1688
|
+
begin
|
1816
1689
|
text = copy(data, ts, te)
|
1817
1690
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
1818
|
-
|
1691
|
+
raise ValidationError.for(:group_option, $1 || "-#{$2}", text)
|
1819
1692
|
end
|
1820
1693
|
emit_options(text)
|
1821
1694
|
end
|
1822
1695
|
end
|
1823
|
-
when
|
1824
|
-
# line 492 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1696
|
+
when 6 then
|
1825
1697
|
begin
|
1826
1698
|
te = p+1
|
1827
|
-
begin
|
1699
|
+
begin
|
1828
1700
|
case text = copy(data, ts, te)
|
1829
1701
|
when '(?='; emit(:assertion, :lookahead, text)
|
1830
1702
|
when '(?!'; emit(:assertion, :nlookahead, text)
|
@@ -1833,18 +1705,17 @@ te = p+1
|
|
1833
1705
|
end
|
1834
1706
|
end
|
1835
1707
|
end
|
1836
|
-
when
|
1837
|
-
# line 509 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1708
|
+
when 5 then
|
1838
1709
|
begin
|
1839
1710
|
te = p+1
|
1840
|
-
begin
|
1711
|
+
begin
|
1841
1712
|
case text = copy(data, ts, te)
|
1842
1713
|
when '(?:'; emit(:group, :passive, text)
|
1843
1714
|
when '(?>'; emit(:group, :atomic, text)
|
1844
1715
|
when '(?~'; emit(:group, :absence, text)
|
1845
1716
|
|
1846
1717
|
when /^\(\?(?:<>|'')/
|
1847
|
-
|
1718
|
+
raise ValidationError.for(:group, 'named group', 'name is empty')
|
1848
1719
|
|
1849
1720
|
when /^\(\?<[^>]+>/
|
1850
1721
|
emit(:group, :named_ab, text)
|
@@ -1855,49 +1726,46 @@ te = p+1
|
|
1855
1726
|
end
|
1856
1727
|
end
|
1857
1728
|
end
|
1858
|
-
when
|
1859
|
-
# line 550 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1729
|
+
when 10 then
|
1860
1730
|
begin
|
1861
1731
|
te = p+1
|
1862
|
-
begin
|
1732
|
+
begin
|
1863
1733
|
case text = copy(data, ts, te)
|
1864
|
-
when /^\\k(
|
1865
|
-
validation_error(:backref, 'backreference', 'ref ID is empty')
|
1866
|
-
when /^\\k(.)[^\p{digit}\-][^+\-]*\D$/
|
1734
|
+
when /^\\k(.)[^0-9\-][^+\-]*['>]$/
|
1867
1735
|
emit(:backref, $1 == '<' ? :name_ref_ab : :name_ref_sq, text)
|
1868
|
-
when /^\\k(.)\d
|
1736
|
+
when /^\\k(.)[1-9]\d*['>]$/
|
1869
1737
|
emit(:backref, $1 == '<' ? :number_ref_ab : :number_ref_sq, text)
|
1870
|
-
when /^\\k(.)
|
1738
|
+
when /^\\k(.)-[1-9]\d*['>]$/
|
1871
1739
|
emit(:backref, $1 == '<' ? :number_rel_ref_ab : :number_rel_ref_sq, text)
|
1872
|
-
when /^\\k(.)[
|
1740
|
+
when /^\\k(.)[^0-9\-].*[+\-]\d+['>]$/
|
1873
1741
|
emit(:backref, $1 == '<' ? :name_recursion_ref_ab : :name_recursion_ref_sq, text)
|
1874
|
-
when /^\\k(.)
|
1742
|
+
when /^\\k(.)-?[1-9]\d*[+\-]\d+['>]$/
|
1875
1743
|
emit(:backref, $1 == '<' ? :number_recursion_ref_ab : :number_recursion_ref_sq, text)
|
1744
|
+
else
|
1745
|
+
raise ValidationError.for(:backref, 'backreference', 'invalid ref ID')
|
1876
1746
|
end
|
1877
1747
|
end
|
1878
1748
|
end
|
1879
|
-
when
|
1880
|
-
# line 569 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1749
|
+
when 9 then
|
1881
1750
|
begin
|
1882
1751
|
te = p+1
|
1883
|
-
begin
|
1752
|
+
begin
|
1884
1753
|
case text = copy(data, ts, te)
|
1885
|
-
when /^\\g(
|
1886
|
-
validation_error(:backref, 'subexpression call', 'ref ID is empty')
|
1887
|
-
when /^\\g(.)[^\p{digit}+\->][^+\-]*/
|
1754
|
+
when /^\\g(.)[^0-9+\-].*['>]$/
|
1888
1755
|
emit(:backref, $1 == '<' ? :name_call_ab : :name_call_sq, text)
|
1889
|
-
when /^\\g(.)\d
|
1756
|
+
when /^\\g(.)\d+['>]$/
|
1890
1757
|
emit(:backref, $1 == '<' ? :number_call_ab : :number_call_sq, text)
|
1891
1758
|
when /^\\g(.)[+-]\d+/
|
1892
1759
|
emit(:backref, $1 == '<' ? :number_rel_call_ab : :number_rel_call_sq, text)
|
1760
|
+
else
|
1761
|
+
raise ValidationError.for(:backref, 'subexpression call', 'invalid ref ID')
|
1893
1762
|
end
|
1894
1763
|
end
|
1895
1764
|
end
|
1896
|
-
when
|
1897
|
-
# line 585 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1765
|
+
when 59 then
|
1898
1766
|
begin
|
1899
1767
|
te = p+1
|
1900
|
-
begin
|
1768
|
+
begin
|
1901
1769
|
case text = copy(data, ts, te)
|
1902
1770
|
when '?' ; emit(:quantifier, :zero_or_one, text)
|
1903
1771
|
when '??'; emit(:quantifier, :zero_or_one_reluctant, text)
|
@@ -1905,11 +1773,10 @@ te = p+1
|
|
1905
1773
|
end
|
1906
1774
|
end
|
1907
1775
|
end
|
1908
|
-
when
|
1909
|
-
# line 593 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1776
|
+
when 55 then
|
1910
1777
|
begin
|
1911
1778
|
te = p+1
|
1912
|
-
begin
|
1779
|
+
begin
|
1913
1780
|
case text = copy(data, ts, te)
|
1914
1781
|
when '*' ; emit(:quantifier, :zero_or_more, text)
|
1915
1782
|
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text)
|
@@ -1917,11 +1784,10 @@ te = p+1
|
|
1917
1784
|
end
|
1918
1785
|
end
|
1919
1786
|
end
|
1920
|
-
when
|
1921
|
-
# line 601 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1787
|
+
when 57 then
|
1922
1788
|
begin
|
1923
1789
|
te = p+1
|
1924
|
-
begin
|
1790
|
+
begin
|
1925
1791
|
case text = copy(data, ts, te)
|
1926
1792
|
when '+' ; emit(:quantifier, :one_or_more, text)
|
1927
1793
|
when '+?'; emit(:quantifier, :one_or_more_reluctant, text)
|
@@ -1929,19 +1795,17 @@ te = p+1
|
|
1929
1795
|
end
|
1930
1796
|
end
|
1931
1797
|
end
|
1932
|
-
when
|
1933
|
-
# line 609 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1798
|
+
when 12 then
|
1934
1799
|
begin
|
1935
1800
|
te = p+1
|
1936
|
-
begin
|
1801
|
+
begin
|
1937
1802
|
emit(:quantifier, :interval, copy(data, ts, te))
|
1938
1803
|
end
|
1939
1804
|
end
|
1940
|
-
when
|
1941
|
-
# line 624 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1805
|
+
when 47 then
|
1942
1806
|
begin
|
1943
1807
|
te = p+1
|
1944
|
-
begin
|
1808
|
+
begin
|
1945
1809
|
if free_spacing
|
1946
1810
|
emit(:free_space, :comment, copy(data, ts, te))
|
1947
1811
|
else
|
@@ -1952,23 +1816,21 @@ te = p+1
|
|
1952
1816
|
end
|
1953
1817
|
end
|
1954
1818
|
end
|
1955
|
-
when
|
1956
|
-
# line 478 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1819
|
+
when 50 then
|
1957
1820
|
begin
|
1958
1821
|
te = p
|
1959
|
-
p = p - 1; begin
|
1822
|
+
p = p - 1; begin
|
1960
1823
|
text = copy(data, ts, te)
|
1961
1824
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
1962
|
-
|
1825
|
+
raise ValidationError.for(:group_option, $1 || "-#{$2}", text)
|
1963
1826
|
end
|
1964
1827
|
emit_options(text)
|
1965
1828
|
end
|
1966
1829
|
end
|
1967
|
-
when
|
1968
|
-
# line 492 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1830
|
+
when 53 then
|
1969
1831
|
begin
|
1970
1832
|
te = p
|
1971
|
-
p = p - 1; begin
|
1833
|
+
p = p - 1; begin
|
1972
1834
|
case text = copy(data, ts, te)
|
1973
1835
|
when '(?='; emit(:assertion, :lookahead, text)
|
1974
1836
|
when '(?!'; emit(:assertion, :nlookahead, text)
|
@@ -1977,20 +1839,18 @@ p = p - 1; begin
|
|
1977
1839
|
end
|
1978
1840
|
end
|
1979
1841
|
end
|
1980
|
-
when
|
1981
|
-
# line 527 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1842
|
+
when 48 then
|
1982
1843
|
begin
|
1983
1844
|
te = p
|
1984
|
-
p = p - 1; begin
|
1845
|
+
p = p - 1; begin
|
1985
1846
|
text = copy(data, ts, te)
|
1986
1847
|
emit(:group, :capture, text)
|
1987
1848
|
end
|
1988
1849
|
end
|
1989
|
-
when
|
1990
|
-
# line 585 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1850
|
+
when 58 then
|
1991
1851
|
begin
|
1992
1852
|
te = p
|
1993
|
-
p = p - 1; begin
|
1853
|
+
p = p - 1; begin
|
1994
1854
|
case text = copy(data, ts, te)
|
1995
1855
|
when '?' ; emit(:quantifier, :zero_or_one, text)
|
1996
1856
|
when '??'; emit(:quantifier, :zero_or_one_reluctant, text)
|
@@ -1998,11 +1858,10 @@ p = p - 1; begin
|
|
1998
1858
|
end
|
1999
1859
|
end
|
2000
1860
|
end
|
2001
|
-
when
|
2002
|
-
# line 593 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1861
|
+
when 54 then
|
2003
1862
|
begin
|
2004
1863
|
te = p
|
2005
|
-
p = p - 1; begin
|
1864
|
+
p = p - 1; begin
|
2006
1865
|
case text = copy(data, ts, te)
|
2007
1866
|
when '*' ; emit(:quantifier, :zero_or_more, text)
|
2008
1867
|
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text)
|
@@ -2010,11 +1869,10 @@ p = p - 1; begin
|
|
2010
1869
|
end
|
2011
1870
|
end
|
2012
1871
|
end
|
2013
|
-
when
|
2014
|
-
# line 601 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1872
|
+
when 56 then
|
2015
1873
|
begin
|
2016
1874
|
te = p
|
2017
|
-
p = p - 1; begin
|
1875
|
+
p = p - 1; begin
|
2018
1876
|
case text = copy(data, ts, te)
|
2019
1877
|
when '+' ; emit(:quantifier, :one_or_more, text)
|
2020
1878
|
when '+?'; emit(:quantifier, :one_or_more_reluctant, text)
|
@@ -2022,34 +1880,31 @@ p = p - 1; begin
|
|
2022
1880
|
end
|
2023
1881
|
end
|
2024
1882
|
end
|
2025
|
-
when
|
2026
|
-
# line 614 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1883
|
+
when 63 then
|
2027
1884
|
begin
|
2028
1885
|
te = p
|
2029
|
-
p = p - 1; begin
|
1886
|
+
p = p - 1; begin
|
2030
1887
|
append_literal(data, ts, te)
|
2031
1888
|
end
|
2032
1889
|
end
|
2033
|
-
when
|
2034
|
-
# line 620 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1890
|
+
when 60 then
|
2035
1891
|
begin
|
2036
1892
|
te = p
|
2037
|
-
p = p - 1; begin
|
1893
|
+
p = p - 1; begin
|
2038
1894
|
begin
|
2039
1895
|
stack[top] = cs
|
2040
1896
|
top+= 1
|
2041
|
-
cs =
|
1897
|
+
cs = 99
|
2042
1898
|
_goto_level = _again
|
2043
1899
|
next
|
2044
1900
|
end
|
2045
1901
|
|
2046
1902
|
end
|
2047
1903
|
end
|
2048
|
-
when
|
2049
|
-
# line 624 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1904
|
+
when 46 then
|
2050
1905
|
begin
|
2051
1906
|
te = p
|
2052
|
-
p = p - 1; begin
|
1907
|
+
p = p - 1; begin
|
2053
1908
|
if free_spacing
|
2054
1909
|
emit(:free_space, :comment, copy(data, ts, te))
|
2055
1910
|
else
|
@@ -2060,11 +1915,10 @@ p = p - 1; begin
|
|
2060
1915
|
end
|
2061
1916
|
end
|
2062
1917
|
end
|
2063
|
-
when
|
2064
|
-
# line 634 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1918
|
+
when 45 then
|
2065
1919
|
begin
|
2066
1920
|
te = p
|
2067
|
-
p = p - 1; begin
|
1921
|
+
p = p - 1; begin
|
2068
1922
|
if free_spacing
|
2069
1923
|
emit(:free_space, :whitespace, copy(data, ts, te))
|
2070
1924
|
else
|
@@ -2072,43 +1926,39 @@ p = p - 1; begin
|
|
2072
1926
|
end
|
2073
1927
|
end
|
2074
1928
|
end
|
2075
|
-
when
|
2076
|
-
# line 645 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1929
|
+
when 44 then
|
2077
1930
|
begin
|
2078
1931
|
te = p
|
2079
|
-
p = p - 1; begin
|
1932
|
+
p = p - 1; begin
|
2080
1933
|
append_literal(data, ts, te)
|
2081
1934
|
end
|
2082
1935
|
end
|
2083
1936
|
when 3 then
|
2084
|
-
# line 478 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2085
1937
|
begin
|
2086
1938
|
begin p = ((te))-1; end
|
2087
|
-
begin
|
1939
|
+
begin
|
2088
1940
|
text = copy(data, ts, te)
|
2089
1941
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
2090
|
-
|
1942
|
+
raise ValidationError.for(:group_option, $1 || "-#{$2}", text)
|
2091
1943
|
end
|
2092
1944
|
emit_options(text)
|
2093
1945
|
end
|
2094
1946
|
end
|
2095
|
-
when
|
2096
|
-
# line 614 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1947
|
+
when 11 then
|
2097
1948
|
begin
|
2098
1949
|
begin p = ((te))-1; end
|
2099
|
-
begin
|
1950
|
+
begin
|
2100
1951
|
append_literal(data, ts, te)
|
2101
1952
|
end
|
2102
1953
|
end
|
2103
|
-
when
|
2104
|
-
# line 620 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
1954
|
+
when 8 then
|
2105
1955
|
begin
|
2106
1956
|
begin p = ((te))-1; end
|
2107
|
-
begin
|
1957
|
+
begin
|
2108
1958
|
begin
|
2109
1959
|
stack[top] = cs
|
2110
1960
|
top+= 1
|
2111
|
-
cs =
|
1961
|
+
cs = 99
|
2112
1962
|
_goto_level = _again
|
2113
1963
|
next
|
2114
1964
|
end
|
@@ -2116,7 +1966,6 @@ p = p - 1; begin
|
|
2116
1966
|
end
|
2117
1967
|
end
|
2118
1968
|
when 1 then
|
2119
|
-
# line 1 "NONE"
|
2120
1969
|
begin
|
2121
1970
|
case act
|
2122
1971
|
when 0 then
|
@@ -2131,7 +1980,7 @@ end
|
|
2131
1980
|
|
2132
1981
|
text = copy(data, ts, te)
|
2133
1982
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
2134
|
-
|
1983
|
+
raise ValidationError.for(:group_option, $1 || "-#{$2}", text)
|
2135
1984
|
end
|
2136
1985
|
emit_options(text)
|
2137
1986
|
end
|
@@ -2150,63 +1999,57 @@ end
|
|
2150
1999
|
|
2151
2000
|
append_literal(data, ts, te)
|
2152
2001
|
end
|
2153
|
-
end
|
2002
|
+
end
|
2154
2003
|
end
|
2155
|
-
when
|
2156
|
-
# line 135 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2004
|
+
when 75 then
|
2157
2005
|
begin
|
2158
2006
|
|
2159
|
-
text = copy(data, ts ? ts-1 : 0
|
2160
|
-
raise PrematureEndError.new(
|
2007
|
+
text = copy(data, ts ? ts-1 : 0,-1)
|
2008
|
+
raise PrematureEndError.new(text)
|
2161
2009
|
end
|
2162
|
-
# line 208 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2163
2010
|
begin
|
2164
2011
|
te = p
|
2165
|
-
p = p - 1; begin
|
2012
|
+
p = p - 1; begin
|
2166
2013
|
emit(:set, :open, '[')
|
2167
2014
|
begin
|
2168
2015
|
stack[top] = cs
|
2169
2016
|
top+= 1
|
2170
|
-
cs =
|
2017
|
+
cs = 89
|
2171
2018
|
_goto_level = _again
|
2172
2019
|
next
|
2173
2020
|
end
|
2174
2021
|
|
2175
2022
|
end
|
2176
2023
|
end
|
2177
|
-
when
|
2178
|
-
# line 135 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2024
|
+
when 19 then
|
2179
2025
|
begin
|
2180
2026
|
|
2181
|
-
text = copy(data, ts ? ts-1 : 0
|
2182
|
-
raise PrematureEndError.new(
|
2027
|
+
text = copy(data, ts ? ts-1 : 0,-1)
|
2028
|
+
raise PrematureEndError.new(text)
|
2183
2029
|
end
|
2184
|
-
# line 208 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2185
2030
|
begin
|
2186
2031
|
begin p = ((te))-1; end
|
2187
|
-
begin
|
2032
|
+
begin
|
2188
2033
|
emit(:set, :open, '[')
|
2189
2034
|
begin
|
2190
2035
|
stack[top] = cs
|
2191
2036
|
top+= 1
|
2192
|
-
cs =
|
2037
|
+
cs = 89
|
2193
2038
|
_goto_level = _again
|
2194
2039
|
next
|
2195
2040
|
end
|
2196
2041
|
|
2197
2042
|
end
|
2198
2043
|
end
|
2199
|
-
when
|
2200
|
-
# line 135 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2044
|
+
when 92 then
|
2201
2045
|
begin
|
2202
2046
|
|
2203
|
-
text = copy(data, ts ? ts-1 : 0
|
2204
|
-
raise PrematureEndError.new(
|
2047
|
+
text = copy(data, ts ? ts-1 : 0,-1)
|
2048
|
+
raise PrematureEndError.new(text)
|
2205
2049
|
end
|
2206
|
-
# line 344 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2207
2050
|
begin
|
2208
2051
|
te = p
|
2209
|
-
p = p - 1; begin
|
2052
|
+
p = p - 1; begin
|
2210
2053
|
emit_meta_control_sequence(data, ts, te, :control)
|
2211
2054
|
begin
|
2212
2055
|
top -= 1
|
@@ -2217,17 +2060,15 @@ p = p - 1; begin
|
|
2217
2060
|
|
2218
2061
|
end
|
2219
2062
|
end
|
2220
|
-
when
|
2221
|
-
# line 135 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2063
|
+
when 94 then
|
2222
2064
|
begin
|
2223
2065
|
|
2224
|
-
text = copy(data, ts ? ts-1 : 0
|
2225
|
-
raise PrematureEndError.new(
|
2066
|
+
text = copy(data, ts ? ts-1 : 0,-1)
|
2067
|
+
raise PrematureEndError.new(text)
|
2226
2068
|
end
|
2227
|
-
# line 349 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2228
2069
|
begin
|
2229
2070
|
te = p
|
2230
|
-
p = p - 1; begin
|
2071
|
+
p = p - 1; begin
|
2231
2072
|
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
2232
2073
|
begin
|
2233
2074
|
top -= 1
|
@@ -2238,17 +2079,15 @@ p = p - 1; begin
|
|
2238
2079
|
|
2239
2080
|
end
|
2240
2081
|
end
|
2241
|
-
when
|
2242
|
-
# line 135 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2082
|
+
when 26 then
|
2243
2083
|
begin
|
2244
2084
|
|
2245
|
-
text = copy(data, ts ? ts-1 : 0
|
2246
|
-
raise PrematureEndError.new(
|
2085
|
+
text = copy(data, ts ? ts-1 : 0,-1)
|
2086
|
+
raise PrematureEndError.new(text)
|
2247
2087
|
end
|
2248
|
-
# line 344 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2249
2088
|
begin
|
2250
2089
|
begin p = ((te))-1; end
|
2251
|
-
begin
|
2090
|
+
begin
|
2252
2091
|
emit_meta_control_sequence(data, ts, te, :control)
|
2253
2092
|
begin
|
2254
2093
|
top -= 1
|
@@ -2259,17 +2098,15 @@ p = p - 1; begin
|
|
2259
2098
|
|
2260
2099
|
end
|
2261
2100
|
end
|
2262
|
-
when
|
2263
|
-
# line 135 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2101
|
+
when 28 then
|
2264
2102
|
begin
|
2265
2103
|
|
2266
|
-
text = copy(data, ts ? ts-1 : 0
|
2267
|
-
raise PrematureEndError.new(
|
2104
|
+
text = copy(data, ts ? ts-1 : 0,-1)
|
2105
|
+
raise PrematureEndError.new(text)
|
2268
2106
|
end
|
2269
|
-
# line 349 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2270
2107
|
begin
|
2271
2108
|
begin p = ((te))-1; end
|
2272
|
-
begin
|
2109
|
+
begin
|
2273
2110
|
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
2274
2111
|
begin
|
2275
2112
|
top -= 1
|
@@ -2280,17 +2117,15 @@ p = p - 1; begin
|
|
2280
2117
|
|
2281
2118
|
end
|
2282
2119
|
end
|
2283
|
-
when
|
2284
|
-
# line 141 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2120
|
+
when 30 then
|
2285
2121
|
begin
|
2286
2122
|
|
2287
|
-
text = copy(data, ts ? ts-1 : 0
|
2288
|
-
|
2123
|
+
text = copy(data, ts ? ts-1 : 0,-1)
|
2124
|
+
raise ValidationError.for(:sequence, 'sequence', text)
|
2289
2125
|
end
|
2290
|
-
# line 340 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2291
2126
|
begin
|
2292
2127
|
te = p+1
|
2293
|
-
begin
|
2128
|
+
begin
|
2294
2129
|
begin
|
2295
2130
|
top -= 1
|
2296
2131
|
cs = stack[top]
|
@@ -2300,29 +2135,25 @@ te = p+1
|
|
2300
2135
|
|
2301
2136
|
end
|
2302
2137
|
end
|
2303
|
-
when
|
2304
|
-
# line 148 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2138
|
+
when 4 then
|
2305
2139
|
begin
|
2306
2140
|
self.group_depth = group_depth - 1 end
|
2307
|
-
# line 463 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2308
2141
|
begin
|
2309
2142
|
te = p+1
|
2310
|
-
begin
|
2143
|
+
begin
|
2311
2144
|
emit(:group, :comment, copy(data, ts, te))
|
2312
2145
|
end
|
2313
2146
|
end
|
2314
|
-
when
|
2315
|
-
# line 148 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2147
|
+
when 37 then
|
2316
2148
|
begin
|
2317
2149
|
self.group_depth = group_depth - 1 end
|
2318
|
-
# line 532 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2319
2150
|
begin
|
2320
2151
|
te = p+1
|
2321
|
-
begin
|
2152
|
+
begin
|
2322
2153
|
if conditional_stack.last == group_depth + 1
|
2323
2154
|
conditional_stack.pop
|
2324
2155
|
emit(:conditional, :close, ')')
|
2325
|
-
|
2156
|
+
elsif group_depth >= 0
|
2326
2157
|
if spacing_stack.length > 1 &&
|
2327
2158
|
spacing_stack.last[:depth] == group_depth + 1
|
2328
2159
|
spacing_stack.pop
|
@@ -2330,36 +2161,34 @@ te = p+1
|
|
2330
2161
|
end
|
2331
2162
|
|
2332
2163
|
emit(:group, :close, ')')
|
2164
|
+
else
|
2165
|
+
raise ValidationError.for(:group, 'group', 'unmatched close parenthesis')
|
2333
2166
|
end
|
2334
2167
|
end
|
2335
2168
|
end
|
2336
|
-
when
|
2337
|
-
# line 149 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2169
|
+
when 39 then
|
2338
2170
|
begin
|
2339
2171
|
self.set_depth = set_depth + 1 end
|
2340
|
-
# line 438 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2341
2172
|
begin
|
2342
2173
|
te = p+1
|
2343
|
-
begin
|
2174
|
+
begin
|
2344
2175
|
emit(:set, :open, copy(data, ts, te))
|
2345
2176
|
begin
|
2346
2177
|
stack[top] = cs
|
2347
2178
|
top+= 1
|
2348
|
-
cs =
|
2179
|
+
cs = 89
|
2349
2180
|
_goto_level = _again
|
2350
2181
|
next
|
2351
2182
|
end
|
2352
2183
|
|
2353
2184
|
end
|
2354
2185
|
end
|
2355
|
-
when
|
2356
|
-
# line 150 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2186
|
+
when 69 then
|
2357
2187
|
begin
|
2358
2188
|
self.set_depth = set_depth - 1 end
|
2359
|
-
# line 156 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2360
2189
|
begin
|
2361
2190
|
te = p+1
|
2362
|
-
begin
|
2191
|
+
begin
|
2363
2192
|
emit(:set, :close, copy(data, ts, te))
|
2364
2193
|
if in_set?
|
2365
2194
|
begin
|
@@ -2371,7 +2200,7 @@ te = p+1
|
|
2371
2200
|
|
2372
2201
|
else
|
2373
2202
|
begin
|
2374
|
-
cs =
|
2203
|
+
cs = 71
|
2375
2204
|
_goto_level = _again
|
2376
2205
|
next
|
2377
2206
|
end
|
@@ -2379,11 +2208,9 @@ te = p+1
|
|
2379
2208
|
end
|
2380
2209
|
end
|
2381
2210
|
end
|
2382
|
-
when
|
2383
|
-
# line 150 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2211
|
+
when 74 then
|
2384
2212
|
begin
|
2385
2213
|
self.set_depth = set_depth - 1 end
|
2386
|
-
# line 165 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2387
2214
|
begin
|
2388
2215
|
te = p+1
|
2389
2216
|
begin # special case, emits two tokens
|
@@ -2399,7 +2226,7 @@ te = p+1
|
|
2399
2226
|
|
2400
2227
|
else
|
2401
2228
|
begin
|
2402
|
-
cs =
|
2229
|
+
cs = 71
|
2403
2230
|
_goto_level = _again
|
2404
2231
|
next
|
2405
2232
|
end
|
@@ -2407,14 +2234,12 @@ te = p+1
|
|
2407
2234
|
end
|
2408
2235
|
end
|
2409
2236
|
end
|
2410
|
-
when
|
2411
|
-
# line 150 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2237
|
+
when 21 then
|
2412
2238
|
begin
|
2413
2239
|
self.set_depth = set_depth - 1 end
|
2414
|
-
# line 213 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2415
2240
|
begin
|
2416
2241
|
te = p+1
|
2417
|
-
begin
|
2242
|
+
begin
|
2418
2243
|
text = copy(data, ts, te)
|
2419
2244
|
|
2420
2245
|
type = :posixclass
|
@@ -2425,85 +2250,62 @@ te = p+1
|
|
2425
2250
|
end
|
2426
2251
|
|
2427
2252
|
unless self.class.posix_classes.include?(class_name)
|
2428
|
-
|
2253
|
+
raise ValidationError.for(:posix_class, text)
|
2429
2254
|
end
|
2430
2255
|
|
2431
2256
|
emit(type, class_name.to_sym, text)
|
2432
2257
|
end
|
2433
2258
|
end
|
2434
|
-
when
|
2435
|
-
# line 1 "NONE"
|
2259
|
+
when 67 then
|
2436
2260
|
begin
|
2437
2261
|
te = p+1
|
2438
2262
|
end
|
2439
|
-
# line 149 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2440
2263
|
begin
|
2441
2264
|
self.set_depth = set_depth + 1 end
|
2442
|
-
when
|
2443
|
-
# line 1 "NONE"
|
2265
|
+
when 83 then
|
2444
2266
|
begin
|
2445
2267
|
te = p+1
|
2446
2268
|
end
|
2447
|
-
# line 277 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2448
2269
|
begin
|
2449
2270
|
act = 17; end
|
2450
|
-
when
|
2451
|
-
# line 1 "NONE"
|
2271
|
+
when 82 then
|
2452
2272
|
begin
|
2453
2273
|
te = p+1
|
2454
2274
|
end
|
2455
|
-
# line 283 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2456
2275
|
begin
|
2457
2276
|
act = 18; end
|
2458
|
-
when
|
2459
|
-
# line 1 "NONE"
|
2277
|
+
when 49 then
|
2460
2278
|
begin
|
2461
2279
|
te = p+1
|
2462
2280
|
end
|
2463
|
-
# line 492 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2464
2281
|
begin
|
2465
|
-
act =
|
2466
|
-
when
|
2467
|
-
# line 1 "NONE"
|
2282
|
+
act = 41; end
|
2283
|
+
when 7 then
|
2468
2284
|
begin
|
2469
2285
|
te = p+1
|
2470
2286
|
end
|
2471
|
-
# line 645 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2472
2287
|
begin
|
2473
|
-
act =
|
2474
|
-
when
|
2475
|
-
# line 1 "NONE"
|
2288
|
+
act = 42; end
|
2289
|
+
when 2 then
|
2476
2290
|
begin
|
2477
2291
|
te = p+1
|
2478
2292
|
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
|
-
begin
|
2484
|
-
self.group_depth = group_depth + 1 end
|
2485
|
-
# line 478 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2486
2293
|
begin
|
2487
|
-
act =
|
2488
|
-
# line 2488 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
|
2294
|
+
act = 56; end
|
2489
2295
|
end
|
2490
2296
|
end
|
2491
2297
|
end
|
2492
2298
|
if _goto_level <= _again
|
2493
|
-
case _re_scanner_to_state_actions[cs]
|
2494
|
-
when
|
2495
|
-
# line 1 "NONE"
|
2299
|
+
case _re_scanner_to_state_actions[cs]
|
2300
|
+
when 64 then
|
2496
2301
|
begin
|
2497
2302
|
ts = nil; end
|
2498
|
-
when
|
2499
|
-
# line 1 "NONE"
|
2303
|
+
when 33 then
|
2500
2304
|
begin
|
2501
2305
|
ts = nil; end
|
2502
|
-
# line 1 "NONE"
|
2503
2306
|
begin
|
2504
2307
|
act = 0
|
2505
2308
|
end
|
2506
|
-
# line 2506 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
|
2507
2309
|
end
|
2508
2310
|
|
2509
2311
|
if cs == 0
|
@@ -2524,20 +2326,17 @@ act = 0
|
|
2524
2326
|
next;
|
2525
2327
|
end
|
2526
2328
|
case _re_scanner_eof_actions[cs]
|
2527
|
-
when
|
2528
|
-
# line 8 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/property.rl"
|
2329
|
+
when 13 then
|
2529
2330
|
begin
|
2530
2331
|
|
2531
2332
|
raise PrematureEndError.new('unicode property')
|
2532
2333
|
end
|
2533
|
-
when
|
2534
|
-
# line 135 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2334
|
+
when 24 then
|
2535
2335
|
begin
|
2536
2336
|
|
2537
|
-
text = copy(data, ts ? ts-1 : 0
|
2538
|
-
raise PrematureEndError.new(
|
2337
|
+
text = copy(data, ts ? ts-1 : 0,-1)
|
2338
|
+
raise PrematureEndError.new(text)
|
2539
2339
|
end
|
2540
|
-
# line 2540 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
|
2541
2340
|
end
|
2542
2341
|
end
|
2543
2342
|
|
@@ -2548,13 +2347,11 @@ act = 0
|
|
2548
2347
|
end
|
2549
2348
|
end
|
2550
2349
|
|
2551
|
-
# line 751 "/Users/janosch/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
|
2552
|
-
|
2553
2350
|
# to avoid "warning: assigned but unused variable - testEof"
|
2554
2351
|
testEof = testEof
|
2555
2352
|
|
2556
2353
|
if cs == re_scanner_error
|
2557
|
-
text = copy(data, ts ? ts-1 : 0
|
2354
|
+
text = copy(data, ts ? ts-1 : 0,-1)
|
2558
2355
|
raise ScannerError.new("Scan error at '#{text}'")
|
2559
2356
|
end
|
2560
2357
|
|
@@ -2606,7 +2403,7 @@ end
|
|
2606
2403
|
|
2607
2404
|
if block
|
2608
2405
|
block.call type, token, text, ts_char_pos, te_char_pos
|
2609
|
-
# TODO: in v3.0.0,
|
2406
|
+
# TODO: in v3.0.0,remove `collect_tokens:` kwarg and only collect if no block given
|
2610
2407
|
tokens << tok if collect_tokens
|
2611
2408
|
elsif collect_tokens
|
2612
2409
|
tokens << tok
|
@@ -2666,7 +2463,7 @@ end
|
|
2666
2463
|
|
2667
2464
|
# Ruby allows things like '(?-xxxx)' or '(?xx-xx--xx-:abc)'.
|
2668
2465
|
text =~ /\(\?([mixdau]*)(-(?:[mix]*))*(:)?/
|
2669
|
-
positive, negative, group_local = $1
|
2466
|
+
positive, negative, group_local = $1,$2,$3
|
2670
2467
|
|
2671
2468
|
if positive.include?('x')
|
2672
2469
|
self.free_spacing = true
|
@@ -2692,24 +2489,8 @@ end
|
|
2692
2489
|
|
2693
2490
|
def emit_meta_control_sequence(data, ts, te, token)
|
2694
2491
|
if data.last < 0x00 || data.last > 0x7F
|
2695
|
-
|
2492
|
+
raise ValidationError.for(:sequence, 'escape', token.to_s)
|
2696
2493
|
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
|
2494
|
+
emit(:escape, token, copy(data, ts-1,te))
|
2714
2495
|
end
|
2715
2496
|
end # module Regexp::Scanner
|