regexp_parser 0.5.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +242 -0
  3. data/Gemfile +1 -0
  4. data/README.md +21 -17
  5. data/Rakefile +31 -0
  6. data/lib/regexp_parser/expression.rb +11 -9
  7. data/lib/regexp_parser/expression/classes/alternation.rb +5 -28
  8. data/lib/regexp_parser/expression/classes/backref.rb +21 -16
  9. data/lib/regexp_parser/expression/classes/escape.rb +81 -10
  10. data/lib/regexp_parser/expression/classes/group.rb +20 -20
  11. data/lib/regexp_parser/expression/classes/{character_class.rb → posix_class.rb} +2 -2
  12. data/lib/regexp_parser/expression/classes/property.rb +6 -0
  13. data/lib/regexp_parser/expression/classes/set.rb +10 -93
  14. data/lib/regexp_parser/expression/classes/set/intersection.rb +9 -0
  15. data/lib/regexp_parser/expression/classes/set/range.rb +23 -0
  16. data/lib/regexp_parser/expression/methods/strfregexp.rb +6 -4
  17. data/lib/regexp_parser/expression/methods/tests.rb +4 -14
  18. data/lib/regexp_parser/expression/methods/traverse.rb +1 -1
  19. data/lib/regexp_parser/expression/quantifier.rb +3 -4
  20. data/lib/regexp_parser/expression/sequence_operation.rb +34 -0
  21. data/lib/regexp_parser/expression/subexpression.rb +6 -10
  22. data/lib/regexp_parser/lexer.rb +13 -17
  23. data/lib/regexp_parser/parser.rb +170 -116
  24. data/lib/regexp_parser/scanner.rb +952 -2431
  25. data/lib/regexp_parser/scanner/char_type.rl +31 -0
  26. data/lib/regexp_parser/scanner/properties/long.yml +561 -0
  27. data/lib/regexp_parser/scanner/properties/short.yml +225 -0
  28. data/lib/regexp_parser/scanner/property.rl +7 -806
  29. data/lib/regexp_parser/scanner/scanner.rl +112 -154
  30. data/lib/regexp_parser/syntax/base.rb +4 -4
  31. data/lib/regexp_parser/syntax/tokens.rb +1 -0
  32. data/lib/regexp_parser/syntax/tokens/backref.rb +2 -2
  33. data/lib/regexp_parser/syntax/tokens/character_set.rb +3 -38
  34. data/lib/regexp_parser/syntax/tokens/escape.rb +2 -3
  35. data/lib/regexp_parser/syntax/tokens/group.rb +5 -4
  36. data/lib/regexp_parser/syntax/tokens/{character_class.rb → posix_class.rb} +5 -5
  37. data/lib/regexp_parser/syntax/tokens/unicode_property.rb +519 -266
  38. data/lib/regexp_parser/syntax/versions/1.8.6.rb +2 -4
  39. data/lib/regexp_parser/syntax/versions/1.9.1.rb +4 -10
  40. data/lib/regexp_parser/syntax/versions/2.0.0.rb +0 -2
  41. data/lib/regexp_parser/syntax/versions/2.4.1.rb +1 -1
  42. data/lib/regexp_parser/version.rb +1 -1
  43. data/regexp_parser.gemspec +2 -1
  44. data/test/expression/test_base.rb +2 -1
  45. data/test/expression/test_clone.rb +0 -57
  46. data/test/expression/test_set.rb +31 -8
  47. data/test/expression/test_strfregexp.rb +13 -4
  48. data/test/expression/test_subexpression.rb +25 -0
  49. data/test/expression/test_traverse.rb +25 -25
  50. data/test/helpers.rb +1 -0
  51. data/test/lexer/test_all.rb +1 -1
  52. data/test/lexer/test_conditionals.rb +9 -7
  53. data/test/lexer/test_nesting.rb +39 -21
  54. data/test/lexer/test_refcalls.rb +4 -4
  55. data/test/parser/set/test_intersections.rb +127 -0
  56. data/test/parser/set/test_ranges.rb +111 -0
  57. data/test/parser/test_all.rb +4 -1
  58. data/test/parser/test_escapes.rb +41 -9
  59. data/test/parser/test_groups.rb +22 -3
  60. data/test/parser/test_posix_classes.rb +27 -0
  61. data/test/parser/test_properties.rb +17 -290
  62. data/test/parser/test_refcalls.rb +66 -26
  63. data/test/parser/test_sets.rb +132 -129
  64. data/test/scanner/test_all.rb +1 -7
  65. data/test/scanner/test_conditionals.rb +16 -16
  66. data/test/scanner/test_errors.rb +0 -30
  67. data/test/scanner/test_escapes.rb +1 -2
  68. data/test/scanner/test_free_space.rb +28 -28
  69. data/test/scanner/test_groups.rb +35 -35
  70. data/test/scanner/test_meta.rb +1 -1
  71. data/test/scanner/test_properties.rb +87 -114
  72. data/test/scanner/test_refcalls.rb +18 -18
  73. data/test/scanner/test_scripts.rb +19 -351
  74. data/test/scanner/test_sets.rb +87 -60
  75. data/test/scanner/test_unicode_blocks.rb +4 -105
  76. data/test/support/warning_extractor.rb +1 -1
  77. data/test/syntax/test_syntax.rb +7 -0
  78. data/test/syntax/versions/test_1.8.rb +2 -4
  79. metadata +17 -7
  80. data/ChangeLog +0 -325
  81. data/test/scanner/test_emojis.rb +0 -31
@@ -2,7 +2,7 @@
2
2
 
3
3
  # line 1 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4
4
 
5
- # line 771 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
5
+ # line 710 "/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
@@ -94,11 +94,14 @@ class Regexp::Scanner
94
94
  self.group_depth = 0
95
95
  self.spacing_stack = [{:free_spacing => free_spacing, :depth => 0}]
96
96
 
97
- in_set, set_depth, set_type = false, 0, :set
98
- in_conditional, conditional_depth, conditional_stack = false, 0, []
97
+ in_set = false
98
+ set_depth = 0
99
+ in_conditional = false
100
+ conditional_depth = 0
101
+ conditional_stack = []
99
102
 
100
103
 
101
- # line 101 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
104
+ # line 104 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
102
105
  class << self
103
106
  attr_accessor :_re_scanner_trans_keys
104
107
  private :_re_scanner_trans_keys, :_re_scanner_trans_keys=
@@ -115,77 +118,52 @@ self._re_scanner_trans_keys = [
115
118
  57, 48, 62, 48, 57,
116
119
  43, 62, 43, 122, 44, 125,
117
120
  48, 125, 123, 123, 9,
118
- 122, 9, 125, 9, 125,
119
- 9, 125, 9, 125, 49, 57,
120
- 46, 48, 49, 49, 125,
121
- 125, 46, 46, 48, 48,
122
- 46, 46, 48, 49, 46, 46,
123
- 48, 50, 46, 46, 48,
124
- 51, 9, 122, -128, -65,
125
- -128, -65, -128, -65, -128, -65,
126
- -128, -65, -128, -65, 48,
127
- 122, 45, 122, 45, 122,
128
- 93, 93, 94, 120, 97, 120,
129
- 108, 115, 110, 112, 117,
130
- 117, 109, 109, 58, 58,
131
- 93, 93, 104, 104, 97, 97,
132
- 99, 99, 105, 105, 105,
133
- 105, 108, 108, 97, 97,
134
- 110, 110, 107, 107, 110, 110,
135
- 116, 116, 114, 114, 108,
136
- 108, 105, 105, 103, 103,
137
- 105, 105, 116, 116, 114, 114,
138
- 97, 97, 112, 112, 104,
139
- 104, 111, 111, 119, 119,
140
- 101, 101, 114, 114, 114, 117,
141
- 105, 105, 110, 110, 110,
142
- 110, 99, 99, 112, 112,
143
- 97, 97, 99, 99, 101, 101,
144
- 112, 112, 112, 112, 111,
145
- 111, 114, 114, 100, 100,
146
- 100, 100, 65, 122, 61, 61,
147
- 93, 93, -128, -65, -128,
148
- -65, -128, -65, -128, -65,
149
- -128, -65, -128, -65, 92, 92,
150
- 120, 120, 48, 102, 45,
151
- 45, 77, 77, 45, 45,
152
- 45, 45, 67, 99, 45, 45,
153
- 77, 77, 45, 45, 48,
154
- 123, 48, 102, 48, 102,
155
- 48, 102, 48, 102, 9, 125,
156
- 9, 125, 9, 125, 9,
157
- 125, 9, 125, 48, 123,
158
- 9, 125, 9, 125, 41, 41,
159
- 39, 122, 41, 57, 48,
160
- 122, -62, 127, -62, -33,
161
- -32, -17, -16, -12, 1, 127,
162
- 1, 127, 9, 32, 33,
163
- 126, 10, 126, 63, 63,
164
- 43, 63, 43, 63, 43, 63,
165
- 65, 122, 43, 63, 80,
166
- 112, -62, 127, -128, -65,
167
- -62, -33, -128, -65, -32, -17,
168
- -128, -65, -16, -12, 1,
169
- 127, 38, 38, 93, 93,
170
- 45, 45, 46, 61, -62, 127,
171
- -62, -33, -32, -17, -16,
172
- -12, 1, 127, 32, 126,
173
- 32, 126, 32, 126, 48, 102,
174
- 32, 126, 36, 125, 48,
175
- 55, 48, 55, 92, 92,
176
- 92, 92, 92, 92, 48, 102,
177
- 125, 125, 125, 125, 125,
178
- 125, 125, 125, 125, 125,
179
- 125, 125, 125, 125, 125, 125,
180
- 9, 125, 9, 125, 9,
181
- 125, 9, 125, 9, 125,
182
- 9, 125, 9, 125, 9, 32,
183
- 9, 125, 48, 125, 48,
184
- 125, 48, 125, 48, 125,
185
- 48, 125, 48, 125, 48, 125,
186
- 125, 125, 39, 60, 39,
187
- 122, 49, 57, 41, 57,
188
- 48, 122, 0
121
+ 122, 9, 125, 9, 122,
122
+ -128, -65, -128, -65, 38, 38,
123
+ 45, 122, 45, 122, 93,
124
+ 93, 94, 120, 97, 120,
125
+ 108, 115, 110, 112, 117, 117,
126
+ 109, 109, 58, 58, 93,
127
+ 93, 104, 104, 97, 97,
128
+ 99, 99, 105, 105, 105, 105,
129
+ 108, 108, 97, 97, 110,
130
+ 110, 107, 107, 110, 110,
131
+ 116, 116, 114, 114, 108, 108,
132
+ 105, 105, 103, 103, 105,
133
+ 105, 116, 116, 114, 114,
134
+ 97, 97, 112, 112, 104, 104,
135
+ 111, 111, 119, 119, 101,
136
+ 101, 114, 114, 114, 117,
137
+ 105, 105, 110, 110, 110, 110,
138
+ 99, 99, 112, 112, 97,
139
+ 97, 99, 99, 101, 101,
140
+ 112, 112, 112, 112, 111, 111,
141
+ 114, 114, 100, 100, 100,
142
+ 100, 65, 122, 61, 61,
143
+ 93, 93, 45, 45, 77, 77,
144
+ 45, 45, 45, 45, 67,
145
+ 99, 45, 45, 77, 77,
146
+ 45, 45, 48, 123, 48, 102,
147
+ 48, 102, 48, 102, 48,
148
+ 102, 9, 125, 9, 125,
149
+ 9, 125, 9, 125, 9, 125,
150
+ 9, 125, 48, 123, 41,
151
+ 41, 39, 122, 41, 57,
152
+ 48, 122, -62, 127, -62, -33,
153
+ -32, -17, -16, -12, 1,
154
+ 127, 1, 127, 9, 32,
155
+ 33, 126, 10, 126, 63, 63,
156
+ 43, 63, 43, 63, 43,
157
+ 63, 65, 122, 43, 63,
158
+ 68, 119, 80, 112, -62, 125,
159
+ -128, -65, -128, -65, -128,
160
+ -65, 38, 38, 38, 93,
161
+ 46, 61, 48, 122, 36, 125,
162
+ 48, 55, 48, 55, 92,
163
+ 92, 92, 92, 92, 92,
164
+ 48, 102, 39, 60, 39, 122,
165
+ 49, 57, 41, 57, 48,
166
+ 122, 0
189
167
  ]
190
168
 
191
169
  class << self
@@ -196,31 +174,22 @@ self._re_scanner_key_spans = [
196
174
  0, 64, 64, 64, 64, 64, 64, 1,
197
175
  94, 1, 84, 90, 75, 22, 84, 10,
198
176
  19, 10, 19, 84, 80, 10, 15, 10,
199
- 20, 80, 82, 78, 1, 114, 117, 117,
200
- 117, 117, 9, 3, 1, 1, 1, 1,
201
- 1, 2, 1, 3, 1, 4, 114, 64,
202
- 64, 64, 64, 64, 64, 75, 78, 78,
203
- 1, 27, 24, 8, 3, 1, 1, 1,
204
- 1, 1, 1, 1, 1, 1, 1, 1,
177
+ 20, 80, 82, 78, 1, 114, 117, 114,
178
+ 64, 64, 1, 78, 78, 1, 27, 24,
179
+ 8, 3, 1, 1, 1, 1, 1, 1,
205
180
  1, 1, 1, 1, 1, 1, 1, 1,
206
181
  1, 1, 1, 1, 1, 1, 1, 1,
207
- 1, 1, 4, 1, 1, 1, 1, 1,
182
+ 1, 1, 1, 1, 1, 1, 1, 4,
208
183
  1, 1, 1, 1, 1, 1, 1, 1,
209
- 1, 58, 1, 1, 64, 64, 64, 64,
210
- 64, 64, 1, 1, 55, 1, 1, 1,
211
- 1, 33, 1, 1, 1, 76, 55, 55,
212
- 55, 55, 117, 117, 117, 117, 117, 76,
213
- 117, 117, 1, 84, 17, 75, 190, 30,
214
- 16, 5, 127, 127, 24, 94, 117, 1,
215
- 21, 21, 21, 58, 21, 33, 190, 64,
216
- 30, 64, 16, 64, 5, 127, 1, 1,
217
- 1, 16, 190, 30, 16, 5, 127, 95,
218
- 95, 95, 55, 95, 90, 8, 8, 1,
219
- 1, 1, 55, 1, 1, 1, 1, 1,
220
- 1, 1, 1, 117, 117, 117, 117, 117,
221
- 117, 117, 24, 117, 78, 78, 78, 78,
222
- 78, 78, 78, 1, 22, 84, 9, 17,
223
- 75
184
+ 1, 1, 1, 1, 1, 1, 58, 1,
185
+ 1, 1, 1, 1, 1, 33, 1, 1,
186
+ 1, 76, 55, 55, 55, 55, 117, 117,
187
+ 117, 117, 117, 117, 76, 1, 84, 17,
188
+ 75, 190, 30, 16, 5, 127, 127, 24,
189
+ 94, 117, 1, 21, 21, 21, 58, 21,
190
+ 52, 33, 188, 64, 64, 64, 1, 56,
191
+ 16, 75, 90, 8, 8, 1, 1, 1,
192
+ 55, 22, 84, 9, 17, 75
224
193
  ]
225
194
 
226
195
  class << self
@@ -232,30 +201,21 @@ self._re_scanner_index_offsets = [
232
201
  392, 487, 489, 574, 665, 741, 764, 849,
233
202
  860, 880, 891, 911, 996, 1077, 1088, 1104,
234
203
  1115, 1136, 1217, 1300, 1379, 1381, 1496, 1614,
235
- 1732, 1850, 1968, 1978, 1982, 1984, 1986, 1988,
236
- 1990, 1992, 1995, 1997, 2001, 2003, 2008, 2123,
237
- 2188, 2253, 2318, 2383, 2448, 2513, 2589, 2668,
238
- 2747, 2749, 2777, 2802, 2811, 2815, 2817, 2819,
239
- 2821, 2823, 2825, 2827, 2829, 2831, 2833, 2835,
240
- 2837, 2839, 2841, 2843, 2845, 2847, 2849, 2851,
241
- 2853, 2855, 2857, 2859, 2861, 2863, 2865, 2867,
242
- 2869, 2871, 2873, 2878, 2880, 2882, 2884, 2886,
243
- 2888, 2890, 2892, 2894, 2896, 2898, 2900, 2902,
244
- 2904, 2906, 2965, 2967, 2969, 3034, 3099, 3164,
245
- 3229, 3294, 3359, 3361, 3363, 3419, 3421, 3423,
246
- 3425, 3427, 3461, 3463, 3465, 3467, 3544, 3600,
247
- 3656, 3712, 3768, 3886, 4004, 4122, 4240, 4358,
248
- 4435, 4553, 4671, 4673, 4758, 4776, 4852, 5043,
249
- 5074, 5091, 5097, 5225, 5353, 5378, 5473, 5591,
250
- 5593, 5615, 5637, 5659, 5718, 5740, 5774, 5965,
251
- 6030, 6061, 6126, 6143, 6208, 6214, 6342, 6344,
252
- 6346, 6348, 6365, 6556, 6587, 6604, 6610, 6738,
253
- 6834, 6930, 7026, 7082, 7178, 7269, 7278, 7287,
254
- 7289, 7291, 7293, 7349, 7351, 7353, 7355, 7357,
255
- 7359, 7361, 7363, 7365, 7483, 7601, 7719, 7837,
256
- 7955, 8073, 8191, 8216, 8334, 8413, 8492, 8571,
257
- 8650, 8729, 8808, 8887, 8889, 8912, 8997, 9007,
258
- 9025
204
+ 1729, 1794, 1859, 1861, 1940, 2019, 2021, 2049,
205
+ 2074, 2083, 2087, 2089, 2091, 2093, 2095, 2097,
206
+ 2099, 2101, 2103, 2105, 2107, 2109, 2111, 2113,
207
+ 2115, 2117, 2119, 2121, 2123, 2125, 2127, 2129,
208
+ 2131, 2133, 2135, 2137, 2139, 2141, 2143, 2145,
209
+ 2150, 2152, 2154, 2156, 2158, 2160, 2162, 2164,
210
+ 2166, 2168, 2170, 2172, 2174, 2176, 2178, 2237,
211
+ 2239, 2241, 2243, 2245, 2247, 2249, 2283, 2285,
212
+ 2287, 2289, 2366, 2422, 2478, 2534, 2590, 2708,
213
+ 2826, 2944, 3062, 3180, 3298, 3375, 3377, 3462,
214
+ 3480, 3556, 3747, 3778, 3795, 3801, 3929, 4057,
215
+ 4082, 4177, 4295, 4297, 4319, 4341, 4363, 4422,
216
+ 4444, 4497, 4531, 4720, 4785, 4850, 4915, 4917,
217
+ 4974, 4991, 5067, 5158, 5167, 5176, 5178, 5180,
218
+ 5182, 5238, 5261, 5346, 5356, 5374
259
219
  ]
260
220
 
261
221
  class << self
