regexp_parser 2.3.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +63 -6
  3. data/Gemfile +1 -0
  4. data/README.md +12 -6
  5. data/lib/regexp_parser/error.rb +1 -1
  6. data/lib/regexp_parser/expression/base.rb +9 -57
  7. data/lib/regexp_parser/expression/classes/backreference.rb +1 -0
  8. data/lib/regexp_parser/expression/classes/character_set/range.rb +2 -2
  9. data/lib/regexp_parser/expression/classes/character_set.rb +2 -2
  10. data/lib/regexp_parser/expression/classes/{type.rb → character_type.rb} +0 -0
  11. data/lib/regexp_parser/expression/classes/conditional.rb +2 -2
  12. data/lib/regexp_parser/expression/classes/free_space.rb +1 -1
  13. data/lib/regexp_parser/expression/classes/group.rb +6 -6
  14. data/lib/regexp_parser/expression/classes/keep.rb +2 -0
  15. data/lib/regexp_parser/expression/classes/root.rb +3 -5
  16. data/lib/regexp_parser/expression/classes/{property.rb → unicode_property.rb} +1 -0
  17. data/lib/regexp_parser/expression/methods/construct.rb +43 -0
  18. data/lib/regexp_parser/expression/methods/match_length.rb +1 -1
  19. data/lib/regexp_parser/expression/methods/tests.rb +10 -1
  20. data/lib/regexp_parser/expression/quantifier.rb +41 -23
  21. data/lib/regexp_parser/expression/sequence.rb +9 -23
  22. data/lib/regexp_parser/expression/sequence_operation.rb +2 -2
  23. data/lib/regexp_parser/expression/shared.rb +85 -0
  24. data/lib/regexp_parser/expression/subexpression.rb +11 -7
  25. data/lib/regexp_parser/expression.rb +4 -2
  26. data/lib/regexp_parser/parser.rb +21 -72
  27. data/lib/regexp_parser/scanner/property.rl +1 -1
  28. data/lib/regexp_parser/scanner/scanner.rl +42 -31
  29. data/lib/regexp_parser/scanner.rb +725 -793
  30. data/lib/regexp_parser/syntax/token/escape.rb +1 -1
  31. data/lib/regexp_parser/syntax/token/unicode_property.rb +0 -5
  32. data/lib/regexp_parser/version.rb +1 -1
  33. metadata +10 -8
@@ -2,7 +2,7 @@
2
2
 
3
3
  # line 1 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
4
4
 
5
- # line 649 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
5
+ # line 646 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
6
6
 
7
7
 
8
8
  # THIS IS A GENERATED FILE, DO NOT EDIT DIRECTLY
@@ -43,6 +43,7 @@ class Regexp::Scanner
43
43
  end
44
44
 
45
45
  # Invalid groupOption. Used for inline options.
46
+ # TODO: should become InvalidGroupOptionError in v3.0.0 for consistency
46
47
  class InvalidGroupOption < ValidationError
47
48
  def initialize(option, text)
48
49
  super "Invalid group option #{option} in #{text}"
@@ -63,6 +64,13 @@ class Regexp::Scanner
63
64
  end
64
65
  end
65
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
73
+
66
74
  # Scans the given regular expression text, or Regexp object and collects the
67
75
  # emitted token into an array that gets returned at the end. If a block is
68
76
  # given, it gets called for each emitted token.
@@ -93,7 +101,7 @@ class Regexp::Scanner
93
101
  self.char_pos = 0
94
102
 
95
103
 
96
- # line 96 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
104
+ # line 104 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
97
105
  class << self
98
106
  attr_accessor :_re_scanner_trans_keys
99
107
  private :_re_scanner_trans_keys, :_re_scanner_trans_keys=
@@ -116,51 +124,34 @@ self._re_scanner_trans_keys = [
116
124
  57, 48, 125, 44, 125,
117
125
  123, 123, 9, 122, 9, 125,
118
126
  9, 122, -128, -65, -128,
119
- -65, 38, 38, 94, 120,
120
- 97, 120, 108, 115, 110, 112,
121
- 117, 117, 109, 109, 58,
122
- 58, 93, 93, 104, 104,
123
- 97, 97, 99, 99, 105, 105,
124
- 105, 105, 108, 108, 97,
125
- 97, 110, 110, 107, 107,
126
- 110, 110, 116, 116, 114, 114,
127
- 108, 108, 105, 105, 103,
128
- 103, 105, 105, 116, 116,
129
- 114, 114, 97, 97, 112, 112,
130
- 104, 104, 111, 111, 119,
131
- 119, 101, 101, 114, 114,
132
- 114, 117, 105, 105, 110, 110,
133
- 110, 110, 99, 99, 112,
134
- 112, 97, 97, 99, 99,
135
- 101, 101, 112, 112, 112, 112,
136
- 111, 111, 114, 114, 100,
137
- 100, 100, 100, -128, -65,
138
- -128, -65, 45, 45, 92, 92,
139
- 92, 92, 45, 45, 92,
140
- 92, 92, 92, 48, 123,
141
- 48, 102, 48, 102, 48, 102,
142
- 48, 102, 9, 125, 9,
143
- 125, 9, 125, 9, 125,
144
- 9, 125, 9, 125, 48, 123,
145
- 39, 39, 41, 41, 41,
146
- 57, 62, 62, -128, 127,
147
- -62, -12, 1, 127, 1, 127,
148
- 9, 32, 33, 126, 10,
149
- 10, 63, 63, 33, 126,
150
- 33, 126, 62, 62, 43, 63,
151
- 43, 63, 43, 63, 65,
152
- 122, 44, 57, 43, 63,
153
- 68, 119, 80, 112, -62, 125,
154
- -128, -65, -128, -65, -128,
155
- -65, 38, 38, 38, 93,
156
- 58, 58, 67, 120, -62, 125,
157
- -128, -65, -128, -65, -128,
158
- -65, 48, 55, 48, 55,
159
- 77, 77, 45, 45, 0, 0,
160
- 67, 99, 45, 45, 0,
161
- 0, 92, 92, 48, 102,
162
- 39, 60, 39, 57, 49, 57,
163
- 41, 57, 45, 62, 0
127
+ -65, 38, 38, 58, 93,
128
+ 58, 93, -128, -65, -128, -65,
129
+ 45, 45, 92, 92, 92,
130
+ 92, 45, 45, 92, 92,
131
+ 92, 92, 48, 123, 48, 102,
132
+ 48, 102, 48, 102, 48,
133
+ 102, 9, 125, 9, 125,
134
+ 9, 125, 9, 125, 9, 125,
135
+ 9, 125, 48, 123, 39,
136
+ 39, 41, 41, 41, 57,
137
+ 62, 62, -128, 127, -62, -12,
138
+ 1, 127, 1, 127, 9,
139
+ 32, 33, 126, 10, 10,
140
+ 63, 63, 33, 126, 33, 126,
141
+ 62, 62, 43, 63, 43,
142
+ 63, 43, 63, 65, 122,
143
+ 44, 57, 68, 119, 80, 112,
144
+ -62, 125, -128, -65, -128,
145
+ -65, -128, -65, 38, 38,
146
+ 38, 93, 58, 58, 67, 120,
147
+ -62, 125, -128, -65, -128,
148
+ -65, -128, -65, 48, 55,
149
+ 48, 55, 77, 77, 45, 45,
150
+ 0, 0, 67, 99, 45,
151
+ 45, 0, 0, 92, 92,
152
+ 48, 102, 39, 60, 39, 57,
153
+ 49, 57, 41, 57, 45,
154
+ 62, 0
164
155
  ]
165
156
 
166
157
  class << self
@@ -173,22 +164,16 @@ self._re_scanner_key_spans = [
173
164
  1, 18, 1, 10, 15, 20, 10, 1,
174
165
  22, 19, 1, 10, 19, 19, 10, 18,
175
166
  1, 10, 15, 20, 10, 10, 78, 82,
176
- 1, 114, 117, 114, 64, 64, 1, 27,
177
- 24, 8, 3, 1, 1, 1, 1, 1,
178
- 1, 1, 1, 1, 1, 1, 1, 1,
179
- 1, 1, 1, 1, 1, 1, 1, 1,
180
- 1, 1, 1, 1, 1, 1, 1, 1,
181
- 4, 1, 1, 1, 1, 1, 1, 1,
182
- 1, 1, 1, 1, 1, 1, 1, 64,
183
- 64, 1, 1, 1, 1, 1, 1, 76,
184
- 55, 55, 55, 55, 117, 117, 117, 117,
185
- 117, 117, 76, 1, 1, 17, 1, 256,
186
- 51, 127, 127, 24, 94, 1, 1, 94,
187
- 94, 1, 21, 21, 21, 58, 14, 21,
188
- 52, 33, 188, 64, 64, 64, 1, 56,
189
- 1, 54, 188, 64, 64, 64, 8, 8,
190
- 1, 1, 0, 33, 1, 0, 1, 55,
191
- 22, 19, 9, 17, 18
167
+ 1, 114, 117, 114, 64, 64, 1, 36,
168
+ 36, 64, 64, 1, 1, 1, 1, 1,
169
+ 1, 76, 55, 55, 55, 55, 117, 117,
170
+ 117, 117, 117, 117, 76, 1, 1, 17,
171
+ 1, 256, 51, 127, 127, 24, 94, 1,
172
+ 1, 94, 94, 1, 21, 21, 21, 58,
173
+ 14, 52, 33, 188, 64, 64, 64, 1,
174
+ 56, 1, 54, 188, 64, 64, 64, 8,
175
+ 8, 1, 1, 0, 33, 1, 0, 1,
176
+ 55, 22, 19, 9, 17, 18
192
177
  ]
193
178
 
194
179
  class << self
@@ -202,21 +187,15 @@ self._re_scanner_index_offsets = [
202
187
  443, 466, 486, 488, 499, 519, 539, 550,
203
188
  569, 571, 582, 598, 619, 630, 641, 720,
204
189
  803, 805, 920, 1038, 1153, 1218, 1283, 1285,
205
- 1313, 1338, 1347, 1351, 1353, 1355, 1357, 1359,
206
- 1361, 1363, 1365, 1367, 1369, 1371, 1373, 1375,
207
- 1377, 1379, 1381, 1383, 1385, 1387, 1389, 1391,
208
- 1393, 1395, 1397, 1399, 1401, 1403, 1405, 1407,
209
- 1409, 1414, 1416, 1418, 1420, 1422, 1424, 1426,
210
- 1428, 1430, 1432, 1434, 1436, 1438, 1440, 1442,
211
- 1507, 1572, 1574, 1576, 1578, 1580, 1582, 1584,
212
- 1661, 1717, 1773, 1829, 1885, 2003, 2121, 2239,
213
- 2357, 2475, 2593, 2670, 2672, 2674, 2692, 2694,
214
- 2951, 3003, 3131, 3259, 3284, 3379, 3381, 3383,
215
- 3478, 3573, 3575, 3597, 3619, 3641, 3700, 3715,
216
- 3737, 3790, 3824, 4013, 4078, 4143, 4208, 4210,
217
- 4267, 4269, 4324, 4513, 4578, 4643, 4708, 4717,
218
- 4726, 4728, 4730, 4731, 4765, 4767, 4768, 4770,
219
- 4826, 4849, 4869, 4879, 4897
190
+ 1322, 1359, 1424, 1489, 1491, 1493, 1495, 1497,
191
+ 1499, 1501, 1578, 1634, 1690, 1746, 1802, 1920,
192
+ 2038, 2156, 2274, 2392, 2510, 2587, 2589, 2591,
193
+ 2609, 2611, 2868, 2920, 3048, 3176, 3201, 3296,
194
+ 3298, 3300, 3395, 3490, 3492, 3514, 3536, 3558,
195
+ 3617, 3632, 3685, 3719, 3908, 3973, 4038, 4103,
196
+ 4105, 4162, 4164, 4219, 4408, 4473, 4538, 4603,
197
+ 4612, 4621, 4623, 4625, 4626, 4660, 4662, 4663,
198
+ 4665, 4721, 4744, 4764, 4774, 4792
220
199
  ]
221
200
 
222
201
  class << self
