regexp_parser 2.0.2 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/Gemfile +5 -1
  4. data/README.md +15 -21
  5. data/Rakefile +11 -17
  6. data/lib/regexp_parser/error.rb +4 -0
  7. data/lib/regexp_parser/expression/base.rb +123 -0
  8. data/lib/regexp_parser/expression/classes/anchor.rb +0 -2
  9. data/lib/regexp_parser/expression/classes/{backref.rb → backreference.rb} +5 -0
  10. data/lib/regexp_parser/expression/classes/{set → character_set}/intersection.rb +0 -0
  11. data/lib/regexp_parser/expression/classes/{set → character_set}/range.rb +2 -1
  12. data/lib/regexp_parser/expression/classes/{set.rb → character_set.rb} +0 -0
  13. data/lib/regexp_parser/expression/classes/conditional.rb +11 -1
  14. data/lib/regexp_parser/expression/classes/{escape.rb → escape_sequence.rb} +1 -0
  15. data/lib/regexp_parser/expression/classes/free_space.rb +1 -3
  16. data/lib/regexp_parser/expression/classes/group.rb +6 -1
  17. data/lib/regexp_parser/expression/classes/literal.rb +1 -5
  18. data/lib/regexp_parser/expression/classes/property.rb +1 -3
  19. data/lib/regexp_parser/expression/classes/root.rb +0 -1
  20. data/lib/regexp_parser/expression/classes/type.rb +0 -2
  21. data/lib/regexp_parser/expression/quantifier.rb +2 -2
  22. data/lib/regexp_parser/expression/sequence.rb +3 -10
  23. data/lib/regexp_parser/expression/subexpression.rb +1 -2
  24. data/lib/regexp_parser/expression.rb +7 -130
  25. data/lib/regexp_parser/lexer.rb +7 -5
  26. data/lib/regexp_parser/parser.rb +282 -334
  27. data/lib/regexp_parser/scanner/properties/long.yml +13 -0
  28. data/lib/regexp_parser/scanner/properties/short.yml +9 -1
  29. data/lib/regexp_parser/scanner/scanner.rl +64 -87
  30. data/lib/regexp_parser/scanner.rb +1024 -1073
  31. data/lib/regexp_parser/syntax/any.rb +2 -4
  32. data/lib/regexp_parser/syntax/base.rb +10 -10
  33. data/lib/regexp_parser/syntax/token/anchor.rb +15 -0
  34. data/lib/regexp_parser/syntax/{tokens → token}/assertion.rb +2 -2
  35. data/lib/regexp_parser/syntax/{tokens/backref.rb → token/backreference.rb} +6 -5
  36. data/lib/regexp_parser/syntax/{tokens → token}/character_set.rb +2 -2
  37. data/lib/regexp_parser/syntax/{tokens → token}/character_type.rb +3 -3
  38. data/lib/regexp_parser/syntax/{tokens → token}/conditional.rb +3 -3
  39. data/lib/regexp_parser/syntax/token/escape.rb +31 -0
  40. data/lib/regexp_parser/syntax/{tokens → token}/group.rb +7 -7
  41. data/lib/regexp_parser/syntax/{tokens → token}/keep.rb +1 -1
  42. data/lib/regexp_parser/syntax/{tokens → token}/meta.rb +2 -2
  43. data/lib/regexp_parser/syntax/{tokens → token}/posix_class.rb +3 -3
  44. data/lib/regexp_parser/syntax/token/quantifier.rb +35 -0
  45. data/lib/regexp_parser/syntax/token/unicode_property.rb +696 -0
  46. data/lib/regexp_parser/syntax/token.rb +45 -0
  47. data/lib/regexp_parser/syntax/version_lookup.rb +2 -2
  48. data/lib/regexp_parser/syntax/versions/1.8.6.rb +1 -1
  49. data/lib/regexp_parser/syntax/versions/3.1.0.rb +10 -0
  50. data/lib/regexp_parser/syntax.rb +8 -6
  51. data/lib/regexp_parser/token.rb +9 -20
  52. data/lib/regexp_parser/version.rb +1 -1
  53. data/lib/regexp_parser.rb +0 -2
  54. data/spec/expression/clone_spec.rb +36 -4
  55. data/spec/expression/free_space_spec.rb +2 -2
  56. data/spec/expression/methods/match_length_spec.rb +2 -2
  57. data/spec/lexer/nesting_spec.rb +2 -2
  58. data/spec/lexer/refcalls_spec.rb +5 -0
  59. data/spec/parser/all_spec.rb +2 -2
  60. data/spec/parser/escapes_spec.rb +43 -31
  61. data/spec/parser/properties_spec.rb +6 -4
  62. data/spec/parser/refcalls_spec.rb +5 -0
  63. data/spec/parser/set/ranges_spec.rb +26 -16
  64. data/spec/scanner/escapes_spec.rb +29 -20
  65. data/spec/scanner/refcalls_spec.rb +19 -0
  66. data/spec/scanner/sets_spec.rb +66 -23
  67. data/spec/spec_helper.rb +13 -1
  68. data/spec/support/capturing_stderr.rb +9 -0
  69. data/spec/syntax/versions/1.8.6_spec.rb +2 -2
  70. data/spec/syntax/versions/2.0.0_spec.rb +2 -2
  71. data/spec/syntax/versions/aliases_spec.rb +1 -0
  72. metadata +27 -26
  73. data/lib/regexp_parser/syntax/tokens/anchor.rb +0 -15
  74. data/lib/regexp_parser/syntax/tokens/escape.rb +0 -30
  75. data/lib/regexp_parser/syntax/tokens/quantifier.rb +0 -35
  76. data/lib/regexp_parser/syntax/tokens/unicode_property.rb +0 -675
  77. data/lib/regexp_parser/syntax/tokens.rb +0 -45
  78. data/spec/support/runner.rb +0 -42
  79. data/spec/support/warning_extractor.rb +0 -60
@@ -2,18 +2,20 @@
2
2
 
3
3
  # line 1 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4
4
 
5
- # line 673 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
5
+ # line 649 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
6
6
 
7
7
 
8
8
  # THIS IS A GENERATED FILE, DO NOT EDIT DIRECTLY
9
9
  # This file was generated from lib/regexp_parser/scanner/scanner.rl
10
10
 
11
+ require 'regexp_parser/error'
12
+
11
13
  class Regexp::Scanner
12
14
  # General scanner error (catch all)
13
- class ScannerError < StandardError; end
15
+ class ScannerError < Regexp::Parser::Error; end
14
16
 
15
17
  # Base for all scanner validation errors
16
- class ValidationError < StandardError
18
+ class ValidationError < Regexp::Parser::Error
17
19
  def initialize(reason)
18
20
  super reason
19
21
  end
@@ -91,7 +93,7 @@ class Regexp::Scanner
91
93
  self.char_pos = 0
92
94
 
93
95
 
94
- # line 94 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
96
+ # line 96 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
95
97
  class << self
96
98
  attr_accessor :_re_scanner_trans_keys
97
99
  private :_re_scanner_trans_keys, :_re_scanner_trans_keys=
@@ -103,59 +105,62 @@ self._re_scanner_trans_keys = [
103
105
  62, 62, 39, 60, 39, 57,
104
106
  39, 39, 48, 57, 39,
105
107
  57, 39, 57, 48, 57,
106
- 45, 62, 62, 62, 48, 57,
107
- 48, 62, 43, 62, 48,
108
- 57, 48, 57, 48, 125,
109
- 44, 125, 123, 123, 9, 122,
110
- 9, 125, 9, 122, -128,
111
- -65, -128, -65, 38, 38,
112
- 45, 122, 45, 122, 93, 93,
113
- 94, 120, 97, 120, 108,
114
- 115, 110, 112, 117, 117,
115
- 109, 109, 58, 58, 93, 93,
116
- 104, 104, 97, 97, 99,
117
- 99, 105, 105, 105, 105,
118
- 108, 108, 97, 97, 110, 110,
119
- 107, 107, 110, 110, 116,
120
- 116, 114, 114, 108, 108,
121
- 105, 105, 103, 103, 105, 105,
122
- 116, 116, 114, 114, 97,
123
- 97, 112, 112, 104, 104,
124
- 111, 111, 119, 119, 101, 101,
125
- 114, 114, 114, 117, 105,
126
- 105, 110, 110, 110, 110,
127
- 99, 99, 112, 112, 97, 97,
128
- 99, 99, 101, 101, 112,
129
- 112, 112, 112, 111, 111,
130
- 114, 114, 100, 100, 100, 100,
131
- 65, 122, 61, 61, 93,
132
- 93, -128, -65, -128, -65,
133
- 45, 45, 92, 92, 92, 92,
134
- 45, 45, 92, 92, 92,
135
- 92, 48, 123, 48, 102,
108
+ 39, 39, 45, 62, 62, 62,
109
+ 48, 57, 48, 62, 43,
110
+ 62, 48, 57, 62, 62,
111
+ 39, 60, 39, 57, 39, 39,
112
+ 48, 57, 39, 57, 39,
113
+ 57, 48, 57, 45, 62,
114
+ 62, 62, 48, 57, 48, 62,
115
+ 43, 62, 48, 57, 48,
116
+ 57, 48, 125, 44, 125,
117
+ 123, 123, 9, 122, 9, 125,
118
+ 9, 122, -128, -65, -128,
119
+ -65, 38, 38, 94, 120,
120
+ 97, 120, 108, 115, 110, 112,
121
+ 117, 117, 109, 109, 58,
122
+ 58, 93, 93, 104, 104,
123
+ 97, 97, 99, 99, 105, 105,
124
+ 105, 105, 108, 108, 97,
125
+ 97, 110, 110, 107, 107,
126
+ 110, 110, 116, 116, 114, 114,
127
+ 108, 108, 105, 105, 103,
128
+ 103, 105, 105, 116, 116,
129
+ 114, 114, 97, 97, 112, 112,
130
+ 104, 104, 111, 111, 119,
131
+ 119, 101, 101, 114, 114,
132
+ 114, 117, 105, 105, 110, 110,
133
+ 110, 110, 99, 99, 112,
134
+ 112, 97, 97, 99, 99,
135
+ 101, 101, 112, 112, 112, 112,
136
+ 111, 111, 114, 114, 100,
137
+ 100, 100, 100, -128, -65,
138
+ -128, -65, 45, 45, 92, 92,
139
+ 92, 92, 45, 45, 92,
140
+ 92, 92, 92, 48, 123,
136
141
  48, 102, 48, 102, 48, 102,
137
- 9, 125, 9, 125, 9,
142
+ 48, 102, 9, 125, 9,
138
143
  125, 9, 125, 9, 125,
139
- 9, 125, 48, 123, 39, 39,
140
- 41, 41, 41, 57, 62,
141
- 62, -128, 127, -62, -12,
142
- 1, 127, 1, 127, 9, 32,
143
- 33, 126, 10, 10, 63,
144
- 63, 33, 126, 33, 126,
145
- 62, 62, 43, 63, 43, 63,
146
- 43, 63, 65, 122, 44,
147
- 57, 43, 63, 68, 119,
148
- 80, 112, -62, 125, -128, -65,
149
- -128, -65, -128, -65, 38,
150
- 38, 38, 93, 46, 61,
151
- 48, 122, -62, 125, -128, -65,
152
- -128, -65, -128, -65, 48,
153
- 55, 48, 55, 77, 77,
154
- 45, 45, 0, 0, 67, 99,
155
- 45, 45, 0, 0, 92,
156
- 92, 48, 102, 39, 60,
157
- 39, 57, 49, 57, 41, 57,
158
- 45, 62, 0
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
159
164
  ]
160
165
 
161
166
  class << self
@@ -165,24 +170,25 @@ end
165
170
  self._re_scanner_key_spans = [
166
171
  0, 64, 64, 64, 1, 19, 1, 30,
167
172
  1, 22, 19, 1, 10, 19, 19, 10,
168
- 18, 1, 10, 15, 20, 10, 10, 78,
169
- 82, 1, 114, 117, 114, 64, 64, 1,
170
- 78, 78, 1, 27, 24, 8, 3, 1,
171
- 1, 1, 1, 1, 1, 1, 1, 1,
173
+ 1, 18, 1, 10, 15, 20, 10, 1,
174
+ 22, 19, 1, 10, 19, 19, 10, 18,
175
+ 1, 10, 15, 20, 10, 10, 78, 82,
176
+ 1, 114, 117, 114, 64, 64, 1, 27,
177
+ 24, 8, 3, 1, 1, 1, 1, 1,
172
178
  1, 1, 1, 1, 1, 1, 1, 1,
173
179
  1, 1, 1, 1, 1, 1, 1, 1,
174
- 1, 1, 1, 1, 4, 1, 1, 1,
175
180
  1, 1, 1, 1, 1, 1, 1, 1,
176
- 1, 1, 1, 58, 1, 1, 64, 64,
177
- 1, 1, 1, 1, 1, 1, 76, 55,
178
- 55, 55, 55, 117, 117, 117, 117, 117,
179
- 117, 76, 1, 1, 17, 1, 256, 51,
180
- 127, 127, 24, 94, 1, 1, 94, 94,
181
- 1, 21, 21, 21, 58, 14, 21, 52,
182
- 33, 188, 64, 64, 64, 1, 56, 16,
183
- 75, 188, 64, 64, 64, 8, 8, 1,
184
- 1, 0, 33, 1, 0, 1, 55, 22,
185
- 19, 9, 17, 18
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
186
192
  ]
187
193
 
188
194
  class << self
@@ -192,24 +198,25 @@ end
192
198
  self._re_scanner_index_offsets = [
193
199
  0, 0, 65, 130, 195, 197, 217, 219,
194
200
  250, 252, 275, 295, 297, 308, 328, 348,
195
- 359, 378, 380, 391, 407, 428, 439, 450,
196
- 529, 612, 614, 729, 847, 962, 1027, 1092,
197
- 1094, 1173, 1252, 1254, 1282, 1307, 1316, 1320,
198
- 1322, 1324, 1326, 1328, 1330, 1332, 1334, 1336,
199
- 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1352,
200
- 1354, 1356, 1358, 1360, 1362, 1364, 1366, 1368,
201
- 1370, 1372, 1374, 1376, 1378, 1383, 1385, 1387,
202
- 1389, 1391, 1393, 1395, 1397, 1399, 1401, 1403,
203
- 1405, 1407, 1409, 1411, 1470, 1472, 1474, 1539,
204
- 1604, 1606, 1608, 1610, 1612, 1614, 1616, 1693,
205
- 1749, 1805, 1861, 1917, 2035, 2153, 2271, 2389,
206
- 2507, 2625, 2702, 2704, 2706, 2724, 2726, 2983,
207
- 3035, 3163, 3291, 3316, 3411, 3413, 3415, 3510,
208
- 3605, 3607, 3629, 3651, 3673, 3732, 3747, 3769,
209
- 3822, 3856, 4045, 4110, 4175, 4240, 4242, 4299,
210
- 4316, 4392, 4581, 4646, 4711, 4776, 4785, 4794,
211
- 4796, 4798, 4799, 4833, 4835, 4836, 4838, 4894,
212
- 4917, 4937, 4947, 4965
201
+ 359, 361, 380, 382, 393, 409, 430, 441,
202
+ 443, 466, 486, 488, 499, 519, 539, 550,
203
+ 569, 571, 582, 598, 619, 630, 641, 720,
204
+ 803, 805, 920, 1038, 1153, 1218, 1283, 1285,
205
+ 1313, 1338, 1347, 1351, 1353, 1355, 1357, 1359,
206
+ 1361, 1363, 1365, 1367, 1369, 1371, 1373, 1375,
207
+ 1377, 1379, 1381, 1383, 1385, 1387, 1389, 1391,
208
+ 1393, 1395, 1397, 1399, 1401, 1403, 1405, 1407,
209
+ 1409, 1414, 1416, 1418, 1420, 1422, 1424, 1426,
210
+ 1428, 1430, 1432, 1434, 1436, 1438, 1440, 1442,
211
+ 1507, 1572, 1574, 1576, 1578, 1580, 1582, 1584,
212
+ 1661, 1717, 1773, 1829, 1885, 2003, 2121, 2239,
213
+ 2357, 2475, 2593, 2670, 2672, 2674, 2692, 2694,
214
+ 2951, 3003, 3131, 3259, 3284, 3379, 3381, 3383,
215
+ 3478, 3573, 3575, 3597, 3619, 3641, 3700, 3715,
216
+ 3737, 3790, 3824, 4013, 4078, 4143, 4208, 4210,
217
+ 4267, 4269, 4324, 4513, 4578, 4643, 4708, 4717,
218
+ 4726, 4728, 4730, 4731, 4765, 4767, 4768, 4770,
219
+ 4826, 4849, 4869, 4879, 4897
213
220
  ]
214
221
 
215
222
  class << self
