regexp_parser 2.10.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@
3
3
  # THIS IS A GENERATED FILE, DO NOT EDIT DIRECTLY
4
4
  #
5
5
  # This file was generated from scanner.rl
6
- # by running `bundle exec rake ragel:rb`
6
+ # by running `bundle exec rake `
7
7
 
8
8
 
9
9
  require_relative 'scanner/errors/scanner_error'
@@ -28,6 +28,7 @@ class Regexp::Scanner
28
28
 
29
29
  input = input_object.is_a?(Regexp) ? input_object.source : input_object
30
30
  self.free_spacing = free_spacing?(input_object, options)
31
+ self.regexp_encoding = input_object.encoding if input_object.is_a?(::Regexp)
31
32
  self.spacing_stack = [{:free_spacing => free_spacing, :depth => 0}]
32
33
 
33
34
  data = input.unpack("c*")
@@ -38,6 +39,7 @@ class Regexp::Scanner
38
39
 
39
40
  self.set_depth = 0
40
41
  self.group_depth = 0
42
+ self.capturing_group_count = 0
41
43
  self.conditional_stack = []
42
44
  self.char_pos = 0
43
45
 
@@ -70,25 +72,28 @@ self._re_scanner_trans_keys = [
70
72
  48,102,48,102,48,102,
71
73
  48,102,9,125,9,
72
74
  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,43,63,43,63,
80
- 43,63,65,122,44,
81
- 57,68,119,80,112,
82
- -62,125,-128,-65,-128,-65,
83
- -128,-65,38,38,38,
84
- 93,58,58,48,120,
85
- 48,55,48,55,-62,125,
86
- -128,-65,-128,-65,-128,
87
- -65,48,55,48,55,
88
- 48,57,77,77,45,45,
89
- 0,0,67,99,45,
90
- 45,0,0,92,92,
91
- 48,102,39,60,39,57,
75
+ 9,125,9,125,48,102,
76
+ 120,120,56,102,48,
77
+ 102,39,39,41,41,
78
+ 41,57,62,62,-128,127,
79
+ -62,-12,1,127,1,
80
+ 127,9,32,33,126,
81
+ 10,10,63,63,33,126,
82
+ 33,126,43,63,43,
83
+ 63,43,63,65,122,
84
+ 44,57,68,119,80,112,
85
+ -62,125,-128,-65,-128,
86
+ -65,-128,-65,38,38,
87
+ 38,93,58,58,48,120,
88
+ 48,55,48,55,-62,
89
+ 125,-128,-65,-128,-65,
90
+ -128,-65,48,55,48,55,
91
+ 48,57,48,57,48,
92
+ 57,48,57,77,77,
93
+ 45,45,0,0,67,99,
94
+ 45,45,0,0,92,
95
+ 92,48,102,48,102,
96
+ 92,92,39,60,39,57,
92
97
  48,57,41,57,33,
93
98
  62,0
94
99
  ]
@@ -106,13 +111,14 @@ self._re_scanner_key_spans = [
106
111
  117,114,64,64,1,36,36,64,
107
112
  64,1,1,1,1,1,1,76,
108
113
  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,21,21,21,58,14,52,33,
112
- 188,64,64,64,1,56,1,73,
113
- 8,8,188,64,64,64,8,8,
114
- 10,1,1,0,33,1,0,1,
115
- 55,22,19,10,17,30
114
+ 117,117,55,1,47,55,1,1,
115
+ 17,1,256,51,127,127,24,94,
116
+ 1,1,94,94,21,21,21,58,
117
+ 14,52,33,188,64,64,64,1,
118
+ 56,1,73,8,8,188,64,64,
119
+ 64,8,8,10,10,10,10,1,
120
+ 1,0,33,1,0,1,55,55,
121
+ 1,22,19,10,17,30
116
122
  ]
117
123
 
118
124
  class << self
@@ -128,13 +134,14 @@ self._re_scanner_index_offsets = [
128
134
  940,1058,1173,1238,1303,1305,1342,1379,
129
135
  1444,1509,1511,1513,1515,1517,1519,1521,
130
136
  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,3532,3554,3576,3635,3650,3703,
134
- 3737,3926,3991,4056,4121,4123,4180,4182,
135
- 4256,4265,4274,4463,4528,4593,4658,4667,
136
- 4676,4687,4689,4691,4692,4726,4728,4729,
137
- 4731,4787,4810,4830,4841,4859
137
+ 2294,2412,2530,2586,2588,2636,2692,2694,
138
+ 2696,2714,2716,2973,3025,3153,3281,3306,
139
+ 3401,3403,3405,3500,3595,3617,3639,3661,
140
+ 3720,3735,3788,3822,4011,4076,4141,4206,
141
+ 4208,4265,4267,4341,4350,4359,4548,4613,
142
+ 4678,4743,4752,4761,4772,4783,4794,4805,
143
+ 4807,4809,4810,4844,4846,4847,4849,4905,
144
+ 4961,4963,4986,5006,5017,5035
138
145
  ]
139
146
 
140
147
  class << self