@@ -385,158 +364,147 @@ self._re_scanner_indicies = [
385
364
  51, 51, 51, 51, 51, 51, 51, 51,
386
365
  51, 51, 51, 51, 51, 51, 51, 51,
387
366
  51, 51, 49, 53, 52, 56, 55, 55,
388
- 57, 58, 59, 60, 55, 55, 61, 55,
389
- 55, 55, 55, 62, 55, 55, 55, 63,
390
- 55, 55, 64, 55, 65, 55, 66, 67,
391
- 55, 57, 58, 59, 60, 55, 55, 61,
392
- 55, 55, 55, 55, 62, 55, 55, 55,
393
- 63, 55, 55, 64, 55, 65, 55, 66,
394
- 67, 55, 68, 55, 55, 55, 55, 55,
395
- 55, 69, 55, 70, 55, 71, 55, 72,
396
- 55, 73, 55, 74, 55, 75, 55, 76,
397
- 55, 73, 55, 77, 55, 78, 55, 73,
398
- 55, 79, 55, 80, 55, 81, 55, 73,
399
- 55, 82, 55, 83, 55, 84, 55, 73,
400
- 55, 85, 55, 86, 55, 87, 55, 73,
401
- 55, 88, 55, 89, 55, 90, 55, 73,
402
- 55, 91, 55, 92, 55, 93, 55, 73,
403
- 55, 94, 55, 55, 95, 55, 96, 55,
404
- 87, 55, 97, 55, 87, 55, 98, 55,
405
- 99, 55, 100, 55, 73, 55, 101, 55,
406
- 92, 55, 102, 55, 103, 55, 73, 55,
407
- 60, 55, 105, 105, 105, 105, 105, 105,
408
- 105, 105, 105, 105, 105, 105, 105, 105,
409
- 105, 105, 105, 105, 105, 105, 105, 105,
410
- 105, 105, 105, 105, 105, 105, 105, 105,
411
- 105, 105, 105, 105, 105, 105, 105, 105,
412
- 105, 105, 105, 105, 105, 105, 105, 105,
413
- 105, 105, 105, 105, 105, 105, 105, 105,
414
- 105, 105, 105, 105, 105, 105, 105, 105,
415
- 105, 105, 104, 106, 106, 106, 106, 106,
416
- 106, 106, 106, 106, 106, 106, 106, 106,
417
- 106, 106, 106, 106, 106, 106, 106, 106,
418
- 106, 106, 106, 106, 106, 106, 106, 106,
419
- 106, 106, 106, 106, 106, 106, 106, 106,
420
- 106, 106, 106, 106, 106, 106, 106, 106,
421
- 106, 106, 106, 106, 106, 106, 106, 106,
422
- 106, 106, 106, 106, 106, 106, 106, 106,
423
- 106, 106, 106, 104, 107, 45, 109, 108,
424
- 111, 108, 112, 45, 114, 113, 116, 113,
425
- 117, 117, 117, 117, 117, 117, 117, 117,
426
- 117, 117, 45, 45, 45, 45, 45, 45,
427
- 45, 117, 117, 117, 117, 117, 117, 45,
367
+ 55, 55, 55, 55, 55, 55, 55, 55,
368
+ 55, 55, 55, 55, 55, 55, 55, 55,
369
+ 55, 55, 55, 55, 55, 55, 55, 55,
370
+ 55, 55, 55, 55, 55, 55, 57, 55,
371
+ 57, 55, 56, 55, 55, 55, 55, 55,
372
+ 55, 55, 55, 55, 55, 55, 55, 55,
373
+ 55, 55, 55, 55, 55, 55, 55, 55,
374
+ 55, 55, 55, 55, 55, 55, 55, 55,
375
+ 55, 55, 55, 57, 55, 58, 55, 60,
376
+ 60, 60, 60, 60, 60, 60, 60, 60,
377
+ 60, 60, 60, 60, 60, 60, 60, 60,
378
+ 60, 60, 60, 60, 60, 60, 60, 60,
379
+ 60, 60, 60, 60, 60, 60, 60, 60,
380
+ 60, 60, 60, 60, 60, 60, 60, 60,
381
+ 60, 60, 60, 60, 60, 60, 60, 60,
382
+ 60, 60, 60, 60, 60, 60, 60, 60,
383
+ 60, 60, 60, 60, 60, 60, 60, 59,
384
+ 61, 61, 61, 61, 61, 61, 61, 61,
385
+ 61, 61, 61, 61, 61, 61, 61, 61,
386
+ 61, 61, 61, 61, 61, 61, 61, 61,
387
+ 61, 61, 61, 61, 61, 61, 61, 61,
388
+ 61, 61, 61, 61, 61, 61, 61, 61,
389
+ 61, 61, 61, 61, 61, 61, 61, 61,
390
+ 61, 61, 61, 61, 61, 61, 61, 61,
391
+ 61, 61, 61, 61, 61, 61, 61, 61,
392
+ 59, 62, 45, 64, 63, 66, 63, 67,
393
+ 45, 69, 68, 71, 68, 72, 72, 72,
394
+ 72, 72, 72, 72, 72, 72, 72, 45,
395
+ 45, 45, 45, 45, 45, 45, 72, 72,
396
+ 72, 72, 72, 72, 45, 45, 45, 45,
428
397
  45, 45, 45, 45, 45, 45, 45, 45,
429
398
  45, 45, 45, 45, 45, 45, 45, 45,
399
+ 45, 45, 45, 45, 45, 45, 72, 72,
400
+ 72, 72, 72, 72, 45, 45, 45, 45,
430
401
  45, 45, 45, 45, 45, 45, 45, 45,
431
- 45, 117, 117, 117, 117, 117, 117, 45,
432
402
  45, 45, 45, 45, 45, 45, 45, 45,
403
+ 73, 45, 74, 74, 74, 74, 74, 74,
404
+ 74, 74, 74, 74, 45, 45, 45, 45,
405
+ 45, 45, 45, 74, 74, 74, 74, 74,
406
+ 74, 45, 45, 45, 45, 45, 45, 45,
433
407
  45, 45, 45, 45, 45, 45, 45, 45,
434
- 45, 45, 45, 118, 45, 119, 119, 119,
435
- 119, 119, 119, 119, 119, 119, 119, 45,
436
- 45, 45, 45, 45, 45, 45, 119, 119,
437
- 119, 119, 119, 119, 45, 45, 45, 45,
438
408
  45, 45, 45, 45, 45, 45, 45, 45,
409
+ 45, 45, 45, 74, 74, 74, 74, 74,
410
+ 74, 45, 75, 75, 75, 75, 75, 75,
411
+ 75, 75, 75, 75, 45, 45, 45, 45,
412
+ 45, 45, 45, 75, 75, 75, 75, 75,
413
+ 75, 45, 45, 45, 45, 45, 45, 45,
439
414
  45, 45, 45, 45, 45, 45, 45, 45,
440
- 45, 45, 45, 45, 45, 45, 119, 119,
441
- 119, 119, 119, 119, 45, 120, 120, 120,
442
- 120, 120, 120, 120, 120, 120, 120, 45,
443
- 45, 45, 45, 45, 45, 45, 120, 120,
444
- 120, 120, 120, 120, 45, 45, 45, 45,
445
415
  45, 45, 45, 45, 45, 45, 45, 45,
416
+ 45, 45, 45, 75, 75, 75, 75, 75,
417
+ 75, 45, 76, 76, 76, 76, 76, 76,
418
+ 76, 76, 76, 76, 45, 45, 45, 45,
419
+ 45, 45, 45, 76, 76, 76, 76, 76,
420
+ 76, 45, 45, 45, 45, 45, 45, 45,
446
421
  45, 45, 45, 45, 45, 45, 45, 45,
447
- 45, 45, 45, 45, 45, 45, 120, 120,
448
- 120, 120, 120, 120, 45, 121, 121, 121,
449
- 121, 121, 121, 121, 121, 121, 121, 45,
450
- 45, 45, 45, 45, 45, 45, 121, 121,
451
- 121, 121, 121, 121, 45, 45, 45, 45,
452
422
  45, 45, 45, 45, 45, 45, 45, 45,
423
+ 45, 45, 45, 76, 76, 76, 76, 76,
424
+ 76, 45, 77, 77, 77, 77, 77, 77,
425
+ 77, 77, 77, 77, 45, 45, 45, 45,
426
+ 45, 45, 45, 77, 77, 77, 77, 77,
427
+ 77, 45, 45, 45, 45, 45, 45, 45,
453
428
  45, 45, 45, 45, 45, 45, 45, 45,
454
- 45, 45, 45, 45, 45, 45, 121, 121,
455
- 121, 121, 121, 121, 45, 122, 122, 122,
456
- 122, 122, 122, 122, 122, 122, 122, 45,
457
- 45, 45, 45, 45, 45, 45, 122, 122,
458
- 122, 122, 122, 122, 45, 45, 45, 45,
459
429
  45, 45, 45, 45, 45, 45, 45, 45,
430
+ 45, 45, 45, 77, 77, 77, 77, 77,
431
+ 77, 45, 73, 73, 73, 73, 73, 45,
460
432
  45, 45, 45, 45, 45, 45, 45, 45,
461
- 45, 45, 45, 45, 45, 45, 122, 122,
462
- 122, 122, 122, 122, 45, 118, 118, 118,
463
- 118, 118, 45, 45, 45, 45, 45, 45,
464
433
  45, 45, 45, 45, 45, 45, 45, 45,
465
- 45, 45, 45, 45, 118, 45, 45, 45,
434
+ 45, 73, 45, 45, 45, 45, 45, 45,
466
435
  45, 45, 45, 45, 45, 45, 45, 45,
467
- 45, 45, 45, 45, 123, 123, 123, 123,
468
- 123, 123, 123, 123, 123, 123, 45, 45,
469
- 45, 45, 45, 45, 45, 123, 123, 123,
470
- 123, 123, 123, 45, 45, 45, 45, 45,
436
+ 45, 78, 78, 78, 78, 78, 78, 78,
437
+ 78, 78, 78, 45, 45, 45, 45, 45,
438
+ 45, 45, 78, 78, 78, 78, 78, 78,
471
439
  45, 45, 45, 45, 45, 45, 45, 45,
472
440
  45, 45, 45, 45, 45, 45, 45, 45,
473
- 45, 45, 45, 45, 45, 123, 123, 123,
474
- 123, 123, 123, 45, 45, 45, 45, 45,
475
441
  45, 45, 45, 45, 45, 45, 45, 45,
442
+ 45, 45, 78, 78, 78, 78, 78, 78,
476
443
  45, 45, 45, 45, 45, 45, 45, 45,
477
- 45, 121, 45, 118, 118, 118, 118, 118,
478
444
  45, 45, 45, 45, 45, 45, 45, 45,
445
+ 45, 45, 45, 45, 45, 45, 76, 45,
446
+ 73, 73, 73, 73, 73, 45, 45, 45,
479
447
  45, 45, 45, 45, 45, 45, 45, 45,
480
- 45, 45, 118, 45, 45, 45, 45, 45,
448
+ 45, 45, 45, 45, 45, 45, 45, 73,
481
449
  45, 45, 45, 45, 45, 45, 45, 45,
482
- 45, 45, 124, 124, 124, 124, 124, 124,
483
- 124, 124, 124, 124, 45, 45, 45, 45,
484
- 45, 45, 45, 124, 124, 124, 124, 124,
485
- 124, 45, 45, 45, 45, 45, 45, 45,
450
+ 45, 45, 45, 45, 45, 45, 45, 79,
451
+ 79, 79, 79, 79, 79, 79, 79, 79,
452
+ 79, 45, 45, 45, 45, 45, 45, 45,
453
+ 79, 79, 79, 79, 79, 79, 45, 45,
486
454
  45, 45, 45, 45, 45, 45, 45, 45,
487
455
  45, 45, 45, 45, 45, 45, 45, 45,
488
- 45, 45, 45, 124, 124, 124, 124, 124,
489
- 124, 45, 45, 45, 45, 45, 45, 45,
490
456
  45, 45, 45, 45, 45, 45, 45, 45,
491
- 45, 45, 45, 45, 45, 45, 45, 121,
492
- 45, 118, 118, 118, 118, 118, 45, 45,
457
+ 79, 79, 79, 79, 79, 79, 45, 45,
493
458
  45, 45, 45, 45, 45, 45, 45, 45,
494
459
  45, 45, 45, 45, 45, 45, 45, 45,
495
- 118, 45, 45, 45, 45, 45, 45, 45,
460
+ 45, 45, 45, 45, 76, 45, 73, 73,
461
+ 73, 73, 73, 45, 45, 45, 45, 45,
496
462
  45, 45, 45, 45, 45, 45, 45, 45,
497
- 125, 125, 125, 125, 125, 125, 125, 125,
498
- 125, 125, 45, 45, 45, 45, 45, 45,
499
- 45, 125, 125, 125, 125, 125, 125, 45,
463
+ 45, 45, 45, 45, 45, 73, 45, 45,
500
464
  45, 45, 45, 45, 45, 45, 45, 45,
465
+ 45, 45, 45, 45, 45, 80, 80, 80,
466
+ 80, 80, 80, 80, 80, 80, 80, 45,
467
+ 45, 45, 45, 45, 45, 45, 80, 80,
468
+ 80, 80, 80, 80, 45, 45, 45, 45,
501
469
  45, 45, 45, 45, 45, 45, 45, 45,
502
470
  45, 45, 45, 45, 45, 45, 45, 45,
503
- 45, 125, 125, 125, 125, 125, 125, 45,
471
+ 45, 45, 45, 45, 45, 45, 80, 80,
472
+ 80, 80, 80, 80, 45, 45, 45, 45,
504
473
  45, 45, 45, 45, 45, 45, 45, 45,
505
474
  45, 45, 45, 45, 45, 45, 45, 45,
506
- 45, 45, 45, 45, 45, 121, 45, 118,
507
- 118, 118, 118, 118, 45, 45, 45, 45,
475
+ 45, 45, 76, 45, 73, 73, 73, 73,
476
+ 73, 45, 45, 45, 45, 45, 45, 45,
508
477
  45, 45, 45, 45, 45, 45, 45, 45,
509
- 45, 45, 45, 45, 45, 45, 118, 45,
478
+ 45, 45, 45, 73, 45, 45, 45, 45,
510
479
  45, 45, 45, 45, 45, 45, 45, 45,
511
- 45, 45, 45, 45, 45, 45, 126, 126,
512
- 126, 126, 126, 126, 126, 126, 126, 126,
513
- 45, 45, 45, 45, 45, 45, 45, 126,
514
- 126, 126, 126, 126, 126, 45, 45, 45,
480
+ 45, 45, 45, 81, 81, 81, 81, 81,
481
+ 81, 81, 81, 81, 81, 45, 45, 45,
482
+ 45, 45, 45, 45, 81, 81, 81, 81,
483
+ 81, 81, 45, 45, 45, 45, 45, 45,
515
484
  45, 45, 45, 45, 45, 45, 45, 45,
516
485
  45, 45, 45, 45, 45, 45, 45, 45,
517
- 45, 45, 45, 45, 45, 45, 45, 126,
518
- 126, 126, 126, 126, 126, 45, 45, 45,
486
+ 45, 45, 45, 45, 81, 81, 81, 81,
487
+ 81, 81, 45, 45, 45, 45, 45, 45,
519
488
  45, 45, 45, 45, 45, 45, 45, 45,
520
489
  45, 45, 45, 45, 45, 45, 45, 45,
521
- 45, 45, 45, 121, 45, 118, 118, 118,
522
- 118, 118, 45, 45, 45, 45, 45, 45,
490
+ 76, 45, 73, 73, 73, 73, 73, 45,
523
491
  45, 45, 45, 45, 45, 45, 45, 45,
524
- 45, 45, 45, 45, 118, 45, 45, 45,
525
492
  45, 45, 45, 45, 45, 45, 45, 45,
526
- 45, 45, 45, 45, 127, 127, 127, 127,
527
- 127, 127, 127, 127, 127, 127, 45, 45,
528
- 45, 45, 45, 45, 45, 127, 127, 127,
529
- 127, 127, 127, 45, 45, 45, 45, 45,
493
+ 45, 73, 45, 45, 45, 45, 45, 45,
530
494
  45, 45, 45, 45, 45, 45, 45, 45,
495
+ 45, 82, 82, 82, 82, 82, 82, 82,
496
+ 82, 82, 82, 45, 45, 45, 45, 45,
497
+ 45, 45, 82, 82, 82, 82, 82, 82,
531
498
  45, 45, 45, 45, 45, 45, 45, 45,
532
- 45, 45, 45, 45, 45, 127, 127, 127,
533
- 127, 127, 127, 45, 45, 45, 45, 45,
534
499
  45, 45, 45, 45, 45, 45, 45, 45,
535
500
  45, 45, 45, 45, 45, 45, 45, 45,
536
- 45, 121, 45, 118, 118, 118, 118, 118,
501
+ 45, 45, 82, 82, 82, 82, 82, 82,
537
502
  45, 45, 45, 45, 45, 45, 45, 45,
538
503
  45, 45, 45, 45, 45, 45, 45, 45,
539
- 45, 45, 118, 45, 45, 45, 45, 45,
504
+ 45, 45, 45, 45, 45, 45, 76, 45,
505
+ 73, 73, 73, 73, 73, 45, 45, 45,
506
+ 45, 45, 45, 45, 45, 45, 45, 45,
507
+ 45, 45, 45, 45, 45, 45, 45, 73,
540
508
  45, 45, 45, 45, 45, 45, 45, 45,
541
509
  45, 45, 45, 45, 45, 45, 45, 45,
542
510
  45, 45, 45, 45, 45, 45, 45, 45,
@@ -547,21 +515,21 @@ self._re_scanner_indicies = [
547
515
  45, 45, 45, 45, 45, 45, 45, 45,
548
516
  45, 45, 45, 45, 45, 45, 45, 45,
549
517
  45, 45, 45, 45, 45, 45, 45, 45,
550
- 45, 45, 45, 45, 45, 45, 45, 121,
551
- 45, 129, 129, 129, 129, 129, 129, 129,
552
- 129, 129, 129, 128, 128, 128, 128, 128,
553
- 128, 128, 129, 129, 129, 129, 129, 129,
554
- 128, 128, 128, 128, 128, 128, 128, 128,
555
- 128, 128, 128, 128, 128, 128, 128, 128,
556
- 128, 128, 128, 128, 128, 128, 128, 128,
557
- 128, 128, 129, 129, 129, 129, 129, 129,
558
- 128, 128, 128, 128, 128, 128, 128, 128,
559
- 128, 128, 128, 128, 128, 128, 128, 128,
560
- 128, 128, 128, 128, 45, 128, 132, 131,
561
- 133, 130, 133, 130, 130, 130, 130, 130,
562
- 130, 134, 134, 134, 134, 134, 134, 134,
563
- 134, 134, 134, 130, 132, 135, 45, 45,
564
518
  45, 45, 45, 45, 45, 45, 45, 45,
519
+ 45, 45, 45, 45, 76, 45, 84, 84,
520
+ 84, 84, 84, 84, 84, 84, 84, 84,
521
+ 83, 83, 83, 83, 83, 83, 83, 84,
522
+ 84, 84, 84, 84, 84, 83, 83, 83,
523
+ 83, 83, 83, 83, 83, 83, 83, 83,
524
+ 83, 83, 83, 83, 83, 83, 83, 83,
525
+ 83, 83, 83, 83, 83, 83, 83, 84,
526
+ 84, 84, 84, 84, 84, 83, 83, 83,
527
+ 83, 83, 83, 83, 83, 83, 83, 83,
528
+ 83, 83, 83, 83, 83, 83, 83, 83,
529
+ 83, 45, 83, 87, 86, 88, 85, 88,
530
+ 85, 85, 85, 85, 85, 85, 89, 89,
531
+ 89, 89, 89, 89, 89, 89, 89, 89,
532
+ 85, 87, 90, 45, 45, 45, 45, 45,
565
533
  45, 45, 45, 45, 45, 45, 45, 45,
566
534
  45, 45, 45, 45, 45, 45, 45, 45,
567
535
  45, 45, 45, 45, 45, 45, 45, 45,
@@ -569,163 +537,161 @@ self._re_scanner_indicies = [
569
537
  45, 45, 45, 45, 45, 45, 45, 45,
570
538
  45, 45, 45, 45, 45, 45, 45, 45,
571
539
  45, 45, 45, 45, 45, 45, 45, 45,
540
+ 45, 45, 45, 45, 45, 2, 2, 2,
572
541
  2, 2, 2, 2, 2, 2, 2, 2,
573
542
  2, 2, 2, 2, 2, 2, 2, 2,
574
543
  2, 2, 2, 2, 2, 2, 2, 2,
575
- 2, 2, 2, 2, 2, 2, 3, 3,
544
+ 2, 2, 2, 3, 3, 3, 3, 3,
576
545
  3, 3, 3, 3, 3, 3, 3, 3,
577
- 3, 3, 3, 3, 3, 3, 136, 136,
578
- 136, 136, 136, 45, 45, 45, 45, 45,
579
- 45, 45, 45, 45, 45, 45, 45, 137,
580
- 137, 137, 137, 137, 137, 137, 137, 138,
581
- 138, 138, 138, 138, 137, 137, 137, 137,
582
- 137, 137, 137, 137, 137, 137, 137, 137,
583
- 137, 137, 137, 137, 137, 137, 139, 140,
584
- 140, 141, 142, 140, 140, 140, 143, 144,
585
- 145, 146, 140, 140, 147, 140, 140, 140,
586
- 140, 140, 140, 140, 140, 140, 140, 140,
587
- 140, 140, 140, 140, 140, 148, 140, 140,
588
- 140, 140, 140, 140, 140, 140, 140, 140,
589
- 140, 140, 140, 140, 140, 140, 140, 140,
590
- 140, 140, 140, 140, 140, 140, 140, 140,
591
- 140, 149, 150, 151, 152, 140, 140, 140,
592
- 140, 140, 140, 140, 140, 140, 140, 140,
593
- 140, 140, 140, 140, 140, 140, 140, 140,
594
- 140, 140, 140, 140, 140, 140, 140, 140,
595
- 140, 153, 154, 151, 140, 137, 140, 2,
546
+ 3, 3, 3, 91, 91, 91, 91, 91,
547
+ 45, 45, 45, 45, 45, 45, 45, 45,
548
+ 45, 45, 45, 45, 92, 92, 92, 92,
549
+ 92, 92, 92, 92, 93, 93, 93, 93,
550
+ 93, 92, 92, 92, 92, 92, 92, 92,
551
+ 92, 92, 92, 92, 92, 92, 92, 92,
552
+ 92, 92, 92, 94, 95, 95, 96, 97,
553
+ 95, 95, 95, 98, 99, 100, 101, 95,
554
+ 95, 102, 95, 95, 95, 95, 95, 95,
555
+ 95, 95, 95, 95, 95, 95, 95, 95,
556
+ 95, 95, 103, 95, 95, 95, 95, 95,
557
+ 95, 95, 95, 95, 95, 95, 95, 95,
558
+ 95, 95, 95, 95, 95, 95, 95, 95,
559
+ 95, 95, 95, 95, 95, 95, 104, 105,
560
+ 106, 107, 95, 95, 95, 95, 95, 95,
561
+ 95, 95, 95, 95, 95, 95, 95, 95,
562
+ 95, 95, 95, 95, 95, 95, 95, 95,
563
+ 95, 95, 95, 95, 95, 95, 108, 109,
564
+ 106, 95, 92, 95, 2, 2, 2, 2,
596
565
  2, 2, 2, 2, 2, 2, 2, 2,
597
566
  2, 2, 2, 2, 2, 2, 2, 2,
598
567
  2, 2, 2, 2, 2, 2, 2, 2,
599
- 2, 2, 2, 2, 2, 3, 3, 3,
568
+ 2, 2, 3, 3, 3, 3, 3, 3,
600
569
  3, 3, 3, 3, 3, 3, 3, 3,
601
- 3, 3, 3, 3, 3, 136, 136, 136,
602
- 136, 136, 155, 137, 137, 137, 137, 137,
603
- 137, 137, 137, 137, 137, 137, 137, 137,
604
- 137, 137, 137, 137, 137, 137, 137, 137,
605
- 137, 137, 137, 137, 137, 137, 137, 137,
606
- 137, 137, 155, 155, 155, 155, 155, 155,
607
- 155, 155, 155, 155, 155, 155, 155, 155,
608
- 155, 155, 155, 155, 155, 155, 155, 155,
609
- 155, 155, 155, 155, 155, 155, 155, 155,
610
- 155, 155, 155, 155, 155, 155, 155, 155,
611
- 155, 155, 155, 155, 155, 155, 155, 155,
612
- 155, 155, 155, 155, 155, 155, 155, 155,
613
- 155, 155, 155, 155, 155, 155, 155, 155,
614
- 155, 155, 155, 155, 155, 155, 155, 155,
615
- 155, 155, 155, 155, 155, 155, 155, 155,
616
- 155, 155, 155, 155, 155, 155, 155, 155,
617
- 155, 155, 155, 155, 155, 155, 155, 155,
618
- 155, 137, 155, 137, 137, 137, 137, 137,
619
- 137, 137, 137, 138, 138, 138, 138, 138,
620
- 137, 137, 137, 137, 137, 137, 137, 137,
621
- 137, 137, 137, 137, 137, 137, 137, 137,
622
- 137, 137, 139, 156, 156, 156, 156, 156,
623
- 156, 156, 156, 156, 156, 156, 156, 156,
624
- 156, 156, 156, 156, 156, 156, 156, 156,
625
- 156, 156, 156, 156, 156, 156, 156, 156,
626
- 156, 156, 156, 156, 156, 156, 156, 156,
627
- 156, 156, 156, 156, 156, 156, 156, 156,
628
- 156, 156, 156, 156, 156, 156, 156, 156,
629
- 156, 156, 156, 156, 156, 156, 156, 156,
630
- 156, 156, 156, 156, 156, 156, 156, 156,
631
- 156, 156, 156, 156, 156, 156, 156, 156,
632
- 156, 156, 156, 156, 156, 156, 156, 156,
633
- 156, 156, 156, 156, 156, 156, 156, 156,
634
- 156, 137, 156, 139, 139, 139, 139, 139,
635
- 156, 156, 156, 156, 156, 156, 156, 156,
636
- 156, 156, 156, 156, 156, 156, 156, 156,
637
- 156, 156, 139, 156, 140, 140, 155, 155,
638
- 140, 140, 140, 155, 155, 155, 155, 140,
639
- 140, 155, 140, 140, 140, 140, 140, 140,
640
- 140, 140, 140, 140, 140, 140, 140, 140,
641
- 140, 140, 155, 140, 140, 140, 140, 140,
642
- 140, 140, 140, 140, 140, 140, 140, 140,
643
- 140, 140, 140, 140, 140, 140, 140, 140,
644
- 140, 140, 140, 140, 140, 140, 155, 155,
645
- 155, 155, 140, 140, 140, 140, 140, 140,
646
- 140, 140, 140, 140, 140, 140, 140, 140,
570
+ 3, 3, 91, 91, 91, 91, 91, 110,
571
+ 92, 92, 92, 92, 92, 92, 92, 92,
572
+ 92, 92, 92, 92, 92, 92, 92, 92,
573
+ 92, 92, 92, 92, 92, 92, 92, 92,
574
+ 92, 92, 92, 92, 92, 92, 92, 110,
575
+ 110, 110, 110, 110, 110, 110, 110, 110,
576
+ 110, 110, 110, 110, 110, 110, 110, 110,
577
+ 110, 110, 110, 110, 110, 110, 110, 110,
578
+ 110, 110, 110, 110, 110, 110, 110, 110,
579
+ 110, 110, 110, 110, 110, 110, 110, 110,
580
+ 110, 110, 110, 110, 110, 110, 110, 110,
581
+ 110, 110, 110, 110, 110, 110, 110, 110,
582
+ 110, 110, 110, 110, 110, 110, 110, 110,
583
+ 110, 110, 110, 110, 110, 110, 110, 110,
584
+ 110, 110, 110, 110, 110, 110, 110, 110,
585
+ 110, 110, 110, 110, 110, 110, 110, 110,
586
+ 110, 110, 110, 110, 110, 110, 92, 110,
587
+ 92, 92, 92, 92, 92, 92, 92, 92,
588
+ 93, 93, 93, 93, 93, 92, 92, 92,
589
+ 92, 92, 92, 92, 92, 92, 92, 92,
590
+ 92, 92, 92, 92, 92, 92, 92, 94,
591
+ 111, 111, 111, 111, 111, 111, 111, 111,
592
+ 111, 111, 111, 111, 111, 111, 111, 111,
593
+ 111, 111, 111, 111, 111, 111, 111, 111,
594
+ 111, 111, 111, 111, 111, 111, 111, 111,
595
+ 111, 111, 111, 111, 111, 111, 111, 111,
596
+ 111, 111, 111, 111, 111, 111, 111, 111,
597
+ 111, 111, 111, 111, 111, 111, 111, 111,
598
+ 111, 111, 111, 111, 111, 111, 111, 111,
599
+ 111, 111, 111, 111, 111, 111, 111, 111,
600
+ 111, 111, 111, 111, 111, 111, 111, 111,
601
+ 111, 111, 111, 111, 111, 111, 111, 111,
602
+ 111, 111, 111, 111, 111, 111, 92, 111,
603
+ 94, 94, 94, 94, 94, 111, 111, 111,
604
+ 111, 111, 111, 111, 111, 111, 111, 111,
605
+ 111, 111, 111, 111, 111, 111, 111, 94,
606
+ 111, 95, 95, 110, 110, 95, 95, 95,
607
+ 110, 110, 110, 110, 95, 95, 110, 95,
608
+ 95, 95, 95, 95, 95, 95, 95, 95,
609
+ 95, 95, 95, 95, 95, 95, 95, 110,
610
+ 95, 95, 95, 95, 95, 95, 95, 95,
611
+ 95, 95, 95, 95, 95, 95, 95, 95,
612
+ 95, 95, 95, 95, 95, 95, 95, 95,
613
+ 95, 95, 95, 110, 110, 110, 110, 95,
614
+ 95, 95, 95, 95, 95, 95, 95, 95,
615
+ 95, 95, 95, 95, 95, 95, 95, 95,
616
+ 95, 95, 95, 95, 95, 95, 95, 95,
617
+ 95, 95, 95, 110, 110, 110, 95, 110,
618
+ 113, 96, 115, 114, 118, 117, 5, 117,
619
+ 117, 117, 119, 120, 116, 117, 117, 117,
620
+ 117, 117, 117, 117, 117, 117, 117, 117,
621
+ 117, 117, 117, 117, 117, 8, 117, 121,
622
+ 118, 8, 117, 117, 117, 117, 117, 117,
623
+ 117, 117, 117, 117, 117, 117, 117, 117,
624
+ 117, 117, 117, 117, 117, 117, 117, 117,
625
+ 117, 117, 117, 117, 117, 117, 117, 117,
626
+ 117, 117, 117, 117, 117, 117, 117, 117,
627
+ 117, 117, 117, 117, 117, 117, 117, 117,
628
+ 117, 117, 117, 117, 117, 117, 117, 117,
629
+ 117, 117, 117, 117, 117, 117, 117, 117,
630
+ 117, 8, 117, 116, 117, 116, 117, 117,
631
+ 117, 116, 116, 116, 117, 117, 117, 117,
632
+ 117, 117, 117, 117, 117, 117, 117, 117,
633
+ 117, 117, 117, 117, 122, 117, 116, 116,
634
+ 116, 117, 117, 117, 117, 117, 117, 117,
635
+ 117, 117, 117, 117, 117, 117, 117, 117,
636
+ 117, 117, 117, 117, 117, 117, 117, 117,
637
+ 117, 117, 117, 117, 117, 117, 117, 117,
638
+ 117, 117, 117, 117, 117, 117, 117, 117,
639
+ 117, 117, 117, 117, 117, 117, 117, 117,
640
+ 117, 117, 117, 117, 117, 117, 117, 117,
641
+ 117, 117, 117, 117, 117, 117, 117, 117,
642
+ 116, 117, 8, 9, 125, 124, 124, 124,
643
+ 124, 124, 124, 124, 124, 124, 124, 124,
644
+ 124, 124, 124, 124, 124, 124, 124, 124,
645
+ 125, 124, 127, 126, 126, 126, 126, 126,
646
+ 126, 126, 126, 126, 126, 126, 126, 126,
647
+ 126, 126, 126, 126, 126, 126, 127, 126,
648
+ 129, 128, 128, 128, 128, 128, 128, 128,
649
+ 128, 128, 128, 128, 128, 128, 128, 128,
650
+ 128, 128, 128, 128, 129, 128, 131, 131,
651
+ 130, 130, 130, 130, 131, 130, 130, 130,
652
+ 132, 130, 130, 130, 130, 130, 130, 130,
653
+ 130, 130, 130, 130, 130, 130, 130, 131,
654
+ 130, 130, 130, 130, 130, 130, 130, 131,
655
+ 130, 130, 130, 130, 133, 130, 130, 130,
656
+ 134, 130, 130, 130, 130, 130, 130, 130,
657
+ 130, 130, 130, 130, 130, 130, 130, 131,
658
+ 130, 136, 135, 135, 135, 43, 43, 43,
659
+ 43, 43, 43, 43, 43, 43, 43, 135,
660
+ 137, 45, 45, 45, 137, 45, 45, 45,
661
+ 45, 45, 45, 45, 45, 45, 137, 137,
662
+ 45, 45, 45, 137, 137, 45, 45, 45,
663
+ 45, 45, 45, 45, 45, 45, 45, 45,
664
+ 137, 45, 45, 45, 137, 45, 45, 45,
665
+ 45, 45, 45, 45, 45, 45, 45, 137,
666
+ 45, 45, 45, 137, 45, 138, 45, 45,
667
+ 45, 45, 45, 45, 45, 45, 45, 45,
668
+ 45, 45, 45, 45, 45, 45, 45, 45,
669
+ 45, 45, 45, 45, 45, 45, 45, 45,
670
+ 45, 45, 45, 45, 45, 138, 45, 139,
671
+ 139, 139, 139, 139, 139, 139, 139, 139,
672
+ 139, 139, 139, 139, 139, 139, 139, 139,
673
+ 139, 139, 139, 139, 139, 139, 139, 139,
674
+ 139, 139, 139, 139, 139, 140, 140, 140,
647
675
  140, 140, 140, 140, 140, 140, 140, 140,
648
- 140, 140, 140, 140, 140, 140, 155, 155,
649
- 155, 140, 155, 158, 141, 160, 159, 163,
650
- 162, 5, 162, 162, 162, 164, 165, 161,
651
- 162, 162, 162, 162, 162, 162, 162, 162,
652
- 162, 162, 162, 162, 162, 162, 162, 162,
653
- 8, 162, 166, 163, 8, 162, 162, 162,
654
- 162, 162, 162, 162, 162, 162, 162, 162,
655
- 162, 162, 162, 162, 162, 162, 162, 162,
656
- 162, 162, 162, 162, 162, 162, 162, 162,
657
- 162, 162, 162, 162, 162, 162, 162, 162,
658
- 162, 162, 162, 162, 162, 162, 162, 162,
659
- 162, 162, 162, 162, 162, 162, 162, 162,
660
- 162, 162, 162, 162, 162, 162, 162, 162,
661
- 162, 162, 162, 162, 8, 162, 161, 162,
662
- 161, 162, 162, 162, 161, 161, 161, 162,
663
- 162, 162, 162, 162, 162, 162, 162, 162,
664
- 162, 162, 162, 162, 162, 162, 162, 167,
665
- 162, 161, 161, 161, 162, 162, 162, 162,
666
- 162, 162, 162, 162, 162, 162, 162, 162,
667
- 162, 162, 162, 162, 162, 162, 162, 162,
668
- 162, 162, 162, 162, 162, 162, 162, 162,
669
- 162, 162, 162, 162, 162, 162, 162, 162,
670
- 162, 162, 162, 162, 162, 162, 162, 162,
671
- 162, 162, 162, 162, 162, 162, 162, 162,
672
- 162, 162, 162, 162, 162, 162, 162, 162,
673
- 162, 162, 162, 161, 162, 8, 9, 170,
674
- 169, 169, 169, 169, 169, 169, 169, 169,
675
- 169, 169, 169, 169, 169, 169, 169, 169,
676
- 169, 169, 169, 170, 169, 172, 171, 171,
677
- 171, 171, 171, 171, 171, 171, 171, 171,
678
- 171, 171, 171, 171, 171, 171, 171, 171,
679
- 171, 172, 171, 174, 173, 173, 173, 173,
680
- 173, 173, 173, 173, 173, 173, 173, 173,
681
- 173, 173, 173, 173, 173, 173, 173, 174,
682
- 173, 176, 176, 175, 175, 175, 175, 176,
683
- 175, 175, 175, 177, 175, 175, 175, 175,
684
- 175, 175, 175, 175, 175, 175, 175, 175,
685
- 175, 175, 176, 175, 175, 175, 175, 175,
686
- 175, 175, 176, 175, 175, 175, 175, 178,
687
- 175, 175, 175, 179, 175, 175, 175, 175,
688
- 175, 175, 175, 175, 175, 175, 175, 175,
689
- 175, 175, 176, 175, 181, 180, 180, 180,
690
- 43, 43, 43, 43, 43, 43, 43, 43,
691
- 43, 43, 180, 183, 182, 182, 182, 182,
692
- 182, 182, 182, 182, 182, 182, 182, 182,
693
- 182, 182, 182, 182, 182, 182, 182, 183,
694
- 182, 184, 45, 45, 45, 184, 45, 45,
695
- 45, 45, 45, 45, 45, 45, 45, 184,
696
- 184, 45, 45, 45, 184, 184, 45, 45,
697
- 45, 45, 45, 45, 45, 45, 45, 45,
698
- 45, 184, 45, 45, 45, 184, 45, 45,
699
- 45, 45, 45, 45, 45, 45, 45, 45,
700
- 184, 45, 45, 45, 184, 45, 185, 45,
701
- 45, 45, 45, 45, 45, 45, 45, 45,
702
- 45, 45, 45, 45, 45, 45, 45, 45,
703
- 45, 45, 45, 45, 45, 45, 45, 45,
704
- 45, 45, 45, 45, 45, 45, 185, 45,
705
- 186, 186, 186, 186, 186, 186, 186, 186,
706
- 186, 186, 186, 186, 186, 186, 186, 186,
707
- 186, 186, 186, 186, 186, 186, 186, 186,
708
- 186, 186, 186, 186, 186, 186, 187, 187,
709
- 187, 187, 187, 187, 187, 187, 187, 187,
710
- 187, 187, 187, 187, 187, 187, 188, 188,
711
- 188, 188, 188, 50, 50, 50, 50, 50,
676
+ 140, 140, 140, 140, 140, 141, 141, 141,
677
+ 141, 141, 50, 50, 50, 50, 50, 50,
712
678
  50, 50, 50, 50, 50, 50, 50, 50,
713
679
  50, 50, 50, 50, 50, 50, 50, 50,
714
680
  50, 50, 50, 50, 50, 50, 50, 50,
715
681
  50, 50, 50, 50, 50, 50, 50, 50,
716
682
  50, 50, 50, 50, 50, 50, 50, 50,
717
- 50, 50, 189, 50, 190, 50, 189, 189,
718
- 189, 189, 50, 191, 189, 50, 50, 50,
683
+ 50, 142, 50, 143, 50, 142, 142, 142,
684
+ 142, 50, 144, 142, 50, 50, 50, 50,
719
685
  50, 50, 50, 50, 50, 50, 50, 50,
720
- 50, 50, 50, 50, 50, 189, 50, 50,
686
+ 50, 50, 50, 50, 142, 50, 50, 50,
721
687
  50, 50, 50, 50, 50, 50, 50, 50,
722
688
  50, 50, 50, 50, 50, 50, 50, 50,
723
689
  50, 50, 50, 50, 50, 50, 50, 50,
724
- 50, 192, 193, 194, 195, 50, 50, 50,
690
+ 145, 146, 147, 148, 50, 50, 50, 50,
725
691
  50, 50, 50, 50, 50, 50, 50, 50,
726
692
  50, 50, 50, 50, 50, 50, 50, 50,
727
693
  50, 50, 50, 50, 50, 50, 50, 50,
728
- 50, 189, 189, 189, 50, 50, 50, 50,
694
+ 142, 142, 142, 50, 50, 50, 50, 50,
729
695
  50, 50, 50, 50, 50, 50, 50, 50,
730
696
  50, 50, 50, 50, 50, 50, 50, 50,
731
697
  50, 50, 50, 50, 50, 50, 50, 50,
@@ -733,7 +699,7 @@ self._re_scanner_indicies = [
733
699
  50, 50, 50, 50, 50, 50, 50, 50,
734
700
  50, 50, 50, 50, 50, 50, 50, 50,
735
701
  50, 50, 50, 50, 50, 50, 50, 50,
736
- 50, 50, 50, 50, 50, 196, 51, 51,
702
+ 50, 50, 50, 50, 149, 51, 51, 51,
737
703
  51, 51, 51, 51, 51, 51, 51, 51,
738
704
  51, 51, 51, 51, 51, 51, 51, 51,
739
705
  51, 51, 51, 51, 51, 51, 51, 51,
@@ -741,104 +707,104 @@ self._re_scanner_indicies = [
741
707
  51, 51, 51, 51, 51, 51, 51, 51,
742
708
  51, 51, 51, 51, 51, 51, 51, 51,
743
709
  51, 51, 51, 51, 51, 51, 51, 51,
744
- 51, 51, 51, 51, 51, 51, 196, 197,
745
- 197, 197, 197, 197, 197, 197, 197, 197,
746
- 197, 197, 197, 197, 197, 197, 197, 197,
747
- 197, 197, 197, 197, 197, 197, 197, 197,
748
- 197, 197, 197, 197, 197, 197, 197, 197,
749
- 197, 197, 197, 197, 197, 197, 197, 197,
750
- 197, 197, 197, 197, 197, 197, 197, 197,
751
- 197, 197, 197, 197, 197, 197, 197, 197,
752
- 197, 197, 197, 197, 197, 197, 197, 196,
753
- 198, 196, 200, 199, 199, 199, 199, 199,
754
- 199, 199, 199, 199, 199, 199, 199, 199,
755
- 199, 199, 199, 199, 199, 199, 199, 199,
756
- 199, 199, 199, 199, 199, 199, 199, 199,
757
- 199, 199, 199, 199, 199, 199, 199, 199,
758
- 199, 199, 199, 199, 199, 199, 199, 199,
759
- 199, 199, 199, 199, 199, 199, 199, 199,
760
- 199, 201, 199, 204, 203, 206, 206, 205,
761
- 205, 205, 206, 205, 205, 205, 205, 206,
762
- 205, 205, 206, 205, 205, 206, 205, 205,
763
- 205, 206, 205, 205, 205, 206, 206, 206,
764
- 205, 205, 205, 206, 206, 206, 206, 206,
765
- 206, 205, 206, 205, 205, 205, 205, 205,
766
- 206, 205, 206, 205, 206, 206, 206, 206,
767
- 206, 206, 206, 205, 207, 207, 207, 207,
768
- 207, 207, 207, 207, 207, 207, 207, 207,
769
- 207, 207, 207, 207, 207, 207, 207, 207,
770
- 207, 207, 207, 207, 207, 207, 207, 207,
771
- 207, 207, 208, 208, 208, 208, 208, 208,
772
- 208, 208, 208, 208, 208, 208, 208, 208,
773
- 208, 208, 209, 209, 209, 209, 209, 105,
774
- 105, 105, 105, 105, 105, 105, 105, 105,
775
- 105, 105, 105, 105, 105, 105, 105, 105,
776
- 105, 105, 105, 105, 105, 105, 105, 105,
777
- 105, 105, 105, 105, 105, 105, 105, 105,
778
- 105, 105, 105, 105, 105, 105, 105, 105,
779
- 105, 105, 105, 105, 105, 105, 210, 105,
780
- 105, 105, 210, 210, 210, 210, 105, 105,
781
- 210, 105, 211, 212, 212, 212, 212, 212,
782
- 212, 212, 213, 213, 105, 105, 105, 105,
783
- 105, 210, 105, 45, 45, 214, 215, 105,
784
- 105, 45, 215, 105, 105, 45, 105, 216,
785
- 105, 105, 217, 105, 215, 215, 105, 105,
786
- 105, 215, 215, 105, 45, 210, 210, 210,
787
- 210, 105, 105, 218, 218, 107, 215, 218,
788
- 218, 105, 215, 105, 105, 105, 105, 105,
789
- 218, 105, 217, 105, 218, 215, 218, 219,
790
- 218, 215, 220, 105, 45, 210, 210, 210,
791
- 105, 105, 105, 105, 105, 105, 105, 105,
792
- 105, 105, 105, 105, 105, 105, 105, 105,
793
- 105, 105, 105, 105, 105, 105, 105, 105,
794
- 105, 105, 105, 105, 105, 105, 105, 105,
795
- 105, 105, 105, 105, 105, 105, 105, 105,
796
- 105, 105, 105, 105, 105, 105, 105, 105,
797
- 105, 105, 105, 105, 105, 105, 105, 105,
798
- 105, 105, 105, 105, 105, 105, 105, 105,
799
- 105, 221, 106, 106, 106, 106, 106, 106,
800
- 106, 106, 106, 106, 106, 106, 106, 106,
801
- 106, 106, 106, 106, 106, 106, 106, 106,
802
- 106, 106, 106, 106, 106, 106, 106, 106,
803
- 106, 106, 106, 106, 106, 106, 106, 106,
804
- 106, 106, 106, 106, 106, 106, 106, 106,
805
- 106, 106, 106, 106, 106, 106, 106, 106,
806
- 106, 106, 106, 106, 106, 106, 106, 106,
807
- 106, 106, 221, 222, 222, 222, 222, 222,
808
- 222, 222, 222, 222, 222, 222, 222, 222,
809
- 222, 222, 222, 222, 222, 222, 222, 222,
810
- 222, 222, 222, 222, 222, 222, 222, 222,
811
- 222, 222, 222, 222, 222, 222, 222, 222,
812
- 222, 222, 222, 222, 222, 222, 222, 222,
813
- 222, 222, 222, 222, 222, 222, 222, 222,
814
- 222, 222, 222, 222, 222, 222, 222, 222,
815
- 222, 222, 222, 221, 224, 224, 224, 224,
816
- 224, 224, 224, 224, 223, 226, 226, 226,
817
- 226, 226, 226, 226, 226, 225, 228, 108,
818
- 230, 229, 108, 232, 113, 113, 113, 113,
819
- 113, 113, 113, 113, 113, 113, 113, 113,
820
- 113, 113, 113, 113, 113, 113, 113, 113,
821
- 113, 113, 113, 113, 113, 113, 113, 113,
822
- 113, 113, 113, 233, 113, 235, 234, 113,
823
- 116, 113, 237, 237, 237, 237, 237, 237,
824
- 237, 237, 237, 237, 236, 236, 236, 236,
825
- 236, 236, 236, 237, 237, 237, 237, 237,
826
- 237, 236, 236, 236, 236, 236, 236, 236,
827
- 236, 236, 236, 236, 236, 236, 236, 236,
828
- 236, 236, 236, 236, 236, 236, 236, 236,
829
- 236, 236, 236, 237, 237, 237, 237, 237,
830
- 237, 236, 239, 238, 238, 238, 238, 238,
831
- 240, 238, 238, 238, 241, 241, 241, 241,
832
- 241, 241, 241, 241, 241, 238, 238, 242,
833
- 238, 132, 131, 131, 131, 131, 131, 243,
834
- 131, 131, 243, 243, 243, 243, 243, 243,
835
- 243, 243, 243, 243, 131, 134, 134, 134,
836
- 134, 134, 134, 134, 134, 134, 243, 133,
837
- 243, 243, 243, 243, 243, 243, 134, 134,
838
- 134, 134, 134, 134, 134, 134, 134, 134,
839
- 243, 243, 135, 135, 243, 243, 243, 243,
840
- 243, 243, 243, 243, 243, 243, 135, 135,
841
- 135, 135, 132, 135, 0
710
+ 51, 51, 51, 51, 51, 149, 150, 150,
711
+ 150, 150, 150, 150, 150, 150, 150, 150,
712
+ 150, 150, 150, 150, 150, 150, 150, 150,
713
+ 150, 150, 150, 150, 150, 150, 150, 150,
714
+ 150, 150, 150, 150, 150, 150, 150, 150,
715
+ 150, 150, 150, 150, 150, 150, 150, 150,
716
+ 150, 150, 150, 150, 150, 150, 150, 150,
717
+ 150, 150, 150, 150, 150, 150, 150, 150,
718
+ 150, 150, 150, 150, 150, 150, 149, 151,
719
+ 149, 153, 152, 152, 152, 152, 152, 152,
720
+ 152, 152, 152, 152, 152, 152, 152, 152,
721
+ 152, 152, 152, 152, 152, 152, 152, 152,
722
+ 152, 152, 152, 152, 152, 152, 152, 152,
723
+ 152, 152, 152, 152, 152, 152, 152, 152,
724
+ 152, 152, 152, 152, 152, 152, 152, 152,
725
+ 152, 152, 152, 152, 152, 152, 152, 152,
726
+ 154, 152, 55, 156, 158, 158, 157, 157,
727
+ 157, 158, 157, 157, 157, 157, 158, 157,
728
+ 157, 158, 157, 157, 158, 157, 157, 157,
729
+ 158, 157, 157, 157, 158, 158, 158, 157,
730
+ 157, 157, 158, 158, 158, 158, 158, 158,
731
+ 157, 158, 157, 157, 157, 157, 157, 158,
732
+ 157, 158, 157, 158, 158, 158, 158, 158,
733
+ 158, 158, 157, 159, 159, 159, 159, 159,
734
+ 159, 159, 159, 159, 159, 159, 159, 159,
735
+ 159, 159, 159, 159, 159, 159, 159, 159,
736
+ 159, 159, 159, 159, 159, 159, 159, 159,
737
+ 159, 160, 160, 160, 160, 160, 160, 160,
738
+ 160, 160, 160, 160, 160, 160, 160, 160,
739
+ 160, 161, 161, 161, 161, 161, 60, 60,
740
+ 60, 60, 60, 60, 60, 60, 60, 60,
741
+ 60, 60, 60, 60, 60, 60, 60, 60,
742
+ 60, 60, 60, 60, 60, 60, 60, 60,
743
+ 60, 60, 60, 60, 60, 60, 60, 60,
744
+ 60, 60, 60, 60, 60, 60, 60, 60,
745
+ 60, 60, 60, 60, 60, 162, 60, 60,
746
+ 60, 162, 162, 162, 162, 60, 60, 162,
747
+ 60, 163, 164, 164, 164, 164, 164, 164,
748
+ 164, 165, 165, 60, 60, 60, 60, 60,
749
+ 162, 60, 45, 45, 166, 167, 60, 60,
750
+ 45, 167, 60, 60, 45, 60, 168, 60,
751
+ 60, 169, 60, 167, 167, 60, 60, 60,
752
+ 167, 167, 60, 45, 162, 162, 162, 162,
753
+ 60, 60, 170, 170, 62, 167, 170, 170,
754
+ 60, 167, 60, 60, 60, 60, 60, 170,
755
+ 60, 169, 60, 170, 167, 170, 171, 170,
756
+ 167, 172, 60, 45, 162, 162, 162, 60,
757
+ 60, 60, 60, 60, 60, 60, 60, 60,
758
+ 60, 60, 60, 60, 60, 60, 60, 60,
759
+ 60, 60, 60, 60, 60, 60, 60, 60,
760
+ 60, 60, 60, 60, 60, 60, 60, 60,
761
+ 60, 60, 60, 60, 60, 60, 60, 60,
762
+ 60, 60, 60, 60, 60, 60, 60, 60,
763
+ 60, 60, 60, 60, 60, 60, 60, 60,
764
+ 60, 60, 60, 60, 60, 60, 60, 60,
765
+ 173, 61, 61, 61, 61, 61, 61, 61,
766
+ 61, 61, 61, 61, 61, 61, 61, 61,
767
+ 61, 61, 61, 61, 61, 61, 61, 61,
768
+ 61, 61, 61, 61, 61, 61, 61, 61,
769
+ 61, 61, 61, 61, 61, 61, 61, 61,
770
+ 61, 61, 61, 61, 61, 61, 61, 61,
771
+ 61, 61, 61, 61, 61, 61, 61, 61,
772
+ 61, 61, 61, 61, 61, 61, 61, 61,
773
+ 61, 173, 174, 174, 174, 174, 174, 174,
774
+ 174, 174, 174, 174, 174, 174, 174, 174,
775
+ 174, 174, 174, 174, 174, 174, 174, 174,
776
+ 174, 174, 174, 174, 174, 174, 174, 174,
777
+ 174, 174, 174, 174, 174, 174, 174, 174,
778
+ 174, 174, 174, 174, 174, 174, 174, 174,
779
+ 174, 174, 174, 174, 174, 174, 174, 174,
780
+ 174, 174, 174, 174, 174, 174, 174, 174,
781
+ 174, 174, 173, 176, 176, 176, 176, 176,
782
+ 176, 176, 176, 175, 178, 178, 178, 178,
783
+ 178, 178, 178, 178, 177, 180, 63, 182,
784
+ 181, 63, 184, 68, 68, 68, 68, 68,
785
+ 68, 68, 68, 68, 68, 68, 68, 68,
786
+ 68, 68, 68, 68, 68, 68, 68, 68,
787
+ 68, 68, 68, 68, 68, 68, 68, 68,
788
+ 68, 68, 185, 68, 187, 186, 68, 71,
789
+ 68, 189, 189, 189, 189, 189, 189, 189,
790
+ 189, 189, 189, 188, 188, 188, 188, 188,
791
+ 188, 188, 189, 189, 189, 189, 189, 189,
792
+ 188, 188, 188, 188, 188, 188, 188, 188,
793
+ 188, 188, 188, 188, 188, 188, 188, 188,
794
+ 188, 188, 188, 188, 188, 188, 188, 188,
795
+ 188, 188, 189, 189, 189, 189, 189, 189,
796
+ 188, 191, 190, 190, 190, 190, 190, 192,
797
+ 190, 190, 190, 193, 193, 193, 193, 193,
798
+ 193, 193, 193, 193, 190, 190, 194, 190,
799
+ 87, 86, 86, 86, 86, 86, 195, 86,
800
+ 86, 195, 195, 195, 195, 195, 195, 195,
801
+ 195, 195, 195, 86, 89, 89, 89, 89,
802
+ 89, 89, 89, 89, 89, 195, 88, 195,
803
+ 195, 195, 195, 195, 195, 89, 89, 89,
804
+ 89, 89, 89, 89, 89, 89, 89, 195,
805
+ 195, 90, 90, 195, 195, 195, 195, 195,
806
+ 195, 195, 195, 195, 195, 90, 90, 90,
807
+ 90, 87, 90, 0
842
808
  ]
843
809
 
844
810
  class << self
@@ -846,37 +812,31 @@ class << self
846
812
  private :_re_scanner_trans_targs, :_re_scanner_trans_targs=
847
813
  end
848
814
  self._re_scanner_trans_targs = [
849
- 119, 120, 1, 2, 119, 4, 119, 6,
850
- 119, 8, 129, 119, 10, 17, 11, 119,
815
+ 73, 74, 1, 2, 73, 4, 73, 6,
816
+ 73, 8, 83, 73, 10, 17, 11, 73,
851
817
  12, 16, 14, 13, 15, 18, 19, 23,
852
- 21, 20, 22, 25, 31, 26, 119, 27,
818
+ 21, 20, 22, 25, 31, 26, 73, 27,
853
819
  29, 28, 30, 32, 33, 35, 34, 36,
854
- 119, 38, 135, 39, 41, 0, 42, 43,
855
- 137, 138, 138, 44, 138, 138, 138, 138,
856
- 48, 49, 60, 64, 68, 72, 76, 80,
857
- 85, 89, 91, 94, 50, 57, 51, 55,
858
- 52, 53, 54, 138, 56, 58, 59, 61,
859
- 62, 63, 65, 66, 67, 69, 70, 71,
860
- 73, 74, 75, 77, 78, 79, 81, 83,
861
- 82, 84, 86, 87, 88, 90, 92, 93,
862
- 146, 146, 95, 98, 146, 152, 146, 154,
863
- 101, 146, 155, 146, 157, 104, 107, 105,
864
- 106, 146, 108, 109, 110, 111, 112, 113,
865
- 146, 159, 160, 115, 116, 160, 117, 118,
866
- 3, 121, 122, 123, 124, 125, 119, 126,
867
- 119, 130, 131, 119, 132, 119, 133, 119,
868
- 119, 134, 119, 119, 119, 119, 119, 119,
869
- 127, 119, 128, 119, 5, 119, 7, 119,
870
- 119, 119, 119, 119, 119, 119, 119, 119,
871
- 119, 119, 9, 24, 119, 37, 119, 119,
872
- 136, 40, 139, 140, 141, 138, 142, 143,
873
- 144, 138, 138, 138, 138, 45, 138, 138,
874
- 46, 138, 138, 138, 47, 145, 145, 147,
875
- 148, 149, 146, 150, 150, 146, 97, 146,
876
- 100, 146, 146, 103, 114, 146, 96, 146,
877
- 151, 146, 146, 146, 153, 146, 99, 146,
878
- 156, 158, 146, 102, 146, 146, 160, 161,
879
- 162, 163, 164, 160
820
+ 73, 38, 73, 39, 41, 0, 42, 43,
821
+ 90, 91, 91, 44, 91, 91, 91, 47,
822
+ 48, 91, 91, 99, 99, 49, 52, 99,
823
+ 105, 99, 107, 55, 99, 108, 99, 110,
824
+ 58, 61, 59, 60, 99, 62, 63, 64,
825
+ 65, 66, 67, 99, 112, 113, 69, 70,
826
+ 113, 71, 72, 3, 75, 76, 77, 78,
827
+ 79, 73, 80, 73, 84, 85, 73, 86,
828
+ 73, 87, 73, 73, 88, 73, 73, 73,
829
+ 73, 73, 73, 81, 73, 82, 73, 5,
830
+ 73, 7, 73, 73, 73, 73, 73, 73,
831
+ 73, 73, 73, 73, 73, 9, 24, 73,
832
+ 37, 89, 40, 92, 93, 94, 91, 95,
833
+ 96, 97, 91, 91, 91, 91, 45, 91,
834
+ 91, 46, 91, 91, 91, 98, 98, 100,
835
+ 101, 102, 99, 103, 103, 99, 51, 99,
836
+ 54, 99, 99, 57, 68, 99, 50, 99,
837
+ 104, 99, 99, 99, 106, 99, 53, 99,
838
+ 109, 111, 99, 56, 99, 99, 113, 114,
839
+ 115, 116, 117, 113
880
840
  ]
881
841
 
882
842
  class << self
@@ -889,32 +849,26 @@ self._re_scanner_trans_actions = [
889
849
  0, 0, 0, 0, 0, 0, 0, 0,
890
850
  0, 0, 0, 0, 0, 0, 10, 0,
891
851
  0, 0, 0, 0, 0, 0, 0, 0,
892
- 11, 0, 0, 0, 0, 0, 0, 0,
893
- 13, 14, 15, 0, 16, 17, 18, 19,
894
- 0, 0, 0, 0, 0, 0, 0, 0,
895
- 0, 0, 0, 0, 0, 0, 0, 0,
896
- 0, 0, 0, 20, 0, 0, 0, 0,
897
- 0, 0, 0, 0, 0, 0, 0, 0,
898
- 0, 0, 0, 0, 0, 0, 0, 0,
899
- 0, 0, 0, 0, 0, 0, 0, 0,
900
- 21, 22, 0, 0, 24, 0, 25, 0,
901
- 0, 26, 0, 27, 0, 0, 0, 0,
902
- 0, 28, 0, 0, 0, 0, 0, 0,
903
- 29, 0, 30, 0, 0, 31, 0, 0,
904
- 0, 0, 0, 0, 0, 0, 34, 35,
905
- 36, 0, 0, 37, 0, 38, 39, 40,
906
- 41, 39, 42, 43, 44, 45, 46, 47,
907
- 48, 49, 0, 50, 0, 51, 0, 52,
908
- 53, 54, 55, 56, 57, 58, 59, 60,
909
- 61, 62, 0, 0, 63, 0, 64, 65,
910
- 67, 0, 0, 39, 39, 68, 0, 39,
911
- 69, 70, 71, 72, 73, 0, 74, 75,
912
- 0, 76, 77, 78, 0, 79, 80, 0,
913
- 39, 39, 81, 82, 83, 84, 0, 85,
914
- 0, 86, 87, 0, 0, 88, 0, 89,
915
- 0, 90, 91, 92, 39, 93, 0, 94,
916
- 39, 0, 95, 0, 96, 97, 98, 39,
917
- 39, 39, 39, 99
852
+ 11, 0, 12, 0, 0, 0, 0, 0,
853
+ 14, 15, 16, 0, 17, 18, 19, 0,
854
+ 0, 20, 21, 22, 23, 0, 0, 25,
855
+ 0, 26, 0, 0, 27, 0, 28, 0,
856
+ 0, 0, 0, 0, 29, 0, 0, 0,
857
+ 0, 0, 0, 30, 0, 31, 0, 0,
858
+ 32, 0, 0, 0, 0, 0, 0, 0,
859
+ 0, 35, 36, 37, 0, 0, 38, 0,
860
+ 39, 40, 41, 42, 40, 43, 44, 45,
861
+ 46, 47, 48, 49, 50, 0, 51, 0,
862
+ 52, 0, 53, 54, 55, 56, 57, 58,
863
+ 59, 60, 61, 62, 63, 0, 0, 64,
864
+ 0, 66, 0, 0, 40, 40, 67, 0,
865
+ 40, 68, 69, 70, 71, 72, 0, 73,
866
+ 74, 0, 75, 76, 77, 78, 79, 0,
867
+ 40, 40, 80, 81, 82, 83, 0, 84,
868
+ 0, 85, 86, 0, 0, 87, 0, 88,
869
+ 0, 89, 90, 91, 40, 92, 0, 93,
870
+ 40, 0, 94, 0, 95, 96, 97, 40,
871
+ 40, 40, 40, 98
918
872
  ]
919
873
 
920
874
  class << self
@@ -931,18 +885,12 @@ self._re_scanner_to_state_actions = [
931
885
  0, 0, 0, 0, 0, 0, 0, 0,
932
886
  0, 0, 0, 0, 0, 0, 0, 0,
933
887
  0, 0, 0, 0, 0, 0, 0, 0,
888
+ 0, 33, 0, 0, 0, 0, 0, 0,
934
889
  0, 0, 0, 0, 0, 0, 0, 0,
890
+ 0, 65, 65, 65, 0, 0, 0, 0,
891
+ 0, 0, 65, 65, 0, 0, 0, 0,
935
892
  0, 0, 0, 0, 0, 0, 0, 0,
936
- 0, 0, 0, 0, 0, 0, 0, 0,
937
- 0, 0, 0, 0, 0, 0, 0, 0,
938
- 0, 0, 0, 0, 0, 0, 0, 0,
939
- 0, 0, 0, 0, 0, 0, 0, 32,
940
- 0, 0, 0, 0, 0, 0, 0, 0,
941
- 0, 0, 0, 0, 0, 0, 0, 0,
942
- 66, 66, 66, 0, 0, 0, 0, 0,
943
- 0, 66, 66, 0, 0, 0, 0, 0,
944
- 0, 0, 0, 0, 0, 0, 0, 0,
945
- 66, 0, 0, 0, 0
893
+ 0, 65, 0, 0, 0, 0
946
894
  ]
947
895
 
948
896
  class << self
@@ -959,18 +907,12 @@ self._re_scanner_from_state_actions = [
959
907
  0, 0, 0, 0, 0, 0, 0, 0,
960
908
  0, 0, 0, 0, 0, 0, 0, 0,
961
909
  0, 0, 0, 0, 0, 0, 0, 0,
910
+ 0, 34, 0, 0, 0, 0, 0, 0,
962
911
  0, 0, 0, 0, 0, 0, 0, 0,
912
+ 0, 34, 34, 34, 0, 0, 0, 0,
913
+ 0, 0, 34, 34, 0, 0, 0, 0,
963
914
  0, 0, 0, 0, 0, 0, 0, 0,
964
- 0, 0, 0, 0, 0, 0, 0, 0,
965
- 0, 0, 0, 0, 0, 0, 0, 0,
966
- 0, 0, 0, 0, 0, 0, 0, 0,
967
- 0, 0, 0, 0, 0, 0, 0, 33,
968
- 0, 0, 0, 0, 0, 0, 0, 0,
969
- 0, 0, 0, 0, 0, 0, 0, 0,
970
- 33, 33, 33, 0, 0, 0, 0, 0,
971
- 0, 33, 33, 0, 0, 0, 0, 0,
972
- 0, 0, 0, 0, 0, 0, 0, 0,
973
- 33, 0, 0, 0, 0
915
+ 0, 34, 0, 0, 0, 0
974
916
  ]
975
917
 
976
918
  class << self
@@ -983,22 +925,16 @@ self._re_scanner_eof_actions = [
983
925
  0, 0, 0, 0, 0, 0, 0, 0,
984
926
  0, 0, 0, 0, 0, 0, 0, 0,
985
927
  0, 0, 0, 0, 0, 0, 0, 0,
986
- 12, 12, 12, 12, 0, 0, 0, 0,
987
- 0, 0, 0, 0, 0, 0, 0, 0,
988
- 0, 0, 0, 0, 0, 0, 0, 0,
989
- 0, 0, 0, 0, 0, 0, 0, 0,
928
+ 13, 13, 13, 13, 0, 0, 0, 0,
929
+ 0, 0, 0, 24, 24, 0, 24, 24,
930
+ 0, 24, 24, 24, 24, 24, 24, 24,
931
+ 24, 24, 24, 24, 24, 0, 0, 0,
990
932
  0, 0, 0, 0, 0, 0, 0, 0,
991
933
  0, 0, 0, 0, 0, 0, 0, 0,
934
+ 0, 0, 0, 24, 0, 0, 0, 0,
935
+ 0, 0, 0, 24, 0, 0, 0, 0,
992
936
  0, 0, 0, 0, 0, 0, 0, 0,
993
- 0, 23, 23, 0, 23, 23, 0, 23,
994
- 23, 23, 23, 23, 23, 23, 23, 23,
995
- 23, 23, 23, 0, 0, 0, 0, 0,
996
- 0, 0, 0, 0, 0, 0, 0, 0,
997
- 0, 0, 0, 0, 0, 0, 0, 0,
998
- 0, 0, 23, 0, 0, 0, 0, 0,
999
- 0, 0, 23, 0, 0, 0, 0, 0,
1000
- 0, 0, 0, 0, 0, 0, 0, 0,
1001
- 0, 0, 0, 0, 0
937
+ 0, 0, 0, 0, 0, 0
1002
938
  ]
1003
939
 
1004
940
  class << self
@@ -1012,31 +948,25 @@ self._re_scanner_eof_trans = [
1012
948
  12, 12, 12, 12, 12, 12, 12, 12,
1013
949
  12, 12, 12, 12, 12, 41, 41, 41,
1014
950
  0, 0, 0, 0, 50, 50, 53, 55,
1015
- 55, 55, 55, 55, 55, 55, 55, 55,
1016
- 55, 55, 55, 55, 55, 55, 55, 55,
1017
- 55, 55, 55, 55, 55, 55, 55, 55,
1018
- 55, 55, 55, 55, 55, 55, 55, 55,
1019
- 55, 55, 55, 55, 55, 55, 55, 55,
1020
- 55, 55, 55, 55, 55, 55, 55, 105,
1021
- 105, 0, 0, 111, 0, 0, 116, 0,
1022
- 0, 0, 0, 0, 0, 0, 0, 0,
1023
- 0, 0, 0, 131, 131, 131, 131, 0,
1024
- 156, 156, 157, 157, 156, 158, 160, 162,
1025
- 162, 169, 170, 172, 174, 176, 181, 183,
1026
- 0, 0, 0, 197, 197, 197, 197, 200,
1027
- 203, 0, 0, 222, 222, 222, 224, 226,
1028
- 228, 228, 228, 232, 232, 232, 232, 237,
1029
- 0, 244, 244, 244, 244
951
+ 55, 60, 60, 0, 0, 66, 0, 0,
952
+ 71, 0, 0, 0, 0, 0, 0, 0,
953
+ 0, 0, 0, 0, 0, 86, 86, 86,
954
+ 86, 0, 111, 111, 112, 112, 111, 113,
955
+ 115, 117, 117, 124, 125, 127, 129, 131,
956
+ 136, 0, 0, 0, 150, 150, 150, 150,
957
+ 153, 156, 0, 0, 174, 174, 174, 176,
958
+ 178, 180, 180, 180, 184, 184, 184, 184,
959
+ 189, 0, 196, 196, 196, 196
1030
960
  ]
1031
961
 
1032
962
  class << self
1033
963
  attr_accessor :re_scanner_start
1034
964
  end
1035
- self.re_scanner_start = 119;
965
+ self.re_scanner_start = 73;
1036
966
  class << self
1037
967
  attr_accessor :re_scanner_first_final
1038
968
  end
1039
- self.re_scanner_first_final = 119;
969
+ self.re_scanner_first_final = 73;
1040
970
  class << self
1041
971
  attr_accessor :re_scanner_error
1042
972
  end
@@ -1045,36 +975,36 @@ self.re_scanner_error = 0;
1045
975
  class << self
1046
976
  attr_accessor :re_scanner_en_char_type
1047
977
  end
1048
- self.re_scanner_en_char_type = 136;
978
+ self.re_scanner_en_char_type = 89;
1049
979
  class << self
1050
980
  attr_accessor :re_scanner_en_unicode_property
1051
981
  end
1052
- self.re_scanner_en_unicode_property = 137;
982
+ self.re_scanner_en_unicode_property = 90;
1053
983
  class << self
1054
984
  attr_accessor :re_scanner_en_character_set
1055
985
  end
1056
- self.re_scanner_en_character_set = 138;
986
+ self.re_scanner_en_character_set = 91;
1057
987
  class << self
1058
988
  attr_accessor :re_scanner_en_set_escape_sequence
1059
989
  end
1060
- self.re_scanner_en_set_escape_sequence = 145;
990
+ self.re_scanner_en_set_escape_sequence = 98;
1061
991
  class << self
1062
992
  attr_accessor :re_scanner_en_escape_sequence
1063
993
  end
1064
- self.re_scanner_en_escape_sequence = 146;
994
+ self.re_scanner_en_escape_sequence = 99;
1065
995
  class << self
1066
996
  attr_accessor :re_scanner_en_conditional_expression
1067
997
  end
1068
- self.re_scanner_en_conditional_expression = 160;
998
+ self.re_scanner_en_conditional_expression = 113;
1069
999
  class << self
1070
1000
  attr_accessor :re_scanner_en_main
1071
1001
  end
1072
- self.re_scanner_en_main = 119;
1002
+ self.re_scanner_en_main = 73;
1073
1003
 
1074
1004
 
1075
- # line 739 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1005
+ # line 744 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1076
1006
 
1077
- # line 1077 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
1007
+ # line 1007 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
1078
1008
  begin
1079
1009
  p ||= 0
1080
1010
  pe ||= data.length
@@ -1085,9 +1015,9 @@ begin
1085
1015
  act = 0
1086
1016
  end
1087
1017
 
1088
- # line 740 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1018
+ # line 745 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1089
1019
 
1090
- # line 1090 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
1020
+ # line 1020 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
1091
1021
  begin
1092
1022
  testEof = false
1093
1023
  _slen, _trans, _keys, _inds, _acts, _nacts = nil
@@ -1110,12 +1040,12 @@ begin
1110
1040
  end
1111
1041
  if _goto_level <= _resume
1112
1042
  case _re_scanner_from_state_actions[cs]
1113
- when 33 then
1043
+ when 34 then
1114
1044
  # line 1 "NONE"
1115
1045
  begin
1116
1046
  ts = p
1117
1047
  end
1118
- # line 1118 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
1048
+ # line 1048 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
1119
1049
  end
1120
1050
  _keys = cs << 1
1121
1051
  _inds = _re_scanner_index_offsets[cs]
@@ -1134,20 +1064,20 @@ ts = p
1134
1064
  cs = _re_scanner_trans_targs[_trans]
1135
1065
  if _re_scanner_trans_actions[_trans] != 0
1136
1066
  case _re_scanner_trans_actions[_trans]
1137
- when 35 then
1138
- # line 159 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1067
+ when 36 then
1068
+ # line 152 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1139
1069
  begin
1140
1070
  self.group_depth = group_depth + 1 end
1141
1071
  when 4 then
1142
- # line 160 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1072
+ # line 153 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1143
1073
  begin
1144
1074
  self.group_depth = group_depth - 1 end
1145
- when 39 then
1075
+ when 40 then
1146
1076
  # line 1 "NONE"
1147
1077
  begin
1148
1078
  te = p+1
1149
1079
  end
1150
- when 67 then
1080
+ when 66 then
1151
1081
  # line 12 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/char_type.rl"
1152
1082
  begin
1153
1083
  te = p+1
@@ -1173,7 +1103,7 @@ te = p+1
1173
1103
 
1174
1104
  end
1175
1105
  end
1176
- when 13 then
1106
+ when 14 then
1177
1107
  # line 16 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/property.rl"
1178
1108
  begin
1179
1109
  te = p+1
@@ -1184,7 +1114,7 @@ te = p+1
1184
1114
  name = data[ts+2..te-2].pack('c*').gsub(/[\^\s_\-]/, '').downcase
1185
1115
 
1186
1116
  token = self.class.short_prop_map[name] || self.class.long_prop_map[name]
1187
- raise UnknownUnicodePropertyError.new(name) unless token
1117
+ validation_error(:property, name) unless token
1188
1118
 
1189
1119
  self.emit(type, token.to_sym, text)
1190
1120
 
@@ -1197,8 +1127,8 @@ te = p+1
1197
1127
 
1198
1128
  end
1199
1129
  end
1200
- when 17 then
1201
- # line 187 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1130
+ when 18 then
1131
+ # line 180 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1202
1132
  begin
1203
1133
  te = p+1
1204
1134
  begin # special case, emits two tokens
@@ -1206,8 +1136,8 @@ te = p+1
1206
1136
  emit(:set, :intersection, '&&')
1207
1137
  end
1208
1138
  end
1209
- when 72 then
1210
- # line 192 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1139
+ when 71 then
1140
+ # line 185 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1211
1141
  begin
1212
1142
  te = p+1
1213
1143
  begin
@@ -1219,39 +1149,39 @@ te = p+1
1219
1149
  end
1220
1150
  end
1221
1151
  end
1222
- when 74 then
1223
- # line 213 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1152
+ when 73 then
1153
+ # line 206 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1224
1154
  begin
1225
1155
  te = p+1
1226
1156
  begin
1227
1157
  emit(:set, :intersection, copy(data, ts, te))
1228
1158
  end
1229
1159
  end
1230
- when 70 then
1231
- # line 217 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1160
+ when 69 then
1161
+ # line 210 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1232
1162
  begin
1233
1163
  te = p+1
1234
1164
  begin
1235
1165
  begin
1236
1166
  stack[top] = cs
1237
1167
  top+= 1
1238
- cs = 145
1168
+ cs = 98
1239
1169
  _goto_level = _again
1240
1170
  next
1241
1171
  end
1242
1172
 
1243
1173
  end
1244
1174
  end
1245
- when 68 then
1246
- # line 247 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1175
+ when 67 then
1176
+ # line 244 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1247
1177
  begin
1248
1178
  te = p+1
1249
1179
  begin
1250
1180
  emit(:literal, :literal, copy(data, ts, te))
1251
1181
  end
1252
1182
  end
1253
- when 15 then
1254
- # line 251 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1183
+ when 16 then
1184
+ # line 248 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1255
1185
  begin
1256
1186
  te = p+1
1257
1187
  begin
@@ -1259,8 +1189,8 @@ te = p+1
1259
1189
  emit(:literal, :literal, text)
1260
1190
  end
1261
1191
  end
1262
- when 75 then
1263
- # line 201 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1192
+ when 74 then
1193
+ # line 194 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1264
1194
  begin
1265
1195
  te = p
1266
1196
  p = p - 1; begin
@@ -1273,8 +1203,8 @@ p = p - 1; begin
1273
1203
  end
1274
1204
  end
1275
1205
  end
1276
- when 78 then
1277
- # line 221 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1206
+ when 77 then
1207
+ # line 214 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1278
1208
  begin
1279
1209
  te = p
1280
1210
  p = p - 1; begin
@@ -1282,15 +1212,15 @@ p = p - 1; begin
1282
1212
  begin
1283
1213
  stack[top] = cs
1284
1214
  top+= 1
1285
- cs = 138
1215
+ cs = 91
1286
1216
  _goto_level = _again
1287
1217
  next
1288
1218
  end
1289
1219
 
1290
1220
  end
1291
1221
  end
1292
- when 73 then
1293
- # line 251 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1222
+ when 72 then
1223
+ # line 248 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1294
1224
  begin
1295
1225
  te = p
1296
1226
  p = p - 1; begin
@@ -1298,8 +1228,8 @@ p = p - 1; begin
1298
1228
  emit(:literal, :literal, text)
1299
1229
  end
1300
1230
  end
1301
- when 16 then
1302
- # line 201 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1231
+ when 17 then
1232
+ # line 194 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1303
1233
  begin
1304
1234
  begin p = ((te))-1; end
1305
1235
  begin
@@ -1312,8 +1242,8 @@ p = p - 1; begin
1312
1242
  end
1313
1243
  end
1314
1244
  end
1315
- when 19 then
1316
- # line 221 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1245
+ when 20 then
1246
+ # line 214 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1317
1247
  begin
1318
1248
  begin p = ((te))-1; end
1319
1249
  begin
@@ -1321,15 +1251,15 @@ p = p - 1; begin
1321
1251
  begin
1322
1252
  stack[top] = cs
1323
1253
  top+= 1
1324
- cs = 138
1254
+ cs = 91
1325
1255
  _goto_level = _again
1326
1256
  next
1327
1257
  end
1328
1258
 
1329
1259
  end
1330
1260
  end
1331
- when 14 then
1332
- # line 251 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1261
+ when 15 then
1262
+ # line 248 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1333
1263
  begin
1334
1264
  begin p = ((te))-1; end
1335
1265
  begin
@@ -1337,25 +1267,25 @@ p = p - 1; begin
1337
1267
  emit(:literal, :literal, text)
1338
1268
  end
1339
1269
  end
1340
- when 80 then
1341
- # line 260 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1270
+ when 79 then
1271
+ # line 257 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1342
1272
  begin
1343
1273
  te = p+1
1344
1274
  begin
1345
1275
  p = p - 1;
1346
- cs = 138;
1276
+ cs = 91;
1347
1277
  begin
1348
1278
  stack[top] = cs
1349
1279
  top+= 1
1350
- cs = 146
1280
+ cs = 99
1351
1281
  _goto_level = _again
1352
1282
  next
1353
1283
  end
1354
1284
 
1355
1285
  end
1356
1286
  end
1357
- when 79 then
1358
- # line 266 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1287
+ when 78 then
1288
+ # line 263 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1359
1289
  begin
1360
1290
  te = p+1
1361
1291
  begin
@@ -1369,8 +1299,8 @@ te = p+1
1369
1299
 
1370
1300
  end
1371
1301
  end
1372
- when 84 then
1373
- # line 276 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1302
+ when 83 then
1303
+ # line 273 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1374
1304
  begin
1375
1305
  te = p+1
1376
1306
  begin
@@ -1385,8 +1315,8 @@ te = p+1
1385
1315
 
1386
1316
  end
1387
1317
  end
1388
- when 91 then
1389
- # line 282 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1318
+ when 90 then
1319
+ # line 279 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1390
1320
  begin
1391
1321
  te = p+1
1392
1322
  begin
@@ -1400,8 +1330,8 @@ te = p+1
1400
1330
 
1401
1331
  end
1402
1332
  end
1403
- when 81 then
1404
- # line 287 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1333
+ when 80 then
1334
+ # line 284 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1405
1335
  begin
1406
1336
  te = p+1
1407
1337
  begin
@@ -1431,8 +1361,8 @@ te = p+1
1431
1361
 
1432
1362
  end
1433
1363
  end
1434
- when 87 then
1435
- # line 308 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1364
+ when 86 then
1365
+ # line 305 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1436
1366
  begin
1437
1367
  te = p+1
1438
1368
  begin
@@ -1457,13 +1387,13 @@ te = p+1
1457
1387
 
1458
1388
  end
1459
1389
  end
1460
- when 28 then
1461
- # line 324 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1390
+ when 29 then
1391
+ # line 321 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1462
1392
  begin
1463
1393
  te = p+1
1464
1394
  begin
1465
1395
  text = copy(data, ts-1, te)
1466
- if text[2].chr == '{'
1396
+ if text[2] == '{'
1467
1397
  emit(:escape, :codepoint_list, text)
1468
1398
  else
1469
1399
  emit(:escape, :codepoint, text)
@@ -1477,8 +1407,8 @@ te = p+1
1477
1407
 
1478
1408
  end
1479
1409
  end
1480
- when 97 then
1481
- # line 334 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1410
+ when 96 then
1411
+ # line 331 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1482
1412
  begin
1483
1413
  te = p+1
1484
1414
  begin
@@ -1492,8 +1422,8 @@ te = p+1
1492
1422
 
1493
1423
  end
1494
1424
  end
1495
- when 24 then
1496
- # line 343 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1425
+ when 25 then
1426
+ # line 340 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1497
1427
  begin
1498
1428
  te = p+1
1499
1429
  begin
@@ -1507,8 +1437,8 @@ te = p+1
1507
1437
 
1508
1438
  end
1509
1439
  end
1510
- when 26 then
1511
- # line 348 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1440
+ when 27 then
1441
+ # line 345 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1512
1442
  begin
1513
1443
  te = p+1
1514
1444
  begin
@@ -1522,42 +1452,42 @@ te = p+1
1522
1452
 
1523
1453
  end
1524
1454
  end
1525
- when 85 then
1526
- # line 353 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1455
+ when 84 then
1456
+ # line 350 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1527
1457
  begin
1528
1458
  te = p+1
1529
1459
  begin
1530
1460
  p = p - 1;
1531
- cs = ((in_set? ? 138 : 119));
1461
+ cs = ((in_set? ? 91 : 73));
1532
1462
  begin
1533
1463
  stack[top] = cs
1534
1464
  top+= 1
1535
- cs = 136
1465
+ cs = 89
1536
1466
  _goto_level = _again
1537
1467
  next
1538
1468
  end
1539
1469
 
1540
1470
  end
1541
1471
  end
1542
- when 86 then
1543
- # line 359 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1472
+ when 85 then
1473
+ # line 356 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1544
1474
  begin
1545
1475
  te = p+1
1546
1476
  begin
1547
1477
  p = p - 1;
1548
- cs = ((in_set? ? 138 : 119));
1478
+ cs = ((in_set? ? 91 : 73));
1549
1479
  begin
1550
1480
  stack[top] = cs
1551
1481
  top+= 1
1552
- cs = 137
1482
+ cs = 90
1553
1483
  _goto_level = _again
1554
1484
  next
1555
1485
  end
1556
1486
 
1557
1487
  end
1558
1488
  end
1559
- when 22 then
1560
- # line 365 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1489
+ when 23 then
1490
+ # line 362 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1561
1491
  begin
1562
1492
  te = p+1
1563
1493
  begin
@@ -1571,8 +1501,8 @@ te = p+1
1571
1501
 
1572
1502
  end
1573
1503
  end
1574
- when 90 then
1575
- # line 282 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1504
+ when 89 then
1505
+ # line 279 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1576
1506
  begin
1577
1507
  te = p
1578
1508
  p = p - 1; begin
@@ -1586,8 +1516,8 @@ p = p - 1; begin
1586
1516
 
1587
1517
  end
1588
1518
  end
1589
- when 96 then
1590
- # line 334 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1519
+ when 95 then
1520
+ # line 331 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1591
1521
  begin
1592
1522
  te = p
1593
1523
  p = p - 1; begin
@@ -1601,8 +1531,8 @@ p = p - 1; begin
1601
1531
 
1602
1532
  end
1603
1533
  end
1604
- when 93 then
1605
- # line 343 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1534
+ when 92 then
1535
+ # line 340 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1606
1536
  begin
1607
1537
  te = p
1608
1538
  p = p - 1; begin
@@ -1616,8 +1546,8 @@ p = p - 1; begin
1616
1546
 
1617
1547
  end
1618
1548
  end
1619
- when 95 then
1620
- # line 348 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1549
+ when 94 then
1550
+ # line 345 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1621
1551
  begin
1622
1552
  te = p
1623
1553
  p = p - 1; begin
@@ -1631,8 +1561,8 @@ p = p - 1; begin
1631
1561
 
1632
1562
  end
1633
1563
  end
1634
- when 88 then
1635
- # line 365 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1564
+ when 87 then
1565
+ # line 362 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1636
1566
  begin
1637
1567
  te = p
1638
1568
  p = p - 1; begin
@@ -1646,8 +1576,8 @@ p = p - 1; begin
1646
1576
 
1647
1577
  end
1648
1578
  end
1649
- when 21 then
1650
- # line 365 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1579
+ when 22 then
1580
+ # line 362 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1651
1581
  begin
1652
1582
  begin p = ((te))-1; end
1653
1583
  begin
@@ -1661,7 +1591,7 @@ p = p - 1; begin
1661
1591
 
1662
1592
  end
1663
1593
  end
1664
- when 89 then
1594
+ when 88 then
1665
1595
  # line 1 "NONE"
1666
1596
  begin
1667
1597
  case act
@@ -1692,8 +1622,8 @@ p = p - 1; begin
1692
1622
  end
1693
1623
  end
1694
1624
  end
1695
- when 31 then
1696
- # line 375 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1625
+ when 32 then
1626
+ # line 372 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1697
1627
  begin
1698
1628
  te = p+1
1699
1629
  begin
@@ -1702,8 +1632,8 @@ te = p+1
1702
1632
  emit(:conditional, :condition_close, ')')
1703
1633
  end
1704
1634
  end
1705
- when 98 then
1706
- # line 381 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1635
+ when 97 then
1636
+ # line 378 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1707
1637
  begin
1708
1638
  te = p+1
1709
1639
  begin
@@ -1711,15 +1641,15 @@ te = p+1
1711
1641
  begin
1712
1642
  stack[top] = cs
1713
1643
  top+= 1
1714
- cs = 119
1644
+ cs = 73
1715
1645
  _goto_level = _again
1716
1646
  next
1717
1647
  end
1718
1648
 
1719
1649
  end
1720
1650
  end
1721
- when 99 then
1722
- # line 381 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1651
+ when 98 then
1652
+ # line 378 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1723
1653
  begin
1724
1654
  te = p
1725
1655
  p = p - 1; begin
@@ -1727,15 +1657,15 @@ p = p - 1; begin
1727
1657
  begin
1728
1658
  stack[top] = cs
1729
1659
  top+= 1
1730
- cs = 119
1660
+ cs = 73
1731
1661
  _goto_level = _again
1732
1662
  next
1733
1663
  end
1734
1664
 
1735
1665
  end
1736
1666
  end
1737
- when 30 then
1738
- # line 381 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1667
+ when 31 then
1668
+ # line 378 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1739
1669
  begin
1740
1670
  begin p = ((te))-1; end
1741
1671
  begin
@@ -1743,23 +1673,23 @@ p = p - 1; begin
1743
1673
  begin
1744
1674
  stack[top] = cs
1745
1675
  top+= 1
1746
- cs = 119
1676
+ cs = 73
1747
1677
  _goto_level = _again
1748
1678
  next
1749
1679
  end
1750
1680
 
1751
1681
  end
1752
1682
  end
1753
- when 37 then
1754
- # line 394 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1683
+ when 38 then
1684
+ # line 391 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1755
1685
  begin
1756
1686
  te = p+1
1757
1687
  begin
1758
1688
  emit(:meta, :dot, copy(data, ts, te))
1759
1689
  end
1760
1690
  end
1761
- when 42 then
1762
- # line 398 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1691
+ when 43 then
1692
+ # line 395 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1763
1693
  begin
1764
1694
  te = p+1
1765
1695
  begin
@@ -1770,55 +1700,55 @@ te = p+1
1770
1700
  end
1771
1701
  end
1772
1702
  end
1773
- when 41 then
1774
- # line 408 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1703
+ when 42 then
1704
+ # line 405 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1775
1705
  begin
1776
1706
  te = p+1
1777
1707
  begin
1778
1708
  emit(:anchor, :bol, copy(data, ts, te))
1779
1709
  end
1780
1710
  end
1781
- when 34 then
1782
- # line 412 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1711
+ when 35 then
1712
+ # line 409 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1783
1713
  begin
1784
1714
  te = p+1
1785
1715
  begin
1786
1716
  emit(:anchor, :eol, copy(data, ts, te))
1787
1717
  end
1788
1718
  end
1789
- when 62 then
1790
- # line 416 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1719
+ when 63 then
1720
+ # line 413 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1791
1721
  begin
1792
1722
  te = p+1
1793
1723
  begin
1794
1724
  emit(:keep, :mark, copy(data, ts, te))
1795
1725
  end
1796
1726
  end
1797
- when 61 then
1798
- # line 420 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1727
+ when 62 then
1728
+ # line 417 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1799
1729
  begin
1800
1730
  te = p+1
1801
1731
  begin
1802
1732
  case text = copy(data, ts, te)
1803
- when '\\A'; emit(:anchor, :bos, text)
1804
- when '\\z'; emit(:anchor, :eos, text)
1805
- when '\\Z'; emit(:anchor, :eos_ob_eol, text)
1806
- when '\\b'; emit(:anchor, :word_boundary, text)
1807
- when '\\B'; emit(:anchor, :nonword_boundary, text)
1808
- when '\\G'; emit(:anchor, :match_start, text)
1733
+ when '\A'; emit(:anchor, :bos, text)
1734
+ when '\z'; emit(:anchor, :eos, text)
1735
+ when '\Z'; emit(:anchor, :eos_ob_eol, text)
1736
+ when '\b'; emit(:anchor, :word_boundary, text)
1737
+ when '\B'; emit(:anchor, :nonword_boundary, text)
1738
+ when '\G'; emit(:anchor, :match_start, text)
1809
1739
  end
1810
1740
  end
1811
1741
  end
1812
- when 40 then
1813
- # line 431 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1742
+ when 41 then
1743
+ # line 428 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1814
1744
  begin
1815
1745
  te = p+1
1816
1746
  begin
1817
1747
  append_literal(data, ts, te)
1818
1748
  end
1819
1749
  end
1820
- when 51 then
1821
- # line 446 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1750
+ when 52 then
1751
+ # line 443 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1822
1752
  begin
1823
1753
  te = p+1
1824
1754
  begin
@@ -1831,27 +1761,27 @@ te = p+1
1831
1761
  begin
1832
1762
  stack[top] = cs
1833
1763
  top+= 1
1834
- cs = 160
1764
+ cs = 113
1835
1765
  _goto_level = _again
1836
1766
  next
1837
1767
  end
1838
1768
 
1839
1769
  end
1840
1770
  end
1841
- when 52 then
1842
- # line 477 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1771
+ when 53 then
1772
+ # line 474 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1843
1773
  begin
1844
1774
  te = p+1
1845
1775
  begin
1846
1776
  text = copy(data, ts, te)
1847
1777
  if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
1848
- raise InvalidGroupOption.new($1 || "-#{$2}", text)
1778
+ validation_error(:group_option, $1 || "-#{$2}", text)
1849
1779
  end
1850
1780
  emit_options(text)
1851
1781
  end
1852
1782
  end
1853
- when 50 then
1854
- # line 491 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1783
+ when 51 then
1784
+ # line 488 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1855
1785
  begin
1856
1786
  te = p+1
1857
1787
  begin
@@ -1864,7 +1794,7 @@ te = p+1
1864
1794
  end
1865
1795
  end
1866
1796
  when 6 then
1867
- # line 508 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1797
+ # line 505 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1868
1798
  begin
1869
1799
  te = p+1
1870
1800
  begin
@@ -1886,7 +1816,7 @@ te = p+1
1886
1816
  end
1887
1817
  end
1888
1818
  when 10 then
1889
- # line 549 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1819
+ # line 546 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1890
1820
  begin
1891
1821
  te = p+1
1892
1822
  begin
@@ -1907,7 +1837,7 @@ te = p+1
1907
1837
  end
1908
1838
  end
1909
1839
  when 9 then
1910
- # line 568 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1840
+ # line 565 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1911
1841
  begin
1912
1842
  te = p+1
1913
1843
  begin
@@ -1923,8 +1853,8 @@ te = p+1
1923
1853
  end
1924
1854
  end
1925
1855
  end
1926
- when 59 then
1927
- # line 584 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1856
+ when 60 then
1857
+ # line 581 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1928
1858
  begin
1929
1859
  te = p+1
1930
1860
  begin
@@ -1935,8 +1865,8 @@ te = p+1
1935
1865
  end
1936
1866
  end
1937
1867
  end
1938
- when 55 then
1939
- # line 592 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1868
+ when 56 then
1869
+ # line 589 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1940
1870
  begin
1941
1871
  te = p+1
1942
1872
  begin
@@ -1947,8 +1877,8 @@ te = p+1
1947
1877
  end
1948
1878
  end
1949
1879
  end
1950
- when 57 then
1951
- # line 600 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1880
+ when 58 then
1881
+ # line 597 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1952
1882
  begin
1953
1883
  te = p+1
1954
1884
  begin
@@ -1959,16 +1889,16 @@ te = p+1
1959
1889
  end
1960
1890
  end
1961
1891
  end
1962
- when 65 then
1963
- # line 608 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1892
+ when 12 then
1893
+ # line 605 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1964
1894
  begin
1965
1895
  te = p+1
1966
1896
  begin
1967
1897
  emit(:quantifier, :interval, copy(data, ts, te))
1968
1898
  end
1969
1899
  end
1970
- when 46 then
1971
- # line 623 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1900
+ when 47 then
1901
+ # line 620 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1972
1902
  begin
1973
1903
  te = p+1
1974
1904
  begin
@@ -1982,20 +1912,20 @@ te = p+1
1982
1912
  end
1983
1913
  end
1984
1914
  end
1985
- when 49 then
1986
- # line 477 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1915
+ when 50 then
1916
+ # line 474 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1987
1917
  begin
1988
1918
  te = p
1989
1919
  p = p - 1; begin
1990
1920
  text = copy(data, ts, te)
1991
1921
  if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
1992
- raise InvalidGroupOption.new($1 || "-#{$2}", text)
1922
+ validation_error(:group_option, $1 || "-#{$2}", text)
1993
1923
  end
1994
1924
  emit_options(text)
1995
1925
  end
1996
1926
  end
1997
- when 53 then
1998
- # line 491 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1927
+ when 54 then
1928
+ # line 488 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1999
1929
  begin
2000
1930
  te = p
2001
1931
  p = p - 1; begin
@@ -2007,8 +1937,8 @@ p = p - 1; begin
2007
1937
  end
2008
1938
  end
2009
1939
  end
2010
- when 47 then
2011
- # line 526 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1940
+ when 48 then
1941
+ # line 523 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2012
1942
  begin
2013
1943
  te = p
2014
1944
  p = p - 1; begin
@@ -2016,8 +1946,8 @@ p = p - 1; begin
2016
1946
  emit(:group, :capture, text)
2017
1947
  end
2018
1948
  end
2019
- when 58 then
2020
- # line 584 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1949
+ when 59 then
1950
+ # line 581 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2021
1951
  begin
2022
1952
  te = p
2023
1953
  p = p - 1; begin
@@ -2028,8 +1958,8 @@ p = p - 1; begin
2028
1958
  end
2029
1959
  end
2030
1960
  end
2031
- when 54 then
2032
- # line 592 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1961
+ when 55 then
1962
+ # line 589 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2033
1963
  begin
2034
1964
  te = p
2035
1965
  p = p - 1; begin
@@ -2040,8 +1970,8 @@ p = p - 1; begin
2040
1970
  end
2041
1971
  end
2042
1972
  end
2043
- when 56 then
2044
- # line 600 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1973
+ when 57 then
1974
+ # line 597 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2045
1975
  begin
2046
1976
  te = p
2047
1977
  p = p - 1; begin
@@ -2053,38 +1983,30 @@ p = p - 1; begin
2053
1983
  end
2054
1984
  end
2055
1985
  when 64 then
2056
- # line 608 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2057
- begin
2058
- te = p
2059
- p = p - 1; begin
2060
- emit(:quantifier, :interval, copy(data, ts, te))
2061
- end
2062
- end
2063
- when 63 then
2064
- # line 613 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1986
+ # line 610 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2065
1987
  begin
2066
1988
  te = p
2067
1989
  p = p - 1; begin
2068
1990
  append_literal(data, ts, te)
2069
1991
  end
2070
1992
  end
2071
- when 60 then
2072
- # line 619 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
1993
+ when 61 then
1994
+ # line 616 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2073
1995
  begin
2074
1996
  te = p
2075
1997
  p = p - 1; begin
2076
1998
  begin
2077
1999
  stack[top] = cs
2078
2000
  top+= 1
2079
- cs = 146
2001
+ cs = 99
2080
2002
  _goto_level = _again
2081
2003
  next
2082
2004
  end
2083
2005
 
2084
2006
  end
2085
2007
  end
2086
- when 45 then
2087
- # line 623 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2008
+ when 46 then
2009
+ # line 620 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2088
2010
  begin
2089
2011
  te = p
2090
2012
  p = p - 1; begin
@@ -2098,8 +2020,8 @@ p = p - 1; begin
2098
2020
  end
2099
2021
  end
2100
2022
  end
2101
- when 44 then
2102
- # line 633 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2023
+ when 45 then
2024
+ # line 630 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2103
2025
  begin
2104
2026
  te = p
2105
2027
  p = p - 1; begin
@@ -2110,8 +2032,8 @@ p = p - 1; begin
2110
2032
  end
2111
2033
  end
2112
2034
  end
2113
- when 43 then
2114
- # line 644 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2035
+ when 44 then
2036
+ # line 641 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2115
2037
  begin
2116
2038
  te = p
2117
2039
  p = p - 1; begin
@@ -2119,19 +2041,19 @@ p = p - 1; begin
2119
2041
  end
2120
2042
  end
2121
2043
  when 3 then
2122
- # line 477 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2044
+ # line 474 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2123
2045
  begin
2124
2046
  begin p = ((te))-1; end
2125
2047
  begin
2126
2048
  text = copy(data, ts, te)
2127
2049
  if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
2128
- raise InvalidGroupOption.new($1 || "-#{$2}", text)
2050
+ validation_error(:group_option, $1 || "-#{$2}", text)
2129
2051
  end
2130
2052
  emit_options(text)
2131
2053
  end
2132
2054
  end
2133
2055
  when 11 then
2134
- # line 613 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2056
+ # line 610 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2135
2057
  begin
2136
2058
  begin p = ((te))-1; end
2137
2059
  begin
@@ -2139,14 +2061,14 @@ p = p - 1; begin
2139
2061
  end
2140
2062
  end
2141
2063
  when 8 then
2142
- # line 619 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2064
+ # line 616 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2143
2065
  begin
2144
2066
  begin p = ((te))-1; end
2145
2067
  begin
2146
2068
  begin
2147
2069
  stack[top] = cs
2148
2070
  top+= 1
2149
- cs = 146
2071
+ cs = 99
2150
2072
  _goto_level = _again
2151
2073
  next
2152
2074
  end
@@ -2169,7 +2091,7 @@ end
2169
2091
 
2170
2092
  text = copy(data, ts, te)
2171
2093
  if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
2172
- raise InvalidGroupOption.new($1 || "-#{$2}", text)
2094
+ validation_error(:group_option, $1 || "-#{$2}", text)
2173
2095
  end
2174
2096
  emit_options(text)
2175
2097
  end
@@ -2190,14 +2112,14 @@ end
2190
2112
  end
2191
2113
  end
2192
2114
  end
2193
- when 77 then
2194
- # line 147 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2115
+ when 76 then
2116
+ # line 140 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2195
2117
  begin
2196
2118
 
2197
2119
  text = copy(data, ts ? ts-1 : 0, -1)
2198
2120
  raise PrematureEndError.new( text )
2199
2121
  end
2200
- # line 221 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2122
+ # line 214 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2201
2123
  begin
2202
2124
  te = p
2203
2125
  p = p - 1; begin
@@ -2205,21 +2127,21 @@ p = p - 1; begin
2205
2127
  begin
2206
2128
  stack[top] = cs
2207
2129
  top+= 1
2208
- cs = 138
2130
+ cs = 91
2209
2131
  _goto_level = _again
2210
2132
  next
2211
2133
  end
2212
2134
 
2213
2135
  end
2214
2136
  end
2215
- when 18 then
2216
- # line 147 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2137
+ when 19 then
2138
+ # line 140 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2217
2139
  begin
2218
2140
 
2219
2141
  text = copy(data, ts ? ts-1 : 0, -1)
2220
2142
  raise PrematureEndError.new( text )
2221
2143
  end
2222
- # line 221 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2144
+ # line 214 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2223
2145
  begin
2224
2146
  begin p = ((te))-1; end
2225
2147
  begin
@@ -2227,21 +2149,21 @@ p = p - 1; begin
2227
2149
  begin
2228
2150
  stack[top] = cs
2229
2151
  top+= 1
2230
- cs = 138
2152
+ cs = 91
2231
2153
  _goto_level = _again
2232
2154
  next
2233
2155
  end
2234
2156
 
2235
2157
  end
2236
2158
  end
2237
- when 92 then
2238
- # line 147 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2159
+ when 91 then
2160
+ # line 140 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2239
2161
  begin
2240
2162
 
2241
2163
  text = copy(data, ts ? ts-1 : 0, -1)
2242
2164
  raise PrematureEndError.new( text )
2243
2165
  end
2244
- # line 343 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2166
+ # line 340 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2245
2167
  begin
2246
2168
  te = p
2247
2169
  p = p - 1; begin
@@ -2255,14 +2177,14 @@ p = p - 1; begin
2255
2177
 
2256
2178
  end
2257
2179
  end
2258
- when 94 then
2259
- # line 147 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2180
+ when 93 then
2181
+ # line 140 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2260
2182
  begin
2261
2183
 
2262
2184
  text = copy(data, ts ? ts-1 : 0, -1)
2263
2185
  raise PrematureEndError.new( text )
2264
2186
  end
2265
- # line 348 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2187
+ # line 345 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2266
2188
  begin
2267
2189
  te = p
2268
2190
  p = p - 1; begin
@@ -2276,14 +2198,14 @@ p = p - 1; begin
2276
2198
 
2277
2199
  end
2278
2200
  end
2279
- when 25 then
2280
- # line 147 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2201
+ when 26 then
2202
+ # line 140 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2281
2203
  begin
2282
2204
 
2283
2205
  text = copy(data, ts ? ts-1 : 0, -1)
2284
2206
  raise PrematureEndError.new( text )
2285
2207
  end
2286
- # line 343 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2208
+ # line 340 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2287
2209
  begin
2288
2210
  begin p = ((te))-1; end
2289
2211
  begin
@@ -2297,14 +2219,14 @@ p = p - 1; begin
2297
2219
 
2298
2220
  end
2299
2221
  end
2300
- when 27 then
2301
- # line 147 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2222
+ when 28 then
2223
+ # line 140 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2302
2224
  begin
2303
2225
 
2304
2226
  text = copy(data, ts ? ts-1 : 0, -1)
2305
2227
  raise PrematureEndError.new( text )
2306
2228
  end
2307
- # line 348 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2229
+ # line 345 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2308
2230
  begin
2309
2231
  begin p = ((te))-1; end
2310
2232
  begin
@@ -2318,14 +2240,14 @@ p = p - 1; begin
2318
2240
 
2319
2241
  end
2320
2242
  end
2321
- when 29 then
2322
- # line 153 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2243
+ when 30 then
2244
+ # line 146 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2323
2245
  begin
2324
2246
 
2325
2247
  text = copy(data, ts ? ts-1 : 0, -1)
2326
2248
  validation_error(:sequence, 'sequence', text)
2327
2249
  end
2328
- # line 339 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2250
+ # line 336 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2329
2251
  begin
2330
2252
  te = p+1
2331
2253
  begin
@@ -2339,21 +2261,21 @@ te = p+1
2339
2261
  end
2340
2262
  end
2341
2263
  when 5 then
2342
- # line 160 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2264
+ # line 153 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2343
2265
  begin
2344
2266
  self.group_depth = group_depth - 1 end
2345
- # line 462 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2267
+ # line 459 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2346
2268
  begin
2347
2269
  te = p+1
2348
2270
  begin
2349
2271
  emit(:group, :comment, copy(data, ts, te))
2350
2272
  end
2351
2273
  end
2352
- when 36 then
2353
- # line 160 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2274
+ when 37 then
2275
+ # line 153 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2354
2276
  begin
2355
2277
  self.group_depth = group_depth - 1 end
2356
- # line 531 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2278
+ # line 528 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2357
2279
  begin
2358
2280
  te = p+1
2359
2281
  begin
@@ -2371,11 +2293,11 @@ te = p+1
2371
2293
  end
2372
2294
  end
2373
2295
  end
2374
- when 38 then
2375
- # line 161 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2296
+ when 39 then
2297
+ # line 154 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2376
2298
  begin
2377
2299
  self.set_depth = set_depth + 1 end
2378
- # line 437 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2300
+ # line 434 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2379
2301
  begin
2380
2302
  te = p+1
2381
2303
  begin
@@ -2383,18 +2305,18 @@ te = p+1
2383
2305
  begin
2384
2306
  stack[top] = cs
2385
2307
  top+= 1
2386
- cs = 138
2308
+ cs = 91
2387
2309
  _goto_level = _again
2388
2310
  next
2389
2311
  end
2390
2312
 
2391
2313
  end
2392
2314
  end
2393
- when 71 then
2394
- # line 162 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2315
+ when 70 then
2316
+ # line 155 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2395
2317
  begin
2396
2318
  self.set_depth = set_depth - 1 end
2397
- # line 168 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2319
+ # line 161 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2398
2320
  begin
2399
2321
  te = p+1
2400
2322
  begin
@@ -2409,7 +2331,7 @@ te = p+1
2409
2331
 
2410
2332
  else
2411
2333
  begin
2412
- cs = 119
2334
+ cs = 73
2413
2335
  _goto_level = _again
2414
2336
  next
2415
2337
  end
@@ -2417,11 +2339,11 @@ te = p+1
2417
2339
  end
2418
2340
  end
2419
2341
  end
2420
- when 76 then
2421
- # line 162 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2342
+ when 75 then
2343
+ # line 155 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2422
2344
  begin
2423
2345
  self.set_depth = set_depth - 1 end
2424
- # line 177 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2346
+ # line 170 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2425
2347
  begin
2426
2348
  te = p+1
2427
2349
  begin # special case, emits two tokens
@@ -2437,7 +2359,7 @@ te = p+1
2437
2359
 
2438
2360
  else
2439
2361
  begin
2440
- cs = 119
2362
+ cs = 73
2441
2363
  _goto_level = _again
2442
2364
  next
2443
2365
  end
@@ -2445,11 +2367,11 @@ te = p+1
2445
2367
  end
2446
2368
  end
2447
2369
  end
2448
- when 20 then
2449
- # line 162 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2370
+ when 21 then
2371
+ # line 155 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2450
2372
  begin
2451
2373
  self.set_depth = set_depth - 1 end
2452
- # line 226 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2374
+ # line 219 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2453
2375
  begin
2454
2376
  te = p+1
2455
2377
  begin
@@ -2457,36 +2379,40 @@ te = p+1
2457
2379
 
2458
2380
  type = :posixclass
2459
2381
  class_name = text[2..-3]
2460
- if class_name[0].chr == '^'
2382
+ if class_name[0] == '^'
2461
2383
  class_name = class_name[1..-1]
2462
2384
  type = :nonposixclass
2463
2385
  end
2464
2386
 
2387
+ unless self.class.posix_classes.include?(class_name)
2388
+ validation_error(:posix_class, text)
2389
+ end
2390
+
2465
2391
  emit(type, class_name.to_sym, text)
2466
2392
  end
2467
2393
  end
2468
- when 69 then
2394
+ when 68 then
2469
2395
  # line 1 "NONE"
2470
2396
  begin
2471
2397
  te = p+1
2472
2398
  end
2473
- # line 161 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2399
+ # line 154 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2474
2400
  begin
2475
2401
  self.set_depth = set_depth + 1 end
2476
- when 83 then
2402
+ when 82 then
2477
2403
  # line 1 "NONE"
2478
2404
  begin
2479
2405
  te = p+1
2480
2406
  end
2481
- # line 276 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2407
+ # line 273 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2482
2408
  begin
2483
2409
  act = 16; end
2484
- when 82 then
2410
+ when 81 then
2485
2411
  # line 1 "NONE"
2486
2412
  begin
2487
2413
  te = p+1
2488
2414
  end
2489
- # line 282 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2415
+ # line 279 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2490
2416
  begin
2491
2417
  act = 17; end
2492
2418
  when 7 then
@@ -2494,7 +2420,7 @@ act = 17; end
2494
2420
  begin
2495
2421
  te = p+1
2496
2422
  end
2497
- # line 491 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2423
+ # line 488 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2498
2424
  begin
2499
2425
  act = 41; end
2500
2426
  when 2 then
@@ -2502,34 +2428,34 @@ act = 41; end
2502
2428
  begin
2503
2429
  te = p+1
2504
2430
  end
2505
- # line 644 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2431
+ # line 641 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2506
2432
  begin
2507
2433
  act = 55; end
2508
- when 48 then
2434
+ when 49 then
2509
2435
  # line 1 "NONE"
2510
2436
  begin
2511
2437
  te = p+1
2512
2438
  end
2513
- # line 160 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2439
+ # line 153 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2514
2440
  begin
2515
2441
  self.group_depth = group_depth - 1 end
2516
- # line 159 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2442
+ # line 152 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2517
2443
  begin
2518
2444
  self.group_depth = group_depth + 1 end
2519
- # line 477 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2445
+ # line 474 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2520
2446
  begin
2521
2447
  act = 40; end
2522
- # line 2522 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
2448
+ # line 2448 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
2523
2449
  end
2524
2450
  end
2525
2451
  end
2526
2452
  if _goto_level <= _again
2527
2453
  case _re_scanner_to_state_actions[cs]
2528
- when 66 then
2454
+ when 65 then
2529
2455
  # line 1 "NONE"
2530
2456
  begin
2531
2457
  ts = nil; end
2532
- when 32 then
2458
+ when 33 then
2533
2459
  # line 1 "NONE"
2534
2460
  begin
2535
2461
  ts = nil; end
@@ -2537,7 +2463,7 @@ ts = nil; end
2537
2463
  begin
2538
2464
  act = 0
2539
2465
  end
2540
- # line 2540 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
2466
+ # line 2466 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
2541
2467
  end
2542
2468
 
2543
2469
  if cs == 0
@@ -2558,20 +2484,20 @@ act = 0
2558
2484
  next;
2559
2485
  end
2560
2486
  case _re_scanner_eof_actions[cs]
2561
- when 12 then
2487
+ when 13 then
2562
2488
  # line 8 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/property.rl"
2563
2489
  begin
2564
2490
 
2565
2491
  raise PrematureEndError.new('unicode property')
2566
2492
  end
2567
- when 23 then
2568
- # line 147 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2493
+ when 24 then
2494
+ # line 140 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2569
2495
  begin
2570
2496
 
2571
2497
  text = copy(data, ts ? ts-1 : 0, -1)
2572
2498
  raise PrematureEndError.new( text )
2573
2499
  end
2574
- # line 2574 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
2500
+ # line 2500 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner.rb"
2575
2501
  end
2576
2502
  end
2577
2503
 
@@ -2582,7 +2508,7 @@ act = 0
2582
2508
  end
2583
2509
  end
2584
2510
 
2585
- # line 741 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2511
+ # line 746 "/Users/janoschmuller/code/regexp_parser/tasks/../lib/regexp_parser/scanner/scanner.rl"
2586
2512
 
2587
2513
  # to avoid "warning: assigned but unused variable - testEof"
2588
2514
  testEof = testEof
@@ -2616,6 +2542,11 @@ end
2616
2542
  File.read("#{__dir__}/scanner/properties/#{name}.csv").scan(/(.+),(.+)/).to_h
2617
2543
  end
2618
2544
 
2545
+ def self.posix_classes
2546
+ %w[alnum alpha ascii blank cntrl digit graph
2547
+ lower print punct space upper word xdigit]
2548
+ end
2549
+
2619
2550
  # Emits an array with the details of the scanned pattern
2620
2551
  def emit(type, token, text)
2621
2552
  #puts "EMIT: type: #{type}, token: #{token}, text: #{text}, ts: #{ts}, te: #{te}"
@@ -2718,15 +2649,16 @@ end
2718
2649
 
2719
2650
  # Centralizes and unifies the handling of validation related
2720
2651
  # errors.
2721
- def validation_error(type, what, reason)
2722
- case type
2723
- when :group
2724
- error = InvalidGroupError.new(what, reason)
2725
- when :backref
2726
- error = InvalidBackrefError.new(what, reason)
2727
- when :sequence
2728
- error = InvalidSequenceError.new(what, reason)
2729
- end
2652
+ def validation_error(type, what, reason = nil)
2653
+ error =
2654
+ case type
2655
+ when :backref then InvalidBackrefError.new(what, reason)
2656
+ when :group then InvalidGroupError.new(what, reason)
2657
+ when :group_option then InvalidGroupOption.new(what, reason)
2658
+ when :posix_class then UnknownPosixClassError.new(what)
2659
+ when :property then UnknownUnicodePropertyError.new(what)
2660
+ when :sequence then InvalidSequenceError.new(what, reason)
2661
+ end
2730
2662
 
2731
2663
  raise error # unless @@config.validation_ignore
2732
2664
  end