@@ -252,595 +259,586 @@ self._re_scanner_indicies = [
252
259
  11, 11, 11, 11, 11, 11, 11, 11,
253
260
  11, 11, 11, 11, 11, 11, 11, 11,
254
261
  11, 13, 11, 15, 14, 14, 14, 14,
255
- 14, 16, 14, 14, 11, 17, 17, 17,
256
- 17, 17, 17, 17, 17, 17, 14, 15,
257
- 14, 18, 17, 17, 17, 17, 17, 17,
258
- 17, 17, 17, 11, 15, 11, 11, 11,
259
- 11, 11, 11, 11, 11, 18, 18, 18,
260
- 18, 18, 18, 18, 18, 18, 18, 11,
261
- 15, 11, 11, 11, 19, 11, 19, 11,
262
- 11, 17, 17, 17, 17, 17, 17, 17,
263
- 17, 17, 17, 11, 18, 18, 18, 18,
264
- 18, 18, 18, 18, 18, 18, 11, 21,
265
- 20, 20, 11, 22, 22, 22, 22, 22,
266
- 22, 22, 22, 22, 20, 20, 20, 20,
267
- 15, 20, 15, 20, 23, 22, 22, 22,
268
- 22, 22, 22, 22, 22, 22, 11, 23,
269
- 23, 23, 23, 23, 23, 23, 23, 23,
270
- 23, 11, 11, 11, 11, 15, 11, 24,
271
- 11, 24, 11, 11, 22, 22, 22, 22,
272
- 22, 22, 22, 22, 22, 22, 11, 11,
273
- 11, 11, 15, 11, 23, 23, 23, 23,
274
- 23, 23, 23, 23, 23, 23, 11, 26,
275
- 26, 26, 26, 26, 26, 26, 26, 26,
276
- 26, 25, 26, 26, 26, 26, 26, 26,
277
- 26, 26, 26, 26, 25, 25, 25, 25,
278
- 25, 25, 25, 25, 25, 25, 25, 25,
279
- 25, 25, 25, 25, 25, 25, 25, 25,
280
- 25, 25, 25, 25, 25, 25, 25, 25,
281
- 25, 25, 25, 25, 25, 25, 25, 25,
282
- 25, 25, 25, 25, 25, 25, 25, 25,
283
- 25, 25, 25, 25, 25, 25, 25, 25,
284
- 25, 25, 25, 25, 25, 25, 25, 25,
285
- 25, 25, 25, 25, 25, 25, 25, 27,
286
- 25, 26, 25, 25, 25, 28, 28, 28,
287
- 28, 28, 28, 28, 28, 28, 28, 25,
288
- 25, 25, 25, 25, 25, 25, 25, 25,
289
- 25, 25, 25, 25, 25, 25, 25, 25,
290
- 25, 25, 25, 25, 25, 25, 25, 25,
291
- 25, 25, 25, 25, 25, 25, 25, 25,
292
- 25, 25, 25, 25, 25, 25, 25, 25,
293
- 25, 25, 25, 25, 25, 25, 25, 25,
294
- 25, 25, 25, 25, 25, 25, 25, 25,
262
+ 14, 16, 14, 14, 17, 18, 18, 18,
263
+ 18, 18, 18, 18, 18, 18, 14, 15,
264
+ 14, 19, 18, 18, 18, 18, 18, 18,
265
+ 18, 18, 18, 11, 15, 11, 11, 11,
266
+ 11, 11, 11, 11, 11, 19, 19, 19,
267
+ 19, 19, 19, 19, 19, 19, 19, 11,
268
+ 15, 11, 11, 11, 20, 11, 20, 11,
269
+ 11, 18, 18, 18, 18, 18, 18, 18,
270
+ 18, 18, 18, 11, 19, 19, 19, 19,
271
+ 19, 19, 19, 19, 19, 19, 11, 15,
272
+ 11, 22, 21, 21, 23, 24, 24, 24,
273
+ 24, 24, 24, 24, 24, 24, 21, 21,
274
+ 21, 21, 15, 21, 15, 21, 25, 24,
275
+ 24, 24, 24, 24, 24, 24, 24, 24,
276
+ 11, 25, 25, 25, 25, 25, 25, 25,
277
+ 25, 25, 25, 11, 11, 11, 11, 15,
278
+ 11, 26, 11, 26, 11, 11, 24, 24,
279
+ 24, 24, 24, 24, 24, 24, 24, 24,
280
+ 11, 11, 11, 11, 15, 11, 25, 25,
295
281
  25, 25, 25, 25, 25, 25, 25, 25,
296
- 25, 25, 27, 25, 29, 30, 31, 31,
297
- 31, 31, 31, 30, 30, 30, 30, 30,
298
- 30, 30, 30, 30, 30, 30, 30, 30,
299
- 30, 30, 30, 30, 30, 31, 30, 30,
300
- 30, 30, 30, 30, 30, 30, 30, 30,
301
- 30, 30, 31, 31, 30, 31, 31, 31,
302
- 31, 31, 31, 31, 31, 31, 31, 30,
303
- 30, 30, 31, 30, 30, 30, 31, 31,
304
- 31, 31, 31, 31, 31, 31, 31, 31,
305
- 31, 31, 31, 31, 31, 31, 31, 31,
306
- 31, 31, 31, 31, 31, 31, 31, 31,
307
- 30, 30, 30, 32, 31, 30, 31, 31,
308
- 31, 31, 31, 31, 31, 31, 31, 31,
309
- 31, 31, 31, 31, 31, 31, 31, 31,
310
- 31, 31, 31, 31, 31, 31, 31, 31,
311
- 30, 31, 31, 31, 31, 31, 30, 30,
312
- 30, 30, 30, 30, 30, 30, 30, 30,
313
- 30, 30, 30, 30, 30, 30, 30, 30,
314
- 31, 30, 30, 30, 30, 30, 30, 30,
315
- 30, 30, 30, 30, 30, 31, 31, 30,
316
- 31, 31, 31, 31, 31, 31, 31, 31,
317
- 31, 31, 30, 30, 30, 31, 30, 30,
318
- 30, 31, 31, 31, 31, 31, 31, 31,
319
- 31, 31, 31, 31, 31, 31, 31, 31,
320
- 31, 31, 31, 31, 31, 31, 31, 31,
321
- 31, 31, 31, 30, 30, 30, 30, 31,
322
- 30, 31, 31, 31, 31, 31, 31, 31,
323
- 31, 31, 31, 31, 31, 31, 31, 31,
324
- 31, 31, 31, 31, 31, 31, 31, 31,
325
- 31, 31, 31, 30, 30, 33, 30, 31,
326
- 31, 31, 31, 31, 30, 30, 30, 30,
327
- 30, 30, 30, 30, 30, 30, 30, 30,
328
- 30, 30, 30, 30, 30, 30, 31, 30,
329
- 30, 30, 30, 30, 30, 30, 30, 30,
330
- 30, 30, 30, 31, 31, 30, 31, 31,
331
- 31, 31, 31, 31, 31, 31, 31, 31,
332
- 30, 30, 30, 31, 30, 30, 30, 31,
333
- 31, 31, 31, 31, 31, 31, 31, 31,
334
- 31, 31, 31, 31, 31, 31, 31, 31,
335
- 31, 31, 31, 31, 31, 31, 31, 31,
336
- 31, 30, 30, 30, 30, 31, 30, 31,
337
- 31, 31, 31, 31, 31, 31, 31, 31,
338
- 31, 31, 31, 31, 31, 31, 31, 31,
339
- 31, 31, 31, 31, 31, 31, 31, 31,
340
- 31, 30, 35, 35, 35, 35, 35, 35,
341
- 35, 35, 35, 35, 35, 35, 35, 35,
342
- 35, 35, 35, 35, 35, 35, 35, 35,
343
- 35, 35, 35, 35, 35, 35, 35, 35,
344
- 35, 35, 35, 35, 35, 35, 35, 35,
345
- 35, 35, 35, 35, 35, 35, 35, 35,
346
- 35, 35, 35, 35, 35, 35, 35, 35,
347
- 35, 35, 35, 35, 35, 35, 35, 35,
348
- 35, 35, 34, 36, 36, 36, 36, 36,
349
- 36, 36, 36, 36, 36, 36, 36, 36,
350
- 36, 36, 36, 36, 36, 36, 36, 36,
351
- 36, 36, 36, 36, 36, 36, 36, 36,
352
- 36, 36, 36, 36, 36, 36, 36, 36,
353
- 36, 36, 36, 36, 36, 36, 36, 36,
354
- 36, 36, 36, 36, 36, 36, 36, 36,
355
- 36, 36, 36, 36, 36, 36, 36, 36,
356
- 36, 36, 36, 34, 38, 37, 41, 40,
282
+ 11, 15, 11, 27, 11, 11, 11, 11,
283
+ 11, 11, 11, 11, 11, 11, 11, 11,
284
+ 11, 11, 11, 11, 11, 11, 11, 11,
285
+ 28, 11, 30, 29, 29, 29, 29, 29,
286
+ 31, 29, 29, 11, 32, 32, 32, 32,
287
+ 32, 32, 32, 32, 32, 29, 30, 29,
288
+ 33, 32, 32, 32, 32, 32, 32, 32,
289
+ 32, 32, 11, 30, 11, 11, 11, 11,
290
+ 11, 11, 11, 11, 33, 33, 33, 33,
291
+ 33, 33, 33, 33, 33, 33, 11, 30,
292
+ 11, 11, 11, 34, 11, 34, 11, 11,
293
+ 32, 32, 32, 32, 32, 32, 32, 32,
294
+ 32, 32, 11, 33, 33, 33, 33, 33,
295
+ 33, 33, 33, 33, 33, 11, 36, 35,
296
+ 35, 11, 37, 37, 37, 37, 37, 37,
297
+ 37, 37, 37, 35, 35, 35, 35, 30,
298
+ 35, 30, 35, 38, 37, 37, 37, 37,
299
+ 37, 37, 37, 37, 37, 11, 38, 38,
300
+ 38, 38, 38, 38, 38, 38, 38, 38,
301
+ 11, 11, 11, 11, 30, 11, 39, 11,
302
+ 39, 11, 11, 37, 37, 37, 37, 37,
303
+ 37, 37, 37, 37, 37, 11, 11, 11,
304
+ 11, 30, 11, 38, 38, 38, 38, 38,
305
+ 38, 38, 38, 38, 38, 11, 41, 41,
306
+ 41, 41, 41, 41, 41, 41, 41, 41,
307
+ 40, 41, 41, 41, 41, 41, 41, 41,
308
+ 41, 41, 41, 40, 40, 40, 40, 40,
357
309
  40, 40, 40, 40, 40, 40, 40, 40,
358
310
  40, 40, 40, 40, 40, 40, 40, 40,
359
- 40, 40, 41, 41, 41, 41, 41, 41,
360
- 41, 41, 41, 41, 41, 41, 41, 41,
361
- 41, 41, 41, 41, 41, 41, 41, 41,
362
- 41, 41, 41, 41, 40, 40, 40, 40,
363
- 40, 40, 41, 41, 41, 41, 41, 41,
364
- 41, 41, 41, 41, 41, 41, 41, 41,
365
- 41, 41, 41, 41, 41, 41, 41, 41,
366
- 41, 41, 41, 41, 40, 41, 42, 40,
367
311
  40, 40, 40, 40, 40, 40, 40, 40,
368
312
  40, 40, 40, 40, 40, 40, 40, 40,
369
- 40, 41, 41, 41, 41, 41, 41, 41,
370
- 41, 41, 41, 41, 41, 41, 41, 41,
371
- 41, 41, 41, 41, 41, 41, 41, 41,
372
- 41, 41, 41, 40, 40, 40, 40, 40,
373
- 40, 41, 41, 41, 41, 41, 41, 41,
374
- 41, 41, 41, 41, 41, 41, 41, 41,
375
- 41, 41, 41, 41, 41, 41, 41, 41,
376
- 41, 41, 41, 40, 43, 40, 44, 40,
377
- 40, 45, 46, 47, 48, 40, 40, 49,
378
- 40, 40, 40, 40, 50, 40, 40, 40,
379
- 51, 40, 40, 52, 40, 53, 40, 54,
380
- 55, 40, 45, 46, 47, 48, 40, 40,
381
- 49, 40, 40, 40, 40, 50, 40, 40,
382
- 40, 51, 40, 40, 52, 40, 53, 40,
383
- 54, 55, 40, 56, 40, 40, 40, 40,
384
- 40, 40, 57, 40, 58, 40, 59, 40,
385
- 60, 40, 61, 40, 62, 40, 63, 40,
386
- 64, 40, 61, 40, 65, 40, 66, 40,
387
- 61, 40, 67, 40, 68, 40, 69, 40,
388
- 61, 40, 70, 40, 71, 40, 72, 40,
389
- 61, 40, 73, 40, 74, 40, 75, 40,
390
- 61, 40, 76, 40, 77, 40, 78, 40,
391
- 61, 40, 79, 40, 80, 40, 81, 40,
392
- 61, 40, 82, 40, 40, 83, 40, 84,
393
- 40, 75, 40, 85, 40, 75, 40, 86,
394
- 40, 87, 40, 88, 40, 61, 40, 89,
395
- 40, 80, 40, 90, 40, 91, 40, 61,
396
- 40, 48, 40, 92, 92, 92, 92, 92,
397
- 92, 92, 92, 92, 92, 92, 92, 92,
398
- 92, 92, 92, 92, 92, 92, 92, 92,
399
- 92, 92, 92, 92, 92, 40, 40, 40,
400
- 40, 40, 40, 92, 92, 92, 92, 92,
401
- 92, 92, 92, 92, 92, 92, 92, 92,
402
- 92, 92, 92, 92, 92, 92, 92, 92,
403
- 92, 92, 92, 92, 92, 40, 93, 40,
404
- 94, 40, 96, 96, 96, 96, 96, 96,
405
- 96, 96, 96, 96, 96, 96, 96, 96,
406
- 96, 96, 96, 96, 96, 96, 96, 96,
407
- 96, 96, 96, 96, 96, 96, 96, 96,
408
- 96, 96, 96, 96, 96, 96, 96, 96,
409
- 96, 96, 96, 96, 96, 96, 96, 96,
410
- 96, 96, 96, 96, 96, 96, 96, 96,
411
- 96, 96, 96, 96, 96, 96, 96, 96,
412
- 96, 96, 95, 97, 97, 97, 97, 97,
413
- 97, 97, 97, 97, 97, 97, 97, 97,
414
- 97, 97, 97, 97, 97, 97, 97, 97,
415
- 97, 97, 97, 97, 97, 97, 97, 97,
416
- 97, 97, 97, 97, 97, 97, 97, 97,
417
- 97, 97, 97, 97, 97, 97, 97, 97,
418
- 97, 97, 97, 97, 97, 97, 97, 97,
419
- 97, 97, 97, 97, 97, 97, 97, 97,
420
- 97, 97, 97, 95, 98, 30, 100, 99,
421
- 102, 99, 103, 30, 105, 104, 107, 104,
422
- 108, 108, 108, 108, 108, 108, 108, 108,
423
- 108, 108, 30, 30, 30, 30, 30, 30,
424
- 30, 108, 108, 108, 108, 108, 108, 30,
425
- 30, 30, 30, 30, 30, 30, 30, 30,
426
- 30, 30, 30, 30, 30, 30, 30, 30,
427
- 30, 30, 30, 30, 30, 30, 30, 30,
428
- 30, 108, 108, 108, 108, 108, 108, 30,
429
- 30, 30, 30, 30, 30, 30, 30, 30,
430
- 30, 30, 30, 30, 30, 30, 30, 30,
431
- 30, 30, 30, 109, 30, 110, 110, 110,
432
- 110, 110, 110, 110, 110, 110, 110, 30,
433
- 30, 30, 30, 30, 30, 30, 110, 110,
434
- 110, 110, 110, 110, 30, 30, 30, 30,
435
- 30, 30, 30, 30, 30, 30, 30, 30,
436
- 30, 30, 30, 30, 30, 30, 30, 30,
437
- 30, 30, 30, 30, 30, 30, 110, 110,
438
- 110, 110, 110, 110, 30, 111, 111, 111,
439
- 111, 111, 111, 111, 111, 111, 111, 30,
440
- 30, 30, 30, 30, 30, 30, 111, 111,
441
- 111, 111, 111, 111, 30, 30, 30, 30,
442
- 30, 30, 30, 30, 30, 30, 30, 30,
443
- 30, 30, 30, 30, 30, 30, 30, 30,
444
- 30, 30, 30, 30, 30, 30, 111, 111,
445
- 111, 111, 111, 111, 30, 112, 112, 112,
446
- 112, 112, 112, 112, 112, 112, 112, 30,
447
- 30, 30, 30, 30, 30, 30, 112, 112,
448
- 112, 112, 112, 112, 30, 30, 30, 30,
449
- 30, 30, 30, 30, 30, 30, 30, 30,
450
- 30, 30, 30, 30, 30, 30, 30, 30,
451
- 30, 30, 30, 30, 30, 30, 112, 112,
452
- 112, 112, 112, 112, 30, 113, 113, 113,
453
- 113, 113, 113, 113, 113, 113, 113, 30,
454
- 30, 30, 30, 30, 30, 30, 113, 113,
455
- 113, 113, 113, 113, 30, 30, 30, 30,
456
- 30, 30, 30, 30, 30, 30, 30, 30,
457
- 30, 30, 30, 30, 30, 30, 30, 30,
458
- 30, 30, 30, 30, 30, 30, 113, 113,
459
- 113, 113, 113, 113, 30, 109, 109, 109,
460
- 109, 109, 30, 30, 30, 30, 30, 30,
461
- 30, 30, 30, 30, 30, 30, 30, 30,
462
- 30, 30, 30, 30, 109, 30, 30, 30,
463
- 30, 30, 30, 30, 30, 30, 30, 30,
464
- 30, 30, 30, 30, 114, 114, 114, 114,
465
- 114, 114, 114, 114, 114, 114, 30, 30,
466
- 30, 30, 30, 30, 30, 114, 114, 114,
467
- 114, 114, 114, 30, 30, 30, 30, 30,
468
- 30, 30, 30, 30, 30, 30, 30, 30,
469
- 30, 30, 30, 30, 30, 30, 30, 30,
470
- 30, 30, 30, 30, 30, 114, 114, 114,
471
- 114, 114, 114, 30, 30, 30, 30, 30,
472
- 30, 30, 30, 30, 30, 30, 30, 30,
473
- 30, 30, 30, 30, 30, 30, 30, 30,
474
- 30, 112, 30, 109, 109, 109, 109, 109,
475
- 30, 30, 30, 30, 30, 30, 30, 30,
476
- 30, 30, 30, 30, 30, 30, 30, 30,
477
- 30, 30, 109, 30, 30, 30, 30, 30,
478
- 30, 30, 30, 30, 30, 30, 30, 30,
479
- 30, 30, 115, 115, 115, 115, 115, 115,
480
- 115, 115, 115, 115, 30, 30, 30, 30,
481
- 30, 30, 30, 115, 115, 115, 115, 115,
482
- 115, 30, 30, 30, 30, 30, 30, 30,
483
- 30, 30, 30, 30, 30, 30, 30, 30,
484
- 30, 30, 30, 30, 30, 30, 30, 30,
485
- 30, 30, 30, 115, 115, 115, 115, 115,
486
- 115, 30, 30, 30, 30, 30, 30, 30,
487
- 30, 30, 30, 30, 30, 30, 30, 30,
488
- 30, 30, 30, 30, 30, 30, 30, 112,
489
- 30, 109, 109, 109, 109, 109, 30, 30,
490
- 30, 30, 30, 30, 30, 30, 30, 30,
491
- 30, 30, 30, 30, 30, 30, 30, 30,
492
- 109, 30, 30, 30, 30, 30, 30, 30,
493
- 30, 30, 30, 30, 30, 30, 30, 30,
494
- 116, 116, 116, 116, 116, 116, 116, 116,
495
- 116, 116, 30, 30, 30, 30, 30, 30,
496
- 30, 116, 116, 116, 116, 116, 116, 30,
497
- 30, 30, 30, 30, 30, 30, 30, 30,
498
- 30, 30, 30, 30, 30, 30, 30, 30,
499
- 30, 30, 30, 30, 30, 30, 30, 30,
500
- 30, 116, 116, 116, 116, 116, 116, 30,
501
- 30, 30, 30, 30, 30, 30, 30, 30,
502
- 30, 30, 30, 30, 30, 30, 30, 30,
503
- 30, 30, 30, 30, 30, 112, 30, 109,
504
- 109, 109, 109, 109, 30, 30, 30, 30,
505
- 30, 30, 30, 30, 30, 30, 30, 30,
506
- 30, 30, 30, 30, 30, 30, 109, 30,
507
- 30, 30, 30, 30, 30, 30, 30, 30,
508
- 30, 30, 30, 30, 30, 30, 117, 117,
313
+ 40, 40, 40, 40, 40, 40, 40, 40,
314
+ 40, 40, 40, 40, 40, 40, 40, 40,
315
+ 40, 40, 40, 40, 40, 40, 40, 40,
316
+ 40, 40, 40, 40, 40, 40, 42, 40,
317
+ 41, 40, 40, 40, 43, 43, 43, 43,
318
+ 43, 43, 43, 43, 43, 43, 40, 40,
319
+ 40, 40, 40, 40, 40, 40, 40, 40,
320
+ 40, 40, 40, 40, 40, 40, 40, 40,
321
+ 40, 40, 40, 40, 40, 40, 40, 40,
322
+ 40, 40, 40, 40, 40, 40, 40, 40,
323
+ 40, 40, 40, 40, 40, 40, 40, 40,
324
+ 40, 40, 40, 40, 40, 40, 40, 40,
325
+ 40, 40, 40, 40, 40, 40, 40, 40,
326
+ 40, 40, 40, 40, 40, 40, 40, 40,
327
+ 40, 42, 40, 44, 45, 46, 46, 46,
328
+ 46, 46, 45, 45, 45, 45, 45, 45,
329
+ 45, 45, 45, 45, 45, 45, 45, 45,
330
+ 45, 45, 45, 45, 46, 45, 45, 45,
331
+ 45, 45, 45, 45, 45, 45, 45, 45,
332
+ 45, 46, 46, 45, 46, 46, 46, 46,
333
+ 46, 46, 46, 46, 46, 46, 45, 45,
334
+ 45, 46, 45, 45, 45, 46, 46, 46,
335
+ 46, 46, 46, 46, 46, 46, 46, 46,
336
+ 46, 46, 46, 46, 46, 46, 46, 46,
337
+ 46, 46, 46, 46, 46, 46, 46, 45,
338
+ 45, 45, 47, 46, 45, 46, 46, 46,
339
+ 46, 46, 46, 46, 46, 46, 46, 46,
340
+ 46, 46, 46, 46, 46, 46, 46, 46,
341
+ 46, 46, 46, 46, 46, 46, 46, 45,
342
+ 46, 46, 46, 46, 46, 45, 45, 45,
343
+ 45, 45, 45, 45, 45, 45, 45, 45,
344
+ 45, 45, 45, 45, 45, 45, 45, 46,
345
+ 45, 45, 45, 45, 45, 45, 45, 45,
346
+ 45, 45, 45, 45, 46, 46, 45, 46,
347
+ 46, 46, 46, 46, 46, 46, 46, 46,
348
+ 46, 45, 45, 45, 46, 45, 45, 45,
349
+ 46, 46, 46, 46, 46, 46, 46, 46,
350
+ 46, 46, 46, 46, 46, 46, 46, 46,
351
+ 46, 46, 46, 46, 46, 46, 46, 46,
352
+ 46, 46, 45, 45, 45, 45, 46, 45,
353
+ 46, 46, 46, 46, 46, 46, 46, 46,
354
+ 46, 46, 46, 46, 46, 46, 46, 46,
355
+ 46, 46, 46, 46, 46, 46, 46, 46,
356
+ 46, 46, 45, 45, 48, 45, 46, 46,
357
+ 46, 46, 46, 45, 45, 45, 45, 45,
358
+ 45, 45, 45, 45, 45, 45, 45, 45,
359
+ 45, 45, 45, 45, 45, 46, 45, 45,
360
+ 45, 45, 45, 45, 45, 45, 45, 45,
361
+ 45, 45, 46, 46, 45, 46, 46, 46,
362
+ 46, 46, 46, 46, 46, 46, 46, 45,
363
+ 45, 45, 46, 45, 45, 45, 46, 46,
364
+ 46, 46, 46, 46, 46, 46, 46, 46,
365
+ 46, 46, 46, 46, 46, 46, 46, 46,
366
+ 46, 46, 46, 46, 46, 46, 46, 46,
367
+ 45, 45, 45, 45, 46, 45, 46, 46,
368
+ 46, 46, 46, 46, 46, 46, 46, 46,
369
+ 46, 46, 46, 46, 46, 46, 46, 46,
370
+ 46, 46, 46, 46, 46, 46, 46, 46,
371
+ 45, 50, 50, 50, 50, 50, 50, 50,
372
+ 50, 50, 50, 50, 50, 50, 50, 50,
373
+ 50, 50, 50, 50, 50, 50, 50, 50,
374
+ 50, 50, 50, 50, 50, 50, 50, 50,
375
+ 50, 50, 50, 50, 50, 50, 50, 50,
376
+ 50, 50, 50, 50, 50, 50, 50, 50,
377
+ 50, 50, 50, 50, 50, 50, 50, 50,
378
+ 50, 50, 50, 50, 50, 50, 50, 50,
379
+ 50, 49, 51, 51, 51, 51, 51, 51,
380
+ 51, 51, 51, 51, 51, 51, 51, 51,
381
+ 51, 51, 51, 51, 51, 51, 51, 51,
382
+ 51, 51, 51, 51, 51, 51, 51, 51,
383
+ 51, 51, 51, 51, 51, 51, 51, 51,
384
+ 51, 51, 51, 51, 51, 51, 51, 51,
385
+ 51, 51, 51, 51, 51, 51, 51, 51,
386
+ 51, 51, 51, 51, 51, 51, 51, 51,
387
+ 51, 51, 49, 53, 52, 56, 55, 55,
388
+ 57, 58, 59, 60, 55, 55, 61, 55,
389
+ 55, 55, 55, 62, 55, 55, 55, 63,
390
+ 55, 55, 64, 55, 65, 55, 66, 67,
391
+ 55, 57, 58, 59, 60, 55, 55, 61,
392
+ 55, 55, 55, 55, 62, 55, 55, 55,
393
+ 63, 55, 55, 64, 55, 65, 55, 66,
394
+ 67, 55, 68, 55, 55, 55, 55, 55,
395
+ 55, 69, 55, 70, 55, 71, 55, 72,
396
+ 55, 73, 55, 74, 55, 75, 55, 76,
397
+ 55, 73, 55, 77, 55, 78, 55, 73,
398
+ 55, 79, 55, 80, 55, 81, 55, 73,
399
+ 55, 82, 55, 83, 55, 84, 55, 73,
400
+ 55, 85, 55, 86, 55, 87, 55, 73,
401
+ 55, 88, 55, 89, 55, 90, 55, 73,
402
+ 55, 91, 55, 92, 55, 93, 55, 73,
403
+ 55, 94, 55, 55, 95, 55, 96, 55,
404
+ 87, 55, 97, 55, 87, 55, 98, 55,
405
+ 99, 55, 100, 55, 73, 55, 101, 55,
406
+ 92, 55, 102, 55, 103, 55, 73, 55,
407
+ 60, 55, 105, 105, 105, 105, 105, 105,
408
+ 105, 105, 105, 105, 105, 105, 105, 105,
409
+ 105, 105, 105, 105, 105, 105, 105, 105,
410
+ 105, 105, 105, 105, 105, 105, 105, 105,
411
+ 105, 105, 105, 105, 105, 105, 105, 105,
412
+ 105, 105, 105, 105, 105, 105, 105, 105,
413
+ 105, 105, 105, 105, 105, 105, 105, 105,
414
+ 105, 105, 105, 105, 105, 105, 105, 105,
415
+ 105, 105, 104, 106, 106, 106, 106, 106,
416
+ 106, 106, 106, 106, 106, 106, 106, 106,
417
+ 106, 106, 106, 106, 106, 106, 106, 106,
418
+ 106, 106, 106, 106, 106, 106, 106, 106,
419
+ 106, 106, 106, 106, 106, 106, 106, 106,
420
+ 106, 106, 106, 106, 106, 106, 106, 106,
421
+ 106, 106, 106, 106, 106, 106, 106, 106,
422
+ 106, 106, 106, 106, 106, 106, 106, 106,
423
+ 106, 106, 106, 104, 107, 45, 109, 108,
424
+ 111, 108, 112, 45, 114, 113, 116, 113,
509
425
  117, 117, 117, 117, 117, 117, 117, 117,
510
- 30, 30, 30, 30, 30, 30, 30, 117,
511
- 117, 117, 117, 117, 117, 30, 30, 30,
512
- 30, 30, 30, 30, 30, 30, 30, 30,
513
- 30, 30, 30, 30, 30, 30, 30, 30,
514
- 30, 30, 30, 30, 30, 30, 30, 117,
515
- 117, 117, 117, 117, 117, 30, 30, 30,
516
- 30, 30, 30, 30, 30, 30, 30, 30,
517
- 30, 30, 30, 30, 30, 30, 30, 30,
518
- 30, 30, 30, 112, 30, 109, 109, 109,
519
- 109, 109, 30, 30, 30, 30, 30, 30,
520
- 30, 30, 30, 30, 30, 30, 30, 30,
521
- 30, 30, 30, 30, 109, 30, 30, 30,
522
- 30, 30, 30, 30, 30, 30, 30, 30,
523
- 30, 30, 30, 30, 118, 118, 118, 118,
524
- 118, 118, 118, 118, 118, 118, 30, 30,
525
- 30, 30, 30, 30, 30, 118, 118, 118,
526
- 118, 118, 118, 30, 30, 30, 30, 30,
527
- 30, 30, 30, 30, 30, 30, 30, 30,
528
- 30, 30, 30, 30, 30, 30, 30, 30,
529
- 30, 30, 30, 30, 30, 118, 118, 118,
530
- 118, 118, 118, 30, 30, 30, 30, 30,
531
- 30, 30, 30, 30, 30, 30, 30, 30,
532
- 30, 30, 30, 30, 30, 30, 30, 30,
533
- 30, 112, 30, 109, 109, 109, 109, 109,
534
- 30, 30, 30, 30, 30, 30, 30, 30,
535
- 30, 30, 30, 30, 30, 30, 30, 30,
536
- 30, 30, 109, 30, 30, 30, 30, 30,
537
- 30, 30, 30, 30, 30, 30, 30, 30,
538
- 30, 30, 30, 30, 30, 30, 30, 30,
539
- 30, 30, 30, 30, 30, 30, 30, 30,
540
- 30, 30, 30, 30, 30, 30, 30, 30,
541
- 30, 30, 30, 30, 30, 30, 30, 30,
542
- 30, 30, 30, 30, 30, 30, 30, 30,
543
- 30, 30, 30, 30, 30, 30, 30, 30,
544
- 30, 30, 30, 30, 30, 30, 30, 30,
545
- 30, 30, 30, 30, 30, 30, 30, 30,
546
- 30, 30, 30, 30, 30, 30, 30, 30,
547
- 30, 30, 30, 30, 30, 30, 30, 112,
548
- 30, 120, 120, 120, 120, 120, 120, 120,
549
- 120, 120, 120, 119, 119, 119, 119, 119,
550
- 119, 119, 120, 120, 120, 120, 120, 120,
551
- 119, 119, 119, 119, 119, 119, 119, 119,
552
- 119, 119, 119, 119, 119, 119, 119, 119,
553
- 119, 119, 119, 119, 119, 119, 119, 119,
554
- 119, 119, 120, 120, 120, 120, 120, 120,
555
- 119, 119, 119, 119, 119, 119, 119, 119,
556
- 119, 119, 119, 119, 119, 119, 119, 119,
557
- 119, 119, 119, 119, 30, 119, 123, 122,
558
- 124, 121, 124, 121, 121, 121, 121, 121,
559
- 121, 125, 125, 125, 125, 125, 125, 125,
560
- 125, 125, 125, 121, 123, 126, 30, 30,
561
- 30, 30, 30, 30, 30, 30, 30, 30,
562
- 30, 30, 30, 30, 30, 30, 30, 30,
563
- 30, 30, 30, 30, 30, 30, 30, 30,
564
- 30, 30, 30, 30, 30, 30, 30, 30,
565
- 30, 30, 30, 30, 30, 30, 30, 30,
566
- 30, 30, 30, 30, 30, 30, 30, 30,
567
- 30, 30, 30, 30, 30, 30, 30, 30,
568
- 30, 30, 30, 30, 30, 30, 30, 30,
426
+ 117, 117, 45, 45, 45, 45, 45, 45,
427
+ 45, 117, 117, 117, 117, 117, 117, 45,
428
+ 45, 45, 45, 45, 45, 45, 45, 45,
429
+ 45, 45, 45, 45, 45, 45, 45, 45,
430
+ 45, 45, 45, 45, 45, 45, 45, 45,
431
+ 45, 117, 117, 117, 117, 117, 117, 45,
432
+ 45, 45, 45, 45, 45, 45, 45, 45,
433
+ 45, 45, 45, 45, 45, 45, 45, 45,
434
+ 45, 45, 45, 118, 45, 119, 119, 119,
435
+ 119, 119, 119, 119, 119, 119, 119, 45,
436
+ 45, 45, 45, 45, 45, 45, 119, 119,
437
+ 119, 119, 119, 119, 45, 45, 45, 45,
438
+ 45, 45, 45, 45, 45, 45, 45, 45,
439
+ 45, 45, 45, 45, 45, 45, 45, 45,
440
+ 45, 45, 45, 45, 45, 45, 119, 119,
441
+ 119, 119, 119, 119, 45, 120, 120, 120,
442
+ 120, 120, 120, 120, 120, 120, 120, 45,
443
+ 45, 45, 45, 45, 45, 45, 120, 120,
444
+ 120, 120, 120, 120, 45, 45, 45, 45,
445
+ 45, 45, 45, 45, 45, 45, 45, 45,
446
+ 45, 45, 45, 45, 45, 45, 45, 45,
447
+ 45, 45, 45, 45, 45, 45, 120, 120,
448
+ 120, 120, 120, 120, 45, 121, 121, 121,
449
+ 121, 121, 121, 121, 121, 121, 121, 45,
450
+ 45, 45, 45, 45, 45, 45, 121, 121,
451
+ 121, 121, 121, 121, 45, 45, 45, 45,
452
+ 45, 45, 45, 45, 45, 45, 45, 45,
453
+ 45, 45, 45, 45, 45, 45, 45, 45,
454
+ 45, 45, 45, 45, 45, 45, 121, 121,
455
+ 121, 121, 121, 121, 45, 122, 122, 122,
456
+ 122, 122, 122, 122, 122, 122, 122, 45,
457
+ 45, 45, 45, 45, 45, 45, 122, 122,
458
+ 122, 122, 122, 122, 45, 45, 45, 45,
459
+ 45, 45, 45, 45, 45, 45, 45, 45,
460
+ 45, 45, 45, 45, 45, 45, 45, 45,
461
+ 45, 45, 45, 45, 45, 45, 122, 122,
462
+ 122, 122, 122, 122, 45, 118, 118, 118,
463
+ 118, 118, 45, 45, 45, 45, 45, 45,
464
+ 45, 45, 45, 45, 45, 45, 45, 45,
465
+ 45, 45, 45, 45, 118, 45, 45, 45,
466
+ 45, 45, 45, 45, 45, 45, 45, 45,
467
+ 45, 45, 45, 45, 123, 123, 123, 123,
468
+ 123, 123, 123, 123, 123, 123, 45, 45,
469
+ 45, 45, 45, 45, 45, 123, 123, 123,
470
+ 123, 123, 123, 45, 45, 45, 45, 45,
471
+ 45, 45, 45, 45, 45, 45, 45, 45,
472
+ 45, 45, 45, 45, 45, 45, 45, 45,
473
+ 45, 45, 45, 45, 45, 123, 123, 123,
474
+ 123, 123, 123, 45, 45, 45, 45, 45,
475
+ 45, 45, 45, 45, 45, 45, 45, 45,
476
+ 45, 45, 45, 45, 45, 45, 45, 45,
477
+ 45, 121, 45, 118, 118, 118, 118, 118,
478
+ 45, 45, 45, 45, 45, 45, 45, 45,
479
+ 45, 45, 45, 45, 45, 45, 45, 45,
480
+ 45, 45, 118, 45, 45, 45, 45, 45,
481
+ 45, 45, 45, 45, 45, 45, 45, 45,
482
+ 45, 45, 124, 124, 124, 124, 124, 124,
483
+ 124, 124, 124, 124, 45, 45, 45, 45,
484
+ 45, 45, 45, 124, 124, 124, 124, 124,
485
+ 124, 45, 45, 45, 45, 45, 45, 45,
486
+ 45, 45, 45, 45, 45, 45, 45, 45,
487
+ 45, 45, 45, 45, 45, 45, 45, 45,
488
+ 45, 45, 45, 124, 124, 124, 124, 124,
489
+ 124, 45, 45, 45, 45, 45, 45, 45,
490
+ 45, 45, 45, 45, 45, 45, 45, 45,
491
+ 45, 45, 45, 45, 45, 45, 45, 121,
492
+ 45, 118, 118, 118, 118, 118, 45, 45,
493
+ 45, 45, 45, 45, 45, 45, 45, 45,
494
+ 45, 45, 45, 45, 45, 45, 45, 45,
495
+ 118, 45, 45, 45, 45, 45, 45, 45,
496
+ 45, 45, 45, 45, 45, 45, 45, 45,
497
+ 125, 125, 125, 125, 125, 125, 125, 125,
498
+ 125, 125, 45, 45, 45, 45, 45, 45,
499
+ 45, 125, 125, 125, 125, 125, 125, 45,
500
+ 45, 45, 45, 45, 45, 45, 45, 45,
501
+ 45, 45, 45, 45, 45, 45, 45, 45,
502
+ 45, 45, 45, 45, 45, 45, 45, 45,
503
+ 45, 125, 125, 125, 125, 125, 125, 45,
504
+ 45, 45, 45, 45, 45, 45, 45, 45,
505
+ 45, 45, 45, 45, 45, 45, 45, 45,
506
+ 45, 45, 45, 45, 45, 121, 45, 118,
507
+ 118, 118, 118, 118, 45, 45, 45, 45,
508
+ 45, 45, 45, 45, 45, 45, 45, 45,
509
+ 45, 45, 45, 45, 45, 45, 118, 45,
510
+ 45, 45, 45, 45, 45, 45, 45, 45,
511
+ 45, 45, 45, 45, 45, 45, 126, 126,
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,
515
+ 45, 45, 45, 45, 45, 45, 45, 45,
516
+ 45, 45, 45, 45, 45, 45, 45, 45,
517
+ 45, 45, 45, 45, 45, 45, 45, 126,
518
+ 126, 126, 126, 126, 126, 45, 45, 45,
519
+ 45, 45, 45, 45, 45, 45, 45, 45,
520
+ 45, 45, 45, 45, 45, 45, 45, 45,
521
+ 45, 45, 45, 121, 45, 118, 118, 118,
522
+ 118, 118, 45, 45, 45, 45, 45, 45,
523
+ 45, 45, 45, 45, 45, 45, 45, 45,
524
+ 45, 45, 45, 45, 118, 45, 45, 45,
525
+ 45, 45, 45, 45, 45, 45, 45, 45,
526
+ 45, 45, 45, 45, 127, 127, 127, 127,
527
+ 127, 127, 127, 127, 127, 127, 45, 45,
528
+ 45, 45, 45, 45, 45, 127, 127, 127,
529
+ 127, 127, 127, 45, 45, 45, 45, 45,
530
+ 45, 45, 45, 45, 45, 45, 45, 45,
531
+ 45, 45, 45, 45, 45, 45, 45, 45,
532
+ 45, 45, 45, 45, 45, 127, 127, 127,
533
+ 127, 127, 127, 45, 45, 45, 45, 45,
534
+ 45, 45, 45, 45, 45, 45, 45, 45,
535
+ 45, 45, 45, 45, 45, 45, 45, 45,
536
+ 45, 121, 45, 118, 118, 118, 118, 118,
537
+ 45, 45, 45, 45, 45, 45, 45, 45,
538
+ 45, 45, 45, 45, 45, 45, 45, 45,
539
+ 45, 45, 118, 45, 45, 45, 45, 45,
540
+ 45, 45, 45, 45, 45, 45, 45, 45,
541
+ 45, 45, 45, 45, 45, 45, 45, 45,
542
+ 45, 45, 45, 45, 45, 45, 45, 45,
543
+ 45, 45, 45, 45, 45, 45, 45, 45,
544
+ 45, 45, 45, 45, 45, 45, 45, 45,
545
+ 45, 45, 45, 45, 45, 45, 45, 45,
546
+ 45, 45, 45, 45, 45, 45, 45, 45,
547
+ 45, 45, 45, 45, 45, 45, 45, 45,
548
+ 45, 45, 45, 45, 45, 45, 45, 45,
549
+ 45, 45, 45, 45, 45, 45, 45, 45,
550
+ 45, 45, 45, 45, 45, 45, 45, 121,
551
+ 45, 129, 129, 129, 129, 129, 129, 129,
552
+ 129, 129, 129, 128, 128, 128, 128, 128,
553
+ 128, 128, 129, 129, 129, 129, 129, 129,
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
+ 45, 45, 45, 45, 45, 45, 45, 45,
565
+ 45, 45, 45, 45, 45, 45, 45, 45,
566
+ 45, 45, 45, 45, 45, 45, 45, 45,
567
+ 45, 45, 45, 45, 45, 45, 45, 45,
568
+ 45, 45, 45, 45, 45, 45, 45, 45,
569
+ 45, 45, 45, 45, 45, 45, 45, 45,
570
+ 45, 45, 45, 45, 45, 45, 45, 45,
571
+ 45, 45, 45, 45, 45, 45, 45, 45,
569
572
  2, 2, 2, 2, 2, 2, 2, 2,
570
573
  2, 2, 2, 2, 2, 2, 2, 2,
571
574
  2, 2, 2, 2, 2, 2, 2, 2,
572
575
  2, 2, 2, 2, 2, 2, 3, 3,
573
576
  3, 3, 3, 3, 3, 3, 3, 3,
574
- 3, 3, 3, 3, 3, 3, 127, 127,
575
- 127, 127, 127, 30, 30, 30, 30, 30,
576
- 30, 30, 30, 30, 30, 30, 30, 128,
577
- 128, 128, 128, 128, 128, 128, 128, 129,
578
- 129, 129, 129, 129, 128, 128, 128, 128,
579
- 128, 128, 128, 128, 128, 128, 128, 128,
580
- 128, 128, 128, 128, 128, 128, 130, 131,
581
- 131, 132, 133, 131, 131, 131, 134, 135,
582
- 136, 137, 131, 131, 138, 131, 131, 131,
583
- 131, 131, 131, 131, 131, 131, 131, 131,
584
- 131, 131, 131, 131, 131, 139, 131, 131,
585
- 131, 131, 131, 131, 131, 131, 131, 131,
586
- 131, 131, 131, 131, 131, 131, 131, 131,
587
- 131, 131, 131, 131, 131, 131, 131, 131,
588
- 131, 140, 141, 142, 143, 131, 131, 131,
589
- 131, 131, 131, 131, 131, 131, 131, 131,
590
- 131, 131, 131, 131, 131, 131, 131, 131,
591
- 131, 131, 131, 131, 131, 131, 131, 131,
592
- 131, 144, 145, 142, 131, 128, 131, 2,
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,
593
596
  2, 2, 2, 2, 2, 2, 2, 2,
594
597
  2, 2, 2, 2, 2, 2, 2, 2,
595
598
  2, 2, 2, 2, 2, 2, 2, 2,
596
599
  2, 2, 2, 2, 2, 3, 3, 3,
597
600
  3, 3, 3, 3, 3, 3, 3, 3,
598
- 3, 3, 3, 3, 3, 127, 127, 127,
599
- 127, 127, 146, 128, 128, 128, 128, 128,
600
- 128, 128, 128, 128, 128, 128, 128, 128,
601
- 128, 128, 128, 128, 128, 128, 128, 128,
602
- 128, 128, 128, 128, 128, 128, 128, 128,
603
- 128, 128, 146, 146, 146, 146, 146, 146,
604
- 146, 146, 146, 146, 146, 146, 146, 146,
605
- 146, 146, 146, 146, 146, 146, 146, 146,
606
- 146, 146, 146, 146, 146, 146, 146, 146,
607
- 146, 146, 146, 146, 146, 146, 146, 146,
608
- 146, 146, 146, 146, 146, 146, 146, 146,
609
- 146, 146, 146, 146, 146, 146, 146, 146,
610
- 146, 146, 146, 146, 146, 146, 146, 146,
611
- 146, 146, 146, 146, 146, 146, 146, 146,
612
- 146, 146, 146, 146, 146, 146, 146, 146,
613
- 146, 146, 146, 146, 146, 146, 146, 146,
614
- 146, 146, 146, 146, 146, 146, 146, 146,
615
- 146, 128, 146, 128, 128, 128, 128, 128,
616
- 128, 128, 128, 129, 129, 129, 129, 129,
617
- 128, 128, 128, 128, 128, 128, 128, 128,
618
- 128, 128, 128, 128, 128, 128, 128, 128,
619
- 128, 128, 130, 147, 147, 147, 147, 147,
620
- 147, 147, 147, 147, 147, 147, 147, 147,
621
- 147, 147, 147, 147, 147, 147, 147, 147,
622
- 147, 147, 147, 147, 147, 147, 147, 147,
623
- 147, 147, 147, 147, 147, 147, 147, 147,
624
- 147, 147, 147, 147, 147, 147, 147, 147,
625
- 147, 147, 147, 147, 147, 147, 147, 147,
626
- 147, 147, 147, 147, 147, 147, 147, 147,
627
- 147, 147, 147, 147, 147, 147, 147, 147,
628
- 147, 147, 147, 147, 147, 147, 147, 147,
629
- 147, 147, 147, 147, 147, 147, 147, 147,
630
- 147, 147, 147, 147, 147, 147, 147, 147,
631
- 147, 128, 147, 130, 130, 130, 130, 130,
632
- 147, 147, 147, 147, 147, 147, 147, 147,
633
- 147, 147, 147, 147, 147, 147, 147, 147,
634
- 147, 147, 130, 147, 131, 131, 146, 146,
635
- 131, 131, 131, 146, 146, 146, 146, 131,
636
- 131, 146, 131, 131, 131, 131, 131, 131,
637
- 131, 131, 131, 131, 131, 131, 131, 131,
638
- 131, 131, 146, 131, 131, 131, 131, 131,
639
- 131, 131, 131, 131, 131, 131, 131, 131,
640
- 131, 131, 131, 131, 131, 131, 131, 131,
641
- 131, 131, 131, 131, 131, 131, 146, 146,
642
- 146, 146, 131, 131, 131, 131, 131, 131,
643
- 131, 131, 131, 131, 131, 131, 131, 131,
644
- 131, 131, 131, 131, 131, 131, 131, 131,
645
- 131, 131, 131, 131, 131, 131, 146, 146,
646
- 146, 131, 146, 149, 132, 151, 150, 154,
647
- 153, 5, 153, 153, 153, 155, 156, 152,
648
- 153, 153, 153, 153, 153, 153, 153, 153,
649
- 153, 153, 153, 153, 153, 153, 153, 153,
650
- 8, 153, 157, 154, 8, 153, 153, 153,
651
- 153, 153, 153, 153, 153, 153, 153, 153,
652
- 153, 153, 153, 153, 153, 153, 153, 153,
653
- 153, 153, 153, 153, 153, 153, 153, 153,
654
- 153, 153, 153, 153, 153, 153, 153, 153,
655
- 153, 153, 153, 153, 153, 153, 153, 153,
656
- 153, 153, 153, 153, 153, 153, 153, 153,
657
- 153, 153, 153, 153, 153, 153, 153, 153,
658
- 153, 153, 153, 153, 8, 153, 152, 153,
659
- 152, 153, 153, 153, 152, 152, 152, 153,
660
- 153, 153, 153, 153, 153, 153, 153, 153,
661
- 153, 153, 153, 153, 153, 153, 153, 158,
662
- 153, 152, 152, 152, 153, 153, 153, 153,
663
- 153, 153, 153, 153, 153, 153, 153, 153,
664
- 153, 153, 153, 153, 153, 153, 153, 153,
665
- 153, 153, 153, 153, 153, 153, 153, 153,
666
- 153, 153, 153, 153, 153, 153, 153, 153,
667
- 153, 153, 153, 153, 153, 153, 153, 153,
668
- 153, 153, 153, 153, 153, 153, 153, 153,
669
- 153, 153, 153, 153, 153, 153, 153, 153,
670
- 153, 153, 153, 152, 153, 8, 9, 161,
671
- 160, 160, 160, 160, 160, 160, 160, 160,
672
- 160, 160, 160, 160, 160, 160, 160, 160,
673
- 160, 160, 160, 161, 160, 163, 162, 162,
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,
647
+ 140, 140, 140, 140, 140, 140, 140, 140,
648
+ 140, 140, 140, 140, 140, 140, 155, 155,
649
+ 155, 140, 155, 158, 141, 160, 159, 163,
650
+ 162, 5, 162, 162, 162, 164, 165, 161,
674
651
  162, 162, 162, 162, 162, 162, 162, 162,
675
652
  162, 162, 162, 162, 162, 162, 162, 162,
676
- 162, 163, 162, 165, 164, 164, 164, 164,
677
- 164, 164, 164, 164, 164, 164, 164, 164,
678
- 164, 164, 164, 164, 164, 164, 164, 165,
679
- 164, 167, 167, 166, 166, 166, 166, 167,
680
- 166, 166, 166, 168, 166, 166, 166, 166,
681
- 166, 166, 166, 166, 166, 166, 166, 166,
682
- 166, 166, 167, 166, 166, 166, 166, 166,
683
- 166, 166, 167, 166, 166, 166, 166, 169,
684
- 166, 166, 166, 169, 166, 166, 166, 166,
685
- 166, 166, 166, 166, 166, 166, 166, 166,
686
- 166, 166, 167, 166, 171, 170, 170, 170,
687
- 28, 28, 28, 28, 28, 28, 28, 28,
688
- 28, 28, 170, 173, 172, 172, 172, 172,
689
- 172, 172, 172, 172, 172, 172, 172, 172,
690
- 172, 172, 172, 172, 172, 172, 172, 173,
691
- 172, 174, 30, 30, 30, 174, 30, 30,
692
- 30, 30, 30, 30, 30, 30, 30, 174,
693
- 174, 30, 30, 30, 174, 174, 30, 30,
694
- 30, 30, 30, 30, 30, 30, 30, 30,
695
- 30, 174, 30, 30, 30, 174, 30, 30,
696
- 30, 30, 30, 30, 30, 30, 30, 30,
697
- 174, 30, 30, 30, 174, 30, 175, 30,
698
- 30, 30, 30, 30, 30, 30, 30, 30,
699
- 30, 30, 30, 30, 30, 30, 30, 30,
700
- 30, 30, 30, 30, 30, 30, 30, 30,
701
- 30, 30, 30, 30, 30, 30, 175, 30,
702
- 176, 176, 176, 176, 176, 176, 176, 176,
703
- 176, 176, 176, 176, 176, 176, 176, 176,
704
- 176, 176, 176, 176, 176, 176, 176, 176,
705
- 176, 176, 176, 176, 176, 176, 177, 177,
706
- 177, 177, 177, 177, 177, 177, 177, 177,
707
- 177, 177, 177, 177, 177, 177, 178, 178,
708
- 178, 178, 178, 35, 35, 35, 35, 35,
709
- 35, 35, 35, 35, 35, 35, 35, 35,
710
- 35, 35, 35, 35, 35, 35, 35, 35,
711
- 35, 35, 35, 35, 35, 35, 35, 35,
712
- 35, 35, 35, 35, 35, 35, 35, 35,
713
- 35, 35, 35, 35, 35, 35, 35, 35,
714
- 35, 35, 179, 35, 180, 35, 179, 179,
715
- 179, 179, 35, 181, 179, 35, 35, 35,
716
- 35, 35, 35, 35, 35, 35, 35, 35,
717
- 35, 35, 35, 35, 35, 179, 35, 35,
718
- 35, 35, 35, 35, 35, 35, 35, 35,
719
- 35, 35, 35, 35, 35, 35, 35, 35,
720
- 35, 35, 35, 35, 35, 35, 35, 35,
721
- 35, 182, 183, 184, 185, 35, 35, 35,
722
- 35, 35, 35, 35, 35, 35, 35, 35,
723
- 35, 35, 35, 35, 35, 35, 35, 35,
724
- 35, 35, 35, 35, 35, 35, 35, 35,
725
- 35, 179, 179, 179, 35, 35, 35, 35,
726
- 35, 35, 35, 35, 35, 35, 35, 35,
727
- 35, 35, 35, 35, 35, 35, 35, 35,
728
- 35, 35, 35, 35, 35, 35, 35, 35,
729
- 35, 35, 35, 35, 35, 35, 35, 35,
730
- 35, 35, 35, 35, 35, 35, 35, 35,
731
- 35, 35, 35, 35, 35, 35, 35, 35,
732
- 35, 35, 35, 35, 35, 35, 35, 35,
733
- 35, 35, 35, 35, 35, 186, 36, 36,
734
- 36, 36, 36, 36, 36, 36, 36, 36,
735
- 36, 36, 36, 36, 36, 36, 36, 36,
736
- 36, 36, 36, 36, 36, 36, 36, 36,
737
- 36, 36, 36, 36, 36, 36, 36, 36,
738
- 36, 36, 36, 36, 36, 36, 36, 36,
739
- 36, 36, 36, 36, 36, 36, 36, 36,
740
- 36, 36, 36, 36, 36, 36, 36, 36,
741
- 36, 36, 36, 36, 36, 36, 186, 187,
742
- 187, 187, 187, 187, 187, 187, 187, 187,
743
- 187, 187, 187, 187, 187, 187, 187, 187,
744
- 187, 187, 187, 187, 187, 187, 187, 187,
745
- 187, 187, 187, 187, 187, 187, 187, 187,
746
- 187, 187, 187, 187, 187, 187, 187, 187,
747
- 187, 187, 187, 187, 187, 187, 187, 187,
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,
748
709
  187, 187, 187, 187, 187, 187, 187, 187,
749
- 187, 187, 187, 187, 187, 187, 187, 186,
750
- 188, 186, 190, 189, 189, 189, 189, 189,
751
- 189, 189, 189, 189, 189, 189, 189, 189,
752
- 189, 189, 189, 189, 189, 189, 189, 189,
753
- 189, 189, 189, 189, 189, 189, 189, 189,
754
- 189, 189, 189, 189, 189, 189, 189, 189,
755
- 189, 189, 189, 189, 189, 189, 189, 189,
756
- 189, 189, 189, 189, 189, 189, 189, 189,
757
- 189, 191, 189, 194, 193, 193, 193, 193,
758
- 193, 193, 193, 193, 193, 193, 193, 195,
759
- 193, 193, 196, 193, 198, 198, 198, 198,
760
- 198, 198, 198, 198, 198, 198, 197, 197,
761
- 197, 197, 197, 197, 197, 198, 198, 198,
762
- 197, 197, 197, 198, 197, 197, 197, 198,
763
- 197, 198, 197, 197, 197, 197, 198, 197,
764
- 197, 197, 197, 197, 198, 197, 198, 197,
765
- 197, 197, 197, 197, 197, 197, 197, 198,
766
- 197, 197, 197, 198, 197, 197, 197, 198,
710
+ 187, 187, 187, 187, 187, 187, 188, 188,
711
+ 188, 188, 188, 50, 50, 50, 50, 50,
712
+ 50, 50, 50, 50, 50, 50, 50, 50,
713
+ 50, 50, 50, 50, 50, 50, 50, 50,
714
+ 50, 50, 50, 50, 50, 50, 50, 50,
715
+ 50, 50, 50, 50, 50, 50, 50, 50,
716
+ 50, 50, 50, 50, 50, 50, 50, 50,
717
+ 50, 50, 189, 50, 190, 50, 189, 189,
718
+ 189, 189, 50, 191, 189, 50, 50, 50,
719
+ 50, 50, 50, 50, 50, 50, 50, 50,
720
+ 50, 50, 50, 50, 50, 189, 50, 50,
721
+ 50, 50, 50, 50, 50, 50, 50, 50,
722
+ 50, 50, 50, 50, 50, 50, 50, 50,
723
+ 50, 50, 50, 50, 50, 50, 50, 50,
724
+ 50, 192, 193, 194, 195, 50, 50, 50,
725
+ 50, 50, 50, 50, 50, 50, 50, 50,
726
+ 50, 50, 50, 50, 50, 50, 50, 50,
727
+ 50, 50, 50, 50, 50, 50, 50, 50,
728
+ 50, 189, 189, 189, 50, 50, 50, 50,
729
+ 50, 50, 50, 50, 50, 50, 50, 50,
730
+ 50, 50, 50, 50, 50, 50, 50, 50,
731
+ 50, 50, 50, 50, 50, 50, 50, 50,
732
+ 50, 50, 50, 50, 50, 50, 50, 50,
733
+ 50, 50, 50, 50, 50, 50, 50, 50,
734
+ 50, 50, 50, 50, 50, 50, 50, 50,
735
+ 50, 50, 50, 50, 50, 50, 50, 50,
736
+ 50, 50, 50, 50, 50, 196, 51, 51,
737
+ 51, 51, 51, 51, 51, 51, 51, 51,
738
+ 51, 51, 51, 51, 51, 51, 51, 51,
739
+ 51, 51, 51, 51, 51, 51, 51, 51,
740
+ 51, 51, 51, 51, 51, 51, 51, 51,
741
+ 51, 51, 51, 51, 51, 51, 51, 51,
742
+ 51, 51, 51, 51, 51, 51, 51, 51,
743
+ 51, 51, 51, 51, 51, 51, 51, 51,
744
+ 51, 51, 51, 51, 51, 51, 196, 197,
767
745
  197, 197, 197, 197, 197, 197, 197, 197,
768
- 197, 197, 197, 197, 197, 197, 198, 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,
769
754
  199, 199, 199, 199, 199, 199, 199, 199,
770
755
  199, 199, 199, 199, 199, 199, 199, 199,
771
756
  199, 199, 199, 199, 199, 199, 199, 199,
772
- 199, 199, 199, 199, 199, 199, 200, 200,
773
- 200, 200, 200, 200, 200, 200, 200, 200,
774
- 200, 200, 200, 200, 200, 200, 201, 201,
775
- 201, 201, 201, 96, 96, 96, 96, 96,
776
- 96, 96, 96, 96, 96, 96, 96, 96,
777
- 96, 96, 96, 96, 96, 96, 96, 96,
778
- 96, 96, 96, 96, 96, 96, 96, 96,
779
- 96, 96, 96, 96, 96, 96, 96, 96,
780
- 96, 96, 96, 96, 96, 96, 96, 96,
781
- 96, 96, 202, 96, 96, 96, 202, 202,
782
- 202, 202, 96, 96, 202, 96, 203, 204,
783
- 204, 204, 204, 204, 204, 204, 205, 205,
784
- 96, 96, 96, 96, 96, 202, 96, 30,
785
- 30, 206, 207, 96, 96, 30, 207, 96,
786
- 96, 30, 96, 208, 96, 96, 209, 96,
787
- 207, 207, 96, 96, 96, 207, 207, 96,
788
- 30, 202, 202, 202, 202, 96, 96, 210,
789
- 210, 98, 207, 210, 210, 96, 207, 96,
790
- 96, 96, 96, 96, 210, 96, 209, 96,
791
- 210, 207, 210, 211, 210, 207, 212, 96,
792
- 30, 202, 202, 202, 96, 96, 96, 96,
793
- 96, 96, 96, 96, 96, 96, 96, 96,
794
- 96, 96, 96, 96, 96, 96, 96, 96,
795
- 96, 96, 96, 96, 96, 96, 96, 96,
796
- 96, 96, 96, 96, 96, 96, 96, 96,
797
- 96, 96, 96, 96, 96, 96, 96, 96,
798
- 96, 96, 96, 96, 96, 96, 96, 96,
799
- 96, 96, 96, 96, 96, 96, 96, 96,
800
- 96, 96, 96, 96, 96, 213, 97, 97,
801
- 97, 97, 97, 97, 97, 97, 97, 97,
802
- 97, 97, 97, 97, 97, 97, 97, 97,
803
- 97, 97, 97, 97, 97, 97, 97, 97,
804
- 97, 97, 97, 97, 97, 97, 97, 97,
805
- 97, 97, 97, 97, 97, 97, 97, 97,
806
- 97, 97, 97, 97, 97, 97, 97, 97,
807
- 97, 97, 97, 97, 97, 97, 97, 97,
808
- 97, 97, 97, 97, 97, 97, 213, 214,
809
- 214, 214, 214, 214, 214, 214, 214, 214,
810
- 214, 214, 214, 214, 214, 214, 214, 214,
811
- 214, 214, 214, 214, 214, 214, 214, 214,
812
- 214, 214, 214, 214, 214, 214, 214, 214,
813
- 214, 214, 214, 214, 214, 214, 214, 214,
814
- 214, 214, 214, 214, 214, 214, 214, 214,
815
- 214, 214, 214, 214, 214, 214, 214, 214,
816
- 214, 214, 214, 214, 214, 214, 214, 213,
817
- 216, 216, 216, 216, 216, 216, 216, 216,
818
- 215, 218, 218, 218, 218, 218, 218, 218,
819
- 218, 217, 220, 99, 222, 221, 99, 224,
820
- 104, 104, 104, 104, 104, 104, 104, 104,
821
- 104, 104, 104, 104, 104, 104, 104, 104,
822
- 104, 104, 104, 104, 104, 104, 104, 104,
823
- 104, 104, 104, 104, 104, 104, 104, 225,
824
- 104, 227, 226, 104, 107, 104, 229, 229,
825
- 229, 229, 229, 229, 229, 229, 229, 229,
826
- 228, 228, 228, 228, 228, 228, 228, 229,
827
- 229, 229, 229, 229, 229, 228, 228, 228,
828
- 228, 228, 228, 228, 228, 228, 228, 228,
829
- 228, 228, 228, 228, 228, 228, 228, 228,
830
- 228, 228, 228, 228, 228, 228, 228, 229,
831
- 229, 229, 229, 229, 229, 228, 231, 230,
832
- 230, 230, 230, 230, 232, 230, 230, 230,
833
- 233, 233, 233, 233, 233, 233, 233, 233,
834
- 233, 230, 230, 234, 230, 123, 122, 122,
835
- 122, 122, 122, 235, 122, 122, 235, 235,
836
- 235, 235, 235, 235, 235, 235, 235, 235,
837
- 122, 125, 125, 125, 125, 125, 125, 125,
838
- 125, 125, 235, 124, 235, 235, 235, 235,
839
- 235, 235, 125, 125, 125, 125, 125, 125,
840
- 125, 125, 125, 125, 235, 235, 126, 126,
841
- 235, 235, 235, 235, 235, 235, 235, 235,
842
- 235, 235, 126, 126, 126, 126, 123, 126,
843
- 0
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
844
842
  ]