@@ -459,19 +466,29 @@ self._re_scanner_indicies = [
459
466
  43,43,43,43,43,43,43,43,
460
467
  43,43,43,43,43,43,43,43,
461
468
  74,43,82,82,82,82,82,82,
462
- 82,82,82,82,81,81,81,81,
463
- 81,81,81,82,82,82,82,82,
464
- 82,81,81,81,81,81,81,81,
469
+ 82,82,83,83,81,81,81,81,
470
+ 81,81,81,83,83,83,83,83,
471
+ 83,81,81,81,81,81,81,81,
465
472
  81,81,81,81,81,81,81,81,
466
473
  81,81,81,81,81,81,81,81,
467
- 81,81,81,82,82,82,82,82,
468
- 82,81,81,81,81,81,81,81,
469
- 81,81,81,81,81,81,81,81,
470
- 81,81,81,81,81,43,81,85,
471
- 84,86,83,86,83,83,83,83,
472
- 83,83,87,87,87,87,87,87,
473
- 87,87,87,87,83,85,88,43,
474
- 43,43,43,43,43,43,43,43,
474
+ 81,81,81,83,83,83,83,83,
475
+ 83,81,85,84,86,86,84,84,
476
+ 84,84,84,84,84,86,86,86,
477
+ 86,86,86,84,84,84,84,84,
478
+ 84,84,84,84,84,84,84,84,
479
+ 84,84,84,84,84,84,84,84,
480
+ 84,84,84,84,84,86,86,86,
481
+ 86,86,86,84,87,87,87,87,
482
+ 87,87,87,87,87,87,84,84,
483
+ 84,84,84,84,84,87,87,87,
484
+ 87,87,87,84,84,84,84,84,
485
+ 84,84,84,84,84,84,84,84,
486
+ 84,84,84,84,84,84,84,84,
487
+ 84,84,84,84,84,87,87,87,
488
+ 87,87,87,84,90,89,91,88,
489
+ 91,88,88,88,88,88,88,92,
490
+ 92,92,92,92,92,92,92,92,
491
+ 92,88,90,93,43,43,43,43,
475
492
  43,43,43,43,43,43,43,43,
476
493
  43,43,43,43,43,43,43,43,
477
494
  43,43,43,43,43,43,43,43,
@@ -479,160 +496,161 @@ self._re_scanner_indicies = [
479
496
  43,43,43,43,43,43,43,43,
480
497
  43,43,43,43,43,43,43,43,
481
498
  43,43,43,43,43,43,43,43,
482
- 43,2,2,2,2,2,2,2,
499
+ 43,43,43,43,43,43,2,2,
483
500
  2,2,2,2,2,2,2,2,
484
501
  2,2,2,2,2,2,2,2,
485
- 2,2,2,2,2,2,2,3,
502
+ 2,2,2,2,2,2,2,2,
503
+ 2,2,2,2,3,3,3,3,
486
504
  3,3,3,3,3,3,3,3,
487
- 3,3,3,3,3,3,3,89,
488
- 89,89,89,89,43,43,43,43,
489
- 43,43,43,43,43,43,43,43,
490
- 90,90,90,90,90,90,90,90,
491
- 91,91,91,91,91,90,90,90,
492
- 90,90,90,90,90,90,90,90,
493
- 90,90,90,90,90,90,90,92,
494
- 93,93,94,95,93,93,93,96,
495
- 97,98,99,93,93,100,93,93,
496
- 93,93,93,93,93,93,93,93,
497
- 93,93,93,93,93,93,101,93,
498
- 93,93,93,93,93,93,93,93,
499
- 93,93,93,93,93,93,93,93,
500
- 93,93,93,93,93,93,93,93,
501
- 93,93,102,103,104,105,93,93,
502
- 93,93,93,93,93,93,93,93,
503
- 93,93,93,93,93,93,93,93,
504
- 93,93,93,93,93,93,93,93,
505
- 93,93,106,107,104,93,90,93,
505
+ 3,3,3,3,94,94,94,94,
506
+ 94,43,43,43,43,43,43,43,
507
+ 43,43,43,43,43,95,95,95,
508
+ 95,95,95,95,95,96,96,96,
509
+ 96,96,95,95,95,95,95,95,
510
+ 95,95,95,95,95,95,95,95,
511
+ 95,95,95,95,97,98,98,99,
512
+ 100,98,98,98,101,102,103,104,
513
+ 98,98,105,98,98,98,98,98,
514
+ 98,98,98,98,98,98,98,98,
515
+ 98,98,98,106,98,98,98,98,
516
+ 98,98,98,98,98,98,98,98,
517
+ 98,98,98,98,98,98,98,98,
518
+ 98,98,98,98,98,98,98,107,
519
+ 108,109,110,98,98,98,98,98,
520
+ 98,98,98,98,98,98,98,98,
521
+ 98,98,98,98,98,98,98,98,
522
+ 98,98,98,98,98,98,98,111,
523
+ 112,109,98,95,98,2,2,2,
506
524
  2,2,2,2,2,2,2,2,
507
525
  2,2,2,2,2,2,2,2,
508
526
  2,2,2,2,2,2,2,2,
509
- 2,2,2,2,2,2,3,3,
527
+ 2,2,2,3,3,3,3,3,
510
528
  3,3,3,3,3,3,3,3,
511
- 3,3,3,3,3,3,89,89,
512
- 89,89,89,108,90,90,90,90,
513
- 90,90,90,90,90,90,90,90,
514
- 90,90,90,90,90,90,90,90,
515
- 90,90,90,90,90,90,90,90,
516
- 90,90,90,108,108,108,108,108,
517
- 108,108,108,108,108,108,108,108,
518
- 108,108,108,108,108,108,108,108,
519
- 108,108,108,108,108,108,108,108,
520
- 108,108,108,108,108,108,108,108,
521
- 108,108,108,108,108,108,108,108,
522
- 108,108,108,108,108,108,108,108,
523
- 108,108,108,108,108,108,108,108,
524
- 108,108,108,108,108,108,108,108,
525
- 108,108,108,108,108,108,108,108,
526
- 108,108,108,108,108,108,108,108,
527
- 108,108,108,108,108,108,108,108,
528
- 108,108,90,108,90,90,90,90,
529
- 90,90,90,90,91,91,91,91,
530
- 91,90,90,90,90,90,90,90,
531
- 90,90,90,90,90,90,90,90,
532
- 90,90,90,92,109,109,109,109,
533
- 109,109,109,109,109,109,109,109,
534
- 109,109,109,109,109,109,109,109,
535
- 109,109,109,109,109,109,109,109,
536
- 109,109,109,109,109,109,109,109,
537
- 109,109,109,109,109,109,109,109,
538
- 109,109,109,109,109,109,109,109,
539
- 109,109,109,109,109,109,109,109,
540
- 109,109,109,109,109,109,109,109,
541
- 109,109,109,109,109,109,109,109,
542
- 109,109,109,109,109,109,109,109,
543
- 109,109,109,109,109,109,109,109,
544
- 109,109,90,109,92,92,92,92,
545
- 92,109,109,109,109,109,109,109,
546
- 109,109,109,109,109,109,109,109,
547
- 109,109,109,92,109,93,93,108,
548
- 108,93,93,93,108,108,108,108,
549
- 93,93,108,93,93,93,93,93,
550
- 93,93,93,93,93,93,93,93,
551
- 93,93,93,108,93,93,93,93,
552
- 93,93,93,93,93,93,93,93,
553
- 93,93,93,93,93,93,93,93,
554
- 93,93,93,93,93,93,93,108,
555
- 108,108,108,93,93,93,93,93,
556
- 93,93,93,93,93,93,93,93,
557
- 93,93,93,93,93,93,93,93,
558
- 93,93,93,93,93,93,93,108,
559
- 108,108,93,108,111,94,113,112,
560
- 10,115,5,115,115,115,116,117,
561
- 114,115,115,115,115,115,115,115,
562
- 115,115,115,115,115,115,115,115,
563
- 115,8,115,118,10,8,115,115,
564
- 115,115,115,115,115,115,115,115,
565
- 115,115,115,115,115,115,115,115,
566
- 115,115,115,115,115,115,115,115,
567
- 115,115,115,115,115,115,115,115,
568
- 115,115,115,115,115,115,115,115,
569
- 115,115,115,115,115,115,115,115,
570
- 115,115,115,115,115,115,115,115,
571
- 115,115,115,115,115,8,115,114,
572
- 115,114,115,115,115,114,114,114,
573
- 115,115,115,115,115,115,115,115,
574
- 115,115,115,115,115,115,115,115,
575
- 119,115,114,114,114,115,115,115,
576
- 115,115,115,115,115,115,115,115,
577
- 115,115,115,115,115,115,115,115,
578
- 115,115,115,115,115,115,115,115,
579
- 115,115,115,115,115,115,115,115,
580
- 115,115,115,115,115,115,115,115,
581
- 115,115,115,115,115,115,115,115,
582
- 115,115,115,115,115,115,115,115,
583
- 115,115,115,115,114,115,121,120,
529
+ 3,3,3,94,94,94,94,94,
530
+ 113,95,95,95,95,95,95,95,
531
+ 95,95,95,95,95,95,95,95,
532
+ 95,95,95,95,95,95,95,95,
533
+ 95,95,95,95,95,95,95,95,
534
+ 113,113,113,113,113,113,113,113,
535
+ 113,113,113,113,113,113,113,113,
536
+ 113,113,113,113,113,113,113,113,
537
+ 113,113,113,113,113,113,113,113,
538
+ 113,113,113,113,113,113,113,113,
539
+ 113,113,113,113,113,113,113,113,
540
+ 113,113,113,113,113,113,113,113,
541
+ 113,113,113,113,113,113,113,113,
542
+ 113,113,113,113,113,113,113,113,
543
+ 113,113,113,113,113,113,113,113,
544
+ 113,113,113,113,113,113,113,113,
545
+ 113,113,113,113,113,113,113,95,
546
+ 113,95,95,95,95,95,95,95,
547
+ 95,96,96,96,96,96,95,95,
548
+ 95,95,95,95,95,95,95,95,
549
+ 95,95,95,95,95,95,95,95,
550
+ 97,114,114,114,114,114,114,114,
551
+ 114,114,114,114,114,114,114,114,
552
+ 114,114,114,114,114,114,114,114,
553
+ 114,114,114,114,114,114,114,114,
554
+ 114,114,114,114,114,114,114,114,
555
+ 114,114,114,114,114,114,114,114,
556
+ 114,114,114,114,114,114,114,114,
557
+ 114,114,114,114,114,114,114,114,
558
+ 114,114,114,114,114,114,114,114,
559
+ 114,114,114,114,114,114,114,114,
560
+ 114,114,114,114,114,114,114,114,
561
+ 114,114,114,114,114,114,114,95,
562
+ 114,97,97,97,97,97,114,114,
563
+ 114,114,114,114,114,114,114,114,
564
+ 114,114,114,114,114,114,114,114,
565
+ 97,114,98,98,113,113,98,98,
566
+ 98,113,113,113,113,98,98,113,
567
+ 98,98,98,98,98,98,98,98,
568
+ 98,98,98,98,98,98,98,98,
569
+ 113,98,98,98,98,98,98,98,
570
+ 98,98,98,98,98,98,98,98,
571
+ 98,98,98,98,98,98,98,98,
572
+ 98,98,98,98,113,113,113,113,
573
+ 98,98,98,98,98,98,98,98,
574
+ 98,98,98,98,98,98,98,98,
575
+ 98,98,98,98,98,98,98,98,
576
+ 98,98,98,98,113,113,113,98,
577
+ 113,116,99,118,117,10,120,5,
578
+ 120,120,120,121,122,119,120,120,
584
579
  120,120,120,120,120,120,120,120,
580
+ 120,120,120,120,120,120,8,120,
581
+ 123,10,8,120,120,120,120,120,
585
582
  120,120,120,120,120,120,120,120,
586
- 120,120,121,120,123,122,122,122,
587
- 122,122,122,122,122,122,122,122,
588
- 122,122,122,122,122,122,122,122,
589
- 123,122,125,124,124,124,124,124,
590
- 124,124,124,124,124,124,124,124,
591
- 124,124,124,124,124,124,125,124,
592
- 127,127,126,126,126,126,127,126,
593
- 126,126,128,126,126,126,126,126,
594
- 126,126,126,126,126,126,126,126,
595
- 126,127,126,126,126,126,126,126,
596
- 126,127,126,126,126,126,129,126,
597
- 126,126,130,126,126,126,126,126,
598
- 126,126,126,126,126,126,126,126,
599
- 126,127,126,132,131,131,131,41,
600
- 41,41,41,41,41,41,41,41,
601
- 41,131,133,43,43,43,133,43,
602
- 43,43,43,43,43,43,43,43,
603
- 133,133,43,43,43,133,133,43,
604
- 43,43,43,43,43,43,43,43,
605
- 43,43,133,43,43,43,133,43,
606
- 43,43,43,43,43,43,43,43,
607
- 43,133,43,43,43,133,43,134,
608
- 43,43,43,43,43,43,43,43,
609
- 43,43,43,43,43,43,43,43,
610
- 43,43,43,43,43,43,43,43,
611
- 43,43,43,43,43,43,43,134,
612
- 43,135,135,135,135,135,135,135,
613
- 135,135,135,135,135,135,135,135,
614
- 135,135,135,135,135,135,135,135,
615
- 135,135,135,135,135,135,135,136,
616
- 136,136,136,136,136,136,136,136,
617
- 136,136,136,136,136,136,136,137,
618
- 137,137,137,137,48,48,48,48,
619
- 48,48,48,48,48,48,48,48,
620
- 48,48,48,48,48,48,48,48,
583
+ 120,120,120,120,120,120,120,120,
584
+ 120,120,120,120,120,120,120,120,
585
+ 120,120,120,120,120,120,120,120,
586
+ 120,120,120,120,120,120,120,120,
587
+ 120,120,120,120,120,120,120,120,
588
+ 120,120,120,120,120,120,120,120,
589
+ 120,120,8,120,119,120,119,120,
590
+ 120,120,119,119,119,120,120,120,
591
+ 120,120,120,120,120,120,120,120,
592
+ 120,120,120,120,120,124,120,119,
593
+ 119,119,120,120,120,120,120,120,
594
+ 120,120,120,120,120,120,120,120,
595
+ 120,120,120,120,120,120,120,120,
596
+ 120,120,120,120,120,120,120,120,
597
+ 120,120,120,120,120,120,120,120,
598
+ 120,120,120,120,120,120,120,120,
599
+ 120,120,120,120,120,120,120,120,
600
+ 120,120,120,120,120,120,120,120,
601
+ 120,119,120,126,125,125,125,125,
602
+ 125,125,125,125,125,125,125,125,
603
+ 125,125,125,125,125,125,125,126,
604
+ 125,128,127,127,127,127,127,127,
605
+ 127,127,127,127,127,127,127,127,
606
+ 127,127,127,127,127,128,127,130,
607
+ 129,129,129,129,129,129,129,129,
608
+ 129,129,129,129,129,129,129,129,
609
+ 129,129,129,130,129,132,132,131,
610
+ 131,131,131,132,131,131,131,133,
611
+ 131,131,131,131,131,131,131,131,
612
+ 131,131,131,131,131,131,132,131,
613
+ 131,131,131,131,131,131,132,131,
614
+ 131,131,131,134,131,131,131,135,
615
+ 131,131,131,131,131,131,131,131,
616
+ 131,131,131,131,131,131,132,131,
617
+ 137,136,136,136,41,41,41,41,
618
+ 41,41,41,41,41,41,136,138,
619
+ 43,43,43,138,43,43,43,43,
620
+ 43,43,43,43,43,138,138,43,
621
+ 43,43,138,138,43,43,43,43,
622
+ 43,43,43,43,43,43,43,138,
623
+ 43,43,43,138,43,43,43,43,
624
+ 43,43,43,43,43,43,138,43,
625
+ 43,43,138,43,139,43,43,43,
626
+ 43,43,43,43,43,43,43,43,
627
+ 43,43,43,43,43,43,43,43,
628
+ 43,43,43,43,43,43,43,43,
629
+ 43,43,43,43,139,43,140,140,
630
+ 140,140,140,140,140,140,140,140,
631
+ 140,140,140,140,140,140,140,140,
632
+ 140,140,140,140,140,140,140,140,
633
+ 140,140,140,140,141,141,141,141,
634
+ 141,141,141,141,141,141,141,141,
635
+ 141,141,141,141,142,142,142,142,
636
+ 142,48,48,48,48,48,48,48,
621
637
  48,48,48,48,48,48,48,48,
622
638
  48,48,48,48,48,48,48,48,
623
639
  48,48,48,48,48,48,48,48,
624
- 48,48,48,138,48,139,48,138,
625
- 138,138,138,48,140,138,48,48,
626
640
  48,48,48,48,48,48,48,48,
627
- 48,48,48,48,48,48,138,48,
628
641
  48,48,48,48,48,48,48,48,
642
+ 143,48,144,48,143,143,143,143,
643
+ 48,145,143,48,48,48,48,48,
629
644
  48,48,48,48,48,48,48,48,
645
+ 48,48,48,143,48,48,48,48,
630
646
  48,48,48,48,48,48,48,48,
631
- 48,48,141,142,143,144,48,48,
632
647
  48,48,48,48,48,48,48,48,
648
+ 48,48,48,48,48,48,48,146,
649
+ 147,148,149,48,48,48,48,48,
633
650
  48,48,48,48,48,48,48,48,
634
651
  48,48,48,48,48,48,48,48,
635
- 48,48,138,138,138,48,48,48,
652
+ 48,48,48,48,48,48,48,143,
653
+ 143,143,48,48,48,48,48,48,
636
654
  48,48,48,48,48,48,48,48,
637
655
  48,48,48,48,48,48,48,48,
638
656
  48,48,48,48,48,48,48,48,
@@ -640,7 +658,7 @@ self._re_scanner_indicies = [
640
658
  48,48,48,48,48,48,48,48,
641
659
  48,48,48,48,48,48,48,48,
642
660
  48,48,48,48,48,48,48,48,
643
- 48,48,48,48,48,48,145,49,
661
+ 48,48,48,150,49,49,49,49,
644
662
  49,49,49,49,49,49,49,49,
645
663
  49,49,49,49,49,49,49,49,
646
664
  49,49,49,49,49,49,49,49,
@@ -648,58 +666,58 @@ self._re_scanner_indicies = [
648
666
  49,49,49,49,49,49,49,49,
649
667
  49,49,49,49,49,49,49,49,
650
668
  49,49,49,49,49,49,49,49,
651
- 49,49,49,49,49,49,49,145,
652
- 146,146,146,146,146,146,146,146,
653
- 146,146,146,146,146,146,146,146,
654
- 146,146,146,146,146,146,146,146,
655
- 146,146,146,146,146,146,146,146,
656
- 146,146,146,146,146,146,146,146,
657
- 146,146,146,146,146,146,146,146,
658
- 146,146,146,146,146,146,146,146,
659
- 146,146,146,146,146,146,146,146,
660
- 145,147,145,149,148,148,148,148,
661
- 148,148,148,148,148,148,148,148,
662
- 148,148,148,148,148,148,148,148,
663
- 148,148,148,148,148,148,148,148,
664
- 148,148,148,148,148,148,148,148,
665
- 148,148,148,148,148,148,148,148,
666
- 148,148,148,148,148,148,148,148,
667
- 148,148,150,148,53,152,154,154,
668
- 154,154,154,154,154,154,153,153,
669
+ 49,49,49,49,150,151,151,151,
670
+ 151,151,151,151,151,151,151,151,
671
+ 151,151,151,151,151,151,151,151,
672
+ 151,151,151,151,151,151,151,151,
673
+ 151,151,151,151,151,151,151,151,
674
+ 151,151,151,151,151,151,151,151,
675
+ 151,151,151,151,151,151,151,151,
676
+ 151,151,151,151,151,151,151,151,
677
+ 151,151,151,151,151,150,152,150,
678
+ 154,153,153,153,153,153,153,153,
679
+ 153,153,153,153,153,153,153,153,
680
+ 153,153,153,153,153,153,153,153,
681
+ 153,153,153,153,153,153,153,153,
682
+ 153,153,153,153,153,153,153,153,
669
683
  153,153,153,153,153,153,153,153,
670
- 153,155,155,153,153,153,155,153,
671
- 153,153,153,155,153,153,155,153,
672
- 153,155,153,153,153,155,153,153,
673
- 153,155,155,155,153,153,153,155,
674
- 155,155,155,155,155,153,155,153,
675
- 153,153,153,153,155,153,155,153,
676
- 155,155,155,155,155,155,155,153,
677
- 157,157,157,157,157,157,157,157,
678
- 156,158,158,158,158,158,158,158,
679
- 158,156,159,159,159,159,159,159,
680
- 159,159,159,159,159,159,159,159,
681
- 159,159,159,159,159,159,159,159,
682
- 159,159,159,159,159,159,159,159,
683
- 160,160,160,160,160,160,160,160,
684
- 160,160,160,160,160,160,160,160,
685
- 161,161,161,161,161,58,58,58,
684
+ 153,153,153,153,153,153,153,155,
685
+ 153,53,157,159,159,159,159,159,
686
+ 159,159,159,158,158,158,158,158,
687
+ 158,158,158,158,158,158,160,160,
688
+ 158,158,158,160,158,158,158,158,
689
+ 160,158,158,160,158,158,160,158,
690
+ 158,158,160,158,158,158,160,160,
691
+ 160,158,158,158,160,160,160,160,
692
+ 160,160,158,160,158,158,158,158,
693
+ 158,160,158,160,158,160,160,160,
694
+ 160,160,160,160,158,162,162,162,
695
+ 162,162,162,162,162,161,163,163,
696
+ 163,163,163,163,163,163,161,164,
697
+ 164,164,164,164,164,164,164,164,
698
+ 164,164,164,164,164,164,164,164,
699
+ 164,164,164,164,164,164,164,164,
700
+ 164,164,164,164,164,165,165,165,
701
+ 165,165,165,165,165,165,165,165,
702
+ 165,165,165,165,165,166,166,166,
703
+ 166,166,58,58,58,58,58,58,
686
704
  58,58,58,58,58,58,58,58,
687
705
  58,58,58,58,58,58,58,58,
688
706
  58,58,58,58,58,58,58,58,
689
707
  58,58,58,58,58,58,58,58,
690
708
  58,58,58,58,58,58,58,58,
691
- 58,58,58,58,162,58,58,58,
692
- 162,162,162,162,58,58,162,58,
693
- 163,164,164,164,164,164,164,164,
694
- 165,165,58,58,58,58,58,162,
695
- 58,43,43,166,167,58,58,43,
696
- 167,58,58,43,58,168,58,58,
697
- 169,58,167,167,58,58,58,167,
698
- 167,58,43,162,162,162,162,58,
699
- 58,170,170,60,167,170,170,58,
700
- 167,58,58,58,58,58,170,58,
701
- 169,58,170,167,170,171,170,167,
702
- 172,58,43,162,162,162,58,58,
709
+ 58,167,58,58,58,167,167,167,
710
+ 167,58,58,167,58,168,169,169,
711
+ 169,169,169,169,169,170,170,58,
712
+ 58,58,58,58,167,58,43,43,
713
+ 171,172,58,58,43,172,58,58,
714
+ 43,58,173,58,58,174,58,172,
715
+ 172,58,58,58,172,172,58,43,
716
+ 167,167,167,167,58,58,175,175,
717
+ 60,172,175,175,58,172,58,58,
718
+ 58,58,58,175,58,174,58,175,
719
+ 172,175,176,175,172,177,58,43,
720
+ 167,167,167,58,58,58,58,58,
703
721
  58,58,58,58,58,58,58,58,
704
722
  58,58,58,58,58,58,58,58,
705
723
  58,58,58,58,58,58,58,58,
@@ -707,7 +725,7 @@ self._re_scanner_indicies = [
707
725
  58,58,58,58,58,58,58,58,
708
726
  58,58,58,58,58,58,58,58,
709
727
  58,58,58,58,58,58,58,58,
710
- 58,58,58,58,58,58,58,173,
728
+ 58,58,58,58,178,59,59,59,
711
729
  59,59,59,59,59,59,59,59,
712
730
  59,59,59,59,59,59,59,59,
713
731
  59,59,59,59,59,59,59,59,
@@ -715,45 +733,56 @@ self._re_scanner_indicies = [
715
733
  59,59,59,59,59,59,59,59,
716
734
  59,59,59,59,59,59,59,59,
717
735
  59,59,59,59,59,59,59,59,
718
- 59,59,59,59,59,59,59,59,
719
- 173,174,174,174,174,174,174,174,
720
- 174,174,174,174,174,174,174,174,
721
- 174,174,174,174,174,174,174,174,
722
- 174,174,174,174,174,174,174,174,
723
- 174,174,174,174,174,174,174,174,
724
- 174,174,174,174,174,174,174,174,
725
- 174,174,174,174,174,174,174,174,
726
- 174,174,174,174,174,174,174,174,
727
- 174,173,176,176,176,176,176,176,
728
- 176,176,175,178,178,178,178,178,
729
- 178,178,178,177,180,180,180,180,
730
- 180,180,180,180,180,180,179,182,
731
- 61,184,183,61,186,66,66,66,
736
+ 59,59,59,59,59,178,179,179,
737
+ 179,179,179,179,179,179,179,179,
738
+ 179,179,179,179,179,179,179,179,
739
+ 179,179,179,179,179,179,179,179,
740
+ 179,179,179,179,179,179,179,179,
741
+ 179,179,179,179,179,179,179,179,
742
+ 179,179,179,179,179,179,179,179,
743
+ 179,179,179,179,179,179,179,179,
744
+ 179,179,179,179,179,179,178,181,
745
+ 181,181,181,181,181,181,181,180,
746
+ 182,182,182,182,182,182,182,182,
747
+ 180,184,184,184,184,184,184,184,
748
+ 184,185,185,183,185,185,185,185,
749
+ 185,185,185,185,185,185,183,185,
750
+ 185,185,185,185,185,185,185,185,
751
+ 185,183,185,185,185,185,185,185,
752
+ 185,185,185,185,183,187,61,189,
753
+ 188,61,191,66,66,66,66,66,
732
754
  66,66,66,66,66,66,66,66,
733
755
  66,66,66,66,66,66,66,66,
734
756
  66,66,66,66,66,66,66,66,
735
- 66,66,66,66,187,66,189,188,
736
- 66,69,66,191,191,191,191,191,
737
- 191,191,191,191,191,190,190,190,
738
- 190,190,190,190,191,191,191,191,
739
- 191,191,190,190,190,190,190,190,
740
- 190,190,190,190,190,190,190,190,
741
- 190,190,190,190,190,190,190,190,
742
- 190,190,190,190,191,191,191,191,
743
- 191,191,190,193,192,192,192,192,
744
- 192,194,192,192,195,195,195,195,
745
- 195,195,195,195,195,195,192,192,
746
- 196,192,85,84,84,84,84,84,
747
- 197,84,84,197,197,197,197,197,
748
- 197,197,197,197,197,84,87,87,
749
- 87,87,87,87,87,87,87,87,
750
- 197,86,197,197,197,197,197,197,
751
- 87,87,87,87,87,87,87,87,
752
- 87,87,197,197,88,88,88,88,
753
- 88,88,88,88,88,88,88,197,
754
- 88,88,197,197,197,197,197,197,
755
- 197,197,197,197,88,88,88,197,
756
- 85,88,0
757
+ 66,66,192,66,194,193,66,69,
758
+ 66,196,196,196,196,196,196,196,
759
+ 196,196,196,195,195,195,195,195,
760
+ 195,195,196,196,196,196,196,196,
761
+ 195,195,195,195,195,195,195,195,
762
+ 195,195,195,195,195,195,195,195,
763
+ 195,195,195,195,195,195,195,195,
764
+ 195,195,196,196,196,196,196,196,
765
+ 195,87,87,87,87,87,87,87,
766
+ 87,87,87,195,195,195,195,195,
767
+ 195,195,87,87,87,87,87,87,
768
+ 195,195,195,195,195,195,195,195,
769
+ 195,195,195,195,195,195,195,195,
770
+ 195,195,195,195,195,195,195,195,
771
+ 195,195,87,87,87,87,87,87,
772
+ 195,198,197,200,199,199,199,199,
773
+ 199,201,199,199,202,202,202,202,
774
+ 202,202,202,202,202,202,199,199,
775
+ 203,199,90,89,89,89,89,89,
776
+ 204,89,89,204,204,204,204,204,
777
+ 204,204,204,204,204,89,92,92,
778
+ 92,92,92,92,92,92,92,92,
779
+ 204,91,204,204,204,204,204,204,
780
+ 92,92,92,92,92,92,92,92,
781
+ 92,92,204,204,93,93,93,93,
782
+ 93,93,93,93,93,93,93,204,
783
+ 93,93,204,204,204,204,204,204,
784
+ 204,204,204,204,93,93,93,204,
785
+ 90,93,0
757
786
  ]
758
787
 
759
788
  class << self
@@ -761,31 +790,32 @@ class << self
761
790
  private :_re_scanner_trans_targs, :_re_scanner_trans_targs=
762
791
  end
763
792
  self._re_scanner_trans_targs = [
764
- 71,72,1,2,71,4,71,6,
765
- 71,8,71,71,10,16,11,71,
793
+ 74,75,1,2,74,4,74,6,
794
+ 74,8,74,74,10,16,11,74,
766
795
  12,13,14,15,17,18,19,20,
767
- 21,23,29,24,71,25,26,27,
768
- 28,30,31,32,33,34,71,36,
769
- 71,37,39,0,40,41,87,88,
770
- 88,42,88,88,88,45,46,88,
771
- 88,98,98,47,50,98,105,98,
772
- 107,53,98,108,98,110,56,59,
773
- 57,58,98,60,61,62,63,64,
774
- 65,98,112,113,67,68,113,69,
775
- 70,3,73,74,75,76,77,71,
776
- 78,71,81,82,71,83,71,84,
777
- 71,71,85,71,71,71,71,71,
778
- 71,79,71,80,5,71,7,71,
779
- 71,71,71,71,71,71,71,71,
780
- 71,9,22,71,35,86,38,89,
781
- 90,91,88,92,93,94,88,88,
782
- 88,88,43,88,88,44,88,88,
783
- 88,95,96,95,95,97,95,99,
784
- 100,101,98,102,102,104,49,98,
785
- 52,98,98,55,66,98,48,98,
786
- 103,98,98,98,98,98,106,98,
787
- 51,98,109,111,98,54,98,98,
788
- 113,114,115,116,117,113
796
+ 21,23,29,24,74,25,26,27,
797
+ 28,30,31,32,33,34,74,36,
798
+ 74,37,39,0,40,41,90,91,
799
+ 91,42,91,91,91,45,46,91,
800
+ 91,101,101,47,50,101,111,101,
801
+ 113,53,101,114,101,116,56,59,
802
+ 57,58,101,60,61,62,63,64,
803
+ 65,101,118,119,101,68,69,120,
804
+ 121,70,71,121,72,73,3,76,
805
+ 77,78,79,80,74,81,74,84,
806
+ 85,74,86,74,87,74,74,88,
807
+ 74,74,74,74,74,74,82,74,
808
+ 83,5,74,7,74,74,74,74,
809
+ 74,74,74,74,74,74,9,22,
810
+ 74,35,89,38,92,93,94,91,
811
+ 95,96,97,91,91,91,91,43,
812
+ 91,91,44,91,91,91,98,99,
813
+ 98,98,100,98,102,103,104,101,
814
+ 105,107,110,49,101,52,101,101,
815
+ 55,66,101,48,101,106,101,101,
816
+ 108,109,101,112,101,51,101,115,
817
+ 117,101,54,101,101,101,67,121,
818
+ 122,123,124,125,121
789
819
  ]
790
820
 
791
821
  class << self
@@ -803,21 +833,22 @@ self._re_scanner_trans_actions = [
803
833
  20,21,22,0,0,24,0,25,
804
834
  0,0,26,0,27,0,0,0,
805
835
  0,0,28,0,0,0,0,0,
806
- 0,29,0,30,0,0,31,0,
807
- 0,0,0,0,0,0,0,34,
808
- 35,36,0,0,37,0,38,39,
809
- 40,41,39,42,43,44,45,46,
810
- 47,39,48,0,0,49,0,50,
811
- 51,52,53,54,55,56,57,58,
812
- 59,0,0,60,0,62,0,0,
813
- 39,39,63,0,39,64,65,66,
814
- 67,68,0,69,70,0,71,72,
815
- 73,74,0,75,76,0,77,0,
816
- 39,39,78,79,80,0,0,81,
817
- 0,82,83,0,0,84,0,85,
818
- 0,86,87,88,89,90,39,91,
819
- 0,92,39,0,93,0,94,95,
820
- 96,39,39,39,39,97
836
+ 0,29,0,0,30,0,0,31,
837
+ 32,0,0,33,0,0,0,0,
838
+ 0,0,0,0,36,37,38,0,
839
+ 0,39,0,40,31,41,42,31,
840
+ 43,44,45,46,47,48,31,49,
841
+ 0,0,50,0,51,52,53,54,
842
+ 55,56,57,58,59,60,0,0,
843
+ 61,0,63,0,0,31,31,64,
844
+ 0,31,65,66,67,68,69,0,
845
+ 70,71,0,72,73,74,75,0,
846
+ 76,77,0,78,0,31,31,79,
847
+ 0,0,0,0,80,0,81,82,
848
+ 0,0,83,0,84,0,85,86,
849
+ 0,0,87,31,88,0,89,31,
850
+ 0,90,0,91,92,93,0,94,
851
+ 31,31,31,31,95
821
852
  ]
822
853
 
823
854
  class << self
@@ -833,13 +864,14 @@ self._re_scanner_to_state_actions = [
833
864
  0,0,0,0,0,0,0,0,
834
865
  0,0,0,0,0,0,0,0,
835
866
  0,0,0,0,0,0,0,0,
836
- 0,0,0,0,0,0,0,32,
837
867
  0,0,0,0,0,0,0,0,
838
- 0,0,0,0,0,0,61,61,
839
- 61,0,0,0,0,0,0,61,
840
- 0,0,61,0,0,0,0,0,
868
+ 0,0,34,0,0,0,0,0,
869
+ 0,0,0,0,0,0,0,0,
870
+ 0,62,62,62,0,0,0,0,
871
+ 0,0,62,0,0,62,0,0,
841
872
  0,0,0,0,0,0,0,0,
842
- 0,61,0,0,0,0
873
+ 0,0,0,0,0,0,0,0,
874
+ 0,62,0,0,0,0
843
875
  ]
844
876
 
845
877
  class << self
@@ -855,13 +887,14 @@ self._re_scanner_from_state_actions = [
855
887
  0,0,0,0,0,0,0,0,
856
888
  0,0,0,0,0,0,0,0,
857
889
  0,0,0,0,0,0,0,0,
858
- 0,0,0,0,0,0,0,33,
859
890
  0,0,0,0,0,0,0,0,
860
- 0,0,0,0,0,0,33,33,
861
- 33,0,0,0,0,0,0,33,
862
- 0,0,33,0,0,0,0,0,
891
+ 0,0,35,0,0,0,0,0,
892
+ 0,0,0,0,0,0,0,0,
893
+ 0,35,35,35,0,0,0,0,
894
+ 0,0,35,0,0,35,0,0,
863
895
  0,0,0,0,0,0,0,0,
864
- 0,33,0,0,0,0
896
+ 0,0,0,0,0,0,0,0,
897
+ 0,35,0,0,0,0
865
898
  ]
866
899
 
867
900
  class << self
@@ -880,8 +913,9 @@ self._re_scanner_eof_actions = [
880
913
  23,23,23,0,0,0,0,0,
881
914
  0,0,0,0,0,0,0,0,
882
915
  0,0,0,0,0,0,0,0,
883
- 23,0,0,0,0,0,0,0,
884
- 0,0,23,0,0,0,0,0,
916
+ 0,0,0,23,0,0,0,0,
917
+ 0,0,0,0,0,23,0,0,
918
+ 0,0,0,0,0,0,0,0,
885
919
  0,0,0,0,0,0,0,0,
886
920
  0,0,0,0,0,0
887
921
  ]
@@ -899,23 +933,24 @@ self._re_scanner_eof_trans = [
899
933
  0,0,48,48,51,53,53,58,
900
934
  58,0,0,64,0,0,69,0,
901
935
  0,0,0,0,0,0,0,0,
902
- 0,0,0,84,84,84,84,0,
903
- 109,109,110,110,109,111,113,115,
904
- 115,121,123,125,127,132,0,0,
905
- 0,146,146,146,146,149,152,0,
906
- 157,157,0,174,174,174,176,178,
907
- 180,182,182,182,186,186,186,186,
908
- 191,0,198,198,198,198
936
+ 0,0,0,85,85,85,89,89,
937
+ 89,89,0,114,114,115,115,114,
938
+ 116,118,120,120,126,128,130,132,
939
+ 137,0,0,0,151,151,151,151,
940
+ 154,157,0,162,162,0,179,179,
941
+ 179,181,181,184,184,184,184,187,
942
+ 187,187,191,191,191,191,196,196,
943
+ 198,0,205,205,205,205
909
944
  ]
910
945
 
911
946
  class << self
912
947
  attr_accessor :re_scanner_start
913
948
  end
914
- self.re_scanner_start = 71;
949
+ self.re_scanner_start = 74;
915
950
  class << self
916
951
  attr_accessor :re_scanner_first_final
917
952
  end
918
- self.re_scanner_first_final = 71;
953
+ self.re_scanner_first_final = 74;
919
954
  class << self
920
955
  attr_accessor :re_scanner_error
921
956
  end
@@ -924,31 +959,31 @@ self.re_scanner_error = 0;
924
959
  class << self
925
960
  attr_accessor :re_scanner_en_char_type
926
961
  end
927
- self.re_scanner_en_char_type = 86;
962
+ self.re_scanner_en_char_type = 89;
928
963
  class << self
929
964
  attr_accessor :re_scanner_en_unicode_property
930
965
  end
931
- self.re_scanner_en_unicode_property = 87;
966
+ self.re_scanner_en_unicode_property = 90;
932
967
  class << self
933
968
  attr_accessor :re_scanner_en_character_set
934
969
  end
935
- self.re_scanner_en_character_set = 88;
970
+ self.re_scanner_en_character_set = 91;
936
971
  class << self
937
972
  attr_accessor :re_scanner_en_set_escape_sequence
938
973
  end
939
- self.re_scanner_en_set_escape_sequence = 95;
974
+ self.re_scanner_en_set_escape_sequence = 98;
940
975
  class << self
941
976
  attr_accessor :re_scanner_en_escape_sequence
942
977
  end
943
- self.re_scanner_en_escape_sequence = 98;
978
+ self.re_scanner_en_escape_sequence = 101;
944
979
  class << self
945
980
  attr_accessor :re_scanner_en_conditional_expression
946
981
  end
947
- self.re_scanner_en_conditional_expression = 113;
982
+ self.re_scanner_en_conditional_expression = 121;
948
983
  class << self
949
984
  attr_accessor :re_scanner_en_main
950
985
  end
951
- self.re_scanner_en_main = 71;
986
+ self.re_scanner_en_main = 74;
952
987
 
953
988
  begin
954
989
  p ||= 0
@@ -982,7 +1017,7 @@ begin
982
1017
  end
983
1018
  if _goto_level <= _resume
984
1019
  case _re_scanner_from_state_actions[cs]
985
- when 33 then
1020
+ when 35 then
986
1021
  begin
987
1022
  ts = p
988
1023
  end
@@ -1004,14 +1039,14 @@ ts = p
1004
1039
  cs = _re_scanner_trans_targs[_trans]
1005
1040
  if _re_scanner_trans_actions[_trans] != 0
1006
1041
  case _re_scanner_trans_actions[_trans]
1007
- when 35 then
1042
+ when 37 then
1008
1043
  begin
1009
1044
  self.group_depth = group_depth + 1 end
1010
- when 39 then
1045
+ when 31 then
1011
1046
  begin
1012
1047
  te = p+1
1013
1048
  end
1014
- when 62 then
1049
+ when 63 then
1015
1050
  begin
1016
1051
  te = p+1
1017
1052
  begin
@@ -1067,7 +1102,7 @@ te = p+1
1067
1102
  emit(:set, :intersection, '&&')
1068
1103
  end
1069
1104
  end
1070
- when 67 then
1105
+ when 68 then
1071
1106
  begin
1072
1107
  te = p+1
1073
1108
  begin
@@ -1078,28 +1113,28 @@ te = p+1
1078
1113
  end
1079
1114
  end
1080
1115
  end
1081
- when 69 then
1116
+ when 70 then
1082
1117
  begin
1083
1118
  te = p+1
1084
1119
  begin
1085
1120
  emit(:set, :intersection, '&&')
1086
1121
  end
1087
1122
  end
1088
- when 65 then
1123
+ when 66 then
1089
1124
  begin
1090
1125
  te = p+1
1091
1126
  begin
1092
1127
  begin
1093
1128
  stack[top] = cs
1094
1129
  top+= 1
1095
- cs = 95
1130
+ cs = 98
1096
1131
  _goto_level = _again
1097
1132
  next
1098
1133
  end
1099
1134
 
1100
1135
  end
1101
1136
  end
1102
- when 63 then
1137
+ when 64 then
1103
1138
  begin
1104
1139
  te = p+1
1105
1140
  begin
@@ -1114,7 +1149,7 @@ te = p+1
1114
1149
  emit(:literal, :literal, text)
1115
1150
  end
1116
1151
  end
1117
- when 70 then
1152
+ when 71 then
1118
1153
  begin
1119
1154
  te = p
1120
1155
  p = p - 1; begin
@@ -1127,7 +1162,7 @@ p = p - 1; begin
1127
1162
  end
1128
1163
  end
1129
1164
  end
1130
- when 73 then
1165
+ when 74 then
1131
1166
  begin
1132
1167
  te = p
1133
1168
  p = p - 1; begin
@@ -1135,14 +1170,14 @@ p = p - 1; begin
1135
1170
  begin
1136
1171
  stack[top] = cs
1137
1172
  top+= 1
1138
- cs = 88
1173
+ cs = 91
1139
1174
  _goto_level = _again
1140
1175
  next
1141
1176
  end
1142
1177
 
1143
1178
  end
1144
1179
  end
1145
- when 68 then
1180
+ when 69 then
1146
1181
  begin
1147
1182
  te = p
1148
1183
  p = p - 1; begin
@@ -1171,7 +1206,7 @@ p = p - 1; begin
1171
1206
  begin
1172
1207
  stack[top] = cs
1173
1208
  top+= 1
1174
- cs = 88
1209
+ cs = 91
1175
1210
  _goto_level = _again
1176
1211
  next
1177
1212
  end
@@ -1186,7 +1221,7 @@ p = p - 1; begin
1186
1221
  emit(:literal, :literal, text)
1187
1222
  end
1188
1223
  end
1189
- when 77 then
1224
+ when 78 then
1190
1225
  begin
1191
1226
  te = p+1
1192
1227
  begin
@@ -1200,23 +1235,23 @@ te = p+1
1200
1235
 
1201
1236
  end
1202
1237
  end
1203
- when 75 then
1238
+ when 76 then
1204
1239
  begin
1205
1240
  te = p+1
1206
1241
  begin
1207
1242
  p = p - 1;
1208
- cs = 88;
1243
+ cs = 91;
1209
1244
  begin
1210
1245
  stack[top] = cs
1211
1246
  top+= 1
1212
- cs = 98
1247
+ cs = 101
1213
1248
  _goto_level = _again
1214
1249
  next
1215
1250
  end
1216
1251
 
1217
1252
  end
1218
1253
  end
1219
- when 74 then
1254
+ when 75 then
1220
1255
  begin
1221
1256
  te = p+1
1222
1257
  begin
@@ -1230,7 +1265,7 @@ te = p+1
1230
1265
 
1231
1266
  end
1232
1267
  end
1233
- when 76 then
1268
+ when 77 then
1234
1269
  begin
1235
1270
  te = p
1236
1271
  p = p - 1; begin
@@ -1244,7 +1279,7 @@ p = p - 1; begin
1244
1279
 
1245
1280
  end
1246
1281
  end
1247
- when 87 then
1282
+ when 85 then
1248
1283
  begin
1249
1284
  te = p+1
1250
1285
  begin
@@ -1258,23 +1293,7 @@ te = p+1
1258
1293
 
1259
1294
  end
1260
1295
  end
1261
- when 89 then
1262
- begin
1263
- te = p+1
1264
- begin # special case, emits two tokens
1265
- text = copy(data, ts-1,te)
1266
- emit(:escape, :literal, text[0,2])
1267
- emit(:literal, :literal, text[2])
1268
- begin
1269
- top -= 1
1270
- cs = stack[top]
1271
- _goto_level = _again
1272
- next
1273
- end
1274
-
1275
- end
1276
- end
1277
- when 78 then
1296
+ when 79 then
1278
1297
  begin
1279
1298
  te = p+1
1280
1299
  begin
@@ -1304,7 +1323,7 @@ te = p+1
1304
1323
 
1305
1324
  end
1306
1325
  end
1307
- when 83 then
1326
+ when 82 then
1308
1327
  begin
1309
1328
  te = p+1
1310
1329
  begin
@@ -1348,7 +1367,7 @@ te = p+1
1348
1367
 
1349
1368
  end
1350
1369
  end
1351
- when 95 then
1370
+ when 92 then
1352
1371
  begin
1353
1372
  te = p+1
1354
1373
  begin
@@ -1390,32 +1409,32 @@ te = p+1
1390
1409
 
1391
1410
  end
1392
1411
  end
1393
- when 81 then
1412
+ when 80 then
1394
1413
  begin
1395
1414
  te = p+1
1396
1415
  begin
1397
1416
  p = p - 1;
1398
- cs = ((in_set? ? 88 : 71));
1417
+ cs = ((in_set? ? 91 : 74));
1399
1418
  begin
1400
1419
  stack[top] = cs
1401
1420
  top+= 1
1402
- cs = 86
1421
+ cs = 89
1403
1422
  _goto_level = _again
1404
1423
  next
1405
1424
  end
1406
1425
 
1407
1426
  end
1408
1427
  end
1409
- when 82 then
1428
+ when 81 then
1410
1429
  begin
1411
1430
  te = p+1
1412
1431
  begin
1413
1432
  p = p - 1;
1414
- cs = ((in_set? ? 88 : 71));
1433
+ cs = ((in_set? ? 91 : 74));
1415
1434
  begin
1416
1435
  stack[top] = cs
1417
1436
  top+= 1
1418
- cs = 87
1437
+ cs = 90
1419
1438
  _goto_level = _again
1420
1439
  next
1421
1440
  end
@@ -1436,12 +1455,24 @@ te = p+1
1436
1455
 
1437
1456
  end
1438
1457
  end
1439
- when 88 then
1458
+ when 86 then
1440
1459
  begin
1441
1460
  te = p
1442
1461
  p = p - 1; begin
1443
1462
  text = copy(data, ts-1,te)
1444
- emit(:backref, :number, text)
1463
+
1464
+ # If not enough groups have been opened, there is a fallback to either an
1465
+ # octal or literal interpretation for 2+ digit numerical escapes.
1466
+ digits = text[1..-1]
1467
+ if digits.size == 1 || digits.to_i <= self.capturing_group_count
1468
+ emit(:backref, :number, text)
1469
+ elsif digits =~ /\A[0-7]{2,}\z/
1470
+ emit(:escape, :octal, text)
1471
+ else
1472
+ emit(:escape, :literal, text[0..1])
1473
+ emit(:literal, :literal, text[2..-1])
1474
+ end
1475
+
1445
1476
  begin
1446
1477
  top -= 1
1447
1478
  cs = stack[top]
@@ -1451,7 +1482,7 @@ p = p - 1; begin
1451
1482
 
1452
1483
  end
1453
1484
  end
1454
- when 86 then
1485
+ when 84 then
1455
1486
  begin
1456
1487
  te = p
1457
1488
  p = p - 1; begin
@@ -1465,11 +1496,16 @@ p = p - 1; begin
1465
1496
 
1466
1497
  end
1467
1498
  end
1468
- when 94 then
1499
+ when 93 then
1469
1500
  begin
1470
1501
  te = p
1471
1502
  p = p - 1; begin
1472
- emit(:escape, :hex, copy(data, ts-1,te))
1503
+ text = copy(data, ts-1,te)
1504
+ if regexp_encoding == Encoding::BINARY
1505
+ text.split(/(?=\\)/).each { |part| emit(:escape, :hex, part) }
1506
+ else
1507
+ emit(:escape, :utf8_hex, text)
1508
+ end
1473
1509
  begin
1474
1510
  top -= 1
1475
1511
  cs = stack[top]
@@ -1483,7 +1519,7 @@ p = p - 1; begin
1483
1519
  begin
1484
1520
  te = p
1485
1521
  p = p - 1; begin
1486
- emit_meta_control_sequence(data, ts, te, :control)
1522
+ emit(:escape, :hex, copy(data, ts-1,te))
1487
1523
  begin
1488
1524
  top -= 1
1489
1525
  cs = stack[top]
@@ -1493,11 +1529,11 @@ p = p - 1; begin
1493
1529
 
1494
1530
  end
1495
1531
  end
1496
- when 93 then
1532
+ when 88 then
1497
1533
  begin
1498
1534
  te = p
1499
1535
  p = p - 1; begin
1500
- emit_meta_control_sequence(data, ts, te, :meta_sequence)
1536
+ emit_meta_control_sequence(data, ts, te, :control)
1501
1537
  begin
1502
1538
  top -= 1
1503
1539
  cs = stack[top]
@@ -1507,11 +1543,11 @@ p = p - 1; begin
1507
1543
 
1508
1544
  end
1509
1545
  end
1510
- when 84 then
1546
+ when 90 then
1511
1547
  begin
1512
1548
  te = p
1513
1549
  p = p - 1; begin
1514
- emit(:escape, :literal, copy(data, ts-1,te))
1550
+ emit_meta_control_sequence(data, ts, te, :meta_sequence)
1515
1551
  begin
1516
1552
  top -= 1
1517
1553
  cs = stack[top]
@@ -1521,10 +1557,10 @@ p = p - 1; begin
1521
1557
 
1522
1558
  end
1523
1559
  end
1524
- when 21 then
1560
+ when 83 then
1525
1561
  begin
1526
- begin p = ((te))-1; end
1527
- begin
1562
+ te = p
1563
+ p = p - 1; begin
1528
1564
  emit(:escape, :literal, copy(data, ts-1,te))
1529
1565
  begin
1530
1566
  top -= 1
@@ -1535,14 +1571,16 @@ p = p - 1; begin
1535
1571
 
1536
1572
  end
1537
1573
  end
1538
- when 85 then
1574
+ when 30 then
1539
1575
  begin
1540
- case act
1541
- when 17 then
1542
- begin begin p = ((te))-1; end
1543
-
1576
+ begin p = ((te))-1; end
1577
+ begin
1544
1578
  text = copy(data, ts-1,te)
1545
- emit(:backref, :number, text)
1579
+ if regexp_encoding == Encoding::BINARY
1580
+ text.split(/(?=\\)/).each { |part| emit(:escape, :hex, part) }
1581
+ else
1582
+ emit(:escape, :utf8_hex, text)
1583
+ end
1546
1584
  begin
1547
1585
  top -= 1
1548
1586
  cs = stack[top]
@@ -1550,11 +1588,13 @@ p = p - 1; begin
1550
1588
  next
1551
1589
  end
1552
1590
 
1553
- end
1554
- when 18 then
1555
- begin begin p = ((te))-1; end
1556
-
1557
- emit(:escape, :octal, copy(data, ts-1,te))
1591
+ end
1592
+ end
1593
+ when 21 then
1594
+ begin
1595
+ begin p = ((te))-1; end
1596
+ begin
1597
+ emit(:escape, :literal, copy(data, ts-1,te))
1558
1598
  begin
1559
1599
  top -= 1
1560
1600
  cs = stack[top]
@@ -1562,10 +1602,9 @@ p = p - 1; begin
1562
1602
  next
1563
1603
  end
1564
1604
 
1565
- end
1566
- end
1567
- end
1568
- when 31 then
1605
+ end
1606
+ end
1607
+ when 33 then
1569
1608
  begin
1570
1609
  te = p+1
1571
1610
  begin
@@ -1575,7 +1614,7 @@ te = p+1
1575
1614
  emit(:conditional, :condition_close, ')')
1576
1615
  end
1577
1616
  end
1578
- when 96 then
1617
+ when 94 then
1579
1618
  begin
1580
1619
  te = p+1
1581
1620
  begin
@@ -1583,14 +1622,14 @@ te = p+1
1583
1622
  begin
1584
1623
  stack[top] = cs
1585
1624
  top+= 1
1586
- cs = 71
1625
+ cs = 74
1587
1626
  _goto_level = _again
1588
1627
  next
1589
1628
  end
1590
1629
 
1591
1630
  end
1592
1631
  end
1593
- when 97 then
1632
+ when 95 then
1594
1633
  begin
1595
1634
  te = p
1596
1635
  p = p - 1; begin
@@ -1598,14 +1637,14 @@ p = p - 1; begin
1598
1637
  begin
1599
1638
  stack[top] = cs
1600
1639
  top+= 1
1601
- cs = 71
1640
+ cs = 74
1602
1641
  _goto_level = _again
1603
1642
  next
1604
1643
  end
1605
1644
 
1606
1645
  end
1607
1646
  end
1608
- when 30 then
1647
+ when 32 then
1609
1648
  begin
1610
1649
  begin p = ((te))-1; end
1611
1650
  begin
@@ -1613,21 +1652,21 @@ p = p - 1; begin
1613
1652
  begin
1614
1653
  stack[top] = cs
1615
1654
  top+= 1
1616
- cs = 71
1655
+ cs = 74
1617
1656
  _goto_level = _again
1618
1657
  next
1619
1658
  end
1620
1659
 
1621
1660
  end
1622
1661
  end
1623
- when 37 then
1662
+ when 39 then
1624
1663
  begin
1625
1664
  te = p+1
1626
1665
  begin
1627
1666
  emit(:meta, :dot, copy(data, ts, te))
1628
1667
  end
1629
1668
  end
1630
- when 42 then
1669
+ when 43 then
1631
1670
  begin
1632
1671
  te = p+1
1633
1672
  begin
@@ -1638,28 +1677,28 @@ te = p+1
1638
1677
  end
1639
1678
  end
1640
1679
  end
1641
- when 41 then
1680
+ when 42 then
1642
1681
  begin
1643
1682
  te = p+1
1644
1683
  begin
1645
1684
  emit(:anchor, :bol, copy(data, ts, te))
1646
1685
  end
1647
1686
  end
1648
- when 34 then
1687
+ when 36 then
1649
1688
  begin
1650
1689
  te = p+1
1651
1690
  begin
1652
1691
  emit(:anchor, :eol, copy(data, ts, te))
1653
1692
  end
1654
1693
  end
1655
- when 59 then
1694
+ when 60 then
1656
1695
  begin
1657
1696
  te = p+1
1658
1697
  begin
1659
1698
  emit(:keep, :mark, copy(data, ts, te))
1660
1699
  end
1661
1700
  end
1662
- when 58 then
1701
+ when 59 then
1663
1702
  begin
1664
1703
  te = p+1
1665
1704
  begin
@@ -1673,14 +1712,14 @@ te = p+1
1673
1712
  end
1674
1713
  end
1675
1714
  end
1676
- when 40 then
1715
+ when 41 then
1677
1716
  begin
1678
1717
  te = p+1
1679
1718
  begin
1680
1719
  append_literal(data, ts, te)
1681
1720
  end
1682
1721
  end
1683
- when 49 then
1722
+ when 50 then
1684
1723
  begin
1685
1724
  te = p+1
1686
1725
  begin
@@ -1693,14 +1732,14 @@ te = p+1
1693
1732
  begin
1694
1733
  stack[top] = cs
1695
1734
  top+= 1
1696
- cs = 113
1735
+ cs = 121
1697
1736
  _goto_level = _again
1698
1737
  next
1699
1738
  end
1700
1739
 
1701
1740
  end
1702
1741
  end
1703
- when 50 then
1742
+ when 51 then
1704
1743
  begin
1705
1744
  te = p+1
1706
1745
  begin
@@ -1780,7 +1819,7 @@ te = p+1
1780
1819
  end
1781
1820
  end
1782
1821
  end
1783
- when 56 then
1822
+ when 57 then
1784
1823
  begin
1785
1824
  te = p+1
1786
1825
  begin
@@ -1791,7 +1830,7 @@ te = p+1
1791
1830
  end
1792
1831
  end
1793
1832
  end
1794
- when 52 then
1833
+ when 53 then
1795
1834
  begin
1796
1835
  te = p+1
1797
1836
  begin
@@ -1802,7 +1841,7 @@ te = p+1
1802
1841
  end
1803
1842
  end
1804
1843
  end
1805
- when 54 then
1844
+ when 55 then
1806
1845
  begin
1807
1846
  te = p+1
1808
1847
  begin
@@ -1820,7 +1859,7 @@ te = p+1
1820
1859
  emit(:quantifier, :interval, copy(data, ts, te))
1821
1860
  end
1822
1861
  end
1823
- when 46 then
1862
+ when 47 then
1824
1863
  begin
1825
1864
  te = p+1
1826
1865
  begin
@@ -1834,7 +1873,7 @@ te = p+1
1834
1873
  end
1835
1874
  end
1836
1875
  end
1837
- when 48 then
1876
+ when 49 then
1838
1877
  begin
1839
1878
  te = p
1840
1879
  p = p - 1; begin
@@ -1845,15 +1884,16 @@ p = p - 1; begin
1845
1884
  emit_options(text)
1846
1885
  end
1847
1886
  end
1848
- when 47 then
1887
+ when 48 then
1849
1888
  begin
1850
1889
  te = p
1851
1890
  p = p - 1; begin
1891
+ self.capturing_group_count += 1
1852
1892
  text = copy(data, ts, te)
1853
1893
  emit(:group, :capture, text)
1854
1894
  end
1855
1895
  end
1856
- when 55 then
1896
+ when 56 then
1857
1897
  begin
1858
1898
  te = p
1859
1899
  p = p - 1; begin
@@ -1864,7 +1904,7 @@ p = p - 1; begin
1864
1904
  end
1865
1905
  end
1866
1906
  end
1867
- when 51 then
1907
+ when 52 then
1868
1908
  begin
1869
1909
  te = p
1870
1910
  p = p - 1; begin
@@ -1875,7 +1915,7 @@ p = p - 1; begin
1875
1915
  end
1876
1916
  end
1877
1917
  end
1878
- when 53 then
1918
+ when 54 then
1879
1919
  begin
1880
1920
  te = p
1881
1921
  p = p - 1; begin
@@ -1886,28 +1926,28 @@ p = p - 1; begin
1886
1926
  end
1887
1927
  end
1888
1928
  end
1889
- when 60 then
1929
+ when 61 then
1890
1930
  begin
1891
1931
  te = p
1892
1932
  p = p - 1; begin
1893
1933
  append_literal(data, ts, te)
1894
1934
  end
1895
1935
  end
1896
- when 57 then
1936
+ when 58 then
1897
1937
  begin
1898
1938
  te = p
1899
1939
  p = p - 1; begin
1900
1940
  begin
1901
1941
  stack[top] = cs
1902
1942
  top+= 1
1903
- cs = 98
1943
+ cs = 101
1904
1944
  _goto_level = _again
1905
1945
  next
1906
1946
  end
1907
1947
 
1908
1948
  end
1909
1949
  end
1910
- when 45 then
1950
+ when 46 then
1911
1951
  begin
1912
1952
  te = p
1913
1953
  p = p - 1; begin
@@ -1921,7 +1961,7 @@ p = p - 1; begin
1921
1961
  end
1922
1962
  end
1923
1963
  end
1924
- when 44 then
1964
+ when 45 then
1925
1965
  begin
1926
1966
  te = p
1927
1967
  p = p - 1; begin
@@ -1932,7 +1972,7 @@ p = p - 1; begin
1932
1972
  end
1933
1973
  end
1934
1974
  end
1935
- when 43 then
1975
+ when 44 then
1936
1976
  begin
1937
1977
  te = p
1938
1978
  p = p - 1; begin
@@ -1964,7 +2004,7 @@ p = p - 1; begin
1964
2004
  begin
1965
2005
  stack[top] = cs
1966
2006
  top+= 1
1967
- cs = 98
2007
+ cs = 101
1968
2008
  _goto_level = _again
1969
2009
  next
1970
2010
  end
@@ -1981,14 +2021,14 @@ p = p - 1; begin
1981
2021
  next
1982
2022
  end
1983
2023
  end
1984
- when 57 then
2024
+ when 58 then
1985
2025
  begin begin p = ((te))-1; end
1986
2026
 
1987
2027
  append_literal(data, ts, te)
1988
2028
  end
1989
2029
  end
1990
2030
  end
1991
- when 72 then
2031
+ when 73 then
1992
2032
  begin
1993
2033
 
1994
2034
  text = copy(data, ts ? ts-1 : 0,-1)
@@ -2001,7 +2041,7 @@ p = p - 1; begin
2001
2041
  begin
2002
2042
  stack[top] = cs
2003
2043
  top+= 1
2004
- cs = 88
2044
+ cs = 91
2005
2045
  _goto_level = _again
2006
2046
  next
2007
2047
  end
@@ -2021,14 +2061,14 @@ p = p - 1; begin
2021
2061
  begin
2022
2062
  stack[top] = cs
2023
2063
  top+= 1
2024
- cs = 88
2064
+ cs = 91
2025
2065
  _goto_level = _again
2026
2066
  next
2027
2067
  end
2028
2068
 
2029
2069
  end
2030
2070
  end
2031
- when 90 then
2071
+ when 87 then
2032
2072
  begin
2033
2073
 
2034
2074
  text = copy(data, ts ? ts-1 : 0,-1)
@@ -2047,7 +2087,7 @@ p = p - 1; begin
2047
2087
 
2048
2088
  end
2049
2089
  end
2050
- when 92 then
2090
+ when 89 then
2051
2091
  begin
2052
2092
 
2053
2093
  text = copy(data, ts ? ts-1 : 0,-1)
@@ -2131,7 +2171,7 @@ te = p+1
2131
2171
  emit(:group, :comment, copy(data, ts, te))
2132
2172
  end
2133
2173
  end
2134
- when 36 then
2174
+ when 38 then
2135
2175
  begin
2136
2176
  self.group_depth = group_depth - 1 end
2137
2177
  begin
@@ -2153,7 +2193,7 @@ te = p+1
2153
2193
  end
2154
2194
  end
2155
2195
  end
2156
- when 38 then
2196
+ when 40 then
2157
2197
  begin
2158
2198
  self.set_depth = set_depth + 1 end
2159
2199
  begin
@@ -2163,14 +2203,14 @@ te = p+1
2163
2203
  begin
2164
2204
  stack[top] = cs
2165
2205
  top+= 1
2166
- cs = 88
2206
+ cs = 91
2167
2207
  _goto_level = _again
2168
2208
  next
2169
2209
  end
2170
2210
 
2171
2211
  end
2172
2212
  end
2173
- when 66 then
2213
+ when 67 then
2174
2214
  begin
2175
2215
  self.set_depth = set_depth - 1 end
2176
2216
  begin
@@ -2187,7 +2227,7 @@ te = p+1
2187
2227
 
2188
2228
  else
2189
2229
  begin
2190
- cs = 71
2230
+ cs = 74
2191
2231
  _goto_level = _again
2192
2232
  next
2193
2233
  end
@@ -2195,7 +2235,7 @@ te = p+1
2195
2235
  end
2196
2236
  end
2197
2237
  end
2198
- when 71 then
2238
+ when 72 then
2199
2239
  begin
2200
2240
  self.set_depth = set_depth - 1 end
2201
2241
  begin
@@ -2213,7 +2253,7 @@ te = p+1
2213
2253
 
2214
2254
  else
2215
2255
  begin
2216
- cs = 71
2256
+ cs = 74
2217
2257
  _goto_level = _again
2218
2258
  next
2219
2259
  end
@@ -2236,46 +2276,34 @@ te = p+1
2236
2276
  type = :nonposixclass
2237
2277
  end
2238
2278
 
2239
- unless self.class.posix_classes.include?(class_name)
2279
+ unless POSIX_CLASSES[class_name]
2240
2280
  raise ValidationError.for(:posix_class, text)
2241
2281
  end
2242
2282
 
2243
2283
  emit(type, class_name.to_sym, text)
2244
2284
  end
2245
2285
  end
2246
- when 64 then
2286
+ when 65 then
2247
2287
  begin
2248
2288
  te = p+1
2249
2289
  end
2250
2290
  begin
2251
2291
  self.set_depth = set_depth + 1 end
2252
- when 80 then
2253
- begin
2254
- te = p+1
2255
- end
2256
- begin
2257
- act = 17; end
2258
- when 79 then
2259
- begin
2260
- te = p+1
2261
- end
2262
- begin
2263
- act = 18; end
2264
2292
  when 2 then
2265
2293
  begin
2266
2294
  te = p+1
2267
2295
  end
2268
2296
  begin
2269
- act = 57; end
2297
+ act = 58; end
2270
2298
  end
2271
2299
  end
2272
2300
  end
2273
2301
  if _goto_level <= _again
2274
2302
  case _re_scanner_to_state_actions[cs]
2275
- when 61 then
2303
+ when 62 then
2276
2304
  begin
2277
2305
  ts = nil; end
2278
- when 32 then
2306
+ when 34 then
2279
2307
  begin
2280
2308
  ts = nil; end
2281
2309
  begin
@@ -2354,10 +2382,9 @@ end
2354
2382
  File.read("#{__dir__}/scanner/properties/#{name}.csv").scan(/(.+),(.+)/).to_h
2355
2383
  end
2356
2384
 
2357
- def self.posix_classes
2385
+ POSIX_CLASSES =
2358
2386
  %w[alnum alpha ascii blank cntrl digit graph
2359
- lower print punct space upper word xdigit]
2360
- end
2387
+ lower print punct space upper word xdigit].to_h { |c| [c, true] }.freeze
2361
2388
 
2362
2389
  # Emits an array with the details of the scanned pattern
2363
2390
  def emit(type, token, text)
@@ -2392,7 +2419,9 @@ end
2392
2419
  attr_accessor :block,
2393
2420
  :collect_tokens, :tokens, :prev_token,
2394
2421
  :free_spacing, :spacing_stack,
2422
+ :regexp_encoding,
2395
2423
  :group_depth, :set_depth, :conditional_stack,
2424
+ :capturing_group_count,
2396
2425
  :char_pos
2397
2426
 
2398
2427
  def free_spacing?(input_object, options)