@@ -440,13 +400,13 @@ self._re_scanner_indicies = [
440
400
  39, 39, 39, 39, 39, 39, 39, 39,
441
401
  39, 39, 39, 39, 40, 39, 39, 39,
442
402
  39, 39, 39, 39, 39, 39, 39, 39,
443
- 39, 40, 39, 39, 40, 40, 40, 40,
403
+ 39, 40, 40, 39, 40, 40, 40, 40,
444
404
  40, 40, 40, 40, 40, 40, 39, 39,
445
- 39, 39, 39, 39, 39, 41, 40, 40,
405
+ 39, 40, 39, 39, 39, 40, 40, 40,
446
406
  40, 40, 40, 40, 40, 40, 40, 40,
447
407
  40, 40, 40, 40, 40, 40, 40, 40,
448
408
  40, 40, 40, 40, 40, 40, 40, 39,
449
- 39, 39, 42, 40, 39, 41, 40, 40,
409
+ 39, 39, 41, 40, 39, 40, 40, 40,
450
410
  40, 40, 40, 40, 40, 40, 40, 40,
451
411
  40, 40, 40, 40, 40, 40, 40, 40,
452
412
  40, 40, 40, 40, 40, 40, 40, 39,
@@ -454,9 +414,9 @@ self._re_scanner_indicies = [
454
414
  39, 39, 39, 39, 39, 39, 39, 39,
455
415
  39, 39, 39, 39, 39, 39, 39, 40,
456
416
  39, 39, 39, 39, 39, 39, 39, 39,
457
- 39, 39, 39, 39, 40, 39, 39, 40,
417
+ 39, 39, 39, 39, 40, 40, 39, 40,
458
418
  40, 40, 40, 40, 40, 40, 40, 40,
459
- 40, 39, 39, 39, 39, 39, 39, 39,
419
+ 40, 39, 39, 39, 40, 39, 39, 39,
460
420
  40, 40, 40, 40, 40, 40, 40, 40,
461
421
  40, 40, 40, 40, 40, 40, 40, 40,
462
422
  40, 40, 40, 40, 40, 40, 40, 40,
@@ -464,338 +424,206 @@ self._re_scanner_indicies = [
464
424
  40, 40, 40, 40, 40, 40, 40, 40,
465
425
  40, 40, 40, 40, 40, 40, 40, 40,
466
426
  40, 40, 40, 40, 40, 40, 40, 40,
467
- 40, 40, 39, 39, 43, 39, 40, 40,
427
+ 40, 40, 39, 39, 42, 39, 40, 40,
468
428
  40, 40, 40, 39, 39, 39, 39, 39,
469
429
  39, 39, 39, 39, 39, 39, 39, 39,
470
430
  39, 39, 39, 39, 39, 40, 39, 39,
471
431
  39, 39, 39, 39, 39, 39, 39, 39,
472
- 39, 39, 40, 39, 39, 40, 40, 40,
432
+ 39, 39, 40, 40, 39, 40, 40, 40,
473
433
  40, 40, 40, 40, 40, 40, 40, 39,
474
- 39, 39, 39, 39, 39, 39, 40, 40,
475
- 40, 40, 40, 40, 44, 40, 40, 40,
476
- 40, 40, 40, 40, 40, 40, 40, 40,
477
- 40, 40, 40, 40, 40, 40, 40, 40,
478
- 39, 39, 39, 39, 40, 39, 40, 40,
479
- 40, 40, 40, 40, 44, 40, 40, 40,
480
- 40, 40, 40, 40, 40, 40, 40, 40,
481
- 40, 40, 40, 40, 40, 40, 40, 40,
482
- 39, 39, 43, 39, 40, 40, 40, 40,
483
- 40, 39, 39, 39, 39, 39, 39, 39,
484
- 39, 39, 39, 39, 39, 39, 39, 39,
485
- 39, 39, 39, 40, 39, 39, 39, 39,
486
- 39, 39, 39, 39, 39, 39, 39, 39,
487
- 40, 39, 39, 40, 40, 40, 40, 40,
488
- 40, 40, 40, 40, 40, 39, 39, 39,
489
- 39, 39, 39, 39, 40, 40, 40, 40,
490
- 45, 40, 40, 40, 40, 40, 40, 40,
491
- 40, 40, 40, 40, 40, 40, 40, 40,
492
- 40, 40, 40, 40, 40, 40, 39, 39,
493
- 39, 39, 40, 39, 40, 40, 40, 40,
494
- 45, 40, 40, 40, 40, 40, 40, 40,
434
+ 39, 39, 40, 39, 39, 39, 40, 40,
495
435
  40, 40, 40, 40, 40, 40, 40, 40,
496
- 40, 40, 40, 40, 40, 40, 39, 39,
497
- 43, 39, 40, 40, 40, 40, 40, 39,
498
- 39, 39, 39, 39, 39, 39, 39, 39,
499
- 39, 39, 39, 39, 39, 39, 39, 39,
500
- 39, 40, 39, 39, 39, 39, 39, 39,
501
- 39, 39, 39, 39, 39, 39, 40, 39,
502
- 39, 40, 40, 40, 40, 40, 40, 40,
503
- 40, 40, 40, 39, 39, 39, 46, 39,
504
- 39, 39, 40, 40, 40, 40, 40, 40,
505
- 40, 40, 40, 40, 40, 40, 40, 40,
506
- 40, 40, 40, 40, 40, 40, 40, 40,
507
- 40, 40, 40, 40, 39, 39, 39, 39,
508
- 40, 39, 40, 40, 40, 40, 40, 40,
509
- 40, 40, 40, 40, 40, 40, 40, 40,
510
- 40, 40, 40, 40, 40, 40, 40, 40,
511
- 40, 40, 40, 40, 39, 39, 43, 39,
512
- 47, 48, 49, 48, 49, 50, 51, 51,
513
- 51, 39, 52, 39, 51, 39, 53, 39,
514
- 43, 39, 54, 39, 53, 39, 55, 39,
515
- 53, 53, 39, 56, 39, 53, 53, 53,
516
- 39, 57, 39, 53, 53, 53, 53, 39,
517
- 40, 40, 40, 40, 40, 39, 39, 39,
518
- 39, 39, 39, 39, 39, 39, 39, 39,
519
- 39, 39, 39, 39, 39, 39, 39, 40,
520
- 39, 39, 39, 39, 39, 39, 39, 39,
521
- 39, 39, 39, 39, 40, 39, 39, 40,
522
436
  40, 40, 40, 40, 40, 40, 40, 40,
523
- 40, 39, 39, 39, 39, 39, 39, 39,
524
- 41, 40, 40, 40, 40, 40, 40, 40,
525
437
  40, 40, 40, 40, 40, 40, 40, 40,
438
+ 39, 39, 39, 39, 40, 39, 40, 40,
526
439
  40, 40, 40, 40, 40, 40, 40, 40,
527
- 40, 40, 39, 39, 39, 39, 40, 39,
528
- 41, 40, 40, 40, 40, 40, 40, 40,
529
440
  40, 40, 40, 40, 40, 40, 40, 40,
530
441
  40, 40, 40, 40, 40, 40, 40, 40,
531
- 40, 40, 39, 59, 59, 59, 59, 59,
532
- 59, 59, 59, 59, 59, 59, 59, 59,
533
- 59, 59, 59, 59, 59, 59, 59, 59,
534
- 59, 59, 59, 59, 59, 59, 59, 59,
535
- 59, 59, 59, 59, 59, 59, 59, 59,
536
- 59, 59, 59, 59, 59, 59, 59, 59,
537
- 59, 59, 59, 59, 59, 59, 59, 59,
538
- 59, 59, 59, 59, 59, 59, 59, 59,
539
- 59, 59, 59, 58, 60, 60, 60, 60,
540
- 60, 60, 60, 60, 60, 60, 60, 60,
541
- 60, 60, 60, 60, 60, 60, 60, 60,
542
- 60, 60, 60, 60, 60, 60, 60, 60,
543
- 60, 60, 60, 60, 60, 60, 60, 60,
544
- 60, 60, 60, 60, 60, 60, 60, 60,
545
- 60, 60, 60, 60, 60, 60, 60, 60,
546
- 60, 60, 60, 60, 60, 60, 60, 60,
547
- 60, 60, 60, 60, 58, 61, 61, 61,
548
- 61, 61, 61, 61, 61, 61, 61, 61,
549
- 61, 61, 61, 61, 61, 61, 61, 61,
550
- 61, 61, 61, 61, 61, 61, 61, 61,
551
- 61, 61, 61, 61, 61, 61, 61, 61,
552
- 61, 61, 61, 61, 61, 61, 61, 61,
553
- 61, 61, 61, 61, 61, 61, 61, 61,
554
- 61, 61, 61, 61, 61, 61, 61, 61,
555
- 61, 61, 61, 61, 61, 58, 62, 62,
556
- 62, 62, 62, 62, 62, 62, 62, 62,
557
- 62, 62, 62, 62, 62, 62, 62, 62,
558
- 62, 62, 62, 62, 62, 62, 62, 62,
559
- 62, 62, 62, 62, 62, 62, 62, 62,
560
- 62, 62, 62, 62, 62, 62, 62, 62,
561
- 62, 62, 62, 62, 62, 62, 62, 62,
562
- 62, 62, 62, 62, 62, 62, 62, 62,
563
- 62, 62, 62, 62, 62, 62, 58, 63,
564
- 63, 63, 63, 63, 63, 63, 63, 63,
565
- 63, 63, 63, 63, 63, 63, 63, 63,
566
- 63, 63, 63, 63, 63, 63, 63, 63,
567
- 63, 63, 63, 63, 63, 63, 63, 63,
568
- 63, 63, 63, 63, 63, 63, 63, 63,
569
- 63, 63, 63, 63, 63, 63, 63, 63,
570
- 63, 63, 63, 63, 63, 63, 63, 63,
571
- 63, 63, 63, 63, 63, 63, 63, 58,
572
- 64, 64, 64, 64, 64, 64, 64, 64,
573
- 64, 64, 64, 64, 64, 64, 64, 64,
574
- 64, 64, 64, 64, 64, 64, 64, 64,
575
- 64, 64, 64, 64, 64, 64, 64, 64,
576
- 64, 64, 64, 64, 64, 64, 64, 64,
577
- 64, 64, 64, 64, 64, 64, 64, 64,
578
- 64, 64, 64, 64, 64, 64, 64, 64,
579
- 64, 64, 64, 64, 64, 64, 64, 64,
580
- 58, 65, 65, 65, 65, 65, 65, 65,
581
- 65, 65, 65, 58, 58, 58, 58, 58,
582
- 58, 58, 65, 65, 65, 65, 65, 65,
583
- 65, 65, 65, 65, 65, 65, 65, 65,
584
- 65, 65, 65, 65, 65, 65, 65, 65,
585
- 65, 65, 65, 65, 58, 58, 58, 58,
586
- 58, 58, 65, 65, 65, 65, 65, 65,
587
- 65, 65, 65, 65, 65, 65, 65, 65,
588
- 65, 65, 65, 65, 65, 65, 65, 65,
589
- 65, 65, 65, 65, 58, 68, 67, 67,
590
- 67, 67, 67, 67, 67, 67, 67, 67,
591
- 67, 67, 67, 67, 67, 67, 67, 67,
592
- 67, 68, 68, 68, 68, 68, 68, 68,
593
- 68, 68, 68, 68, 68, 68, 68, 68,
594
- 68, 68, 68, 68, 68, 68, 68, 68,
595
- 68, 68, 68, 67, 67, 67, 67, 67,
596
- 67, 68, 68, 68, 68, 68, 68, 68,
597
- 68, 68, 68, 68, 68, 68, 68, 68,
598
- 68, 68, 68, 68, 68, 68, 68, 68,
599
- 68, 68, 68, 67, 68, 69, 67, 67,
600
- 67, 67, 67, 67, 67, 67, 67, 67,
601
- 67, 67, 67, 67, 67, 67, 67, 67,
602
- 68, 68, 68, 68, 68, 68, 68, 68,
603
- 68, 68, 68, 68, 68, 68, 68, 68,
604
- 68, 68, 68, 68, 68, 68, 68, 68,
605
- 68, 68, 67, 67, 67, 67, 67, 67,
606
- 68, 68, 68, 68, 68, 68, 68, 68,
607
- 68, 68, 68, 68, 68, 68, 68, 68,
608
- 68, 68, 68, 68, 68, 68, 68, 68,
609
- 68, 68, 67, 70, 67, 71, 67, 67,
610
- 72, 73, 74, 75, 67, 67, 76, 67,
611
- 67, 67, 67, 77, 67, 67, 67, 78,
612
- 67, 67, 79, 67, 80, 67, 81, 82,
613
- 67, 72, 73, 74, 75, 67, 67, 76,
614
- 67, 67, 67, 67, 77, 67, 67, 67,
615
- 78, 67, 67, 79, 67, 80, 67, 81,
616
- 82, 67, 83, 67, 67, 67, 67, 67,
617
- 67, 84, 67, 85, 67, 86, 67, 87,
618
- 67, 88, 67, 89, 67, 90, 67, 91,
619
- 67, 88, 67, 92, 67, 93, 67, 88,
620
- 67, 94, 67, 95, 67, 96, 67, 88,
621
- 67, 97, 67, 98, 67, 99, 67, 88,
622
- 67, 100, 67, 101, 67, 102, 67, 88,
623
- 67, 103, 67, 104, 67, 105, 67, 88,
624
- 67, 106, 67, 107, 67, 108, 67, 88,
625
- 67, 109, 67, 67, 110, 67, 111, 67,
626
- 102, 67, 112, 67, 102, 67, 113, 67,
627
- 114, 67, 115, 67, 88, 67, 116, 67,
628
- 107, 67, 117, 67, 118, 67, 88, 67,
629
- 75, 67, 119, 119, 119, 119, 119, 119,
630
- 119, 119, 119, 119, 119, 119, 119, 119,
442
+ 39, 44, 44, 44, 44, 44, 44, 44,
443
+ 44, 44, 44, 44, 44, 44, 44, 44,
444
+ 44, 44, 44, 44, 44, 44, 44, 44,
445
+ 44, 44, 44, 44, 44, 44, 44, 44,
446
+ 44, 44, 44, 44, 44, 44, 44, 44,
447
+ 44, 44, 44, 44, 44, 44, 44, 44,
448
+ 44, 44, 44, 44, 44, 44, 44, 44,
449
+ 44, 44, 44, 44, 44, 44, 44, 44,
450
+ 44, 43, 45, 45, 45, 45, 45, 45,
451
+ 45, 45, 45, 45, 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, 45, 45,
455
+ 45, 45, 45, 45, 45, 45, 45, 45,
456
+ 45, 45, 45, 45, 45, 45, 45, 45,
457
+ 45, 45, 45, 45, 45, 45, 45, 45,
458
+ 45, 45, 43, 47, 46, 50, 49, 49,
459
+ 49, 49, 49, 49, 49, 49, 49, 49,
460
+ 49, 49, 49, 49, 49, 49, 49, 49,
461
+ 49, 50, 50, 50, 50, 50, 50, 50,
462
+ 50, 50, 50, 50, 50, 50, 50, 50,
463
+ 50, 50, 50, 50, 50, 50, 50, 50,
464
+ 50, 50, 50, 49, 49, 49, 49, 49,
465
+ 49, 50, 50, 50, 50, 50, 50, 50,
466
+ 50, 50, 50, 50, 50, 50, 50, 50,
467
+ 50, 50, 50, 50, 50, 50, 50, 50,
468
+ 50, 50, 50, 49, 50, 51, 49, 49,
469
+ 49, 49, 49, 49, 49, 49, 49, 49,
470
+ 49, 49, 49, 49, 49, 49, 49, 49,
471
+ 50, 50, 50, 50, 50, 50, 50, 50,
472
+ 50, 50, 50, 50, 50, 50, 50, 50,
473
+ 50, 50, 50, 50, 50, 50, 50, 50,
474
+ 50, 50, 49, 49, 49, 49, 49, 49,
475
+ 50, 50, 50, 50, 50, 50, 50, 50,
476
+ 50, 50, 50, 50, 50, 50, 50, 50,
477
+ 50, 50, 50, 50, 50, 50, 50, 50,
478
+ 50, 50, 49, 52, 49, 53, 49, 49,
479
+ 54, 55, 56, 57, 49, 49, 58, 49,
480
+ 49, 49, 49, 59, 49, 49, 49, 60,
481
+ 49, 49, 61, 49, 62, 49, 63, 64,
482
+ 49, 54, 55, 56, 57, 49, 49, 58,
483
+ 49, 49, 49, 49, 59, 49, 49, 49,
484
+ 60, 49, 49, 61, 49, 62, 49, 63,
485
+ 64, 49, 65, 49, 49, 49, 49, 49,
486
+ 49, 66, 49, 67, 49, 68, 49, 69,
487
+ 49, 70, 49, 71, 49, 72, 49, 73,
488
+ 49, 70, 49, 74, 49, 75, 49, 70,
489
+ 49, 76, 49, 77, 49, 78, 49, 70,
490
+ 49, 79, 49, 80, 49, 81, 49, 70,
491
+ 49, 82, 49, 83, 49, 84, 49, 70,
492
+ 49, 85, 49, 86, 49, 87, 49, 70,
493
+ 49, 88, 49, 89, 49, 90, 49, 70,
494
+ 49, 91, 49, 49, 92, 49, 93, 49,
495
+ 84, 49, 94, 49, 84, 49, 95, 49,
496
+ 96, 49, 97, 49, 70, 49, 98, 49,
497
+ 89, 49, 99, 49, 100, 49, 70, 49,
498
+ 57, 49, 101, 101, 101, 101, 101, 101,
499
+ 101, 101, 101, 101, 101, 101, 101, 101,
500
+ 101, 101, 101, 101, 101, 101, 101, 101,
501
+ 101, 101, 101, 101, 49, 49, 49, 49,
502
+ 49, 49, 101, 101, 101, 101, 101, 101,
503
+ 101, 101, 101, 101, 101, 101, 101, 101,
504
+ 101, 101, 101, 101, 101, 101, 101, 101,
505
+ 101, 101, 101, 101, 49, 102, 49, 103,
506
+ 49, 104, 39, 107, 106, 108, 106, 109,
507
+ 39, 112, 111, 111, 111, 111, 111, 111,
508
+ 111, 111, 111, 111, 111, 111, 111, 111,
509
+ 111, 111, 111, 111, 111, 111, 111, 111,
510
+ 111, 111, 111, 111, 111, 111, 111, 111,
511
+ 111, 113, 111, 113, 111, 114, 111, 115,
512
+ 111, 116, 116, 116, 116, 116, 116, 116,
513
+ 116, 116, 116, 39, 39, 39, 39, 39,
514
+ 39, 39, 116, 116, 116, 116, 116, 116,
515
+ 39, 39, 39, 39, 39, 39, 39, 39,
516
+ 39, 39, 39, 39, 39, 39, 39, 39,
517
+ 39, 39, 39, 39, 39, 39, 39, 39,
518
+ 39, 39, 116, 116, 116, 116, 116, 116,
519
+ 39, 39, 39, 39, 39, 39, 39, 39,
520
+ 39, 39, 39, 39, 39, 39, 39, 39,
521
+ 39, 39, 39, 39, 117, 39, 118, 118,
522
+ 118, 118, 118, 118, 118, 118, 118, 118,
523
+ 39, 39, 39, 39, 39, 39, 39, 118,
524
+ 118, 118, 118, 118, 118, 39, 39, 39,
525
+ 39, 39, 39, 39, 39, 39, 39, 39,
526
+ 39, 39, 39, 39, 39, 39, 39, 39,
527
+ 39, 39, 39, 39, 39, 39, 39, 118,
528
+ 118, 118, 118, 118, 118, 39, 119, 119,
631
529
  119, 119, 119, 119, 119, 119, 119, 119,
632
- 119, 119, 119, 119, 67, 67, 67, 67,
633
- 67, 67, 119, 119, 119, 119, 119, 119,
634
- 119, 119, 119, 119, 119, 119, 119, 119,
635
- 119, 119, 119, 119, 119, 119, 119, 119,
636
- 119, 119, 119, 119, 67, 120, 67, 121,
637
- 67, 123, 123, 123, 123, 123, 123, 123,
638
- 123, 123, 123, 123, 123, 123, 123, 123,
639
- 123, 123, 123, 123, 123, 123, 123, 123,
640
- 123, 123, 123, 123, 123, 123, 123, 123,
641
- 123, 123, 123, 123, 123, 123, 123, 123,
642
- 123, 123, 123, 123, 123, 123, 123, 123,
643
- 123, 123, 123, 123, 123, 123, 123, 123,
644
- 123, 123, 123, 123, 123, 123, 123, 123,
645
- 123, 122, 124, 124, 124, 124, 124, 124,
646
- 124, 124, 124, 124, 124, 124, 124, 124,
647
- 124, 124, 124, 124, 124, 124, 124, 124,
648
- 124, 124, 124, 124, 124, 124, 124, 124,
649
- 124, 124, 124, 124, 124, 124, 124, 124,
650
- 124, 124, 124, 124, 124, 124, 124, 124,
651
- 124, 124, 124, 124, 124, 124, 124, 124,
652
- 124, 124, 124, 124, 124, 124, 124, 124,
653
- 124, 124, 122, 125, 125, 125, 125, 125,
654
- 125, 125, 125, 125, 125, 125, 125, 125,
655
- 125, 125, 125, 125, 125, 125, 125, 125,
656
- 125, 125, 125, 125, 125, 125, 125, 125,
657
- 125, 125, 125, 125, 125, 125, 125, 125,
658
- 125, 125, 125, 125, 125, 125, 125, 125,
659
- 125, 125, 125, 125, 125, 125, 125, 125,
660
- 125, 125, 125, 125, 125, 125, 125, 125,
661
- 125, 125, 125, 122, 126, 126, 126, 126,
662
- 126, 126, 126, 126, 126, 126, 126, 126,
663
- 126, 126, 126, 126, 126, 126, 126, 126,
664
- 126, 126, 126, 126, 126, 126, 126, 126,
665
- 126, 126, 126, 126, 126, 126, 126, 126,
666
- 126, 126, 126, 126, 126, 126, 126, 126,
667
- 126, 126, 126, 126, 126, 126, 126, 126,
668
- 126, 126, 126, 126, 126, 126, 126, 126,
669
- 126, 126, 126, 126, 122, 127, 127, 127,
670
- 127, 127, 127, 127, 127, 127, 127, 127,
671
- 127, 127, 127, 127, 127, 127, 127, 127,
672
- 127, 127, 127, 127, 127, 127, 127, 127,
673
- 127, 127, 127, 127, 127, 127, 127, 127,
674
- 127, 127, 127, 127, 127, 127, 127, 127,
675
- 127, 127, 127, 127, 127, 127, 127, 127,
676
- 127, 127, 127, 127, 127, 127, 127, 127,
677
- 127, 127, 127, 127, 127, 122, 128, 128,
678
- 128, 128, 128, 128, 128, 128, 128, 128,
679
- 128, 128, 128, 128, 128, 128, 128, 128,
680
- 128, 128, 128, 128, 128, 128, 128, 128,
681
- 128, 128, 128, 128, 128, 128, 128, 128,
682
- 128, 128, 128, 128, 128, 128, 128, 128,
683
- 128, 128, 128, 128, 128, 128, 128, 128,
684
- 128, 128, 128, 128, 128, 128, 128, 128,
685
- 128, 128, 128, 128, 128, 128, 122, 130,
686
- 129, 131, 129, 132, 132, 132, 132, 132,
687
- 132, 132, 132, 132, 132, 129, 129, 129,
688
- 129, 129, 129, 129, 132, 132, 132, 132,
689
- 132, 132, 129, 129, 129, 129, 129, 129,
690
- 129, 129, 129, 129, 129, 129, 129, 129,
691
- 129, 129, 129, 129, 129, 129, 129, 129,
692
- 129, 129, 129, 129, 132, 132, 132, 132,
693
- 132, 132, 129, 133, 39, 136, 135, 137,
694
- 135, 138, 39, 141, 140, 140, 140, 140,
695
- 140, 140, 140, 140, 140, 140, 140, 140,
696
- 140, 140, 140, 140, 140, 140, 140, 140,
697
- 140, 140, 140, 140, 140, 140, 140, 140,
698
- 140, 140, 140, 142, 140, 142, 140, 143,
699
- 140, 144, 140, 145, 145, 145, 145, 145,
700
- 145, 145, 145, 145, 145, 39, 39, 39,
701
- 39, 39, 39, 39, 145, 145, 145, 145,
702
- 145, 145, 39, 39, 39, 39, 39, 39,
703
- 39, 39, 39, 39, 39, 39, 39, 39,
704
- 39, 39, 39, 39, 39, 39, 39, 39,
705
- 39, 39, 39, 39, 145, 145, 145, 145,
706
- 145, 145, 39, 39, 39, 39, 39, 39,
530
+ 39, 39, 39, 39, 39, 39, 39, 119,
531
+ 119, 119, 119, 119, 119, 39, 39, 39,
707
532
  39, 39, 39, 39, 39, 39, 39, 39,
708
- 39, 39, 39, 39, 39, 39, 146, 39,
709
- 147, 147, 147, 147, 147, 147, 147, 147,
710
- 147, 147, 39, 39, 39, 39, 39, 39,
711
- 39, 147, 147, 147, 147, 147, 147, 39,
712
533
  39, 39, 39, 39, 39, 39, 39, 39,
534
+ 39, 39, 39, 39, 39, 39, 39, 119,
535
+ 119, 119, 119, 119, 119, 39, 120, 120,
536
+ 120, 120, 120, 120, 120, 120, 120, 120,
537
+ 39, 39, 39, 39, 39, 39, 39, 120,
538
+ 120, 120, 120, 120, 120, 39, 39, 39,
713
539
  39, 39, 39, 39, 39, 39, 39, 39,
714
540
  39, 39, 39, 39, 39, 39, 39, 39,
715
- 39, 147, 147, 147, 147, 147, 147, 39,
716
- 148, 148, 148, 148, 148, 148, 148, 148,
717
- 148, 148, 39, 39, 39, 39, 39, 39,
718
- 39, 148, 148, 148, 148, 148, 148, 39,
541
+ 39, 39, 39, 39, 39, 39, 39, 120,
542
+ 120, 120, 120, 120, 120, 39, 121, 121,
543
+ 121, 121, 121, 121, 121, 121, 121, 121,
544
+ 39, 39, 39, 39, 39, 39, 39, 121,
545
+ 121, 121, 121, 121, 121, 39, 39, 39,
719
546
  39, 39, 39, 39, 39, 39, 39, 39,
720
547
  39, 39, 39, 39, 39, 39, 39, 39,
548
+ 39, 39, 39, 39, 39, 39, 39, 121,
549
+ 121, 121, 121, 121, 121, 39, 117, 117,
550
+ 117, 117, 117, 39, 39, 39, 39, 39,
721
551
  39, 39, 39, 39, 39, 39, 39, 39,
722
- 39, 148, 148, 148, 148, 148, 148, 39,
723
- 149, 149, 149, 149, 149, 149, 149, 149,
724
- 149, 149, 39, 39, 39, 39, 39, 39,
725
- 39, 149, 149, 149, 149, 149, 149, 39,
552
+ 39, 39, 39, 39, 39, 117, 39, 39,
726
553
  39, 39, 39, 39, 39, 39, 39, 39,
554
+ 39, 39, 39, 39, 39, 122, 122, 122,
555
+ 122, 122, 122, 122, 122, 122, 122, 39,
556
+ 39, 39, 39, 39, 39, 39, 122, 122,
557
+ 122, 122, 122, 122, 39, 39, 39, 39,
727
558
  39, 39, 39, 39, 39, 39, 39, 39,
728
559
  39, 39, 39, 39, 39, 39, 39, 39,
729
- 39, 149, 149, 149, 149, 149, 149, 39,
730
- 150, 150, 150, 150, 150, 150, 150, 150,
731
- 150, 150, 39, 39, 39, 39, 39, 39,
732
- 39, 150, 150, 150, 150, 150, 150, 39,
560
+ 39, 39, 39, 39, 39, 39, 122, 122,
561
+ 122, 122, 122, 122, 39, 39, 39, 39,
733
562
  39, 39, 39, 39, 39, 39, 39, 39,
734
563
  39, 39, 39, 39, 39, 39, 39, 39,
564
+ 39, 39, 120, 39, 117, 117, 117, 117,
565
+ 117, 39, 39, 39, 39, 39, 39, 39,
735
566
  39, 39, 39, 39, 39, 39, 39, 39,
736
- 39, 150, 150, 150, 150, 150, 150, 39,
737
- 146, 146, 146, 146, 146, 39, 39, 39,
567
+ 39, 39, 39, 117, 39, 39, 39, 39,
738
568
  39, 39, 39, 39, 39, 39, 39, 39,
739
- 39, 39, 39, 39, 39, 39, 39, 146,
569
+ 39, 39, 39, 123, 123, 123, 123, 123,
570
+ 123, 123, 123, 123, 123, 39, 39, 39,
571
+ 39, 39, 39, 39, 123, 123, 123, 123,
572
+ 123, 123, 39, 39, 39, 39, 39, 39,
740
573
  39, 39, 39, 39, 39, 39, 39, 39,
741
- 39, 39, 39, 39, 39, 39, 39, 151,
742
- 151, 151, 151, 151, 151, 151, 151, 151,
743
- 151, 39, 39, 39, 39, 39, 39, 39,
744
- 151, 151, 151, 151, 151, 151, 39, 39,
745
574
  39, 39, 39, 39, 39, 39, 39, 39,
575
+ 39, 39, 39, 39, 123, 123, 123, 123,
576
+ 123, 123, 39, 39, 39, 39, 39, 39,
746
577
  39, 39, 39, 39, 39, 39, 39, 39,
747
578
  39, 39, 39, 39, 39, 39, 39, 39,
748
- 151, 151, 151, 151, 151, 151, 39, 39,
579
+ 120, 39, 117, 117, 117, 117, 117, 39,
749
580
  39, 39, 39, 39, 39, 39, 39, 39,
750
581
  39, 39, 39, 39, 39, 39, 39, 39,
751
- 39, 39, 39, 39, 149, 39, 146, 146,
752
- 146, 146, 146, 39, 39, 39, 39, 39,
582
+ 39, 117, 39, 39, 39, 39, 39, 39,
753
583
  39, 39, 39, 39, 39, 39, 39, 39,
754
- 39, 39, 39, 39, 39, 146, 39, 39,
584
+ 39, 124, 124, 124, 124, 124, 124, 124,
585
+ 124, 124, 124, 39, 39, 39, 39, 39,
586
+ 39, 39, 124, 124, 124, 124, 124, 124,
755
587
  39, 39, 39, 39, 39, 39, 39, 39,
756
- 39, 39, 39, 39, 39, 152, 152, 152,
757
- 152, 152, 152, 152, 152, 152, 152, 39,
758
- 39, 39, 39, 39, 39, 39, 152, 152,
759
- 152, 152, 152, 152, 39, 39, 39, 39,
760
588
  39, 39, 39, 39, 39, 39, 39, 39,
761
589
  39, 39, 39, 39, 39, 39, 39, 39,
762
- 39, 39, 39, 39, 39, 39, 152, 152,
763
- 152, 152, 152, 152, 39, 39, 39, 39,
590
+ 39, 39, 124, 124, 124, 124, 124, 124,
764
591
  39, 39, 39, 39, 39, 39, 39, 39,
765
592
  39, 39, 39, 39, 39, 39, 39, 39,
766
- 39, 39, 149, 39, 146, 146, 146, 146,
767
- 146, 39, 39, 39, 39, 39, 39, 39,
593
+ 39, 39, 39, 39, 39, 39, 120, 39,
594
+ 117, 117, 117, 117, 117, 39, 39, 39,
768
595
  39, 39, 39, 39, 39, 39, 39, 39,
769
- 39, 39, 39, 146, 39, 39, 39, 39,
770
- 39, 39, 39, 39, 39, 39, 39, 39,
771
- 39, 39, 39, 153, 153, 153, 153, 153,
772
- 153, 153, 153, 153, 153, 39, 39, 39,
773
- 39, 39, 39, 39, 153, 153, 153, 153,
774
- 153, 153, 39, 39, 39, 39, 39, 39,
596
+ 39, 39, 39, 39, 39, 39, 39, 117,
775
597
  39, 39, 39, 39, 39, 39, 39, 39,
598
+ 39, 39, 39, 39, 39, 39, 39, 125,
599
+ 125, 125, 125, 125, 125, 125, 125, 125,
600
+ 125, 39, 39, 39, 39, 39, 39, 39,
601
+ 125, 125, 125, 125, 125, 125, 39, 39,
776
602
  39, 39, 39, 39, 39, 39, 39, 39,
777
- 39, 39, 39, 39, 153, 153, 153, 153,
778
- 153, 153, 39, 39, 39, 39, 39, 39,
779
603
  39, 39, 39, 39, 39, 39, 39, 39,
780
604
  39, 39, 39, 39, 39, 39, 39, 39,
781
- 149, 39, 146, 146, 146, 146, 146, 39,
605
+ 125, 125, 125, 125, 125, 125, 39, 39,
782
606
  39, 39, 39, 39, 39, 39, 39, 39,
783
607
  39, 39, 39, 39, 39, 39, 39, 39,
784
- 39, 146, 39, 39, 39, 39, 39, 39,
608
+ 39, 39, 39, 39, 120, 39, 117, 117,
609
+ 117, 117, 117, 39, 39, 39, 39, 39,
785
610
  39, 39, 39, 39, 39, 39, 39, 39,
786
- 39, 154, 154, 154, 154, 154, 154, 154,
787
- 154, 154, 154, 39, 39, 39, 39, 39,
788
- 39, 39, 154, 154, 154, 154, 154, 154,
611
+ 39, 39, 39, 39, 39, 117, 39, 39,
789
612
  39, 39, 39, 39, 39, 39, 39, 39,
613
+ 39, 39, 39, 39, 39, 126, 126, 126,
614
+ 126, 126, 126, 126, 126, 126, 126, 39,
615
+ 39, 39, 39, 39, 39, 39, 126, 126,
616
+ 126, 126, 126, 126, 39, 39, 39, 39,
790
617
  39, 39, 39, 39, 39, 39, 39, 39,
791
618
  39, 39, 39, 39, 39, 39, 39, 39,
792
- 39, 39, 154, 154, 154, 154, 154, 154,
619
+ 39, 39, 39, 39, 39, 39, 126, 126,
620
+ 126, 126, 126, 126, 39, 39, 39, 39,
793
621
  39, 39, 39, 39, 39, 39, 39, 39,
794
622
  39, 39, 39, 39, 39, 39, 39, 39,
795
- 39, 39, 39, 39, 39, 39, 149, 39,
796
- 146, 146, 146, 146, 146, 39, 39, 39,
623
+ 39, 39, 120, 39, 117, 117, 117, 117,
624
+ 117, 39, 39, 39, 39, 39, 39, 39,
797
625
  39, 39, 39, 39, 39, 39, 39, 39,
798
- 39, 39, 39, 39, 39, 39, 39, 146,
626
+ 39, 39, 39, 117, 39, 39, 39, 39,
799
627
  39, 39, 39, 39, 39, 39, 39, 39,
800
628
  39, 39, 39, 39, 39, 39, 39, 39,
801
629
  39, 39, 39, 39, 39, 39, 39, 39,
@@ -807,600 +635,276 @@ self._re_scanner_indicies = [
807
635
  39, 39, 39, 39, 39, 39, 39, 39,
808
636
  39, 39, 39, 39, 39, 39, 39, 39,
809
637
  39, 39, 39, 39, 39, 39, 39, 39,
810
- 39, 39, 39, 39, 149, 39, 156, 156,
811
- 156, 156, 156, 156, 156, 156, 156, 156,
812
- 155, 155, 155, 155, 155, 155, 155, 156,
813
- 156, 156, 156, 156, 156, 155, 155, 155,
638
+ 120, 39, 128, 128, 128, 128, 128, 128,
639
+ 128, 128, 128, 128, 127, 127, 127, 127,
640
+ 127, 127, 127, 128, 128, 128, 128, 128,
641
+ 128, 127, 127, 127, 127, 127, 127, 127,
642
+ 127, 127, 127, 127, 127, 127, 127, 127,
643
+ 127, 127, 127, 127, 127, 127, 127, 127,
644
+ 127, 127, 127, 128, 128, 128, 128, 128,
645
+ 128, 127, 127, 127, 127, 127, 127, 127,
646
+ 127, 127, 127, 127, 127, 127, 127, 127,
647
+ 127, 127, 127, 127, 127, 39, 127, 130,
648
+ 129, 131, 129, 129, 129, 129, 129, 129,
649
+ 129, 129, 132, 132, 132, 132, 132, 132,
650
+ 132, 132, 132, 132, 129, 129, 129, 129,
651
+ 129, 129, 129, 132, 132, 132, 132, 132,
652
+ 132, 132, 132, 132, 132, 132, 132, 132,
653
+ 132, 132, 132, 132, 132, 132, 132, 132,
654
+ 132, 132, 132, 132, 132, 129, 129, 129,
655
+ 129, 132, 129, 132, 132, 132, 132, 132,
656
+ 132, 132, 132, 132, 132, 132, 132, 132,
657
+ 132, 132, 132, 132, 132, 132, 132, 132,
658
+ 132, 132, 132, 132, 132, 129, 130, 129,
659
+ 129, 129, 129, 129, 129, 133, 133, 133,
660
+ 133, 133, 133, 133, 133, 133, 133, 129,
661
+ 134, 134, 134, 134, 134, 134, 134, 134,
662
+ 134, 134, 129, 129, 129, 129, 131, 129,
663
+ 129, 134, 134, 134, 134, 134, 134, 134,
664
+ 134, 134, 134, 134, 134, 134, 134, 134,
665
+ 134, 134, 134, 134, 134, 134, 134, 134,
666
+ 134, 134, 134, 129, 129, 129, 129, 134,
667
+ 129, 134, 134, 134, 134, 134, 134, 134,
668
+ 134, 134, 134, 134, 134, 134, 134, 134,
669
+ 134, 134, 134, 134, 134, 134, 134, 134,
670
+ 134, 134, 134, 129, 135, 135, 135, 135,
671
+ 135, 135, 135, 135, 135, 135, 135, 135,
672
+ 135, 135, 135, 135, 135, 135, 135, 135,
673
+ 135, 135, 135, 135, 135, 135, 135, 135,
674
+ 135, 135, 136, 136, 136, 136, 136, 136,
675
+ 136, 136, 136, 136, 136, 136, 136, 136,
676
+ 136, 136, 137, 137, 137, 137, 137, 34,
677
+ 34, 34, 34, 34, 34, 34, 34, 34,
678
+ 34, 34, 34, 138, 138, 138, 138, 138,
679
+ 138, 138, 138, 139, 139, 139, 139, 139,
680
+ 138, 138, 138, 138, 138, 138, 138, 138,
681
+ 138, 138, 138, 138, 138, 138, 138, 138,
682
+ 138, 138, 140, 141, 141, 142, 143, 141,
683
+ 141, 141, 144, 145, 146, 147, 141, 141,
684
+ 148, 141, 141, 141, 141, 141, 141, 141,
685
+ 141, 141, 141, 141, 141, 141, 141, 141,
686
+ 141, 149, 141, 141, 141, 141, 141, 141,
687
+ 141, 141, 141, 141, 141, 141, 141, 141,
688
+ 141, 141, 141, 141, 141, 141, 141, 141,
689
+ 141, 141, 141, 141, 141, 150, 151, 34,
690
+ 152, 141, 141, 141, 141, 141, 141, 141,
691
+ 141, 141, 141, 141, 141, 141, 141, 141,
692
+ 141, 141, 141, 141, 141, 141, 141, 141,
693
+ 141, 141, 141, 141, 141, 36, 153, 34,
694
+ 141, 138, 34, 135, 135, 135, 135, 135,
695
+ 135, 135, 135, 135, 135, 135, 135, 135,
696
+ 135, 135, 135, 135, 135, 135, 135, 135,
697
+ 135, 135, 135, 135, 135, 135, 135, 135,
698
+ 135, 154, 136, 136, 136, 136, 136, 136,
699
+ 136, 136, 136, 136, 136, 136, 136, 136,
700
+ 136, 136, 154, 137, 137, 137, 137, 137,
701
+ 154, 138, 138, 138, 138, 138, 138, 138,
702
+ 138, 138, 138, 138, 138, 138, 138, 138,
703
+ 138, 138, 138, 138, 138, 138, 138, 138,
704
+ 138, 138, 138, 138, 138, 138, 138, 138,
705
+ 154, 154, 154, 154, 154, 154, 154, 154,
706
+ 154, 154, 154, 154, 154, 154, 154, 154,
707
+ 154, 154, 154, 154, 154, 154, 154, 154,
708
+ 154, 154, 154, 154, 154, 154, 154, 154,
709
+ 154, 154, 154, 154, 154, 154, 154, 154,
710
+ 154, 154, 154, 154, 154, 154, 154, 154,
711
+ 154, 154, 154, 154, 154, 154, 154, 154,
712
+ 154, 154, 154, 154, 154, 154, 154, 154,
713
+ 154, 154, 154, 154, 154, 154, 154, 154,
714
+ 154, 154, 154, 154, 154, 154, 154, 154,
715
+ 154, 154, 154, 154, 154, 154, 154, 154,
716
+ 154, 154, 154, 154, 154, 154, 154, 138,
717
+ 154, 138, 138, 138, 138, 138, 138, 138,
718
+ 138, 139, 139, 139, 139, 139, 138, 138,
719
+ 138, 138, 138, 138, 138, 138, 138, 138,
720
+ 138, 138, 138, 138, 138, 138, 138, 138,
721
+ 140, 155, 155, 155, 155, 155, 155, 155,
814
722
  155, 155, 155, 155, 155, 155, 155, 155,
815
723
  155, 155, 155, 155, 155, 155, 155, 155,
816
- 155, 155, 155, 155, 155, 155, 155, 156,
817
- 156, 156, 156, 156, 156, 155, 155, 155,
818
724
  155, 155, 155, 155, 155, 155, 155, 155,
819
725
  155, 155, 155, 155, 155, 155, 155, 155,
820
- 155, 157, 155, 159, 159, 159, 159, 159,
821
- 158, 158, 158, 158, 158, 158, 158, 158,
822
- 158, 158, 158, 158, 158, 158, 158, 158,
823
- 158, 158, 159, 158, 158, 158, 158, 158,
824
- 158, 158, 158, 158, 158, 158, 158, 158,
825
- 158, 158, 160, 160, 160, 160, 160, 160,
826
- 160, 160, 160, 160, 158, 158, 158, 158,
827
- 158, 158, 158, 160, 160, 160, 160, 160,
828
- 160, 158, 158, 158, 158, 158, 158, 158,
829
- 158, 158, 158, 158, 158, 158, 158, 158,
830
- 158, 158, 158, 158, 158, 158, 158, 158,
831
- 158, 158, 158, 160, 160, 160, 160, 160,
832
- 160, 158, 158, 158, 158, 158, 158, 158,
726
+ 155, 155, 155, 155, 155, 155, 155, 155,
727
+ 155, 155, 155, 155, 155, 155, 155, 155,
728
+ 155, 155, 155, 155, 155, 155, 155, 155,
729
+ 155, 155, 155, 155, 155, 155, 155, 155,
730
+ 155, 155, 155, 155, 155, 155, 155, 155,
731
+ 155, 155, 155, 155, 155, 155, 155, 155,
732
+ 155, 155, 155, 155, 155, 155, 155, 138,
733
+ 155, 140, 140, 140, 140, 140, 155, 155,
734
+ 155, 155, 155, 155, 155, 155, 155, 155,
735
+ 155, 155, 155, 155, 155, 155, 155, 155,
736
+ 140, 155, 141, 141, 141, 154, 141, 141,
737
+ 141, 154, 154, 154, 154, 141, 141, 154,
738
+ 141, 141, 141, 141, 141, 141, 141, 141,
739
+ 141, 141, 141, 141, 141, 141, 141, 141,
740
+ 154, 141, 141, 141, 141, 141, 141, 141,
741
+ 141, 141, 141, 141, 141, 141, 141, 141,
742
+ 141, 141, 141, 141, 141, 141, 141, 141,
743
+ 141, 141, 141, 141, 154, 154, 154, 154,
744
+ 141, 141, 141, 141, 141, 141, 141, 141,
745
+ 141, 141, 141, 141, 141, 141, 141, 141,
746
+ 141, 141, 141, 141, 141, 141, 141, 141,
747
+ 141, 141, 141, 141, 154, 154, 154, 141,
748
+ 154, 9, 8, 8, 8, 8, 8, 8,
749
+ 8, 8, 8, 8, 8, 8, 8, 8,
750
+ 8, 8, 8, 8, 8, 8, 8, 8,
751
+ 142, 142, 142, 8, 142, 142, 142, 8,
752
+ 8, 8, 8, 142, 142, 8, 142, 142,
753
+ 142, 142, 142, 142, 142, 142, 142, 142,
754
+ 142, 142, 142, 142, 142, 142, 8, 142,
755
+ 142, 142, 142, 142, 142, 142, 142, 142,
756
+ 142, 142, 142, 142, 142, 142, 142, 142,
757
+ 142, 142, 142, 142, 142, 142, 142, 142,
758
+ 142, 142, 8, 8, 8, 8, 142, 142,
759
+ 142, 142, 142, 142, 142, 142, 142, 142,
760
+ 142, 142, 142, 142, 142, 142, 142, 142,
761
+ 142, 142, 142, 142, 142, 142, 142, 142,
762
+ 142, 142, 8, 8, 8, 142, 8, 157,
763
+ 156, 159, 158, 158, 158, 158, 158, 158,
833
764
  158, 158, 158, 158, 158, 158, 158, 158,
834
- 158, 158, 158, 158, 158, 158, 158, 161,
835
- 158, 163, 163, 163, 163, 163, 162, 162,
836
- 162, 162, 162, 162, 162, 162, 162, 162,
765
+ 158, 158, 158, 158, 158, 159, 158, 161,
766
+ 160, 160, 160, 160, 160, 160, 160, 160,
767
+ 160, 160, 160, 160, 160, 160, 160, 160,
768
+ 160, 160, 160, 161, 160, 163, 162, 162,
837
769
  162, 162, 162, 162, 162, 162, 162, 162,
838
- 163, 162, 162, 162, 162, 162, 162, 162,
839
770
  162, 162, 162, 162, 162, 162, 162, 162,
840
- 162, 162, 162, 162, 162, 162, 162, 162,
841
- 162, 162, 162, 162, 162, 162, 162, 162,
842
- 162, 162, 162, 162, 162, 162, 162, 162,
843
- 162, 162, 162, 162, 162, 162, 162, 162,
844
- 162, 162, 162, 162, 162, 162, 162, 162,
845
- 162, 162, 162, 162, 162, 162, 162, 162,
846
- 162, 162, 162, 162, 162, 162, 162, 162,
847
- 162, 162, 162, 162, 162, 162, 162, 162,
848
- 162, 162, 162, 162, 162, 162, 162, 162,
849
- 162, 162, 162, 162, 162, 161, 162, 165,
850
- 164, 166, 164, 164, 164, 164, 164, 164,
851
- 164, 164, 167, 167, 167, 167, 167, 167,
852
- 167, 167, 167, 167, 164, 164, 164, 164,
853
- 164, 164, 164, 167, 167, 167, 167, 167,
854
- 167, 167, 167, 167, 167, 167, 167, 167,
855
- 167, 167, 167, 167, 167, 167, 167, 167,
856
- 167, 167, 167, 167, 167, 164, 164, 164,
857
- 164, 167, 164, 167, 167, 167, 167, 167,
858
- 167, 167, 167, 167, 167, 167, 167, 167,
859
- 167, 167, 167, 167, 167, 167, 167, 167,
860
- 167, 167, 167, 167, 167, 164, 165, 164,
861
- 164, 164, 164, 164, 164, 168, 168, 168,
862
- 168, 168, 168, 168, 168, 168, 168, 164,
863
- 169, 169, 169, 169, 169, 169, 169, 169,
864
- 169, 169, 164, 164, 164, 164, 166, 164,
865
- 164, 169, 169, 169, 169, 169, 169, 169,
866
- 169, 169, 169, 169, 169, 169, 169, 169,
867
- 169, 169, 169, 169, 169, 169, 169, 169,
868
- 169, 169, 169, 164, 164, 164, 164, 169,
869
- 164, 169, 169, 169, 169, 169, 169, 169,
870
- 169, 169, 169, 169, 169, 169, 169, 169,
871
- 169, 169, 169, 169, 169, 169, 169, 169,
872
- 169, 169, 169, 164, 170, 170, 170, 170,
873
- 170, 170, 170, 170, 170, 170, 170, 170,
874
- 170, 170, 170, 170, 170, 170, 170, 170,
875
- 170, 170, 170, 170, 170, 170, 170, 170,
876
- 170, 170, 171, 171, 171, 171, 171, 171,
877
- 171, 171, 171, 171, 171, 171, 171, 171,
878
- 171, 171, 172, 172, 172, 172, 172, 34,
879
- 34, 34, 34, 34, 34, 34, 34, 34,
880
- 34, 34, 34, 173, 173, 173, 173, 173,
881
- 173, 173, 173, 174, 174, 174, 174, 174,
882
- 173, 173, 173, 173, 173, 173, 173, 173,
883
- 173, 173, 173, 173, 173, 173, 173, 173,
884
- 173, 173, 175, 176, 176, 177, 178, 176,
885
- 176, 176, 179, 180, 181, 182, 176, 176,
886
- 183, 176, 176, 176, 176, 176, 176, 176,
887
- 176, 176, 176, 176, 176, 176, 176, 176,
888
- 176, 184, 176, 176, 176, 176, 176, 176,
889
- 176, 176, 176, 176, 176, 176, 176, 176,
890
- 176, 176, 176, 176, 176, 176, 176, 176,
891
- 176, 176, 176, 176, 176, 185, 186, 34,
892
- 187, 176, 176, 176, 176, 176, 176, 176,
893
- 176, 176, 176, 176, 176, 176, 176, 176,
894
- 176, 176, 176, 176, 176, 176, 176, 176,
895
- 176, 176, 176, 176, 176, 36, 188, 34,
896
- 176, 173, 34, 170, 170, 170, 170, 170,
897
- 170, 170, 170, 170, 170, 170, 170, 170,
898
- 170, 170, 170, 170, 170, 170, 170, 170,
899
- 170, 170, 170, 170, 170, 170, 170, 170,
900
- 170, 189, 171, 171, 171, 171, 171, 171,
901
- 171, 171, 171, 171, 171, 171, 171, 171,
902
- 171, 171, 189, 172, 172, 172, 172, 172,
903
- 189, 173, 173, 173, 173, 173, 173, 173,
904
- 173, 173, 173, 173, 173, 173, 173, 173,
905
- 173, 173, 173, 173, 173, 173, 173, 173,
771
+ 162, 163, 162, 165, 165, 164, 164, 164,
772
+ 164, 165, 164, 164, 164, 166, 164, 164,
773
+ 164, 164, 164, 164, 164, 164, 164, 164,
774
+ 164, 164, 164, 164, 165, 164, 164, 164,
775
+ 164, 164, 164, 164, 165, 164, 164, 164,
776
+ 164, 167, 164, 164, 164, 167, 164, 164,
777
+ 164, 164, 164, 164, 164, 164, 164, 164,
778
+ 164, 164, 164, 164, 165, 164, 169, 168,
779
+ 168, 168, 168, 168, 168, 168, 168, 168,
780
+ 168, 168, 168, 168, 168, 168, 168, 168,
781
+ 168, 168, 169, 168, 170, 39, 39, 39,
782
+ 170, 39, 39, 39, 39, 39, 39, 39,
783
+ 39, 39, 170, 170, 39, 39, 39, 170,
784
+ 170, 39, 39, 39, 39, 39, 39, 39,
785
+ 39, 39, 39, 39, 170, 39, 39, 39,
786
+ 170, 39, 39, 39, 39, 39, 39, 39,
787
+ 39, 39, 39, 170, 39, 39, 39, 170,
788
+ 39, 171, 39, 39, 39, 39, 39, 39,
789
+ 39, 39, 39, 39, 39, 39, 39, 39,
790
+ 39, 39, 39, 39, 39, 39, 39, 39,
791
+ 39, 39, 39, 39, 39, 39, 39, 39,
792
+ 39, 171, 39, 172, 172, 172, 172, 172,
793
+ 172, 172, 172, 172, 172, 172, 172, 172,
794
+ 172, 172, 172, 172, 172, 172, 172, 172,
795
+ 172, 172, 172, 172, 172, 172, 172, 172,
796
+ 172, 173, 173, 173, 173, 173, 173, 173,
906
797
  173, 173, 173, 173, 173, 173, 173, 173,
798
+ 173, 174, 174, 174, 174, 174, 44, 44,
799
+ 44, 44, 44, 44, 44, 44, 44, 44,
800
+ 44, 44, 44, 44, 44, 44, 44, 44,
801
+ 44, 44, 44, 44, 44, 44, 44, 44,
802
+ 44, 44, 44, 44, 44, 44, 44, 44,
803
+ 44, 44, 44, 44, 44, 44, 44, 44,
804
+ 44, 44, 44, 44, 44, 175, 44, 176,
805
+ 44, 175, 175, 175, 175, 44, 177, 175,
806
+ 44, 44, 44, 44, 44, 44, 44, 44,
807
+ 44, 44, 44, 44, 44, 44, 44, 44,
808
+ 175, 44, 44, 44, 44, 44, 44, 44,
809
+ 44, 44, 44, 44, 44, 44, 44, 44,
810
+ 44, 44, 44, 44, 44, 44, 44, 44,
811
+ 44, 44, 44, 44, 178, 179, 180, 181,
812
+ 44, 44, 44, 44, 44, 44, 44, 44,
813
+ 44, 44, 44, 44, 44, 44, 44, 44,
814
+ 44, 44, 44, 44, 44, 44, 44, 44,
815
+ 44, 44, 44, 44, 175, 175, 175, 44,
816
+ 44, 44, 44, 44, 44, 44, 44, 44,
817
+ 44, 44, 44, 44, 44, 44, 44, 44,
818
+ 44, 44, 44, 44, 44, 44, 44, 44,
819
+ 44, 44, 44, 44, 44, 44, 44, 44,
820
+ 44, 44, 44, 44, 44, 44, 44, 44,
821
+ 44, 44, 44, 44, 44, 44, 44, 44,
822
+ 44, 44, 44, 44, 44, 44, 44, 44,
823
+ 44, 44, 44, 44, 44, 44, 44, 44,
824
+ 182, 45, 45, 45, 45, 45, 45, 45,
825
+ 45, 45, 45, 45, 45, 45, 45, 45,
826
+ 45, 45, 45, 45, 45, 45, 45, 45,
827
+ 45, 45, 45, 45, 45, 45, 45, 45,
828
+ 45, 45, 45, 45, 45, 45, 45, 45,
829
+ 45, 45, 45, 45, 45, 45, 45, 45,
830
+ 45, 45, 45, 45, 45, 45, 45, 45,
831
+ 45, 45, 45, 45, 45, 45, 45, 45,
832
+ 45, 182, 183, 183, 183, 183, 183, 183,
833
+ 183, 183, 183, 183, 183, 183, 183, 183,
834
+ 183, 183, 183, 183, 183, 183, 183, 183,
835
+ 183, 183, 183, 183, 183, 183, 183, 183,
836
+ 183, 183, 183, 183, 183, 183, 183, 183,
837
+ 183, 183, 183, 183, 183, 183, 183, 183,
838
+ 183, 183, 183, 183, 183, 183, 183, 183,
839
+ 183, 183, 183, 183, 183, 183, 183, 183,
840
+ 183, 183, 182, 184, 182, 186, 185, 185,
841
+ 185, 185, 185, 185, 185, 185, 185, 185,
842
+ 185, 185, 185, 185, 185, 185, 185, 185,
843
+ 185, 185, 185, 185, 185, 185, 185, 185,
844
+ 185, 185, 185, 185, 185, 185, 185, 185,
845
+ 185, 185, 185, 185, 185, 185, 185, 185,
846
+ 185, 185, 185, 185, 185, 185, 185, 185,
847
+ 185, 185, 185, 185, 187, 185, 190, 189,
907
848
  189, 189, 189, 189, 189, 189, 189, 189,
908
- 189, 189, 189, 189, 189, 189, 189, 189,
909
- 189, 189, 189, 189, 189, 189, 189, 189,
910
- 189, 189, 189, 189, 189, 189, 189, 189,
911
- 189, 189, 189, 189, 189, 189, 189, 189,
912
- 189, 189, 189, 189, 189, 189, 189, 189,
913
- 189, 189, 189, 189, 189, 189, 189, 189,
914
- 189, 189, 189, 189, 189, 189, 189, 189,
915
- 189, 189, 189, 189, 189, 189, 189, 189,
916
- 189, 189, 189, 189, 189, 189, 189, 189,
917
- 189, 189, 189, 189, 189, 189, 189, 189,
918
- 189, 189, 189, 189, 189, 189, 189, 173,
919
- 189, 173, 173, 173, 173, 173, 173, 173,
920
- 173, 174, 174, 174, 174, 174, 173, 173,
921
- 173, 173, 173, 173, 173, 173, 173, 173,
922
- 173, 173, 173, 173, 173, 173, 173, 173,
923
- 175, 190, 190, 190, 190, 190, 190, 190,
924
- 190, 190, 190, 190, 190, 190, 190, 190,
925
- 190, 190, 190, 190, 190, 190, 190, 190,
926
- 190, 190, 190, 190, 190, 190, 190, 190,
927
- 190, 190, 190, 190, 190, 190, 190, 190,
928
- 190, 190, 190, 190, 190, 190, 190, 190,
929
- 190, 190, 190, 190, 190, 190, 190, 190,
930
- 190, 190, 190, 190, 190, 190, 190, 190,
931
- 190, 190, 190, 190, 190, 190, 190, 190,
932
- 190, 190, 190, 190, 190, 190, 190, 190,
933
- 190, 190, 190, 190, 190, 190, 190, 190,
934
- 190, 190, 190, 190, 190, 190, 190, 173,
935
- 190, 175, 175, 175, 175, 175, 190, 190,
936
- 190, 190, 190, 190, 190, 190, 190, 190,
937
- 190, 190, 190, 190, 190, 190, 190, 190,
938
- 175, 190, 176, 176, 176, 189, 176, 176,
939
- 176, 189, 189, 189, 189, 176, 176, 189,
940
- 176, 176, 176, 176, 176, 176, 176, 176,
941
- 176, 176, 176, 176, 176, 176, 176, 176,
942
- 189, 176, 176, 176, 176, 176, 176, 176,
943
- 176, 176, 176, 176, 176, 176, 176, 176,
944
- 176, 176, 176, 176, 176, 176, 176, 176,
945
- 176, 176, 176, 176, 189, 189, 189, 189,
946
- 176, 176, 176, 176, 176, 176, 176, 176,
947
- 176, 176, 176, 176, 176, 176, 176, 176,
948
- 176, 176, 176, 176, 176, 176, 176, 176,
949
- 176, 176, 176, 176, 189, 189, 189, 176,
950
- 189, 9, 8, 8, 8, 8, 8, 8,
951
- 8, 8, 8, 8, 8, 8, 8, 8,
952
- 8, 8, 8, 8, 8, 8, 8, 8,
953
- 177, 177, 177, 8, 177, 177, 177, 8,
954
- 8, 8, 8, 177, 177, 8, 177, 177,
955
- 177, 177, 177, 177, 177, 177, 177, 177,
956
- 177, 177, 177, 177, 177, 177, 8, 177,
957
- 177, 177, 177, 177, 177, 177, 177, 177,
958
- 177, 177, 177, 177, 177, 177, 177, 177,
959
- 177, 177, 177, 177, 177, 177, 177, 177,
960
- 177, 177, 8, 8, 8, 8, 177, 177,
961
- 177, 177, 177, 177, 177, 177, 177, 177,
962
- 177, 177, 177, 177, 177, 177, 177, 177,
963
- 177, 177, 177, 177, 177, 177, 177, 177,
964
- 177, 177, 8, 8, 8, 177, 8, 192,
965
- 191, 194, 193, 193, 193, 193, 193, 193,
849
+ 189, 189, 191, 189, 189, 192, 189, 194,
850
+ 194, 194, 194, 194, 194, 194, 194, 194,
851
+ 194, 193, 193, 193, 193, 193, 193, 193,
852
+ 194, 194, 194, 193, 193, 193, 194, 193,
853
+ 193, 193, 194, 193, 194, 193, 193, 193,
854
+ 193, 194, 193, 193, 193, 193, 193, 194,
855
+ 193, 194, 193, 193, 193, 193, 193, 193,
856
+ 193, 193, 194, 193, 193, 193, 194, 193,
857
+ 193, 193, 194, 193, 193, 193, 193, 193,
966
858
  193, 193, 193, 193, 193, 193, 193, 193,
967
- 193, 193, 193, 193, 193, 194, 193, 196,
968
- 195, 195, 195, 195, 195, 195, 195, 195,
969
- 195, 195, 195, 195, 195, 195, 195, 195,
970
- 195, 195, 195, 196, 195, 198, 197, 197,
971
- 197, 197, 197, 197, 197, 197, 197, 197,
972
- 197, 197, 197, 197, 197, 197, 197, 197,
973
- 197, 198, 197, 200, 200, 199, 201, 199,
974
- 199, 200, 201, 199, 199, 202, 199, 199,
975
- 199, 199, 199, 199, 201, 201, 199, 199,
976
- 199, 201, 201, 199, 200, 199, 199, 199,
977
- 199, 199, 199, 199, 200, 199, 201, 199,
978
- 199, 203, 201, 199, 199, 203, 199, 199,
979
- 199, 199, 199, 199, 199, 201, 199, 199,
980
- 199, 201, 199, 199, 200, 199, 205, 204,
981
- 204, 204, 204, 204, 204, 204, 204, 204,
982
- 204, 204, 204, 204, 204, 204, 204, 204,
983
- 204, 204, 205, 204, 206, 39, 39, 39,
984
- 39, 39, 39, 39, 39, 39, 39, 39,
985
- 39, 39, 39, 39, 39, 39, 39, 39,
986
- 39, 39, 39, 39, 39, 39, 39, 39,
987
- 39, 39, 39, 39, 206, 39, 208, 208,
988
- 208, 208, 208, 208, 208, 208, 208, 208,
989
- 208, 208, 208, 208, 208, 208, 208, 208,
990
- 208, 208, 208, 208, 208, 208, 208, 208,
991
- 208, 208, 208, 208, 209, 209, 209, 209,
992
- 209, 209, 209, 209, 209, 209, 209, 209,
993
- 209, 209, 209, 209, 210, 210, 210, 210,
994
- 210, 207, 207, 207, 207, 207, 207, 207,
995
- 207, 207, 207, 207, 207, 211, 211, 211,
996
- 211, 211, 211, 211, 211, 211, 211, 211,
997
- 211, 211, 211, 211, 211, 211, 211, 211,
998
- 211, 211, 211, 211, 211, 211, 211, 211,
999
- 211, 211, 211, 211, 207, 207, 207, 207,
1000
- 212, 207, 213, 207, 212, 212, 212, 212,
1001
- 207, 214, 212, 207, 215, 215, 215, 215,
1002
- 215, 215, 215, 215, 215, 215, 207, 207,
1003
- 207, 207, 207, 212, 207, 215, 215, 215,
1004
- 215, 215, 215, 215, 215, 215, 215, 215,
1005
- 215, 215, 215, 215, 215, 215, 215, 215,
1006
- 215, 215, 215, 215, 215, 215, 215, 216,
1007
- 217, 218, 219, 207, 207, 215, 215, 215,
1008
- 215, 215, 215, 215, 215, 215, 215, 215,
1009
- 215, 215, 215, 215, 215, 215, 215, 215,
1010
- 215, 215, 215, 215, 215, 215, 215, 212,
1011
- 212, 212, 207, 211, 207, 59, 59, 59,
1012
- 59, 59, 59, 59, 59, 59, 59, 59,
1013
- 59, 59, 59, 59, 59, 59, 59, 59,
1014
- 59, 59, 59, 59, 59, 59, 59, 59,
1015
- 59, 59, 59, 59, 59, 59, 59, 59,
1016
- 59, 59, 59, 59, 59, 59, 59, 59,
1017
- 59, 59, 59, 59, 59, 59, 59, 59,
1018
- 59, 59, 59, 59, 59, 59, 59, 59,
1019
- 59, 59, 59, 59, 59, 220, 221, 221,
1020
- 221, 221, 221, 221, 221, 221, 221, 221,
1021
- 221, 221, 221, 221, 221, 221, 221, 221,
1022
- 221, 221, 221, 221, 221, 221, 221, 221,
1023
- 221, 221, 221, 221, 220, 61, 61, 61,
1024
- 61, 61, 61, 61, 61, 61, 61, 61,
1025
- 61, 61, 61, 61, 61, 61, 61, 61,
1026
- 61, 61, 61, 61, 61, 61, 61, 61,
1027
- 61, 61, 61, 61, 61, 61, 61, 61,
1028
- 61, 61, 61, 61, 61, 61, 61, 61,
1029
- 61, 61, 61, 61, 61, 61, 61, 61,
1030
- 61, 61, 61, 61, 61, 61, 61, 61,
1031
- 61, 61, 61, 61, 61, 220, 222, 222,
1032
- 222, 222, 222, 222, 222, 222, 222, 222,
1033
- 222, 222, 222, 222, 222, 222, 220, 64,
1034
- 64, 64, 64, 64, 64, 64, 64, 64,
1035
- 64, 64, 64, 64, 64, 64, 64, 64,
1036
- 64, 64, 64, 64, 64, 64, 64, 64,
1037
- 64, 64, 64, 64, 64, 64, 64, 64,
1038
- 64, 64, 64, 64, 64, 64, 64, 64,
1039
- 64, 64, 64, 64, 64, 64, 64, 64,
1040
- 64, 64, 64, 64, 64, 64, 64, 64,
1041
- 64, 64, 64, 64, 64, 64, 64, 220,
1042
- 223, 223, 223, 223, 223, 220, 211, 211,
1043
- 211, 211, 211, 211, 211, 211, 211, 211,
1044
- 211, 211, 211, 211, 211, 211, 211, 211,
1045
- 211, 211, 211, 211, 211, 211, 211, 211,
1046
- 211, 211, 211, 211, 211, 220, 220, 220,
1047
- 220, 220, 220, 220, 220, 220, 220, 220,
859
+ 193, 194, 193, 196, 195, 195, 195, 196,
860
+ 196, 196, 196, 195, 195, 196, 195, 197,
861
+ 198, 198, 198, 198, 198, 198, 198, 199,
862
+ 199, 195, 195, 195, 195, 195, 196, 195,
863
+ 39, 39, 200, 201, 195, 195, 39, 201,
864
+ 195, 195, 39, 195, 202, 195, 195, 203,
865
+ 195, 201, 201, 195, 195, 195, 201, 201,
866
+ 195, 39, 196, 196, 196, 196, 195, 195,
867
+ 204, 204, 104, 201, 204, 204, 39, 201,
868
+ 195, 195, 39, 195, 195, 204, 195, 203,
869
+ 195, 204, 201, 204, 205, 204, 201, 206,
870
+ 195, 39, 196, 196, 196, 195, 208, 208,
871
+ 208, 208, 208, 208, 208, 208, 207, 210,
872
+ 210, 210, 210, 210, 210, 210, 210, 209,
873
+ 213, 212, 216, 215, 217, 215, 220, 220,
1048
874
  220, 220, 220, 220, 220, 220, 220, 220,
1049
- 220, 220, 220, 220, 220, 220, 220, 220,
1050
- 220, 220, 220, 220, 220, 220, 220, 220,
1051
- 220, 220, 220, 220, 220, 220, 220, 220,
1052
- 220, 220, 220, 220, 220, 220, 220, 220,
1053
- 220, 220, 220, 220, 220, 220, 220, 220,
1054
- 220, 220, 220, 220, 220, 220, 220, 220,
1055
- 220, 220, 220, 220, 220, 220, 220, 220,
1056
- 220, 220, 220, 220, 220, 220, 220, 220,
1057
- 220, 220, 220, 220, 220, 220, 220, 220,
1058
- 220, 220, 220, 220, 211, 220, 224, 220,
1059
- 225, 220, 226, 220, 229, 228, 228, 228,
1060
- 228, 228, 228, 228, 228, 228, 228, 228,
1061
- 230, 228, 228, 231, 228, 232, 232, 232,
1062
- 232, 232, 232, 232, 232, 232, 232, 232,
1063
- 232, 232, 232, 232, 232, 232, 232, 232,
1064
- 232, 232, 232, 232, 232, 232, 232, 232,
1065
- 232, 232, 232, 233, 233, 233, 233, 233,
1066
- 233, 233, 233, 233, 233, 233, 233, 233,
1067
- 233, 233, 233, 234, 234, 234, 234, 234,
1068
- 39, 39, 39, 39, 39, 39, 39, 39,
1069
- 39, 39, 39, 39, 235, 235, 235, 235,
1070
- 235, 235, 235, 235, 235, 235, 235, 235,
1071
- 235, 235, 235, 235, 235, 235, 235, 235,
1072
- 235, 235, 235, 235, 235, 235, 235, 235,
1073
- 235, 235, 235, 236, 236, 236, 236, 237,
1074
- 236, 236, 236, 237, 237, 237, 237, 238,
1075
- 237, 237, 236, 236, 236, 236, 236, 236,
1076
- 236, 236, 236, 236, 236, 236, 236, 236,
1077
- 236, 236, 237, 236, 236, 236, 236, 239,
1078
- 236, 236, 236, 239, 236, 236, 236, 236,
1079
- 236, 236, 236, 240, 236, 239, 239, 236,
1080
- 236, 236, 239, 239, 236, 236, 237, 237,
1081
- 237, 237, 236, 236, 236, 241, 236, 239,
1082
- 236, 236, 236, 239, 236, 236, 236, 236,
1083
- 236, 236, 236, 240, 236, 236, 239, 236,
1084
- 236, 236, 239, 242, 236, 236, 237, 237,
1085
- 237, 236, 235, 39, 232, 232, 232, 232,
1086
- 232, 232, 232, 232, 232, 232, 232, 232,
1087
- 232, 232, 232, 232, 232, 232, 232, 232,
1088
- 232, 232, 232, 232, 232, 232, 232, 232,
1089
- 232, 232, 243, 233, 233, 233, 233, 233,
1090
- 233, 233, 233, 233, 233, 233, 233, 233,
1091
- 233, 233, 233, 243, 234, 234, 234, 234,
1092
- 234, 243, 235, 235, 235, 235, 235, 235,
1093
- 235, 235, 235, 235, 235, 235, 235, 235,
1094
- 235, 235, 235, 235, 235, 235, 235, 235,
1095
- 235, 235, 235, 235, 235, 235, 235, 235,
1096
- 235, 243, 243, 243, 243, 243, 243, 243,
1097
- 243, 243, 243, 243, 243, 243, 243, 243,
1098
- 243, 243, 243, 243, 243, 243, 243, 243,
1099
- 243, 243, 243, 243, 243, 243, 243, 243,
1100
- 243, 243, 243, 243, 243, 243, 243, 243,
1101
- 243, 243, 243, 243, 243, 243, 243, 243,
1102
- 243, 243, 243, 243, 243, 243, 243, 243,
1103
- 243, 243, 243, 243, 243, 243, 243, 243,
1104
- 243, 243, 243, 243, 243, 243, 243, 243,
1105
- 243, 243, 243, 243, 243, 243, 243, 243,
1106
- 243, 243, 243, 243, 243, 243, 243, 243,
1107
- 243, 243, 243, 243, 243, 243, 243, 243,
1108
- 235, 243, 236, 236, 236, 236, 122, 236,
1109
- 236, 236, 122, 122, 122, 122, 236, 122,
1110
- 122, 236, 236, 236, 236, 236, 236, 236,
1111
- 236, 236, 236, 236, 236, 236, 236, 236,
1112
- 236, 122, 236, 236, 236, 236, 236, 236,
1113
- 236, 236, 236, 236, 236, 236, 236, 236,
1114
- 236, 236, 236, 236, 236, 236, 236, 236,
1115
- 236, 236, 236, 236, 236, 122, 122, 122,
1116
- 122, 236, 236, 236, 236, 236, 236, 236,
1117
- 236, 236, 236, 236, 236, 236, 236, 236,
1118
- 236, 236, 236, 236, 236, 236, 236, 236,
1119
- 236, 236, 236, 236, 236, 122, 122, 122,
1120
- 236, 122, 236, 236, 236, 236, 243, 236,
1121
- 236, 236, 243, 243, 243, 243, 236, 243,
1122
- 243, 236, 244, 244, 244, 244, 244, 244,
1123
- 244, 244, 244, 244, 236, 236, 236, 236,
1124
- 236, 243, 236, 244, 244, 244, 244, 244,
1125
- 244, 236, 236, 236, 236, 236, 236, 236,
1126
- 236, 236, 236, 236, 236, 236, 236, 236,
1127
- 236, 236, 236, 236, 236, 243, 243, 243,
1128
- 243, 236, 236, 244, 244, 244, 244, 244,
1129
- 244, 236, 236, 236, 236, 236, 236, 236,
1130
- 236, 236, 236, 236, 236, 236, 236, 236,
1131
- 236, 236, 236, 236, 236, 243, 243, 243,
1132
- 236, 243, 236, 236, 236, 236, 245, 236,
1133
- 236, 236, 245, 245, 245, 245, 236, 246,
1134
- 245, 236, 247, 247, 247, 247, 247, 247,
1135
- 247, 247, 247, 247, 236, 236, 236, 236,
1136
- 236, 245, 236, 247, 247, 247, 247, 247,
1137
- 247, 236, 236, 236, 236, 236, 236, 236,
1138
- 236, 236, 236, 236, 236, 236, 236, 236,
1139
- 236, 236, 236, 236, 236, 245, 245, 245,
1140
- 245, 236, 236, 247, 247, 247, 247, 247,
1141
- 247, 236, 236, 236, 236, 236, 236, 236,
1142
- 236, 236, 236, 236, 236, 236, 236, 236,
1143
- 236, 236, 236, 236, 236, 245, 245, 245,
1144
- 236, 245, 249, 249, 249, 249, 249, 249,
1145
- 249, 249, 249, 249, 248, 248, 248, 248,
1146
- 248, 248, 248, 249, 249, 249, 249, 249,
1147
- 249, 248, 248, 248, 248, 248, 248, 248,
1148
- 248, 248, 248, 248, 248, 248, 248, 248,
1149
- 248, 248, 248, 248, 248, 248, 248, 248,
1150
- 248, 248, 248, 249, 249, 249, 249, 249,
1151
- 249, 248, 236, 236, 236, 236, 245, 236,
1152
- 236, 236, 245, 245, 245, 245, 236, 246,
1153
- 245, 236, 236, 236, 236, 236, 236, 236,
1154
- 236, 236, 236, 236, 236, 236, 236, 236,
1155
- 236, 245, 236, 236, 236, 236, 236, 236,
1156
- 236, 236, 236, 236, 236, 236, 236, 236,
1157
- 236, 236, 236, 236, 236, 236, 236, 236,
1158
- 236, 236, 236, 236, 236, 245, 245, 245,
1159
- 245, 236, 236, 236, 236, 236, 236, 236,
1160
- 236, 236, 236, 236, 236, 236, 236, 236,
1161
- 236, 236, 236, 236, 236, 236, 236, 236,
1162
- 236, 236, 236, 236, 236, 245, 245, 245,
1163
- 236, 245, 251, 250, 250, 250, 251, 251,
1164
- 251, 251, 250, 250, 251, 250, 252, 253,
1165
- 253, 253, 253, 253, 253, 253, 254, 254,
1166
- 250, 250, 250, 250, 250, 251, 250, 39,
1167
- 39, 255, 39, 250, 250, 39, 39, 250,
1168
- 250, 250, 250, 256, 250, 250, 257, 250,
1169
- 39, 39, 250, 250, 250, 39, 39, 250,
1170
- 39, 251, 251, 251, 251, 250, 250, 258,
1171
- 258, 133, 39, 258, 258, 39, 39, 250,
1172
- 250, 39, 250, 250, 258, 250, 257, 250,
1173
- 258, 258, 258, 259, 258, 39, 260, 250,
1174
- 39, 251, 251, 251, 250, 262, 262, 262,
1175
- 262, 262, 262, 262, 262, 261, 264, 264,
1176
- 264, 264, 264, 264, 264, 264, 263, 267,
1177
- 266, 270, 269, 271, 269, 274, 274, 274,
1178
- 274, 274, 274, 274, 274, 274, 274, 273,
1179
- 273, 273, 273, 273, 273, 273, 274, 274,
1180
- 274, 274, 274, 274, 273, 273, 273, 273,
1181
- 273, 273, 273, 273, 273, 273, 273, 273,
1182
- 273, 273, 273, 273, 273, 273, 273, 273,
1183
- 273, 273, 273, 273, 273, 273, 274, 274,
1184
- 274, 274, 274, 274, 273, 275, 276, 275,
1185
- 277, 275, 278, 275, 279, 275, 280, 275,
1186
- 281, 275, 282, 275, 161, 283, 283, 283,
1187
- 283, 283, 276, 276, 276, 276, 276, 276,
1188
- 276, 276, 276, 276, 276, 276, 276, 276,
1189
- 276, 276, 276, 276, 283, 276, 276, 276,
1190
- 276, 276, 276, 276, 276, 276, 276, 276,
1191
- 276, 276, 276, 276, 276, 276, 276, 276,
1192
- 276, 276, 276, 276, 276, 276, 276, 276,
1193
- 276, 276, 276, 276, 276, 276, 276, 276,
1194
- 276, 276, 276, 276, 276, 276, 276, 276,
1195
- 276, 276, 276, 276, 276, 276, 276, 276,
1196
- 276, 276, 276, 276, 276, 276, 276, 276,
1197
- 276, 276, 276, 276, 276, 276, 276, 276,
1198
- 276, 276, 276, 276, 276, 276, 276, 276,
1199
- 276, 276, 276, 276, 276, 276, 276, 276,
1200
- 276, 276, 276, 276, 276, 276, 276, 276,
1201
- 276, 161, 276, 284, 284, 284, 284, 284,
1202
- 277, 277, 277, 277, 277, 277, 277, 277,
1203
- 277, 277, 277, 277, 277, 277, 277, 277,
1204
- 277, 277, 284, 277, 277, 277, 277, 277,
1205
- 277, 277, 277, 277, 277, 277, 277, 277,
1206
- 277, 277, 277, 277, 277, 277, 277, 277,
1207
- 277, 277, 277, 277, 277, 277, 277, 277,
1208
- 277, 277, 277, 277, 277, 277, 277, 277,
1209
- 277, 277, 277, 277, 277, 277, 277, 277,
1210
- 277, 277, 277, 277, 277, 277, 277, 277,
1211
- 277, 277, 277, 277, 277, 277, 277, 277,
1212
- 277, 277, 277, 277, 277, 277, 277, 277,
1213
- 277, 277, 277, 277, 277, 277, 277, 277,
1214
- 277, 277, 277, 277, 277, 277, 277, 277,
1215
- 277, 277, 277, 277, 277, 277, 277, 161,
1216
- 277, 285, 285, 285, 285, 285, 278, 278,
1217
- 278, 278, 278, 278, 278, 278, 278, 278,
1218
- 278, 278, 278, 278, 278, 278, 278, 278,
1219
- 285, 278, 278, 278, 278, 278, 278, 278,
1220
- 278, 278, 278, 278, 278, 278, 278, 278,
1221
- 278, 278, 278, 278, 278, 278, 278, 278,
1222
- 278, 278, 278, 278, 278, 278, 278, 278,
1223
- 278, 278, 278, 278, 278, 278, 278, 278,
1224
- 278, 278, 278, 278, 278, 278, 278, 278,
1225
- 278, 278, 278, 278, 278, 278, 278, 278,
1226
- 278, 278, 278, 278, 278, 278, 278, 278,
1227
- 278, 278, 278, 278, 278, 278, 278, 278,
1228
- 278, 278, 278, 278, 278, 278, 278, 278,
1229
- 278, 278, 278, 278, 278, 278, 278, 278,
1230
- 278, 278, 278, 278, 278, 161, 278, 286,
1231
- 286, 286, 286, 286, 279, 279, 279, 279,
1232
- 279, 279, 279, 279, 279, 279, 279, 279,
1233
- 279, 279, 279, 279, 279, 279, 286, 279,
1234
- 279, 279, 279, 279, 279, 279, 279, 279,
1235
- 279, 279, 279, 279, 279, 279, 279, 279,
1236
- 279, 279, 279, 279, 279, 279, 279, 279,
1237
- 279, 279, 279, 279, 279, 279, 279, 279,
1238
- 279, 279, 279, 279, 279, 279, 279, 279,
1239
- 279, 279, 279, 279, 279, 279, 279, 279,
1240
- 279, 279, 279, 279, 279, 279, 279, 279,
1241
- 279, 279, 279, 279, 279, 279, 279, 279,
1242
- 279, 279, 279, 279, 279, 279, 279, 279,
1243
- 279, 279, 279, 279, 279, 279, 279, 279,
1244
- 279, 279, 279, 279, 279, 279, 279, 279,
1245
- 279, 279, 279, 161, 279, 287, 287, 287,
1246
- 287, 287, 280, 280, 280, 280, 280, 280,
1247
- 280, 280, 280, 280, 280, 280, 280, 280,
1248
- 280, 280, 280, 280, 287, 280, 280, 280,
1249
- 280, 280, 280, 280, 280, 280, 280, 280,
1250
- 280, 280, 280, 280, 280, 280, 280, 280,
1251
- 280, 280, 280, 280, 280, 280, 280, 280,
1252
- 280, 280, 280, 280, 280, 280, 280, 280,
1253
- 280, 280, 280, 280, 280, 280, 280, 280,
1254
- 280, 280, 280, 280, 280, 280, 280, 280,
1255
- 280, 280, 280, 280, 280, 280, 280, 280,
1256
- 280, 280, 280, 280, 280, 280, 280, 280,
1257
- 280, 280, 280, 280, 280, 280, 280, 280,
1258
- 280, 280, 280, 280, 280, 280, 280, 280,
1259
- 280, 280, 280, 280, 280, 280, 280, 280,
1260
- 280, 161, 280, 288, 288, 288, 288, 288,
1261
- 281, 281, 281, 281, 281, 281, 281, 281,
1262
- 281, 281, 281, 281, 281, 281, 281, 281,
1263
- 281, 281, 288, 281, 281, 281, 281, 281,
1264
- 281, 281, 281, 281, 281, 281, 281, 281,
1265
- 281, 281, 281, 281, 281, 281, 281, 281,
1266
- 281, 281, 281, 281, 281, 281, 281, 281,
1267
- 281, 281, 281, 281, 281, 281, 281, 281,
1268
- 281, 281, 281, 281, 281, 281, 281, 281,
1269
- 281, 281, 281, 281, 281, 281, 281, 281,
1270
- 281, 281, 281, 281, 281, 281, 281, 281,
1271
- 281, 281, 281, 281, 281, 281, 281, 281,
1272
- 281, 281, 281, 281, 281, 281, 281, 281,
1273
- 281, 281, 281, 281, 281, 281, 281, 281,
1274
- 281, 281, 281, 281, 281, 281, 281, 161,
1275
- 281, 289, 289, 289, 289, 289, 282, 282,
1276
- 282, 282, 282, 282, 282, 282, 282, 282,
1277
- 282, 282, 282, 282, 282, 282, 282, 282,
1278
- 289, 282, 282, 282, 282, 282, 282, 282,
1279
- 282, 282, 282, 282, 282, 282, 282, 282,
1280
- 282, 282, 282, 282, 282, 282, 282, 282,
1281
- 282, 282, 282, 282, 282, 282, 282, 282,
1282
- 282, 282, 282, 282, 282, 282, 282, 282,
1283
- 282, 282, 282, 282, 282, 282, 282, 282,
1284
- 282, 282, 282, 282, 282, 282, 282, 282,
1285
- 282, 282, 282, 282, 282, 282, 282, 282,
1286
- 282, 282, 282, 282, 282, 282, 282, 282,
1287
- 282, 282, 282, 282, 282, 282, 282, 282,
1288
- 282, 282, 282, 282, 282, 282, 282, 282,
1289
- 282, 282, 282, 282, 282, 161, 282, 290,
1290
- 290, 290, 290, 290, 161, 161, 161, 161,
1291
- 161, 161, 161, 161, 161, 161, 161, 161,
1292
- 161, 161, 161, 161, 161, 161, 290, 161,
1293
- 163, 163, 163, 163, 163, 275, 275, 275,
1294
- 275, 275, 275, 275, 275, 275, 275, 275,
1295
- 275, 275, 275, 275, 275, 275, 275, 163,
1296
- 275, 275, 275, 275, 275, 275, 275, 275,
1297
- 275, 275, 275, 275, 275, 275, 275, 275,
1298
- 275, 275, 275, 275, 275, 275, 275, 275,
1299
- 275, 275, 275, 275, 275, 275, 275, 275,
1300
- 275, 275, 275, 275, 275, 275, 275, 275,
1301
- 275, 275, 275, 275, 275, 275, 275, 275,
1302
- 275, 275, 275, 275, 275, 275, 275, 275,
1303
- 275, 275, 275, 275, 275, 275, 275, 275,
1304
- 275, 275, 275, 275, 275, 275, 275, 275,
1305
- 275, 275, 275, 275, 275, 275, 275, 275,
1306
- 275, 275, 275, 275, 275, 275, 275, 275,
1307
- 275, 275, 275, 275, 161, 275, 292, 292,
1308
- 292, 292, 292, 292, 292, 292, 292, 292,
1309
- 276, 276, 276, 276, 276, 276, 276, 292,
1310
- 292, 292, 292, 292, 292, 276, 276, 276,
1311
- 276, 276, 276, 276, 276, 276, 276, 276,
1312
- 276, 276, 276, 276, 276, 276, 276, 276,
1313
- 276, 276, 276, 276, 276, 276, 276, 292,
1314
- 292, 292, 292, 292, 292, 276, 276, 276,
1315
- 276, 276, 276, 276, 276, 276, 276, 276,
1316
- 276, 276, 276, 276, 276, 276, 276, 276,
1317
- 276, 276, 276, 293, 276, 294, 294, 294,
1318
- 294, 294, 294, 294, 294, 294, 294, 277,
1319
- 277, 277, 277, 277, 277, 277, 294, 294,
1320
- 294, 294, 294, 294, 277, 277, 277, 277,
1321
- 277, 277, 277, 277, 277, 277, 277, 277,
1322
- 277, 277, 277, 277, 277, 277, 277, 277,
1323
- 277, 277, 277, 277, 277, 277, 294, 294,
1324
- 294, 294, 294, 294, 277, 277, 277, 277,
1325
- 277, 277, 277, 277, 277, 277, 277, 277,
1326
- 277, 277, 277, 277, 277, 277, 277, 277,
1327
- 277, 277, 293, 277, 295, 295, 295, 295,
1328
- 295, 295, 295, 295, 295, 295, 278, 278,
1329
- 278, 278, 278, 278, 278, 295, 295, 295,
1330
- 295, 295, 295, 278, 278, 278, 278, 278,
1331
- 278, 278, 278, 278, 278, 278, 278, 278,
1332
- 278, 278, 278, 278, 278, 278, 278, 278,
1333
- 278, 278, 278, 278, 278, 295, 295, 295,
1334
- 295, 295, 295, 278, 278, 278, 278, 278,
1335
- 278, 278, 278, 278, 278, 278, 278, 278,
1336
- 278, 278, 278, 278, 278, 278, 278, 278,
1337
- 278, 293, 278, 296, 296, 296, 296, 296,
1338
- 296, 296, 296, 296, 296, 279, 279, 279,
1339
- 279, 279, 279, 279, 296, 296, 296, 296,
1340
- 296, 296, 279, 279, 279, 279, 279, 279,
1341
- 279, 279, 279, 279, 279, 279, 279, 279,
1342
- 279, 279, 279, 279, 279, 279, 279, 279,
1343
- 279, 279, 279, 279, 296, 296, 296, 296,
1344
- 296, 296, 279, 279, 279, 279, 279, 279,
1345
- 279, 279, 279, 279, 279, 279, 279, 279,
1346
- 279, 279, 279, 279, 279, 279, 279, 279,
1347
- 293, 279, 297, 297, 297, 297, 297, 297,
1348
- 297, 297, 297, 297, 280, 280, 280, 280,
1349
- 280, 280, 280, 297, 297, 297, 297, 297,
1350
- 297, 280, 280, 280, 280, 280, 280, 280,
1351
- 280, 280, 280, 280, 280, 280, 280, 280,
1352
- 280, 280, 280, 280, 280, 280, 280, 280,
1353
- 280, 280, 280, 297, 297, 297, 297, 297,
1354
- 297, 280, 280, 280, 280, 280, 280, 280,
1355
- 280, 280, 280, 280, 280, 280, 280, 280,
1356
- 280, 280, 280, 280, 280, 280, 280, 293,
1357
- 280, 298, 298, 298, 298, 298, 298, 298,
1358
- 298, 298, 298, 281, 281, 281, 281, 281,
1359
- 281, 281, 298, 298, 298, 298, 298, 298,
1360
- 281, 281, 281, 281, 281, 281, 281, 281,
1361
- 281, 281, 281, 281, 281, 281, 281, 281,
1362
- 281, 281, 281, 281, 281, 281, 281, 281,
1363
- 281, 281, 298, 298, 298, 298, 298, 298,
1364
- 281, 281, 281, 281, 281, 281, 281, 281,
1365
- 281, 281, 281, 281, 281, 281, 281, 281,
1366
- 281, 281, 281, 281, 281, 281, 293, 281,
1367
- 299, 299, 299, 299, 299, 299, 299, 299,
1368
- 299, 299, 282, 282, 282, 282, 282, 282,
1369
- 282, 299, 299, 299, 299, 299, 299, 282,
1370
- 282, 282, 282, 282, 282, 282, 282, 282,
1371
- 282, 282, 282, 282, 282, 282, 282, 282,
1372
- 282, 282, 282, 282, 282, 282, 282, 282,
1373
- 282, 299, 299, 299, 299, 299, 299, 282,
1374
- 282, 282, 282, 282, 282, 282, 282, 282,
1375
- 282, 282, 282, 282, 282, 282, 282, 282,
1376
- 282, 282, 282, 282, 282, 293, 282, 293,
1377
- 161, 301, 300, 300, 300, 300, 300, 302,
1378
- 300, 300, 300, 303, 303, 303, 303, 303,
1379
- 303, 303, 303, 303, 300, 300, 304, 300,
1380
- 166, 305, 305, 305, 305, 305, 305, 305,
1381
- 305, 167, 167, 167, 167, 167, 167, 167,
1382
- 167, 167, 167, 305, 305, 305, 305, 305,
1383
- 305, 305, 167, 167, 167, 167, 167, 167,
1384
- 167, 167, 167, 167, 167, 167, 167, 167,
1385
- 167, 167, 167, 167, 167, 167, 167, 167,
1386
- 167, 167, 167, 167, 305, 305, 305, 305,
1387
- 167, 305, 167, 167, 167, 167, 167, 167,
1388
- 167, 167, 167, 167, 167, 167, 167, 167,
1389
- 167, 167, 167, 167, 167, 167, 167, 167,
1390
- 167, 167, 167, 167, 305, 168, 168, 168,
1391
- 168, 168, 168, 168, 168, 168, 305, 165,
1392
- 305, 305, 305, 305, 305, 305, 168, 168,
1393
- 168, 168, 168, 168, 168, 168, 168, 168,
1394
- 305, 169, 169, 169, 169, 169, 169, 169,
1395
- 169, 169, 169, 305, 305, 305, 305, 166,
1396
- 305, 305, 169, 169, 169, 169, 169, 169,
1397
- 169, 169, 169, 169, 169, 169, 169, 169,
1398
- 169, 169, 169, 169, 169, 169, 169, 169,
1399
- 169, 169, 169, 169, 305, 305, 305, 305,
1400
- 169, 305, 169, 169, 169, 169, 169, 169,
1401
- 169, 169, 169, 169, 169, 169, 169, 169,
1402
- 169, 169, 169, 169, 169, 169, 169, 169,
1403
- 169, 169, 169, 169, 305, 0
875
+ 219, 219, 219, 219, 219, 219, 219, 220,
876
+ 220, 220, 220, 220, 220, 219, 219, 219,
877
+ 219, 219, 219, 219, 219, 219, 219, 219,
878
+ 219, 219, 219, 219, 219, 219, 219, 219,
879
+ 219, 219, 219, 219, 219, 219, 219, 220,
880
+ 220, 220, 220, 220, 220, 219, 222, 221,
881
+ 221, 221, 221, 221, 223, 221, 221, 221,
882
+ 224, 224, 224, 224, 224, 224, 224, 224,
883
+ 224, 221, 221, 225, 221, 131, 226, 226,
884
+ 226, 226, 226, 226, 226, 226, 132, 132,
885
+ 132, 132, 132, 132, 132, 132, 132, 132,
886
+ 226, 226, 226, 226, 226, 226, 226, 132,
887
+ 132, 132, 132, 132, 132, 132, 132, 132,
888
+ 132, 132, 132, 132, 132, 132, 132, 132,
889
+ 132, 132, 132, 132, 132, 132, 132, 132,
890
+ 132, 226, 226, 226, 226, 132, 226, 132,
891
+ 132, 132, 132, 132, 132, 132, 132, 132,
892
+ 132, 132, 132, 132, 132, 132, 132, 132,
893
+ 132, 132, 132, 132, 132, 132, 132, 132,
894
+ 132, 226, 133, 133, 133, 133, 133, 133,
895
+ 133, 133, 133, 226, 130, 226, 226, 226,
896
+ 226, 226, 226, 133, 133, 133, 133, 133,
897
+ 133, 133, 133, 133, 133, 226, 134, 134,
898
+ 134, 134, 134, 134, 134, 134, 134, 134,
899
+ 226, 226, 226, 226, 131, 226, 226, 134,
900
+ 134, 134, 134, 134, 134, 134, 134, 134,
901
+ 134, 134, 134, 134, 134, 134, 134, 134,
902
+ 134, 134, 134, 134, 134, 134, 134, 134,
903
+ 134, 226, 226, 226, 226, 134, 226, 134,
904
+ 134, 134, 134, 134, 134, 134, 134, 134,
905
+ 134, 134, 134, 134, 134, 134, 134, 134,
906
+ 134, 134, 134, 134, 134, 134, 134, 134,
907
+ 134, 226, 0
1404
908
  ]
1405
909
 
1406
910
  class << self
@@ -1408,45 +912,35 @@ class << self
1408
912
  private :_re_scanner_trans_targs, :_re_scanner_trans_targs=
1409
913
  end
1410
914
  self._re_scanner_trans_targs = [
1411
- 142, 143, 3, 144, 5, 6, 145, 142,
1412
- 7, 142, 142, 142, 9, 10, 142, 142,
1413
- 142, 11, 142, 12, 142, 14, 20, 142,
915
+ 113, 114, 3, 115, 5, 6, 116, 113,
916
+ 7, 113, 113, 113, 9, 10, 113, 113,
917
+ 113, 11, 113, 12, 113, 14, 20, 113,
1414
918
  15, 17, 19, 16, 18, 21, 23, 25,
1415
- 22, 24, 0, 27, 26, 156, 29, 0,
1416
- 30, 31, 46, 157, 32, 33, 34, 35,
1417
- 40, 42, 44, 38, 36, 37, 39, 41,
1418
- 43, 45, 158, 160, 162, 48, 51, 164,
1419
- 50, 158, 158, 158, 55, 56, 158, 58,
1420
- 59, 70, 74, 78, 82, 86, 90, 95,
1421
- 99, 101, 104, 60, 67, 61, 65, 62,
1422
- 63, 64, 158, 66, 68, 69, 71, 72,
1423
- 73, 75, 76, 77, 79, 80, 81, 83,
1424
- 84, 85, 87, 88, 89, 91, 93, 92,
1425
- 94, 96, 97, 98, 100, 102, 103, 106,
1426
- 107, 158, 170, 171, 110, 172, 112, 113,
1427
- 173, 170, 115, 116, 178, 183, 180, 180,
1428
- 119, 180, 184, 180, 180, 122, 185, 124,
1429
- 180, 126, 129, 127, 128, 180, 130, 131,
1430
- 132, 133, 134, 180, 186, 136, 187, 195,
1431
- 204, 180, 180, 137, 212, 212, 138, 139,
1432
- 140, 141, 1, 2, 4, 146, 147, 148,
1433
- 149, 150, 142, 151, 142, 152, 153, 142,
1434
- 154, 142, 155, 142, 142, 142, 142, 142,
1435
- 8, 142, 142, 142, 142, 142, 142, 142,
1436
- 142, 142, 142, 13, 142, 142, 28, 158,
1437
- 159, 161, 163, 165, 158, 166, 167, 168,
1438
- 169, 158, 158, 158, 158, 47, 49, 52,
1439
- 158, 158, 53, 158, 158, 54, 57, 105,
1440
- 108, 109, 111, 174, 175, 170, 175, 170,
1441
- 170, 170, 176, 170, 177, 170, 114, 179,
1442
- 170, 170, 180, 180, 181, 181, 180, 117,
1443
- 120, 180, 180, 125, 135, 180, 182, 180,
1444
- 180, 180, 180, 118, 180, 180, 121, 123,
1445
- 180, 180, 180, 180, 188, 189, 190, 191,
1446
- 192, 193, 194, 196, 197, 198, 199, 200,
1447
- 201, 202, 203, 180, 205, 180, 206, 207,
1448
- 208, 209, 210, 211, 212, 213, 214, 215,
1449
- 216, 212
919
+ 22, 24, 0, 27, 26, 127, 29, 0,
920
+ 30, 31, 129, 130, 130, 32, 130, 130,
921
+ 130, 130, 36, 37, 130, 39, 40, 51,
922
+ 55, 59, 63, 67, 71, 76, 80, 82,
923
+ 85, 41, 48, 42, 46, 43, 44, 45,
924
+ 130, 47, 49, 50, 52, 53, 54, 56,
925
+ 57, 58, 60, 61, 62, 64, 65, 66,
926
+ 68, 69, 70, 72, 74, 73, 75, 77,
927
+ 78, 79, 81, 83, 84, 87, 88, 130,
928
+ 141, 138, 138, 91, 138, 142, 138, 138,
929
+ 94, 143, 96, 138, 98, 101, 99, 100,
930
+ 138, 102, 103, 104, 105, 106, 107, 138,
931
+ 144, 145, 145, 109, 110, 111, 112, 1,
932
+ 2, 4, 117, 118, 119, 120, 121, 113,
933
+ 122, 113, 123, 124, 113, 125, 113, 126,
934
+ 113, 113, 113, 113, 113, 8, 113, 113,
935
+ 113, 113, 113, 113, 113, 113, 113, 13,
936
+ 113, 113, 128, 28, 131, 132, 133, 130,
937
+ 134, 135, 136, 130, 130, 130, 130, 33,
938
+ 130, 130, 34, 130, 130, 130, 35, 38,
939
+ 86, 137, 137, 138, 138, 139, 139, 138,
940
+ 89, 138, 92, 138, 138, 97, 108, 138,
941
+ 140, 138, 138, 138, 138, 90, 138, 138,
942
+ 93, 95, 138, 138, 138, 145, 146, 147,
943
+ 148, 149, 145
1450
944
  ]
1451
945
 
1452
946
  class << self
@@ -1459,40 +953,30 @@ self._re_scanner_trans_actions = [
1459
953
  10, 0, 11, 0, 12, 0, 0, 13,
1460
954
  0, 0, 0, 0, 0, 0, 0, 0,
1461
955
  0, 0, 14, 0, 0, 0, 0, 0,
1462
- 0, 0, 0, 16, 0, 0, 0, 0,
1463
- 0, 0, 0, 0, 0, 0, 0, 0,
1464
- 0, 0, 17, 18, 18, 0, 0, 18,
1465
- 0, 19, 20, 21, 0, 0, 22, 0,
1466
- 0, 0, 0, 0, 0, 0, 0, 0,
1467
- 0, 0, 0, 0, 0, 0, 0, 0,
1468
- 0, 0, 23, 0, 0, 0, 0, 0,
1469
- 0, 0, 0, 0, 0, 0, 0, 0,
1470
- 0, 0, 0, 0, 0, 0, 0, 0,
1471
- 0, 0, 0, 0, 0, 0, 0, 0,
1472
- 0, 24, 25, 26, 0, 26, 0, 0,
1473
- 26, 27, 0, 0, 0, 18, 28, 29,
1474
- 0, 30, 18, 31, 32, 0, 18, 0,
1475
- 33, 0, 0, 0, 0, 34, 0, 0,
1476
- 0, 0, 0, 35, 0, 0, 0, 0,
1477
- 0, 36, 37, 0, 38, 39, 0, 0,
1478
- 0, 0, 0, 0, 0, 0, 0, 0,
1479
- 0, 18, 42, 43, 44, 0, 0, 45,
1480
- 0, 46, 18, 47, 48, 49, 50, 51,
1481
- 52, 53, 54, 55, 56, 57, 58, 59,
1482
- 60, 61, 62, 0, 63, 64, 0, 66,
1483
- 0, 18, 18, 0, 67, 0, 0, 18,
1484
- 18, 68, 69, 70, 71, 0, 0, 0,
1485
- 72, 73, 0, 74, 75, 0, 0, 0,
1486
- 0, 0, 0, 0, 26, 76, 77, 78,
1487
- 79, 80, 0, 81, 18, 82, 0, 18,
1488
- 83, 84, 85, 86, 87, 88, 89, 0,
1489
- 0, 90, 91, 0, 0, 92, 0, 93,
1490
- 94, 95, 96, 0, 97, 98, 0, 0,
1491
- 99, 100, 101, 102, 0, 0, 0, 0,
1492
- 0, 0, 0, 0, 0, 0, 0, 0,
1493
- 0, 0, 18, 103, 0, 104, 0, 0,
1494
- 0, 0, 0, 0, 105, 18, 18, 18,
1495
- 18, 106
956
+ 0, 0, 16, 17, 18, 0, 19, 20,
957
+ 21, 22, 0, 0, 23, 0, 0, 0,
958
+ 0, 0, 0, 0, 0, 0, 0, 0,
959
+ 0, 0, 0, 0, 0, 0, 0, 0,
960
+ 24, 0, 0, 0, 0, 0, 0, 0,
961
+ 0, 0, 0, 0, 0, 0, 0, 0,
962
+ 0, 0, 0, 0, 0, 0, 0, 0,
963
+ 0, 0, 0, 0, 0, 0, 0, 25,
964
+ 26, 27, 28, 0, 29, 26, 30, 31,
965
+ 0, 26, 0, 32, 0, 0, 0, 0,
966
+ 33, 0, 0, 0, 0, 0, 0, 34,
967
+ 0, 35, 36, 0, 0, 0, 0, 0,
968
+ 0, 0, 0, 0, 0, 0, 26, 39,
969
+ 40, 41, 0, 0, 42, 0, 43, 26,
970
+ 44, 45, 46, 47, 48, 49, 50, 51,
971
+ 52, 53, 54, 55, 56, 57, 58, 0,
972
+ 59, 60, 62, 0, 0, 26, 26, 63,
973
+ 0, 26, 26, 64, 65, 66, 67, 0,
974
+ 68, 69, 0, 70, 71, 72, 0, 0,
975
+ 0, 73, 74, 75, 76, 77, 78, 79,
976
+ 0, 80, 0, 81, 82, 0, 0, 83,
977
+ 0, 84, 85, 86, 87, 0, 88, 89,
978
+ 0, 0, 90, 91, 92, 93, 26, 26,
979
+ 26, 26, 94
1496
980
  ]
1497
981
 
1498
982
  class << self
@@ -1514,20 +998,11 @@ self._re_scanner_to_state_actions = [
1514
998
  0, 0, 0, 0, 0, 0, 0, 0,
1515
999
  0, 0, 0, 0, 0, 0, 0, 0,
1516
1000
  0, 0, 0, 0, 0, 0, 0, 0,
1001
+ 0, 37, 0, 0, 0, 0, 0, 0,
1517
1002
  0, 0, 0, 0, 0, 0, 0, 0,
1518
- 0, 0, 0, 0, 0, 0, 0, 0,
1519
- 0, 0, 0, 0, 0, 0, 0, 0,
1520
- 0, 0, 0, 0, 0, 0, 40, 0,
1521
- 0, 0, 0, 0, 0, 0, 0, 0,
1522
- 0, 0, 0, 0, 0, 65, 65, 0,
1523
- 0, 0, 0, 0, 0, 0, 0, 0,
1524
- 0, 0, 40, 0, 0, 0, 0, 0,
1525
- 0, 0, 0, 0, 65, 0, 0, 0,
1526
- 0, 0, 0, 0, 0, 0, 0, 0,
1527
- 0, 0, 0, 0, 0, 0, 0, 0,
1528
- 0, 0, 0, 0, 0, 0, 0, 0,
1529
- 0, 0, 0, 0, 65, 0, 0, 0,
1530
- 0
1003
+ 61, 61, 61, 0, 0, 0, 0, 0,
1004
+ 0, 61, 61, 0, 0, 0, 0, 0,
1005
+ 0, 61, 0, 0, 0, 0
1531
1006
  ]
1532
1007
 
1533
1008
  class << self
@@ -1549,20 +1024,11 @@ self._re_scanner_from_state_actions = [
1549
1024
  0, 0, 0, 0, 0, 0, 0, 0,
1550
1025
  0, 0, 0, 0, 0, 0, 0, 0,
1551
1026
  0, 0, 0, 0, 0, 0, 0, 0,
1027
+ 0, 38, 0, 0, 0, 0, 0, 0,
1552
1028
  0, 0, 0, 0, 0, 0, 0, 0,
1553
- 0, 0, 0, 0, 0, 0, 0, 0,
1554
- 0, 0, 0, 0, 0, 0, 0, 0,
1555
- 0, 0, 0, 0, 0, 0, 41, 0,
1556
- 0, 0, 0, 0, 0, 0, 0, 0,
1557
- 0, 0, 0, 0, 0, 41, 41, 0,
1558
- 0, 0, 0, 0, 0, 0, 0, 0,
1559
- 0, 0, 41, 0, 0, 0, 0, 0,
1560
- 0, 0, 0, 0, 41, 0, 0, 0,
1561
- 0, 0, 0, 0, 0, 0, 0, 0,
1562
- 0, 0, 0, 0, 0, 0, 0, 0,
1563
- 0, 0, 0, 0, 0, 0, 0, 0,
1564
- 0, 0, 0, 0, 41, 0, 0, 0,
1565
- 0
1029
+ 38, 38, 38, 0, 0, 0, 0, 0,
1030
+ 0, 38, 38, 0, 0, 0, 0, 0,
1031
+ 0, 38, 0, 0, 0, 0
1566
1032
  ]
1567
1033
 
1568
1034
  class << self
@@ -1574,8 +1040,6 @@ self._re_scanner_eof_actions = [
1574
1040
  0, 0, 0, 0, 0, 0, 0, 0,
1575
1041
  0, 0, 0, 0, 0, 0, 0, 0,
1576
1042
  0, 0, 14, 14, 15, 15, 15, 15,
1577
- 15, 15, 15, 15, 15, 15, 15, 15,
1578
- 15, 15, 15, 15, 15, 15, 15, 0,
1579
1043
  0, 0, 0, 0, 0, 0, 0, 0,
1580
1044
  0, 0, 0, 0, 0, 0, 0, 0,
1581
1045
  0, 0, 0, 0, 0, 0, 0, 0,
@@ -1583,21 +1047,14 @@ self._re_scanner_eof_actions = [
1583
1047
  0, 0, 0, 0, 0, 0, 0, 0,
1584
1048
  0, 0, 0, 0, 0, 0, 0, 0,
1585
1049
  0, 0, 0, 0, 0, 0, 0, 0,
1050
+ 0, 14, 0, 0, 14, 0, 0, 0,
1051
+ 0, 14, 14, 14, 14, 14, 14, 14,
1052
+ 14, 14, 14, 14, 14, 0, 0, 0,
1586
1053
  0, 0, 0, 0, 0, 0, 0, 0,
1587
- 0, 0, 0, 0, 0, 14, 0, 0,
1588
- 14, 0, 0, 0, 0, 14, 14, 14,
1589
- 14, 14, 14, 14, 14, 14, 14, 14,
1590
- 14, 0, 0, 0, 0, 0, 0, 0,
1591
1054
  0, 0, 0, 0, 0, 0, 0, 0,
1592
- 0, 0, 0, 0, 0, 0, 14, 0,
1593
- 0, 0, 0, 0, 0, 0, 0, 0,
1594
- 0, 0, 0, 0, 0, 0, 0, 0,
1595
- 0, 0, 0, 0, 14, 0, 0, 0,
1596
- 0, 0, 0, 0, 0, 0, 0, 0,
1597
- 0, 0, 0, 0, 0, 0, 0, 0,
1598
- 0, 0, 0, 0, 0, 0, 0, 0,
1599
- 0, 0, 0, 0, 0, 0, 0, 0,
1600
- 0
1055
+ 0, 0, 14, 0, 0, 0, 0, 0,
1056
+ 0, 0, 14, 0, 0, 0, 0, 0,
1057
+ 0, 0, 0, 0, 0, 0
1601
1058
  ]
1602
1059
 
1603
1060
  class << self
@@ -1609,74 +1066,69 @@ self._re_scanner_eof_trans = [
1609
1066
  11, 11, 11, 11, 11, 21, 21, 21,
1610
1067
  21, 21, 21, 21, 21, 21, 21, 21,
1611
1068
  21, 21, 0, 0, 0, 0, 0, 0,
1612
- 0, 0, 0, 0, 0, 0, 0, 0,
1613
- 0, 0, 0, 0, 0, 0, 0, 59,
1614
- 59, 59, 59, 59, 59, 59, 67, 67,
1615
- 67, 67, 67, 67, 67, 67, 67, 67,
1616
- 67, 67, 67, 67, 67, 67, 67, 67,
1617
- 67, 67, 67, 67, 67, 67, 67, 67,
1618
- 67, 67, 67, 67, 67, 67, 67, 67,
1619
- 67, 67, 67, 67, 67, 67, 67, 67,
1620
- 67, 67, 67, 67, 67, 67, 67, 67,
1621
- 67, 67, 67, 67, 123, 123, 123, 123,
1622
- 123, 123, 130, 130, 130, 0, 135, 135,
1623
- 0, 140, 140, 140, 140, 0, 0, 0,
1624
- 0, 0, 0, 0, 0, 0, 0, 0,
1625
- 0, 163, 165, 165, 165, 165, 0, 190,
1626
- 190, 190, 190, 191, 191, 190, 190, 192,
1627
- 194, 196, 198, 200, 205, 0, 0, 221,
1628
- 221, 221, 221, 221, 221, 221, 221, 221,
1629
- 221, 228, 0, 244, 244, 244, 244, 123,
1630
- 244, 246, 249, 246, 0, 262, 264, 266,
1631
- 269, 269, 273, 276, 276, 276, 276, 276,
1632
- 276, 276, 276, 276, 276, 276, 276, 276,
1633
- 276, 276, 276, 276, 292, 292, 292, 292,
1634
- 292, 292, 292, 292, 0, 306, 306, 306,
1635
- 306
1069
+ 44, 44, 47, 49, 49, 49, 49, 49,
1070
+ 49, 49, 49, 49, 49, 49, 49, 49,
1071
+ 49, 49, 49, 49, 49, 49, 49, 49,
1072
+ 49, 49, 49, 49, 49, 49, 49, 49,
1073
+ 49, 49, 49, 49, 49, 49, 49, 49,
1074
+ 49, 49, 49, 49, 49, 49, 49, 49,
1075
+ 49, 49, 49, 49, 49, 49, 49, 49,
1076
+ 49, 0, 106, 106, 0, 111, 111, 111,
1077
+ 111, 0, 0, 0, 0, 0, 0, 0,
1078
+ 0, 0, 0, 0, 0, 130, 130, 130,
1079
+ 130, 0, 155, 155, 155, 155, 156, 156,
1080
+ 155, 155, 157, 159, 161, 163, 165, 169,
1081
+ 0, 0, 0, 183, 183, 183, 183, 186,
1082
+ 189, 0, 0, 208, 210, 212, 215, 215,
1083
+ 219, 0, 227, 227, 227, 227
1636
1084
  ]
1637
1085
 
1638
1086
  class << self
1639
1087
  attr_accessor :re_scanner_start
1640
1088
  end
1641
- self.re_scanner_start = 142;
1089
+ self.re_scanner_start = 113;
1642
1090
  class << self
1643
1091
  attr_accessor :re_scanner_first_final
1644
1092
  end
1645
- self.re_scanner_first_final = 142;
1093
+ self.re_scanner_first_final = 113;
1646
1094
  class << self
1647
1095
  attr_accessor :re_scanner_error
1648
1096
  end
1649
1097
  self.re_scanner_error = 0;
1650
1098
 
1099
+ class << self
1100
+ attr_accessor :re_scanner_en_char_type
1101
+ end
1102
+ self.re_scanner_en_char_type = 128;
1651
1103
  class << self
1652
1104
  attr_accessor :re_scanner_en_unicode_property
1653
1105
  end
1654
- self.re_scanner_en_unicode_property = 157;
1106
+ self.re_scanner_en_unicode_property = 129;
1655
1107
  class << self
1656
1108
  attr_accessor :re_scanner_en_character_set
1657
1109
  end
1658
- self.re_scanner_en_character_set = 158;
1110
+ self.re_scanner_en_character_set = 130;
1659
1111
  class << self
1660
1112
  attr_accessor :re_scanner_en_set_escape_sequence
1661
1113
  end
1662
- self.re_scanner_en_set_escape_sequence = 170;
1114
+ self.re_scanner_en_set_escape_sequence = 137;
1663
1115
  class << self
1664
1116
  attr_accessor :re_scanner_en_escape_sequence
1665
1117
  end
1666
- self.re_scanner_en_escape_sequence = 180;
1118
+ self.re_scanner_en_escape_sequence = 138;
1667
1119
  class << self
1668
1120
  attr_accessor :re_scanner_en_conditional_expression
1669
1121
  end
1670
- self.re_scanner_en_conditional_expression = 212;
1122
+ self.re_scanner_en_conditional_expression = 145;
1671
1123
  class << self
1672
1124
  attr_accessor :re_scanner_en_main
1673
1125
  end
1674
- self.re_scanner_en_main = 142;
1126
+ self.re_scanner_en_main = 113;
1675
1127
 
1676
1128
 
1677
- # line 866 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1129
+ # line 808 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1678
1130
 
1679
- # line 1679 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1131
+ # line 1131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1680
1132
  begin
1681
1133
  p ||= 0
1682
1134
  pe ||= data.length
@@ -1687,9 +1139,9 @@ begin
1687
1139
  act = 0
1688
1140
  end
1689
1141
 
1690
- # line 867 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1142
+ # line 809 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1691
1143
 
1692
- # line 1692 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1144
+ # line 1144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1693
1145
  begin
1694
1146
  testEof = false
1695
1147
  _slen, _trans, _keys, _inds, _acts, _nacts = nil
@@ -1712,12 +1164,12 @@ begin
1712
1164
  end
1713
1165
  if _goto_level <= _resume
1714
1166
  case _re_scanner_from_state_actions[cs]
1715
- when 41 then
1167
+ when 38 then
1716
1168
  # line 1 "NONE"
1717
1169
  begin
1718
1170
  ts = p
1719
1171
  end
1720
- # line 1720 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1172
+ # line 1172 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1721
1173
  end
1722
1174
  _keys = cs << 1
1723
1175
  _inds = _re_scanner_index_offsets[cs]
@@ -1737,788 +1189,64 @@ ts = p
1737
1189
  if _re_scanner_trans_actions[_trans] != 0
1738
1190
  case _re_scanner_trans_actions[_trans]
1739
1191
  when 14 then
1740
- # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1192
+ # line 130 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1741
1193
  begin
1742
1194
 
1743
1195
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
1744
1196
  raise PrematureEndError.new( text )
1745
1197
  end
1746
1198
  when 7 then
1747
- # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1199
+ # line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1748
1200
  begin
1749
1201
  self.group_depth = group_depth - 1; in_group = group_depth > 0 ? true : false end
1750
- when 18 then
1202
+ when 26 then
1751
1203
  # line 1 "NONE"
1752
1204
  begin
1753
1205
  te = p+1
1754
1206
  end
1755
- when 16 then
1756
- # line 62 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
1207
+ when 62 then
1208
+ # line 12 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/char_type.rl"
1757
1209
  begin
1758
1210
  te = p+1
1759
1211
  begin
1760
- text = text(data, ts, te, 1).first
1761
- if in_set
1762
- type = :set
1212
+ case text = text(data, ts, te, 1).first
1213
+ when '\d'; emit(:type, :digit, text, ts - 1, te)
1214
+ when '\D'; emit(:type, :nondigit, text, ts - 1, te)
1215
+ when '\h'; emit(:type, :hex, text, ts - 1, te)
1216
+ when '\H'; emit(:type, :nonhex, text, ts - 1, te)
1217
+ when '\s'; emit(:type, :space, text, ts - 1, te)
1218
+ when '\S'; emit(:type, :nonspace, text, ts - 1, te)
1219
+ when '\w'; emit(:type, :word, text, ts - 1, te)
1220
+ when '\W'; emit(:type, :nonword, text, ts - 1, te)
1221
+ when '\R'; emit(:type, :linebreak, text, ts - 1, te)
1222
+ when '\X'; emit(:type, :xgrapheme, text, ts - 1, te)
1763
1223
  else
1764
- type = (text[1] == 'P') ^ (text[3] == '^') ? :nonproperty : :property
1224
+ raise ScannerError.new(
1225
+ "Unexpected character in type at #{text} (char #{ts})")
1765
1226
  end
1227
+ begin
1228
+ top -= 1
1229
+ cs = stack[top]
1230
+ _goto_level = _again
1231
+ next
1232
+ end
1766
1233
 
1767
- name = data[ts+2..te-2].pack('c*').gsub(/[\s_]/,'').downcase
1768
- if name[0].chr == '^'
1769
- name = name[1..-1]
1770
- end
1234
+ end
1235
+ end
1236
+ when 16 then
1237
+ # line 16 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
1238
+ begin
1239
+ te = p+1
1240
+ begin
1241
+ text = text(data, ts, te, 1).first
1242
+ type = (text[1] == 'P') ^ (text[3] == '^') ? :nonproperty : :property
1771
1243
 
1772
- case name
1773
- # Named
1774
- when 'alnum'
1775
- self.emit(type, :alnum, text, ts-1, te)
1776
- when 'alpha'
1777
- self.emit(type, :alpha, text, ts-1, te)
1778
- when 'ascii'
1779
- self.emit(type, :ascii, text, ts-1, te)
1780
- when 'blank'
1781
- self.emit(type, :blank, text, ts-1, te)
1782
- when 'cntrl'
1783
- self.emit(type, :cntrl, text, ts-1, te)
1784
- when 'digit'
1785
- self.emit(type, :digit, text, ts-1, te)
1786
- when 'graph'
1787
- self.emit(type, :graph, text, ts-1, te)
1788
- when 'lower'
1789
- self.emit(type, :lower, text, ts-1, te)
1790
- when 'print'
1791
- self.emit(type, :print, text, ts-1, te)
1792
- when 'punct'
1793
- self.emit(type, :punct, text, ts-1, te)
1794
- when 'space'
1795
- self.emit(type, :space, text, ts-1, te)
1796
- when 'upper'
1797
- self.emit(type, :upper, text, ts-1, te)
1798
- when 'word'
1799
- self.emit(type, :word, text, ts-1, te)
1800
- when 'xdigit'
1801
- self.emit(type, :xdigit, text, ts-1, te)
1802
- when 'xposixpunct'
1803
- self.emit(type, :xposixpunct, text, ts-1, te)
1804
-
1805
- # Only in Oniguruma (old Rubies)
1806
- when 'newline'
1807
- self.emit(type, :newline, text, ts-1, te)
1808
-
1809
- when 'any'
1810
- self.emit(type, :any, text, ts-1, te)
1811
- when 'assigned'
1812
- self.emit(type, :assigned, text, ts-1, te)
1813
-
1814
- # Letters
1815
- when 'l', 'letter'
1816
- self.emit(type, :letter_any, text, ts-1, te)
1817
- when 'lu', 'uppercaseletter'
1818
- self.emit(type, :letter_uppercase, text, ts-1, te)
1819
- when 'll', 'lowercaseletter'
1820
- self.emit(type, :letter_lowercase, text, ts-1, te)
1821
- when 'lt', 'titlecaseletter'
1822
- self.emit(type, :letter_titlecase, text, ts-1, te)
1823
- when 'lm', 'modifierletter'
1824
- self.emit(type, :letter_modifier, text, ts-1, te)
1825
- when 'lo', 'otherletter'
1826
- self.emit(type, :letter_other, text, ts-1, te)
1827
-
1828
- # Marks
1829
- when 'm', 'mark'
1830
- self.emit(type, :mark_any, text, ts-1, te)
1831
- when 'mn', 'nonspacingmark'
1832
- self.emit(type, :mark_nonspacing, text, ts-1, te)
1833
- when 'mc', 'spacingmark'
1834
- self.emit(type, :mark_spacing, text, ts-1, te)
1835
- when 'me', 'enclosingmark'
1836
- self.emit(type, :mark_enclosing, text, ts-1, te)
1837
-
1838
- # Numbers
1839
- when 'n', 'number'
1840
- self.emit(type, :number_any, text, ts-1, te)
1841
- when 'nd', 'decimalnumber'
1842
- self.emit(type, :number_decimal, text, ts-1, te)
1843
- when 'nl', 'letternumber'
1844
- self.emit(type, :number_letter, text, ts-1, te)
1845
- when 'no', 'othernumber'
1846
- self.emit(type, :number_other, text, ts-1, te)
1847
-
1848
- # Punctuation
1849
- when 'p', 'punctuation'
1850
- self.emit(type, :punct_any, text, ts-1, te)
1851
- when 'pc', 'connectorpunctuation'
1852
- self.emit(type, :punct_connector, text, ts-1, te)
1853
- when 'pd', 'dashpunctuation'
1854
- self.emit(type, :punct_dash, text, ts-1, te)
1855
- when 'ps', 'openpunctuation'
1856
- self.emit(type, :punct_open, text, ts-1, te)
1857
- when 'pe', 'closepunctuation'
1858
- self.emit(type, :punct_close, text, ts-1, te)
1859
- when 'pi', 'initialpunctuation'
1860
- self.emit(type, :punct_initial, text, ts-1, te)
1861
- when 'pf', 'finalpunctuation'
1862
- self.emit(type, :punct_final, text, ts-1, te)
1863
- when 'po', 'otherpunctuation'
1864
- self.emit(type, :punct_other, text, ts-1, te)
1865
-
1866
- # Symbols
1867
- when 's', 'symbol'
1868
- self.emit(type, :symbol_any, text, ts-1, te)
1869
- when 'sm', 'mathsymbol'
1870
- self.emit(type, :symbol_math, text, ts-1, te)
1871
- when 'sc', 'currencysymbol'
1872
- self.emit(type, :symbol_currency, text, ts-1, te)
1873
- when 'sk', 'modifiersymbol'
1874
- self.emit(type, :symbol_modifier, text, ts-1, te)
1875
- when 'so', 'othersymbol'
1876
- self.emit(type, :symbol_other, text, ts-1, te)
1877
-
1878
- # Separators
1879
- when 'z', 'separator'
1880
- self.emit(type, :separator_any, text, ts-1, te)
1881
- when 'zs', 'spaceseparator'
1882
- self.emit(type, :separator_space, text, ts-1, te)
1883
- when 'zl', 'lineseparator'
1884
- self.emit(type, :separator_line, text, ts-1, te)
1885
- when 'zp', 'paragraphseparator'
1886
- self.emit(type, :separator_para, text, ts-1, te)
1887
-
1888
- # Codepoints
1889
- when 'c', 'other'
1890
- self.emit(type, :other, text, ts-1, te)
1891
- when 'cc', 'control'
1892
- self.emit(type, :control, text, ts-1, te)
1893
- when 'cf', 'format'
1894
- self.emit(type, :format, text, ts-1, te)
1895
- when 'cs', 'surrogate'
1896
- self.emit(type, :surrogate, text, ts-1, te)
1897
- when 'co', 'privateuse'
1898
- self.emit(type, :private_use, text, ts-1, te)
1899
- when 'cn', 'unassigned'
1900
- self.emit(type, :unassigned, text, ts-1, te)
1901
-
1902
- # Age
1903
- when 'age=1.1'
1904
- self.emit(type, :age_1_1, text, ts-1, te)
1905
- when 'age=2.0'
1906
- self.emit(type, :age_2_0, text, ts-1, te)
1907
- when 'age=2.1'
1908
- self.emit(type, :age_2_1, text, ts-1, te)
1909
- when 'age=3.0'
1910
- self.emit(type, :age_3_0, text, ts-1, te)
1911
- when 'age=3.1'
1912
- self.emit(type, :age_3_1, text, ts-1, te)
1913
- when 'age=3.2'
1914
- self.emit(type, :age_3_2, text, ts-1, te)
1915
- when 'age=4.0'
1916
- self.emit(type, :age_4_0, text, ts-1, te)
1917
- when 'age=4.1'
1918
- self.emit(type, :age_4_1, text, ts-1, te)
1919
- when 'age=5.0'
1920
- self.emit(type, :age_5_0, text, ts-1, te)
1921
- when 'age=5.1'
1922
- self.emit(type, :age_5_1, text, ts-1, te)
1923
- when 'age=5.2'
1924
- self.emit(type, :age_5_2, text, ts-1, te)
1925
- when 'age=6.0'
1926
- self.emit(type, :age_6_0, text, ts-1, te)
1927
- when 'age=6.1'
1928
- self.emit(type, :age_6_1, text, ts-1, te)
1929
- when 'age=6.2'
1930
- self.emit(type, :age_6_2, text, ts-1, te)
1931
- when 'age=6.3'
1932
- self.emit(type, :age_6_3, text, ts-1, te)
1933
- when 'age=7.0'
1934
- self.emit(type, :age_7_0, text, ts-1, te)
1935
- when 'age=8.0'
1936
- self.emit(type, :age_8_0, text, ts-1, te)
1937
- when 'age=9.0'
1938
- self.emit(type, :age_9_0, text, ts-1, te)
1939
- when 'age=10.0'
1940
- self.emit(type, :age_10_0, text, ts-1, te)
1941
-
1942
- # Derived Properties
1943
- when 'ahex', 'asciihexdigit'
1944
- self.emit(type, :ascii_hex, text, ts-1, te)
1945
- when 'alphabetic'
1946
- self.emit(type, :alphabetic, text, ts-1, te)
1947
- when 'cased'
1948
- self.emit(type, :cased, text, ts-1, te)
1949
- when 'cwcf', 'changeswhencasefolded'
1950
- self.emit(type, :changes_when_casefolded, text, ts-1, te)
1951
- when 'cwcm', 'changeswhencasemapped'
1952
- self.emit(type, :changes_when_casemapped, text, ts-1, te)
1953
- when 'cwl', 'changeswhenlowercased'
1954
- self.emit(type, :changes_when_lowercased, text, ts-1, te)
1955
- when 'cwt', 'changeswhentitlecased'
1956
- self.emit(type, :changes_when_titlecased, text, ts-1, te)
1957
- when 'cwu', 'changeswhenuppercased'
1958
- self.emit(type, :changes_when_uppercased, text, ts-1, te)
1959
- when 'ci', 'caseignorable'
1960
- self.emit(type, :case_ignorable, text, ts-1, te)
1961
- when 'bidic', 'bidicontrol'
1962
- self.emit(type, :bidi_control, text, ts-1, te)
1963
- when 'dash'
1964
- self.emit(type, :dash, text, ts-1, te)
1965
- when 'dep', 'deprecated'
1966
- self.emit(type, :deprecated, text, ts-1, te)
1967
- when 'di', 'defaultignorablecodepoint'
1968
- self.emit(type, :default_ignorable_cp, text, ts-1, te)
1969
- when 'dia', 'diacritic'
1970
- self.emit(type, :diacritic, text, ts-1, te)
1971
- when 'ext', 'extender'
1972
- self.emit(type, :extender, text, ts-1, te)
1973
- when 'grbase', 'graphemebase'
1974
- self.emit(type, :grapheme_base, text, ts-1, te)
1975
- when 'grext', 'graphemeextend'
1976
- self.emit(type, :grapheme_extend, text, ts-1, te)
1977
- when 'grlink', 'graphemelink' # NOTE: deprecated as of Unicode 5.0
1978
- self.emit(type, :grapheme_link, text, ts-1, te)
1979
- when 'hex', 'hexdigit'
1980
- self.emit(type, :hex_digit, text, ts-1, te)
1981
- when 'hyphen' # NOTE: deprecated as of Unicode 6.0
1982
- self.emit(type, :hyphen, text, ts-1, te)
1983
- when 'idc', 'idcontinue'
1984
- self.emit(type, :id_continue, text, ts-1, te)
1985
- when 'ideo', 'ideographic'
1986
- self.emit(type, :ideographic, text, ts-1, te)
1987
- when 'ids', 'idstart'
1988
- self.emit(type, :id_start, text, ts-1, te)
1989
- when 'idsb', 'idsbinaryoperator'
1990
- self.emit(type, :ids_binary_op, text, ts-1, te)
1991
- when 'idst', 'idstrinaryoperator'
1992
- self.emit(type, :ids_trinary_op, text, ts-1, te)
1993
- when 'joinc', 'joincontrol'
1994
- self.emit(type, :join_control, text, ts-1, te)
1995
- when 'loe', 'logicalorderexception'
1996
- self.emit(type, :logical_order_exception, text, ts-1, te)
1997
- when 'lowercase'
1998
- self.emit(type, :lowercase, text, ts-1, te)
1999
- when 'math'
2000
- self.emit(type, :math, text, ts-1, te)
2001
- when 'nchar', 'noncharactercodepoint'
2002
- self.emit(type, :non_character_cp, text, ts-1, te)
2003
- when 'oalpha', 'otheralphabetic'
2004
- self.emit(type, :other_alphabetic, text, ts-1, te)
2005
- when 'odi', 'otherdefaultignorablecodepoint'
2006
- self.emit(type, :other_default_ignorable_cp, text, ts-1, te)
2007
- when 'ogrext', 'othergraphemeextend'
2008
- self.emit(type, :other_grapheme_extended, text, ts-1, te)
2009
- when 'oidc', 'otheridcontinue'
2010
- self.emit(type, :other_id_continue, text, ts-1, te)
2011
- when 'oids', 'otheridstart'
2012
- self.emit(type, :other_id_start, text, ts-1, te)
2013
- when 'olower', 'otherlowercase'
2014
- self.emit(type, :other_lowercase, text, ts-1, te)
2015
- when 'omath', 'othermath'
2016
- self.emit(type, :other_math, text, ts-1, te)
2017
- when 'oupper', 'otheruppercase'
2018
- self.emit(type, :other_uppercase, text, ts-1, te)
2019
- when 'patsyn', 'patternsyntax'
2020
- self.emit(type, :pattern_syntax, text, ts-1, te)
2021
- when 'patws', 'patternwhitespace'
2022
- self.emit(type, :pattern_whitespace, text, ts-1, te)
2023
- when 'qmark', 'quotationmark'
2024
- self.emit(type, :quotation_mark, text, ts-1, te)
2025
- when 'radical'
2026
- self.emit(type, :radical, text, ts-1, te)
2027
- when 'ri', 'regionalindicator'
2028
- self.emit(type, :regional_indicator, text, ts-1, te)
2029
- when 'sd', 'softdotted'
2030
- self.emit(type, :soft_dotted, text, ts-1, te)
2031
- when 'sterm'
2032
- self.emit(type, :sentence_terminal, text, ts-1, te)
2033
- when 'term', 'terminalpunctuation'
2034
- self.emit(type, :terminal_punctuation, text, ts-1, te)
2035
- when 'uideo', 'unifiedideograph'
2036
- self.emit(type, :unified_ideograph, text, ts-1, te)
2037
- when 'uppercase'
2038
- self.emit(type, :uppercase, text, ts-1, te)
2039
- when 'vs', 'variationselector'
2040
- self.emit(type, :variation_selector, text, ts-1, te)
2041
- when 'wspace', 'whitespace'
2042
- self.emit(type, :whitespace, text, ts-1, te)
2043
- when 'xids', 'xidstart'
2044
- self.emit(type, :xid_start, text, ts-1, te)
2045
- when 'xidc', 'xidcontinue'
2046
- self.emit(type, :xid_continue, text, ts-1, te)
2047
-
2048
- # Emoji
2049
- when 'emoji'
2050
- self.emit(type, :emoji_any, text, ts-1, te)
2051
- when 'emojicomponent'
2052
- self.emit(type, :emoji_component, text, ts-1, te)
2053
- when 'emojimodifier'
2054
- self.emit(type, :emoji_modifier, text, ts-1, te)
2055
- when 'emojimodifierbase'
2056
- self.emit(type, :emoji_modifier_base, text, ts-1, te)
2057
- when 'emojipresentation'
2058
- self.emit(type, :emoji_presentation, text, ts-1, te)
2059
-
2060
- # Scripts
2061
- when 'aghb', 'caucasianalbanian'
2062
- self.emit(type, :script_caucasian_albanian, text, ts-1, te)
2063
- when 'arab', 'arabic'
2064
- self.emit(type, :script_arabic, text, ts-1, te)
2065
- when 'armi', 'imperialaramaic'
2066
- self.emit(type, :script_imperial_aramaic, text, ts-1, te)
2067
- when 'armn', 'armenian'
2068
- self.emit(type, :script_armenian, text, ts-1, te)
2069
- when 'avst', 'avestan'
2070
- self.emit(type, :script_avestan, text, ts-1, te)
2071
- when 'bali', 'balinese'
2072
- self.emit(type, :script_balinese, text, ts-1, te)
2073
- when 'bamu', 'bamum'
2074
- self.emit(type, :script_bamum, text, ts-1, te)
2075
- when 'bass', 'bassavah'
2076
- self.emit(type, :script_bassa_vah, text, ts-1, te)
2077
- when 'batk', 'batak'
2078
- self.emit(type, :script_batak, text, ts-1, te)
2079
- when 'beng', 'bengali'
2080
- self.emit(type, :script_bengali, text, ts-1, te)
2081
- when 'bopo', 'bopomofo'
2082
- self.emit(type, :script_bopomofo, text, ts-1, te)
2083
- when 'brah', 'brahmi'
2084
- self.emit(type, :script_brahmi, text, ts-1, te)
2085
- when 'brai', 'braille'
2086
- self.emit(type, :script_braille, text, ts-1, te)
2087
- when 'bugi', 'buginese'
2088
- self.emit(type, :script_buginese, text, ts-1, te)
2089
- when 'buhd', 'buhid'
2090
- self.emit(type, :script_buhid, text, ts-1, te)
2091
- when 'cans', 'canadianaboriginal'
2092
- self.emit(type, :script_canadian_aboriginal, text, ts-1, te)
2093
- when 'cari', 'carian'
2094
- self.emit(type, :script_carian, text, ts-1, te)
2095
- when 'cham'
2096
- self.emit(type, :script_cham, text, ts-1, te)
2097
- when 'cher', 'cherokee'
2098
- self.emit(type, :script_cherokee, text, ts-1, te)
2099
- when 'copt', 'coptic', 'qaac'
2100
- self.emit(type, :script_coptic, text, ts-1, te)
2101
- when 'cprt', 'cypriot'
2102
- self.emit(type, :script_cypriot, text, ts-1, te)
2103
- when 'cyrl', 'cyrillic'
2104
- self.emit(type, :script_cyrillic, text, ts-1, te)
2105
- when 'deva', 'devanagari'
2106
- self.emit(type, :script_devanagari, text, ts-1, te)
2107
- when 'dsrt', 'deseret'
2108
- self.emit(type, :script_deseret, text, ts-1, te)
2109
- when 'dupl', 'duployan'
2110
- self.emit(type, :script_duployan, text, ts-1, te)
2111
- when 'egyp', 'egyptianhieroglyphs'
2112
- self.emit(type, :script_egyptian_hieroglyphs, text, ts-1, te)
2113
- when 'elba', 'elbasan'
2114
- self.emit(type, :script_elbasan, text, ts-1, te)
2115
- when 'ethi', 'ethiopic'
2116
- self.emit(type, :script_ethiopic, text, ts-1, te)
2117
- when 'geor', 'georgian'
2118
- self.emit(type, :script_georgian, text, ts-1, te)
2119
- when 'glag', 'glagolitic'
2120
- self.emit(type, :script_glagolitic, text, ts-1, te)
2121
- when 'goth', 'gothic'
2122
- self.emit(type, :script_gothic, text, ts-1, te)
2123
- when 'gran', 'grantha'
2124
- self.emit(type, :script_grantha, text, ts-1, te)
2125
- when 'grek', 'greek'
2126
- self.emit(type, :script_greek, text, ts-1, te)
2127
- when 'gujr', 'gujarati'
2128
- self.emit(type, :script_gujarati, text, ts-1, te)
2129
- when 'guru', 'gurmukhi'
2130
- self.emit(type, :script_gurmukhi, text, ts-1, te)
2131
- when 'hang', 'hangul'
2132
- self.emit(type, :script_hangul, text, ts-1, te)
2133
- when 'hani', 'han'
2134
- self.emit(type, :script_han, text, ts-1, te)
2135
- when 'hano', 'hanunoo'
2136
- self.emit(type, :script_hanunoo, text, ts-1, te)
2137
- when 'hebr', 'hebrew'
2138
- self.emit(type, :script_hebrew, text, ts-1, te)
2139
- when 'hira', 'hiragana'
2140
- self.emit(type, :script_hiragana, text, ts-1, te)
2141
- when 'hmng', 'pahawhhmong'
2142
- self.emit(type, :script_pahawh_hmong, text, ts-1, te)
2143
- when 'hrkt', 'katakanaorhiragana'
2144
- self.emit(type, :script_katakana_or_hiragana, text, ts-1, te)
2145
- when 'ital', 'olditalic'
2146
- self.emit(type, :script_old_italic, text, ts-1, te)
2147
- when 'java', 'javanese'
2148
- self.emit(type, :script_javanese, text, ts-1, te)
2149
- when 'kali', 'kayahli'
2150
- self.emit(type, :script_kayah_li, text, ts-1, te)
2151
- when 'kana', 'katakana'
2152
- self.emit(type, :script_katakana, text, ts-1, te)
2153
- when 'khar', 'kharoshthi'
2154
- self.emit(type, :script_kharoshthi, text, ts-1, te)
2155
- when 'khmr', 'khmer'
2156
- self.emit(type, :script_khmer, text, ts-1, te)
2157
- when 'khoj', 'khojki'
2158
- self.emit(type, :script_khojki, text, ts-1, te)
2159
- when 'knda', 'kannada'
2160
- self.emit(type, :script_kannada, text, ts-1, te)
2161
- when 'kthi', 'kaithi'
2162
- self.emit(type, :script_kaithi, text, ts-1, te)
2163
- when 'lana', 'taitham'
2164
- self.emit(type, :script_tai_tham, text, ts-1, te)
2165
- when 'laoo', 'lao'
2166
- self.emit(type, :script_lao, text, ts-1, te)
2167
- when 'latn', 'latin'
2168
- self.emit(type, :script_latin, text, ts-1, te)
2169
- when 'lepc', 'lepcha'
2170
- self.emit(type, :script_lepcha, text, ts-1, te)
2171
- when 'limb', 'limbu'
2172
- self.emit(type, :script_limbu, text, ts-1, te)
2173
- when 'lina', 'lineara'
2174
- self.emit(type, :script_linear_a, text, ts-1, te)
2175
- when 'linb', 'linearb'
2176
- self.emit(type, :script_linear_b, text, ts-1, te)
2177
- when 'lisu'
2178
- self.emit(type, :script_lisu, text, ts-1, te)
2179
- when 'lyci', 'lycian'
2180
- self.emit(type, :script_lycian, text, ts-1, te)
2181
- when 'lydi', 'lydian'
2182
- self.emit(type, :script_lydian, text, ts-1, te)
2183
- when 'mlym', 'malayalam'
2184
- self.emit(type, :script_malayalam, text, ts-1, te)
2185
- when 'mahj', 'mahajani'
2186
- self.emit(type, :script_mahajani, text, ts-1, te)
2187
- when 'mand', 'mandaic'
2188
- self.emit(type, :script_mandaic, text, ts-1, te)
2189
- when 'mani', 'manichaean'
2190
- self.emit(type, :script_manichaean, text, ts-1, te)
2191
- when 'mend', 'mendekikakui'
2192
- self.emit(type, :script_mende_kikakui, text, ts-1, te)
2193
- when 'modi'
2194
- self.emit(type, :script_modi, text, ts-1, te)
2195
- when 'mong', 'mongolian'
2196
- self.emit(type, :script_mongolian, text, ts-1, te)
2197
- when 'mroo', 'mro'
2198
- self.emit(type, :script_mro, text, ts-1, te)
2199
- when 'mtei', 'meeteimayek'
2200
- self.emit(type, :script_meetei_mayek, text, ts-1, te)
2201
- when 'mymr', 'myanmar'
2202
- self.emit(type, :script_myanmar, text, ts-1, te)
2203
- when 'narb', 'oldnortharabian'
2204
- self.emit(type, :script_old_north_arabian, text, ts-1, te)
2205
- when 'nbat', 'nabataean'
2206
- self.emit(type, :script_nabataean, text, ts-1, te)
2207
- when 'nkoo', 'nko'
2208
- self.emit(type, :script_nko, text, ts-1, te)
2209
- when 'ogam', 'ogham'
2210
- self.emit(type, :script_ogham, text, ts-1, te)
2211
- when 'olck', 'olchiki'
2212
- self.emit(type, :script_ol_chiki, text, ts-1, te)
2213
- when 'orkh', 'oldturkic'
2214
- self.emit(type, :script_old_turkic, text, ts-1, te)
2215
- when 'orya', 'oriya'
2216
- self.emit(type, :script_oriya, text, ts-1, te)
2217
- when 'osma', 'osmanya'
2218
- self.emit(type, :script_osmanya, text, ts-1, te)
2219
- when 'palm', 'palmyrene'
2220
- self.emit(type, :script_palmyrene, text, ts-1, te)
2221
- when 'pauc', 'paucinhau'
2222
- self.emit(type, :script_pau_cin_hau, text, ts-1, te)
2223
- when 'perm', 'oldpermic'
2224
- self.emit(type, :script_old_permic, text, ts-1, te)
2225
- when 'phag', 'phagspa'
2226
- self.emit(type, :script_phags_pa, text, ts-1, te)
2227
- when 'phli', 'inscriptionalpahlavi'
2228
- self.emit(type, :script_inscriptional_pahlavi, text, ts-1, te)
2229
- when 'phlp', 'psalterpahlavi'
2230
- self.emit(type, :script_psalter_pahlavi, text, ts-1, te)
2231
- when 'phnx', 'phoenician'
2232
- self.emit(type, :script_phoenician, text, ts-1, te)
2233
- when 'prti', 'inscriptionalparthian'
2234
- self.emit(type, :script_inscriptional_parthian, text, ts-1, te)
2235
- when 'rjng', 'rejang'
2236
- self.emit(type, :script_rejang, text, ts-1, te)
2237
- when 'runr', 'runic'
2238
- self.emit(type, :script_runic, text, ts-1, te)
2239
- when 'samr', 'samaritan'
2240
- self.emit(type, :script_samaritan, text, ts-1, te)
2241
- when 'sarb', 'oldsoutharabian'
2242
- self.emit(type, :script_old_south_arabian, text, ts-1, te)
2243
- when 'saur', 'saurashtra'
2244
- self.emit(type, :script_saurashtra, text, ts-1, te)
2245
- when 'shaw', 'shavian'
2246
- self.emit(type, :script_shavian, text, ts-1, te)
2247
- when 'sidd', 'siddham'
2248
- self.emit(type, :script_siddham, text, ts-1, te)
2249
- when 'sind', 'khudawadi'
2250
- self.emit(type, :script_khudawadi, text, ts-1, te)
2251
- when 'sinh', 'sinhala'
2252
- self.emit(type, :script_sinhala, text, ts-1, te)
2253
- when 'sund', 'sundanese'
2254
- self.emit(type, :script_sundanese, text, ts-1, te)
2255
- when 'sylo', 'sylotinagri'
2256
- self.emit(type, :script_syloti_nagri, text, ts-1, te)
2257
- when 'syrc', 'syriac'
2258
- self.emit(type, :script_syriac, text, ts-1, te)
2259
- when 'tagb', 'tagbanwa'
2260
- self.emit(type, :script_tagbanwa, text, ts-1, te)
2261
- when 'tale', 'taile'
2262
- self.emit(type, :script_tai_le, text, ts-1, te)
2263
- when 'talu', 'newtailue'
2264
- self.emit(type, :script_new_tai_lue, text, ts-1, te)
2265
- when 'taml', 'tamil'
2266
- self.emit(type, :script_tamil, text, ts-1, te)
2267
- when 'tavt', 'taiviet'
2268
- self.emit(type, :script_tai_viet, text, ts-1, te)
2269
- when 'telu', 'telugu'
2270
- self.emit(type, :script_telugu, text, ts-1, te)
2271
- when 'tfng', 'tifinagh'
2272
- self.emit(type, :script_tifinagh, text, ts-1, te)
2273
- when 'tglg', 'tagalog'
2274
- self.emit(type, :script_tagalog, text, ts-1, te)
2275
- when 'thaa', 'thaana'
2276
- self.emit(type, :script_thaana, text, ts-1, te)
2277
- when 'thai'
2278
- self.emit(type, :script_thai, text, ts-1, te)
2279
- when 'tibt', 'tibetan'
2280
- self.emit(type, :script_tibetan, text, ts-1, te)
2281
- when 'tirh', 'tirhuta'
2282
- self.emit(type, :script_tirhuta, text, ts-1, te)
2283
- when 'ugar', 'ugaritic'
2284
- self.emit(type, :script_ugaritic, text, ts-1, te)
2285
- when 'vaii', 'vai'
2286
- self.emit(type, :script_vai, text, ts-1, te)
2287
- when 'wara', 'warangciti'
2288
- self.emit(type, :script_warang_citi, text, ts-1, te)
2289
- when 'xpeo', 'oldpersian'
2290
- self.emit(type, :script_old_persian, text, ts-1, te)
2291
- when 'xsux', 'cuneiform'
2292
- self.emit(type, :script_cuneiform, text, ts-1, te)
2293
- when 'yiii', 'yi'
2294
- self.emit(type, :script_yi, text, ts-1, te)
2295
- when 'zinh', 'inherited', 'qaai'
2296
- self.emit(type, :script_inherited, text, ts-1, te)
2297
- when 'zyyy', 'common'
2298
- self.emit(type, :script_common, text, ts-1, te)
2299
- when 'zzzz', 'unknown'
2300
- self.emit(type, :script_unknown, text, ts-1, te)
2301
-
2302
- # Unicode blocks
2303
- when 'inalphabeticpresentationforms'
2304
- self.emit(type, :block_inalphabetic_presentation_forms, text, ts-1, te)
2305
- when 'inarabicpresentationforms-a'
2306
- self.emit(type, :block_inarabic_presentation_forms_a, text, ts-1, te)
2307
- when 'inarabicpresentationforms-b'
2308
- self.emit(type, :block_inarabic_presentation_forms_b, text, ts-1, te)
2309
- when 'inarabic'
2310
- self.emit(type, :block_inarabic, text, ts-1, te)
2311
- when 'inarmenian'
2312
- self.emit(type, :block_inarmenian, text, ts-1, te)
2313
- when 'inarrows'
2314
- self.emit(type, :block_inarrows, text, ts-1, te)
2315
- when 'inbasiclatin'
2316
- self.emit(type, :block_inbasic_latin, text, ts-1, te)
2317
- when 'inbengali'
2318
- self.emit(type, :block_inbengali, text, ts-1, te)
2319
- when 'inblockelements'
2320
- self.emit(type, :block_inblock_elements, text, ts-1, te)
2321
- when 'inbopomofoextended'
2322
- self.emit(type, :block_inbopomofo_extended, text, ts-1, te)
2323
- when 'inbopomofo'
2324
- self.emit(type, :block_inbopomofo, text, ts-1, te)
2325
- when 'inboxdrawing'
2326
- self.emit(type, :block_inbox_drawing, text, ts-1, te)
2327
- when 'inbraillepatterns'
2328
- self.emit(type, :block_inbraille_patterns, text, ts-1, te)
2329
- when 'inbuhid'
2330
- self.emit(type, :block_inbuhid, text, ts-1, te)
2331
- when 'incjkcompatibilityforms'
2332
- self.emit(type, :block_incjk_compatibility_forms, text, ts-1, te)
2333
- when 'incjkcompatibilityideographs'
2334
- self.emit(type, :block_incjk_compatibility_ideographs, text, ts-1, te)
2335
- when 'incjkcompatibility'
2336
- self.emit(type, :block_incjk_compatibility, text, ts-1, te)
2337
- when 'incjkradicalssupplement'
2338
- self.emit(type, :block_incjk_radicals_supplement, text, ts-1, te)
2339
- when 'incjksymbolsandpunctuation'
2340
- self.emit(type, :block_incjk_symbols_and_punctuation, text, ts-1, te)
2341
- when 'incjkunifiedideographsextensiona'
2342
- self.emit(type, :block_incjk_unified_ideographs_extension_a, text, ts-1, te)
2343
- when 'incjkunifiedideographs'
2344
- self.emit(type, :block_incjk_unified_ideographs, text, ts-1, te)
2345
- when 'incherokee'
2346
- self.emit(type, :block_incherokee, text, ts-1, te)
2347
- when 'incombiningdiacriticalmarksforsymbols'
2348
- self.emit(type, :block_incombining_diacritical_marks_for_symbols, text, ts-1, te)
2349
- when 'incombiningdiacriticalmarks'
2350
- self.emit(type, :block_incombining_diacritical_marks, text, ts-1, te)
2351
- when 'incombininghalfmarks'
2352
- self.emit(type, :block_incombining_half_marks, text, ts-1, te)
2353
- when 'incontrolpictures'
2354
- self.emit(type, :block_incontrol_pictures, text, ts-1, te)
2355
- when 'incurrencysymbols'
2356
- self.emit(type, :block_incurrency_symbols, text, ts-1, te)
2357
- when 'incyrillicsupplement'
2358
- self.emit(type, :block_incyrillic_supplement, text, ts-1, te)
2359
- when 'incyrillic'
2360
- self.emit(type, :block_incyrillic, text, ts-1, te)
2361
- when 'indevanagari'
2362
- self.emit(type, :block_indevanagari, text, ts-1, te)
2363
- when 'indingbats'
2364
- self.emit(type, :block_indingbats, text, ts-1, te)
2365
- when 'inenclosedalphanumerics'
2366
- self.emit(type, :block_inenclosed_alphanumerics, text, ts-1, te)
2367
- when 'inenclosedcjklettersandmonths'
2368
- self.emit(type, :block_inenclosed_cjk_letters_and_months, text, ts-1, te)
2369
- when 'inethiopic'
2370
- self.emit(type, :block_inethiopic, text, ts-1, te)
2371
- when 'ingeneralpunctuation'
2372
- self.emit(type, :block_ingeneral_punctuation, text, ts-1, te)
2373
- when 'ingeometricshapes'
2374
- self.emit(type, :block_ingeometric_shapes, text, ts-1, te)
2375
- when 'ingeorgian'
2376
- self.emit(type, :block_ingeorgian, text, ts-1, te)
2377
- when 'ingreekextended'
2378
- self.emit(type, :block_ingreek_extended, text, ts-1, te)
2379
- when 'ingreekandcoptic'
2380
- self.emit(type, :block_ingreek_and_coptic, text, ts-1, te)
2381
- when 'ingujarati'
2382
- self.emit(type, :block_ingujarati, text, ts-1, te)
2383
- when 'ingurmukhi'
2384
- self.emit(type, :block_ingurmukhi, text, ts-1, te)
2385
- when 'inhalfwidthandfullwidthforms'
2386
- self.emit(type, :block_inhalfwidth_and_fullwidth_forms, text, ts-1, te)
2387
- when 'inhangulcompatibilityjamo'
2388
- self.emit(type, :block_inhangul_compatibility_jamo, text, ts-1, te)
2389
- when 'inhanguljamo'
2390
- self.emit(type, :block_inhangul_jamo, text, ts-1, te)
2391
- when 'inhangulsyllables'
2392
- self.emit(type, :block_inhangul_syllables, text, ts-1, te)
2393
- when 'inhanunoo'
2394
- self.emit(type, :block_inhanunoo, text, ts-1, te)
2395
- when 'inhebrew'
2396
- self.emit(type, :block_inhebrew, text, ts-1, te)
2397
- when 'inhighprivateusesurrogates'
2398
- self.emit(type, :block_inhigh_private_use_surrogates, text, ts-1, te)
2399
- when 'inhighsurrogates'
2400
- self.emit(type, :block_inhigh_surrogates, text, ts-1, te)
2401
- when 'inhiragana'
2402
- self.emit(type, :block_inhiragana, text, ts-1, te)
2403
- when 'inipaextensions'
2404
- self.emit(type, :block_inipa_extensions, text, ts-1, te)
2405
- when 'inideographicdescriptioncharacters'
2406
- self.emit(type, :block_inideographic_description_characters, text, ts-1, te)
2407
- when 'inkanbun'
2408
- self.emit(type, :block_inkanbun, text, ts-1, te)
2409
- when 'inkangxiradicals'
2410
- self.emit(type, :block_inkangxi_radicals, text, ts-1, te)
2411
- when 'inkannada'
2412
- self.emit(type, :block_inkannada, text, ts-1, te)
2413
- when 'inkatakanaphoneticextensions'
2414
- self.emit(type, :block_inkatakana_phonetic_extensions, text, ts-1, te)
2415
- when 'inkatakana'
2416
- self.emit(type, :block_inkatakana, text, ts-1, te)
2417
- when 'inkhmersymbols'
2418
- self.emit(type, :block_inkhmer_symbols, text, ts-1, te)
2419
- when 'inkhmer'
2420
- self.emit(type, :block_inkhmer, text, ts-1, te)
2421
- when 'inlao'
2422
- self.emit(type, :block_inlao, text, ts-1, te)
2423
- when 'inlatin-1supplement'
2424
- self.emit(type, :block_inlatin_1_supplement, text, ts-1, te)
2425
- when 'inlatinextended-a'
2426
- self.emit(type, :block_inlatin_extended_a, text, ts-1, te)
2427
- when 'inlatinextended-b'
2428
- self.emit(type, :block_inlatin_extended_b, text, ts-1, te)
2429
- when 'inlatinextendedadditional'
2430
- self.emit(type, :block_inlatin_extended_additional, text, ts-1, te)
2431
- when 'inletterlikesymbols'
2432
- self.emit(type, :block_inletterlike_symbols, text, ts-1, te)
2433
- when 'inlimbu'
2434
- self.emit(type, :block_inlimbu, text, ts-1, te)
2435
- when 'inlowsurrogates'
2436
- self.emit(type, :block_inlow_surrogates, text, ts-1, te)
2437
- when 'inmalayalam'
2438
- self.emit(type, :block_inmalayalam, text, ts-1, te)
2439
- when 'inmathematicaloperators'
2440
- self.emit(type, :block_inmathematical_operators, text, ts-1, te)
2441
- when 'inmiscellaneousmathematicalsymbols-a'
2442
- self.emit(type, :block_inmiscellaneous_mathematical_symbols_a, text, ts-1, te)
2443
- when 'inmiscellaneousmathematicalsymbols-b'
2444
- self.emit(type, :block_inmiscellaneous_mathematical_symbols_b, text, ts-1, te)
2445
- when 'inmiscellaneoussymbolsandarrows'
2446
- self.emit(type, :block_inmiscellaneous_symbols_and_arrows, text, ts-1, te)
2447
- when 'inmiscellaneoussymbols'
2448
- self.emit(type, :block_inmiscellaneous_symbols, text, ts-1, te)
2449
- when 'inmiscellaneoustechnical'
2450
- self.emit(type, :block_inmiscellaneous_technical, text, ts-1, te)
2451
- when 'inmongolian'
2452
- self.emit(type, :block_inmongolian, text, ts-1, te)
2453
- when 'inmyanmar'
2454
- self.emit(type, :block_inmyanmar, text, ts-1, te)
2455
- when 'innumberforms'
2456
- self.emit(type, :block_innumber_forms, text, ts-1, te)
2457
- when 'inogham'
2458
- self.emit(type, :block_inogham, text, ts-1, te)
2459
- when 'inopticalcharacterrecognition'
2460
- self.emit(type, :block_inoptical_character_recognition, text, ts-1, te)
2461
- when 'inoriya'
2462
- self.emit(type, :block_inoriya, text, ts-1, te)
2463
- when 'inphoneticextensions'
2464
- self.emit(type, :block_inphonetic_extensions, text, ts-1, te)
2465
- when 'inprivateusearea'
2466
- self.emit(type, :block_inprivate_use_area, text, ts-1, te)
2467
- when 'inrunic'
2468
- self.emit(type, :block_inrunic, text, ts-1, te)
2469
- when 'insinhala'
2470
- self.emit(type, :block_insinhala, text, ts-1, te)
2471
- when 'insmallformvariants'
2472
- self.emit(type, :block_insmall_form_variants, text, ts-1, te)
2473
- when 'inspacingmodifierletters'
2474
- self.emit(type, :block_inspacing_modifier_letters, text, ts-1, te)
2475
- when 'inspecials'
2476
- self.emit(type, :block_inspecials, text, ts-1, te)
2477
- when 'insuperscriptsandsubscripts'
2478
- self.emit(type, :block_insuperscripts_and_subscripts, text, ts-1, te)
2479
- when 'insupplementalarrows-a'
2480
- self.emit(type, :block_insupplemental_arrows_a, text, ts-1, te)
2481
- when 'insupplementalarrows-b'
2482
- self.emit(type, :block_insupplemental_arrows_b, text, ts-1, te)
2483
- when 'insupplementalmathematicaloperators'
2484
- self.emit(type, :block_insupplemental_mathematical_operators, text, ts-1, te)
2485
- when 'insyriac'
2486
- self.emit(type, :block_insyriac, text, ts-1, te)
2487
- when 'intagalog'
2488
- self.emit(type, :block_intagalog, text, ts-1, te)
2489
- when 'intagbanwa'
2490
- self.emit(type, :block_intagbanwa, text, ts-1, te)
2491
- when 'intaile'
2492
- self.emit(type, :block_intai_le, text, ts-1, te)
2493
- when 'intamil'
2494
- self.emit(type, :block_intamil, text, ts-1, te)
2495
- when 'intelugu'
2496
- self.emit(type, :block_intelugu, text, ts-1, te)
2497
- when 'inthaana'
2498
- self.emit(type, :block_inthaana, text, ts-1, te)
2499
- when 'inthai'
2500
- self.emit(type, :block_inthai, text, ts-1, te)
2501
- when 'intibetan'
2502
- self.emit(type, :block_intibetan, text, ts-1, te)
2503
- when 'inunifiedcanadianaboriginalsyllabics'
2504
- self.emit(type, :block_inunified_canadian_aboriginal_syllabics, text, ts-1, te)
2505
- when 'invariationselectors'
2506
- self.emit(type, :block_invariation_selectors, text, ts-1, te)
2507
- when 'inyiradicals'
2508
- self.emit(type, :block_inyi_radicals, text, ts-1, te)
2509
- when 'inyisyllables'
2510
- self.emit(type, :block_inyi_syllables, text, ts-1, te)
2511
- when 'inyijinghexagramsymbols'
2512
- self.emit(type, :block_inyijing_hexagram_symbols, text, ts-1, te)
1244
+ name = data[ts+2..te-2].pack('c*').gsub(/[\^\s_\-]/, '').downcase
2513
1245
 
2514
- else
2515
- # Should this really be an error? Or would emitting
2516
- # an :unknown for the property be better?
2517
- #
2518
- # self.emit(type, :unknown, text, ts-1, te)
1246
+ token = self.class.short_prop_map[name] || self.class.long_prop_map[name]
1247
+ raise UnknownUnicodePropertyError.new(name) unless token
2519
1248
 
2520
- raise UnknownUnicodePropertyError.new(name)
2521
- end
1249
+ self.emit(type, token.to_sym, text, ts-1, te)
2522
1250
 
2523
1251
  begin
2524
1252
  top -= 1
@@ -2529,19 +1257,19 @@ te = p+1
2529
1257
 
2530
1258
  end
2531
1259
  end
2532
- when 69 then
2533
- # line 153 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1260
+ when 65 then
1261
+ # line 149 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2534
1262
  begin
2535
1263
  te = p+1
2536
1264
  begin
2537
- set_type = set_depth > 1 ? :subset : :set
2538
- set_depth -= 1; in_set = set_depth > 0 ? true : false
1265
+ set_depth -= 1
1266
+ in_set = set_depth > 0 ? true : false
2539
1267
 
2540
- emit(set_type, :close, *text(data, ts, te))
1268
+ emit(:set, :close, *text(data, ts, te))
2541
1269
 
2542
1270
  if set_depth == 0
2543
1271
  begin
2544
- cs = 142
1272
+ cs = 113
2545
1273
  _goto_level = _again
2546
1274
  next
2547
1275
  end
@@ -2557,20 +1285,20 @@ te = p+1
2557
1285
  end
2558
1286
  end
2559
1287
  end
2560
- when 73 then
2561
- # line 166 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1288
+ when 70 then
1289
+ # line 162 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2562
1290
  begin
2563
1291
  te = p+1
2564
1292
  begin # special case, emits two tokens
2565
- set_type = set_depth > 1 ? :subset : :set
2566
- set_depth -= 1; in_set = set_depth > 0 ? true : false
1293
+ set_depth -= 1
1294
+ in_set = set_depth > 0 ? true : false
2567
1295
 
2568
- emit(set_type, :member, copy(data, ts..te-2), ts, te)
2569
- emit(set_type, :close, copy(data, ts+1..te-1), ts, te)
1296
+ emit(:literal, :literal, copy(data, ts..te-2), ts, te)
1297
+ emit(:set, :close, copy(data, ts+1..te-1), ts, te)
2570
1298
 
2571
1299
  if set_depth == 0
2572
1300
  begin
2573
- cs = 142
1301
+ cs = 113
2574
1302
  _goto_level = _again
2575
1303
  next
2576
1304
  end
@@ -2586,315 +1314,192 @@ te = p+1
2586
1314
  end
2587
1315
  end
2588
1316
  end
2589
- when 70 then
2590
- # line 180 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1317
+ when 20 then
1318
+ # line 176 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2591
1319
  begin
2592
1320
  te = p+1
2593
- begin
2594
- text = text(data, ts, te).first
2595
- if tokens.last[1] == :open
2596
- emit(set_type, :negate, text, ts, te)
2597
- else
2598
- emit(set_type, :member, text, ts, te)
2599
- end
1321
+ begin # special case, emits two tokens
1322
+ emit(:literal, :literal, '-', ts, te)
1323
+ emit(:set, :intersection, '&&', ts, te)
2600
1324
  end
2601
1325
  end
2602
- when 19 then
2603
- # line 189 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1326
+ when 66 then
1327
+ # line 181 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2604
1328
  begin
2605
1329
  te = p+1
2606
1330
  begin
2607
- emit(set_type, :range, *text(data, ts, te))
1331
+ text = text(data, ts, te).first
1332
+ if tokens.last[1] == :open
1333
+ emit(:set, :negate, text, ts, te)
1334
+ else
1335
+ emit(:literal, :literal, text, ts, te)
1336
+ end
2608
1337
  end
2609
1338
  end
2610
- when 72 then
2611
- # line 193 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1339
+ when 68 then
1340
+ # line 202 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2612
1341
  begin
2613
1342
  te = p+1
2614
1343
  begin
2615
- emit(set_type, :intersection, *text(data, ts, te))
1344
+ emit(:set, :intersection, *text(data, ts, te))
2616
1345
  end
2617
1346
  end
2618
- when 68 then
2619
- # line 197 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1347
+ when 64 then
1348
+ # line 206 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2620
1349
  begin
2621
1350
  te = p+1
2622
1351
  begin
2623
1352
  begin
2624
1353
  stack[top] = cs
2625
1354
  top+= 1
2626
- cs = 170
1355
+ cs = 137
2627
1356
  _goto_level = _again
2628
1357
  next
2629
1358
  end
2630
1359
 
2631
1360
  end
2632
1361
  end
2633
- when 23 then
2634
- # line 209 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1362
+ when 24 then
1363
+ # line 217 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2635
1364
  begin
2636
1365
  te = p+1
2637
1366
  begin
2638
1367
  text = text(data, ts, te).first
2639
1368
 
1369
+ type = :posixclass
2640
1370
  class_name = text[2..-3]
2641
1371
  if class_name[0].chr == '^'
2642
- class_name = "non#{class_name[1..-1]}"
1372
+ class_name = class_name[1..-1]
1373
+ type = :nonposixclass
2643
1374
  end
2644
1375
 
2645
- token_sym = "class_#{class_name}".to_sym
2646
- emit(set_type, token_sym, text, ts, te)
1376
+ emit(type, class_name.to_sym, text, ts, te)
2647
1377
  end
2648
1378
  end
2649
- when 22 then
2650
- # line 221 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1379
+ when 23 then
1380
+ # line 230 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2651
1381
  begin
2652
1382
  te = p+1
2653
1383
  begin
2654
- emit(set_type, :collation, *text(data, ts, te))
1384
+ emit(:set, :collation, *text(data, ts, te))
2655
1385
  end
2656
1386
  end
2657
- when 24 then
2658
- # line 225 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1387
+ when 25 then
1388
+ # line 234 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2659
1389
  begin
2660
1390
  te = p+1
2661
1391
  begin
2662
- emit(set_type, :equivalent, *text(data, ts, te))
1392
+ emit(:set, :equivalent, *text(data, ts, te))
2663
1393
  end
2664
1394
  end
2665
- when 67 then
2666
- # line 231 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1395
+ when 63 then
1396
+ # line 238 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2667
1397
  begin
2668
1398
  te = p+1
2669
1399
  begin
2670
- emit(set_type, :member, *text(data, ts, te))
1400
+ emit(:literal, :literal, *text(data, ts, te))
2671
1401
  end
2672
1402
  end
2673
- when 66 then
2674
- # line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1403
+ when 18 then
1404
+ # line 246 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2675
1405
  begin
2676
1406
  te = p+1
2677
1407
  begin
2678
- emit(set_type, :member, *text(data, ts, te))
1408
+ char, *rest = *text(data, ts, te)
1409
+ char.force_encoding('utf-8') if char.respond_to?(:force_encoding)
1410
+ emit(:literal, :literal, char, *rest)
2679
1411
  end
2680
1412
  end
2681
- when 75 then
2682
- # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1413
+ when 69 then
1414
+ # line 190 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2683
1415
  begin
2684
1416
  te = p
2685
1417
  p = p - 1; begin
2686
- set_depth += 1; in_set = true
2687
- set_type = set_depth > 1 ? :subset : :set
2688
-
2689
- emit(set_type, :open, *text(data, ts, te))
2690
- begin
2691
- stack[top] = cs
2692
- top+= 1
2693
- cs = 158
2694
- _goto_level = _again
2695
- next
2696
- end
2697
-
1418
+ text = text(data, ts, te).first
1419
+ # ranges cant start with a subset or intersection/negation/range operator
1420
+ if tokens.last[0] == :set
1421
+ emit(:literal, :literal, text, ts, te)
1422
+ else
1423
+ emit(:set, :range, text, ts, te)
1424
+ end
2698
1425
  end
2699
1426
  end
2700
- when 71 then
2701
- # line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1427
+ when 72 then
1428
+ # line 210 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2702
1429
  begin
2703
1430
  te = p
2704
1431
  p = p - 1; begin
2705
- emit(set_type, :member, *text(data, ts, te))
2706
- end
2707
- end
2708
- when 21 then
2709
- # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2710
- begin
2711
- begin p = ((te))-1; end
2712
- begin
2713
- set_depth += 1; in_set = true
2714
- set_type = set_depth > 1 ? :subset : :set
1432
+ set_depth += 1
2715
1433
 
2716
- emit(set_type, :open, *text(data, ts, te))
1434
+ emit(:set, :open, *text(data, ts, te))
2717
1435
  begin
2718
1436
  stack[top] = cs
2719
1437
  top+= 1
2720
- cs = 158
1438
+ cs = 130
2721
1439
  _goto_level = _again
2722
1440
  next
2723
1441
  end
2724
1442
 
2725
1443
  end
2726
1444
  end
2727
- when 17 then
2728
- # line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2729
- begin
2730
- begin p = ((te))-1; end
2731
- begin
2732
- emit(set_type, :member, *text(data, ts, te))
2733
- end
2734
- end
2735
- when 80 then
2736
- # line 247 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1445
+ when 67 then
1446
+ # line 246 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2737
1447
  begin
2738
- te = p+1
2739
- begin
2740
- emit(set_type, :backspace, *text(data, ts, te, 1))
2741
- begin
2742
- top -= 1
2743
- cs = stack[top]
2744
- _goto_level = _again
2745
- next
2746
- end
2747
-
1448
+ te = p
1449
+ p = p - 1; begin
1450
+ char, *rest = *text(data, ts, te)
1451
+ char.force_encoding('utf-8') if char.respond_to?(:force_encoding)
1452
+ emit(:literal, :literal, char, *rest)
2748
1453
  end
2749
1454
  end
2750
- when 78 then
2751
- # line 252 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1455
+ when 19 then
1456
+ # line 190 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2752
1457
  begin
2753
- te = p+1
1458
+ begin p = ((te))-1; end
2754
1459
  begin
2755
- case text = text(data, ts, te, 1).first
2756
- when '\d'; emit(set_type, :type_digit, text, ts-1, te)
2757
- when '\D'; emit(set_type, :type_nondigit, text, ts-1, te)
2758
- when '\h'; emit(set_type, :type_hex, text, ts-1, te)
2759
- when '\H'; emit(set_type, :type_nonhex, text, ts-1, te)
2760
- when '\s'; emit(set_type, :type_space, text, ts-1, te)
2761
- when '\S'; emit(set_type, :type_nonspace, text, ts-1, te)
2762
- when '\w'; emit(set_type, :type_word, text, ts-1, te)
2763
- when '\W'; emit(set_type, :type_nonword, text, ts-1, te)
2764
- when '\R'; emit(set_type, :type_linebreak, text, ts-1, te)
2765
- when '\X'; emit(set_type, :type_xgrapheme, text, ts-1, te)
1460
+ text = text(data, ts, te).first
1461
+ # ranges cant start with a subset or intersection/negation/range operator
1462
+ if tokens.last[0] == :set
1463
+ emit(:literal, :literal, text, ts, te)
1464
+ else
1465
+ emit(:set, :range, text, ts, te)
2766
1466
  end
2767
- begin
2768
- top -= 1
2769
- cs = stack[top]
2770
- _goto_level = _again
2771
- next
2772
- end
2773
-
2774
- end
2775
- end
2776
- when 84 then
2777
- # line 268 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2778
- begin
2779
- te = p+1
2780
- begin
2781
- emit(set_type, :range_hex, *text(data, ts, te, 1))
2782
- begin
2783
- top -= 1
2784
- cs = stack[top]
2785
- _goto_level = _again
2786
- next
2787
- end
2788
-
2789
1467
  end
2790
1468
  end
2791
- when 76 then
2792
- # line 278 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1469
+ when 22 then
1470
+ # line 210 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2793
1471
  begin
2794
- te = p+1
1472
+ begin p = ((te))-1; end
2795
1473
  begin
2796
- emit(set_type, :escape, *text(data, ts, te, 1))
2797
- begin
2798
- top -= 1
2799
- cs = stack[top]
2800
- _goto_level = _again
2801
- next
2802
- end
1474
+ set_depth += 1
2803
1475
 
2804
- end
2805
- end
2806
- when 79 then
2807
- # line 283 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2808
- begin
2809
- te = p+1
2810
- begin
2811
- p = p - 1;
2812
- cs = 158;
1476
+ emit(:set, :open, *text(data, ts, te))
2813
1477
  begin
2814
1478
  stack[top] = cs
2815
1479
  top+= 1
2816
- cs = 157
1480
+ cs = 130
2817
1481
  _goto_level = _again
2818
1482
  next
2819
1483
  end
2820
1484
 
2821
1485
  end
2822
1486
  end
2823
- when 83 then
2824
- # line 268 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2825
- begin
2826
- te = p
2827
- p = p - 1; begin
2828
- emit(set_type, :range_hex, *text(data, ts, te, 1))
2829
- begin
2830
- top -= 1
2831
- cs = stack[top]
2832
- _goto_level = _again
2833
- next
2834
- end
2835
-
2836
- end
2837
- end
2838
- when 82 then
2839
- # line 273 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2840
- begin
2841
- te = p
2842
- p = p - 1; begin
2843
- emit(set_type, :member_hex, *text(data, ts, te, 1))
2844
- begin
2845
- top -= 1
2846
- cs = stack[top]
2847
- _goto_level = _again
2848
- next
2849
- end
2850
-
2851
- end
2852
- end
2853
- when 81 then
2854
- # line 294 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2855
- begin
2856
- te = p
2857
- p = p - 1; begin
2858
- emit(set_type, :escape, *text(data, ts, te, 1))
2859
- begin
2860
- top -= 1
2861
- cs = stack[top]
2862
- _goto_level = _again
2863
- next
2864
- end
2865
-
2866
- end
2867
- end
2868
- when 27 then
2869
- # line 273 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2870
- begin
2871
- begin p = ((te))-1; end
2872
- begin
2873
- emit(set_type, :member_hex, *text(data, ts, te, 1))
2874
- begin
2875
- top -= 1
2876
- cs = stack[top]
2877
- _goto_level = _again
2878
- next
2879
- end
2880
-
2881
- end
2882
- end
2883
- when 25 then
2884
- # line 1 "NONE"
1487
+ when 17 then
1488
+ # line 246 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2885
1489
  begin
2886
- case act
2887
- when 0 then
2888
- begin begin
2889
- cs = 0
2890
- _goto_level = _again
2891
- next
2892
- end
2893
- end
2894
- when 18 then
2895
- begin begin p = ((te))-1; end
2896
-
2897
- emit(set_type, :escape, *text(data, ts, te, 1))
1490
+ begin p = ((te))-1; end
1491
+ begin
1492
+ char, *rest = *text(data, ts, te)
1493
+ char.force_encoding('utf-8') if char.respond_to?(:force_encoding)
1494
+ emit(:literal, :literal, char, *rest)
1495
+ end
1496
+ end
1497
+ when 74 then
1498
+ # line 256 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1499
+ begin
1500
+ te = p+1
1501
+ begin
1502
+ emit(:escape, :literal, *text(data, ts, te, 1))
2898
1503
  begin
2899
1504
  top -= 1
2900
1505
  cs = stack[top]
@@ -2902,23 +1507,27 @@ end
2902
1507
  next
2903
1508
  end
2904
1509
 
2905
- end
2906
- when 20 then
2907
- begin begin p = ((te))-1; end
2908
-
2909
- emit(set_type, :escape, *text(data, ts, te, 1))
1510
+ end
1511
+ end
1512
+ when 73 then
1513
+ # line 261 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1514
+ begin
1515
+ te = p+1
1516
+ begin
1517
+ p = p - 1;
1518
+ cs = 130;
2910
1519
  begin
2911
- top -= 1
2912
- cs = stack[top]
1520
+ stack[top] = cs
1521
+ top+= 1
1522
+ cs = 138
2913
1523
  _goto_level = _again
2914
1524
  next
2915
1525
  end
2916
1526
 
2917
- end
2918
- end
2919
- end
2920
- when 89 then
2921
- # line 304 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1527
+ end
1528
+ end
1529
+ when 79 then
1530
+ # line 272 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2922
1531
  begin
2923
1532
  te = p+1
2924
1533
  begin
@@ -2933,8 +1542,8 @@ te = p+1
2933
1542
 
2934
1543
  end
2935
1544
  end
2936
- when 94 then
2937
- # line 310 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1545
+ when 85 then
1546
+ # line 278 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2938
1547
  begin
2939
1548
  te = p+1
2940
1549
  begin
@@ -2948,8 +1557,8 @@ te = p+1
2948
1557
 
2949
1558
  end
2950
1559
  end
2951
- when 86 then
2952
- # line 315 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1560
+ when 76 then
1561
+ # line 283 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2953
1562
  begin
2954
1563
  te = p+1
2955
1564
  begin
@@ -2979,8 +1588,8 @@ te = p+1
2979
1588
 
2980
1589
  end
2981
1590
  end
2982
- when 91 then
2983
- # line 336 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1591
+ when 82 then
1592
+ # line 304 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2984
1593
  begin
2985
1594
  te = p+1
2986
1595
  begin
@@ -2988,11 +1597,11 @@ te = p+1
2988
1597
  # it is a word boundary anchor. A syntax might "normalize" it if needed.
2989
1598
  case text = text(data, ts, te, 1).first
2990
1599
  when '\a'; emit(:escape, :bell, text, ts-1, te)
1600
+ when '\b'; emit(:escape, :backspace, text, ts-1, te)
2991
1601
  when '\e'; emit(:escape, :escape, text, ts-1, te)
2992
1602
  when '\f'; emit(:escape, :form_feed, text, ts-1, te)
2993
1603
  when '\n'; emit(:escape, :newline, text, ts-1, te)
2994
1604
  when '\r'; emit(:escape, :carriage, text, ts-1, te)
2995
- when '\s'; emit(:escape, :space, text, ts-1, te)
2996
1605
  when '\t'; emit(:escape, :tab, text, ts-1, te)
2997
1606
  when '\v'; emit(:escape, :vertical_tab, text, ts-1, te)
2998
1607
  end
@@ -3005,8 +1614,8 @@ te = p+1
3005
1614
 
3006
1615
  end
3007
1616
  end
3008
- when 34 then
3009
- # line 352 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1617
+ when 33 then
1618
+ # line 320 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3010
1619
  begin
3011
1620
  te = p+1
3012
1621
  begin
@@ -3025,8 +1634,8 @@ te = p+1
3025
1634
 
3026
1635
  end
3027
1636
  end
3028
- when 101 then
3029
- # line 362 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1637
+ when 92 then
1638
+ # line 330 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3030
1639
  begin
3031
1640
  te = p+1
3032
1641
  begin
@@ -3040,38 +1649,8 @@ te = p+1
3040
1649
 
3041
1650
  end
3042
1651
  end
3043
- when 104 then
3044
- # line 367 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3045
- begin
3046
- te = p+1
3047
- begin
3048
- emit(:escape, :hex_wide, *text(data, ts, te, 1))
3049
- begin
3050
- top -= 1
3051
- cs = stack[top]
3052
- _goto_level = _again
3053
- next
3054
- end
3055
-
3056
- end
3057
- end
3058
- when 36 then
3059
- # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3060
- begin
3061
- te = p+1
3062
- begin
3063
- raise InvalidSequenceError.new("wide hex sequence")
3064
- begin
3065
- top -= 1
3066
- cs = stack[top]
3067
- _goto_level = _again
3068
- next
3069
- end
3070
-
3071
- end
3072
- end
3073
- when 30 then
3074
- # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1652
+ when 29 then
1653
+ # line 339 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3075
1654
  begin
3076
1655
  te = p+1
3077
1656
  begin
@@ -3095,8 +1674,8 @@ te = p+1
3095
1674
 
3096
1675
  end
3097
1676
  end
3098
- when 33 then
3099
- # line 396 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1677
+ when 32 then
1678
+ # line 354 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3100
1679
  begin
3101
1680
  te = p+1
3102
1681
  begin
@@ -3120,44 +1699,46 @@ te = p+1
3120
1699
 
3121
1700
  end
3122
1701
  end
3123
- when 90 then
3124
- # line 411 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1702
+ when 80 then
1703
+ # line 369 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3125
1704
  begin
3126
1705
  te = p+1
3127
1706
  begin
3128
1707
  p = p - 1;
3129
- cs = 142;
1708
+ cs = ((in_set ? 130 : 113));
3130
1709
  begin
3131
1710
  stack[top] = cs
3132
1711
  top+= 1
3133
- cs = 157
1712
+ cs = 128
3134
1713
  _goto_level = _again
3135
1714
  next
3136
1715
  end
3137
1716
 
3138
1717
  end
3139
1718
  end
3140
- when 85 then
3141
- # line 417 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1719
+ when 81 then
1720
+ # line 375 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3142
1721
  begin
3143
1722
  te = p+1
3144
1723
  begin
3145
- emit(:escape, :literal, *text(data, ts, te, 1))
1724
+ p = p - 1;
1725
+ cs = ((in_set ? 130 : 113));
3146
1726
  begin
3147
- top -= 1
3148
- cs = stack[top]
1727
+ stack[top] = cs
1728
+ top+= 1
1729
+ cs = 129
3149
1730
  _goto_level = _again
3150
1731
  next
3151
1732
  end
3152
1733
 
3153
1734
  end
3154
1735
  end
3155
- when 93 then
3156
- # line 310 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1736
+ when 75 then
1737
+ # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3157
1738
  begin
3158
- te = p
3159
- p = p - 1; begin
3160
- emit(:escape, :octal, *text(data, ts, te, 1))
1739
+ te = p+1
1740
+ begin
1741
+ emit(:escape, :literal, *text(data, ts, te, 1))
3161
1742
  begin
3162
1743
  top -= 1
3163
1744
  cs = stack[top]
@@ -3167,12 +1748,12 @@ p = p - 1; begin
3167
1748
 
3168
1749
  end
3169
1750
  end
3170
- when 100 then
3171
- # line 362 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1751
+ when 84 then
1752
+ # line 278 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3172
1753
  begin
3173
1754
  te = p
3174
1755
  p = p - 1; begin
3175
- emit(:escape, :hex, *text(data, ts, te, 1))
1756
+ emit(:escape, :octal, *text(data, ts, te, 1))
3176
1757
  begin
3177
1758
  top -= 1
3178
1759
  cs = stack[top]
@@ -3182,12 +1763,12 @@ p = p - 1; begin
3182
1763
 
3183
1764
  end
3184
1765
  end
3185
- when 102 then
3186
- # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1766
+ when 91 then
1767
+ # line 330 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3187
1768
  begin
3188
1769
  te = p
3189
1770
  p = p - 1; begin
3190
- raise InvalidSequenceError.new("wide hex sequence")
1771
+ emit(:escape, :hex, *text(data, ts, te, 1))
3191
1772
  begin
3192
1773
  top -= 1
3193
1774
  cs = stack[top]
@@ -3197,8 +1778,8 @@ p = p - 1; begin
3197
1778
 
3198
1779
  end
3199
1780
  end
3200
- when 96 then
3201
- # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1781
+ when 87 then
1782
+ # line 339 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3202
1783
  begin
3203
1784
  te = p
3204
1785
  p = p - 1; begin
@@ -3222,8 +1803,8 @@ p = p - 1; begin
3222
1803
 
3223
1804
  end
3224
1805
  end
3225
- when 98 then
3226
- # line 396 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1806
+ when 89 then
1807
+ # line 354 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3227
1808
  begin
3228
1809
  te = p
3229
1810
  p = p - 1; begin
@@ -3247,23 +1828,8 @@ p = p - 1; begin
3247
1828
 
3248
1829
  end
3249
1830
  end
3250
- when 37 then
3251
- # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3252
- begin
3253
- begin p = ((te))-1; end
3254
- begin
3255
- raise InvalidSequenceError.new("wide hex sequence")
3256
- begin
3257
- top -= 1
3258
- cs = stack[top]
3259
- _goto_level = _again
3260
- next
3261
- end
3262
-
3263
- end
3264
- end
3265
- when 29 then
3266
- # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1831
+ when 28 then
1832
+ # line 339 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3267
1833
  begin
3268
1834
  begin p = ((te))-1; end
3269
1835
  begin
@@ -3287,8 +1853,8 @@ p = p - 1; begin
3287
1853
 
3288
1854
  end
3289
1855
  end
3290
- when 32 then
3291
- # line 396 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1856
+ when 31 then
1857
+ # line 354 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3292
1858
  begin
3293
1859
  begin p = ((te))-1; end
3294
1860
  begin
@@ -3312,11 +1878,11 @@ p = p - 1; begin
3312
1878
 
3313
1879
  end
3314
1880
  end
3315
- when 92 then
1881
+ when 83 then
3316
1882
  # line 1 "NONE"
3317
1883
  begin
3318
1884
  case act
3319
- when 21 then
1885
+ when 18 then
3320
1886
  begin begin p = ((te))-1; end
3321
1887
 
3322
1888
  text = text(data, ts, te, 1).first
@@ -3329,7 +1895,7 @@ p = p - 1; begin
3329
1895
  end
3330
1896
 
3331
1897
  end
3332
- when 22 then
1898
+ when 19 then
3333
1899
  begin begin p = ((te))-1; end
3334
1900
 
3335
1901
  emit(:escape, :octal, *text(data, ts, te, 1))
@@ -3343,8 +1909,8 @@ p = p - 1; begin
3343
1909
  end
3344
1910
  end
3345
1911
  end
3346
- when 39 then
3347
- # line 427 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1912
+ when 36 then
1913
+ # line 391 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3348
1914
  begin
3349
1915
  te = p+1
3350
1916
  begin
@@ -3353,8 +1919,8 @@ te = p+1
3353
1919
  emit(:conditional, :condition_close, ')', te-1, te)
3354
1920
  end
3355
1921
  end
3356
- when 105 then
3357
- # line 433 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1922
+ when 93 then
1923
+ # line 397 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3358
1924
  begin
3359
1925
  te = p+1
3360
1926
  begin
@@ -3362,15 +1928,15 @@ te = p+1
3362
1928
  begin
3363
1929
  stack[top] = cs
3364
1930
  top+= 1
3365
- cs = 142
1931
+ cs = 113
3366
1932
  _goto_level = _again
3367
1933
  next
3368
1934
  end
3369
1935
 
3370
1936
  end
3371
1937
  end
3372
- when 106 then
3373
- # line 433 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1938
+ when 94 then
1939
+ # line 397 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3374
1940
  begin
3375
1941
  te = p
3376
1942
  p = p - 1; begin
@@ -3378,15 +1944,15 @@ p = p - 1; begin
3378
1944
  begin
3379
1945
  stack[top] = cs
3380
1946
  top+= 1
3381
- cs = 142
1947
+ cs = 113
3382
1948
  _goto_level = _again
3383
1949
  next
3384
1950
  end
3385
1951
 
3386
1952
  end
3387
1953
  end
3388
- when 38 then
3389
- # line 433 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1954
+ when 35 then
1955
+ # line 397 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3390
1956
  begin
3391
1957
  begin p = ((te))-1; end
3392
1958
  begin
@@ -3394,23 +1960,23 @@ p = p - 1; begin
3394
1960
  begin
3395
1961
  stack[top] = cs
3396
1962
  top+= 1
3397
- cs = 142
1963
+ cs = 113
3398
1964
  _goto_level = _again
3399
1965
  next
3400
1966
  end
3401
1967
 
3402
1968
  end
3403
1969
  end
3404
- when 45 then
3405
- # line 446 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1970
+ when 42 then
1971
+ # line 410 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3406
1972
  begin
3407
1973
  te = p+1
3408
1974
  begin
3409
1975
  emit(:meta, :dot, *text(data, ts, te))
3410
1976
  end
3411
1977
  end
3412
- when 48 then
3413
- # line 450 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1978
+ when 45 then
1979
+ # line 414 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3414
1980
  begin
3415
1981
  te = p+1
3416
1982
  begin
@@ -3422,32 +1988,32 @@ te = p+1
3422
1988
  end
3423
1989
  end
3424
1990
  end
3425
- when 47 then
3426
- # line 461 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1991
+ when 44 then
1992
+ # line 425 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3427
1993
  begin
3428
1994
  te = p+1
3429
1995
  begin
3430
1996
  emit(:anchor, :bol, *text(data, ts, te))
3431
1997
  end
3432
1998
  end
3433
- when 42 then
3434
- # line 465 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1999
+ when 39 then
2000
+ # line 429 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3435
2001
  begin
3436
2002
  te = p+1
3437
2003
  begin
3438
2004
  emit(:anchor, :eol, *text(data, ts, te))
3439
2005
  end
3440
2006
  end
3441
- when 62 then
3442
- # line 469 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2007
+ when 58 then
2008
+ # line 433 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3443
2009
  begin
3444
2010
  te = p+1
3445
2011
  begin
3446
2012
  emit(:keep, :mark, *text(data, ts, te))
3447
2013
  end
3448
2014
  end
3449
- when 60 then
3450
- # line 473 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2015
+ when 57 then
2016
+ # line 437 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3451
2017
  begin
3452
2018
  te = p+1
3453
2019
  begin
@@ -3464,41 +2030,19 @@ te = p+1
3464
2030
  end
3465
2031
  end
3466
2032
  end
3467
- when 61 then
3468
- # line 493 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3469
- begin
3470
- te = p+1
3471
- begin
3472
- case text = text(data, ts, te).first
3473
- when '\\d'; emit(:type, :digit, text, ts, te)
3474
- when '\\D'; emit(:type, :nondigit, text, ts, te)
3475
- when '\\h'; emit(:type, :hex, text, ts, te)
3476
- when '\\H'; emit(:type, :nonhex, text, ts, te)
3477
- when '\\s'; emit(:type, :space, text, ts, te)
3478
- when '\\S'; emit(:type, :nonspace, text, ts, te)
3479
- when '\\w'; emit(:type, :word, text, ts, te)
3480
- when '\\W'; emit(:type, :nonword, text, ts, te)
3481
- when '\\R'; emit(:type, :linebreak, text, ts, te)
3482
- when '\\X'; emit(:type, :xgrapheme, text, ts, te)
3483
- else
3484
- raise ScannerError.new(
3485
- "Unexpected character in type at #{text} (char #{ts})")
3486
- end
3487
- end
3488
- end
3489
- when 46 then
3490
- # line 514 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2033
+ when 43 then
2034
+ # line 453 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3491
2035
  begin
3492
2036
  te = p+1
3493
2037
  begin
3494
- set_depth += 1; in_set = true
3495
- set_type = set_depth > 1 ? :subset : :set
2038
+ set_depth += 1
2039
+ in_set = true
3496
2040
 
3497
- emit(set_type, :open, *text(data, ts, te))
2041
+ emit(:set, :open, *text(data, ts, te))
3498
2042
  begin
3499
2043
  stack[top] = cs
3500
2044
  top+= 1
3501
- cs = 158
2045
+ cs = 130
3502
2046
  _goto_level = _again
3503
2047
  next
3504
2048
  end
@@ -3506,7 +2050,7 @@ te = p+1
3506
2050
  end
3507
2051
  end
3508
2052
  when 8 then
3509
- # line 526 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2053
+ # line 465 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3510
2054
  begin
3511
2055
  te = p+1
3512
2056
  begin
@@ -3521,7 +2065,7 @@ te = p+1
3521
2065
  begin
3522
2066
  stack[top] = cs
3523
2067
  top+= 1
3524
- cs = 212
2068
+ cs = 145
3525
2069
  _goto_level = _again
3526
2070
  next
3527
2071
  end
@@ -3529,7 +2073,7 @@ te = p+1
3529
2073
  end
3530
2074
  end
3531
2075
  when 9 then
3532
- # line 559 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2076
+ # line 498 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3533
2077
  begin
3534
2078
  te = p+1
3535
2079
  begin
@@ -3537,7 +2081,7 @@ te = p+1
3537
2081
  end
3538
2082
  end
3539
2083
  when 6 then
3540
- # line 569 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2084
+ # line 508 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3541
2085
  begin
3542
2086
  te = p+1
3543
2087
  begin
@@ -3550,7 +2094,7 @@ te = p+1
3550
2094
  end
3551
2095
  end
3552
2096
  when 10 then
3553
- # line 586 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2097
+ # line 525 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3554
2098
  begin
3555
2099
  te = p+1
3556
2100
  begin
@@ -3576,7 +2120,7 @@ te = p+1
3576
2120
  end
3577
2121
  end
3578
2122
  when 13 then
3579
- # line 638 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2123
+ # line 577 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3580
2124
  begin
3581
2125
  te = p+1
3582
2126
  begin
@@ -3589,57 +2133,57 @@ te = p+1
3589
2133
 
3590
2134
  when /^\\([gk])<[^\d-](\w+)?>/ # angle-brackets
3591
2135
  if $1 == 'k'
3592
- emit(:backref, :name_ref_ab, text, ts, te)
2136
+ emit(:backref, :name_ref_ab, text, ts, te)
3593
2137
  else
3594
- emit(:backref, :name_call_ab, text, ts, te)
2138
+ emit(:backref, :name_call_ab, text, ts, te)
3595
2139
  end
3596
2140
 
3597
2141
  when /^\\([gk])'[^\d-](\w+)?'/ #single quotes
3598
2142
  if $1 == 'k'
3599
- emit(:backref, :name_ref_sq, text, ts, te)
2143
+ emit(:backref, :name_ref_sq, text, ts, te)
3600
2144
  else
3601
- emit(:backref, :name_call_sq, text, ts, te)
2145
+ emit(:backref, :name_call_sq, text, ts, te)
3602
2146
  end
3603
2147
 
3604
2148
  when /^\\([gk])<\d+>/ # angle-brackets
3605
2149
  if $1 == 'k'
3606
- emit(:backref, :number_ref_ab, text, ts, te)
2150
+ emit(:backref, :number_ref_ab, text, ts, te)
3607
2151
  else
3608
- emit(:backref, :number_call_ab, text, ts, te)
2152
+ emit(:backref, :number_call_ab, text, ts, te)
3609
2153
  end
3610
2154
 
3611
2155
  when /^\\([gk])'\d+'/ # single quotes
3612
2156
  if $1 == 'k'
3613
- emit(:backref, :number_ref_sq, text, ts, te)
2157
+ emit(:backref, :number_ref_sq, text, ts, te)
3614
2158
  else
3615
- emit(:backref, :number_call_sq, text, ts, te)
2159
+ emit(:backref, :number_call_sq, text, ts, te)
3616
2160
  end
3617
2161
 
3618
2162
  when /^\\([gk])<-\d+>/ # angle-brackets
3619
2163
  if $1 == 'k'
3620
- emit(:backref, :number_rel_ref_ab, text, ts, te)
2164
+ emit(:backref, :number_rel_ref_ab, text, ts, te)
3621
2165
  else
3622
- emit(:backref, :number_rel_call_ab, text, ts, te)
2166
+ emit(:backref, :number_rel_call_ab, text, ts, te)
3623
2167
  end
3624
2168
 
3625
2169
  when /^\\([gk])'-\d+'/ # single quotes
3626
2170
  if $1 == 'k'
3627
- emit(:backref, :number_rel_ref_sq, text, ts, te)
2171
+ emit(:backref, :number_rel_ref_sq, text, ts, te)
3628
2172
  else
3629
- emit(:backref, :number_rel_call_sq, text, ts, te)
2173
+ emit(:backref, :number_rel_call_sq, text, ts, te)
3630
2174
  end
3631
2175
 
3632
2176
  when /^\\k<[^\d-](\w+)?[+\-]\d+>/ # angle-brackets
3633
- emit(:backref, :name_nest_ref_ab, text, ts, te)
2177
+ emit(:backref, :name_recursion_ref_ab, text, ts, te)
3634
2178
 
3635
2179
  when /^\\k'[^\d-](\w+)?[+\-]\d+'/ # single-quotes
3636
- emit(:backref, :name_nest_ref_sq, text, ts, te)
2180
+ emit(:backref, :name_recursion_ref_sq, text, ts, te)
3637
2181
 
3638
- when /^\\([gk])<\d+[+\-]\d+>/ # angle-brackets
3639
- emit(:backref, :number_nest_ref_ab, text, ts, te)
2182
+ when /^\\([gk])<-?\d+[+\-]\d+>/ # angle-brackets
2183
+ emit(:backref, :number_recursion_ref_ab, text, ts, te)
3640
2184
 
3641
- when /^\\([gk])'\d+[+\-]\d+'/ # single-quotes
3642
- emit(:backref, :number_nest_ref_sq, text, ts, te)
2185
+ when /^\\([gk])'-?\d+[+\-]\d+'/ # single-quotes
2186
+ emit(:backref, :number_recursion_ref_sq, text, ts, te)
3643
2187
 
3644
2188
  else
3645
2189
  raise ScannerError.new(
@@ -3647,8 +2191,8 @@ te = p+1
3647
2191
  end
3648
2192
  end
3649
2193
  end
3650
- when 58 then
3651
- # line 709 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2194
+ when 55 then
2195
+ # line 648 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3652
2196
  begin
3653
2197
  te = p+1
3654
2198
  begin
@@ -3659,8 +2203,8 @@ te = p+1
3659
2203
  end
3660
2204
  end
3661
2205
  end
3662
- when 54 then
3663
- # line 717 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2206
+ when 51 then
2207
+ # line 656 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3664
2208
  begin
3665
2209
  te = p+1
3666
2210
  begin
@@ -3671,8 +2215,8 @@ te = p+1
3671
2215
  end
3672
2216
  end
3673
2217
  end
3674
- when 56 then
3675
- # line 725 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2218
+ when 53 then
2219
+ # line 664 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3676
2220
  begin
3677
2221
  te = p+1
3678
2222
  begin
@@ -3683,8 +2227,8 @@ te = p+1
3683
2227
  end
3684
2228
  end
3685
2229
  end
3686
- when 64 then
3687
- # line 733 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2230
+ when 60 then
2231
+ # line 672 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3688
2232
  begin
3689
2233
  te = p+1
3690
2234
  begin
@@ -3692,7 +2236,7 @@ te = p+1
3692
2236
  end
3693
2237
  end
3694
2238
  when 4 then
3695
- # line 743 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2239
+ # line 682 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3696
2240
  begin
3697
2241
  te = p+1
3698
2242
  begin
@@ -3703,8 +2247,8 @@ te = p+1
3703
2247
  end
3704
2248
  end
3705
2249
  end
3706
- when 51 then
3707
- # line 608 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2250
+ when 48 then
2251
+ # line 547 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3708
2252
  begin
3709
2253
  te = p
3710
2254
  p = p - 1; begin
@@ -3712,8 +2256,8 @@ p = p - 1; begin
3712
2256
  emit(:group, :capture, text, ts, te)
3713
2257
  end
3714
2258
  end
3715
- when 57 then
3716
- # line 709 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2259
+ when 54 then
2260
+ # line 648 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3717
2261
  begin
3718
2262
  te = p
3719
2263
  p = p - 1; begin
@@ -3724,8 +2268,8 @@ p = p - 1; begin
3724
2268
  end
3725
2269
  end
3726
2270
  end
3727
- when 53 then
3728
- # line 717 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2271
+ when 50 then
2272
+ # line 656 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3729
2273
  begin
3730
2274
  te = p
3731
2275
  p = p - 1; begin
@@ -3736,8 +2280,8 @@ p = p - 1; begin
3736
2280
  end
3737
2281
  end
3738
2282
  end
3739
- when 55 then
3740
- # line 725 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2283
+ when 52 then
2284
+ # line 664 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3741
2285
  begin
3742
2286
  te = p
3743
2287
  p = p - 1; begin
@@ -3748,31 +2292,31 @@ p = p - 1; begin
3748
2292
  end
3749
2293
  end
3750
2294
  end
3751
- when 63 then
3752
- # line 733 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2295
+ when 59 then
2296
+ # line 672 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3753
2297
  begin
3754
2298
  te = p
3755
2299
  p = p - 1; begin
3756
2300
  emit(:quantifier, :interval, *text(data, ts, te))
3757
2301
  end
3758
2302
  end
3759
- when 59 then
3760
- # line 739 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2303
+ when 56 then
2304
+ # line 678 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3761
2305
  begin
3762
2306
  te = p
3763
2307
  p = p - 1; begin
3764
2308
  begin
3765
2309
  stack[top] = cs
3766
2310
  top+= 1
3767
- cs = 180
2311
+ cs = 138
3768
2312
  _goto_level = _again
3769
2313
  next
3770
2314
  end
3771
2315
 
3772
2316
  end
3773
2317
  end
3774
- when 50 then
3775
- # line 751 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2318
+ when 47 then
2319
+ # line 690 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3776
2320
  begin
3777
2321
  te = p
3778
2322
  p = p - 1; begin
@@ -3783,8 +2327,8 @@ p = p - 1; begin
3783
2327
  end
3784
2328
  end
3785
2329
  end
3786
- when 49 then
3787
- # line 766 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2330
+ when 46 then
2331
+ # line 705 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3788
2332
  begin
3789
2333
  te = p
3790
2334
  p = p - 1; begin
@@ -3792,7 +2336,7 @@ p = p - 1; begin
3792
2336
  end
3793
2337
  end
3794
2338
  when 5 then
3795
- # line 608 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2339
+ # line 547 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3796
2340
  begin
3797
2341
  begin p = ((te))-1; end
3798
2342
  begin
@@ -3801,14 +2345,14 @@ p = p - 1; begin
3801
2345
  end
3802
2346
  end
3803
2347
  when 12 then
3804
- # line 739 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2348
+ # line 678 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3805
2349
  begin
3806
2350
  begin p = ((te))-1; end
3807
2351
  begin
3808
2352
  begin
3809
2353
  stack[top] = cs
3810
2354
  top+= 1
3811
- cs = 180
2355
+ cs = 138
3812
2356
  _goto_level = _again
3813
2357
  next
3814
2358
  end
@@ -3816,7 +2360,7 @@ p = p - 1; begin
3816
2360
  end
3817
2361
  end
3818
2362
  when 3 then
3819
- # line 766 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2363
+ # line 705 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3820
2364
  begin
3821
2365
  begin p = ((te))-1; end
3822
2366
  begin
@@ -3834,71 +2378,69 @@ p = p - 1; begin
3834
2378
  next
3835
2379
  end
3836
2380
  end
3837
- when 59 then
2381
+ when 54 then
3838
2382
  begin begin p = ((te))-1; end
3839
2383
 
3840
2384
  append_literal(data, ts, te)
3841
2385
  end
3842
2386
  end
3843
2387
  end
3844
- when 74 then
3845
- # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2388
+ when 71 then
2389
+ # line 130 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3846
2390
  begin
3847
2391
 
3848
2392
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3849
2393
  raise PrematureEndError.new( text )
3850
2394
  end
3851
- # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2395
+ # line 210 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3852
2396
  begin
3853
2397
  te = p
3854
2398
  p = p - 1; begin
3855
- set_depth += 1; in_set = true
3856
- set_type = set_depth > 1 ? :subset : :set
2399
+ set_depth += 1
3857
2400
 
3858
- emit(set_type, :open, *text(data, ts, te))
2401
+ emit(:set, :open, *text(data, ts, te))
3859
2402
  begin
3860
2403
  stack[top] = cs
3861
2404
  top+= 1
3862
- cs = 158
2405
+ cs = 130
3863
2406
  _goto_level = _again
3864
2407
  next
3865
2408
  end
3866
2409
 
3867
2410
  end
3868
2411
  end
3869
- when 20 then
3870
- # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2412
+ when 21 then
2413
+ # line 130 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3871
2414
  begin
3872
2415
 
3873
2416
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3874
2417
  raise PrematureEndError.new( text )
3875
2418
  end
3876
- # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2419
+ # line 210 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3877
2420
  begin
3878
2421
  begin p = ((te))-1; end
3879
2422
  begin
3880
- set_depth += 1; in_set = true
3881
- set_type = set_depth > 1 ? :subset : :set
2423
+ set_depth += 1
3882
2424
 
3883
- emit(set_type, :open, *text(data, ts, te))
2425
+ emit(:set, :open, *text(data, ts, te))
3884
2426
  begin
3885
2427
  stack[top] = cs
3886
2428
  top+= 1
3887
- cs = 158
2429
+ cs = 130
3888
2430
  _goto_level = _again
3889
2431
  next
3890
2432
  end
3891
2433
 
3892
2434
  end
3893
2435
  end
3894
- when 99 then
3895
- # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2436
+ when 90 then
2437
+ # line 130 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3896
2438
  begin
3897
2439
 
3898
2440
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3899
2441
  raise PrematureEndError.new( text )
3900
2442
  end
3901
- # line 362 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2443
+ # line 330 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3902
2444
  begin
3903
2445
  te = p
3904
2446
  p = p - 1; begin
@@ -3912,35 +2454,14 @@ p = p - 1; begin
3912
2454
 
3913
2455
  end
3914
2456
  end
3915
- when 103 then
3916
- # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3917
- begin
3918
-
3919
- text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3920
- raise PrematureEndError.new( text )
3921
- end
3922
- # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3923
- begin
3924
- te = p
3925
- p = p - 1; begin
3926
- raise InvalidSequenceError.new("wide hex sequence")
3927
- begin
3928
- top -= 1
3929
- cs = stack[top]
3930
- _goto_level = _again
3931
- next
3932
- end
3933
-
3934
- end
3935
- end
3936
- when 95 then
3937
- # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2457
+ when 86 then
2458
+ # line 130 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3938
2459
  begin
3939
2460
 
3940
2461
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3941
2462
  raise PrematureEndError.new( text )
3942
2463
  end
3943
- # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2464
+ # line 339 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3944
2465
  begin
3945
2466
  te = p
3946
2467
  p = p - 1; begin
@@ -3964,14 +2485,14 @@ p = p - 1; begin
3964
2485
 
3965
2486
  end
3966
2487
  end
3967
- when 97 then
3968
- # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2488
+ when 88 then
2489
+ # line 130 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3969
2490
  begin
3970
2491
 
3971
2492
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3972
2493
  raise PrematureEndError.new( text )
3973
2494
  end
3974
- # line 396 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2495
+ # line 354 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3975
2496
  begin
3976
2497
  te = p
3977
2498
  p = p - 1; begin
@@ -3995,14 +2516,14 @@ p = p - 1; begin
3995
2516
 
3996
2517
  end
3997
2518
  end
3998
- when 28 then
3999
- # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2519
+ when 27 then
2520
+ # line 130 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4000
2521
  begin
4001
2522
 
4002
2523
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
4003
2524
  raise PrematureEndError.new( text )
4004
2525
  end
4005
- # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2526
+ # line 339 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4006
2527
  begin
4007
2528
  begin p = ((te))-1; end
4008
2529
  begin
@@ -4026,14 +2547,14 @@ p = p - 1; begin
4026
2547
 
4027
2548
  end
4028
2549
  end
4029
- when 31 then
4030
- # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2550
+ when 30 then
2551
+ # line 130 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4031
2552
  begin
4032
2553
 
4033
2554
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
4034
2555
  raise PrematureEndError.new( text )
4035
2556
  end
4036
- # line 396 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2557
+ # line 354 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4037
2558
  begin
4038
2559
  begin p = ((te))-1; end
4039
2560
  begin
@@ -4057,14 +2578,14 @@ p = p - 1; begin
4057
2578
 
4058
2579
  end
4059
2580
  end
4060
- when 35 then
4061
- # line 140 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2581
+ when 34 then
2582
+ # line 136 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4062
2583
  begin
4063
2584
 
4064
2585
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
4065
2586
  raise InvalidSequenceError.new('sequence', text)
4066
2587
  end
4067
- # line 372 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2588
+ # line 335 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4068
2589
  begin
4069
2590
  te = p+1
4070
2591
  begin
@@ -4077,29 +2598,29 @@ te = p+1
4077
2598
 
4078
2599
  end
4079
2600
  end
4080
- when 52 then
4081
- # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2601
+ when 49 then
2602
+ # line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4082
2603
  begin
4083
2604
  self.group_depth = group_depth - 1; in_group = group_depth > 0 ? true : false end
4084
- # line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2605
+ # line 142 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4085
2606
  begin
4086
2607
  self.group_depth = group_depth + 1; in_group = true end
4087
2608
  when 11 then
4088
- # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2609
+ # line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4089
2610
  begin
4090
2611
  self.group_depth = group_depth - 1; in_group = group_depth > 0 ? true : false end
4091
- # line 544 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2612
+ # line 483 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4092
2613
  begin
4093
2614
  te = p+1
4094
2615
  begin
4095
2616
  emit(:group, :comment, *text(data, ts, te))
4096
2617
  end
4097
2618
  end
4098
- when 44 then
4099
- # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2619
+ when 41 then
2620
+ # line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4100
2621
  begin
4101
2622
  self.group_depth = group_depth - 1; in_group = group_depth > 0 ? true : false end
4102
- # line 613 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2623
+ # line 552 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4103
2624
  begin
4104
2625
  te = p+1
4105
2626
  begin
@@ -4124,65 +2645,49 @@ te = p+1
4124
2645
  end
4125
2646
  end
4126
2647
  end
4127
- when 43 then
2648
+ when 40 then
4128
2649
  # line 1 "NONE"
4129
2650
  begin
4130
2651
  te = p+1
4131
2652
  end
4132
- # line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2653
+ # line 142 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4133
2654
  begin
4134
2655
  self.group_depth = group_depth + 1; in_group = true end
4135
- when 77 then
2656
+ when 78 then
4136
2657
  # line 1 "NONE"
4137
2658
  begin
4138
2659
  te = p+1
4139
2660
  end
4140
- # line 278 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2661
+ # line 272 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4141
2662
  begin
4142
2663
  act = 18; end
4143
- when 26 then
4144
- # line 1 "NONE"
4145
- begin
4146
- te = p+1
4147
- end
4148
- # line 294 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4149
- begin
4150
- act = 20; end
4151
- when 88 then
4152
- # line 1 "NONE"
4153
- begin
4154
- te = p+1
4155
- end
4156
- # line 304 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4157
- begin
4158
- act = 21; end
4159
- when 87 then
2664
+ when 77 then
4160
2665
  # line 1 "NONE"
4161
2666
  begin
4162
2667
  te = p+1
4163
2668
  end
4164
- # line 310 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2669
+ # line 278 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4165
2670
  begin
4166
- act = 22; end
2671
+ act = 19; end
4167
2672
  when 2 then
4168
2673
  # line 1 "NONE"
4169
2674
  begin
4170
2675
  te = p+1
4171
2676
  end
4172
- # line 766 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2677
+ # line 705 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4173
2678
  begin
4174
- act = 59; end
4175
- # line 4175 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2679
+ act = 54; end
2680
+ # line 2680 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
4176
2681
  end
4177
2682
  end
4178
2683
  end
4179
2684
  if _goto_level <= _again
4180
2685
  case _re_scanner_to_state_actions[cs]
4181
- when 65 then
2686
+ when 61 then
4182
2687
  # line 1 "NONE"
4183
2688
  begin
4184
2689
  ts = nil; end
4185
- when 40 then
2690
+ when 37 then
4186
2691
  # line 1 "NONE"
4187
2692
  begin
4188
2693
  ts = nil; end
@@ -4190,7 +2695,7 @@ ts = nil; end
4190
2695
  begin
4191
2696
  act = 0
4192
2697
  end
4193
- # line 4193 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2698
+ # line 2698 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
4194
2699
  end
4195
2700
 
4196
2701
  if cs == 0
@@ -4212,19 +2717,19 @@ act = 0
4212
2717
  end
4213
2718
  case _re_scanner_eof_actions[cs]
4214
2719
  when 15 then
4215
- # line 54 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
2720
+ # line 8 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
4216
2721
  begin
4217
2722
 
4218
2723
  raise PrematureEndError.new('unicode property')
4219
2724
  end
4220
2725
  when 14 then
4221
- # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2726
+ # line 130 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4222
2727
  begin
4223
2728
 
4224
2729
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
4225
2730
  raise PrematureEndError.new( text )
4226
2731
  end
4227
- # line 4227 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
2732
+ # line 2732 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
4228
2733
  end
4229
2734
  end
4230
2735
 
@@ -4235,7 +2740,7 @@ act = 0
4235
2740
  end
4236
2741
  end
4237
2742
 
4238
- # line 868 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2743
+ # line 810 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4239
2744
 
4240
2745
  if cs == re_scanner_error
4241
2746
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
@@ -4253,6 +2758,18 @@ end
4253
2758
  tokens
4254
2759
  end
4255
2760
 
2761
+ # lazy-load property maps when first needed
2762
+ require 'yaml'
2763
+ PROP_MAPS_DIR = File.expand_path('../scanner/properties', __FILE__)
2764
+
2765
+ def self.short_prop_map
2766
+ @short_prop_map ||= YAML.load_file("#{PROP_MAPS_DIR}/short.yml")
2767
+ end
2768
+
2769
+ def self.long_prop_map
2770
+ @long_prop_map ||= YAML.load_file("#{PROP_MAPS_DIR}/long.yml")
2771
+ end
2772
+
4256
2773
  # Emits an array with the details of the scanned pattern
4257
2774
  def emit(type, token, text, ts, te)
4258
2775
  #puts "EMIT: type: #{type}, token: #{token}, text: #{text}, ts: #{ts}, te: #{te}"
@@ -4357,6 +2874,8 @@ end
4357
2874
  end
4358
2875
 
4359
2876
  def emit_options(text, ts, te)
2877
+ token = nil
2878
+
4360
2879
  if text =~ /\(\?([mixdau]*)-?([mix]*)(:)?/
4361
2880
  positive, negative, group_local = $1, $2, $3
4362
2881
 
@@ -4372,13 +2891,15 @@ end
4372
2891
 
4373
2892
  if group_local
4374
2893
  spacing_stack << {:free_spacing => free_spacing, :depth => group_depth}
2894
+ token = :options
4375
2895
  else
4376
2896
  # switch for parent group level
4377
2897
  spacing_stack.last[:free_spacing] = free_spacing
2898
+ token = :options_switch
4378
2899
  end
4379
2900
  end
4380
2901
 
4381
- emit(:group, :options, text, ts, te)
2902
+ emit(:group, token, text, ts, te)
4382
2903
  end
4383
2904
 
4384
2905
  # Centralizes and unifies the handling of validation related