845
843
 
846
844
  class << self
@@ -848,36 +846,37 @@ class << self
848
846
  private :_re_scanner_trans_targs, :_re_scanner_trans_targs=
849
847
  end
850
848
  self._re_scanner_trans_targs = [
851
- 110, 111, 1, 2, 110, 4, 110, 6,
852
- 110, 8, 120, 110, 10, 16, 11, 110,
853
- 12, 14, 13, 15, 17, 18, 20, 19,
854
- 21, 110, 23, 126, 24, 26, 0, 27,
855
- 28, 128, 129, 129, 29, 129, 129, 129,
856
- 129, 33, 34, 129, 36, 37, 48, 52,
857
- 56, 60, 64, 68, 73, 77, 79, 82,
858
- 38, 45, 39, 43, 40, 41, 42, 129,
859
- 44, 46, 47, 49, 50, 51, 53, 54,
860
- 55, 57, 58, 59, 61, 62, 63, 65,
861
- 66, 67, 69, 71, 70, 72, 74, 75,
862
- 76, 78, 80, 81, 84, 85, 129, 137,
863
- 137, 86, 89, 137, 143, 137, 145, 92,
864
- 137, 146, 137, 148, 95, 98, 96, 97,
865
- 137, 99, 100, 101, 102, 103, 104, 137,
866
- 150, 151, 106, 107, 151, 108, 109, 3,
867
- 112, 113, 114, 115, 116, 110, 117, 110,
868
- 121, 122, 110, 123, 110, 124, 110, 110,
869
- 125, 110, 110, 110, 110, 110, 110, 118,
870
- 110, 119, 110, 5, 110, 7, 110, 110,
871
- 110, 110, 110, 110, 110, 110, 110, 110,
872
- 110, 9, 110, 22, 110, 110, 127, 25,
873
- 130, 131, 132, 129, 133, 134, 135, 129,
874
- 129, 129, 129, 30, 129, 129, 31, 129,
875
- 129, 129, 32, 35, 83, 136, 136, 138,
876
- 139, 140, 137, 141, 141, 137, 88, 137,
877
- 91, 137, 137, 94, 105, 137, 87, 137,
878
- 142, 137, 137, 137, 144, 137, 90, 137,
879
- 147, 149, 137, 93, 137, 137, 151, 152,
880
- 153, 154, 155, 151
849
+ 119, 120, 1, 2, 119, 4, 119, 6,
850
+ 119, 8, 129, 119, 10, 17, 11, 119,
851
+ 12, 16, 14, 13, 15, 18, 19, 23,
852
+ 21, 20, 22, 25, 31, 26, 119, 27,
853
+ 29, 28, 30, 32, 33, 35, 34, 36,
854
+ 119, 38, 135, 39, 41, 0, 42, 43,
855
+ 137, 138, 138, 44, 138, 138, 138, 138,
856
+ 48, 49, 60, 64, 68, 72, 76, 80,
857
+ 85, 89, 91, 94, 50, 57, 51, 55,
858
+ 52, 53, 54, 138, 56, 58, 59, 61,
859
+ 62, 63, 65, 66, 67, 69, 70, 71,
860
+ 73, 74, 75, 77, 78, 79, 81, 83,
861
+ 82, 84, 86, 87, 88, 90, 92, 93,
862
+ 146, 146, 95, 98, 146, 152, 146, 154,
863
+ 101, 146, 155, 146, 157, 104, 107, 105,
864
+ 106, 146, 108, 109, 110, 111, 112, 113,
865
+ 146, 159, 160, 115, 116, 160, 117, 118,
866
+ 3, 121, 122, 123, 124, 125, 119, 126,
867
+ 119, 130, 131, 119, 132, 119, 133, 119,
868
+ 119, 134, 119, 119, 119, 119, 119, 119,
869
+ 127, 119, 128, 119, 5, 119, 7, 119,
870
+ 119, 119, 119, 119, 119, 119, 119, 119,
871
+ 119, 119, 9, 24, 119, 37, 119, 119,
872
+ 136, 40, 139, 140, 141, 138, 142, 143,
873
+ 144, 138, 138, 138, 138, 45, 138, 138,
874
+ 46, 138, 138, 138, 47, 145, 145, 147,
875
+ 148, 149, 146, 150, 150, 146, 97, 146,
876
+ 100, 146, 146, 103, 114, 146, 96, 146,
877
+ 151, 146, 146, 146, 153, 146, 99, 146,
878
+ 156, 158, 146, 102, 146, 146, 160, 161,
879
+ 162, 163, 164, 160
881
880
  ]
