regexp_parser 1.3.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +53 -1
- data/Gemfile +3 -3
- data/README.md +10 -14
- data/Rakefile +3 -4
- data/lib/regexp_parser/expression.rb +28 -53
- data/lib/regexp_parser/expression/classes/backref.rb +18 -10
- data/lib/regexp_parser/expression/classes/conditional.rb +7 -2
- data/lib/regexp_parser/expression/classes/escape.rb +0 -4
- data/lib/regexp_parser/expression/classes/group.rb +4 -2
- data/lib/regexp_parser/expression/classes/keep.rb +1 -3
- data/lib/regexp_parser/expression/methods/match.rb +13 -0
- data/lib/regexp_parser/expression/methods/match_length.rb +172 -0
- data/lib/regexp_parser/expression/methods/options.rb +35 -0
- data/lib/regexp_parser/expression/methods/strfregexp.rb +0 -1
- data/lib/regexp_parser/expression/methods/tests.rb +6 -15
- data/lib/regexp_parser/expression/quantifier.rb +2 -2
- data/lib/regexp_parser/expression/sequence.rb +3 -6
- data/lib/regexp_parser/expression/sequence_operation.rb +2 -6
- data/lib/regexp_parser/expression/subexpression.rb +3 -5
- data/lib/regexp_parser/lexer.rb +30 -44
- data/lib/regexp_parser/parser.rb +47 -24
- data/lib/regexp_parser/scanner.rb +1159 -1329
- data/lib/regexp_parser/scanner/char_type.rl +0 -3
- data/lib/regexp_parser/scanner/properties/long.yml +34 -1
- data/lib/regexp_parser/scanner/properties/short.yml +12 -0
- data/lib/regexp_parser/scanner/scanner.rl +82 -190
- data/lib/regexp_parser/syntax/tokens.rb +2 -10
- data/lib/regexp_parser/syntax/tokens/unicode_property.rb +72 -21
- data/lib/regexp_parser/syntax/versions/2.6.0.rb +10 -0
- data/lib/regexp_parser/syntax/versions/2.6.2.rb +10 -0
- data/lib/regexp_parser/syntax/versions/2.6.3.rb +10 -0
- data/lib/regexp_parser/version.rb +1 -1
- data/regexp_parser.gemspec +3 -3
- data/spec/expression/base_spec.rb +94 -0
- data/spec/expression/clone_spec.rb +120 -0
- data/spec/expression/conditional_spec.rb +89 -0
- data/spec/expression/free_space_spec.rb +27 -0
- data/spec/expression/methods/match_length_spec.rb +154 -0
- data/spec/expression/methods/match_spec.rb +25 -0
- data/spec/expression/methods/strfregexp_spec.rb +224 -0
- data/spec/expression/methods/tests_spec.rb +99 -0
- data/spec/expression/methods/traverse_spec.rb +140 -0
- data/spec/expression/options_spec.rb +128 -0
- data/spec/expression/root_spec.rb +9 -0
- data/spec/expression/sequence_spec.rb +9 -0
- data/spec/expression/subexpression_spec.rb +50 -0
- data/spec/expression/to_h_spec.rb +26 -0
- data/spec/expression/to_s_spec.rb +100 -0
- data/spec/lexer/all_spec.rb +22 -0
- data/spec/lexer/conditionals_spec.rb +53 -0
- data/spec/lexer/escapes_spec.rb +14 -0
- data/spec/lexer/keep_spec.rb +10 -0
- data/spec/lexer/literals_spec.rb +89 -0
- data/spec/lexer/nesting_spec.rb +99 -0
- data/spec/lexer/refcalls_spec.rb +55 -0
- data/spec/parser/all_spec.rb +43 -0
- data/spec/parser/alternation_spec.rb +88 -0
- data/spec/parser/anchors_spec.rb +17 -0
- data/spec/parser/conditionals_spec.rb +179 -0
- data/spec/parser/errors_spec.rb +30 -0
- data/spec/parser/escapes_spec.rb +121 -0
- data/spec/parser/free_space_spec.rb +130 -0
- data/spec/parser/groups_spec.rb +108 -0
- data/spec/parser/keep_spec.rb +6 -0
- data/spec/parser/posix_classes_spec.rb +8 -0
- data/spec/parser/properties_spec.rb +115 -0
- data/spec/parser/quantifiers_spec.rb +51 -0
- data/spec/parser/refcalls_spec.rb +112 -0
- data/spec/parser/set/intersections_spec.rb +127 -0
- data/spec/parser/set/ranges_spec.rb +111 -0
- data/spec/parser/sets_spec.rb +178 -0
- data/spec/parser/types_spec.rb +18 -0
- data/spec/scanner/all_spec.rb +18 -0
- data/spec/scanner/anchors_spec.rb +21 -0
- data/spec/scanner/conditionals_spec.rb +128 -0
- data/spec/scanner/errors_spec.rb +68 -0
- data/spec/scanner/escapes_spec.rb +53 -0
- data/spec/scanner/free_space_spec.rb +133 -0
- data/spec/scanner/groups_spec.rb +52 -0
- data/spec/scanner/keep_spec.rb +10 -0
- data/spec/scanner/literals_spec.rb +49 -0
- data/spec/scanner/meta_spec.rb +18 -0
- data/spec/scanner/properties_spec.rb +64 -0
- data/spec/scanner/quantifiers_spec.rb +20 -0
- data/spec/scanner/refcalls_spec.rb +36 -0
- data/spec/scanner/sets_spec.rb +102 -0
- data/spec/scanner/types_spec.rb +14 -0
- data/spec/spec_helper.rb +15 -0
- data/{test → spec}/support/runner.rb +9 -8
- data/spec/support/shared_examples.rb +77 -0
- data/{test → spec}/support/warning_extractor.rb +5 -7
- data/spec/syntax/syntax_spec.rb +48 -0
- data/spec/syntax/syntax_token_map_spec.rb +23 -0
- data/spec/syntax/versions/1.8.6_spec.rb +17 -0
- data/spec/syntax/versions/1.9.1_spec.rb +10 -0
- data/spec/syntax/versions/1.9.3_spec.rb +9 -0
- data/spec/syntax/versions/2.0.0_spec.rb +13 -0
- data/spec/syntax/versions/2.2.0_spec.rb +9 -0
- data/spec/syntax/versions/aliases_spec.rb +37 -0
- data/spec/token/token_spec.rb +85 -0
- metadata +144 -143
- data/test/expression/test_all.rb +0 -12
- data/test/expression/test_base.rb +0 -90
- data/test/expression/test_clone.rb +0 -89
- data/test/expression/test_conditionals.rb +0 -113
- data/test/expression/test_free_space.rb +0 -35
- data/test/expression/test_set.rb +0 -84
- data/test/expression/test_strfregexp.rb +0 -230
- data/test/expression/test_subexpression.rb +0 -58
- data/test/expression/test_tests.rb +0 -99
- data/test/expression/test_to_h.rb +0 -59
- data/test/expression/test_to_s.rb +0 -104
- data/test/expression/test_traverse.rb +0 -161
- data/test/helpers.rb +0 -10
- data/test/lexer/test_all.rb +0 -41
- data/test/lexer/test_conditionals.rb +0 -127
- data/test/lexer/test_keep.rb +0 -24
- data/test/lexer/test_literals.rb +0 -130
- data/test/lexer/test_nesting.rb +0 -132
- data/test/lexer/test_refcalls.rb +0 -56
- data/test/parser/set/test_intersections.rb +0 -127
- data/test/parser/set/test_ranges.rb +0 -111
- data/test/parser/test_all.rb +0 -64
- data/test/parser/test_alternation.rb +0 -92
- data/test/parser/test_anchors.rb +0 -34
- data/test/parser/test_conditionals.rb +0 -187
- data/test/parser/test_errors.rb +0 -63
- data/test/parser/test_escapes.rb +0 -134
- data/test/parser/test_free_space.rb +0 -139
- data/test/parser/test_groups.rb +0 -289
- data/test/parser/test_keep.rb +0 -21
- data/test/parser/test_posix_classes.rb +0 -27
- data/test/parser/test_properties.rb +0 -133
- data/test/parser/test_quantifiers.rb +0 -301
- data/test/parser/test_refcalls.rb +0 -186
- data/test/parser/test_sets.rb +0 -179
- data/test/parser/test_types.rb +0 -50
- data/test/scanner/test_all.rb +0 -38
- data/test/scanner/test_anchors.rb +0 -38
- data/test/scanner/test_conditionals.rb +0 -184
- data/test/scanner/test_errors.rb +0 -91
- data/test/scanner/test_escapes.rb +0 -56
- data/test/scanner/test_free_space.rb +0 -200
- data/test/scanner/test_groups.rb +0 -79
- data/test/scanner/test_keep.rb +0 -35
- data/test/scanner/test_literals.rb +0 -89
- data/test/scanner/test_meta.rb +0 -40
- data/test/scanner/test_properties.rb +0 -312
- data/test/scanner/test_quantifiers.rb +0 -37
- data/test/scanner/test_refcalls.rb +0 -52
- data/test/scanner/test_scripts.rb +0 -53
- data/test/scanner/test_sets.rb +0 -119
- data/test/scanner/test_types.rb +0 -35
- data/test/scanner/test_unicode_blocks.rb +0 -30
- data/test/support/disable_autotest.rb +0 -8
- data/test/syntax/test_all.rb +0 -6
- data/test/syntax/test_syntax.rb +0 -61
- data/test/syntax/test_syntax_token_map.rb +0 -25
- data/test/syntax/versions/test_1.8.rb +0 -55
- data/test/syntax/versions/test_1.9.1.rb +0 -36
- data/test/syntax/versions/test_1.9.3.rb +0 -32
- data/test/syntax/versions/test_2.0.0.rb +0 -37
- data/test/syntax/versions/test_2.2.0.rb +0 -32
- data/test/syntax/versions/test_aliases.rb +0 -129
- data/test/syntax/versions/test_all.rb +0 -5
- data/test/test_all.rb +0 -5
- data/test/token/test_all.rb +0 -2
- data/test/token/test_token.rb +0 -107
@@ -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
|
5
|
+
# line 661 "/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
|
@@ -82,7 +82,7 @@ class Regexp::Scanner
|
|
82
82
|
input = input_object
|
83
83
|
self.free_spacing = false
|
84
84
|
end
|
85
|
-
|
85
|
+
self.spacing_stack = [{:free_spacing => free_spacing, :depth => 0}]
|
86
86
|
|
87
87
|
data = input.unpack("c*") if input.is_a?(String)
|
88
88
|
eof = data.length
|
@@ -90,18 +90,12 @@ class Regexp::Scanner
|
|
90
90
|
self.tokens = []
|
91
91
|
self.block = block_given? ? block : nil
|
92
92
|
|
93
|
-
self.
|
93
|
+
self.set_depth = 0
|
94
94
|
self.group_depth = 0
|
95
|
-
self.
|
96
|
-
|
97
|
-
in_set = false
|
98
|
-
set_depth = 0
|
99
|
-
in_conditional = false
|
100
|
-
conditional_depth = 0
|
101
|
-
conditional_stack = []
|
95
|
+
self.conditional_stack = []
|
102
96
|
|
103
97
|
|
104
|
-
# line
|
98
|
+
# line 98 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
105
99
|
class << self
|
106
100
|
attr_accessor :_re_scanner_trans_keys
|
107
101
|
private :_re_scanner_trans_keys, :_re_scanner_trans_keys=
|
@@ -110,60 +104,61 @@ self._re_scanner_trans_keys = [
|
|
110
104
|
0, 0, -128, -65, -128, -65,
|
111
105
|
-128, -65, -128, -65, -128,
|
112
106
|
-65, -128, -65, 10, 10,
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
43,
|
120
|
-
|
121
|
-
|
122
|
-
-128, -65,
|
123
|
-
45, 122,
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
112, 112,
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
45, 45,
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
9, 125,
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
33, 126,
|
156
|
-
43, 63, 43, 63,
|
157
|
-
|
158
|
-
|
159
|
-
-128, -65, -128, -65,
|
160
|
-
|
161
|
-
|
162
|
-
48, 55,
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
122,
|
107
|
+
41, 41, 39, 122, 33, 122,
|
108
|
+
48, 122, 39, 60, 39,
|
109
|
+
122, 48, 57, 39, 57,
|
110
|
+
48, 57, 39, 57, 39, 122,
|
111
|
+
43, 122, 48, 57, 48,
|
112
|
+
62, 48, 57, 43, 62,
|
113
|
+
43, 122, 44, 125, 48, 125,
|
114
|
+
123, 123, 9, 122, 9,
|
115
|
+
125, 9, 122, -128, -65,
|
116
|
+
-128, -65, 38, 38, 45, 122,
|
117
|
+
45, 122, 93, 93, 94,
|
118
|
+
120, 97, 120, 108, 115,
|
119
|
+
110, 112, 117, 117, 109, 109,
|
120
|
+
58, 58, 93, 93, 104,
|
121
|
+
104, 97, 97, 99, 99,
|
122
|
+
105, 105, 105, 105, 108, 108,
|
123
|
+
97, 97, 110, 110, 107,
|
124
|
+
107, 110, 110, 116, 116,
|
125
|
+
114, 114, 108, 108, 105, 105,
|
126
|
+
103, 103, 105, 105, 116,
|
127
|
+
116, 114, 114, 97, 97,
|
128
|
+
112, 112, 104, 104, 111, 111,
|
129
|
+
119, 119, 101, 101, 114,
|
130
|
+
114, 114, 117, 105, 105,
|
131
|
+
110, 110, 110, 110, 99, 99,
|
132
|
+
112, 112, 97, 97, 99,
|
133
|
+
99, 101, 101, 112, 112,
|
134
|
+
112, 112, 111, 111, 114, 114,
|
135
|
+
100, 100, 100, 100, 65,
|
136
|
+
122, 61, 61, 93, 93,
|
137
|
+
45, 45, 92, 92, 92, 92,
|
138
|
+
45, 45, 92, 92, 92,
|
139
|
+
92, 48, 123, 48, 102,
|
140
|
+
48, 102, 48, 102, 48, 102,
|
141
|
+
9, 125, 9, 125, 9,
|
142
|
+
125, 9, 125, 9, 125,
|
143
|
+
9, 125, 48, 123, 41, 41,
|
144
|
+
39, 122, 41, 57, 48,
|
145
|
+
122, -62, 127, -62, -33,
|
146
|
+
-32, -17, -16, -12, 1, 127,
|
147
|
+
1, 127, 9, 32, 33,
|
148
|
+
126, 10, 126, 63, 63,
|
149
|
+
33, 126, 33, 126, 43, 63,
|
150
|
+
43, 63, 43, 63, 65,
|
151
|
+
122, 43, 63, 68, 119,
|
152
|
+
80, 112, -62, 125, -128, -65,
|
153
|
+
-128, -65, -128, -65, 38,
|
154
|
+
38, 38, 93, 46, 61,
|
155
|
+
48, 122, 36, 125, 48, 55,
|
156
|
+
48, 55, 77, 77, 45,
|
157
|
+
45, 0, 0, 67, 99,
|
158
|
+
45, 45, 0, 0, 92, 92,
|
159
|
+
48, 102, 39, 60, 39,
|
160
|
+
122, 49, 57, 41, 57,
|
161
|
+
48, 122, 0
|
167
162
|
]
|
168
163
|
|
169
164
|
class << self
|
@@ -172,24 +167,25 @@ class << self
|
|
172
167
|
end
|
173
168
|
self._re_scanner_key_spans = [
|
174
169
|
0, 64, 64, 64, 64, 64, 64, 1,
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
64,
|
179
|
-
|
170
|
+
1, 84, 90, 75, 22, 84, 10, 19,
|
171
|
+
10, 19, 84, 80, 10, 15, 10, 20,
|
172
|
+
80, 82, 78, 1, 114, 117, 114, 64,
|
173
|
+
64, 1, 78, 78, 1, 27, 24, 8,
|
174
|
+
3, 1, 1, 1, 1, 1, 1, 1,
|
180
175
|
1, 1, 1, 1, 1, 1, 1, 1,
|
181
176
|
1, 1, 1, 1, 1, 1, 1, 1,
|
182
|
-
1, 1, 1, 1, 1, 1,
|
177
|
+
1, 1, 1, 1, 1, 1, 4, 1,
|
183
178
|
1, 1, 1, 1, 1, 1, 1, 1,
|
184
|
-
1, 1, 1, 1, 1,
|
185
|
-
1, 1, 1, 1, 1,
|
186
|
-
|
187
|
-
117,
|
188
|
-
|
189
|
-
94,
|
190
|
-
|
191
|
-
|
192
|
-
55, 22, 84, 9, 17,
|
179
|
+
1, 1, 1, 1, 1, 58, 1, 1,
|
180
|
+
1, 1, 1, 1, 1, 1, 76, 55,
|
181
|
+
55, 55, 55, 117, 117, 117, 117, 117,
|
182
|
+
117, 76, 1, 84, 17, 75, 190, 30,
|
183
|
+
16, 5, 127, 127, 24, 94, 117, 1,
|
184
|
+
94, 94, 21, 21, 21, 58, 21, 52,
|
185
|
+
33, 188, 64, 64, 64, 1, 56, 16,
|
186
|
+
75, 90, 8, 8, 1, 1, 0, 33,
|
187
|
+
1, 0, 1, 55, 22, 84, 9, 17,
|
188
|
+
75
|
193
189
|
]
|
194
190
|
|
195
191
|
class << self
|
@@ -198,24 +194,25 @@ class << self
|
|
198
194
|
end
|
199
195
|
self._re_scanner_index_offsets = [
|
200
196
|
0, 0, 65, 130, 195, 260, 325, 390,
|
201
|
-
392,
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
197
|
+
392, 394, 479, 570, 646, 669, 754, 765,
|
198
|
+
785, 796, 816, 901, 982, 993, 1009, 1020,
|
199
|
+
1041, 1122, 1205, 1284, 1286, 1401, 1519, 1634,
|
200
|
+
1699, 1764, 1766, 1845, 1924, 1926, 1954, 1979,
|
201
|
+
1988, 1992, 1994, 1996, 1998, 2000, 2002, 2004,
|
202
|
+
2006, 2008, 2010, 2012, 2014, 2016, 2018, 2020,
|
203
|
+
2022, 2024, 2026, 2028, 2030, 2032, 2034, 2036,
|
204
|
+
2038, 2040, 2042, 2044, 2046, 2048, 2050, 2055,
|
205
|
+
2057, 2059, 2061, 2063, 2065, 2067, 2069, 2071,
|
206
|
+
2073, 2075, 2077, 2079, 2081, 2083, 2142, 2144,
|
207
|
+
2146, 2148, 2150, 2152, 2154, 2156, 2158, 2235,
|
208
|
+
2291, 2347, 2403, 2459, 2577, 2695, 2813, 2931,
|
209
|
+
3049, 3167, 3244, 3246, 3331, 3349, 3425, 3616,
|
210
|
+
3647, 3664, 3670, 3798, 3926, 3951, 4046, 4164,
|
211
|
+
4166, 4261, 4356, 4378, 4400, 4422, 4481, 4503,
|
212
|
+
4556, 4590, 4779, 4844, 4909, 4974, 4976, 5033,
|
213
|
+
5050, 5126, 5217, 5226, 5235, 5237, 5239, 5240,
|
214
|
+
5274, 5276, 5277, 5279, 5335, 5358, 5443, 5453,
|
215
|
+
5471
|
219
216
|
]
|
220
217
|
|
221
218
|
class << self
|
@@ -272,437 +269,482 @@ self._re_scanner_indicies = [
|
|
272
269
|
6, 6, 6, 6, 6, 6, 6, 6,
|
273
270
|
6, 6, 6, 6, 6, 6, 6, 6,
|
274
271
|
6, 6, 6, 6, 6, 0, 9, 8,
|
275
|
-
|
276
|
-
10, 10, 10,
|
277
|
-
|
278
|
-
10,
|
279
|
-
|
280
|
-
|
272
|
+
12, 11, 13, 10, 10, 10, 10, 10,
|
273
|
+
10, 10, 10, 14, 14, 14, 14, 14,
|
274
|
+
14, 14, 14, 14, 14, 10, 10, 10,
|
275
|
+
10, 10, 10, 10, 14, 14, 14, 14,
|
276
|
+
14, 14, 14, 14, 14, 14, 14, 14,
|
277
|
+
14, 14, 14, 14, 14, 14, 14, 14,
|
278
|
+
14, 14, 14, 14, 14, 14, 10, 10,
|
279
|
+
10, 10, 14, 10, 14, 14, 14, 14,
|
280
|
+
14, 14, 14, 14, 14, 14, 14, 14,
|
281
|
+
14, 14, 14, 14, 14, 14, 14, 14,
|
282
|
+
14, 14, 14, 14, 14, 14, 10, 15,
|
281
283
|
10, 10, 10, 10, 10, 10, 10, 10,
|
282
|
-
10, 10, 10, 10, 10, 10,
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
10,
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
28, 28,
|
338
|
-
|
339
|
-
28, 28, 28, 28, 28,
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
284
|
+
10, 10, 10, 10, 10, 10, 16, 16,
|
285
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
286
|
+
10, 10, 10, 15, 13, 10, 10, 16,
|
287
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
288
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
289
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
290
|
+
16, 10, 10, 10, 10, 16, 10, 16,
|
291
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
292
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
293
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
294
|
+
16, 10, 16, 16, 16, 16, 16, 16,
|
295
|
+
16, 16, 16, 16, 10, 10, 10, 10,
|
296
|
+
13, 10, 10, 16, 16, 16, 16, 16,
|
297
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
298
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
299
|
+
16, 16, 16, 16, 16, 10, 10, 10,
|
300
|
+
10, 16, 10, 16, 16, 16, 16, 16,
|
301
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
302
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
303
|
+
16, 16, 16, 16, 16, 10, 18, 17,
|
304
|
+
17, 17, 17, 17, 17, 17, 17, 17,
|
305
|
+
17, 17, 17, 17, 17, 17, 17, 17,
|
306
|
+
17, 17, 17, 19, 17, 20, 17, 17,
|
307
|
+
17, 21, 17, 22, 17, 17, 23, 23,
|
308
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
309
|
+
17, 17, 17, 17, 17, 17, 17, 23,
|
310
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
311
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
312
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
313
|
+
23, 17, 17, 17, 17, 23, 17, 23,
|
314
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
315
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
316
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
317
|
+
23, 17, 24, 24, 24, 24, 24, 24,
|
318
|
+
24, 24, 24, 24, 17, 20, 17, 17,
|
319
|
+
17, 17, 17, 17, 17, 17, 24, 24,
|
320
|
+
24, 24, 24, 24, 24, 24, 24, 24,
|
321
|
+
17, 24, 25, 25, 25, 25, 25, 25,
|
322
|
+
25, 25, 25, 17, 20, 17, 17, 17,
|
323
|
+
21, 17, 21, 17, 17, 25, 25, 25,
|
324
|
+
25, 25, 25, 25, 25, 25, 25, 17,
|
325
|
+
20, 17, 17, 17, 21, 17, 21, 17,
|
326
|
+
17, 23, 23, 23, 23, 23, 23, 23,
|
327
|
+
23, 23, 23, 17, 17, 17, 17, 17,
|
328
|
+
17, 17, 23, 23, 23, 23, 23, 23,
|
329
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
330
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
331
|
+
23, 23, 23, 23, 17, 17, 17, 17,
|
332
|
+
23, 17, 23, 23, 23, 23, 23, 23,
|
333
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
334
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
335
|
+
23, 23, 23, 23, 17, 26, 17, 27,
|
336
|
+
17, 17, 28, 28, 28, 28, 28, 28,
|
337
|
+
28, 28, 28, 28, 17, 17, 17, 17,
|
338
|
+
20, 17, 17, 28, 28, 28, 28, 28,
|
339
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
340
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
341
|
+
28, 28, 28, 28, 28, 17, 17, 17,
|
342
|
+
17, 28, 17, 28, 28, 28, 28, 28,
|
343
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
344
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
345
|
+
28, 28, 28, 28, 28, 17, 29, 29,
|
346
|
+
29, 29, 29, 29, 29, 29, 29, 29,
|
347
|
+
17, 29, 29, 29, 29, 29, 29, 29,
|
348
|
+
29, 29, 29, 17, 17, 17, 17, 20,
|
349
|
+
17, 29, 30, 30, 30, 30, 30, 30,
|
350
|
+
30, 30, 30, 17, 26, 17, 26, 17,
|
351
|
+
17, 30, 30, 30, 30, 30, 30, 30,
|
352
|
+
30, 30, 30, 17, 17, 17, 17, 20,
|
353
|
+
17, 26, 17, 26, 17, 17, 28, 28,
|
354
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
355
|
+
17, 17, 17, 17, 20, 17, 17, 28,
|
356
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
357
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
358
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
359
|
+
28, 17, 17, 17, 17, 28, 17, 28,
|
360
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
361
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
362
|
+
28, 28, 28, 28, 28, 28, 28, 28,
|
363
|
+
28, 17, 32, 31, 31, 31, 33, 33,
|
364
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
354
365
|
31, 31, 31, 31, 31, 31, 31, 31,
|
355
366
|
31, 31, 31, 31, 31, 31, 31, 31,
|
356
|
-
31, 31, 31, 31, 20, 20, 20, 20,
|
357
|
-
31, 20, 31, 31, 31, 31, 31, 31,
|
358
367
|
31, 31, 31, 31, 31, 31, 31, 31,
|
359
368
|
31, 31, 31, 31, 31, 31, 31, 31,
|
360
|
-
31, 31, 31, 31, 20, 32, 32, 32,
|
361
|
-
32, 32, 32, 32, 32, 32, 32, 20,
|
362
|
-
32, 32, 32, 32, 32, 32, 32, 32,
|
363
|
-
32, 32, 20, 20, 20, 20, 23, 20,
|
364
|
-
32, 33, 33, 33, 33, 33, 33, 33,
|
365
|
-
33, 33, 20, 29, 20, 29, 20, 20,
|
366
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
367
|
-
33, 33, 20, 20, 20, 20, 23, 20,
|
368
|
-
29, 20, 29, 20, 20, 31, 31, 31,
|
369
|
-
31, 31, 31, 31, 31, 31, 31, 20,
|
370
|
-
20, 20, 20, 23, 20, 20, 31, 31,
|
371
369
|
31, 31, 31, 31, 31, 31, 31, 31,
|
372
370
|
31, 31, 31, 31, 31, 31, 31, 31,
|
373
371
|
31, 31, 31, 31, 31, 31, 31, 31,
|
374
|
-
20, 20, 20, 20, 31, 20, 31, 31,
|
375
372
|
31, 31, 31, 31, 31, 31, 31, 31,
|
373
|
+
31, 31, 31, 34, 31, 32, 32, 32,
|
374
|
+
32, 32, 32, 32, 32, 32, 32, 31,
|
376
375
|
31, 31, 31, 31, 31, 31, 31, 31,
|
377
376
|
31, 31, 31, 31, 31, 31, 31, 31,
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
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,
|
377
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
378
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
379
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
380
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
381
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
382
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
383
|
+
31, 31, 34, 31, 35, 36, 37, 37,
|
384
|
+
37, 37, 37, 36, 36, 36, 36, 36,
|
385
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
386
|
+
36, 36, 36, 36, 36, 37, 36, 36,
|
387
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
388
|
+
36, 36, 37, 37, 36, 37, 37, 37,
|
389
|
+
37, 37, 37, 37, 37, 37, 37, 36,
|
390
|
+
36, 36, 37, 36, 36, 36, 37, 37,
|
391
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
392
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
393
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
394
|
+
36, 36, 36, 38, 37, 36, 37, 37,
|
395
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
396
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
397
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
398
|
+
36, 37, 37, 37, 37, 37, 36, 36,
|
399
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
400
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
401
|
+
37, 36, 36, 36, 36, 36, 36, 36,
|
402
|
+
36, 36, 36, 36, 36, 37, 37, 36,
|
403
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
404
|
+
37, 37, 36, 36, 36, 37, 36, 36,
|
405
|
+
36, 37, 37, 37, 37, 37, 37, 37,
|
406
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
407
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
408
|
+
37, 37, 37, 36, 36, 36, 36, 37,
|
409
|
+
36, 37, 37, 37, 37, 37, 37, 37,
|
410
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
411
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
412
|
+
37, 37, 37, 36, 36, 39, 36, 37,
|
413
|
+
37, 37, 37, 37, 36, 36, 36, 36,
|
414
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
415
|
+
36, 36, 36, 36, 36, 36, 37, 36,
|
416
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
417
|
+
36, 36, 36, 37, 37, 36, 37, 37,
|
418
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
419
|
+
36, 36, 36, 37, 36, 36, 36, 37,
|
420
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
421
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
422
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
423
|
+
37, 36, 36, 36, 36, 37, 36, 37,
|
424
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
425
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
426
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
427
|
+
37, 36, 41, 41, 41, 41, 41, 41,
|
428
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
429
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
430
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
431
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
432
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
433
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
434
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
435
|
+
41, 41, 40, 42, 42, 42, 42, 42,
|
436
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
437
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
438
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
439
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
440
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
441
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
442
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
443
|
+
42, 42, 42, 40, 44, 43, 47, 46,
|
444
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
445
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
446
|
+
46, 46, 47, 47, 47, 47, 47, 47,
|
447
|
+
47, 47, 47, 47, 47, 47, 47, 47,
|
448
|
+
47, 47, 47, 47, 47, 47, 47, 47,
|
449
|
+
47, 47, 47, 47, 46, 46, 46, 46,
|
450
|
+
46, 46, 47, 47, 47, 47, 47, 47,
|
451
|
+
47, 47, 47, 47, 47, 47, 47, 47,
|
452
|
+
47, 47, 47, 47, 47, 47, 47, 47,
|
453
|
+
47, 47, 47, 47, 46, 47, 48, 46,
|
454
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
455
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
456
|
+
46, 47, 47, 47, 47, 47, 47, 47,
|
457
|
+
47, 47, 47, 47, 47, 47, 47, 47,
|
458
|
+
47, 47, 47, 47, 47, 47, 47, 47,
|
459
|
+
47, 47, 47, 46, 46, 46, 46, 46,
|
460
|
+
46, 47, 47, 47, 47, 47, 47, 47,
|
461
|
+
47, 47, 47, 47, 47, 47, 47, 47,
|
462
|
+
47, 47, 47, 47, 47, 47, 47, 47,
|
463
|
+
47, 47, 47, 46, 49, 46, 50, 46,
|
464
|
+
46, 51, 52, 53, 54, 46, 46, 55,
|
465
|
+
46, 46, 46, 46, 56, 46, 46, 46,
|
466
|
+
57, 46, 46, 58, 46, 59, 46, 60,
|
467
|
+
61, 46, 51, 52, 53, 54, 46, 46,
|
468
|
+
55, 46, 46, 46, 46, 56, 46, 46,
|
469
|
+
46, 57, 46, 46, 58, 46, 59, 46,
|
470
|
+
60, 61, 46, 62, 46, 46, 46, 46,
|
471
|
+
46, 46, 63, 46, 64, 46, 65, 46,
|
472
|
+
66, 46, 67, 46, 68, 46, 69, 46,
|
473
|
+
70, 46, 67, 46, 71, 46, 72, 46,
|
474
|
+
67, 46, 73, 46, 74, 46, 75, 46,
|
475
|
+
67, 46, 76, 46, 77, 46, 78, 46,
|
476
|
+
67, 46, 79, 46, 80, 46, 81, 46,
|
477
|
+
67, 46, 82, 46, 83, 46, 84, 46,
|
478
|
+
67, 46, 85, 46, 86, 46, 87, 46,
|
479
|
+
67, 46, 88, 46, 46, 89, 46, 90,
|
480
|
+
46, 81, 46, 91, 46, 81, 46, 92,
|
481
|
+
46, 93, 46, 94, 46, 67, 46, 95,
|
482
|
+
46, 86, 46, 96, 46, 97, 46, 67,
|
483
|
+
46, 54, 46, 98, 98, 98, 98, 98,
|
484
|
+
98, 98, 98, 98, 98, 98, 98, 98,
|
485
|
+
98, 98, 98, 98, 98, 98, 98, 98,
|
486
|
+
98, 98, 98, 98, 98, 46, 46, 46,
|
487
|
+
46, 46, 46, 98, 98, 98, 98, 98,
|
488
|
+
98, 98, 98, 98, 98, 98, 98, 98,
|
489
|
+
98, 98, 98, 98, 98, 98, 98, 98,
|
490
|
+
98, 98, 98, 98, 98, 46, 99, 46,
|
491
|
+
100, 46, 101, 36, 103, 102, 105, 102,
|
492
|
+
106, 36, 108, 107, 110, 107, 111, 111,
|
510
493
|
111, 111, 111, 111, 111, 111, 111, 111,
|
511
|
-
|
512
|
-
111,
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
494
|
+
36, 36, 36, 36, 36, 36, 36, 111,
|
495
|
+
111, 111, 111, 111, 111, 36, 36, 36,
|
496
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
497
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
498
|
+
36, 36, 36, 36, 36, 36, 36, 111,
|
499
|
+
111, 111, 111, 111, 111, 36, 36, 36,
|
500
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
501
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
502
|
+
36, 112, 36, 113, 113, 113, 113, 113,
|
503
|
+
113, 113, 113, 113, 113, 36, 36, 36,
|
504
|
+
36, 36, 36, 36, 113, 113, 113, 113,
|
505
|
+
113, 113, 36, 36, 36, 36, 36, 36,
|
506
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
507
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
508
|
+
36, 36, 36, 36, 113, 113, 113, 113,
|
509
|
+
113, 113, 36, 114, 114, 114, 114, 114,
|
510
|
+
114, 114, 114, 114, 114, 36, 36, 36,
|
511
|
+
36, 36, 36, 36, 114, 114, 114, 114,
|
512
|
+
114, 114, 36, 36, 36, 36, 36, 36,
|
513
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
514
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
515
|
+
36, 36, 36, 36, 114, 114, 114, 114,
|
516
|
+
114, 114, 36, 115, 115, 115, 115, 115,
|
517
|
+
115, 115, 115, 115, 115, 36, 36, 36,
|
518
|
+
36, 36, 36, 36, 115, 115, 115, 115,
|
519
|
+
115, 115, 36, 36, 36, 36, 36, 36,
|
520
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
521
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
522
|
+
36, 36, 36, 36, 115, 115, 115, 115,
|
523
|
+
115, 115, 36, 116, 116, 116, 116, 116,
|
524
|
+
116, 116, 116, 116, 116, 36, 36, 36,
|
525
|
+
36, 36, 36, 36, 116, 116, 116, 116,
|
526
|
+
116, 116, 36, 36, 36, 36, 36, 36,
|
527
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
528
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
529
|
+
36, 36, 36, 36, 116, 116, 116, 116,
|
530
|
+
116, 116, 36, 112, 112, 112, 112, 112,
|
531
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
532
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
533
|
+
36, 36, 112, 36, 36, 36, 36, 36,
|
534
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
535
|
+
36, 36, 117, 117, 117, 117, 117, 117,
|
536
|
+
117, 117, 117, 117, 36, 36, 36, 36,
|
537
|
+
36, 36, 36, 117, 117, 117, 117, 117,
|
538
|
+
117, 36, 36, 36, 36, 36, 36, 36,
|
539
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
540
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
541
|
+
36, 36, 36, 117, 117, 117, 117, 117,
|
542
|
+
117, 36, 36, 36, 36, 36, 36, 36,
|
543
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
544
|
+
36, 36, 36, 36, 36, 36, 36, 115,
|
545
|
+
36, 112, 112, 112, 112, 112, 36, 36,
|
546
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
547
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
548
|
+
112, 36, 36, 36, 36, 36, 36, 36,
|
549
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
522
550
|
118, 118, 118, 118, 118, 118, 118, 118,
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
551
|
+
118, 118, 36, 36, 36, 36, 36, 36,
|
552
|
+
36, 118, 118, 118, 118, 118, 118, 36,
|
553
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
554
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
555
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
556
|
+
36, 118, 118, 118, 118, 118, 118, 36,
|
557
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
558
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
559
|
+
36, 36, 36, 36, 36, 115, 36, 112,
|
560
|
+
112, 112, 112, 112, 36, 36, 36, 36,
|
561
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
562
|
+
36, 36, 36, 36, 36, 36, 112, 36,
|
563
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
564
|
+
36, 36, 36, 36, 36, 36, 119, 119,
|
529
565
|
119, 119, 119, 119, 119, 119, 119, 119,
|
530
|
-
|
531
|
-
119, 119, 119, 119, 119,
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
119, 119, 119, 119, 119,
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
125, 39, 39, 39, 39, 39, 39, 39,
|
601
|
-
125, 125, 125, 125, 125, 125, 39, 39,
|
602
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
603
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
604
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
605
|
-
125, 125, 125, 125, 125, 125, 39, 39,
|
606
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
607
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
608
|
-
39, 39, 39, 39, 120, 39, 117, 117,
|
609
|
-
117, 117, 117, 39, 39, 39, 39, 39,
|
610
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
611
|
-
39, 39, 39, 39, 39, 117, 39, 39,
|
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,
|
617
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
618
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
619
|
-
39, 39, 39, 39, 39, 39, 126, 126,
|
620
|
-
126, 126, 126, 126, 39, 39, 39, 39,
|
621
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
622
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
623
|
-
39, 39, 120, 39, 117, 117, 117, 117,
|
624
|
-
117, 39, 39, 39, 39, 39, 39, 39,
|
625
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
626
|
-
39, 39, 39, 117, 39, 39, 39, 39,
|
627
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
628
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
629
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
630
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
631
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
632
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
633
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
634
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
635
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
636
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
637
|
-
39, 39, 39, 39, 39, 39, 39, 39,
|
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,
|
566
|
+
36, 36, 36, 36, 36, 36, 36, 119,
|
567
|
+
119, 119, 119, 119, 119, 36, 36, 36,
|
568
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
569
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
570
|
+
36, 36, 36, 36, 36, 36, 36, 119,
|
571
|
+
119, 119, 119, 119, 119, 36, 36, 36,
|
572
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
573
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
574
|
+
36, 36, 36, 115, 36, 112, 112, 112,
|
575
|
+
112, 112, 36, 36, 36, 36, 36, 36,
|
576
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
577
|
+
36, 36, 36, 36, 112, 36, 36, 36,
|
578
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
579
|
+
36, 36, 36, 36, 120, 120, 120, 120,
|
580
|
+
120, 120, 120, 120, 120, 120, 36, 36,
|
581
|
+
36, 36, 36, 36, 36, 120, 120, 120,
|
582
|
+
120, 120, 120, 36, 36, 36, 36, 36,
|
583
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
584
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
585
|
+
36, 36, 36, 36, 36, 120, 120, 120,
|
586
|
+
120, 120, 120, 36, 36, 36, 36, 36,
|
587
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
588
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
589
|
+
36, 115, 36, 112, 112, 112, 112, 112,
|
590
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
591
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
592
|
+
36, 36, 112, 36, 36, 36, 36, 36,
|
593
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
594
|
+
36, 36, 121, 121, 121, 121, 121, 121,
|
595
|
+
121, 121, 121, 121, 36, 36, 36, 36,
|
596
|
+
36, 36, 36, 121, 121, 121, 121, 121,
|
597
|
+
121, 36, 36, 36, 36, 36, 36, 36,
|
598
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
599
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
600
|
+
36, 36, 36, 121, 121, 121, 121, 121,
|
601
|
+
121, 36, 36, 36, 36, 36, 36, 36,
|
602
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
603
|
+
36, 36, 36, 36, 36, 36, 36, 115,
|
604
|
+
36, 112, 112, 112, 112, 112, 36, 36,
|
605
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
606
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
607
|
+
112, 36, 36, 36, 36, 36, 36, 36,
|
608
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
609
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
610
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
611
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
612
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
613
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
614
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
615
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
616
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
617
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
618
|
+
36, 36, 36, 36, 36, 115, 36, 123,
|
619
|
+
123, 123, 123, 123, 123, 123, 123, 123,
|
620
|
+
123, 122, 122, 122, 122, 122, 122, 122,
|
621
|
+
123, 123, 123, 123, 123, 123, 122, 122,
|
622
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
623
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
624
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
625
|
+
123, 123, 123, 123, 123, 123, 122, 122,
|
626
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
627
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
628
|
+
122, 122, 36, 122, 125, 124, 126, 124,
|
629
|
+
124, 124, 124, 124, 124, 124, 124, 127,
|
630
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
631
|
+
127, 124, 124, 124, 124, 124, 124, 124,
|
632
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
633
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
634
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
635
|
+
127, 127, 124, 124, 124, 124, 127, 124,
|
642
636
|
127, 127, 127, 127, 127, 127, 127, 127,
|
643
637
|
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
638
|
127, 127, 127, 127, 127, 127, 127, 127,
|
647
|
-
127, 127,
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
134, 134, 134, 134, 134,
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
639
|
+
127, 127, 124, 125, 124, 124, 124, 124,
|
640
|
+
124, 124, 128, 128, 128, 128, 128, 128,
|
641
|
+
128, 128, 128, 128, 124, 129, 129, 129,
|
642
|
+
129, 129, 129, 129, 129, 129, 129, 124,
|
643
|
+
124, 124, 124, 126, 124, 124, 129, 129,
|
644
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
645
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
646
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
647
|
+
124, 124, 124, 124, 129, 124, 129, 129,
|
648
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
649
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
650
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
651
|
+
124, 130, 130, 130, 130, 130, 130, 130,
|
652
|
+
130, 130, 130, 130, 130, 130, 130, 130,
|
653
|
+
130, 130, 130, 130, 130, 130, 130, 130,
|
654
|
+
130, 130, 130, 130, 130, 130, 130, 131,
|
655
|
+
131, 131, 131, 131, 131, 131, 131, 131,
|
656
|
+
131, 131, 131, 131, 131, 131, 131, 132,
|
657
|
+
132, 132, 132, 132, 31, 31, 31, 31,
|
658
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
659
|
+
133, 133, 133, 133, 133, 133, 133, 133,
|
660
|
+
134, 134, 134, 134, 134, 133, 133, 133,
|
661
|
+
133, 133, 133, 133, 133, 133, 133, 133,
|
662
|
+
133, 133, 133, 133, 133, 133, 133, 135,
|
663
|
+
136, 136, 137, 138, 136, 136, 136, 139,
|
664
|
+
140, 141, 142, 136, 136, 143, 136, 136,
|
665
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
666
|
+
136, 136, 136, 136, 136, 136, 144, 136,
|
667
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
668
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
669
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
670
|
+
136, 136, 145, 146, 31, 147, 136, 136,
|
671
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
672
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
673
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
674
|
+
136, 136, 33, 148, 31, 136, 133, 31,
|
675
|
+
130, 130, 130, 130, 130, 130, 130, 130,
|
676
|
+
130, 130, 130, 130, 130, 130, 130, 130,
|
677
|
+
130, 130, 130, 130, 130, 130, 130, 130,
|
678
|
+
130, 130, 130, 130, 130, 130, 149, 131,
|
679
|
+
131, 131, 131, 131, 131, 131, 131, 131,
|
680
|
+
131, 131, 131, 131, 131, 131, 131, 149,
|
681
|
+
132, 132, 132, 132, 132, 149, 133, 133,
|
682
|
+
133, 133, 133, 133, 133, 133, 133, 133,
|
683
|
+
133, 133, 133, 133, 133, 133, 133, 133,
|
684
|
+
133, 133, 133, 133, 133, 133, 133, 133,
|
685
|
+
133, 133, 133, 133, 133, 149, 149, 149,
|
686
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
687
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
688
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
689
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
690
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
691
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
692
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
693
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
694
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
695
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
696
|
+
149, 149, 149, 149, 149, 149, 149, 149,
|
697
|
+
149, 149, 149, 149, 133, 149, 133, 133,
|
698
|
+
133, 133, 133, 133, 133, 133, 134, 134,
|
699
|
+
134, 134, 134, 133, 133, 133, 133, 133,
|
700
|
+
133, 133, 133, 133, 133, 133, 133, 133,
|
701
|
+
133, 133, 133, 133, 133, 135, 150, 150,
|
702
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
703
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
704
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
705
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
706
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
707
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
708
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
709
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
710
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
711
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
712
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
713
|
+
150, 150, 150, 150, 133, 150, 135, 135,
|
714
|
+
135, 135, 135, 150, 150, 150, 150, 150,
|
715
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
716
|
+
150, 150, 150, 150, 150, 135, 150, 136,
|
717
|
+
136, 136, 149, 136, 136, 136, 149, 149,
|
718
|
+
149, 149, 136, 136, 149, 136, 136, 136,
|
675
719
|
136, 136, 136, 136, 136, 136, 136, 136,
|
676
|
-
136, 136,
|
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,
|
720
|
+
136, 136, 136, 136, 136, 149, 136, 136,
|
699
721
|
136, 136, 136, 136, 136, 136, 136, 136,
|
700
|
-
136, 136,
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
722
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
723
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
724
|
+
136, 149, 149, 149, 149, 136, 136, 136,
|
725
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
726
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
727
|
+
136, 136, 136, 136, 136, 136, 136, 136,
|
728
|
+
136, 149, 149, 149, 136, 149, 9, 8,
|
729
|
+
8, 8, 8, 8, 8, 8, 8, 8,
|
730
|
+
8, 8, 8, 8, 8, 8, 8, 8,
|
731
|
+
8, 8, 8, 8, 8, 137, 137, 137,
|
732
|
+
8, 137, 137, 137, 8, 8, 8, 8,
|
733
|
+
137, 137, 8, 137, 137, 137, 137, 137,
|
734
|
+
137, 137, 137, 137, 137, 137, 137, 137,
|
735
|
+
137, 137, 137, 8, 137, 137, 137, 137,
|
736
|
+
137, 137, 137, 137, 137, 137, 137, 137,
|
737
|
+
137, 137, 137, 137, 137, 137, 137, 137,
|
738
|
+
137, 137, 137, 137, 137, 137, 137, 8,
|
739
|
+
8, 8, 8, 137, 137, 137, 137, 137,
|
740
|
+
137, 137, 137, 137, 137, 137, 137, 137,
|
741
|
+
137, 137, 137, 137, 137, 137, 137, 137,
|
742
|
+
137, 137, 137, 137, 137, 137, 137, 8,
|
743
|
+
8, 8, 137, 8, 152, 151, 15, 154,
|
744
|
+
11, 154, 154, 154, 14, 155, 153, 154,
|
705
745
|
154, 154, 154, 154, 154, 154, 154, 154,
|
746
|
+
154, 154, 154, 154, 154, 154, 154, 13,
|
747
|
+
154, 156, 15, 13, 154, 154, 154, 154,
|
706
748
|
154, 154, 154, 154, 154, 154, 154, 154,
|
707
749
|
154, 154, 154, 154, 154, 154, 154, 154,
|
708
750
|
154, 154, 154, 154, 154, 154, 154, 154,
|
@@ -710,126 +752,88 @@ self._re_scanner_indicies = [
|
|
710
752
|
154, 154, 154, 154, 154, 154, 154, 154,
|
711
753
|
154, 154, 154, 154, 154, 154, 154, 154,
|
712
754
|
154, 154, 154, 154, 154, 154, 154, 154,
|
755
|
+
154, 154, 154, 13, 154, 153, 154, 153,
|
756
|
+
154, 154, 154, 153, 153, 153, 154, 154,
|
713
757
|
154, 154, 154, 154, 154, 154, 154, 154,
|
758
|
+
154, 154, 154, 154, 154, 154, 157, 154,
|
759
|
+
153, 153, 153, 154, 154, 154, 154, 154,
|
714
760
|
154, 154, 154, 154, 154, 154, 154, 154,
|
715
761
|
154, 154, 154, 154, 154, 154, 154, 154,
|
716
|
-
154, 154, 154, 154, 154, 154, 154,
|
717
|
-
154,
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
155, 155, 155, 155, 155, 155, 155, 155,
|
723
|
-
155, 155, 155, 155, 155, 155, 155, 155,
|
724
|
-
155, 155, 155, 155, 155, 155, 155, 155,
|
725
|
-
155, 155, 155, 155, 155, 155, 155, 155,
|
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,
|
762
|
+
154, 154, 154, 154, 154, 154, 154, 154,
|
763
|
+
154, 154, 154, 154, 154, 154, 154, 154,
|
764
|
+
154, 154, 154, 154, 154, 154, 154, 154,
|
765
|
+
154, 154, 154, 154, 154, 154, 154, 154,
|
766
|
+
154, 154, 154, 154, 154, 154, 154, 154,
|
767
|
+
154, 154, 153, 154, 159, 158, 158, 158,
|
764
768
|
158, 158, 158, 158, 158, 158, 158, 158,
|
765
|
-
158, 158, 158, 158, 158,
|
766
|
-
|
769
|
+
158, 158, 158, 158, 158, 158, 158, 158,
|
770
|
+
159, 158, 161, 160, 160, 160, 160, 160,
|
767
771
|
160, 160, 160, 160, 160, 160, 160, 160,
|
768
|
-
160, 160, 160,
|
772
|
+
160, 160, 160, 160, 160, 160, 161, 160,
|
773
|
+
163, 162, 162, 162, 162, 162, 162, 162,
|
769
774
|
162, 162, 162, 162, 162, 162, 162, 162,
|
770
|
-
162, 162, 162, 162,
|
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
|
+
162, 162, 162, 162, 163, 162, 165, 165,
|
775
776
|
164, 164, 164, 164, 165, 164, 164, 164,
|
776
|
-
|
777
|
-
164, 164, 164, 164, 164, 164, 164,
|
778
|
-
164, 164, 164, 164,
|
777
|
+
166, 164, 164, 164, 164, 164, 164, 164,
|
778
|
+
164, 164, 164, 164, 164, 164, 164, 165,
|
779
|
+
164, 164, 164, 164, 164, 164, 164, 165,
|
780
|
+
164, 164, 164, 164, 167, 164, 164, 164,
|
781
|
+
167, 164, 164, 164, 164, 164, 164, 164,
|
782
|
+
164, 164, 164, 164, 164, 164, 164, 165,
|
783
|
+
164, 169, 168, 168, 168, 168, 168, 168,
|
779
784
|
168, 168, 168, 168, 168, 168, 168, 168,
|
780
|
-
168, 168, 168, 168, 168,
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
39, 171, 39, 172, 172, 172, 172, 172,
|
785
|
+
168, 168, 168, 168, 168, 169, 168, 170,
|
786
|
+
36, 36, 36, 170, 36, 36, 36, 36,
|
787
|
+
36, 36, 36, 36, 36, 170, 170, 36,
|
788
|
+
36, 36, 170, 170, 36, 36, 36, 36,
|
789
|
+
36, 36, 36, 36, 36, 36, 36, 170,
|
790
|
+
36, 36, 36, 170, 36, 36, 36, 36,
|
791
|
+
36, 36, 36, 36, 36, 36, 170, 36,
|
792
|
+
36, 36, 170, 36, 171, 36, 36, 36,
|
793
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
794
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
795
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
796
|
+
36, 36, 36, 36, 171, 36, 172, 172,
|
793
797
|
172, 172, 172, 172, 172, 172, 172, 172,
|
794
798
|
172, 172, 172, 172, 172, 172, 172, 172,
|
795
799
|
172, 172, 172, 172, 172, 172, 172, 172,
|
796
|
-
172,
|
800
|
+
172, 172, 172, 172, 173, 173, 173, 173,
|
797
801
|
173, 173, 173, 173, 173, 173, 173, 173,
|
798
|
-
173,
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
802
|
+
173, 173, 173, 173, 174, 174, 174, 174,
|
803
|
+
174, 41, 41, 41, 41, 41, 41, 41,
|
804
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
805
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
806
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
807
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
808
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
809
|
+
175, 41, 176, 41, 175, 175, 175, 175,
|
810
|
+
41, 177, 175, 41, 41, 41, 41, 41,
|
811
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
812
|
+
41, 41, 41, 175, 41, 41, 41, 41,
|
813
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
814
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
815
|
+
41, 41, 41, 41, 41, 41, 41, 178,
|
816
|
+
179, 180, 181, 41, 41, 41, 41, 41,
|
817
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
818
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
819
|
+
41, 41, 41, 41, 41, 41, 41, 175,
|
820
|
+
175, 175, 41, 41, 41, 41, 41, 41,
|
821
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
822
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
823
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
824
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
825
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
826
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
827
|
+
41, 41, 41, 41, 41, 41, 41, 41,
|
828
|
+
41, 41, 41, 182, 42, 42, 42, 42,
|
829
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
830
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
831
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
832
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
833
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
834
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
835
|
+
42, 42, 42, 42, 42, 42, 42, 42,
|
836
|
+
42, 42, 42, 42, 182, 183, 183, 183,
|
833
837
|
183, 183, 183, 183, 183, 183, 183, 183,
|
834
838
|
183, 183, 183, 183, 183, 183, 183, 183,
|
835
839
|
183, 183, 183, 183, 183, 183, 183, 183,
|
@@ -837,74 +841,79 @@ self._re_scanner_indicies = [
|
|
837
841
|
183, 183, 183, 183, 183, 183, 183, 183,
|
838
842
|
183, 183, 183, 183, 183, 183, 183, 183,
|
839
843
|
183, 183, 183, 183, 183, 183, 183, 183,
|
840
|
-
183, 183,
|
841
|
-
|
844
|
+
183, 183, 183, 183, 183, 182, 184, 182,
|
845
|
+
186, 185, 185, 185, 185, 185, 185, 185,
|
842
846
|
185, 185, 185, 185, 185, 185, 185, 185,
|
843
847
|
185, 185, 185, 185, 185, 185, 185, 185,
|
844
848
|
185, 185, 185, 185, 185, 185, 185, 185,
|
845
849
|
185, 185, 185, 185, 185, 185, 185, 185,
|
846
850
|
185, 185, 185, 185, 185, 185, 185, 185,
|
847
|
-
185, 185, 185, 185,
|
848
|
-
|
849
|
-
189, 189,
|
850
|
-
|
851
|
-
194,
|
852
|
-
|
851
|
+
185, 185, 185, 185, 185, 185, 185, 187,
|
852
|
+
185, 190, 189, 189, 189, 189, 189, 189,
|
853
|
+
189, 189, 189, 189, 189, 191, 189, 189,
|
854
|
+
192, 189, 194, 194, 194, 194, 194, 194,
|
855
|
+
194, 194, 194, 194, 193, 193, 193, 193,
|
856
|
+
193, 193, 193, 194, 194, 194, 193, 193,
|
857
|
+
193, 194, 193, 193, 193, 194, 193, 194,
|
858
|
+
193, 193, 193, 193, 194, 193, 193, 193,
|
853
859
|
193, 193, 194, 193, 194, 193, 193, 193,
|
854
|
-
193,
|
855
|
-
193, 194, 193, 193, 193,
|
856
|
-
193, 193, 194, 193, 193, 193, 194, 193,
|
857
|
-
193, 193, 194, 193, 193, 193, 193, 193,
|
860
|
+
193, 193, 193, 193, 193, 194, 193, 193,
|
861
|
+
193, 194, 193, 193, 193, 194, 193, 193,
|
858
862
|
193, 193, 193, 193, 193, 193, 193, 193,
|
859
|
-
193,
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
195,
|
865
|
-
195,
|
866
|
-
195,
|
867
|
-
|
868
|
-
|
869
|
-
195,
|
870
|
-
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
863
|
+
193, 193, 193, 193, 194, 193, 196, 195,
|
864
|
+
195, 195, 196, 196, 196, 196, 195, 195,
|
865
|
+
196, 195, 197, 198, 198, 198, 198, 198,
|
866
|
+
198, 198, 199, 199, 195, 195, 195, 195,
|
867
|
+
195, 196, 195, 36, 36, 200, 201, 195,
|
868
|
+
195, 36, 201, 195, 195, 36, 195, 202,
|
869
|
+
195, 195, 203, 195, 201, 201, 195, 195,
|
870
|
+
195, 201, 201, 195, 36, 196, 196, 196,
|
871
|
+
196, 195, 195, 204, 204, 101, 201, 204,
|
872
|
+
204, 36, 201, 195, 195, 36, 195, 195,
|
873
|
+
204, 195, 203, 195, 204, 201, 204, 205,
|
874
|
+
204, 201, 206, 195, 36, 196, 196, 196,
|
875
|
+
195, 208, 208, 208, 208, 208, 208, 208,
|
876
|
+
208, 207, 210, 210, 210, 210, 210, 210,
|
877
|
+
210, 210, 209, 212, 102, 214, 213, 102,
|
878
|
+
216, 107, 107, 107, 107, 107, 107, 107,
|
879
|
+
107, 107, 107, 107, 107, 107, 107, 107,
|
880
|
+
107, 107, 107, 107, 107, 107, 107, 107,
|
881
|
+
107, 107, 107, 107, 107, 107, 107, 107,
|
882
|
+
217, 107, 219, 218, 107, 110, 107, 222,
|
883
|
+
222, 222, 222, 222, 222, 222, 222, 222,
|
884
|
+
222, 221, 221, 221, 221, 221, 221, 221,
|
885
|
+
222, 222, 222, 222, 222, 222, 221, 221,
|
886
|
+
221, 221, 221, 221, 221, 221, 221, 221,
|
887
|
+
221, 221, 221, 221, 221, 221, 221, 221,
|
888
|
+
221, 221, 221, 221, 221, 221, 221, 221,
|
889
|
+
222, 222, 222, 222, 222, 222, 221, 224,
|
890
|
+
223, 223, 223, 223, 223, 225, 223, 223,
|
891
|
+
223, 226, 226, 226, 226, 226, 226, 226,
|
892
|
+
226, 226, 223, 223, 227, 223, 126, 228,
|
893
|
+
228, 228, 228, 228, 228, 228, 228, 127,
|
894
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
895
|
+
127, 228, 228, 228, 228, 228, 228, 228,
|
896
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
897
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
898
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
899
|
+
127, 127, 228, 228, 228, 228, 127, 228,
|
900
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
901
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
902
|
+
127, 127, 127, 127, 127, 127, 127, 127,
|
903
|
+
127, 127, 228, 128, 128, 128, 128, 128,
|
904
|
+
128, 128, 128, 128, 228, 125, 228, 228,
|
905
|
+
228, 228, 228, 228, 128, 128, 128, 128,
|
906
|
+
128, 128, 128, 128, 128, 128, 228, 129,
|
907
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
908
|
+
129, 228, 228, 228, 228, 126, 228, 228,
|
909
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
910
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
911
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
912
|
+
129, 129, 228, 228, 228, 228, 129, 228,
|
913
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
914
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
915
|
+
129, 129, 129, 129, 129, 129, 129, 129,
|
916
|
+
129, 129, 228, 0
|
908
917
|
]
|
909
918
|
|
910
919
|
class << self
|
@@ -912,35 +921,35 @@ class << self
|
|
912
921
|
private :_re_scanner_trans_targs, :_re_scanner_trans_targs=
|
913
922
|
end
|
914
923
|
self._re_scanner_trans_targs = [
|
915
|
-
|
916
|
-
7,
|
917
|
-
|
918
|
-
15, 17,
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
134, 135,
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
924
|
+
110, 111, 3, 112, 5, 6, 113, 110,
|
925
|
+
7, 110, 110, 8, 110, 110, 9, 110,
|
926
|
+
11, 110, 13, 19, 110, 14, 16, 18,
|
927
|
+
15, 17, 20, 22, 24, 21, 23, 0,
|
928
|
+
26, 25, 126, 28, 0, 29, 30, 128,
|
929
|
+
129, 129, 31, 129, 129, 129, 129, 35,
|
930
|
+
36, 129, 38, 39, 50, 54, 58, 62,
|
931
|
+
66, 70, 75, 79, 81, 84, 40, 47,
|
932
|
+
41, 45, 42, 43, 44, 129, 46, 48,
|
933
|
+
49, 51, 52, 53, 55, 56, 57, 59,
|
934
|
+
60, 61, 63, 64, 65, 67, 68, 69,
|
935
|
+
71, 73, 72, 74, 76, 77, 78, 80,
|
936
|
+
82, 83, 86, 87, 129, 89, 137, 140,
|
937
|
+
137, 142, 92, 137, 143, 137, 145, 95,
|
938
|
+
98, 96, 97, 137, 99, 100, 101, 102,
|
939
|
+
103, 104, 137, 147, 148, 148, 106, 107,
|
940
|
+
108, 109, 1, 2, 4, 114, 115, 116,
|
941
|
+
117, 118, 110, 119, 110, 122, 123, 110,
|
942
|
+
124, 110, 125, 110, 110, 110, 110, 110,
|
943
|
+
120, 110, 121, 110, 10, 110, 110, 110,
|
944
|
+
110, 110, 110, 110, 110, 110, 110, 12,
|
945
|
+
110, 110, 127, 27, 130, 131, 132, 129,
|
946
|
+
133, 134, 135, 129, 129, 129, 129, 32,
|
947
|
+
129, 129, 33, 129, 129, 129, 34, 37,
|
948
|
+
85, 136, 136, 137, 137, 138, 138, 137,
|
949
|
+
88, 137, 91, 137, 137, 94, 105, 137,
|
950
|
+
139, 137, 137, 137, 141, 137, 90, 137,
|
951
|
+
144, 146, 137, 93, 137, 137, 137, 148,
|
952
|
+
149, 150, 151, 152, 148
|
944
953
|
]
|
945
954
|
|
946
955
|
class << self
|
@@ -949,34 +958,34 @@ class << self
|
|
949
958
|
end
|
950
959
|
self._re_scanner_trans_actions = [
|
951
960
|
1, 2, 0, 2, 0, 0, 2, 3,
|
952
|
-
0, 4, 5, 6, 7,
|
953
|
-
10, 0,
|
961
|
+
0, 4, 5, 6, 7, 8, 0, 9,
|
962
|
+
0, 10, 0, 0, 11, 0, 0, 0,
|
963
|
+
0, 0, 0, 0, 0, 0, 0, 12,
|
964
|
+
0, 0, 0, 0, 0, 0, 0, 14,
|
965
|
+
15, 16, 0, 17, 18, 19, 20, 0,
|
966
|
+
0, 21, 0, 0, 0, 0, 0, 0,
|
954
967
|
0, 0, 0, 0, 0, 0, 0, 0,
|
955
|
-
0, 0,
|
956
|
-
0, 0, 16, 17, 18, 0, 19, 20,
|
957
|
-
21, 22, 0, 0, 23, 0, 0, 0,
|
968
|
+
0, 0, 0, 0, 0, 22, 0, 0,
|
958
969
|
0, 0, 0, 0, 0, 0, 0, 0,
|
959
970
|
0, 0, 0, 0, 0, 0, 0, 0,
|
960
|
-
24, 0, 0, 0, 0, 0, 0, 0,
|
961
971
|
0, 0, 0, 0, 0, 0, 0, 0,
|
972
|
+
0, 0, 0, 0, 23, 0, 24, 0,
|
973
|
+
25, 0, 0, 26, 0, 27, 0, 0,
|
974
|
+
0, 0, 0, 28, 0, 0, 0, 0,
|
975
|
+
0, 0, 29, 0, 30, 31, 0, 0,
|
962
976
|
0, 0, 0, 0, 0, 0, 0, 0,
|
963
|
-
0,
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
0,
|
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,
|
977
|
+
0, 34, 35, 36, 37, 0, 0, 38,
|
978
|
+
0, 39, 34, 40, 41, 42, 43, 44,
|
979
|
+
45, 46, 0, 47, 0, 48, 49, 50,
|
980
|
+
51, 52, 53, 54, 55, 56, 57, 0,
|
981
|
+
58, 59, 61, 0, 0, 34, 34, 62,
|
982
|
+
0, 34, 63, 64, 65, 66, 67, 0,
|
974
983
|
68, 69, 0, 70, 71, 72, 0, 0,
|
975
984
|
0, 73, 74, 75, 76, 77, 78, 79,
|
976
985
|
0, 80, 0, 81, 82, 0, 0, 83,
|
977
|
-
0, 84, 85, 86, 87, 0, 88,
|
978
|
-
0, 0, 90, 91, 92, 93,
|
979
|
-
|
986
|
+
0, 84, 85, 86, 34, 87, 0, 88,
|
987
|
+
34, 0, 89, 0, 90, 91, 92, 93,
|
988
|
+
34, 34, 34, 34, 94
|
980
989
|
]
|
981
990
|
|
982
991
|
class << self
|
@@ -997,12 +1006,13 @@ self._re_scanner_to_state_actions = [
|
|
997
1006
|
0, 0, 0, 0, 0, 0, 0, 0,
|
998
1007
|
0, 0, 0, 0, 0, 0, 0, 0,
|
999
1008
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1009
|
+
0, 0, 0, 0, 0, 0, 32, 0,
|
1000
1010
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1001
|
-
0,
|
1002
|
-
|
1003
|
-
|
1004
|
-
0,
|
1005
|
-
0
|
1011
|
+
0, 0, 0, 0, 0, 0, 0, 60,
|
1012
|
+
60, 60, 0, 0, 0, 0, 0, 0,
|
1013
|
+
60, 60, 0, 0, 0, 0, 0, 0,
|
1014
|
+
0, 0, 0, 0, 60, 0, 0, 0,
|
1015
|
+
0
|
1006
1016
|
]
|
1007
1017
|
|
1008
1018
|
class << self
|
@@ -1023,12 +1033,13 @@ self._re_scanner_from_state_actions = [
|
|
1023
1033
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1024
1034
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1025
1035
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1036
|
+
0, 0, 0, 0, 0, 0, 33, 0,
|
1026
1037
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1027
|
-
0,
|
1028
|
-
|
1029
|
-
|
1030
|
-
0,
|
1031
|
-
0
|
1038
|
+
0, 0, 0, 0, 0, 0, 0, 33,
|
1039
|
+
33, 33, 0, 0, 0, 0, 0, 0,
|
1040
|
+
33, 33, 0, 0, 0, 0, 0, 0,
|
1041
|
+
0, 0, 0, 0, 33, 0, 0, 0,
|
1042
|
+
0
|
1032
1043
|
]
|
1033
1044
|
|
1034
1045
|
class << self
|
@@ -1039,22 +1050,23 @@ self._re_scanner_eof_actions = [
|
|
1039
1050
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1040
1051
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1041
1052
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1042
|
-
0,
|
1053
|
+
0, 12, 12, 13, 13, 13, 13, 0,
|
1054
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1043
1055
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1044
1056
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1045
1057
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1046
1058
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1047
1059
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1048
1060
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1061
|
+
12, 12, 0, 12, 12, 0, 12, 12,
|
1062
|
+
12, 12, 12, 12, 12, 12, 12, 12,
|
1063
|
+
12, 12, 0, 0, 0, 0, 0, 0,
|
1049
1064
|
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,
|
1053
1065
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1066
|
+
0, 12, 0, 0, 0, 0, 0, 0,
|
1067
|
+
0, 12, 0, 0, 0, 0, 0, 0,
|
1054
1068
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1055
|
-
0
|
1056
|
-
0, 0, 14, 0, 0, 0, 0, 0,
|
1057
|
-
0, 0, 0, 0, 0, 0
|
1069
|
+
0
|
1058
1070
|
]
|
1059
1071
|
|
1060
1072
|
class << self
|
@@ -1063,34 +1075,35 @@ class << self
|
|
1063
1075
|
end
|
1064
1076
|
self._re_scanner_eof_trans = [
|
1065
1077
|
0, 1, 1, 1, 1, 1, 1, 8,
|
1066
|
-
11, 11, 11, 11,
|
1067
|
-
|
1068
|
-
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
|
1074
|
-
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1078
|
-
0, 0,
|
1079
|
-
|
1080
|
-
|
1081
|
-
0, 0,
|
1082
|
-
|
1083
|
-
|
1078
|
+
11, 11, 11, 11, 18, 18, 18, 18,
|
1079
|
+
18, 18, 18, 18, 18, 18, 18, 18,
|
1080
|
+
18, 0, 0, 0, 0, 0, 0, 41,
|
1081
|
+
41, 44, 46, 46, 46, 46, 46, 46,
|
1082
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
1083
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
1084
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
1085
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
1086
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
1087
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
1088
|
+
0, 0, 105, 0, 0, 110, 0, 0,
|
1089
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1090
|
+
0, 0, 125, 125, 125, 125, 0, 150,
|
1091
|
+
150, 150, 150, 151, 151, 150, 150, 152,
|
1092
|
+
154, 154, 159, 161, 163, 165, 169, 0,
|
1093
|
+
0, 0, 183, 183, 183, 183, 186, 189,
|
1094
|
+
0, 0, 208, 210, 212, 212, 212, 216,
|
1095
|
+
216, 216, 216, 221, 0, 229, 229, 229,
|
1096
|
+
229
|
1084
1097
|
]
|
1085
1098
|
|
1086
1099
|
class << self
|
1087
1100
|
attr_accessor :re_scanner_start
|
1088
1101
|
end
|
1089
|
-
self.re_scanner_start =
|
1102
|
+
self.re_scanner_start = 110;
|
1090
1103
|
class << self
|
1091
1104
|
attr_accessor :re_scanner_first_final
|
1092
1105
|
end
|
1093
|
-
self.re_scanner_first_final =
|
1106
|
+
self.re_scanner_first_final = 110;
|
1094
1107
|
class << self
|
1095
1108
|
attr_accessor :re_scanner_error
|
1096
1109
|
end
|
@@ -1099,36 +1112,36 @@ self.re_scanner_error = 0;
|
|
1099
1112
|
class << self
|
1100
1113
|
attr_accessor :re_scanner_en_char_type
|
1101
1114
|
end
|
1102
|
-
self.re_scanner_en_char_type =
|
1115
|
+
self.re_scanner_en_char_type = 127;
|
1103
1116
|
class << self
|
1104
1117
|
attr_accessor :re_scanner_en_unicode_property
|
1105
1118
|
end
|
1106
|
-
self.re_scanner_en_unicode_property =
|
1119
|
+
self.re_scanner_en_unicode_property = 128;
|
1107
1120
|
class << self
|
1108
1121
|
attr_accessor :re_scanner_en_character_set
|
1109
1122
|
end
|
1110
|
-
self.re_scanner_en_character_set =
|
1123
|
+
self.re_scanner_en_character_set = 129;
|
1111
1124
|
class << self
|
1112
1125
|
attr_accessor :re_scanner_en_set_escape_sequence
|
1113
1126
|
end
|
1114
|
-
self.re_scanner_en_set_escape_sequence =
|
1127
|
+
self.re_scanner_en_set_escape_sequence = 136;
|
1115
1128
|
class << self
|
1116
1129
|
attr_accessor :re_scanner_en_escape_sequence
|
1117
1130
|
end
|
1118
|
-
self.re_scanner_en_escape_sequence =
|
1131
|
+
self.re_scanner_en_escape_sequence = 137;
|
1119
1132
|
class << self
|
1120
1133
|
attr_accessor :re_scanner_en_conditional_expression
|
1121
1134
|
end
|
1122
|
-
self.re_scanner_en_conditional_expression =
|
1135
|
+
self.re_scanner_en_conditional_expression = 148;
|
1123
1136
|
class << self
|
1124
1137
|
attr_accessor :re_scanner_en_main
|
1125
1138
|
end
|
1126
|
-
self.re_scanner_en_main =
|
1139
|
+
self.re_scanner_en_main = 110;
|
1127
1140
|
|
1128
1141
|
|
1129
|
-
# line
|
1142
|
+
# line 753 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1130
1143
|
|
1131
|
-
# line
|
1144
|
+
# line 1144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
1132
1145
|
begin
|
1133
1146
|
p ||= 0
|
1134
1147
|
pe ||= data.length
|
@@ -1139,9 +1152,9 @@ begin
|
|
1139
1152
|
act = 0
|
1140
1153
|
end
|
1141
1154
|
|
1142
|
-
# line
|
1155
|
+
# line 754 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1143
1156
|
|
1144
|
-
# line
|
1157
|
+
# line 1157 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
1145
1158
|
begin
|
1146
1159
|
testEof = false
|
1147
1160
|
_slen, _trans, _keys, _inds, _acts, _nacts = nil
|
@@ -1164,12 +1177,12 @@ begin
|
|
1164
1177
|
end
|
1165
1178
|
if _goto_level <= _resume
|
1166
1179
|
case _re_scanner_from_state_actions[cs]
|
1167
|
-
when
|
1180
|
+
when 33 then
|
1168
1181
|
# line 1 "NONE"
|
1169
1182
|
begin
|
1170
1183
|
ts = p
|
1171
1184
|
end
|
1172
|
-
# line
|
1185
|
+
# line 1185 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
1173
1186
|
end
|
1174
1187
|
_keys = cs << 1
|
1175
1188
|
_inds = _re_scanner_index_offsets[cs]
|
@@ -1188,23 +1201,27 @@ ts = p
|
|
1188
1201
|
cs = _re_scanner_trans_targs[_trans]
|
1189
1202
|
if _re_scanner_trans_actions[_trans] != 0
|
1190
1203
|
case _re_scanner_trans_actions[_trans]
|
1191
|
-
when
|
1192
|
-
# line
|
1204
|
+
when 12 then
|
1205
|
+
# line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1193
1206
|
begin
|
1194
1207
|
|
1195
1208
|
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
1196
1209
|
raise PrematureEndError.new( text )
|
1197
1210
|
end
|
1198
|
-
when
|
1211
|
+
when 36 then
|
1199
1212
|
# line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1200
1213
|
begin
|
1201
|
-
self.group_depth = group_depth
|
1202
|
-
when
|
1214
|
+
self.group_depth = group_depth + 1 end
|
1215
|
+
when 6 then
|
1216
|
+
# line 144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1217
|
+
begin
|
1218
|
+
self.group_depth = group_depth - 1 end
|
1219
|
+
when 34 then
|
1203
1220
|
# line 1 "NONE"
|
1204
1221
|
begin
|
1205
1222
|
te = p+1
|
1206
1223
|
end
|
1207
|
-
when
|
1224
|
+
when 61 then
|
1208
1225
|
# line 12 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/char_type.rl"
|
1209
1226
|
begin
|
1210
1227
|
te = p+1
|
@@ -1220,9 +1237,6 @@ te = p+1
|
|
1220
1237
|
when '\W'; emit(:type, :nonword, text, ts - 1, te)
|
1221
1238
|
when '\R'; emit(:type, :linebreak, text, ts - 1, te)
|
1222
1239
|
when '\X'; emit(:type, :xgrapheme, text, ts - 1, te)
|
1223
|
-
else
|
1224
|
-
raise ScannerError.new(
|
1225
|
-
"Unexpected character in type at #{text} (char #{ts})")
|
1226
1240
|
end
|
1227
1241
|
begin
|
1228
1242
|
top -= 1
|
@@ -1233,7 +1247,7 @@ te = p+1
|
|
1233
1247
|
|
1234
1248
|
end
|
1235
1249
|
end
|
1236
|
-
when
|
1250
|
+
when 14 then
|
1237
1251
|
# line 16 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
|
1238
1252
|
begin
|
1239
1253
|
te = p+1
|
@@ -1257,65 +1271,8 @@ te = p+1
|
|
1257
1271
|
|
1258
1272
|
end
|
1259
1273
|
end
|
1260
|
-
when
|
1261
|
-
# line
|
1262
|
-
begin
|
1263
|
-
te = p+1
|
1264
|
-
begin
|
1265
|
-
set_depth -= 1
|
1266
|
-
in_set = set_depth > 0 ? true : false
|
1267
|
-
|
1268
|
-
emit(:set, :close, *text(data, ts, te))
|
1269
|
-
|
1270
|
-
if set_depth == 0
|
1271
|
-
begin
|
1272
|
-
cs = 113
|
1273
|
-
_goto_level = _again
|
1274
|
-
next
|
1275
|
-
end
|
1276
|
-
|
1277
|
-
else
|
1278
|
-
begin
|
1279
|
-
top -= 1
|
1280
|
-
cs = stack[top]
|
1281
|
-
_goto_level = _again
|
1282
|
-
next
|
1283
|
-
end
|
1284
|
-
|
1285
|
-
end
|
1286
|
-
end
|
1287
|
-
end
|
1288
|
-
when 70 then
|
1289
|
-
# line 162 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1290
|
-
begin
|
1291
|
-
te = p+1
|
1292
|
-
begin # special case, emits two tokens
|
1293
|
-
set_depth -= 1
|
1294
|
-
in_set = set_depth > 0 ? true : false
|
1295
|
-
|
1296
|
-
emit(:literal, :literal, copy(data, ts..te-2), ts, te)
|
1297
|
-
emit(:set, :close, copy(data, ts+1..te-1), ts, te)
|
1298
|
-
|
1299
|
-
if set_depth == 0
|
1300
|
-
begin
|
1301
|
-
cs = 113
|
1302
|
-
_goto_level = _again
|
1303
|
-
next
|
1304
|
-
end
|
1305
|
-
|
1306
|
-
else
|
1307
|
-
begin
|
1308
|
-
top -= 1
|
1309
|
-
cs = stack[top]
|
1310
|
-
_goto_level = _again
|
1311
|
-
next
|
1312
|
-
end
|
1313
|
-
|
1314
|
-
end
|
1315
|
-
end
|
1316
|
-
end
|
1317
|
-
when 20 then
|
1318
|
-
# line 176 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1274
|
+
when 18 then
|
1275
|
+
# line 171 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1319
1276
|
begin
|
1320
1277
|
te = p+1
|
1321
1278
|
begin # special case, emits two tokens
|
@@ -1324,7 +1281,7 @@ te = p+1
|
|
1324
1281
|
end
|
1325
1282
|
end
|
1326
1283
|
when 66 then
|
1327
|
-
# line
|
1284
|
+
# line 176 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1328
1285
|
begin
|
1329
1286
|
te = p+1
|
1330
1287
|
begin
|
@@ -1337,7 +1294,7 @@ te = p+1
|
|
1337
1294
|
end
|
1338
1295
|
end
|
1339
1296
|
when 68 then
|
1340
|
-
# line
|
1297
|
+
# line 197 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1341
1298
|
begin
|
1342
1299
|
te = p+1
|
1343
1300
|
begin
|
@@ -1345,63 +1302,30 @@ te = p+1
|
|
1345
1302
|
end
|
1346
1303
|
end
|
1347
1304
|
when 64 then
|
1348
|
-
# line
|
1305
|
+
# line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1349
1306
|
begin
|
1350
1307
|
te = p+1
|
1351
1308
|
begin
|
1352
1309
|
begin
|
1353
1310
|
stack[top] = cs
|
1354
1311
|
top+= 1
|
1355
|
-
cs =
|
1312
|
+
cs = 136
|
1356
1313
|
_goto_level = _again
|
1357
1314
|
next
|
1358
1315
|
end
|
1359
1316
|
|
1360
1317
|
end
|
1361
1318
|
end
|
1362
|
-
when
|
1363
|
-
# line
|
1364
|
-
begin
|
1365
|
-
te = p+1
|
1366
|
-
begin
|
1367
|
-
text = text(data, ts, te).first
|
1368
|
-
|
1369
|
-
type = :posixclass
|
1370
|
-
class_name = text[2..-3]
|
1371
|
-
if class_name[0].chr == '^'
|
1372
|
-
class_name = class_name[1..-1]
|
1373
|
-
type = :nonposixclass
|
1374
|
-
end
|
1375
|
-
|
1376
|
-
emit(type, class_name.to_sym, text, ts, te)
|
1377
|
-
end
|
1378
|
-
end
|
1379
|
-
when 23 then
|
1380
|
-
# line 230 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1381
|
-
begin
|
1382
|
-
te = p+1
|
1383
|
-
begin
|
1384
|
-
emit(:set, :collation, *text(data, ts, te))
|
1385
|
-
end
|
1386
|
-
end
|
1387
|
-
when 25 then
|
1388
|
-
# line 234 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1389
|
-
begin
|
1390
|
-
te = p+1
|
1391
|
-
begin
|
1392
|
-
emit(:set, :equivalent, *text(data, ts, te))
|
1393
|
-
end
|
1394
|
-
end
|
1395
|
-
when 63 then
|
1396
|
-
# line 238 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1319
|
+
when 62 then
|
1320
|
+
# line 231 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1397
1321
|
begin
|
1398
1322
|
te = p+1
|
1399
1323
|
begin
|
1400
1324
|
emit(:literal, :literal, *text(data, ts, te))
|
1401
1325
|
end
|
1402
1326
|
end
|
1403
|
-
when
|
1404
|
-
# line
|
1327
|
+
when 16 then
|
1328
|
+
# line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1405
1329
|
begin
|
1406
1330
|
te = p+1
|
1407
1331
|
begin
|
@@ -1411,7 +1335,7 @@ te = p+1
|
|
1411
1335
|
end
|
1412
1336
|
end
|
1413
1337
|
when 69 then
|
1414
|
-
# line
|
1338
|
+
# line 185 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1415
1339
|
begin
|
1416
1340
|
te = p
|
1417
1341
|
p = p - 1; begin
|
@@ -1425,17 +1349,15 @@ p = p - 1; begin
|
|
1425
1349
|
end
|
1426
1350
|
end
|
1427
1351
|
when 72 then
|
1428
|
-
# line
|
1352
|
+
# line 205 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1429
1353
|
begin
|
1430
1354
|
te = p
|
1431
1355
|
p = p - 1; begin
|
1432
|
-
set_depth += 1
|
1433
|
-
|
1434
1356
|
emit(:set, :open, *text(data, ts, te))
|
1435
1357
|
begin
|
1436
1358
|
stack[top] = cs
|
1437
1359
|
top+= 1
|
1438
|
-
cs =
|
1360
|
+
cs = 129
|
1439
1361
|
_goto_level = _again
|
1440
1362
|
next
|
1441
1363
|
end
|
@@ -1443,7 +1365,7 @@ p = p - 1; begin
|
|
1443
1365
|
end
|
1444
1366
|
end
|
1445
1367
|
when 67 then
|
1446
|
-
# line
|
1368
|
+
# line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1447
1369
|
begin
|
1448
1370
|
te = p
|
1449
1371
|
p = p - 1; begin
|
@@ -1452,8 +1374,8 @@ p = p - 1; begin
|
|
1452
1374
|
emit(:literal, :literal, char, *rest)
|
1453
1375
|
end
|
1454
1376
|
end
|
1455
|
-
when
|
1456
|
-
# line
|
1377
|
+
when 17 then
|
1378
|
+
# line 185 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1457
1379
|
begin
|
1458
1380
|
begin p = ((te))-1; end
|
1459
1381
|
begin
|
@@ -1466,26 +1388,24 @@ p = p - 1; begin
|
|
1466
1388
|
end
|
1467
1389
|
end
|
1468
1390
|
end
|
1469
|
-
when
|
1470
|
-
# line
|
1391
|
+
when 20 then
|
1392
|
+
# line 205 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1471
1393
|
begin
|
1472
1394
|
begin p = ((te))-1; end
|
1473
1395
|
begin
|
1474
|
-
set_depth += 1
|
1475
|
-
|
1476
1396
|
emit(:set, :open, *text(data, ts, te))
|
1477
1397
|
begin
|
1478
1398
|
stack[top] = cs
|
1479
1399
|
top+= 1
|
1480
|
-
cs =
|
1400
|
+
cs = 129
|
1481
1401
|
_goto_level = _again
|
1482
1402
|
next
|
1483
1403
|
end
|
1484
1404
|
|
1485
1405
|
end
|
1486
1406
|
end
|
1487
|
-
when
|
1488
|
-
# line
|
1407
|
+
when 15 then
|
1408
|
+
# line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1489
1409
|
begin
|
1490
1410
|
begin p = ((te))-1; end
|
1491
1411
|
begin
|
@@ -1495,7 +1415,7 @@ p = p - 1; begin
|
|
1495
1415
|
end
|
1496
1416
|
end
|
1497
1417
|
when 74 then
|
1498
|
-
# line
|
1418
|
+
# line 249 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1499
1419
|
begin
|
1500
1420
|
te = p+1
|
1501
1421
|
begin
|
@@ -1510,16 +1430,16 @@ te = p+1
|
|
1510
1430
|
end
|
1511
1431
|
end
|
1512
1432
|
when 73 then
|
1513
|
-
# line
|
1433
|
+
# line 254 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1514
1434
|
begin
|
1515
1435
|
te = p+1
|
1516
1436
|
begin
|
1517
1437
|
p = p - 1;
|
1518
|
-
cs =
|
1438
|
+
cs = 129;
|
1519
1439
|
begin
|
1520
1440
|
stack[top] = cs
|
1521
1441
|
top+= 1
|
1522
|
-
cs =
|
1442
|
+
cs = 137
|
1523
1443
|
_goto_level = _again
|
1524
1444
|
next
|
1525
1445
|
end
|
@@ -1527,7 +1447,7 @@ te = p+1
|
|
1527
1447
|
end
|
1528
1448
|
end
|
1529
1449
|
when 79 then
|
1530
|
-
# line
|
1450
|
+
# line 265 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1531
1451
|
begin
|
1532
1452
|
te = p+1
|
1533
1453
|
begin
|
@@ -1543,7 +1463,7 @@ te = p+1
|
|
1543
1463
|
end
|
1544
1464
|
end
|
1545
1465
|
when 85 then
|
1546
|
-
# line
|
1466
|
+
# line 271 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1547
1467
|
begin
|
1548
1468
|
te = p+1
|
1549
1469
|
begin
|
@@ -1558,7 +1478,7 @@ te = p+1
|
|
1558
1478
|
end
|
1559
1479
|
end
|
1560
1480
|
when 76 then
|
1561
|
-
# line
|
1481
|
+
# line 276 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1562
1482
|
begin
|
1563
1483
|
te = p+1
|
1564
1484
|
begin
|
@@ -1589,7 +1509,7 @@ te = p+1
|
|
1589
1509
|
end
|
1590
1510
|
end
|
1591
1511
|
when 82 then
|
1592
|
-
# line
|
1512
|
+
# line 297 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1593
1513
|
begin
|
1594
1514
|
te = p+1
|
1595
1515
|
begin
|
@@ -1614,8 +1534,8 @@ te = p+1
|
|
1614
1534
|
|
1615
1535
|
end
|
1616
1536
|
end
|
1617
|
-
when
|
1618
|
-
# line
|
1537
|
+
when 28 then
|
1538
|
+
# line 313 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1619
1539
|
begin
|
1620
1540
|
te = p+1
|
1621
1541
|
begin
|
@@ -1635,7 +1555,7 @@ te = p+1
|
|
1635
1555
|
end
|
1636
1556
|
end
|
1637
1557
|
when 92 then
|
1638
|
-
# line
|
1558
|
+
# line 323 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1639
1559
|
begin
|
1640
1560
|
te = p+1
|
1641
1561
|
begin
|
@@ -1649,22 +1569,12 @@ te = p+1
|
|
1649
1569
|
|
1650
1570
|
end
|
1651
1571
|
end
|
1652
|
-
when
|
1653
|
-
# line
|
1572
|
+
when 24 then
|
1573
|
+
# line 332 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1654
1574
|
begin
|
1655
1575
|
te = p+1
|
1656
1576
|
begin
|
1657
|
-
|
1658
|
-
c = data[te].chr
|
1659
|
-
if c =~ /[\x00-\x7F]/
|
1660
|
-
emit(:escape, :control, copy(data, ts-1..te), ts-1, te+1)
|
1661
|
-
p += 1
|
1662
|
-
else
|
1663
|
-
raise InvalidSequenceError.new("control sequence")
|
1664
|
-
end
|
1665
|
-
else
|
1666
|
-
raise PrematureEndError.new("control sequence")
|
1667
|
-
end
|
1577
|
+
emit_meta_control_sequence(data, ts, te, :control)
|
1668
1578
|
begin
|
1669
1579
|
top -= 1
|
1670
1580
|
cs = stack[top]
|
@@ -1674,22 +1584,12 @@ te = p+1
|
|
1674
1584
|
|
1675
1585
|
end
|
1676
1586
|
end
|
1677
|
-
when
|
1678
|
-
# line
|
1587
|
+
when 26 then
|
1588
|
+
# line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1679
1589
|
begin
|
1680
1590
|
te = p+1
|
1681
1591
|
begin
|
1682
|
-
|
1683
|
-
c = data[te].chr
|
1684
|
-
if c =~ /[\x00-\x7F]/
|
1685
|
-
emit(:escape, :meta_sequence, copy(data, ts-1..te), ts-1, te+1)
|
1686
|
-
p += 1
|
1687
|
-
else
|
1688
|
-
raise InvalidSequenceError.new("meta sequence")
|
1689
|
-
end
|
1690
|
-
else
|
1691
|
-
raise PrematureEndError.new("meta sequence")
|
1692
|
-
end
|
1592
|
+
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
1693
1593
|
begin
|
1694
1594
|
top -= 1
|
1695
1595
|
cs = stack[top]
|
@@ -1700,16 +1600,16 @@ te = p+1
|
|
1700
1600
|
end
|
1701
1601
|
end
|
1702
1602
|
when 80 then
|
1703
|
-
# line
|
1603
|
+
# line 342 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1704
1604
|
begin
|
1705
1605
|
te = p+1
|
1706
1606
|
begin
|
1707
1607
|
p = p - 1;
|
1708
|
-
cs = ((in_set ?
|
1608
|
+
cs = ((in_set? ? 129 : 110));
|
1709
1609
|
begin
|
1710
1610
|
stack[top] = cs
|
1711
1611
|
top+= 1
|
1712
|
-
cs =
|
1612
|
+
cs = 127
|
1713
1613
|
_goto_level = _again
|
1714
1614
|
next
|
1715
1615
|
end
|
@@ -1717,16 +1617,16 @@ te = p+1
|
|
1717
1617
|
end
|
1718
1618
|
end
|
1719
1619
|
when 81 then
|
1720
|
-
# line
|
1620
|
+
# line 348 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1721
1621
|
begin
|
1722
1622
|
te = p+1
|
1723
1623
|
begin
|
1724
1624
|
p = p - 1;
|
1725
|
-
cs = ((in_set ?
|
1625
|
+
cs = ((in_set? ? 129 : 110));
|
1726
1626
|
begin
|
1727
1627
|
stack[top] = cs
|
1728
1628
|
top+= 1
|
1729
|
-
cs =
|
1629
|
+
cs = 128
|
1730
1630
|
_goto_level = _again
|
1731
1631
|
next
|
1732
1632
|
end
|
@@ -1734,7 +1634,7 @@ te = p+1
|
|
1734
1634
|
end
|
1735
1635
|
end
|
1736
1636
|
when 75 then
|
1737
|
-
# line
|
1637
|
+
# line 354 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1738
1638
|
begin
|
1739
1639
|
te = p+1
|
1740
1640
|
begin
|
@@ -1749,7 +1649,7 @@ te = p+1
|
|
1749
1649
|
end
|
1750
1650
|
end
|
1751
1651
|
when 84 then
|
1752
|
-
# line
|
1652
|
+
# line 271 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1753
1653
|
begin
|
1754
1654
|
te = p
|
1755
1655
|
p = p - 1; begin
|
@@ -1764,7 +1664,7 @@ p = p - 1; begin
|
|
1764
1664
|
end
|
1765
1665
|
end
|
1766
1666
|
when 91 then
|
1767
|
-
# line
|
1667
|
+
# line 323 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1768
1668
|
begin
|
1769
1669
|
te = p
|
1770
1670
|
p = p - 1; begin
|
@@ -1779,21 +1679,11 @@ p = p - 1; begin
|
|
1779
1679
|
end
|
1780
1680
|
end
|
1781
1681
|
when 87 then
|
1782
|
-
# line
|
1682
|
+
# line 332 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1783
1683
|
begin
|
1784
1684
|
te = p
|
1785
1685
|
p = p - 1; begin
|
1786
|
-
|
1787
|
-
c = data[te].chr
|
1788
|
-
if c =~ /[\x00-\x7F]/
|
1789
|
-
emit(:escape, :control, copy(data, ts-1..te), ts-1, te+1)
|
1790
|
-
p += 1
|
1791
|
-
else
|
1792
|
-
raise InvalidSequenceError.new("control sequence")
|
1793
|
-
end
|
1794
|
-
else
|
1795
|
-
raise PrematureEndError.new("control sequence")
|
1796
|
-
end
|
1686
|
+
emit_meta_control_sequence(data, ts, te, :control)
|
1797
1687
|
begin
|
1798
1688
|
top -= 1
|
1799
1689
|
cs = stack[top]
|
@@ -1804,71 +1694,11 @@ p = p - 1; begin
|
|
1804
1694
|
end
|
1805
1695
|
end
|
1806
1696
|
when 89 then
|
1807
|
-
# line
|
1697
|
+
# line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1808
1698
|
begin
|
1809
1699
|
te = p
|
1810
1700
|
p = p - 1; begin
|
1811
|
-
|
1812
|
-
c = data[te].chr
|
1813
|
-
if c =~ /[\x00-\x7F]/
|
1814
|
-
emit(:escape, :meta_sequence, copy(data, ts-1..te), ts-1, te+1)
|
1815
|
-
p += 1
|
1816
|
-
else
|
1817
|
-
raise InvalidSequenceError.new("meta sequence")
|
1818
|
-
end
|
1819
|
-
else
|
1820
|
-
raise PrematureEndError.new("meta sequence")
|
1821
|
-
end
|
1822
|
-
begin
|
1823
|
-
top -= 1
|
1824
|
-
cs = stack[top]
|
1825
|
-
_goto_level = _again
|
1826
|
-
next
|
1827
|
-
end
|
1828
|
-
|
1829
|
-
end
|
1830
|
-
end
|
1831
|
-
when 28 then
|
1832
|
-
# line 339 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1833
|
-
begin
|
1834
|
-
begin p = ((te))-1; end
|
1835
|
-
begin
|
1836
|
-
if data[te]
|
1837
|
-
c = data[te].chr
|
1838
|
-
if c =~ /[\x00-\x7F]/
|
1839
|
-
emit(:escape, :control, copy(data, ts-1..te), ts-1, te+1)
|
1840
|
-
p += 1
|
1841
|
-
else
|
1842
|
-
raise InvalidSequenceError.new("control sequence")
|
1843
|
-
end
|
1844
|
-
else
|
1845
|
-
raise PrematureEndError.new("control sequence")
|
1846
|
-
end
|
1847
|
-
begin
|
1848
|
-
top -= 1
|
1849
|
-
cs = stack[top]
|
1850
|
-
_goto_level = _again
|
1851
|
-
next
|
1852
|
-
end
|
1853
|
-
|
1854
|
-
end
|
1855
|
-
end
|
1856
|
-
when 31 then
|
1857
|
-
# line 354 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1858
|
-
begin
|
1859
|
-
begin p = ((te))-1; end
|
1860
|
-
begin
|
1861
|
-
if data[te]
|
1862
|
-
c = data[te].chr
|
1863
|
-
if c =~ /[\x00-\x7F]/
|
1864
|
-
emit(:escape, :meta_sequence, copy(data, ts-1..te), ts-1, te+1)
|
1865
|
-
p += 1
|
1866
|
-
else
|
1867
|
-
raise InvalidSequenceError.new("meta sequence")
|
1868
|
-
end
|
1869
|
-
else
|
1870
|
-
raise PrematureEndError.new("meta sequence")
|
1871
|
-
end
|
1701
|
+
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
1872
1702
|
begin
|
1873
1703
|
top -= 1
|
1874
1704
|
cs = stack[top]
|
@@ -1909,8 +1739,8 @@ p = p - 1; begin
|
|
1909
1739
|
end
|
1910
1740
|
end
|
1911
1741
|
end
|
1912
|
-
when
|
1913
|
-
# line
|
1742
|
+
when 31 then
|
1743
|
+
# line 364 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1914
1744
|
begin
|
1915
1745
|
te = p+1
|
1916
1746
|
begin
|
@@ -1920,7 +1750,7 @@ te = p+1
|
|
1920
1750
|
end
|
1921
1751
|
end
|
1922
1752
|
when 93 then
|
1923
|
-
# line
|
1753
|
+
# line 370 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1924
1754
|
begin
|
1925
1755
|
te = p+1
|
1926
1756
|
begin
|
@@ -1928,7 +1758,7 @@ te = p+1
|
|
1928
1758
|
begin
|
1929
1759
|
stack[top] = cs
|
1930
1760
|
top+= 1
|
1931
|
-
cs =
|
1761
|
+
cs = 110
|
1932
1762
|
_goto_level = _again
|
1933
1763
|
next
|
1934
1764
|
end
|
@@ -1936,7 +1766,7 @@ te = p+1
|
|
1936
1766
|
end
|
1937
1767
|
end
|
1938
1768
|
when 94 then
|
1939
|
-
# line
|
1769
|
+
# line 370 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1940
1770
|
begin
|
1941
1771
|
te = p
|
1942
1772
|
p = p - 1; begin
|
@@ -1944,15 +1774,15 @@ p = p - 1; begin
|
|
1944
1774
|
begin
|
1945
1775
|
stack[top] = cs
|
1946
1776
|
top+= 1
|
1947
|
-
cs =
|
1777
|
+
cs = 110
|
1948
1778
|
_goto_level = _again
|
1949
1779
|
next
|
1950
1780
|
end
|
1951
1781
|
|
1952
1782
|
end
|
1953
1783
|
end
|
1954
|
-
when
|
1955
|
-
# line
|
1784
|
+
when 30 then
|
1785
|
+
# line 370 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1956
1786
|
begin
|
1957
1787
|
begin p = ((te))-1; end
|
1958
1788
|
begin
|
@@ -1960,60 +1790,59 @@ p = p - 1; begin
|
|
1960
1790
|
begin
|
1961
1791
|
stack[top] = cs
|
1962
1792
|
top+= 1
|
1963
|
-
cs =
|
1793
|
+
cs = 110
|
1964
1794
|
_goto_level = _again
|
1965
1795
|
next
|
1966
1796
|
end
|
1967
1797
|
|
1968
1798
|
end
|
1969
1799
|
end
|
1970
|
-
when
|
1971
|
-
# line
|
1800
|
+
when 38 then
|
1801
|
+
# line 383 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1972
1802
|
begin
|
1973
1803
|
te = p+1
|
1974
1804
|
begin
|
1975
1805
|
emit(:meta, :dot, *text(data, ts, te))
|
1976
1806
|
end
|
1977
1807
|
end
|
1978
|
-
when
|
1979
|
-
# line
|
1808
|
+
when 41 then
|
1809
|
+
# line 387 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1980
1810
|
begin
|
1981
1811
|
te = p+1
|
1982
1812
|
begin
|
1983
|
-
if
|
1984
|
-
conditional_stack.last[1] == group_depth
|
1813
|
+
if conditional_stack.last == group_depth
|
1985
1814
|
emit(:conditional, :separator, *text(data, ts, te))
|
1986
1815
|
else
|
1987
1816
|
emit(:meta, :alternation, *text(data, ts, te))
|
1988
1817
|
end
|
1989
1818
|
end
|
1990
1819
|
end
|
1991
|
-
when
|
1992
|
-
# line
|
1820
|
+
when 40 then
|
1821
|
+
# line 397 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1993
1822
|
begin
|
1994
1823
|
te = p+1
|
1995
1824
|
begin
|
1996
1825
|
emit(:anchor, :bol, *text(data, ts, te))
|
1997
1826
|
end
|
1998
1827
|
end
|
1999
|
-
when
|
2000
|
-
# line
|
1828
|
+
when 35 then
|
1829
|
+
# line 401 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2001
1830
|
begin
|
2002
1831
|
te = p+1
|
2003
1832
|
begin
|
2004
1833
|
emit(:anchor, :eol, *text(data, ts, te))
|
2005
1834
|
end
|
2006
1835
|
end
|
2007
|
-
when
|
2008
|
-
# line
|
1836
|
+
when 57 then
|
1837
|
+
# line 405 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2009
1838
|
begin
|
2010
1839
|
te = p+1
|
2011
1840
|
begin
|
2012
1841
|
emit(:keep, :mark, *text(data, ts, te))
|
2013
1842
|
end
|
2014
1843
|
end
|
2015
|
-
when
|
2016
|
-
# line
|
1844
|
+
when 56 then
|
1845
|
+
# line 409 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2017
1846
|
begin
|
2018
1847
|
te = p+1
|
2019
1848
|
begin
|
@@ -2024,64 +1853,44 @@ te = p+1
|
|
2024
1853
|
when '\\b'; emit(:anchor, :word_boundary, text, ts, te)
|
2025
1854
|
when '\\B'; emit(:anchor, :nonword_boundary, text, ts, te)
|
2026
1855
|
when '\\G'; emit(:anchor, :match_start, text, ts, te)
|
2027
|
-
else
|
2028
|
-
raise ScannerError.new(
|
2029
|
-
"Unexpected character in anchor at #{text} (char #{ts})")
|
2030
1856
|
end
|
2031
1857
|
end
|
2032
1858
|
end
|
2033
|
-
when
|
2034
|
-
# line
|
2035
|
-
begin
|
2036
|
-
te = p+1
|
2037
|
-
begin
|
2038
|
-
set_depth += 1
|
2039
|
-
in_set = true
|
2040
|
-
|
2041
|
-
emit(:set, :open, *text(data, ts, te))
|
2042
|
-
begin
|
2043
|
-
stack[top] = cs
|
2044
|
-
top+= 1
|
2045
|
-
cs = 130
|
2046
|
-
_goto_level = _again
|
2047
|
-
next
|
2048
|
-
end
|
2049
|
-
|
2050
|
-
end
|
2051
|
-
end
|
2052
|
-
when 8 then
|
2053
|
-
# line 465 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1859
|
+
when 47 then
|
1860
|
+
# line 431 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2054
1861
|
begin
|
2055
1862
|
te = p+1
|
2056
1863
|
begin
|
2057
1864
|
text = text(data, ts, te).first
|
2058
1865
|
|
2059
|
-
|
2060
|
-
conditional_depth += 1
|
2061
|
-
conditional_stack << [conditional_depth, group_depth]
|
1866
|
+
conditional_stack << group_depth
|
2062
1867
|
|
2063
1868
|
emit(:conditional, :open, text[0..-2], ts, te-1)
|
2064
1869
|
emit(:conditional, :condition_open, '(', te-1, te)
|
2065
1870
|
begin
|
2066
1871
|
stack[top] = cs
|
2067
1872
|
top+= 1
|
2068
|
-
cs =
|
1873
|
+
cs = 148
|
2069
1874
|
_goto_level = _again
|
2070
1875
|
next
|
2071
1876
|
end
|
2072
1877
|
|
2073
1878
|
end
|
2074
1879
|
end
|
2075
|
-
when
|
2076
|
-
# line
|
1880
|
+
when 48 then
|
1881
|
+
# line 462 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2077
1882
|
begin
|
2078
1883
|
te = p+1
|
2079
1884
|
begin
|
2080
|
-
|
1885
|
+
text = text(data, ts, te).first
|
1886
|
+
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
1887
|
+
raise InvalidGroupOption.new($1 || "-#{$2}", text)
|
1888
|
+
end
|
1889
|
+
emit_options(text, ts, te)
|
2081
1890
|
end
|
2082
1891
|
end
|
2083
|
-
when
|
2084
|
-
# line
|
1892
|
+
when 9 then
|
1893
|
+
# line 476 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2085
1894
|
begin
|
2086
1895
|
te = p+1
|
2087
1896
|
begin
|
@@ -2093,8 +1902,8 @@ te = p+1
|
|
2093
1902
|
end
|
2094
1903
|
end
|
2095
1904
|
end
|
2096
|
-
when
|
2097
|
-
# line
|
1905
|
+
when 8 then
|
1906
|
+
# line 493 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2098
1907
|
begin
|
2099
1908
|
te = p+1
|
2100
1909
|
begin
|
@@ -2103,33 +1912,26 @@ te = p+1
|
|
2103
1912
|
when '(?>'; emit(:group, :atomic, text, ts, te)
|
2104
1913
|
when '(?~'; emit(:group, :absence, text, ts, te)
|
2105
1914
|
|
2106
|
-
when /^\(
|
2107
|
-
|
1915
|
+
when /^\(\?(?:<>|'')/
|
1916
|
+
validation_error(:group, 'named group', 'name is empty')
|
2108
1917
|
|
1918
|
+
when /^\(\?<\w*>/
|
2109
1919
|
emit(:group, :named_ab, text, ts, te)
|
2110
1920
|
|
2111
|
-
when /^\(\?'
|
2112
|
-
empty_name_error(:group, 'named group (sq)') if $1.empty?
|
2113
|
-
|
1921
|
+
when /^\(\?'\w*'/
|
2114
1922
|
emit(:group, :named_sq, text, ts, te)
|
2115
1923
|
|
2116
|
-
else
|
2117
|
-
raise ScannerError.new(
|
2118
|
-
"Unknown subexpression group format '#{text}'")
|
2119
1924
|
end
|
2120
1925
|
end
|
2121
1926
|
end
|
2122
|
-
when
|
2123
|
-
# line
|
1927
|
+
when 11 then
|
1928
|
+
# line 534 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2124
1929
|
begin
|
2125
1930
|
te = p+1
|
2126
1931
|
begin
|
2127
1932
|
case text = text(data, ts, te).first
|
2128
|
-
when /^\\([gk])
|
2129
|
-
|
2130
|
-
|
2131
|
-
when /^\\([gk])''/ # single quotes
|
2132
|
-
empty_backref_error("ref/call (sq)")
|
1933
|
+
when /^\\([gk])(<>|'')/ # angle brackets
|
1934
|
+
validation_error(:backref, 'ref/call', 'ref ID is empty')
|
2133
1935
|
|
2134
1936
|
when /^\\([gk])<[^\d+-]\w*>/ # angle-brackets
|
2135
1937
|
if $1 == 'k'
|
@@ -2185,14 +1987,11 @@ te = p+1
|
|
2185
1987
|
when /^\\([gk])'[+\-]?\d+[+\-]\d+'/ # single-quotes
|
2186
1988
|
emit(:backref, :number_recursion_ref_sq, text, ts, te)
|
2187
1989
|
|
2188
|
-
else
|
2189
|
-
raise ScannerError.new(
|
2190
|
-
"Unknown backreference format '#{text}'")
|
2191
1990
|
end
|
2192
1991
|
end
|
2193
1992
|
end
|
2194
|
-
when
|
2195
|
-
# line
|
1993
|
+
when 54 then
|
1994
|
+
# line 599 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2196
1995
|
begin
|
2197
1996
|
te = p+1
|
2198
1997
|
begin
|
@@ -2203,8 +2002,8 @@ te = p+1
|
|
2203
2002
|
end
|
2204
2003
|
end
|
2205
2004
|
end
|
2206
|
-
when
|
2207
|
-
# line
|
2005
|
+
when 50 then
|
2006
|
+
# line 607 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2208
2007
|
begin
|
2209
2008
|
te = p+1
|
2210
2009
|
begin
|
@@ -2215,8 +2014,8 @@ te = p+1
|
|
2215
2014
|
end
|
2216
2015
|
end
|
2217
2016
|
end
|
2218
|
-
when
|
2219
|
-
# line
|
2017
|
+
when 52 then
|
2018
|
+
# line 615 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2220
2019
|
begin
|
2221
2020
|
te = p+1
|
2222
2021
|
begin
|
@@ -2227,8 +2026,8 @@ te = p+1
|
|
2227
2026
|
end
|
2228
2027
|
end
|
2229
2028
|
end
|
2230
|
-
when
|
2231
|
-
# line
|
2029
|
+
when 59 then
|
2030
|
+
# line 623 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2232
2031
|
begin
|
2233
2032
|
te = p+1
|
2234
2033
|
begin
|
@@ -2236,7 +2035,7 @@ te = p+1
|
|
2236
2035
|
end
|
2237
2036
|
end
|
2238
2037
|
when 4 then
|
2239
|
-
# line
|
2038
|
+
# line 633 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2240
2039
|
begin
|
2241
2040
|
te = p+1
|
2242
2041
|
begin
|
@@ -2247,8 +2046,20 @@ te = p+1
|
|
2247
2046
|
end
|
2248
2047
|
end
|
2249
2048
|
end
|
2250
|
-
when
|
2251
|
-
# line
|
2049
|
+
when 46 then
|
2050
|
+
# line 462 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2051
|
+
begin
|
2052
|
+
te = p
|
2053
|
+
p = p - 1; begin
|
2054
|
+
text = text(data, ts, te).first
|
2055
|
+
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
2056
|
+
raise InvalidGroupOption.new($1 || "-#{$2}", text)
|
2057
|
+
end
|
2058
|
+
emit_options(text, ts, te)
|
2059
|
+
end
|
2060
|
+
end
|
2061
|
+
when 44 then
|
2062
|
+
# line 511 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2252
2063
|
begin
|
2253
2064
|
te = p
|
2254
2065
|
p = p - 1; begin
|
@@ -2256,8 +2067,8 @@ p = p - 1; begin
|
|
2256
2067
|
emit(:group, :capture, text, ts, te)
|
2257
2068
|
end
|
2258
2069
|
end
|
2259
|
-
when
|
2260
|
-
# line
|
2070
|
+
when 53 then
|
2071
|
+
# line 599 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2261
2072
|
begin
|
2262
2073
|
te = p
|
2263
2074
|
p = p - 1; begin
|
@@ -2268,8 +2079,8 @@ p = p - 1; begin
|
|
2268
2079
|
end
|
2269
2080
|
end
|
2270
2081
|
end
|
2271
|
-
when
|
2272
|
-
# line
|
2082
|
+
when 49 then
|
2083
|
+
# line 607 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2273
2084
|
begin
|
2274
2085
|
te = p
|
2275
2086
|
p = p - 1; begin
|
@@ -2280,8 +2091,8 @@ p = p - 1; begin
|
|
2280
2091
|
end
|
2281
2092
|
end
|
2282
2093
|
end
|
2283
|
-
when
|
2284
|
-
# line
|
2094
|
+
when 51 then
|
2095
|
+
# line 615 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2285
2096
|
begin
|
2286
2097
|
te = p
|
2287
2098
|
p = p - 1; begin
|
@@ -2292,31 +2103,31 @@ p = p - 1; begin
|
|
2292
2103
|
end
|
2293
2104
|
end
|
2294
2105
|
end
|
2295
|
-
when
|
2296
|
-
# line
|
2106
|
+
when 58 then
|
2107
|
+
# line 623 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2297
2108
|
begin
|
2298
2109
|
te = p
|
2299
2110
|
p = p - 1; begin
|
2300
2111
|
emit(:quantifier, :interval, *text(data, ts, te))
|
2301
2112
|
end
|
2302
2113
|
end
|
2303
|
-
when
|
2304
|
-
# line
|
2114
|
+
when 55 then
|
2115
|
+
# line 629 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2305
2116
|
begin
|
2306
2117
|
te = p
|
2307
2118
|
p = p - 1; begin
|
2308
2119
|
begin
|
2309
2120
|
stack[top] = cs
|
2310
2121
|
top+= 1
|
2311
|
-
cs =
|
2122
|
+
cs = 137
|
2312
2123
|
_goto_level = _again
|
2313
2124
|
next
|
2314
2125
|
end
|
2315
2126
|
|
2316
2127
|
end
|
2317
2128
|
end
|
2318
|
-
when
|
2319
|
-
# line
|
2129
|
+
when 43 then
|
2130
|
+
# line 641 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2320
2131
|
begin
|
2321
2132
|
te = p
|
2322
2133
|
p = p - 1; begin
|
@@ -2327,8 +2138,8 @@ p = p - 1; begin
|
|
2327
2138
|
end
|
2328
2139
|
end
|
2329
2140
|
end
|
2330
|
-
when
|
2331
|
-
# line
|
2141
|
+
when 42 then
|
2142
|
+
# line 656 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2332
2143
|
begin
|
2333
2144
|
te = p
|
2334
2145
|
p = p - 1; begin
|
@@ -2336,23 +2147,26 @@ p = p - 1; begin
|
|
2336
2147
|
end
|
2337
2148
|
end
|
2338
2149
|
when 5 then
|
2339
|
-
# line
|
2150
|
+
# line 462 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2340
2151
|
begin
|
2341
2152
|
begin p = ((te))-1; end
|
2342
2153
|
begin
|
2343
2154
|
text = text(data, ts, te).first
|
2344
|
-
|
2155
|
+
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
2156
|
+
raise InvalidGroupOption.new($1 || "-#{$2}", text)
|
2157
|
+
end
|
2158
|
+
emit_options(text, ts, te)
|
2345
2159
|
end
|
2346
2160
|
end
|
2347
|
-
when
|
2348
|
-
# line
|
2161
|
+
when 10 then
|
2162
|
+
# line 629 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2349
2163
|
begin
|
2350
2164
|
begin p = ((te))-1; end
|
2351
2165
|
begin
|
2352
2166
|
begin
|
2353
2167
|
stack[top] = cs
|
2354
2168
|
top+= 1
|
2355
|
-
cs =
|
2169
|
+
cs = 137
|
2356
2170
|
_goto_level = _again
|
2357
2171
|
next
|
2358
2172
|
end
|
@@ -2360,7 +2174,7 @@ p = p - 1; begin
|
|
2360
2174
|
end
|
2361
2175
|
end
|
2362
2176
|
when 3 then
|
2363
|
-
# line
|
2177
|
+
# line 656 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2364
2178
|
begin
|
2365
2179
|
begin p = ((te))-1; end
|
2366
2180
|
begin
|
@@ -2386,47 +2200,43 @@ end
|
|
2386
2200
|
end
|
2387
2201
|
end
|
2388
2202
|
when 71 then
|
2389
|
-
# line
|
2203
|
+
# line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2390
2204
|
begin
|
2391
2205
|
|
2392
2206
|
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
2393
2207
|
raise PrematureEndError.new( text )
|
2394
2208
|
end
|
2395
|
-
# line
|
2209
|
+
# line 205 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2396
2210
|
begin
|
2397
2211
|
te = p
|
2398
2212
|
p = p - 1; begin
|
2399
|
-
set_depth += 1
|
2400
|
-
|
2401
2213
|
emit(:set, :open, *text(data, ts, te))
|
2402
2214
|
begin
|
2403
2215
|
stack[top] = cs
|
2404
2216
|
top+= 1
|
2405
|
-
cs =
|
2217
|
+
cs = 129
|
2406
2218
|
_goto_level = _again
|
2407
2219
|
next
|
2408
2220
|
end
|
2409
2221
|
|
2410
2222
|
end
|
2411
2223
|
end
|
2412
|
-
when
|
2413
|
-
# line
|
2224
|
+
when 19 then
|
2225
|
+
# line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2414
2226
|
begin
|
2415
2227
|
|
2416
2228
|
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
2417
2229
|
raise PrematureEndError.new( text )
|
2418
2230
|
end
|
2419
|
-
# line
|
2231
|
+
# line 205 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2420
2232
|
begin
|
2421
2233
|
begin p = ((te))-1; end
|
2422
2234
|
begin
|
2423
|
-
set_depth += 1
|
2424
|
-
|
2425
2235
|
emit(:set, :open, *text(data, ts, te))
|
2426
2236
|
begin
|
2427
2237
|
stack[top] = cs
|
2428
2238
|
top+= 1
|
2429
|
-
cs =
|
2239
|
+
cs = 129
|
2430
2240
|
_goto_level = _again
|
2431
2241
|
next
|
2432
2242
|
end
|
@@ -2434,13 +2244,13 @@ p = p - 1; begin
|
|
2434
2244
|
end
|
2435
2245
|
end
|
2436
2246
|
when 90 then
|
2437
|
-
# line
|
2247
|
+
# line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2438
2248
|
begin
|
2439
2249
|
|
2440
2250
|
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
2441
2251
|
raise PrematureEndError.new( text )
|
2442
2252
|
end
|
2443
|
-
# line
|
2253
|
+
# line 323 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2444
2254
|
begin
|
2445
2255
|
te = p
|
2446
2256
|
p = p - 1; begin
|
@@ -2455,27 +2265,17 @@ p = p - 1; begin
|
|
2455
2265
|
end
|
2456
2266
|
end
|
2457
2267
|
when 86 then
|
2458
|
-
# line
|
2268
|
+
# line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2459
2269
|
begin
|
2460
2270
|
|
2461
2271
|
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
2462
2272
|
raise PrematureEndError.new( text )
|
2463
2273
|
end
|
2464
|
-
# line
|
2274
|
+
# line 332 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2465
2275
|
begin
|
2466
2276
|
te = p
|
2467
2277
|
p = p - 1; begin
|
2468
|
-
|
2469
|
-
c = data[te].chr
|
2470
|
-
if c =~ /[\x00-\x7F]/
|
2471
|
-
emit(:escape, :control, copy(data, ts-1..te), ts-1, te+1)
|
2472
|
-
p += 1
|
2473
|
-
else
|
2474
|
-
raise InvalidSequenceError.new("control sequence")
|
2475
|
-
end
|
2476
|
-
else
|
2477
|
-
raise PrematureEndError.new("control sequence")
|
2478
|
-
end
|
2278
|
+
emit_meta_control_sequence(data, ts, te, :control)
|
2479
2279
|
begin
|
2480
2280
|
top -= 1
|
2481
2281
|
cs = stack[top]
|
@@ -2486,27 +2286,17 @@ p = p - 1; begin
|
|
2486
2286
|
end
|
2487
2287
|
end
|
2488
2288
|
when 88 then
|
2489
|
-
# line
|
2289
|
+
# line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2490
2290
|
begin
|
2491
2291
|
|
2492
2292
|
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
2493
2293
|
raise PrematureEndError.new( text )
|
2494
2294
|
end
|
2495
|
-
# line
|
2295
|
+
# line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2496
2296
|
begin
|
2497
2297
|
te = p
|
2498
2298
|
p = p - 1; begin
|
2499
|
-
|
2500
|
-
c = data[te].chr
|
2501
|
-
if c =~ /[\x00-\x7F]/
|
2502
|
-
emit(:escape, :meta_sequence, copy(data, ts-1..te), ts-1, te+1)
|
2503
|
-
p += 1
|
2504
|
-
else
|
2505
|
-
raise InvalidSequenceError.new("meta sequence")
|
2506
|
-
end
|
2507
|
-
else
|
2508
|
-
raise PrematureEndError.new("meta sequence")
|
2509
|
-
end
|
2299
|
+
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
2510
2300
|
begin
|
2511
2301
|
top -= 1
|
2512
2302
|
cs = stack[top]
|
@@ -2516,28 +2306,18 @@ p = p - 1; begin
|
|
2516
2306
|
|
2517
2307
|
end
|
2518
2308
|
end
|
2519
|
-
when
|
2520
|
-
# line
|
2309
|
+
when 25 then
|
2310
|
+
# line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2521
2311
|
begin
|
2522
2312
|
|
2523
2313
|
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
2524
2314
|
raise PrematureEndError.new( text )
|
2525
2315
|
end
|
2526
|
-
# line
|
2316
|
+
# line 332 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2527
2317
|
begin
|
2528
2318
|
begin p = ((te))-1; end
|
2529
2319
|
begin
|
2530
|
-
|
2531
|
-
c = data[te].chr
|
2532
|
-
if c =~ /[\x00-\x7F]/
|
2533
|
-
emit(:escape, :control, copy(data, ts-1..te), ts-1, te+1)
|
2534
|
-
p += 1
|
2535
|
-
else
|
2536
|
-
raise InvalidSequenceError.new("control sequence")
|
2537
|
-
end
|
2538
|
-
else
|
2539
|
-
raise PrematureEndError.new("control sequence")
|
2540
|
-
end
|
2320
|
+
emit_meta_control_sequence(data, ts, te, :control)
|
2541
2321
|
begin
|
2542
2322
|
top -= 1
|
2543
2323
|
cs = stack[top]
|
@@ -2547,28 +2327,18 @@ p = p - 1; begin
|
|
2547
2327
|
|
2548
2328
|
end
|
2549
2329
|
end
|
2550
|
-
when
|
2551
|
-
# line
|
2330
|
+
when 27 then
|
2331
|
+
# line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2552
2332
|
begin
|
2553
2333
|
|
2554
2334
|
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
2555
2335
|
raise PrematureEndError.new( text )
|
2556
2336
|
end
|
2557
|
-
# line
|
2337
|
+
# line 337 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2558
2338
|
begin
|
2559
2339
|
begin p = ((te))-1; end
|
2560
2340
|
begin
|
2561
|
-
|
2562
|
-
c = data[te].chr
|
2563
|
-
if c =~ /[\x00-\x7F]/
|
2564
|
-
emit(:escape, :meta_sequence, copy(data, ts-1..te), ts-1, te+1)
|
2565
|
-
p += 1
|
2566
|
-
else
|
2567
|
-
raise InvalidSequenceError.new("meta sequence")
|
2568
|
-
end
|
2569
|
-
else
|
2570
|
-
raise PrematureEndError.new("meta sequence")
|
2571
|
-
end
|
2341
|
+
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
2572
2342
|
begin
|
2573
2343
|
top -= 1
|
2574
2344
|
cs = stack[top]
|
@@ -2578,14 +2348,14 @@ p = p - 1; begin
|
|
2578
2348
|
|
2579
2349
|
end
|
2580
2350
|
end
|
2581
|
-
when
|
2582
|
-
# line
|
2351
|
+
when 29 then
|
2352
|
+
# line 137 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2583
2353
|
begin
|
2584
2354
|
|
2585
2355
|
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
2586
|
-
|
2356
|
+
validation_error(:sequence, 'sequence', text)
|
2587
2357
|
end
|
2588
|
-
# line
|
2358
|
+
# line 328 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2589
2359
|
begin
|
2590
2360
|
te = p+1
|
2591
2361
|
begin
|
@@ -2598,46 +2368,32 @@ te = p+1
|
|
2598
2368
|
|
2599
2369
|
end
|
2600
2370
|
end
|
2601
|
-
when
|
2602
|
-
# line
|
2603
|
-
begin
|
2604
|
-
self.group_depth = group_depth - 1; in_group = group_depth > 0 ? true : false end
|
2605
|
-
# line 142 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2606
|
-
begin
|
2607
|
-
self.group_depth = group_depth + 1; in_group = true end
|
2608
|
-
when 11 then
|
2609
|
-
# line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2371
|
+
when 7 then
|
2372
|
+
# line 144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2610
2373
|
begin
|
2611
|
-
self.group_depth = group_depth - 1
|
2612
|
-
# line
|
2374
|
+
self.group_depth = group_depth - 1 end
|
2375
|
+
# line 447 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2613
2376
|
begin
|
2614
2377
|
te = p+1
|
2615
2378
|
begin
|
2616
2379
|
emit(:group, :comment, *text(data, ts, te))
|
2617
2380
|
end
|
2618
2381
|
end
|
2619
|
-
when
|
2620
|
-
# line
|
2382
|
+
when 37 then
|
2383
|
+
# line 144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2621
2384
|
begin
|
2622
|
-
self.group_depth = group_depth - 1
|
2623
|
-
# line
|
2385
|
+
self.group_depth = group_depth - 1 end
|
2386
|
+
# line 516 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2624
2387
|
begin
|
2625
2388
|
te = p+1
|
2626
2389
|
begin
|
2627
|
-
if
|
2628
|
-
conditional_stack.last[1] == (group_depth + 1)
|
2629
|
-
|
2630
|
-
emit(:conditional, :close, *text(data, ts, te))
|
2390
|
+
if conditional_stack.last == group_depth + 1
|
2631
2391
|
conditional_stack.pop
|
2632
|
-
|
2633
|
-
if conditional_stack.length == 0
|
2634
|
-
in_conditional = false
|
2635
|
-
end
|
2392
|
+
emit(:conditional, :close, *text(data, ts, te))
|
2636
2393
|
else
|
2637
|
-
if spacing_stack.length > 1
|
2638
|
-
|
2394
|
+
if spacing_stack.length > 1 &&
|
2395
|
+
spacing_stack.last[:depth] == group_depth + 1
|
2639
2396
|
spacing_stack.pop
|
2640
|
-
|
2641
2397
|
self.free_spacing = spacing_stack.last[:free_spacing]
|
2642
2398
|
end
|
2643
2399
|
|
@@ -2645,20 +2401,136 @@ te = p+1
|
|
2645
2401
|
end
|
2646
2402
|
end
|
2647
2403
|
end
|
2648
|
-
when
|
2404
|
+
when 39 then
|
2405
|
+
# line 145 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2406
|
+
begin
|
2407
|
+
self.set_depth = set_depth + 1 end
|
2408
|
+
# line 422 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2409
|
+
begin
|
2410
|
+
te = p+1
|
2411
|
+
begin
|
2412
|
+
emit(:set, :open, *text(data, ts, te))
|
2413
|
+
begin
|
2414
|
+
stack[top] = cs
|
2415
|
+
top+= 1
|
2416
|
+
cs = 129
|
2417
|
+
_goto_level = _again
|
2418
|
+
next
|
2419
|
+
end
|
2420
|
+
|
2421
|
+
end
|
2422
|
+
end
|
2423
|
+
when 65 then
|
2424
|
+
# line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2425
|
+
begin
|
2426
|
+
self.set_depth = set_depth - 1 end
|
2427
|
+
# line 152 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2428
|
+
begin
|
2429
|
+
te = p+1
|
2430
|
+
begin
|
2431
|
+
emit(:set, :close, *text(data, ts, te))
|
2432
|
+
if in_set?
|
2433
|
+
begin
|
2434
|
+
top -= 1
|
2435
|
+
cs = stack[top]
|
2436
|
+
_goto_level = _again
|
2437
|
+
next
|
2438
|
+
end
|
2439
|
+
|
2440
|
+
else
|
2441
|
+
begin
|
2442
|
+
cs = 110
|
2443
|
+
_goto_level = _again
|
2444
|
+
next
|
2445
|
+
end
|
2446
|
+
|
2447
|
+
end
|
2448
|
+
end
|
2449
|
+
end
|
2450
|
+
when 70 then
|
2451
|
+
# line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2452
|
+
begin
|
2453
|
+
self.set_depth = set_depth - 1 end
|
2454
|
+
# line 161 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2455
|
+
begin
|
2456
|
+
te = p+1
|
2457
|
+
begin # special case, emits two tokens
|
2458
|
+
emit(:literal, :literal, copy(data, ts..te-2), ts, te - 1)
|
2459
|
+
emit(:set, :close, copy(data, ts+1..te-1), ts + 1, te)
|
2460
|
+
if in_set?
|
2461
|
+
begin
|
2462
|
+
top -= 1
|
2463
|
+
cs = stack[top]
|
2464
|
+
_goto_level = _again
|
2465
|
+
next
|
2466
|
+
end
|
2467
|
+
|
2468
|
+
else
|
2469
|
+
begin
|
2470
|
+
cs = 110
|
2471
|
+
_goto_level = _again
|
2472
|
+
next
|
2473
|
+
end
|
2474
|
+
|
2475
|
+
end
|
2476
|
+
end
|
2477
|
+
end
|
2478
|
+
when 22 then
|
2479
|
+
# line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2480
|
+
begin
|
2481
|
+
self.set_depth = set_depth - 1 end
|
2482
|
+
# line 210 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2483
|
+
begin
|
2484
|
+
te = p+1
|
2485
|
+
begin
|
2486
|
+
text = text(data, ts, te).first
|
2487
|
+
|
2488
|
+
type = :posixclass
|
2489
|
+
class_name = text[2..-3]
|
2490
|
+
if class_name[0].chr == '^'
|
2491
|
+
class_name = class_name[1..-1]
|
2492
|
+
type = :nonposixclass
|
2493
|
+
end
|
2494
|
+
|
2495
|
+
emit(type, class_name.to_sym, text, ts, te)
|
2496
|
+
end
|
2497
|
+
end
|
2498
|
+
when 21 then
|
2499
|
+
# line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2500
|
+
begin
|
2501
|
+
self.set_depth = set_depth - 1 end
|
2502
|
+
# line 223 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2503
|
+
begin
|
2504
|
+
te = p+1
|
2505
|
+
begin
|
2506
|
+
emit(:set, :collation, *text(data, ts, te))
|
2507
|
+
end
|
2508
|
+
end
|
2509
|
+
when 23 then
|
2510
|
+
# line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2511
|
+
begin
|
2512
|
+
self.set_depth = set_depth - 1 end
|
2513
|
+
# line 227 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2514
|
+
begin
|
2515
|
+
te = p+1
|
2516
|
+
begin
|
2517
|
+
emit(:set, :equivalent, *text(data, ts, te))
|
2518
|
+
end
|
2519
|
+
end
|
2520
|
+
when 63 then
|
2649
2521
|
# line 1 "NONE"
|
2650
2522
|
begin
|
2651
2523
|
te = p+1
|
2652
2524
|
end
|
2653
|
-
# line
|
2525
|
+
# line 145 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2654
2526
|
begin
|
2655
|
-
self.
|
2527
|
+
self.set_depth = set_depth + 1 end
|
2656
2528
|
when 78 then
|
2657
2529
|
# line 1 "NONE"
|
2658
2530
|
begin
|
2659
2531
|
te = p+1
|
2660
2532
|
end
|
2661
|
-
# line
|
2533
|
+
# line 265 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2662
2534
|
begin
|
2663
2535
|
act = 18; end
|
2664
2536
|
when 77 then
|
@@ -2666,7 +2538,7 @@ act = 18; end
|
|
2666
2538
|
begin
|
2667
2539
|
te = p+1
|
2668
2540
|
end
|
2669
|
-
# line
|
2541
|
+
# line 271 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2670
2542
|
begin
|
2671
2543
|
act = 19; end
|
2672
2544
|
when 2 then
|
@@ -2674,20 +2546,31 @@ act = 19; end
|
|
2674
2546
|
begin
|
2675
2547
|
te = p+1
|
2676
2548
|
end
|
2677
|
-
# line
|
2549
|
+
# line 656 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2678
2550
|
begin
|
2679
2551
|
act = 54; end
|
2680
|
-
|
2552
|
+
when 45 then
|
2553
|
+
# line 1 "NONE"
|
2554
|
+
begin
|
2555
|
+
te = p+1
|
2556
|
+
end
|
2557
|
+
# line 144 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2558
|
+
begin
|
2559
|
+
self.group_depth = group_depth - 1 end
|
2560
|
+
# line 143 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2561
|
+
begin
|
2562
|
+
self.group_depth = group_depth + 1 end
|
2563
|
+
# line 2563 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
2681
2564
|
end
|
2682
2565
|
end
|
2683
2566
|
end
|
2684
2567
|
if _goto_level <= _again
|
2685
2568
|
case _re_scanner_to_state_actions[cs]
|
2686
|
-
when
|
2569
|
+
when 60 then
|
2687
2570
|
# line 1 "NONE"
|
2688
2571
|
begin
|
2689
2572
|
ts = nil; end
|
2690
|
-
when
|
2573
|
+
when 32 then
|
2691
2574
|
# line 1 "NONE"
|
2692
2575
|
begin
|
2693
2576
|
ts = nil; end
|
@@ -2695,7 +2578,7 @@ ts = nil; end
|
|
2695
2578
|
begin
|
2696
2579
|
act = 0
|
2697
2580
|
end
|
2698
|
-
# line
|
2581
|
+
# line 2581 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
2699
2582
|
end
|
2700
2583
|
|
2701
2584
|
if cs == 0
|
@@ -2716,20 +2599,20 @@ act = 0
|
|
2716
2599
|
next;
|
2717
2600
|
end
|
2718
2601
|
case _re_scanner_eof_actions[cs]
|
2719
|
-
when
|
2602
|
+
when 13 then
|
2720
2603
|
# line 8 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
|
2721
2604
|
begin
|
2722
2605
|
|
2723
2606
|
raise PrematureEndError.new('unicode property')
|
2724
2607
|
end
|
2725
|
-
when
|
2726
|
-
# line
|
2608
|
+
when 12 then
|
2609
|
+
# line 131 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2727
2610
|
begin
|
2728
2611
|
|
2729
2612
|
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
2730
2613
|
raise PrematureEndError.new( text )
|
2731
2614
|
end
|
2732
|
-
# line
|
2615
|
+
# line 2615 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
2733
2616
|
end
|
2734
2617
|
end
|
2735
2618
|
|
@@ -2740,7 +2623,7 @@ act = 0
|
|
2740
2623
|
end
|
2741
2624
|
end
|
2742
2625
|
|
2743
|
-
# line
|
2626
|
+
# line 755 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2744
2627
|
|
2745
2628
|
# to avoid "warning: assigned but unused variable - testEof"
|
2746
2629
|
testEof = testEof
|
@@ -2751,9 +2634,9 @@ end
|
|
2751
2634
|
end
|
2752
2635
|
|
2753
2636
|
raise PrematureEndError.new("(missing group closing paranthesis) "+
|
2754
|
-
"[#{
|
2637
|
+
"[#{group_depth}]") if in_group?
|
2755
2638
|
raise PrematureEndError.new("(missing set closing bracket) "+
|
2756
|
-
"[#{
|
2639
|
+
"[#{set_depth}]") if in_set?
|
2757
2640
|
|
2758
2641
|
# when the entire expression is a literal run
|
2759
2642
|
emit_literal if literal
|
@@ -2788,62 +2671,15 @@ end
|
|
2788
2671
|
|
2789
2672
|
private
|
2790
2673
|
|
2791
|
-
attr_accessor :tokens, :literal, :block,
|
2792
|
-
:
|
2793
|
-
:free_spacing, :spacing_stack
|
2794
|
-
|
2795
|
-
# Ragel's regex-based scan of the group options introduced a lot of
|
2796
|
-
# ambiguity, so we just ask it to find the beginning of what looks
|
2797
|
-
# like an options run and handle the rest in here.
|
2798
|
-
def scan_options(p, data, ts, te)
|
2799
|
-
text = text(data, ts, te).first
|
2800
|
-
|
2801
|
-
options_char, options_length = true, 0
|
2674
|
+
attr_accessor :tokens, :literal, :block, :free_spacing, :spacing_stack,
|
2675
|
+
:group_depth, :set_depth, :conditional_stack
|
2802
2676
|
|
2803
|
-
|
2804
|
-
|
2805
|
-
|
2806
|
-
while options_char
|
2807
|
-
if data[te + options_length]
|
2808
|
-
c = data[te + options_length].chr
|
2809
|
-
|
2810
|
-
if c =~ /[-mixdau]/
|
2811
|
-
negative_options = true if c == '-'
|
2812
|
-
|
2813
|
-
raise InvalidGroupOption.new(c, text) if negative_options and
|
2814
|
-
c =~ /[dau]/
|
2815
|
-
|
2816
|
-
text << c ; p += 1 ; options_length += 1
|
2817
|
-
else
|
2818
|
-
options_char = false
|
2819
|
-
end
|
2820
|
-
else
|
2821
|
-
raise PrematureEndError.new("expression options `#{text}'")
|
2822
|
-
end
|
2823
|
-
end
|
2824
|
-
|
2825
|
-
if data[te + options_length]
|
2826
|
-
c = data[te + options_length].chr
|
2827
|
-
|
2828
|
-
if c == ':'
|
2829
|
-
# Include the ':' in the options text
|
2830
|
-
text << c ; p += 1 ; options_length += 1
|
2831
|
-
emit_options(text, ts, te + options_length)
|
2832
|
-
|
2833
|
-
elsif c == ')'
|
2834
|
-
# Don't include the closing ')', let group_close handle it.
|
2835
|
-
emit_options(text, ts, te + options_length)
|
2836
|
-
|
2837
|
-
else
|
2838
|
-
# Plain Regexp reports this as 'undefined group option'
|
2839
|
-
raise ScannerError.new(
|
2840
|
-
"Unexpected `#{c}' in options sequence, ':' or ')' expected")
|
2841
|
-
end
|
2842
|
-
else
|
2843
|
-
raise PrematureEndError.new("expression options `#{text}'")
|
2844
|
-
end
|
2677
|
+
def in_group?
|
2678
|
+
group_depth > 0
|
2679
|
+
end
|
2845
2680
|
|
2846
|
-
|
2681
|
+
def in_set?
|
2682
|
+
set_depth > 0
|
2847
2683
|
end
|
2848
2684
|
|
2849
2685
|
# Copy from ts to te from data as text
|
@@ -2879,32 +2715,39 @@ end
|
|
2879
2715
|
def emit_options(text, ts, te)
|
2880
2716
|
token = nil
|
2881
2717
|
|
2882
|
-
|
2883
|
-
|
2718
|
+
# Ruby allows things like '(?-xxxx)' or '(?xx-xx--xx-:abc)'.
|
2719
|
+
text =~ /\(\?([mixdau]*)(-(?:[mix]*))*(:)?/
|
2720
|
+
positive, negative, group_local = $1, $2, $3
|
2884
2721
|
|
2885
|
-
|
2886
|
-
|
2887
|
-
|
2722
|
+
if positive.include?('x')
|
2723
|
+
self.free_spacing = true
|
2724
|
+
end
|
2888
2725
|
|
2889
|
-
|
2890
|
-
|
2891
|
-
|
2892
|
-
|
2893
|
-
|
2726
|
+
# If the x appears in both, treat it like ruby does, the second cancels
|
2727
|
+
# the first.
|
2728
|
+
if negative && negative.include?('x')
|
2729
|
+
self.free_spacing = false
|
2730
|
+
end
|
2894
2731
|
|
2895
|
-
|
2896
|
-
|
2897
|
-
|
2898
|
-
|
2899
|
-
|
2900
|
-
|
2901
|
-
|
2902
|
-
end
|
2732
|
+
if group_local
|
2733
|
+
spacing_stack << {:free_spacing => free_spacing, :depth => group_depth}
|
2734
|
+
token = :options
|
2735
|
+
else
|
2736
|
+
# switch for parent group level
|
2737
|
+
spacing_stack.last[:free_spacing] = free_spacing
|
2738
|
+
token = :options_switch
|
2903
2739
|
end
|
2904
2740
|
|
2905
2741
|
emit(:group, token, text, ts, te)
|
2906
2742
|
end
|
2907
2743
|
|
2744
|
+
def emit_meta_control_sequence(data, ts, te, token)
|
2745
|
+
if data.last < 0x00 || data.last > 0x7F
|
2746
|
+
validation_error(:sequence, 'escape', token.to_s)
|
2747
|
+
end
|
2748
|
+
emit(:escape, token, *text(data, ts, te, 1))
|
2749
|
+
end
|
2750
|
+
|
2908
2751
|
# Centralizes and unifies the handling of validation related
|
2909
2752
|
# errors.
|
2910
2753
|
def validation_error(type, what, reason)
|
@@ -2915,21 +2758,8 @@ end
|
|
2915
2758
|
error = InvalidBackrefError.new(what, reason)
|
2916
2759
|
when :sequence
|
2917
2760
|
error = InvalidSequenceError.new(what, reason)
|
2918
|
-
else
|
2919
|
-
error = ValidationError.new('expression')
|
2920
2761
|
end
|
2921
2762
|
|
2922
2763
|
raise error # unless @@config.validation_ignore
|
2923
2764
|
end
|
2924
|
-
|
2925
|
-
# Used for references with an empty name or number
|
2926
|
-
def empty_backref_error(type, what)
|
2927
|
-
validation_error(:backref, what, 'ref ID is empty')
|
2928
|
-
end
|
2929
|
-
|
2930
|
-
# Used for named expressions with an empty name
|
2931
|
-
def empty_name_error(type, what)
|
2932
|
-
validation_error(type, what, 'name is empty')
|
2933
|
-
end
|
2934
|
-
|
2935
2765
|
end # module Regexp::Scanner
|