882
881
 
883
882
  class << self
@@ -888,33 +887,34 @@ self._re_scanner_trans_actions = [
888
887
  1, 2, 0, 0, 3, 4, 5, 0,
889
888
  6, 0, 7, 8, 0, 0, 0, 9,
890
889
  0, 0, 0, 0, 0, 0, 0, 0,
891
- 0, 10, 0, 0, 0, 0, 0, 0,
892
- 0, 12, 13, 14, 0, 15, 16, 17,
893
- 18, 0, 0, 19, 0, 0, 0, 0,
890
+ 0, 0, 0, 0, 0, 0, 10, 0,
891
+ 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
894
  0, 0, 0, 0, 0, 0, 0, 0,
895
- 0, 0, 0, 0, 0, 0, 0, 20,
896
895
  0, 0, 0, 0, 0, 0, 0, 0,
896
+ 0, 0, 0, 20, 0, 0, 0, 0,
897
897
  0, 0, 0, 0, 0, 0, 0, 0,
898
898
  0, 0, 0, 0, 0, 0, 0, 0,
899
- 0, 0, 0, 0, 0, 0, 21, 22,
900
- 23, 0, 0, 25, 0, 26, 0, 0,
901
- 27, 0, 28, 0, 0, 0, 0, 0,
902
- 29, 0, 0, 0, 0, 0, 0, 30,
903
- 0, 31, 0, 0, 32, 0, 0, 0,
904
- 0, 0, 0, 0, 0, 35, 36, 37,
905
- 0, 0, 38, 0, 39, 40, 41, 42,
906
- 40, 43, 44, 45, 46, 47, 48, 49,
907
- 50, 0, 51, 0, 52, 0, 53, 54,
908
- 55, 56, 57, 58, 59, 60, 61, 62,
909
- 63, 0, 64, 0, 65, 66, 68, 0,
910
- 0, 40, 40, 69, 0, 40, 70, 71,
911
- 72, 73, 74, 0, 75, 76, 0, 77,
912
- 78, 79, 0, 0, 0, 80, 81, 0,
913
- 40, 40, 82, 83, 84, 85, 0, 86,
914
- 0, 87, 88, 0, 0, 89, 0, 90,
915
- 0, 91, 92, 93, 40, 94, 0, 95,
916
- 40, 0, 96, 0, 97, 98, 99, 40,
917
- 40, 40, 40, 100
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
918
918
  ]
919
919
 
920
920
  class << self
@@ -935,13 +935,14 @@ self._re_scanner_to_state_actions = [
935
935
  0, 0, 0, 0, 0, 0, 0, 0,
936
936
  0, 0, 0, 0, 0, 0, 0, 0,
937
937
  0, 0, 0, 0, 0, 0, 0, 0,
938
- 0, 0, 0, 0, 0, 0, 33, 0,
939
938
  0, 0, 0, 0, 0, 0, 0, 0,
940
- 0, 0, 0, 0, 0, 0, 0, 67,
941
- 67, 67, 0, 0, 0, 0, 0, 0,
942
- 67, 67, 0, 0, 0, 0, 0, 0,
943
- 0, 0, 0, 0, 0, 0, 0, 67,
944
- 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
945
946
  ]
946
947
 
947
948
  class << self
@@ -962,13 +963,14 @@ self._re_scanner_from_state_actions = [
962
963
  0, 0, 0, 0, 0, 0, 0, 0,
963
964
  0, 0, 0, 0, 0, 0, 0, 0,
964
965
  0, 0, 0, 0, 0, 0, 0, 0,
965
- 0, 0, 0, 0, 0, 0, 34, 0,
966
966
  0, 0, 0, 0, 0, 0, 0, 0,
967
- 0, 0, 0, 0, 0, 0, 0, 34,
968
- 34, 34, 0, 0, 0, 0, 0, 0,
969
- 34, 34, 0, 0, 0, 0, 0, 0,
970
- 0, 0, 0, 0, 0, 0, 0, 34,
971
- 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
972
974
  ]
973
975
 
974
976
  class << self
@@ -979,23 +981,24 @@ self._re_scanner_eof_actions = [
979
981
  0, 0, 0, 0, 0, 0, 0, 0,
980
982
  0, 0, 0, 0, 0, 0, 0, 0,
981
983
  0, 0, 0, 0, 0, 0, 0, 0,
982
- 0, 11, 11, 11, 11, 0, 0, 0,
983
984
  0, 0, 0, 0, 0, 0, 0, 0,
984
985
  0, 0, 0, 0, 0, 0, 0, 0,
986
+ 12, 12, 12, 12, 0, 0, 0, 0,
985
987
  0, 0, 0, 0, 0, 0, 0, 0,
986
988
  0, 0, 0, 0, 0, 0, 0, 0,
987
989
  0, 0, 0, 0, 0, 0, 0, 0,
988
990
  0, 0, 0, 0, 0, 0, 0, 0,
989
991
  0, 0, 0, 0, 0, 0, 0, 0,
990
- 24, 24, 0, 24, 24, 0, 24, 24,
991
- 24, 24, 24, 24, 24, 24, 24, 24,
992
- 24, 24, 0, 0, 0, 0, 0, 0,
992
+ 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,
993
996
  0, 0, 0, 0, 0, 0, 0, 0,
994
997
  0, 0, 0, 0, 0, 0, 0, 0,
995
- 0, 24, 0, 0, 0, 0, 0, 0,
996
- 0, 24, 0, 0, 0, 0, 0, 0,
998
+ 0, 0, 23, 0, 0, 0, 0, 0,
999
+ 0, 0, 23, 0, 0, 0, 0, 0,
997
1000
  0, 0, 0, 0, 0, 0, 0, 0,
998
- 0, 0, 0, 0
1001
+ 0, 0, 0, 0, 0
999
1002
  ]
1000
1003
 
1001
1004
  class << self
@@ -1005,34 +1008,35 @@ end
1005
1008
  self._re_scanner_eof_trans = [
1006
1009
  0, 1, 1, 1, 5, 5, 5, 5,
1007
1010
  1, 12, 12, 12, 12, 12, 12, 12,
1008
- 12, 12, 12, 12, 12, 12, 26, 26,
1009
- 26, 0, 0, 0, 0, 35, 35, 38,
1010
- 40, 40, 40, 40, 40, 40, 40, 40,
1011
- 40, 40, 40, 40, 40, 40, 40, 40,
1012
- 40, 40, 40, 40, 40, 40, 40, 40,
1013
- 40, 40, 40, 40, 40, 40, 40, 40,
1014
- 40, 40, 40, 40, 40, 40, 40, 40,
1015
- 40, 40, 40, 40, 40, 40, 40, 40,
1016
- 40, 40, 40, 40, 40, 40, 96, 96,
1017
- 0, 0, 102, 0, 0, 107, 0, 0,
1011
+ 12, 12, 12, 12, 12, 12, 12, 12,
1012
+ 12, 12, 12, 12, 12, 12, 12, 12,
1013
+ 12, 12, 12, 12, 12, 41, 41, 41,
1014
+ 0, 0, 0, 0, 50, 50, 53, 55,
1015
+ 55, 55, 55, 55, 55, 55, 55, 55,
1016
+ 55, 55, 55, 55, 55, 55, 55, 55,
1017
+ 55, 55, 55, 55, 55, 55, 55, 55,
1018
+ 55, 55, 55, 55, 55, 55, 55, 55,
1019
+ 55, 55, 55, 55, 55, 55, 55, 55,
1020
+ 55, 55, 55, 55, 55, 55, 55, 105,
1021
+ 105, 0, 0, 111, 0, 0, 116, 0,
1018
1022
  0, 0, 0, 0, 0, 0, 0, 0,
1019
- 0, 0, 122, 122, 122, 122, 0, 147,
1020
- 147, 148, 148, 147, 149, 151, 153, 153,
1021
- 160, 161, 163, 165, 167, 171, 173, 0,
1022
- 0, 0, 187, 187, 187, 187, 190, 193,
1023
- 0, 0, 214, 214, 214, 216, 218, 220,
1024
- 220, 220, 224, 224, 224, 224, 229, 0,
1025
- 236, 236, 236, 236
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
1026
1030
  ]
1027
1031
 
1028
1032
  class << self
1029
1033
  attr_accessor :re_scanner_start
1030
1034
  end
1031
- self.re_scanner_start = 110;
1035
+ self.re_scanner_start = 119;
1032
1036
  class << self
1033
1037
  attr_accessor :re_scanner_first_final
1034
1038
  end
1035
- self.re_scanner_first_final = 110;
1039
+ self.re_scanner_first_final = 119;
1036
1040
  class << self
1037
1041
  attr_accessor :re_scanner_error
1038
1042
  end
@@ -1041,36 +1045,36 @@ self.re_scanner_error = 0;
1041
1045
  class << self
1042
1046
  attr_accessor :re_scanner_en_char_type
1043
1047
  end
1044
- self.re_scanner_en_char_type = 127;
1048
+ self.re_scanner_en_char_type = 136;
1045
1049
  class << self
1046
1050
  attr_accessor :re_scanner_en_unicode_property
1047
1051
  end
1048
- self.re_scanner_en_unicode_property = 128;
1052
+ self.re_scanner_en_unicode_property = 137;
1049
1053
  class << self
1050
1054
  attr_accessor :re_scanner_en_character_set
1051
1055
  end
1052
- self.re_scanner_en_character_set = 129;
1056
+ self.re_scanner_en_character_set = 138;
1053
1057
  class << self
1054
1058
  attr_accessor :re_scanner_en_set_escape_sequence
1055
1059
  end
1056
- self.re_scanner_en_set_escape_sequence = 136;
1060
+ self.re_scanner_en_set_escape_sequence = 145;
1057
1061
  class << self
1058
1062
  attr_accessor :re_scanner_en_escape_sequence
1059
1063
  end
1060
- self.re_scanner_en_escape_sequence = 137;
1064
+ self.re_scanner_en_escape_sequence = 146;
1061
1065
  class << self
1062
1066
  attr_accessor :re_scanner_en_conditional_expression
1063
1067
  end
1064
- self.re_scanner_en_conditional_expression = 151;
1068
+ self.re_scanner_en_conditional_expression = 160;
1065
1069
  class << self
1066
1070
  attr_accessor :re_scanner_en_main
1067
1071
  end
1068
- self.re_scanner_en_main = 110;
1072
+ self.re_scanner_en_main = 119;
1069
1073
 
1070
1074
 
1071
- # line 761 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1075
+ # line 739 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1072
1076
 
1073
- # line 1073 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1077
+ # line 1077 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1074
1078
  begin
1075
1079
  p ||= 0
1076
1080
  pe ||= data.length
@@ -1081,9 +1085,9 @@ begin
1081
1085
  act = 0
1082
1086
  end
1083
1087
 
1084
- # line 762 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1088
+ # line 740 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1085
1089
 
1086
- # line 1086 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1090
+ # line 1090 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1087
1091
  begin
1088
1092
  testEof = false
1089
1093
  _slen, _trans, _keys, _inds, _acts, _nacts = nil
@@ -1106,12 +1110,12 @@ begin
1106
1110
  end
1107
1111
  if _goto_level <= _resume
1108
1112
  case _re_scanner_from_state_actions[cs]
1109
- when 34 then
1113
+ when 33 then
1110
1114
  # line 1 "NONE"
1111
1115
  begin
1112
1116
  ts = p
1113
1117
  end
1114
- # line 1114 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1118
+ # line 1118 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1115
1119
  end
1116
1120
  _keys = cs << 1
1117
1121
  _inds = _re_scanner_index_offsets[cs]
@@ -1130,20 +1134,20 @@ ts = p
1130
1134
  cs = _re_scanner_trans_targs[_trans]
1131
1135
  if _re_scanner_trans_actions[_trans] != 0
1132
1136
  case _re_scanner_trans_actions[_trans]
1133
- when 36 then
1134
- # line 151 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1137
+ when 35 then
1138
+ # line 159 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1135
1139
  begin
1136
1140
  self.group_depth = group_depth + 1 end
1137
1141
  when 4 then
1138
- # line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1142
+ # line 160 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1139
1143
  begin
1140
1144
  self.group_depth = group_depth - 1 end
1141
- when 40 then
1145
+ when 39 then
1142
1146
  # line 1 "NONE"
1143
1147
  begin
1144
1148
  te = p+1
1145
1149
  end
1146
- when 68 then
1150
+ when 67 then
1147
1151
  # line 12 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/char_type.rl"
1148
1152
  begin
1149
1153
  te = p+1
@@ -1169,7 +1173,7 @@ te = p+1
1169
1173
 
1170
1174
  end
1171
1175
  end
1172
- when 12 then
1176
+ when 13 then
1173
1177
  # line 16 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
1174
1178
  begin
1175
1179
  te = p+1
@@ -1193,8 +1197,8 @@ te = p+1
1193
1197
 
1194
1198
  end
1195
1199
  end
1196
- when 16 then
1197
- # line 179 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1200
+ when 17 then
1201
+ # line 187 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1198
1202
  begin
1199
1203
  te = p+1
1200
1204
  begin # special case, emits two tokens
@@ -1202,8 +1206,8 @@ te = p+1
1202
1206
  emit(:set, :intersection, '&&')
1203
1207
  end
1204
1208
  end
1205
- when 73 then
1206
- # line 184 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1209
+ when 72 then
1210
+ # line 192 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1207
1211
  begin
1208
1212
  te = p+1
1209
1213
  begin
@@ -1215,39 +1219,39 @@ te = p+1
1215
1219
  end
1216
1220
  end
1217
1221
  end
1218
- when 75 then
1219
- # line 205 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1222
+ when 74 then
1223
+ # line 213 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1220
1224
  begin
1221
1225
  te = p+1
1222
1226
  begin
1223
1227
  emit(:set, :intersection, copy(data, ts, te))
1224
1228
  end
1225
1229
  end
1226
- when 71 then
1227
- # line 209 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1230
+ when 70 then
1231
+ # line 217 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1228
1232
  begin
1229
1233
  te = p+1
1230
1234
  begin
1231
1235
  begin
1232
1236
  stack[top] = cs
1233
1237
  top+= 1
1234
- cs = 136
1238
+ cs = 145
1235
1239
  _goto_level = _again
1236
1240
  next
1237
1241
  end
1238
1242
 
1239
1243
  end
1240
1244
  end
1241
- when 69 then
1242
- # line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1245
+ when 68 then
1246
+ # line 247 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1243
1247
  begin
1244
1248
  te = p+1
1245
1249
  begin
1246
1250
  emit(:literal, :literal, copy(data, ts, te))
1247
1251
  end
1248
1252
  end
1249
- when 14 then
1250
- # line 243 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1253
+ when 15 then
1254
+ # line 251 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1251
1255
  begin
1252
1256
  te = p+1
1253
1257
  begin
@@ -1255,8 +1259,8 @@ te = p+1
1255
1259
  emit(:literal, :literal, text)
1256
1260
  end
1257
1261
  end
1258
- when 76 then
1259
- # line 193 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1262
+ when 75 then
1263
+ # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1260
1264
  begin
1261
1265
  te = p
1262
1266
  p = p - 1; begin
@@ -1269,8 +1273,8 @@ p = p - 1; begin
1269
1273
  end
1270
1274
  end
1271
1275
  end
1272
- when 79 then
1273
- # line 213 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1276
+ when 78 then
1277
+ # line 221 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1274
1278
  begin
1275
1279
  te = p
1276
1280
  p = p - 1; begin
@@ -1278,15 +1282,15 @@ p = p - 1; begin
1278
1282
  begin
1279
1283
  stack[top] = cs
1280
1284
  top+= 1
1281
- cs = 129
1285
+ cs = 138
1282
1286
  _goto_level = _again
1283
1287
  next
1284
1288
  end
1285
1289
 
1286
1290
  end
1287
1291
  end
1288
- when 74 then
1289
- # line 243 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1292
+ when 73 then
1293
+ # line 251 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1290
1294
  begin
1291
1295
  te = p
1292
1296
  p = p - 1; begin
@@ -1294,8 +1298,8 @@ p = p - 1; begin
1294
1298
  emit(:literal, :literal, text)
1295
1299
  end
1296
1300
  end
1297
- when 15 then
1298
- # line 193 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1301
+ when 16 then
1302
+ # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1299
1303
  begin
1300
1304
  begin p = ((te))-1; end
1301
1305
  begin
@@ -1308,8 +1312,8 @@ p = p - 1; begin
1308
1312
  end
1309
1313
  end
1310
1314
  end
1311
- when 18 then
1312
- # line 213 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1315
+ when 19 then
1316
+ # line 221 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1313
1317
  begin
1314
1318
  begin p = ((te))-1; end
1315
1319
  begin
@@ -1317,15 +1321,15 @@ p = p - 1; begin
1317
1321
  begin
1318
1322
  stack[top] = cs
1319
1323
  top+= 1
1320
- cs = 129
1324
+ cs = 138
1321
1325
  _goto_level = _again
1322
1326
  next
1323
1327
  end
1324
1328
 
1325
1329
  end
1326
1330
  end
1327
- when 13 then
1328
- # line 243 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1331
+ when 14 then
1332
+ # line 251 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1329
1333
  begin
1330
1334
  begin p = ((te))-1; end
1331
1335
  begin
@@ -1333,40 +1337,40 @@ p = p - 1; begin
1333
1337
  emit(:literal, :literal, text)
1334
1338
  end
1335
1339
  end
1336
- when 81 then
1337
- # line 252 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1340
+ when 80 then
1341
+ # line 260 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1338
1342
  begin
1339
1343
  te = p+1
1340
1344
  begin
1341
- emit(:escape, :literal, copy(data, ts-1, te))
1345
+ p = p - 1;
1346
+ cs = 138;
1342
1347
  begin
1343
- top -= 1
1344
- cs = stack[top]
1348
+ stack[top] = cs
1349
+ top+= 1
1350
+ cs = 146
1345
1351
  _goto_level = _again
1346
1352
  next
1347
1353
  end
1348
1354
 
1349
1355
  end
1350
1356
  end
1351
- when 80 then
1352
- # line 257 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1357
+ when 79 then
1358
+ # line 266 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1353
1359
  begin
1354
1360
  te = p+1
1355
1361
  begin
1356
- p = p - 1;
1357
- cs = 129;
1362
+ emit(:escape, :literal, copy(data, ts-1, te))
1358
1363
  begin
1359
- stack[top] = cs
1360
- top+= 1
1361
- cs = 137
1364
+ top -= 1
1365
+ cs = stack[top]
1362
1366
  _goto_level = _again
1363
1367
  next
1364
1368
  end
1365
1369
 
1366
1370
  end
1367
1371
  end
1368
- when 85 then
1369
- # line 268 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1372
+ when 84 then
1373
+ # line 276 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1370
1374
  begin
1371
1375
  te = p+1
1372
1376
  begin
@@ -1381,8 +1385,8 @@ te = p+1
1381
1385
 
1382
1386
  end
1383
1387
  end
1384
- when 92 then
1385
- # line 274 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1388
+ when 91 then
1389
+ # line 282 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1386
1390
  begin
1387
1391
  te = p+1
1388
1392
  begin
@@ -1396,8 +1400,8 @@ te = p+1
1396
1400
 
1397
1401
  end
1398
1402
  end
1399
- when 82 then
1400
- # line 279 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1403
+ when 81 then
1404
+ # line 287 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1401
1405
  begin
1402
1406
  te = p+1
1403
1407
  begin
@@ -1427,8 +1431,8 @@ te = p+1
1427
1431
 
1428
1432
  end
1429
1433
  end
1430
- when 88 then
1431
- # line 300 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1434
+ when 87 then
1435
+ # line 308 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1432
1436
  begin
1433
1437
  te = p+1
1434
1438
  begin
@@ -1453,8 +1457,8 @@ te = p+1
1453
1457
 
1454
1458
  end
1455
1459
  end
1456
- when 29 then
1457
- # line 316 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1460
+ when 28 then
1461
+ # line 324 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1458
1462
  begin
1459
1463
  te = p+1
1460
1464
  begin
@@ -1473,8 +1477,8 @@ te = p+1
1473
1477
 
1474
1478
  end
1475
1479
  end
1476
- when 98 then
1477
- # line 326 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1480
+ when 97 then
1481
+ # line 334 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1478
1482
  begin
1479
1483
  te = p+1
1480
1484
  begin
@@ -1488,8 +1492,8 @@ te = p+1
1488
1492
 
1489
1493
  end
1490
1494
  end
1491
- when 25 then
1492
- # line 335 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1495
+ when 24 then
1496
+ # line 343 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1493
1497
  begin
1494
1498
  te = p+1
1495
1499
  begin
@@ -1503,8 +1507,8 @@ te = p+1
1503
1507
 
1504
1508
  end
1505
1509
  end
1506
- when 27 then
1507
- # line 340 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1510
+ when 26 then
1511
+ # line 348 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1508
1512
  begin
1509
1513
  te = p+1
1510
1514
  begin
@@ -1518,42 +1522,42 @@ te = p+1
1518
1522
 
1519
1523
  end
1520
1524
  end
1521
- when 86 then
1522
- # line 345 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1525
+ when 85 then
1526
+ # line 353 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1523
1527
  begin
1524
1528
  te = p+1
1525
1529
  begin
1526
1530
  p = p - 1;
1527
- cs = ((in_set? ? 129 : 110));
1531
+ cs = ((in_set? ? 138 : 119));
1528
1532
  begin
1529
1533
  stack[top] = cs
1530
1534
  top+= 1
1531
- cs = 127
1535
+ cs = 136
1532
1536
  _goto_level = _again
1533
1537
  next
1534
1538
  end
1535
1539
 
1536
1540
  end
1537
1541
  end
1538
- when 87 then
1539
- # line 351 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1542
+ when 86 then
1543
+ # line 359 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1540
1544
  begin
1541
1545
  te = p+1
1542
1546
  begin
1543
1547
  p = p - 1;
1544
- cs = ((in_set? ? 129 : 110));
1548
+ cs = ((in_set? ? 138 : 119));
1545
1549
  begin
1546
1550
  stack[top] = cs
1547
1551
  top+= 1
1548
- cs = 128
1552
+ cs = 137
1549
1553
  _goto_level = _again
1550
1554
  next
1551
1555
  end
1552
1556
 
1553
1557
  end
1554
1558
  end
1555
- when 23 then
1556
- # line 357 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1559
+ when 22 then
1560
+ # line 365 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1557
1561
  begin
1558
1562
  te = p+1
1559
1563
  begin
@@ -1567,8 +1571,8 @@ te = p+1
1567
1571
 
1568
1572
  end
1569
1573
  end
1570
- when 91 then
1571
- # line 274 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1574
+ when 90 then
1575
+ # line 282 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1572
1576
  begin
1573
1577
  te = p
1574
1578
  p = p - 1; begin
@@ -1582,8 +1586,8 @@ p = p - 1; begin
1582
1586
 
1583
1587
  end
1584
1588
  end
1585
- when 97 then
1586
- # line 326 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1589
+ when 96 then
1590
+ # line 334 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1587
1591
  begin
1588
1592
  te = p
1589
1593
  p = p - 1; begin
@@ -1597,8 +1601,8 @@ p = p - 1; begin
1597
1601
 
1598
1602
  end
1599
1603
  end
1600
- when 94 then
1601
- # line 335 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1604
+ when 93 then
1605
+ # line 343 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1602
1606
  begin
1603
1607
  te = p
1604
1608
  p = p - 1; begin
@@ -1612,8 +1616,8 @@ p = p - 1; begin
1612
1616
 
1613
1617
  end
1614
1618
  end
1615
- when 96 then
1616
- # line 340 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1619
+ when 95 then
1620
+ # line 348 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1617
1621
  begin
1618
1622
  te = p
1619
1623
  p = p - 1; begin
@@ -1627,8 +1631,8 @@ p = p - 1; begin
1627
1631
 
1628
1632
  end
1629
1633
  end
1630
- when 89 then
1631
- # line 357 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1634
+ when 88 then
1635
+ # line 365 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1632
1636
  begin
1633
1637
  te = p
1634
1638
  p = p - 1; begin
@@ -1642,8 +1646,8 @@ p = p - 1; begin
1642
1646
 
1643
1647
  end
1644
1648
  end
1645
- when 22 then
1646
- # line 357 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1649
+ when 21 then
1650
+ # line 365 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1647
1651
  begin
1648
1652
  begin p = ((te))-1; end
1649
1653
  begin
@@ -1657,11 +1661,11 @@ p = p - 1; begin
1657
1661
 
1658
1662
  end
1659
1663
  end
1660
- when 90 then
1664
+ when 89 then
1661
1665
  # line 1 "NONE"
1662
1666
  begin
1663
1667
  case act
1664
- when 18 then
1668
+ when 16 then
1665
1669
  begin begin p = ((te))-1; end
1666
1670
 
1667
1671
  text = copy(data, ts-1, te)
@@ -1674,7 +1678,7 @@ p = p - 1; begin
1674
1678
  end
1675
1679
 
1676
1680
  end
1677
- when 19 then
1681
+ when 17 then
1678
1682
  begin begin p = ((te))-1; end
1679
1683
 
1680
1684
  emit(:escape, :octal, copy(data, ts-1, te))
@@ -1688,8 +1692,8 @@ p = p - 1; begin
1688
1692
  end
1689
1693
  end
1690
1694
  end
1691
- when 32 then
1692
- # line 367 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1695
+ when 31 then
1696
+ # line 375 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1693
1697
  begin
1694
1698
  te = p+1
1695
1699
  begin
@@ -1698,8 +1702,8 @@ te = p+1
1698
1702
  emit(:conditional, :condition_close, ')')
1699
1703
  end
1700
1704
  end
1701
- when 99 then
1702
- # line 373 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1705
+ when 98 then
1706
+ # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1703
1707
  begin
1704
1708
  te = p+1
1705
1709
  begin
@@ -1707,15 +1711,15 @@ te = p+1
1707
1711
  begin
1708
1712
  stack[top] = cs
1709
1713
  top+= 1
1710
- cs = 110
1714
+ cs = 119
1711
1715
  _goto_level = _again
1712
1716
  next
1713
1717
  end
1714
1718
 
1715
1719
  end
1716
1720
  end
1717
- when 100 then
1718
- # line 373 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1721
+ when 99 then
1722
+ # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1719
1723
  begin
1720
1724
  te = p
1721
1725
  p = p - 1; begin
@@ -1723,15 +1727,15 @@ p = p - 1; begin
1723
1727
  begin
1724
1728
  stack[top] = cs
1725
1729
  top+= 1
1726
- cs = 110
1730
+ cs = 119
1727
1731
  _goto_level = _again
1728
1732
  next
1729
1733
  end
1730
1734
 
1731
1735
  end
1732
1736
  end
1733
- when 31 then
1734
- # line 373 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1737
+ when 30 then
1738
+ # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1735
1739
  begin
1736
1740
  begin p = ((te))-1; end
1737
1741
  begin
@@ -1739,23 +1743,23 @@ p = p - 1; begin
1739
1743
  begin
1740
1744
  stack[top] = cs
1741
1745
  top+= 1
1742
- cs = 110
1746
+ cs = 119
1743
1747
  _goto_level = _again
1744
1748
  next
1745
1749
  end
1746
1750
 
1747
1751
  end
1748
1752
  end
1749
- when 38 then
1750
- # line 386 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1753
+ when 37 then
1754
+ # line 394 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1751
1755
  begin
1752
1756
  te = p+1
1753
1757
  begin
1754
1758
  emit(:meta, :dot, copy(data, ts, te))
1755
1759
  end
1756
1760
  end
1757
- when 43 then
1758
- # line 390 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1761
+ when 42 then
1762
+ # line 398 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1759
1763
  begin
1760
1764
  te = p+1
1761
1765
  begin
@@ -1766,32 +1770,32 @@ te = p+1
1766
1770
  end
1767
1771
  end
1768
1772
  end
1769
- when 42 then
1770
- # line 400 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1773
+ when 41 then
1774
+ # line 408 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1771
1775
  begin
1772
1776
  te = p+1
1773
1777
  begin
1774
1778
  emit(:anchor, :bol, copy(data, ts, te))
1775
1779
  end
1776
1780
  end
1777
- when 35 then
1778
- # line 404 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1781
+ when 34 then
1782
+ # line 412 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1779
1783
  begin
1780
1784
  te = p+1
1781
1785
  begin
1782
1786
  emit(:anchor, :eol, copy(data, ts, te))
1783
1787
  end
1784
1788
  end
1785
- when 63 then
1786
- # line 408 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1789
+ when 62 then
1790
+ # line 416 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1787
1791
  begin
1788
1792
  te = p+1
1789
1793
  begin
1790
1794
  emit(:keep, :mark, copy(data, ts, te))
1791
1795
  end
1792
1796
  end
1793
- when 62 then
1794
- # line 412 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1797
+ when 61 then
1798
+ # line 420 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1795
1799
  begin
1796
1800
  te = p+1
1797
1801
  begin
@@ -1805,16 +1809,16 @@ te = p+1
1805
1809
  end
1806
1810
  end
1807
1811
  end
1808
- when 41 then
1809
- # line 423 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1812
+ when 40 then
1813
+ # line 431 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1810
1814
  begin
1811
1815
  te = p+1
1812
1816
  begin
1813
1817
  append_literal(data, ts, te)
1814
1818
  end
1815
1819
  end
1816
- when 52 then
1817
- # line 438 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1820
+ when 51 then
1821
+ # line 446 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1818
1822
  begin
1819
1823
  te = p+1
1820
1824
  begin
@@ -1827,15 +1831,15 @@ te = p+1
1827
1831
  begin
1828
1832
  stack[top] = cs
1829
1833
  top+= 1
1830
- cs = 151
1834
+ cs = 160
1831
1835
  _goto_level = _again
1832
1836
  next
1833
1837
  end
1834
1838
 
1835
1839
  end
1836
1840
  end
1837
- when 53 then
1838
- # line 469 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1841
+ when 52 then
1842
+ # line 477 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1839
1843
  begin
1840
1844
  te = p+1
1841
1845
  begin
@@ -1846,8 +1850,8 @@ te = p+1
1846
1850
  emit_options(text)
1847
1851
  end
1848
1852
  end
1849
- when 51 then
1850
- # line 483 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1853
+ when 50 then
1854
+ # line 491 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1851
1855
  begin
1852
1856
  te = p+1
1853
1857
  begin
@@ -1860,7 +1864,7 @@ te = p+1
1860
1864
  end
1861
1865
  end
1862
1866
  when 6 then
1863
- # line 500 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1867
+ # line 508 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1864
1868
  begin
1865
1869
  te = p+1
1866
1870
  begin
@@ -1879,78 +1883,48 @@ te = p+1
1879
1883
  emit(:group, :named_sq, text)
1880
1884
 
1881
1885
  end
1886
+ end
1887
+ end
1888
+ when 10 then
1889
+ # line 549 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1890
+ begin
1891
+ te = p+1
1892
+ begin
1893
+ case text = copy(data, ts, te)
1894
+ when /^\\k(<>|'')/
1895
+ validation_error(:backref, 'backreference', 'ref ID is empty')
1896
+ when /^\\k(.)[^\p{digit}\-][^+\-]*\D$/
1897
+ emit(:backref, $1 == '<' ? :name_ref_ab : :name_ref_sq, text)
1898
+ when /^\\k(.)\d+\D$/
1899
+ emit(:backref, $1 == '<' ? :number_ref_ab : :number_ref_sq, text)
1900
+ when /^\\k(.)-\d+\D$/
1901
+ emit(:backref, $1 == '<' ? :number_rel_ref_ab : :number_rel_ref_sq, text)
1902
+ when /^\\k(.)[^\p{digit}\-].*[+\-]\d+\D$/
1903
+ emit(:backref, $1 == '<' ? :name_recursion_ref_ab : :name_recursion_ref_sq, text)
1904
+ when /^\\k(.)-?\d+[+\-]\d+\D$/
1905
+ emit(:backref, $1 == '<' ? :number_recursion_ref_ab : :number_recursion_ref_sq, text)
1906
+ end
1882
1907
  end
1883
1908
  end
1884
1909
  when 9 then
1885
- # line 541 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1910
+ # line 568 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1886
1911
  begin
1887
1912
  te = p+1
1888
1913
  begin
1889
1914
  case text = copy(data, ts, te)
1890
- when /^\\([gk])(<>|'')/ # angle brackets
1891
- validation_error(:backref, 'ref/call', 'ref ID is empty')
1892
-
1893
- # TODO: finer quirks of choosing recursive or non-recursive refs/calls.
1894
- # e.g.: `a-1` is a valid group id: 'aa'[/(?<a-1>a)\g<a-1>/] # => 'aa'
1895
- when /^\\([gk])<[^\p{digit}+\->][^>+\-]*>/ # angle-brackets
1896
- if $1 == 'k'
1897
- emit(:backref, :name_ref_ab, text)
1898
- else
1899
- emit(:backref, :name_call_ab, text)
1900
- end
1901
-
1902
- when /^\\([gk])'[^\p{digit}+\-'][^'+\-]*'/ # single quotes
1903
- if $1 == 'k'
1904
- emit(:backref, :name_ref_sq, text)
1905
- else
1906
- emit(:backref, :name_call_sq, text)
1907
- end
1908
-
1909
- when /^\\([gk])<\d+>/ # angle-brackets
1910
- if $1 == 'k'
1911
- emit(:backref, :number_ref_ab, text)
1912
- else
1913
- emit(:backref, :number_call_ab, text)
1914
- end
1915
-
1916
- when /^\\([gk])'\d+'/ # single quotes
1917
- if $1 == 'k'
1918
- emit(:backref, :number_ref_sq, text)
1919
- else
1920
- emit(:backref, :number_call_sq, text)
1921
- end
1922
-
1923
- when /^\\(?:g<\+|g<-|(k)<-)\d+>/ # angle-brackets
1924
- if $1 == 'k'
1925
- emit(:backref, :number_rel_ref_ab, text)
1926
- else
1927
- emit(:backref, :number_rel_call_ab, text)
1928
- end
1929
-
1930
- when /^\\(?:g'\+|g'-|(k)'-)\d+'/ # single quotes
1931
- if $1 == 'k'
1932
- emit(:backref, :number_rel_ref_sq, text)
1933
- else
1934
- emit(:backref, :number_rel_call_sq, text)
1935
- end
1936
-
1937
- when /^\\k<[^\p{digit}+\->][^>]*[+\-]\d+>/ # angle-brackets
1938
- emit(:backref, :name_recursion_ref_ab, text)
1939
-
1940
- when /^\\k'[^\p{digit}+\-'][^']*[+\-]\d+'/ # single-quotes
1941
- emit(:backref, :name_recursion_ref_sq, text)
1942
-
1943
- when /^\\([gk])<[+\-]?\d+[+\-]\d+>/ # angle-brackets
1944
- emit(:backref, :number_recursion_ref_ab, text)
1945
-
1946
- when /^\\([gk])'[+\-]?\d+[+\-]\d+'/ # single-quotes
1947
- emit(:backref, :number_recursion_ref_sq, text)
1948
-
1915
+ when /^\\g(<>|'')/
1916
+ validation_error(:backref, 'subexpression call', 'ref ID is empty')
1917
+ when /^\\g(.)[^\p{digit}+\->][^+\-]*/
1918
+ emit(:backref, $1 == '<' ? :name_call_ab : :name_call_sq, text)
1919
+ when /^\\g(.)\d+\D$/
1920
+ emit(:backref, $1 == '<' ? :number_call_ab : :number_call_sq, text)
1921
+ when /^\\g(.)[+-]\d+/
1922
+ emit(:backref, $1 == '<' ? :number_rel_call_ab : :number_rel_call_sq, text)
1949
1923
  end
1950
1924
  end
1951
1925
  end
1952
- when 60 then
1953
- # line 608 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1926
+ when 59 then
1927
+ # line 584 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1954
1928
  begin
1955
1929
  te = p+1
1956
1930
  begin
@@ -1961,8 +1935,8 @@ te = p+1
1961
1935
  end
1962
1936
  end
1963
1937
  end
1964
- when 56 then
1965
- # line 616 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1938
+ when 55 then
1939
+ # line 592 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1966
1940
  begin
1967
1941
  te = p+1
1968
1942
  begin
@@ -1973,8 +1947,8 @@ te = p+1
1973
1947
  end
1974
1948
  end
1975
1949
  end
1976
- when 58 then
1977
- # line 624 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1950
+ when 57 then
1951
+ # line 600 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1978
1952
  begin
1979
1953
  te = p+1
1980
1954
  begin
@@ -1985,16 +1959,16 @@ te = p+1
1985
1959
  end
1986
1960
  end
1987
1961
  end
1988
- when 66 then
1989
- # line 632 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1962
+ when 65 then
1963
+ # line 608 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1990
1964
  begin
1991
1965
  te = p+1
1992
1966
  begin
1993
1967
  emit(:quantifier, :interval, copy(data, ts, te))
1994
1968
  end
1995
1969
  end
1996
- when 47 then
1997
- # line 647 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1970
+ when 46 then
1971
+ # line 623 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1998
1972
  begin
1999
1973
  te = p+1
2000
1974
  begin
@@ -2008,8 +1982,8 @@ te = p+1
2008
1982
  end
2009
1983
  end
2010
1984
  end
2011
- when 50 then
2012
- # line 469 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1985
+ when 49 then
1986
+ # line 477 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2013
1987
  begin
2014
1988
  te = p
2015
1989
  p = p - 1; begin
@@ -2020,8 +1994,8 @@ p = p - 1; begin
2020
1994
  emit_options(text)
2021
1995
  end
2022
1996
  end
2023
- when 54 then
2024
- # line 483 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1997
+ when 53 then
1998
+ # line 491 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2025
1999
  begin
2026
2000
  te = p
2027
2001
  p = p - 1; begin
@@ -2033,8 +2007,8 @@ p = p - 1; begin
2033
2007
  end
2034
2008
  end
2035
2009
  end
2036
- when 48 then
2037
- # line 518 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2010
+ when 47 then
2011
+ # line 526 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2038
2012
  begin
2039
2013
  te = p
2040
2014
  p = p - 1; begin
@@ -2042,8 +2016,8 @@ p = p - 1; begin
2042
2016
  emit(:group, :capture, text)
2043
2017
  end
2044
2018
  end
2045
- when 59 then
2046
- # line 608 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2019
+ when 58 then
2020
+ # line 584 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2047
2021
  begin
2048
2022
  te = p
2049
2023
  p = p - 1; begin
@@ -2054,8 +2028,8 @@ p = p - 1; begin
2054
2028
  end
2055
2029
  end
2056
2030
  end
2057
- when 55 then
2058
- # line 616 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2031
+ when 54 then
2032
+ # line 592 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2059
2033
  begin
2060
2034
  te = p
2061
2035
  p = p - 1; begin
@@ -2066,8 +2040,8 @@ p = p - 1; begin
2066
2040
  end
2067
2041
  end
2068
2042
  end
2069
- when 57 then
2070
- # line 624 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2043
+ when 56 then
2044
+ # line 600 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2071
2045
  begin
2072
2046
  te = p
2073
2047
  p = p - 1; begin
@@ -2078,39 +2052,39 @@ p = p - 1; begin
2078
2052
  end
2079
2053
  end
2080
2054
  end
2081
- when 65 then
2082
- # line 632 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2055
+ when 64 then
2056
+ # line 608 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2083
2057
  begin
2084
2058
  te = p
2085
2059
  p = p - 1; begin
2086
2060
  emit(:quantifier, :interval, copy(data, ts, te))
2087
2061
  end
2088
2062
  end
2089
- when 64 then
2090
- # line 637 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2063
+ when 63 then
2064
+ # line 613 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2091
2065
  begin
2092
2066
  te = p
2093
2067
  p = p - 1; begin
2094
2068
  append_literal(data, ts, te)
2095
2069
  end
2096
2070
  end
2097
- when 61 then
2098
- # line 643 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2071
+ when 60 then
2072
+ # line 619 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2099
2073
  begin
2100
2074
  te = p
2101
2075
  p = p - 1; begin
2102
2076
  begin
2103
2077
  stack[top] = cs
2104
2078
  top+= 1
2105
- cs = 137
2079
+ cs = 146
2106
2080
  _goto_level = _again
2107
2081
  next
2108
2082
  end
2109
2083
 
2110
2084
  end
2111
2085
  end
2112
- when 46 then
2113
- # line 647 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2086
+ when 45 then
2087
+ # line 623 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2114
2088
  begin
2115
2089
  te = p
2116
2090
  p = p - 1; begin
@@ -2124,8 +2098,8 @@ p = p - 1; begin
2124
2098
  end
2125
2099
  end
2126
2100
  end
2127
- when 45 then
2128
- # line 657 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2101
+ when 44 then
2102
+ # line 633 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2129
2103
  begin
2130
2104
  te = p
2131
2105
  p = p - 1; begin
@@ -2136,8 +2110,8 @@ p = p - 1; begin
2136
2110
  end
2137
2111
  end
2138
2112
  end
2139
- when 44 then
2140
- # line 668 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2113
+ when 43 then
2114
+ # line 644 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2141
2115
  begin
2142
2116
  te = p
2143
2117
  p = p - 1; begin
@@ -2145,7 +2119,7 @@ p = p - 1; begin
2145
2119
  end
2146
2120
  end
2147
2121
  when 3 then
2148
- # line 469 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2122
+ # line 477 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2149
2123
  begin
2150
2124
  begin p = ((te))-1; end
2151
2125
  begin
@@ -2156,8 +2130,8 @@ p = p - 1; begin
2156
2130
  emit_options(text)
2157
2131
  end
2158
2132
  end
2159
- when 10 then
2160
- # line 637 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2133
+ when 11 then
2134
+ # line 613 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2161
2135
  begin
2162
2136
  begin p = ((te))-1; end
2163
2137
  begin
@@ -2165,14 +2139,14 @@ p = p - 1; begin
2165
2139
  end
2166
2140
  end
2167
2141
  when 8 then
2168
- # line 643 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2142
+ # line 619 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2169
2143
  begin
2170
2144
  begin p = ((te))-1; end
2171
2145
  begin
2172
2146
  begin
2173
2147
  stack[top] = cs
2174
2148
  top+= 1
2175
- cs = 137
2149
+ cs = 146
2176
2150
  _goto_level = _again
2177
2151
  next
2178
2152
  end
@@ -2190,7 +2164,7 @@ p = p - 1; begin
2190
2164
  next
2191
2165
  end
2192
2166
  end
2193
- when 42 then
2167
+ when 40 then
2194
2168
  begin begin p = ((te))-1; end
2195
2169
 
2196
2170
  text = copy(data, ts, te)
@@ -2199,7 +2173,7 @@ end
2199
2173
  end
2200
2174
  emit_options(text)
2201
2175
  end
2202
- when 43 then
2176
+ when 41 then
2203
2177
  begin begin p = ((te))-1; end
2204
2178
 
2205
2179
  case text = copy(data, ts, te)
@@ -2209,21 +2183,21 @@ end
2209
2183
  when '(?<!'; emit(:assertion, :nlookbehind, text)
2210
2184
  end
2211
2185
  end
2212
- when 56 then
2186
+ when 55 then
2213
2187
  begin begin p = ((te))-1; end
2214
2188
 
2215
2189
  append_literal(data, ts, te)
2216
2190
  end
2217
2191
  end
2218
2192
  end
2219
- when 78 then
2220
- # line 139 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2193
+ when 77 then
2194
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2221
2195
  begin
2222
2196
 
2223
2197
  text = copy(data, ts ? ts-1 : 0, -1)
2224
2198
  raise PrematureEndError.new( text )
2225
2199
  end
2226
- # line 213 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2200
+ # line 221 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2227
2201
  begin
2228
2202
  te = p
2229
2203
  p = p - 1; begin
@@ -2231,21 +2205,21 @@ p = p - 1; begin
2231
2205
  begin
2232
2206
  stack[top] = cs
2233
2207
  top+= 1
2234
- cs = 129
2208
+ cs = 138
2235
2209
  _goto_level = _again
2236
2210
  next
2237
2211
  end
2238
2212
 
2239
2213
  end
2240
2214
  end
2241
- when 17 then
2242
- # line 139 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2215
+ when 18 then
2216
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2243
2217
  begin
2244
2218
 
2245
2219
  text = copy(data, ts ? ts-1 : 0, -1)
2246
2220
  raise PrematureEndError.new( text )
2247
2221
  end
2248
- # line 213 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2222
+ # line 221 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2249
2223
  begin
2250
2224
  begin p = ((te))-1; end
2251
2225
  begin
@@ -2253,21 +2227,21 @@ p = p - 1; begin
2253
2227
  begin
2254
2228
  stack[top] = cs
2255
2229
  top+= 1
2256
- cs = 129
2230
+ cs = 138
2257
2231
  _goto_level = _again
2258
2232
  next
2259
2233
  end
2260
2234
 
2261
2235
  end
2262
2236
  end
2263
- when 93 then
2264
- # line 139 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2237
+ when 92 then
2238
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2265
2239
  begin
2266
2240
 
2267
2241
  text = copy(data, ts ? ts-1 : 0, -1)
2268
2242
  raise PrematureEndError.new( text )
2269
2243
  end
2270
- # line 335 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2244
+ # line 343 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2271
2245
  begin
2272
2246
  te = p
2273
2247
  p = p - 1; begin
@@ -2281,14 +2255,14 @@ p = p - 1; begin
2281
2255
 
2282
2256
  end
2283
2257
  end
2284
- when 95 then
2285
- # line 139 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2258
+ when 94 then
2259
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2286
2260
  begin
2287
2261
 
2288
2262
  text = copy(data, ts ? ts-1 : 0, -1)
2289
2263
  raise PrematureEndError.new( text )
2290
2264
  end
2291
- # line 340 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2265
+ # line 348 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2292
2266
  begin
2293
2267
  te = p
2294
2268
  p = p - 1; begin
@@ -2302,14 +2276,14 @@ p = p - 1; begin
2302
2276
 
2303
2277
  end
2304
2278
  end
2305
- when 26 then
2306
- # line 139 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2279
+ when 25 then
2280
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2307
2281
  begin
2308
2282
 
2309
2283
  text = copy(data, ts ? ts-1 : 0, -1)
2310
2284
  raise PrematureEndError.new( text )
2311
2285
  end
2312
- # line 335 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2286
+ # line 343 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2313
2287
  begin
2314
2288
  begin p = ((te))-1; end
2315
2289
  begin
@@ -2323,14 +2297,14 @@ p = p - 1; begin
2323
2297
 
2324
2298
  end
2325
2299
  end
2326
- when 28 then
2327
- # line 139 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2300
+ when 27 then
2301
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2328
2302
  begin
2329
2303
 
2330
2304
  text = copy(data, ts ? ts-1 : 0, -1)
2331
2305
  raise PrematureEndError.new( text )
2332
2306
  end
2333
- # line 340 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2307
+ # line 348 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2334
2308
  begin
2335
2309
  begin p = ((te))-1; end
2336
2310
  begin
@@ -2344,14 +2318,14 @@ p = p - 1; begin
2344
2318
 
2345
2319
  end
2346
2320
  end
2347
- when 30 then
2348
- # line 145 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2321
+ when 29 then
2322
+ # line 153 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2349
2323
  begin
2350
2324
 
2351
2325
  text = copy(data, ts ? ts-1 : 0, -1)
2352
2326
  validation_error(:sequence, 'sequence', text)
2353
2327
  end
2354
- # line 331 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2328
+ # line 339 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2355
2329
  begin
2356
2330
  te = p+1
2357
2331
  begin
@@ -2365,21 +2339,21 @@ te = p+1
2365
2339
  end
2366
2340
  end
2367
2341
  when 5 then
2368
- # line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2342
+ # line 160 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2369
2343
  begin
2370
2344
  self.group_depth = group_depth - 1 end
2371
- # line 454 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2345
+ # line 462 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2372
2346
  begin
2373
2347
  te = p+1
2374
2348
  begin
2375
2349
  emit(:group, :comment, copy(data, ts, te))
2376
2350
  end
2377
2351
  end
2378
- when 37 then
2379
- # line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2352
+ when 36 then
2353
+ # line 160 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2380
2354
  begin
2381
2355
  self.group_depth = group_depth - 1 end
2382
- # line 523 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2356
+ # line 531 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2383
2357
  begin
2384
2358
  te = p+1
2385
2359
  begin
@@ -2397,11 +2371,11 @@ te = p+1
2397
2371
  end
2398
2372
  end
2399
2373
  end
2400
- when 39 then
2401
- # line 153 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2374
+ when 38 then
2375
+ # line 161 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2402
2376
  begin
2403
2377
  self.set_depth = set_depth + 1 end
2404
- # line 429 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2378
+ # line 437 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2405
2379
  begin
2406
2380
  te = p+1
2407
2381
  begin
@@ -2409,18 +2383,18 @@ te = p+1
2409
2383
  begin
2410
2384
  stack[top] = cs
2411
2385
  top+= 1
2412
- cs = 129
2386
+ cs = 138
2413
2387
  _goto_level = _again
2414
2388
  next
2415
2389
  end
2416
2390
 
2417
2391
  end
2418
2392
  end
2419
- when 72 then
2420
- # line 154 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2393
+ when 71 then
2394
+ # line 162 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2421
2395
  begin
2422
2396
  self.set_depth = set_depth - 1 end
2423
- # line 160 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2397
+ # line 168 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2424
2398
  begin
2425
2399
  te = p+1
2426
2400
  begin
@@ -2435,7 +2409,7 @@ te = p+1
2435
2409
 
2436
2410
  else
2437
2411
  begin
2438
- cs = 110
2412
+ cs = 119
2439
2413
  _goto_level = _again
2440
2414
  next
2441
2415
  end
@@ -2443,11 +2417,11 @@ te = p+1
2443
2417
  end
2444
2418
  end
2445
2419
  end
2446
- when 77 then
2447
- # line 154 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2420
+ when 76 then
2421
+ # line 162 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2448
2422
  begin
2449
2423
  self.set_depth = set_depth - 1 end
2450
- # line 169 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2424
+ # line 177 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2451
2425
  begin
2452
2426
  te = p+1
2453
2427
  begin # special case, emits two tokens
@@ -2463,7 +2437,7 @@ te = p+1
2463
2437
 
2464
2438
  else
2465
2439
  begin
2466
- cs = 110
2440
+ cs = 119
2467
2441
  _goto_level = _again
2468
2442
  next
2469
2443
  end
@@ -2472,10 +2446,10 @@ te = p+1
2472
2446
  end
2473
2447
  end
2474
2448
  when 20 then
2475
- # line 154 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2449
+ # line 162 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2476
2450
  begin
2477
2451
  self.set_depth = set_depth - 1 end
2478
- # line 218 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2452
+ # line 226 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2479
2453
  begin
2480
2454
  te = p+1
2481
2455
  begin
@@ -2491,93 +2465,71 @@ te = p+1
2491
2465
  emit(type, class_name.to_sym, text)
2492
2466
  end
2493
2467
  end
2494
- when 19 then
2495
- # line 154 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2496
- begin
2497
- self.set_depth = set_depth - 1 end
2498
- # line 231 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2499
- begin
2500
- te = p+1
2501
- begin
2502
- emit(:set, :collation, copy(data, ts, te))
2503
- end
2504
- end
2505
- when 21 then
2506
- # line 154 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2507
- begin
2508
- self.set_depth = set_depth - 1 end
2509
- # line 235 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2510
- begin
2511
- te = p+1
2512
- begin
2513
- emit(:set, :equivalent, copy(data, ts, te))
2514
- end
2515
- end
2516
- when 70 then
2468
+ when 69 then
2517
2469
  # line 1 "NONE"
2518
2470
  begin
2519
2471
  te = p+1
2520
2472
  end
2521
- # line 153 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2473
+ # line 161 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2522
2474
  begin
2523
2475
  self.set_depth = set_depth + 1 end
2524
- when 84 then
2476
+ when 83 then
2525
2477
  # line 1 "NONE"
2526
2478
  begin
2527
2479
  te = p+1
2528
2480
  end
2529
- # line 268 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2481
+ # line 276 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2530
2482
  begin
2531
- act = 18; end
2532
- when 83 then
2483
+ act = 16; end
2484
+ when 82 then
2533
2485
  # line 1 "NONE"
2534
2486
  begin
2535
2487
  te = p+1
2536
2488
  end
2537
- # line 274 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2489
+ # line 282 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2538
2490
  begin
2539
- act = 19; end
2491
+ act = 17; end
2540
2492
  when 7 then
2541
2493
  # line 1 "NONE"
2542
2494
  begin
2543
2495
  te = p+1
2544
2496
  end
2545
- # line 483 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2497
+ # line 491 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2546
2498
  begin
2547
- act = 43; end
2499
+ act = 41; end
2548
2500
  when 2 then
2549
2501
  # line 1 "NONE"
2550
2502
  begin
2551
2503
  te = p+1
2552
2504
  end
2553
- # line 668 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2505
+ # line 644 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2554
2506
  begin
2555
- act = 56; end
2556
- when 49 then
2507
+ act = 55; end
2508
+ when 48 then
2557
2509
  # line 1 "NONE"
2558
2510
  begin
2559
2511
  te = p+1
2560
2512
  end
2561
- # line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2513
+ # line 160 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2562
2514
  begin
2563
2515
  self.group_depth = group_depth - 1 end
2564
- # line 151 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2516
+ # line 159 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2565
2517
  begin
2566
2518
  self.group_depth = group_depth + 1 end
2567
- # line 469 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2519
+ # line 477 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2568
2520
  begin
2569
- act = 42; end
2570
- # line 2570 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2521
+ act = 40; end
2522
+ # line 2522 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2571
2523
  end
2572
2524
  end
2573
2525
  end
2574
2526
  if _goto_level <= _again
2575
2527
  case _re_scanner_to_state_actions[cs]
2576
- when 67 then
2528
+ when 66 then
2577
2529
  # line 1 "NONE"
2578
2530
  begin
2579
2531
  ts = nil; end
2580
- when 33 then
2532
+ when 32 then
2581
2533
  # line 1 "NONE"
2582
2534
  begin
2583
2535
  ts = nil; end
@@ -2585,7 +2537,7 @@ ts = nil; end
2585
2537
  begin
2586
2538
  act = 0
2587
2539
  end
2588
- # line 2588 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2540
+ # line 2540 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2589
2541
  end
2590
2542
 
2591
2543
  if cs == 0
@@ -2606,20 +2558,20 @@ act = 0
2606
2558
  next;
2607
2559
  end
2608
2560
  case _re_scanner_eof_actions[cs]
2609
- when 11 then
2561
+ when 12 then
2610
2562
  # line 8 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
2611
2563
  begin
2612
2564
 
2613
2565
  raise PrematureEndError.new('unicode property')
2614
2566
  end
2615
- when 24 then
2616
- # line 139 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2567
+ when 23 then
2568
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2617
2569
  begin
2618
2570
 
2619
2571
  text = copy(data, ts ? ts-1 : 0, -1)
2620
2572
  raise PrematureEndError.new( text )
2621
2573
  end
2622
- # line 2622 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2574
+ # line 2574 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2623
2575
  end
2624
2576
  end
2625
2577
 
@@ -2630,7 +2582,7 @@ act = 0
2630
2582
  end
2631
2583
  end
2632
2584
 
2633
- # line 763 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2585
+ # line 741 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2634
2586
 
2635
2587
  # to avoid "warning: assigned but unused variable - testEof"
2636
2588
  testEof = testEof
@@ -2653,14 +2605,13 @@ end
2653
2605
 
2654
2606
  # lazy-load property maps when first needed
2655
2607
  require 'yaml'
2656
- PROP_MAPS_DIR = File.expand_path('../scanner/properties', __FILE__)
2657
2608
 
2658
2609
  def self.short_prop_map
2659
- @short_prop_map ||= YAML.load_file("#{PROP_MAPS_DIR}/short.yml")
2610
+ @short_prop_map ||= YAML.load_file("#{__dir__}/scanner/properties/short.yml")
2660
2611
  end
2661
2612
 
2662
2613
  def self.long_prop_map
2663
- @long_prop_map ||= YAML.load_file("#{PROP_MAPS_DIR}/long.yml")
2614
+ @long_prop_map ||= YAML.load_file("#{__dir__}/scanner/properties/long.yml")
2664
2615
  end
2665
2616
 
2666
2617
  # Emits an array with the details of the scanned pattern