regexp_parser 2.8.1 → 2.12.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/Gemfile +6 -4
- data/LICENSE +1 -1
- data/Rakefile +5 -3
- data/lib/regexp_parser/error.rb +2 -0
- data/lib/regexp_parser/expression/base.rb +2 -0
- data/lib/regexp_parser/expression/classes/alternation.rb +2 -0
- data/lib/regexp_parser/expression/classes/anchor.rb +2 -0
- data/lib/regexp_parser/expression/classes/backreference.rb +3 -20
- data/lib/regexp_parser/expression/classes/character_set/intersection.rb +2 -0
- data/lib/regexp_parser/expression/classes/character_set/range.rb +2 -0
- data/lib/regexp_parser/expression/classes/character_set.rb +3 -4
- data/lib/regexp_parser/expression/classes/character_type.rb +2 -0
- data/lib/regexp_parser/expression/classes/conditional.rb +2 -14
- data/lib/regexp_parser/expression/classes/escape_sequence.rb +26 -95
- data/lib/regexp_parser/expression/classes/free_space.rb +2 -0
- data/lib/regexp_parser/expression/classes/group.rb +2 -0
- data/lib/regexp_parser/expression/classes/keep.rb +3 -1
- data/lib/regexp_parser/expression/classes/literal.rb +2 -0
- data/lib/regexp_parser/expression/classes/posix_class.rb +2 -4
- data/lib/regexp_parser/expression/classes/root.rb +2 -0
- data/lib/regexp_parser/expression/classes/unicode_property.rb +8 -9
- data/lib/regexp_parser/expression/methods/construct.rb +2 -0
- data/lib/regexp_parser/expression/methods/escape_sequence_char.rb +7 -0
- data/lib/regexp_parser/expression/methods/escape_sequence_codepoint.rb +76 -0
- data/lib/regexp_parser/expression/methods/human_name.rb +2 -0
- data/lib/regexp_parser/expression/methods/match.rb +2 -0
- data/lib/regexp_parser/expression/methods/match_length.rb +2 -0
- data/lib/regexp_parser/expression/methods/negative.rb +22 -0
- data/lib/regexp_parser/expression/methods/options.rb +2 -0
- data/lib/regexp_parser/expression/methods/parts.rb +2 -0
- data/lib/regexp_parser/expression/methods/printing.rb +2 -0
- data/lib/regexp_parser/expression/methods/referenced_expressions.rb +30 -0
- data/lib/regexp_parser/expression/methods/strfregexp.rb +2 -0
- data/lib/regexp_parser/expression/methods/tests.rb +2 -0
- data/lib/regexp_parser/expression/methods/traverse.rb +2 -0
- data/lib/regexp_parser/expression/quantifier.rb +3 -1
- data/lib/regexp_parser/expression/sequence.rb +2 -0
- data/lib/regexp_parser/expression/sequence_operation.rb +2 -0
- data/lib/regexp_parser/expression/shared.rb +6 -3
- data/lib/regexp_parser/expression/subexpression.rb +2 -0
- data/lib/regexp_parser/expression.rb +39 -33
- data/lib/regexp_parser/lexer.rb +2 -0
- data/lib/regexp_parser/parser.rb +16 -9
- data/lib/regexp_parser/scanner/errors/premature_end_error.rb +2 -0
- data/lib/regexp_parser/scanner/errors/scanner_error.rb +3 -1
- data/lib/regexp_parser/scanner/errors/validation_error.rb +2 -0
- data/lib/regexp_parser/scanner/properties/long.csv +50 -0
- data/lib/regexp_parser/scanner/properties/short.csv +13 -0
- data/lib/regexp_parser/scanner/scanner.rl +62 -18
- data/lib/regexp_parser/scanner.rb +1041 -936
- data/lib/regexp_parser/syntax/any.rb +2 -0
- data/lib/regexp_parser/syntax/base.rb +2 -0
- data/lib/regexp_parser/syntax/token/anchor.rb +5 -3
- data/lib/regexp_parser/syntax/token/assertion.rb +4 -2
- data/lib/regexp_parser/syntax/token/backreference.rb +8 -6
- data/lib/regexp_parser/syntax/token/character_set.rb +3 -1
- data/lib/regexp_parser/syntax/token/character_type.rb +6 -4
- data/lib/regexp_parser/syntax/token/conditional.rb +5 -3
- data/lib/regexp_parser/syntax/token/escape.rb +9 -7
- data/lib/regexp_parser/syntax/token/group.rb +8 -6
- data/lib/regexp_parser/syntax/token/keep.rb +3 -1
- data/lib/regexp_parser/syntax/token/meta.rb +4 -2
- data/lib/regexp_parser/syntax/token/posix_class.rb +4 -2
- data/lib/regexp_parser/syntax/token/quantifier.rb +8 -6
- data/lib/regexp_parser/syntax/token/unicode_property.rb +149 -71
- data/lib/regexp_parser/syntax/token/virtual.rb +5 -3
- data/lib/regexp_parser/syntax/token.rb +18 -16
- data/lib/regexp_parser/syntax/version_lookup.rb +4 -2
- data/lib/regexp_parser/syntax/versions/1.8.6.rb +2 -0
- data/lib/regexp_parser/syntax/versions/1.9.1.rb +2 -0
- data/lib/regexp_parser/syntax/versions/1.9.3.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.0.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.2.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.3.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.4.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.4.1.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.5.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.6.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.6.2.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.6.3.rb +2 -0
- data/lib/regexp_parser/syntax/versions/3.1.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/3.2.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/3.5.0.rb +4 -0
- data/lib/regexp_parser/syntax/versions/4.0.0.rb +4 -0
- data/lib/regexp_parser/syntax/versions.rb +3 -1
- data/lib/regexp_parser/syntax.rb +3 -1
- data/lib/regexp_parser/token.rb +2 -0
- data/lib/regexp_parser/version.rb +3 -1
- data/lib/regexp_parser.rb +8 -6
- data/regexp_parser.gemspec +7 -5
- metadata +13 -11
- data/CHANGELOG.md +0 -691
- data/README.md +0 -506
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
# -*- warn-indent:false
|
|
1
|
+
# -*- frozen_string_literal: true; warn-indent: false -*-
|
|
2
2
|
#
|
|
3
3
|
# THIS IS A GENERATED FILE, DO NOT EDIT DIRECTLY
|
|
4
4
|
#
|
|
5
5
|
# This file was generated from scanner.rl
|
|
6
|
-
# by running
|
|
6
|
+
# by running `$ bundle exec rake ragel`
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
require_relative 'scanner/errors/scanner_error'
|
|
10
|
+
require_relative 'scanner/errors/premature_end_error'
|
|
11
|
+
require_relative 'scanner/errors/validation_error'
|
|
12
12
|
|
|
13
13
|
class Regexp::Scanner
|
|
14
14
|
# Scans the given regular expression text, or Regexp object and collects the
|
|
@@ -28,16 +28,18 @@ class Regexp::Scanner
|
|
|
28
28
|
|
|
29
29
|
input = input_object.is_a?(Regexp) ? input_object.source : input_object
|
|
30
30
|
self.free_spacing = free_spacing?(input_object, options)
|
|
31
|
+
self.regexp_encoding = extract_encoding(input_object, options)
|
|
31
32
|
self.spacing_stack = [{:free_spacing => free_spacing, :depth => 0}]
|
|
32
33
|
|
|
33
|
-
data
|
|
34
|
-
eof
|
|
34
|
+
data = input.unpack("c*")
|
|
35
|
+
eof = data.length
|
|
35
36
|
|
|
36
37
|
self.tokens = []
|
|
37
|
-
self.block
|
|
38
|
+
self.block = block
|
|
38
39
|
|
|
39
40
|
self.set_depth = 0
|
|
40
41
|
self.group_depth = 0
|
|
42
|
+
self.capturing_group_count = 0
|
|
41
43
|
self.conditional_stack = []
|
|
42
44
|
self.char_pos = 0
|
|
43
45
|
|
|
@@ -64,33 +66,38 @@ self._re_scanner_trans_keys = [
|
|
|
64
66
|
9,125,9,122,-128,-65,
|
|
65
67
|
-128,-65,38,38,58,
|
|
66
68
|
93,58,93,-128,-65,
|
|
67
|
-
-128,-65,
|
|
68
|
-
|
|
69
|
-
92,92,92,
|
|
70
|
-
|
|
71
|
-
48,102,
|
|
72
|
-
|
|
73
|
-
9,125,9,125,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
33,126,
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
-65,-128,-65,
|
|
88
|
-
48,55,
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
48,
|
|
92
|
-
48,57,
|
|
93
|
-
|
|
69
|
+
-128,-65,-128,-65,-128,-65,
|
|
70
|
+
45,45,92,92,92,
|
|
71
|
+
92,45,45,92,92,
|
|
72
|
+
92,92,48,123,48,102,
|
|
73
|
+
48,102,48,102,48,
|
|
74
|
+
102,9,125,9,125,
|
|
75
|
+
9,125,9,125,9,125,
|
|
76
|
+
9,125,48,102,120,
|
|
77
|
+
120,56,102,48,102,
|
|
78
|
+
39,39,41,41,41,57,
|
|
79
|
+
62,62,-128,127,-62,
|
|
80
|
+
-12,1,127,1,127,
|
|
81
|
+
9,32,33,126,10,10,
|
|
82
|
+
63,63,33,126,33,
|
|
83
|
+
126,43,63,43,63,
|
|
84
|
+
43,63,65,122,44,57,
|
|
85
|
+
68,119,80,112,-62,
|
|
86
|
+
125,-128,-65,-128,-65,
|
|
87
|
+
-128,-65,38,38,38,93,
|
|
88
|
+
58,58,-62,120,-128,
|
|
89
|
+
-65,-128,-65,-128,-65,
|
|
90
|
+
48,55,48,55,-62,125,
|
|
91
|
+
-128,-65,-128,-65,-128,
|
|
92
|
+
-65,48,55,48,55,
|
|
93
|
+
48,57,48,57,48,57,
|
|
94
|
+
48,57,77,77,45,
|
|
95
|
+
45,0,0,67,99,
|
|
96
|
+
45,45,0,0,92,92,
|
|
97
|
+
48,102,48,102,92,
|
|
98
|
+
92,39,60,39,57,
|
|
99
|
+
48,57,41,57,33,62,
|
|
100
|
+
0
|
|
94
101
|
]
|
|
95
102
|
|
|
96
103
|
class << self
|
|
@@ -104,15 +111,17 @@ self._re_scanner_key_spans = [
|
|
|
104
111
|
1,10,19,10,19,30,1,10,
|
|
105
112
|
20,10,15,10,78,82,1,114,
|
|
106
113
|
117,114,64,64,1,36,36,64,
|
|
107
|
-
64,
|
|
108
|
-
55,55,55,55,117,117,
|
|
109
|
-
117,117,
|
|
110
|
-
|
|
111
|
-
94,1,
|
|
112
|
-
33,188,64,64,
|
|
113
|
-
|
|
114
|
-
8,
|
|
115
|
-
|
|
114
|
+
64,64,64,1,1,1,1,1,
|
|
115
|
+
1,76,55,55,55,55,117,117,
|
|
116
|
+
117,117,117,117,55,1,47,55,
|
|
117
|
+
1,1,17,1,256,51,127,127,
|
|
118
|
+
24,94,1,1,94,94,21,21,
|
|
119
|
+
21,58,14,52,33,188,64,64,
|
|
120
|
+
64,1,56,1,183,64,64,64,
|
|
121
|
+
8,8,188,64,64,64,8,8,
|
|
122
|
+
10,10,10,10,1,1,0,33,
|
|
123
|
+
1,0,1,55,55,1,22,19,
|
|
124
|
+
10,17,30
|
|
116
125
|
]
|
|
117
126
|
|
|
118
127
|
class << self
|
|
@@ -126,15 +135,17 @@ self._re_scanner_index_offsets = [
|
|
|
126
135
|
494,496,507,527,538,558,589,591,
|
|
127
136
|
602,623,634,650,661,740,823,825,
|
|
128
137
|
940,1058,1173,1238,1303,1305,1342,1379,
|
|
129
|
-
1444,1509,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
+
1444,1509,1574,1639,1641,1643,1645,1647,
|
|
139
|
+
1649,1651,1728,1784,1840,1896,1952,2070,
|
|
140
|
+
2188,2306,2424,2542,2660,2716,2718,2766,
|
|
141
|
+
2822,2824,2826,2844,2846,3103,3155,3283,
|
|
142
|
+
3411,3436,3531,3533,3535,3630,3725,3747,
|
|
143
|
+
3769,3791,3850,3865,3918,3952,4141,4206,
|
|
144
|
+
4271,4336,4338,4395,4397,4581,4646,4711,
|
|
145
|
+
4776,4785,4794,4983,5048,5113,5178,5187,
|
|
146
|
+
5196,5207,5218,5229,5240,5242,5244,5245,
|
|
147
|
+
5279,5281,5282,5284,5340,5396,5398,5421,
|
|
148
|
+
5441,5452,5470
|
|
138
149
|
]
|
|
139
150
|
|
|
140
151
|
class << self
|
|
@@ -172,123 +183,131 @@ self._re_scanner_indicies = [
|
|
|
172
183
|
7,8,7,10,9,9,9,9,
|
|
173
184
|
9,9,9,9,9,9,9,4,
|
|
174
185
|
9,9,4,4,4,4,4,4,
|
|
175
|
-
4,4,4,4,9,9,9,
|
|
176
|
-
8,9,8,9,
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
+
4,4,4,4,9,9,9,10,
|
|
187
|
+
8,9,8,9,12,11,11,11,
|
|
188
|
+
11,11,11,11,11,11,11,11,
|
|
189
|
+
11,11,11,11,11,11,11,11,
|
|
190
|
+
11,13,11,15,14,14,14,14,
|
|
191
|
+
14,16,14,14,17,17,17,17,
|
|
192
|
+
17,17,17,17,17,17,14,15,
|
|
193
|
+
14,17,17,17,17,17,17,17,
|
|
194
|
+
17,17,17,11,15,11,11,11,
|
|
195
|
+
18,11,18,11,11,17,17,17,
|
|
196
|
+
17,17,17,17,17,17,17,11,
|
|
197
|
+
19,19,19,19,19,19,19,19,
|
|
198
|
+
19,19,11,15,11,11,11,11,
|
|
199
|
+
11,11,11,11,19,19,19,19,
|
|
200
|
+
19,19,19,19,19,19,11,11,
|
|
186
201
|
20,20,20,20,20,20,20,20,
|
|
187
|
-
20,20,
|
|
188
|
-
|
|
189
|
-
20,20,20,
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
202
|
+
20,20,20,21,20,20,22,22,
|
|
203
|
+
22,22,22,22,22,22,22,22,
|
|
204
|
+
20,20,20,11,15,20,15,20,
|
|
205
|
+
22,22,22,22,22,22,22,22,
|
|
206
|
+
22,22,11,23,11,23,11,11,
|
|
207
|
+
22,22,22,22,22,22,22,22,
|
|
208
|
+
22,22,11,11,11,11,15,11,
|
|
209
|
+
24,24,24,24,24,24,24,24,
|
|
210
|
+
24,24,11,24,24,24,24,24,
|
|
211
|
+
24,24,24,24,24,11,11,11,
|
|
212
|
+
11,15,11,25,11,11,11,11,
|
|
213
|
+
11,11,11,11,11,11,11,11,
|
|
214
|
+
11,11,11,11,11,11,11,11,
|
|
215
|
+
26,11,28,27,27,27,27,27,
|
|
216
|
+
29,27,27,30,30,30,30,30,
|
|
217
|
+
30,30,30,30,30,27,28,27,
|
|
218
|
+
30,30,30,30,30,30,30,30,
|
|
219
|
+
30,30,11,28,11,11,11,31,
|
|
220
|
+
11,31,11,11,30,30,30,30,
|
|
221
|
+
30,30,30,30,30,30,11,32,
|
|
222
|
+
32,32,32,32,32,32,32,32,
|
|
223
|
+
32,11,28,11,11,11,11,11,
|
|
224
|
+
11,11,11,32,32,32,32,32,
|
|
225
|
+
32,32,32,32,32,11,11,33,
|
|
211
226
|
33,33,33,33,33,33,33,33,
|
|
212
|
-
33,
|
|
213
|
-
|
|
214
|
-
33,33,
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
227
|
+
33,33,34,33,33,35,35,35,
|
|
228
|
+
35,35,35,35,35,35,35,33,
|
|
229
|
+
33,33,11,28,33,28,33,35,
|
|
230
|
+
35,35,35,35,35,35,35,35,
|
|
231
|
+
35,11,36,11,36,11,11,35,
|
|
232
|
+
35,35,35,35,35,35,35,35,
|
|
233
|
+
35,11,11,11,11,28,11,37,
|
|
234
|
+
37,37,37,37,37,37,37,37,
|
|
235
|
+
37,11,37,37,37,37,37,37,
|
|
236
|
+
37,37,37,37,11,11,11,11,
|
|
237
|
+
28,11,39,39,39,39,39,39,
|
|
238
|
+
39,39,39,39,38,39,39,39,
|
|
239
|
+
39,39,39,39,39,39,39,38,
|
|
240
|
+
38,38,38,38,38,38,38,38,
|
|
241
|
+
38,38,38,38,38,38,38,38,
|
|
242
|
+
38,38,38,38,38,38,38,38,
|
|
243
|
+
38,38,38,38,38,38,38,38,
|
|
244
|
+
38,38,38,38,38,38,38,38,
|
|
245
|
+
38,38,38,38,38,38,38,38,
|
|
246
|
+
38,38,38,38,38,38,38,38,
|
|
247
|
+
38,38,38,38,38,38,38,38,
|
|
248
|
+
38,38,40,38,39,38,38,38,
|
|
249
|
+
41,41,41,41,41,41,41,41,
|
|
250
|
+
41,41,38,38,38,38,38,38,
|
|
251
|
+
38,38,38,38,38,38,38,38,
|
|
252
|
+
38,38,38,38,38,38,38,38,
|
|
253
|
+
38,38,38,38,38,38,38,38,
|
|
223
254
|
38,38,38,38,38,38,38,38,
|
|
224
|
-
38,
|
|
225
|
-
38,38,38,38,
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
44,
|
|
255
|
+
38,38,38,38,38,38,38,38,
|
|
256
|
+
38,38,38,38,38,38,38,38,
|
|
257
|
+
38,38,38,38,38,38,38,38,
|
|
258
|
+
38,38,38,38,38,40,38,42,
|
|
259
|
+
43,44,44,44,44,44,43,43,
|
|
260
|
+
43,43,43,43,43,43,43,43,
|
|
261
|
+
43,43,43,43,43,43,43,43,
|
|
262
|
+
44,43,43,43,43,43,43,43,
|
|
263
|
+
43,43,43,43,43,44,44,43,
|
|
264
|
+
44,44,44,44,44,44,44,44,
|
|
265
|
+
44,44,43,43,43,44,43,43,
|
|
266
|
+
43,44,44,44,44,44,44,44,
|
|
267
|
+
44,44,44,44,44,44,44,44,
|
|
268
|
+
44,44,44,44,44,44,44,44,
|
|
269
|
+
44,44,44,43,43,43,45,44,
|
|
270
|
+
43,44,44,44,44,44,44,44,
|
|
271
|
+
44,44,44,44,44,44,44,44,
|
|
272
|
+
44,44,44,44,44,44,44,44,
|
|
273
|
+
44,44,44,43,44,44,44,44,
|
|
274
|
+
44,43,43,43,43,43,43,43,
|
|
275
|
+
43,43,43,43,43,43,43,43,
|
|
276
|
+
43,43,43,44,43,43,43,43,
|
|
277
|
+
43,43,43,43,43,43,43,43,
|
|
278
|
+
44,44,43,44,44,44,44,44,
|
|
279
|
+
44,44,44,44,44,43,43,43,
|
|
280
|
+
44,43,43,43,44,44,44,44,
|
|
249
281
|
44,44,44,44,44,44,44,44,
|
|
250
282
|
44,44,44,44,44,44,44,44,
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
45,45,45,45,45,45,45,45,
|
|
254
|
-
45,45,44,44,44,45,44,44,
|
|
255
|
-
44,45,45,45,45,45,45,45,
|
|
256
|
-
45,45,45,45,45,45,45,45,
|
|
257
|
-
45,45,45,45,45,45,45,45,
|
|
258
|
-
45,45,45,44,44,44,46,45,
|
|
259
|
-
44,45,45,45,45,45,45,45,
|
|
260
|
-
45,45,45,45,45,45,45,45,
|
|
261
|
-
45,45,45,45,45,45,45,45,
|
|
262
|
-
45,45,45,44,45,45,45,45,
|
|
263
|
-
45,44,44,44,44,44,44,44,
|
|
283
|
+
44,44,44,44,44,44,43,43,
|
|
284
|
+
43,43,44,43,44,44,44,44,
|
|
264
285
|
44,44,44,44,44,44,44,44,
|
|
265
|
-
44,44,44,45,44,44,44,44,
|
|
266
286
|
44,44,44,44,44,44,44,44,
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
44,44,
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
45,45,45,45,45,45,44,44,
|
|
277
|
-
47,44,45,45,45,45,45,44,
|
|
287
|
+
44,44,44,44,44,44,43,43,
|
|
288
|
+
46,43,44,44,44,44,44,43,
|
|
289
|
+
43,43,43,43,43,43,43,43,
|
|
290
|
+
43,43,43,43,43,43,43,43,
|
|
291
|
+
43,44,43,43,43,43,43,43,
|
|
292
|
+
43,43,43,43,43,43,44,44,
|
|
293
|
+
43,44,44,44,44,44,44,44,
|
|
294
|
+
44,44,44,43,43,43,44,43,
|
|
295
|
+
43,43,44,44,44,44,44,44,
|
|
278
296
|
44,44,44,44,44,44,44,44,
|
|
279
297
|
44,44,44,44,44,44,44,44,
|
|
280
|
-
44,
|
|
281
|
-
44,44,44,44,44,44,
|
|
282
|
-
44,
|
|
283
|
-
|
|
284
|
-
44,44,
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
298
|
+
44,44,44,44,43,43,43,43,
|
|
299
|
+
44,43,44,44,44,44,44,44,
|
|
300
|
+
44,44,44,44,44,44,44,44,
|
|
301
|
+
44,44,44,44,44,44,44,44,
|
|
302
|
+
44,44,44,44,43,48,48,48,
|
|
303
|
+
48,48,48,48,48,48,48,48,
|
|
304
|
+
48,48,48,48,48,48,48,48,
|
|
305
|
+
48,48,48,48,48,48,48,48,
|
|
306
|
+
48,48,48,48,48,48,48,48,
|
|
307
|
+
48,48,48,48,48,48,48,48,
|
|
308
|
+
48,48,48,48,48,48,48,48,
|
|
309
|
+
48,48,48,48,48,48,48,48,
|
|
310
|
+
48,48,48,48,48,47,49,49,
|
|
292
311
|
49,49,49,49,49,49,49,49,
|
|
293
312
|
49,49,49,49,49,49,49,49,
|
|
294
313
|
49,49,49,49,49,49,49,49,
|
|
@@ -296,25 +315,25 @@ self._re_scanner_indicies = [
|
|
|
296
315
|
49,49,49,49,49,49,49,49,
|
|
297
316
|
49,49,49,49,49,49,49,49,
|
|
298
317
|
49,49,49,49,49,49,49,49,
|
|
299
|
-
49,49,49,49,49,
|
|
300
|
-
50,
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
+
49,49,49,49,49,49,47,51,
|
|
319
|
+
50,54,53,53,53,53,53,53,
|
|
320
|
+
53,53,53,53,53,53,53,53,
|
|
321
|
+
53,53,53,53,53,53,53,53,
|
|
322
|
+
53,53,53,53,53,53,53,53,
|
|
323
|
+
53,53,55,53,55,53,54,53,
|
|
324
|
+
53,53,53,53,53,53,53,53,
|
|
325
|
+
53,53,53,53,53,53,53,53,
|
|
326
|
+
53,53,53,53,53,53,53,53,
|
|
327
|
+
53,53,53,53,53,53,53,55,
|
|
328
|
+
53,56,53,58,58,58,58,58,
|
|
329
|
+
58,58,58,58,58,58,58,58,
|
|
330
|
+
58,58,58,58,58,58,58,58,
|
|
331
|
+
58,58,58,58,58,58,58,58,
|
|
332
|
+
58,58,58,58,58,58,58,58,
|
|
333
|
+
58,58,58,58,58,58,58,58,
|
|
334
|
+
58,58,58,58,58,58,58,58,
|
|
335
|
+
58,58,58,58,58,58,58,58,
|
|
336
|
+
58,58,58,57,59,59,59,59,
|
|
318
337
|
59,59,59,59,59,59,59,59,
|
|
319
338
|
59,59,59,59,59,59,59,59,
|
|
320
339
|
59,59,59,59,59,59,59,59,
|
|
@@ -322,437 +341,506 @@ self._re_scanner_indicies = [
|
|
|
322
341
|
59,59,59,59,59,59,59,59,
|
|
323
342
|
59,59,59,59,59,59,59,59,
|
|
324
343
|
59,59,59,59,59,59,59,59,
|
|
325
|
-
59,59,59,
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
62,
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
44,44,44,44,44,44,44,74,
|
|
354
|
-
74,74,74,74,74,44,44,44,
|
|
355
|
-
44,44,44,44,44,44,44,44,
|
|
356
|
-
44,44,44,44,44,44,44,44,
|
|
357
|
-
44,44,44,44,44,44,44,74,
|
|
358
|
-
74,74,74,74,74,44,75,75,
|
|
344
|
+
59,59,59,59,57,61,61,61,
|
|
345
|
+
61,61,61,61,61,61,61,61,
|
|
346
|
+
61,61,61,61,61,61,61,61,
|
|
347
|
+
61,61,61,61,61,61,61,61,
|
|
348
|
+
61,61,61,61,61,61,61,61,
|
|
349
|
+
61,61,61,61,61,61,61,61,
|
|
350
|
+
61,61,61,61,61,61,61,61,
|
|
351
|
+
61,61,61,61,61,61,61,61,
|
|
352
|
+
61,61,61,61,61,60,62,62,
|
|
353
|
+
62,62,62,62,62,62,62,62,
|
|
354
|
+
62,62,62,62,62,62,62,62,
|
|
355
|
+
62,62,62,62,62,62,62,62,
|
|
356
|
+
62,62,62,62,62,62,62,62,
|
|
357
|
+
62,62,62,62,62,62,62,62,
|
|
358
|
+
62,62,62,62,62,62,62,62,
|
|
359
|
+
62,62,62,62,62,62,62,62,
|
|
360
|
+
62,62,62,62,62,62,60,63,
|
|
361
|
+
43,65,64,67,64,68,43,70,
|
|
362
|
+
69,72,69,73,73,73,73,73,
|
|
363
|
+
73,73,73,73,73,43,43,43,
|
|
364
|
+
43,43,43,43,73,73,73,73,
|
|
365
|
+
73,73,43,43,43,43,43,43,
|
|
366
|
+
43,43,43,43,43,43,43,43,
|
|
367
|
+
43,43,43,43,43,43,43,43,
|
|
368
|
+
43,43,43,43,73,73,73,73,
|
|
369
|
+
73,73,43,43,43,43,43,43,
|
|
370
|
+
43,43,43,43,43,43,43,43,
|
|
371
|
+
43,43,43,43,43,43,74,43,
|
|
359
372
|
75,75,75,75,75,75,75,75,
|
|
360
|
-
|
|
361
|
-
75,75,75,75,75,
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
75,75,75,75,75,
|
|
373
|
+
75,75,43,43,43,43,43,43,
|
|
374
|
+
43,75,75,75,75,75,75,43,
|
|
375
|
+
43,43,43,43,43,43,43,43,
|
|
376
|
+
43,43,43,43,43,43,43,43,
|
|
377
|
+
43,43,43,43,43,43,43,43,
|
|
378
|
+
43,75,75,75,75,75,75,43,
|
|
366
379
|
76,76,76,76,76,76,76,76,
|
|
367
|
-
|
|
368
|
-
76,76,76,76,76,
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
76,76,76,76,76,
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
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
|
-
|
|
380
|
+
76,76,43,43,43,43,43,43,
|
|
381
|
+
43,76,76,76,76,76,76,43,
|
|
382
|
+
43,43,43,43,43,43,43,43,
|
|
383
|
+
43,43,43,43,43,43,43,43,
|
|
384
|
+
43,43,43,43,43,43,43,43,
|
|
385
|
+
43,76,76,76,76,76,76,43,
|
|
386
|
+
77,77,77,77,77,77,77,77,
|
|
387
|
+
77,77,43,43,43,43,43,43,
|
|
388
|
+
43,77,77,77,77,77,77,43,
|
|
389
|
+
43,43,43,43,43,43,43,43,
|
|
390
|
+
43,43,43,43,43,43,43,43,
|
|
391
|
+
43,43,43,43,43,43,43,43,
|
|
392
|
+
43,77,77,77,77,77,77,43,
|
|
393
|
+
78,78,78,78,78,78,78,78,
|
|
394
|
+
78,78,43,43,43,43,43,43,
|
|
395
|
+
43,78,78,78,78,78,78,43,
|
|
396
|
+
43,43,43,43,43,43,43,43,
|
|
397
|
+
43,43,43,43,43,43,43,43,
|
|
398
|
+
43,43,43,43,43,43,43,43,
|
|
399
|
+
43,78,78,78,78,78,78,43,
|
|
400
|
+
74,74,74,74,74,43,43,43,
|
|
401
|
+
43,43,43,43,43,43,43,43,
|
|
402
|
+
43,43,43,43,43,43,43,74,
|
|
403
|
+
43,43,43,43,43,43,43,43,
|
|
404
|
+
43,43,43,43,43,43,43,79,
|
|
405
|
+
79,79,79,79,79,79,79,79,
|
|
406
|
+
79,43,43,43,43,43,43,43,
|
|
407
|
+
79,79,79,79,79,79,43,43,
|
|
408
|
+
43,43,43,43,43,43,43,43,
|
|
409
|
+
43,43,43,43,43,43,43,43,
|
|
410
|
+
43,43,43,43,43,43,43,43,
|
|
411
|
+
79,79,79,79,79,79,43,43,
|
|
412
|
+
43,43,43,43,43,43,43,43,
|
|
413
|
+
43,43,43,43,43,43,43,43,
|
|
414
|
+
43,43,43,43,77,43,74,74,
|
|
415
|
+
74,74,74,43,43,43,43,43,
|
|
416
|
+
43,43,43,43,43,43,43,43,
|
|
417
|
+
43,43,43,43,43,74,43,43,
|
|
418
|
+
43,43,43,43,43,43,43,43,
|
|
419
|
+
43,43,43,43,43,80,80,80,
|
|
420
|
+
80,80,80,80,80,80,80,43,
|
|
421
|
+
43,43,43,43,43,43,80,80,
|
|
422
|
+
80,80,80,80,43,43,43,43,
|
|
423
|
+
43,43,43,43,43,43,43,43,
|
|
424
|
+
43,43,43,43,43,43,43,43,
|
|
425
|
+
43,43,43,43,43,43,80,80,
|
|
426
|
+
80,80,80,80,43,43,43,43,
|
|
427
|
+
43,43,43,43,43,43,43,43,
|
|
428
|
+
43,43,43,43,43,43,43,43,
|
|
429
|
+
43,43,77,43,74,74,74,74,
|
|
430
|
+
74,43,43,43,43,43,43,43,
|
|
431
|
+
43,43,43,43,43,43,43,43,
|
|
432
|
+
43,43,43,74,43,43,43,43,
|
|
433
|
+
43,43,43,43,43,43,43,43,
|
|
434
|
+
43,43,43,81,81,81,81,81,
|
|
435
|
+
81,81,81,81,81,43,43,43,
|
|
436
|
+
43,43,43,43,81,81,81,81,
|
|
437
|
+
81,81,43,43,43,43,43,43,
|
|
438
|
+
43,43,43,43,43,43,43,43,
|
|
439
|
+
43,43,43,43,43,43,43,43,
|
|
440
|
+
43,43,43,43,81,81,81,81,
|
|
441
|
+
81,81,43,43,43,43,43,43,
|
|
442
|
+
43,43,43,43,43,43,43,43,
|
|
443
|
+
43,43,43,43,43,43,43,43,
|
|
444
|
+
77,43,74,74,74,74,74,43,
|
|
445
|
+
43,43,43,43,43,43,43,43,
|
|
446
|
+
43,43,43,43,43,43,43,43,
|
|
447
|
+
43,74,43,43,43,43,43,43,
|
|
448
|
+
43,43,43,43,43,43,43,43,
|
|
449
|
+
43,82,82,82,82,82,82,82,
|
|
450
|
+
82,82,82,43,43,43,43,43,
|
|
451
|
+
43,43,82,82,82,82,82,82,
|
|
452
|
+
43,43,43,43,43,43,43,43,
|
|
453
|
+
43,43,43,43,43,43,43,43,
|
|
454
|
+
43,43,43,43,43,43,43,43,
|
|
455
|
+
43,43,82,82,82,82,82,82,
|
|
456
|
+
43,43,43,43,43,43,43,43,
|
|
457
|
+
43,43,43,43,43,43,43,43,
|
|
458
|
+
43,43,43,43,43,43,77,43,
|
|
459
|
+
74,74,74,74,74,43,43,43,
|
|
460
|
+
43,43,43,43,43,43,43,43,
|
|
461
|
+
43,43,43,43,43,43,43,74,
|
|
462
|
+
43,43,43,43,43,43,43,43,
|
|
463
|
+
43,43,43,43,43,43,43,83,
|
|
464
|
+
83,83,83,83,83,83,83,83,
|
|
465
|
+
83,43,43,43,43,43,43,43,
|
|
466
|
+
83,83,83,83,83,83,43,43,
|
|
467
|
+
43,43,43,43,43,43,43,43,
|
|
468
|
+
43,43,43,43,43,43,43,43,
|
|
469
|
+
43,43,43,43,43,43,43,43,
|
|
470
|
+
83,83,83,83,83,83,43,43,
|
|
471
|
+
43,43,43,43,43,43,43,43,
|
|
472
|
+
43,43,43,43,43,43,43,43,
|
|
473
|
+
43,43,43,43,77,43,74,74,
|
|
474
|
+
74,74,74,43,43,43,43,43,
|
|
475
|
+
43,43,43,43,43,43,43,43,
|
|
476
|
+
43,43,43,43,43,74,43,43,
|
|
477
|
+
43,43,43,43,43,43,43,43,
|
|
478
|
+
43,43,43,43,43,43,43,43,
|
|
479
|
+
43,43,43,43,43,43,43,43,
|
|
480
|
+
43,43,43,43,43,43,43,43,
|
|
481
|
+
43,43,43,43,43,43,43,43,
|
|
482
|
+
43,43,43,43,43,43,43,43,
|
|
483
|
+
43,43,43,43,43,43,43,43,
|
|
484
|
+
43,43,43,43,43,43,43,43,
|
|
485
|
+
43,43,43,43,43,43,43,43,
|
|
486
|
+
43,43,43,43,43,43,43,43,
|
|
487
|
+
43,43,43,43,43,43,43,43,
|
|
488
|
+
43,43,77,43,85,85,85,85,
|
|
489
|
+
85,85,85,85,86,86,84,84,
|
|
490
|
+
84,84,84,84,84,86,86,86,
|
|
491
|
+
86,86,86,84,84,84,84,84,
|
|
492
|
+
84,84,84,84,84,84,84,84,
|
|
493
|
+
84,84,84,84,84,84,84,84,
|
|
494
|
+
84,84,84,84,84,86,86,86,
|
|
495
|
+
86,86,86,84,88,87,89,89,
|
|
496
|
+
87,87,87,87,87,87,87,89,
|
|
497
|
+
89,89,89,89,89,87,87,87,
|
|
498
|
+
87,87,87,87,87,87,87,87,
|
|
499
|
+
87,87,87,87,87,87,87,87,
|
|
500
|
+
87,87,87,87,87,87,87,89,
|
|
501
|
+
89,89,89,89,89,87,90,90,
|
|
502
|
+
90,90,90,90,90,90,90,90,
|
|
503
|
+
87,87,87,87,87,87,87,90,
|
|
504
|
+
90,90,90,90,90,87,87,87,
|
|
505
|
+
87,87,87,87,87,87,87,87,
|
|
506
|
+
87,87,87,87,87,87,87,87,
|
|
507
|
+
87,87,87,87,87,87,87,90,
|
|
508
|
+
90,90,90,90,90,87,93,92,
|
|
509
|
+
94,91,94,91,91,91,91,91,
|
|
510
|
+
91,95,95,95,95,95,95,95,
|
|
511
|
+
95,95,95,91,93,96,43,43,
|
|
512
|
+
43,43,43,43,43,43,43,43,
|
|
513
|
+
43,43,43,43,43,43,43,43,
|
|
514
|
+
43,43,43,43,43,43,43,43,
|
|
515
|
+
43,43,43,43,43,43,43,43,
|
|
516
|
+
43,43,43,43,43,43,43,43,
|
|
517
|
+
43,43,43,43,43,43,43,43,
|
|
518
|
+
43,43,43,43,43,43,43,43,
|
|
519
|
+
43,43,43,43,43,43,43,43,
|
|
520
|
+
2,2,2,2,2,2,2,2,
|
|
483
521
|
2,2,2,2,2,2,2,2,
|
|
484
522
|
2,2,2,2,2,2,2,2,
|
|
485
|
-
2,2,2,2,2,2,
|
|
523
|
+
2,2,2,2,2,2,3,3,
|
|
486
524
|
3,3,3,3,3,3,3,3,
|
|
487
|
-
3,3,3,3,3,3,
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
525
|
+
3,3,3,3,3,3,97,97,
|
|
526
|
+
97,97,97,43,43,43,43,43,
|
|
527
|
+
43,43,43,43,43,43,43,98,
|
|
528
|
+
98,98,98,98,98,98,98,99,
|
|
529
|
+
99,99,99,99,98,98,98,98,
|
|
530
|
+
98,98,98,98,98,98,98,98,
|
|
531
|
+
98,98,98,98,98,98,100,101,
|
|
532
|
+
101,102,103,101,101,101,104,105,
|
|
533
|
+
106,107,101,101,108,101,101,101,
|
|
534
|
+
101,101,101,101,101,101,101,101,
|
|
535
|
+
101,101,101,101,101,109,101,101,
|
|
536
|
+
101,101,101,101,101,101,101,101,
|
|
537
|
+
101,101,101,101,101,101,101,101,
|
|
538
|
+
101,101,101,101,101,101,101,101,
|
|
539
|
+
101,110,111,112,113,101,101,101,
|
|
540
|
+
101,101,101,101,101,101,101,101,
|
|
541
|
+
101,101,101,101,101,101,101,101,
|
|
542
|
+
101,101,101,101,101,101,101,101,
|
|
543
|
+
101,114,115,112,101,98,101,2,
|
|
506
544
|
2,2,2,2,2,2,2,2,
|
|
507
545
|
2,2,2,2,2,2,2,2,
|
|
508
546
|
2,2,2,2,2,2,2,2,
|
|
509
|
-
2,2,2,2,2,
|
|
547
|
+
2,2,2,2,2,3,3,3,
|
|
510
548
|
3,3,3,3,3,3,3,3,
|
|
511
|
-
3,3,3,3,3,
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
109,109,109,109,109,109,109,109,
|
|
518
|
-
109,109,109,109,109,109,109,109,
|
|
519
|
-
109,109,109,109,109,109,109,109,
|
|
520
|
-
109,109,109,109,109,109,109,109,
|
|
521
|
-
109,109,109,109,109,109,109,109,
|
|
522
|
-
109,109,109,109,109,109,109,109,
|
|
523
|
-
109,109,109,109,109,109,109,109,
|
|
524
|
-
109,109,109,109,109,109,109,109,
|
|
525
|
-
109,109,109,109,109,109,109,109,
|
|
526
|
-
109,109,109,109,109,109,109,109,
|
|
527
|
-
109,109,109,109,109,109,109,109,
|
|
528
|
-
109,109,91,109,91,91,91,91,
|
|
529
|
-
91,91,91,91,92,92,92,92,
|
|
530
|
-
92,91,91,91,91,91,91,91,
|
|
531
|
-
91,91,91,91,91,91,91,91,
|
|
532
|
-
91,91,91,93,110,110,110,110,
|
|
533
|
-
110,110,110,110,110,110,110,110,
|
|
534
|
-
110,110,110,110,110,110,110,110,
|
|
535
|
-
110,110,110,110,110,110,110,110,
|
|
536
|
-
110,110,110,110,110,110,110,110,
|
|
537
|
-
110,110,110,110,110,110,110,110,
|
|
538
|
-
110,110,110,110,110,110,110,110,
|
|
539
|
-
110,110,110,110,110,110,110,110,
|
|
540
|
-
110,110,110,110,110,110,110,110,
|
|
541
|
-
110,110,110,110,110,110,110,110,
|
|
542
|
-
110,110,110,110,110,110,110,110,
|
|
543
|
-
110,110,110,110,110,110,110,110,
|
|
544
|
-
110,110,91,110,93,93,93,93,
|
|
545
|
-
93,110,110,110,110,110,110,110,
|
|
546
|
-
110,110,110,110,110,110,110,110,
|
|
547
|
-
110,110,110,93,110,94,94,109,
|
|
548
|
-
109,94,94,94,109,109,109,109,
|
|
549
|
-
94,94,109,94,94,94,94,94,
|
|
550
|
-
94,94,94,94,94,94,94,94,
|
|
551
|
-
94,94,94,109,94,94,94,94,
|
|
552
|
-
94,94,94,94,94,94,94,94,
|
|
553
|
-
94,94,94,94,94,94,94,94,
|
|
554
|
-
94,94,94,94,94,94,94,109,
|
|
555
|
-
109,109,109,94,94,94,94,94,
|
|
556
|
-
94,94,94,94,94,94,94,94,
|
|
557
|
-
94,94,94,94,94,94,94,94,
|
|
558
|
-
94,94,94,94,94,94,94,109,
|
|
559
|
-
109,109,94,109,112,95,114,113,
|
|
560
|
-
10,116,5,116,116,116,117,118,
|
|
561
|
-
115,116,116,116,116,116,116,116,
|
|
562
|
-
116,116,116,116,116,116,116,116,
|
|
563
|
-
116,8,116,119,10,8,116,116,
|
|
564
|
-
116,116,116,116,116,116,116,116,
|
|
565
|
-
116,116,116,116,116,116,116,116,
|
|
566
|
-
116,116,116,116,116,116,116,116,
|
|
567
|
-
116,116,116,116,116,116,116,116,
|
|
549
|
+
3,3,3,3,3,97,97,97,
|
|
550
|
+
97,97,116,98,98,98,98,98,
|
|
551
|
+
98,98,98,98,98,98,98,98,
|
|
552
|
+
98,98,98,98,98,98,98,98,
|
|
553
|
+
98,98,98,98,98,98,98,98,
|
|
554
|
+
98,98,116,116,116,116,116,116,
|
|
568
555
|
116,116,116,116,116,116,116,116,
|
|
569
556
|
116,116,116,116,116,116,116,116,
|
|
570
557
|
116,116,116,116,116,116,116,116,
|
|
571
|
-
116,116,116,116,116,8,116,115,
|
|
572
|
-
116,115,116,116,116,115,115,115,
|
|
573
558
|
116,116,116,116,116,116,116,116,
|
|
574
559
|
116,116,116,116,116,116,116,116,
|
|
575
|
-
120,116,115,115,115,116,116,116,
|
|
576
560
|
116,116,116,116,116,116,116,116,
|
|
577
561
|
116,116,116,116,116,116,116,116,
|
|
578
562
|
116,116,116,116,116,116,116,116,
|
|
579
563
|
116,116,116,116,116,116,116,116,
|
|
580
564
|
116,116,116,116,116,116,116,116,
|
|
581
565
|
116,116,116,116,116,116,116,116,
|
|
582
|
-
116,
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
566
|
+
116,98,116,98,98,98,98,98,
|
|
567
|
+
98,98,98,99,99,99,99,99,
|
|
568
|
+
98,98,98,98,98,98,98,98,
|
|
569
|
+
98,98,98,98,98,98,98,98,
|
|
570
|
+
98,98,100,117,117,117,117,117,
|
|
571
|
+
117,117,117,117,117,117,117,117,
|
|
572
|
+
117,117,117,117,117,117,117,117,
|
|
573
|
+
117,117,117,117,117,117,117,117,
|
|
574
|
+
117,117,117,117,117,117,117,117,
|
|
575
|
+
117,117,117,117,117,117,117,117,
|
|
576
|
+
117,117,117,117,117,117,117,117,
|
|
577
|
+
117,117,117,117,117,117,117,117,
|
|
578
|
+
117,117,117,117,117,117,117,117,
|
|
579
|
+
117,117,117,117,117,117,117,117,
|
|
580
|
+
117,117,117,117,117,117,117,117,
|
|
581
|
+
117,117,117,117,117,117,117,117,
|
|
582
|
+
117,98,117,100,100,100,100,100,
|
|
583
|
+
117,117,117,117,117,117,117,117,
|
|
584
|
+
117,117,117,117,117,117,117,117,
|
|
585
|
+
117,117,100,117,101,101,116,116,
|
|
586
|
+
101,101,101,116,116,116,116,101,
|
|
587
|
+
101,116,101,101,101,101,101,101,
|
|
588
|
+
101,101,101,101,101,101,101,101,
|
|
589
|
+
101,101,116,101,101,101,101,101,
|
|
590
|
+
101,101,101,101,101,101,101,101,
|
|
591
|
+
101,101,101,101,101,101,101,101,
|
|
592
|
+
101,101,101,101,101,101,116,116,
|
|
593
|
+
116,116,101,101,101,101,101,101,
|
|
594
|
+
101,101,101,101,101,101,101,101,
|
|
595
|
+
101,101,101,101,101,101,101,101,
|
|
596
|
+
101,101,101,101,101,101,116,116,
|
|
597
|
+
116,101,116,119,102,121,120,10,
|
|
598
|
+
123,5,123,123,123,124,125,122,
|
|
599
|
+
123,123,123,123,123,123,123,123,
|
|
600
|
+
123,123,123,123,123,123,123,123,
|
|
601
|
+
8,123,126,10,8,123,123,123,
|
|
602
|
+
123,123,123,123,123,123,123,123,
|
|
603
|
+
123,123,123,123,123,123,123,123,
|
|
604
|
+
123,123,123,123,123,123,123,123,
|
|
605
|
+
123,123,123,123,123,123,123,123,
|
|
606
|
+
123,123,123,123,123,123,123,123,
|
|
607
|
+
123,123,123,123,123,123,123,123,
|
|
608
|
+
123,123,123,123,123,123,123,123,
|
|
609
|
+
123,123,123,123,8,123,122,123,
|
|
610
|
+
122,123,123,123,122,122,122,123,
|
|
611
|
+
123,123,123,123,123,123,123,123,
|
|
612
|
+
123,123,123,123,123,123,123,127,
|
|
613
|
+
123,122,122,122,123,123,123,123,
|
|
614
|
+
123,123,123,123,123,123,123,123,
|
|
615
|
+
123,123,123,123,123,123,123,123,
|
|
616
|
+
123,123,123,123,123,123,123,123,
|
|
617
|
+
123,123,123,123,123,123,123,123,
|
|
618
|
+
123,123,123,123,123,123,123,123,
|
|
619
|
+
123,123,123,123,123,123,123,123,
|
|
620
|
+
123,123,123,123,123,123,123,123,
|
|
621
|
+
123,123,123,122,123,129,128,128,
|
|
594
622
|
128,128,128,128,128,128,128,128,
|
|
595
|
-
128,128,128,129,128,128,128,128,
|
|
596
|
-
128,128,128,129,128,128,128,128,
|
|
597
|
-
131,128,128,128,132,128,128,128,
|
|
598
623
|
128,128,128,128,128,128,128,128,
|
|
599
|
-
128,
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
624
|
+
128,129,128,131,130,130,130,130,
|
|
625
|
+
130,130,130,130,130,130,130,130,
|
|
626
|
+
130,130,130,130,130,130,130,131,
|
|
627
|
+
130,133,132,132,132,132,132,132,
|
|
628
|
+
132,132,132,132,132,132,132,132,
|
|
629
|
+
132,132,132,132,132,133,132,135,
|
|
630
|
+
135,134,134,134,134,135,134,134,
|
|
631
|
+
134,136,134,134,134,134,134,134,
|
|
632
|
+
134,134,134,134,134,134,134,134,
|
|
633
|
+
135,134,134,134,134,134,134,134,
|
|
634
|
+
135,134,134,134,134,137,134,134,
|
|
635
|
+
134,138,134,134,134,134,134,134,
|
|
636
|
+
134,134,134,134,134,134,134,134,
|
|
637
|
+
135,134,140,139,139,139,41,41,
|
|
638
|
+
41,41,41,41,41,41,41,41,
|
|
639
|
+
139,141,43,43,43,141,43,43,
|
|
640
|
+
43,43,43,43,43,43,43,141,
|
|
641
|
+
141,43,43,43,141,141,43,43,
|
|
642
|
+
43,43,43,43,43,43,43,43,
|
|
643
|
+
43,141,43,43,43,141,43,43,
|
|
644
|
+
43,43,43,43,43,43,43,43,
|
|
645
|
+
141,43,43,43,141,43,142,43,
|
|
646
|
+
43,43,43,43,43,43,43,43,
|
|
647
|
+
43,43,43,43,43,43,43,43,
|
|
648
|
+
43,43,43,43,43,43,43,43,
|
|
649
|
+
43,43,43,43,43,43,142,43,
|
|
650
|
+
143,143,143,143,143,143,143,143,
|
|
651
|
+
143,143,143,143,143,143,143,143,
|
|
652
|
+
143,143,143,143,143,143,143,143,
|
|
653
|
+
143,143,143,143,143,143,144,144,
|
|
654
|
+
144,144,144,144,144,144,144,144,
|
|
655
|
+
144,144,144,144,144,144,145,145,
|
|
656
|
+
145,145,145,48,48,48,48,48,
|
|
657
|
+
48,48,48,48,48,48,48,48,
|
|
658
|
+
48,48,48,48,48,48,48,48,
|
|
659
|
+
48,48,48,48,48,48,48,48,
|
|
660
|
+
48,48,48,48,48,48,48,48,
|
|
661
|
+
48,48,48,48,48,48,48,48,
|
|
662
|
+
48,48,146,48,147,48,146,146,
|
|
663
|
+
146,146,48,148,146,48,48,48,
|
|
664
|
+
48,48,48,48,48,48,48,48,
|
|
665
|
+
48,48,48,48,48,146,48,48,
|
|
666
|
+
48,48,48,48,48,48,48,48,
|
|
667
|
+
48,48,48,48,48,48,48,48,
|
|
668
|
+
48,48,48,48,48,48,48,48,
|
|
669
|
+
48,149,150,151,152,48,48,48,
|
|
670
|
+
48,48,48,48,48,48,48,48,
|
|
671
|
+
48,48,48,48,48,48,48,48,
|
|
672
|
+
48,48,48,48,48,48,48,48,
|
|
673
|
+
48,146,146,146,48,48,48,48,
|
|
674
|
+
48,48,48,48,48,48,48,48,
|
|
675
|
+
48,48,48,48,48,48,48,48,
|
|
676
|
+
48,48,48,48,48,48,48,48,
|
|
677
|
+
48,48,48,48,48,48,48,48,
|
|
678
|
+
48,48,48,48,48,48,48,48,
|
|
679
|
+
48,48,48,48,48,48,48,48,
|
|
680
|
+
48,48,48,48,48,48,48,48,
|
|
681
|
+
48,48,48,48,48,153,49,49,
|
|
623
682
|
49,49,49,49,49,49,49,49,
|
|
624
|
-
49,49,49,49,49,140,49,141,
|
|
625
|
-
49,140,140,140,140,49,142,140,
|
|
626
683
|
49,49,49,49,49,49,49,49,
|
|
627
684
|
49,49,49,49,49,49,49,49,
|
|
628
|
-
140,49,49,49,49,49,49,49,
|
|
629
685
|
49,49,49,49,49,49,49,49,
|
|
630
686
|
49,49,49,49,49,49,49,49,
|
|
631
|
-
49,49,49,49,143,144,145,146,
|
|
632
687
|
49,49,49,49,49,49,49,49,
|
|
633
688
|
49,49,49,49,49,49,49,49,
|
|
634
|
-
49,49,49,49,49,49,
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
50,50,50,50,50,50,50,50,
|
|
648
|
-
50,50,50,50,50,50,50,50,
|
|
649
|
-
50,50,50,50,50,50,50,50,
|
|
650
|
-
50,50,50,50,50,50,50,50,
|
|
651
|
-
50,50,50,50,50,50,50,50,
|
|
652
|
-
50,147,148,148,148,148,148,148,
|
|
653
|
-
148,148,148,148,148,148,148,148,
|
|
654
|
-
148,148,148,148,148,148,148,148,
|
|
655
|
-
148,148,148,148,148,148,148,148,
|
|
656
|
-
148,148,148,148,148,148,148,148,
|
|
657
|
-
148,148,148,148,148,148,148,148,
|
|
658
|
-
148,148,148,148,148,148,148,148,
|
|
659
|
-
148,148,148,148,148,148,148,148,
|
|
660
|
-
148,148,147,149,147,151,150,150,
|
|
661
|
-
150,150,150,150,150,150,150,150,
|
|
662
|
-
150,150,150,150,150,150,150,150,
|
|
663
|
-
150,150,150,150,150,150,150,150,
|
|
664
|
-
150,150,150,150,150,150,150,150,
|
|
665
|
-
150,150,150,150,150,150,150,150,
|
|
666
|
-
150,150,150,150,150,150,150,150,
|
|
667
|
-
150,150,150,150,152,150,54,154,
|
|
689
|
+
49,49,49,49,49,49,153,154,
|
|
690
|
+
154,154,154,154,154,154,154,154,
|
|
691
|
+
154,154,154,154,154,154,154,154,
|
|
692
|
+
154,154,154,154,154,154,154,154,
|
|
693
|
+
154,154,154,154,154,154,154,154,
|
|
694
|
+
154,154,154,154,154,154,154,154,
|
|
695
|
+
154,154,154,154,154,154,154,154,
|
|
696
|
+
154,154,154,154,154,154,154,154,
|
|
697
|
+
154,154,154,154,154,154,154,153,
|
|
698
|
+
155,153,157,156,156,156,156,156,
|
|
699
|
+
156,156,156,156,156,156,156,156,
|
|
700
|
+
156,156,156,156,156,156,156,156,
|
|
701
|
+
156,156,156,156,156,156,156,156,
|
|
668
702
|
156,156,156,156,156,156,156,156,
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
157,155,155,157,155,155,155,157,
|
|
673
|
-
155,155,155,157,157,157,155,155,
|
|
674
|
-
155,157,157,157,157,157,157,155,
|
|
675
|
-
157,155,155,155,155,155,157,155,
|
|
676
|
-
157,155,157,157,157,157,157,157,
|
|
677
|
-
157,155,159,159,159,159,159,159,
|
|
678
|
-
159,159,158,160,160,160,160,160,
|
|
679
|
-
160,160,160,158,161,161,161,161,
|
|
703
|
+
156,156,156,156,156,156,156,156,
|
|
704
|
+
156,156,156,156,156,156,156,156,
|
|
705
|
+
156,158,156,53,160,161,161,161,
|
|
680
706
|
161,161,161,161,161,161,161,161,
|
|
681
707
|
161,161,161,161,161,161,161,161,
|
|
682
708
|
161,161,161,161,161,161,161,161,
|
|
683
|
-
161,161,
|
|
709
|
+
161,161,161,162,162,162,162,162,
|
|
684
710
|
162,162,162,162,162,162,162,162,
|
|
685
|
-
162,162,163,163,163,163,163,
|
|
686
|
-
|
|
711
|
+
162,162,162,163,163,163,163,163,
|
|
712
|
+
58,58,58,58,58,58,58,58,
|
|
713
|
+
58,58,58,58,58,58,58,58,
|
|
714
|
+
58,58,58,58,58,58,58,58,
|
|
715
|
+
58,58,58,58,58,58,58,58,
|
|
716
|
+
58,58,58,58,58,58,58,58,
|
|
717
|
+
58,58,58,58,58,58,58,58,
|
|
718
|
+
58,58,58,58,58,58,58,58,
|
|
719
|
+
58,58,58,164,164,164,164,164,
|
|
720
|
+
164,164,164,58,58,58,58,58,
|
|
721
|
+
58,58,58,58,58,58,165,165,
|
|
722
|
+
58,58,58,165,58,58,58,58,
|
|
723
|
+
165,58,58,165,58,58,165,58,
|
|
724
|
+
58,58,165,58,58,58,165,165,
|
|
725
|
+
165,58,58,58,165,165,165,165,
|
|
726
|
+
165,165,58,165,58,58,58,58,
|
|
727
|
+
58,165,58,165,58,165,165,165,
|
|
728
|
+
165,165,165,165,58,58,58,58,
|
|
729
|
+
58,58,58,58,58,58,58,58,
|
|
730
|
+
58,58,58,58,58,58,58,58,
|
|
731
|
+
58,58,58,58,58,58,58,58,
|
|
732
|
+
58,58,58,58,58,58,58,58,
|
|
733
|
+
58,58,58,58,58,58,58,58,
|
|
734
|
+
58,58,58,58,58,58,58,58,
|
|
735
|
+
58,58,58,58,58,58,58,58,
|
|
736
|
+
58,58,58,58,58,166,59,59,
|
|
687
737
|
59,59,59,59,59,59,59,59,
|
|
688
738
|
59,59,59,59,59,59,59,59,
|
|
689
739
|
59,59,59,59,59,59,59,59,
|
|
690
740
|
59,59,59,59,59,59,59,59,
|
|
691
|
-
59,59,59,59,59,59,164,59,
|
|
692
|
-
59,59,164,164,164,164,59,59,
|
|
693
|
-
164,59,165,166,166,166,166,166,
|
|
694
|
-
166,166,167,167,59,59,59,59,
|
|
695
|
-
59,164,59,44,44,168,169,59,
|
|
696
|
-
59,44,169,59,59,44,59,170,
|
|
697
|
-
59,59,171,59,169,169,59,59,
|
|
698
|
-
59,169,169,59,44,164,164,164,
|
|
699
|
-
164,59,59,172,172,61,169,172,
|
|
700
|
-
172,59,169,59,59,59,59,59,
|
|
701
|
-
172,59,171,59,172,169,172,173,
|
|
702
|
-
172,169,174,59,44,164,164,164,
|
|
703
741
|
59,59,59,59,59,59,59,59,
|
|
704
742
|
59,59,59,59,59,59,59,59,
|
|
705
743
|
59,59,59,59,59,59,59,59,
|
|
706
|
-
59,59,59,59,59,59,
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
744
|
+
59,59,59,59,59,59,166,167,
|
|
745
|
+
167,167,167,167,167,167,167,167,
|
|
746
|
+
167,167,167,167,167,167,167,167,
|
|
747
|
+
167,167,167,167,167,167,167,167,
|
|
748
|
+
167,167,167,167,167,167,167,167,
|
|
749
|
+
167,167,167,167,167,167,167,167,
|
|
750
|
+
167,167,167,167,167,167,167,167,
|
|
751
|
+
167,167,167,167,167,167,167,167,
|
|
752
|
+
167,167,167,167,167,167,167,166,
|
|
753
|
+
169,169,169,169,169,169,169,169,
|
|
754
|
+
168,170,170,170,170,170,170,170,
|
|
755
|
+
170,168,171,171,171,171,171,171,
|
|
756
|
+
171,171,171,171,171,171,171,171,
|
|
757
|
+
171,171,171,171,171,171,171,171,
|
|
758
|
+
171,171,171,171,171,171,171,171,
|
|
759
|
+
172,172,172,172,172,172,172,172,
|
|
760
|
+
172,172,172,172,172,172,172,172,
|
|
761
|
+
173,173,173,173,173,61,61,61,
|
|
762
|
+
61,61,61,61,61,61,61,61,
|
|
763
|
+
61,61,61,61,61,61,61,61,
|
|
764
|
+
61,61,61,61,61,61,61,61,
|
|
765
|
+
61,61,61,61,61,61,61,61,
|
|
766
|
+
61,61,61,61,61,61,61,61,
|
|
767
|
+
61,61,61,61,174,61,61,61,
|
|
768
|
+
174,174,174,174,61,61,174,61,
|
|
769
|
+
175,176,176,176,176,176,176,176,
|
|
770
|
+
177,177,61,61,61,61,61,174,
|
|
771
|
+
61,43,43,178,179,61,61,43,
|
|
772
|
+
179,61,61,43,61,180,61,61,
|
|
773
|
+
181,61,179,179,61,61,61,179,
|
|
774
|
+
179,61,43,174,174,174,174,61,
|
|
775
|
+
61,182,182,63,179,182,182,61,
|
|
776
|
+
179,61,61,61,61,61,182,61,
|
|
777
|
+
181,61,182,179,182,183,182,179,
|
|
778
|
+
184,61,43,174,174,174,61,61,
|
|
779
|
+
61,61,61,61,61,61,61,61,
|
|
780
|
+
61,61,61,61,61,61,61,61,
|
|
781
|
+
61,61,61,61,61,61,61,61,
|
|
782
|
+
61,61,61,61,61,61,61,61,
|
|
783
|
+
61,61,61,61,61,61,61,61,
|
|
784
|
+
61,61,61,61,61,61,61,61,
|
|
785
|
+
61,61,61,61,61,61,61,61,
|
|
786
|
+
61,61,61,61,61,61,61,185,
|
|
787
|
+
62,62,62,62,62,62,62,62,
|
|
788
|
+
62,62,62,62,62,62,62,62,
|
|
789
|
+
62,62,62,62,62,62,62,62,
|
|
790
|
+
62,62,62,62,62,62,62,62,
|
|
791
|
+
62,62,62,62,62,62,62,62,
|
|
792
|
+
62,62,62,62,62,62,62,62,
|
|
793
|
+
62,62,62,62,62,62,62,62,
|
|
794
|
+
62,62,62,62,62,62,62,62,
|
|
795
|
+
185,186,186,186,186,186,186,186,
|
|
796
|
+
186,186,186,186,186,186,186,186,
|
|
797
|
+
186,186,186,186,186,186,186,186,
|
|
798
|
+
186,186,186,186,186,186,186,186,
|
|
799
|
+
186,186,186,186,186,186,186,186,
|
|
800
|
+
186,186,186,186,186,186,186,186,
|
|
801
|
+
186,186,186,186,186,186,186,186,
|
|
802
|
+
186,186,186,186,186,186,186,186,
|
|
803
|
+
186,185,188,188,188,188,188,188,
|
|
804
|
+
188,188,187,189,189,189,189,189,
|
|
805
|
+
189,189,189,187,191,191,191,191,
|
|
806
|
+
191,191,191,191,192,192,190,192,
|
|
807
|
+
192,192,192,192,192,192,192,192,
|
|
808
|
+
192,190,192,192,192,192,192,192,
|
|
809
|
+
192,192,192,192,190,192,192,192,
|
|
810
|
+
192,192,192,192,192,192,192,190,
|
|
811
|
+
194,64,196,195,64,198,69,69,
|
|
812
|
+
69,69,69,69,69,69,69,69,
|
|
813
|
+
69,69,69,69,69,69,69,69,
|
|
814
|
+
69,69,69,69,69,69,69,69,
|
|
815
|
+
69,69,69,69,69,199,69,201,
|
|
816
|
+
200,69,72,69,203,203,203,203,
|
|
817
|
+
203,203,203,203,203,203,202,202,
|
|
818
|
+
202,202,202,202,202,203,203,203,
|
|
819
|
+
203,203,203,202,202,202,202,202,
|
|
820
|
+
202,202,202,202,202,202,202,202,
|
|
821
|
+
202,202,202,202,202,202,202,202,
|
|
822
|
+
202,202,202,202,202,203,203,203,
|
|
823
|
+
203,203,203,202,90,90,90,90,
|
|
824
|
+
90,90,90,90,90,90,202,202,
|
|
825
|
+
202,202,202,202,202,90,90,90,
|
|
826
|
+
90,90,90,202,202,202,202,202,
|
|
827
|
+
202,202,202,202,202,202,202,202,
|
|
828
|
+
202,202,202,202,202,202,202,202,
|
|
829
|
+
202,202,202,202,202,90,90,90,
|
|
830
|
+
90,90,90,202,205,204,207,206,
|
|
831
|
+
206,206,206,206,208,206,206,209,
|
|
832
|
+
209,209,209,209,209,209,209,209,
|
|
833
|
+
209,206,206,210,206,93,92,92,
|
|
834
|
+
92,92,92,211,92,92,211,211,
|
|
835
|
+
211,211,211,211,211,211,211,211,
|
|
836
|
+
92,95,95,95,95,95,95,95,
|
|
837
|
+
95,95,95,211,94,211,211,211,
|
|
838
|
+
211,211,211,95,95,95,95,95,
|
|
839
|
+
95,95,95,95,95,211,211,96,
|
|
840
|
+
96,96,96,96,96,96,96,96,
|
|
841
|
+
96,96,211,96,96,211,211,211,
|
|
842
|
+
211,211,211,211,211,211,211,96,
|
|
843
|
+
96,96,211,93,96,0
|
|
756
844
|
]
|
|
757
845
|
|
|
758
846
|
class << self
|
|
@@ -760,31 +848,33 @@ class << self
|
|
|
760
848
|
private :_re_scanner_trans_targs, :_re_scanner_trans_targs=
|
|
761
849
|
end
|
|
762
850
|
self._re_scanner_trans_targs = [
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
64,65,
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
851
|
+
76,77,1,2,76,4,76,6,
|
|
852
|
+
76,8,76,76,10,16,11,76,
|
|
853
|
+
12,13,14,15,17,18,19,20,
|
|
854
|
+
21,23,29,24,76,25,26,27,
|
|
855
|
+
28,30,31,32,33,34,76,36,
|
|
856
|
+
76,37,39,0,40,41,92,93,
|
|
857
|
+
93,42,93,93,93,45,46,93,
|
|
858
|
+
93,100,100,47,106,106,49,52,
|
|
859
|
+
106,116,106,118,55,106,119,106,
|
|
860
|
+
121,58,61,59,60,106,62,63,
|
|
861
|
+
64,65,66,67,106,123,124,106,
|
|
862
|
+
70,71,125,126,72,73,126,74,
|
|
863
|
+
75,3,78,79,80,81,82,76,
|
|
864
|
+
83,76,86,87,76,88,76,89,
|
|
865
|
+
76,76,90,76,76,76,76,76,
|
|
866
|
+
76,84,76,85,5,76,7,76,
|
|
867
|
+
76,76,76,76,76,76,76,76,
|
|
868
|
+
76,9,22,76,35,91,38,94,
|
|
869
|
+
95,96,93,97,98,99,93,93,
|
|
870
|
+
93,93,43,93,93,44,93,93,
|
|
871
|
+
93,101,102,103,104,100,100,48,
|
|
872
|
+
100,105,100,107,108,109,106,110,
|
|
873
|
+
112,115,51,106,54,106,106,57,
|
|
874
|
+
68,106,50,106,111,106,106,113,
|
|
875
|
+
114,106,117,106,53,106,120,122,
|
|
876
|
+
106,56,106,106,106,69,126,127,
|
|
877
|
+
128,129,130,126
|
|
788
878
|
]
|
|
789
879
|
|
|
790
880
|
class << self
|
|
@@ -793,30 +883,32 @@ class << self
|
|
|
793
883
|
end
|
|
794
884
|
self._re_scanner_trans_actions = [
|
|
795
885
|
1,2,0,0,3,0,4,0,
|
|
796
|
-
5,0,6,7,
|
|
797
|
-
9,0,0,0,0,0,0,0,
|
|
798
|
-
0,0,0,0,0,10,0,0,
|
|
799
|
-
0,0,0,0,0,0,0,11,
|
|
800
|
-
0,12,0,0,0,0,0,14,
|
|
801
|
-
15,16,0,17,18,19,0,0,
|
|
802
|
-
20,21,22,23,0,0,25,0,
|
|
803
|
-
26,0,0,27,0,28,0,0,
|
|
804
|
-
0,0,0,29,0,0,0,0,
|
|
805
|
-
0,0,30,0,31,0,0,32,
|
|
886
|
+
5,0,6,7,0,0,0,8,
|
|
806
887
|
0,0,0,0,0,0,0,0,
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
0,0,
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
0,
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
888
|
+
0,0,0,0,9,0,0,0,
|
|
889
|
+
0,0,0,0,0,0,10,0,
|
|
890
|
+
11,0,0,0,0,0,13,14,
|
|
891
|
+
15,0,16,17,18,0,0,19,
|
|
892
|
+
20,21,22,0,23,24,0,0,
|
|
893
|
+
26,0,27,0,0,28,0,29,
|
|
894
|
+
0,0,0,0,0,30,0,0,
|
|
895
|
+
0,0,0,0,31,0,0,32,
|
|
896
|
+
0,0,33,34,0,0,35,0,
|
|
897
|
+
0,0,0,0,0,0,0,38,
|
|
898
|
+
39,40,0,0,41,0,42,33,
|
|
899
|
+
43,44,33,45,46,47,48,49,
|
|
900
|
+
50,33,51,0,0,52,0,53,
|
|
901
|
+
54,55,56,57,58,59,60,61,
|
|
902
|
+
62,0,0,63,0,65,0,0,
|
|
903
|
+
33,33,66,0,33,67,68,69,
|
|
904
|
+
70,71,0,72,73,0,74,75,
|
|
905
|
+
76,0,33,33,0,77,78,0,
|
|
906
|
+
79,0,80,0,33,33,81,0,
|
|
907
|
+
0,0,0,82,0,83,84,0,
|
|
908
|
+
0,85,0,86,0,87,88,0,
|
|
909
|
+
0,89,33,90,0,91,33,0,
|
|
910
|
+
92,0,93,94,95,0,96,33,
|
|
911
|
+
33,33,33,97
|
|
820
912
|
]
|
|
821
913
|
|
|
822
914
|
class << self
|
|
@@ -832,13 +924,15 @@ self._re_scanner_to_state_actions = [
|
|
|
832
924
|
0,0,0,0,0,0,0,0,
|
|
833
925
|
0,0,0,0,0,0,0,0,
|
|
834
926
|
0,0,0,0,0,0,0,0,
|
|
835
|
-
0,0,0,0,0,0,0,33,
|
|
836
927
|
0,0,0,0,0,0,0,0,
|
|
837
|
-
0,0,0,0,0,0,0,
|
|
838
|
-
64,64,0,0,0,0,0,0,
|
|
839
|
-
64,0,0,64,0,0,0,0,
|
|
928
|
+
0,0,0,0,36,0,0,0,
|
|
840
929
|
0,0,0,0,0,0,0,0,
|
|
841
|
-
0,
|
|
930
|
+
0,0,0,64,64,64,0,0,
|
|
931
|
+
0,0,0,0,64,0,0,0,
|
|
932
|
+
0,0,64,0,0,0,0,0,
|
|
933
|
+
0,0,0,0,0,0,0,0,
|
|
934
|
+
0,0,0,0,0,0,64,0,
|
|
935
|
+
0,0,0
|
|
842
936
|
]
|
|
843
937
|
|
|
844
938
|
class << self
|
|
@@ -854,13 +948,15 @@ self._re_scanner_from_state_actions = [
|
|
|
854
948
|
0,0,0,0,0,0,0,0,
|
|
855
949
|
0,0,0,0,0,0,0,0,
|
|
856
950
|
0,0,0,0,0,0,0,0,
|
|
857
|
-
0,0,0,0,0,0,0,34,
|
|
858
951
|
0,0,0,0,0,0,0,0,
|
|
859
|
-
0,0,0,0,0,0,0,
|
|
860
|
-
|
|
861
|
-
|
|
952
|
+
0,0,0,0,37,0,0,0,
|
|
953
|
+
0,0,0,0,0,0,0,0,
|
|
954
|
+
0,0,0,37,37,37,0,0,
|
|
955
|
+
0,0,0,0,37,0,0,0,
|
|
956
|
+
0,0,37,0,0,0,0,0,
|
|
862
957
|
0,0,0,0,0,0,0,0,
|
|
863
|
-
0,
|
|
958
|
+
0,0,0,0,0,0,37,0,
|
|
959
|
+
0,0,0
|
|
864
960
|
]
|
|
865
961
|
|
|
866
962
|
class << self
|
|
@@ -872,17 +968,19 @@ self._re_scanner_eof_actions = [
|
|
|
872
968
|
0,0,0,0,0,0,0,0,
|
|
873
969
|
0,0,0,0,0,0,0,0,
|
|
874
970
|
0,0,0,0,0,0,0,0,
|
|
875
|
-
0,0,0,0,0,0,
|
|
876
|
-
|
|
877
|
-
0,
|
|
878
|
-
|
|
879
|
-
|
|
971
|
+
0,0,0,0,0,0,12,12,
|
|
972
|
+
12,12,0,0,0,0,0,0,
|
|
973
|
+
0,0,0,25,25,0,25,25,
|
|
974
|
+
0,25,25,25,25,25,25,25,
|
|
975
|
+
25,25,25,25,25,0,0,0,
|
|
976
|
+
0,0,0,0,0,0,0,0,
|
|
880
977
|
0,0,0,0,0,0,0,0,
|
|
978
|
+
0,0,0,0,0,25,0,0,
|
|
881
979
|
0,0,0,0,0,0,0,0,
|
|
882
|
-
0,
|
|
883
|
-
0,0,0,24,0,0,0,0,
|
|
980
|
+
0,0,25,0,0,0,0,0,
|
|
884
981
|
0,0,0,0,0,0,0,0,
|
|
885
|
-
0,0,0,0,0,0
|
|
982
|
+
0,0,0,0,0,0,0,0,
|
|
983
|
+
0,0,0
|
|
886
984
|
]
|
|
887
985
|
|
|
888
986
|
class << self
|
|
@@ -891,30 +989,32 @@ class << self
|
|
|
891
989
|
end
|
|
892
990
|
self._re_scanner_eof_trans = [
|
|
893
991
|
0,1,1,1,5,5,5,5,
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
0,0,
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
0,0,0,
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
191,
|
|
992
|
+
5,12,12,12,12,12,12,12,
|
|
993
|
+
12,12,12,12,12,12,12,12,
|
|
994
|
+
12,12,12,12,12,12,12,12,
|
|
995
|
+
12,12,12,39,39,39,0,0,
|
|
996
|
+
0,0,48,48,51,53,53,58,
|
|
997
|
+
58,61,61,0,0,67,0,0,
|
|
998
|
+
72,0,0,0,0,0,0,0,
|
|
999
|
+
0,0,0,0,0,88,88,88,
|
|
1000
|
+
92,92,92,92,0,117,117,118,
|
|
1001
|
+
118,117,119,121,123,123,129,131,
|
|
1002
|
+
133,135,140,0,0,0,154,154,
|
|
1003
|
+
154,154,157,160,0,167,167,167,
|
|
1004
|
+
169,169,0,186,186,186,188,188,
|
|
1005
|
+
191,191,191,191,194,194,194,198,
|
|
1006
|
+
198,198,198,203,203,205,0,212,
|
|
1007
|
+
212,212,212
|
|
908
1008
|
]
|
|
909
1009
|
|
|
910
1010
|
class << self
|
|
911
1011
|
attr_accessor :re_scanner_start
|
|
912
1012
|
end
|
|
913
|
-
self.re_scanner_start =
|
|
1013
|
+
self.re_scanner_start = 76;
|
|
914
1014
|
class << self
|
|
915
1015
|
attr_accessor :re_scanner_first_final
|
|
916
1016
|
end
|
|
917
|
-
self.re_scanner_first_final =
|
|
1017
|
+
self.re_scanner_first_final = 76;
|
|
918
1018
|
class << self
|
|
919
1019
|
attr_accessor :re_scanner_error
|
|
920
1020
|
end
|
|
@@ -923,31 +1023,31 @@ self.re_scanner_error = 0;
|
|
|
923
1023
|
class << self
|
|
924
1024
|
attr_accessor :re_scanner_en_char_type
|
|
925
1025
|
end
|
|
926
|
-
self.re_scanner_en_char_type =
|
|
1026
|
+
self.re_scanner_en_char_type = 91;
|
|
927
1027
|
class << self
|
|
928
1028
|
attr_accessor :re_scanner_en_unicode_property
|
|
929
1029
|
end
|
|
930
|
-
self.re_scanner_en_unicode_property =
|
|
1030
|
+
self.re_scanner_en_unicode_property = 92;
|
|
931
1031
|
class << self
|
|
932
1032
|
attr_accessor :re_scanner_en_character_set
|
|
933
1033
|
end
|
|
934
|
-
self.re_scanner_en_character_set =
|
|
1034
|
+
self.re_scanner_en_character_set = 93;
|
|
935
1035
|
class << self
|
|
936
1036
|
attr_accessor :re_scanner_en_set_escape_sequence
|
|
937
1037
|
end
|
|
938
|
-
self.re_scanner_en_set_escape_sequence =
|
|
1038
|
+
self.re_scanner_en_set_escape_sequence = 100;
|
|
939
1039
|
class << self
|
|
940
1040
|
attr_accessor :re_scanner_en_escape_sequence
|
|
941
1041
|
end
|
|
942
|
-
self.re_scanner_en_escape_sequence =
|
|
1042
|
+
self.re_scanner_en_escape_sequence = 106;
|
|
943
1043
|
class << self
|
|
944
1044
|
attr_accessor :re_scanner_en_conditional_expression
|
|
945
1045
|
end
|
|
946
|
-
self.re_scanner_en_conditional_expression =
|
|
1046
|
+
self.re_scanner_en_conditional_expression = 126;
|
|
947
1047
|
class << self
|
|
948
1048
|
attr_accessor :re_scanner_en_main
|
|
949
1049
|
end
|
|
950
|
-
self.re_scanner_en_main =
|
|
1050
|
+
self.re_scanner_en_main = 76;
|
|
951
1051
|
|
|
952
1052
|
begin
|
|
953
1053
|
p ||= 0
|
|
@@ -981,7 +1081,7 @@ begin
|
|
|
981
1081
|
end
|
|
982
1082
|
if _goto_level <= _resume
|
|
983
1083
|
case _re_scanner_from_state_actions[cs]
|
|
984
|
-
when
|
|
1084
|
+
when 37
|
|
985
1085
|
begin
|
|
986
1086
|
ts = p
|
|
987
1087
|
end
|
|
@@ -990,10 +1090,10 @@ ts = p
|
|
|
990
1090
|
_inds = _re_scanner_index_offsets[cs]
|
|
991
1091
|
_slen = _re_scanner_key_spans[cs]
|
|
992
1092
|
_wide = data[p].ord
|
|
993
|
-
_trans = if (
|
|
1093
|
+
_trans = if ( _slen > 0 &&
|
|
994
1094
|
_re_scanner_trans_keys[_keys] <= _wide &&
|
|
995
1095
|
_wide <= _re_scanner_trans_keys[_keys + 1]
|
|
996
|
-
)
|
|
1096
|
+
)
|
|
997
1097
|
_re_scanner_indicies[ _inds + _wide - _re_scanner_trans_keys[_keys] ]
|
|
998
1098
|
else
|
|
999
1099
|
_re_scanner_indicies[ _inds + _slen ]
|
|
@@ -1003,28 +1103,28 @@ ts = p
|
|
|
1003
1103
|
cs = _re_scanner_trans_targs[_trans]
|
|
1004
1104
|
if _re_scanner_trans_actions[_trans] != 0
|
|
1005
1105
|
case _re_scanner_trans_actions[_trans]
|
|
1006
|
-
when
|
|
1106
|
+
when 39
|
|
1007
1107
|
begin
|
|
1008
1108
|
self.group_depth = group_depth + 1 end
|
|
1009
|
-
when
|
|
1109
|
+
when 33
|
|
1010
1110
|
begin
|
|
1011
1111
|
te = p+1
|
|
1012
1112
|
end
|
|
1013
|
-
when 65
|
|
1113
|
+
when 65
|
|
1014
1114
|
begin
|
|
1015
1115
|
te = p+1
|
|
1016
1116
|
begin
|
|
1017
1117
|
case text = copy(data, ts-1,te)
|
|
1018
|
-
when '\d'; emit(:type, :digit,
|
|
1019
|
-
when '\D'; emit(:type, :nondigit,
|
|
1020
|
-
when '\h'; emit(:type, :hex,
|
|
1021
|
-
when '\H'; emit(:type, :nonhex,
|
|
1022
|
-
when '\s'; emit(:type, :space,
|
|
1023
|
-
when '\S'; emit(:type, :nonspace,
|
|
1024
|
-
when '\w'; emit(:type, :word,
|
|
1025
|
-
when '\W'; emit(:type, :nonword,
|
|
1026
|
-
when '\R'; emit(:type, :linebreak,
|
|
1027
|
-
when '\X'; emit(:type, :xgrapheme,
|
|
1118
|
+
when '\d'; emit(:type, :digit, text)
|
|
1119
|
+
when '\D'; emit(:type, :nondigit, text)
|
|
1120
|
+
when '\h'; emit(:type, :hex, text)
|
|
1121
|
+
when '\H'; emit(:type, :nonhex, text)
|
|
1122
|
+
when '\s'; emit(:type, :space, text)
|
|
1123
|
+
when '\S'; emit(:type, :nonspace, text)
|
|
1124
|
+
when '\w'; emit(:type, :word, text)
|
|
1125
|
+
when '\W'; emit(:type, :nonword, text)
|
|
1126
|
+
when '\R'; emit(:type, :linebreak, text)
|
|
1127
|
+
when '\X'; emit(:type, :xgrapheme, text)
|
|
1028
1128
|
end
|
|
1029
1129
|
begin
|
|
1030
1130
|
top -= 1
|
|
@@ -1035,7 +1135,7 @@ te = p+1
|
|
|
1035
1135
|
|
|
1036
1136
|
end
|
|
1037
1137
|
end
|
|
1038
|
-
when
|
|
1138
|
+
when 13
|
|
1039
1139
|
begin
|
|
1040
1140
|
te = p+1
|
|
1041
1141
|
begin
|
|
@@ -1058,15 +1158,15 @@ te = p+1
|
|
|
1058
1158
|
|
|
1059
1159
|
end
|
|
1060
1160
|
end
|
|
1061
|
-
when
|
|
1161
|
+
when 17
|
|
1062
1162
|
begin
|
|
1063
1163
|
te = p+1
|
|
1064
|
-
begin
|
|
1164
|
+
begin # special case, emits two tokens
|
|
1065
1165
|
emit(:literal, :literal, '-')
|
|
1066
1166
|
emit(:set, :intersection, '&&')
|
|
1067
1167
|
end
|
|
1068
1168
|
end
|
|
1069
|
-
when 70
|
|
1169
|
+
when 70
|
|
1070
1170
|
begin
|
|
1071
1171
|
te = p+1
|
|
1072
1172
|
begin
|
|
@@ -1077,35 +1177,35 @@ te = p+1
|
|
|
1077
1177
|
end
|
|
1078
1178
|
end
|
|
1079
1179
|
end
|
|
1080
|
-
when 72
|
|
1180
|
+
when 72
|
|
1081
1181
|
begin
|
|
1082
1182
|
te = p+1
|
|
1083
1183
|
begin
|
|
1084
1184
|
emit(:set, :intersection, '&&')
|
|
1085
1185
|
end
|
|
1086
1186
|
end
|
|
1087
|
-
when 68
|
|
1187
|
+
when 68
|
|
1088
1188
|
begin
|
|
1089
1189
|
te = p+1
|
|
1090
1190
|
begin
|
|
1091
1191
|
begin
|
|
1092
1192
|
stack[top] = cs
|
|
1093
1193
|
top+= 1
|
|
1094
|
-
cs =
|
|
1194
|
+
cs = 100
|
|
1095
1195
|
_goto_level = _again
|
|
1096
1196
|
next
|
|
1097
1197
|
end
|
|
1098
1198
|
|
|
1099
1199
|
end
|
|
1100
1200
|
end
|
|
1101
|
-
when 66
|
|
1201
|
+
when 66
|
|
1102
1202
|
begin
|
|
1103
1203
|
te = p+1
|
|
1104
1204
|
begin
|
|
1105
1205
|
emit(:literal, :literal, copy(data, ts, te))
|
|
1106
1206
|
end
|
|
1107
1207
|
end
|
|
1108
|
-
when
|
|
1208
|
+
when 15
|
|
1109
1209
|
begin
|
|
1110
1210
|
te = p+1
|
|
1111
1211
|
begin
|
|
@@ -1113,7 +1213,7 @@ te = p+1
|
|
|
1113
1213
|
emit(:literal, :literal, text)
|
|
1114
1214
|
end
|
|
1115
1215
|
end
|
|
1116
|
-
when 73
|
|
1216
|
+
when 73
|
|
1117
1217
|
begin
|
|
1118
1218
|
te = p
|
|
1119
1219
|
p = p - 1; begin
|
|
@@ -1126,7 +1226,7 @@ p = p - 1; begin
|
|
|
1126
1226
|
end
|
|
1127
1227
|
end
|
|
1128
1228
|
end
|
|
1129
|
-
when 76
|
|
1229
|
+
when 76
|
|
1130
1230
|
begin
|
|
1131
1231
|
te = p
|
|
1132
1232
|
p = p - 1; begin
|
|
@@ -1134,14 +1234,14 @@ p = p - 1; begin
|
|
|
1134
1234
|
begin
|
|
1135
1235
|
stack[top] = cs
|
|
1136
1236
|
top+= 1
|
|
1137
|
-
cs =
|
|
1237
|
+
cs = 93
|
|
1138
1238
|
_goto_level = _again
|
|
1139
1239
|
next
|
|
1140
1240
|
end
|
|
1141
1241
|
|
|
1142
1242
|
end
|
|
1143
1243
|
end
|
|
1144
|
-
when 71
|
|
1244
|
+
when 71
|
|
1145
1245
|
begin
|
|
1146
1246
|
te = p
|
|
1147
1247
|
p = p - 1; begin
|
|
@@ -1149,7 +1249,7 @@ p = p - 1; begin
|
|
|
1149
1249
|
emit(:literal, :literal, text)
|
|
1150
1250
|
end
|
|
1151
1251
|
end
|
|
1152
|
-
when
|
|
1252
|
+
when 16
|
|
1153
1253
|
begin
|
|
1154
1254
|
begin p = ((te))-1; end
|
|
1155
1255
|
begin
|
|
@@ -1162,7 +1262,7 @@ p = p - 1; begin
|
|
|
1162
1262
|
end
|
|
1163
1263
|
end
|
|
1164
1264
|
end
|
|
1165
|
-
when
|
|
1265
|
+
when 19
|
|
1166
1266
|
begin
|
|
1167
1267
|
begin p = ((te))-1; end
|
|
1168
1268
|
begin
|
|
@@ -1170,14 +1270,14 @@ p = p - 1; begin
|
|
|
1170
1270
|
begin
|
|
1171
1271
|
stack[top] = cs
|
|
1172
1272
|
top+= 1
|
|
1173
|
-
cs =
|
|
1273
|
+
cs = 93
|
|
1174
1274
|
_goto_level = _again
|
|
1175
1275
|
next
|
|
1176
1276
|
end
|
|
1177
1277
|
|
|
1178
1278
|
end
|
|
1179
1279
|
end
|
|
1180
|
-
when
|
|
1280
|
+
when 14
|
|
1181
1281
|
begin
|
|
1182
1282
|
begin p = ((te))-1; end
|
|
1183
1283
|
begin
|
|
@@ -1185,7 +1285,7 @@ p = p - 1; begin
|
|
|
1185
1285
|
emit(:literal, :literal, text)
|
|
1186
1286
|
end
|
|
1187
1287
|
end
|
|
1188
|
-
when 80
|
|
1288
|
+
when 80
|
|
1189
1289
|
begin
|
|
1190
1290
|
te = p+1
|
|
1191
1291
|
begin
|
|
@@ -1199,23 +1299,23 @@ te = p+1
|
|
|
1199
1299
|
|
|
1200
1300
|
end
|
|
1201
1301
|
end
|
|
1202
|
-
when
|
|
1302
|
+
when 77
|
|
1203
1303
|
begin
|
|
1204
1304
|
te = p+1
|
|
1205
1305
|
begin
|
|
1206
1306
|
p = p - 1;
|
|
1207
|
-
cs =
|
|
1307
|
+
cs = 93;
|
|
1208
1308
|
begin
|
|
1209
1309
|
stack[top] = cs
|
|
1210
1310
|
top+= 1
|
|
1211
|
-
cs =
|
|
1311
|
+
cs = 106
|
|
1212
1312
|
_goto_level = _again
|
|
1213
1313
|
next
|
|
1214
1314
|
end
|
|
1215
1315
|
|
|
1216
1316
|
end
|
|
1217
1317
|
end
|
|
1218
|
-
when
|
|
1318
|
+
when 22
|
|
1219
1319
|
begin
|
|
1220
1320
|
te = p+1
|
|
1221
1321
|
begin
|
|
@@ -1229,7 +1329,7 @@ te = p+1
|
|
|
1229
1329
|
|
|
1230
1330
|
end
|
|
1231
1331
|
end
|
|
1232
|
-
when 79
|
|
1332
|
+
when 79
|
|
1233
1333
|
begin
|
|
1234
1334
|
te = p
|
|
1235
1335
|
p = p - 1; begin
|
|
@@ -1243,12 +1343,25 @@ p = p - 1; begin
|
|
|
1243
1343
|
|
|
1244
1344
|
end
|
|
1245
1345
|
end
|
|
1246
|
-
when
|
|
1346
|
+
when 78
|
|
1247
1347
|
begin
|
|
1248
|
-
te = p
|
|
1348
|
+
te = p
|
|
1349
|
+
p = p - 1; begin
|
|
1350
|
+
emit(:escape, :literal, copy(data, ts-1,te))
|
|
1351
|
+
begin
|
|
1352
|
+
top -= 1
|
|
1353
|
+
cs = stack[top]
|
|
1354
|
+
_goto_level = _again
|
|
1355
|
+
next
|
|
1356
|
+
end
|
|
1357
|
+
|
|
1358
|
+
end
|
|
1359
|
+
end
|
|
1360
|
+
when 21
|
|
1361
|
+
begin
|
|
1362
|
+
begin p = ((te))-1; end
|
|
1249
1363
|
begin
|
|
1250
|
-
|
|
1251
|
-
emit(:backref, :number, text)
|
|
1364
|
+
emit(:escape, :literal, copy(data, ts-1,te))
|
|
1252
1365
|
begin
|
|
1253
1366
|
top -= 1
|
|
1254
1367
|
cs = stack[top]
|
|
@@ -1258,7 +1371,7 @@ te = p+1
|
|
|
1258
1371
|
|
|
1259
1372
|
end
|
|
1260
1373
|
end
|
|
1261
|
-
when
|
|
1374
|
+
when 87
|
|
1262
1375
|
begin
|
|
1263
1376
|
te = p+1
|
|
1264
1377
|
begin
|
|
@@ -1272,24 +1385,24 @@ te = p+1
|
|
|
1272
1385
|
|
|
1273
1386
|
end
|
|
1274
1387
|
end
|
|
1275
|
-
when 81
|
|
1388
|
+
when 81
|
|
1276
1389
|
begin
|
|
1277
1390
|
te = p+1
|
|
1278
1391
|
begin
|
|
1279
1392
|
case text = copy(data, ts-1,te)
|
|
1280
|
-
when '\.';
|
|
1281
|
-
when '\|';
|
|
1282
|
-
when '\^';
|
|
1283
|
-
when '\$';
|
|
1284
|
-
when '\?';
|
|
1285
|
-
when '\*';
|
|
1286
|
-
when '\+';
|
|
1287
|
-
when '\(';
|
|
1288
|
-
when '\)';
|
|
1289
|
-
when '\{';
|
|
1290
|
-
when '\}';
|
|
1291
|
-
when '\[';
|
|
1292
|
-
when '\]';
|
|
1393
|
+
when '\.'; emit(:escape, :dot, text)
|
|
1394
|
+
when '\|'; emit(:escape, :alternation, text)
|
|
1395
|
+
when '\^'; emit(:escape, :bol, text)
|
|
1396
|
+
when '\$'; emit(:escape, :eol, text)
|
|
1397
|
+
when '\?'; emit(:escape, :zero_or_one, text)
|
|
1398
|
+
when '\*'; emit(:escape, :zero_or_more, text)
|
|
1399
|
+
when '\+'; emit(:escape, :one_or_more, text)
|
|
1400
|
+
when '\('; emit(:escape, :group_open, text)
|
|
1401
|
+
when '\)'; emit(:escape, :group_close, text)
|
|
1402
|
+
when '\{'; emit(:escape, :interval_open, text)
|
|
1403
|
+
when '\}'; emit(:escape, :interval_close, text)
|
|
1404
|
+
when '\['; emit(:escape, :set_open, text)
|
|
1405
|
+
when '\]'; emit(:escape, :set_close, text)
|
|
1293
1406
|
when "\\\\";
|
|
1294
1407
|
emit(:escape, :backslash, text)
|
|
1295
1408
|
end
|
|
@@ -1302,21 +1415,21 @@ te = p+1
|
|
|
1302
1415
|
|
|
1303
1416
|
end
|
|
1304
1417
|
end
|
|
1305
|
-
when
|
|
1418
|
+
when 84
|
|
1306
1419
|
begin
|
|
1307
1420
|
te = p+1
|
|
1308
1421
|
begin
|
|
1309
1422
|
# \b is emitted as backspace only when inside a character set, otherwise
|
|
1310
1423
|
# it is a word boundary anchor. A syntax might "normalize" it if needed.
|
|
1311
1424
|
case text = copy(data, ts-1,te)
|
|
1312
|
-
when '\a'; emit(:escape, :bell,
|
|
1313
|
-
when '\b'; emit(:escape, :backspace,
|
|
1314
|
-
when '\e'; emit(:escape, :escape,
|
|
1315
|
-
when '\f'; emit(:escape, :form_feed,
|
|
1316
|
-
when '\n'; emit(:escape, :newline,
|
|
1317
|
-
when '\r'; emit(:escape, :carriage,
|
|
1318
|
-
when '\t'; emit(:escape, :tab,
|
|
1319
|
-
when '\v'; emit(:escape, :vertical_tab,
|
|
1425
|
+
when '\a'; emit(:escape, :bell, text)
|
|
1426
|
+
when '\b'; emit(:escape, :backspace, text)
|
|
1427
|
+
when '\e'; emit(:escape, :escape, text)
|
|
1428
|
+
when '\f'; emit(:escape, :form_feed, text)
|
|
1429
|
+
when '\n'; emit(:escape, :newline, text)
|
|
1430
|
+
when '\r'; emit(:escape, :carriage, text)
|
|
1431
|
+
when '\t'; emit(:escape, :tab, text)
|
|
1432
|
+
when '\v'; emit(:escape, :vertical_tab, text)
|
|
1320
1433
|
end
|
|
1321
1434
|
begin
|
|
1322
1435
|
top -= 1
|
|
@@ -1327,7 +1440,7 @@ te = p+1
|
|
|
1327
1440
|
|
|
1328
1441
|
end
|
|
1329
1442
|
end
|
|
1330
|
-
when
|
|
1443
|
+
when 30
|
|
1331
1444
|
begin
|
|
1332
1445
|
te = p+1
|
|
1333
1446
|
begin
|
|
@@ -1335,7 +1448,7 @@ te = p+1
|
|
|
1335
1448
|
if text[2] == '{'
|
|
1336
1449
|
emit(:escape, :codepoint_list, text)
|
|
1337
1450
|
else
|
|
1338
|
-
emit(:escape, :codepoint,
|
|
1451
|
+
emit(:escape, :codepoint, text)
|
|
1339
1452
|
end
|
|
1340
1453
|
begin
|
|
1341
1454
|
top -= 1
|
|
@@ -1346,7 +1459,7 @@ te = p+1
|
|
|
1346
1459
|
|
|
1347
1460
|
end
|
|
1348
1461
|
end
|
|
1349
|
-
when
|
|
1462
|
+
when 94
|
|
1350
1463
|
begin
|
|
1351
1464
|
te = p+1
|
|
1352
1465
|
begin
|
|
@@ -1360,7 +1473,7 @@ te = p+1
|
|
|
1360
1473
|
|
|
1361
1474
|
end
|
|
1362
1475
|
end
|
|
1363
|
-
when
|
|
1476
|
+
when 26
|
|
1364
1477
|
begin
|
|
1365
1478
|
te = p+1
|
|
1366
1479
|
begin
|
|
@@ -1374,7 +1487,7 @@ te = p+1
|
|
|
1374
1487
|
|
|
1375
1488
|
end
|
|
1376
1489
|
end
|
|
1377
|
-
when
|
|
1490
|
+
when 28
|
|
1378
1491
|
begin
|
|
1379
1492
|
te = p+1
|
|
1380
1493
|
begin
|
|
@@ -1388,39 +1501,39 @@ te = p+1
|
|
|
1388
1501
|
|
|
1389
1502
|
end
|
|
1390
1503
|
end
|
|
1391
|
-
when
|
|
1504
|
+
when 82
|
|
1392
1505
|
begin
|
|
1393
1506
|
te = p+1
|
|
1394
1507
|
begin
|
|
1395
1508
|
p = p - 1;
|
|
1396
|
-
cs = ((in_set? ?
|
|
1509
|
+
cs = ((in_set? ? 93 : 76));
|
|
1397
1510
|
begin
|
|
1398
1511
|
stack[top] = cs
|
|
1399
1512
|
top+= 1
|
|
1400
|
-
cs =
|
|
1513
|
+
cs = 91
|
|
1401
1514
|
_goto_level = _again
|
|
1402
1515
|
next
|
|
1403
1516
|
end
|
|
1404
1517
|
|
|
1405
1518
|
end
|
|
1406
1519
|
end
|
|
1407
|
-
when
|
|
1520
|
+
when 83
|
|
1408
1521
|
begin
|
|
1409
1522
|
te = p+1
|
|
1410
1523
|
begin
|
|
1411
1524
|
p = p - 1;
|
|
1412
|
-
cs = ((in_set? ?
|
|
1525
|
+
cs = ((in_set? ? 93 : 76));
|
|
1413
1526
|
begin
|
|
1414
1527
|
stack[top] = cs
|
|
1415
1528
|
top+= 1
|
|
1416
|
-
cs =
|
|
1529
|
+
cs = 92
|
|
1417
1530
|
_goto_level = _again
|
|
1418
1531
|
next
|
|
1419
1532
|
end
|
|
1420
1533
|
|
|
1421
1534
|
end
|
|
1422
1535
|
end
|
|
1423
|
-
when
|
|
1536
|
+
when 24
|
|
1424
1537
|
begin
|
|
1425
1538
|
te = p+1
|
|
1426
1539
|
begin
|
|
@@ -1434,7 +1547,34 @@ te = p+1
|
|
|
1434
1547
|
|
|
1435
1548
|
end
|
|
1436
1549
|
end
|
|
1437
|
-
when
|
|
1550
|
+
when 88
|
|
1551
|
+
begin
|
|
1552
|
+
te = p
|
|
1553
|
+
p = p - 1; begin
|
|
1554
|
+
text = copy(data, ts-1,te)
|
|
1555
|
+
|
|
1556
|
+
# If not enough groups have been opened, there is a fallback to either an
|
|
1557
|
+
# octal or literal interpretation for 2+ digit numerical escapes.
|
|
1558
|
+
digits = text[1..-1]
|
|
1559
|
+
if digits.size == 1 || digits.to_i <= capturing_group_count
|
|
1560
|
+
emit(:backref, :number, text)
|
|
1561
|
+
elsif digits =~ /\A[0-7]{2,}\z/
|
|
1562
|
+
emit(:escape, :octal, text)
|
|
1563
|
+
else
|
|
1564
|
+
emit(:escape, :literal, text[0..1])
|
|
1565
|
+
emit(:literal, :literal, text[2..-1])
|
|
1566
|
+
end
|
|
1567
|
+
|
|
1568
|
+
begin
|
|
1569
|
+
top -= 1
|
|
1570
|
+
cs = stack[top]
|
|
1571
|
+
_goto_level = _again
|
|
1572
|
+
next
|
|
1573
|
+
end
|
|
1574
|
+
|
|
1575
|
+
end
|
|
1576
|
+
end
|
|
1577
|
+
when 86
|
|
1438
1578
|
begin
|
|
1439
1579
|
te = p
|
|
1440
1580
|
p = p - 1; begin
|
|
@@ -1448,11 +1588,16 @@ p = p - 1; begin
|
|
|
1448
1588
|
|
|
1449
1589
|
end
|
|
1450
1590
|
end
|
|
1451
|
-
when
|
|
1591
|
+
when 95
|
|
1452
1592
|
begin
|
|
1453
1593
|
te = p
|
|
1454
1594
|
p = p - 1; begin
|
|
1455
|
-
|
|
1595
|
+
text = copy(data, ts-1,te)
|
|
1596
|
+
if regexp_encoding == Encoding::BINARY
|
|
1597
|
+
text.split(/(?=\\)/).each { |part| emit(:escape, :hex, part) }
|
|
1598
|
+
else
|
|
1599
|
+
emit(:escape, :utf8_hex, text)
|
|
1600
|
+
end
|
|
1456
1601
|
begin
|
|
1457
1602
|
top -= 1
|
|
1458
1603
|
cs = stack[top]
|
|
@@ -1462,11 +1607,11 @@ p = p - 1; begin
|
|
|
1462
1607
|
|
|
1463
1608
|
end
|
|
1464
1609
|
end
|
|
1465
|
-
when 93
|
|
1610
|
+
when 93
|
|
1466
1611
|
begin
|
|
1467
1612
|
te = p
|
|
1468
1613
|
p = p - 1; begin
|
|
1469
|
-
|
|
1614
|
+
emit(:escape, :hex, copy(data, ts-1,te))
|
|
1470
1615
|
begin
|
|
1471
1616
|
top -= 1
|
|
1472
1617
|
cs = stack[top]
|
|
@@ -1476,11 +1621,11 @@ p = p - 1; begin
|
|
|
1476
1621
|
|
|
1477
1622
|
end
|
|
1478
1623
|
end
|
|
1479
|
-
when
|
|
1624
|
+
when 90
|
|
1480
1625
|
begin
|
|
1481
1626
|
te = p
|
|
1482
1627
|
p = p - 1; begin
|
|
1483
|
-
emit_meta_control_sequence(data, ts, te, :
|
|
1628
|
+
emit_meta_control_sequence(data, ts, te, :control)
|
|
1484
1629
|
begin
|
|
1485
1630
|
top -= 1
|
|
1486
1631
|
cs = stack[top]
|
|
@@ -1490,11 +1635,11 @@ p = p - 1; begin
|
|
|
1490
1635
|
|
|
1491
1636
|
end
|
|
1492
1637
|
end
|
|
1493
|
-
when
|
|
1638
|
+
when 92
|
|
1494
1639
|
begin
|
|
1495
1640
|
te = p
|
|
1496
1641
|
p = p - 1; begin
|
|
1497
|
-
|
|
1642
|
+
emit_meta_control_sequence(data, ts, te, :meta_sequence)
|
|
1498
1643
|
begin
|
|
1499
1644
|
top -= 1
|
|
1500
1645
|
cs = stack[top]
|
|
@@ -1504,10 +1649,10 @@ p = p - 1; begin
|
|
|
1504
1649
|
|
|
1505
1650
|
end
|
|
1506
1651
|
end
|
|
1507
|
-
when
|
|
1652
|
+
when 85
|
|
1508
1653
|
begin
|
|
1509
|
-
|
|
1510
|
-
begin
|
|
1654
|
+
te = p
|
|
1655
|
+
p = p - 1; begin
|
|
1511
1656
|
emit(:escape, :literal, copy(data, ts-1,te))
|
|
1512
1657
|
begin
|
|
1513
1658
|
top -= 1
|
|
@@ -1518,14 +1663,16 @@ p = p - 1; begin
|
|
|
1518
1663
|
|
|
1519
1664
|
end
|
|
1520
1665
|
end
|
|
1521
|
-
when
|
|
1666
|
+
when 32
|
|
1522
1667
|
begin
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
begin begin p = ((te))-1; end
|
|
1526
|
-
|
|
1668
|
+
begin p = ((te))-1; end
|
|
1669
|
+
begin
|
|
1527
1670
|
text = copy(data, ts-1,te)
|
|
1528
|
-
|
|
1671
|
+
if regexp_encoding == Encoding::BINARY
|
|
1672
|
+
text.split(/(?=\\)/).each { |part| emit(:escape, :hex, part) }
|
|
1673
|
+
else
|
|
1674
|
+
emit(:escape, :utf8_hex, text)
|
|
1675
|
+
end
|
|
1529
1676
|
begin
|
|
1530
1677
|
top -= 1
|
|
1531
1678
|
cs = stack[top]
|
|
@@ -1533,11 +1680,13 @@ p = p - 1; begin
|
|
|
1533
1680
|
next
|
|
1534
1681
|
end
|
|
1535
1682
|
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1683
|
+
end
|
|
1684
|
+
end
|
|
1685
|
+
when 23
|
|
1686
|
+
begin
|
|
1687
|
+
begin p = ((te))-1; end
|
|
1688
|
+
begin
|
|
1689
|
+
emit(:escape, :literal, copy(data, ts-1,te))
|
|
1541
1690
|
begin
|
|
1542
1691
|
top -= 1
|
|
1543
1692
|
cs = stack[top]
|
|
@@ -1545,19 +1694,19 @@ p = p - 1; begin
|
|
|
1545
1694
|
next
|
|
1546
1695
|
end
|
|
1547
1696
|
|
|
1548
|
-
|
|
1549
|
-
end
|
|
1550
|
-
|
|
1551
|
-
when 32 then
|
|
1697
|
+
end
|
|
1698
|
+
end
|
|
1699
|
+
when 35
|
|
1552
1700
|
begin
|
|
1553
1701
|
te = p+1
|
|
1554
1702
|
begin
|
|
1555
1703
|
text = copy(data, ts, te-1)
|
|
1704
|
+
text =~ /[^0]/ or raise ValidationError.for(:backref, 'condition', 'invalid ref ID')
|
|
1556
1705
|
emit(:conditional, :condition, text)
|
|
1557
1706
|
emit(:conditional, :condition_close, ')')
|
|
1558
1707
|
end
|
|
1559
1708
|
end
|
|
1560
|
-
when
|
|
1709
|
+
when 96
|
|
1561
1710
|
begin
|
|
1562
1711
|
te = p+1
|
|
1563
1712
|
begin
|
|
@@ -1565,14 +1714,14 @@ te = p+1
|
|
|
1565
1714
|
begin
|
|
1566
1715
|
stack[top] = cs
|
|
1567
1716
|
top+= 1
|
|
1568
|
-
cs =
|
|
1717
|
+
cs = 76
|
|
1569
1718
|
_goto_level = _again
|
|
1570
1719
|
next
|
|
1571
1720
|
end
|
|
1572
1721
|
|
|
1573
1722
|
end
|
|
1574
1723
|
end
|
|
1575
|
-
when
|
|
1724
|
+
when 97
|
|
1576
1725
|
begin
|
|
1577
1726
|
te = p
|
|
1578
1727
|
p = p - 1; begin
|
|
@@ -1580,14 +1729,14 @@ p = p - 1; begin
|
|
|
1580
1729
|
begin
|
|
1581
1730
|
stack[top] = cs
|
|
1582
1731
|
top+= 1
|
|
1583
|
-
cs =
|
|
1732
|
+
cs = 76
|
|
1584
1733
|
_goto_level = _again
|
|
1585
1734
|
next
|
|
1586
1735
|
end
|
|
1587
1736
|
|
|
1588
1737
|
end
|
|
1589
1738
|
end
|
|
1590
|
-
when
|
|
1739
|
+
when 34
|
|
1591
1740
|
begin
|
|
1592
1741
|
begin p = ((te))-1; end
|
|
1593
1742
|
begin
|
|
@@ -1595,21 +1744,21 @@ p = p - 1; begin
|
|
|
1595
1744
|
begin
|
|
1596
1745
|
stack[top] = cs
|
|
1597
1746
|
top+= 1
|
|
1598
|
-
cs =
|
|
1747
|
+
cs = 76
|
|
1599
1748
|
_goto_level = _again
|
|
1600
1749
|
next
|
|
1601
1750
|
end
|
|
1602
1751
|
|
|
1603
1752
|
end
|
|
1604
1753
|
end
|
|
1605
|
-
when
|
|
1754
|
+
when 41
|
|
1606
1755
|
begin
|
|
1607
1756
|
te = p+1
|
|
1608
1757
|
begin
|
|
1609
1758
|
emit(:meta, :dot, copy(data, ts, te))
|
|
1610
1759
|
end
|
|
1611
1760
|
end
|
|
1612
|
-
when
|
|
1761
|
+
when 45
|
|
1613
1762
|
begin
|
|
1614
1763
|
te = p+1
|
|
1615
1764
|
begin
|
|
@@ -1620,49 +1769,49 @@ te = p+1
|
|
|
1620
1769
|
end
|
|
1621
1770
|
end
|
|
1622
1771
|
end
|
|
1623
|
-
when
|
|
1772
|
+
when 44
|
|
1624
1773
|
begin
|
|
1625
1774
|
te = p+1
|
|
1626
1775
|
begin
|
|
1627
1776
|
emit(:anchor, :bol, copy(data, ts, te))
|
|
1628
1777
|
end
|
|
1629
1778
|
end
|
|
1630
|
-
when
|
|
1779
|
+
when 38
|
|
1631
1780
|
begin
|
|
1632
1781
|
te = p+1
|
|
1633
1782
|
begin
|
|
1634
1783
|
emit(:anchor, :eol, copy(data, ts, te))
|
|
1635
1784
|
end
|
|
1636
1785
|
end
|
|
1637
|
-
when 62
|
|
1786
|
+
when 62
|
|
1638
1787
|
begin
|
|
1639
1788
|
te = p+1
|
|
1640
1789
|
begin
|
|
1641
1790
|
emit(:keep, :mark, copy(data, ts, te))
|
|
1642
1791
|
end
|
|
1643
1792
|
end
|
|
1644
|
-
when 61
|
|
1793
|
+
when 61
|
|
1645
1794
|
begin
|
|
1646
1795
|
te = p+1
|
|
1647
1796
|
begin
|
|
1648
1797
|
case text = copy(data, ts, te)
|
|
1649
|
-
when '\A';
|
|
1650
|
-
when '\z';
|
|
1651
|
-
when '\Z';
|
|
1652
|
-
when '\b';
|
|
1653
|
-
when '\B';
|
|
1654
|
-
when '\G';
|
|
1798
|
+
when '\A'; emit(:anchor, :bos, text)
|
|
1799
|
+
when '\z'; emit(:anchor, :eos, text)
|
|
1800
|
+
when '\Z'; emit(:anchor, :eos_ob_eol, text)
|
|
1801
|
+
when '\b'; emit(:anchor, :word_boundary, text)
|
|
1802
|
+
when '\B'; emit(:anchor, :nonword_boundary, text)
|
|
1803
|
+
when '\G'; emit(:anchor, :match_start, text)
|
|
1655
1804
|
end
|
|
1656
1805
|
end
|
|
1657
1806
|
end
|
|
1658
|
-
when
|
|
1807
|
+
when 43
|
|
1659
1808
|
begin
|
|
1660
1809
|
te = p+1
|
|
1661
1810
|
begin
|
|
1662
1811
|
append_literal(data, ts, te)
|
|
1663
1812
|
end
|
|
1664
1813
|
end
|
|
1665
|
-
when
|
|
1814
|
+
when 52
|
|
1666
1815
|
begin
|
|
1667
1816
|
te = p+1
|
|
1668
1817
|
begin
|
|
@@ -1675,14 +1824,14 @@ te = p+1
|
|
|
1675
1824
|
begin
|
|
1676
1825
|
stack[top] = cs
|
|
1677
1826
|
top+= 1
|
|
1678
|
-
cs =
|
|
1827
|
+
cs = 126
|
|
1679
1828
|
_goto_level = _again
|
|
1680
1829
|
next
|
|
1681
1830
|
end
|
|
1682
1831
|
|
|
1683
1832
|
end
|
|
1684
1833
|
end
|
|
1685
|
-
when
|
|
1834
|
+
when 53
|
|
1686
1835
|
begin
|
|
1687
1836
|
te = p+1
|
|
1688
1837
|
begin
|
|
@@ -1693,116 +1842,116 @@ te = p+1
|
|
|
1693
1842
|
emit_options(text)
|
|
1694
1843
|
end
|
|
1695
1844
|
end
|
|
1696
|
-
when 6
|
|
1845
|
+
when 6
|
|
1697
1846
|
begin
|
|
1698
1847
|
te = p+1
|
|
1699
1848
|
begin
|
|
1700
1849
|
case text = copy(data, ts, te)
|
|
1701
|
-
when '(?=';
|
|
1702
|
-
when '(?!';
|
|
1703
|
-
when '(?<='; emit(:assertion, :lookbehind,
|
|
1704
|
-
when '(?<!'; emit(:assertion, :nlookbehind,
|
|
1850
|
+
when '(?='; emit(:assertion, :lookahead, text)
|
|
1851
|
+
when '(?!'; emit(:assertion, :nlookahead, text)
|
|
1852
|
+
when '(?<='; emit(:assertion, :lookbehind, text)
|
|
1853
|
+
when '(?<!'; emit(:assertion, :nlookbehind, text)
|
|
1705
1854
|
end
|
|
1706
1855
|
end
|
|
1707
1856
|
end
|
|
1708
|
-
when 5
|
|
1857
|
+
when 5
|
|
1709
1858
|
begin
|
|
1710
1859
|
te = p+1
|
|
1711
1860
|
begin
|
|
1712
1861
|
case text = copy(data, ts, te)
|
|
1713
|
-
when '(?:';
|
|
1714
|
-
when '(?>';
|
|
1715
|
-
when '(?~';
|
|
1862
|
+
when '(?:'; emit(:group, :passive, text)
|
|
1863
|
+
when '(?>'; emit(:group, :atomic, text)
|
|
1864
|
+
when '(?~'; emit(:group, :absence, text)
|
|
1716
1865
|
|
|
1717
1866
|
when /^\(\?(?:<>|'')/
|
|
1718
1867
|
raise ValidationError.for(:group, 'named group', 'name is empty')
|
|
1719
1868
|
|
|
1720
1869
|
when /^\(\?<[^>]+>/
|
|
1721
|
-
emit(:group, :named_ab,
|
|
1870
|
+
emit(:group, :named_ab, text)
|
|
1722
1871
|
|
|
1723
1872
|
when /^\(\?'[^']+'/
|
|
1724
|
-
emit(:group, :named_sq,
|
|
1873
|
+
emit(:group, :named_sq, text)
|
|
1725
1874
|
|
|
1726
1875
|
end
|
|
1727
1876
|
end
|
|
1728
1877
|
end
|
|
1729
|
-
when
|
|
1878
|
+
when 9
|
|
1730
1879
|
begin
|
|
1731
1880
|
te = p+1
|
|
1732
1881
|
begin
|
|
1733
1882
|
case text = copy(data, ts, te)
|
|
1734
1883
|
when /^\\k(.)[^0-9\-][^+\-]*['>]$/
|
|
1735
1884
|
emit(:backref, $1 == '<' ? :name_ref_ab : :name_ref_sq, text)
|
|
1736
|
-
when /^\\k(.)[1-9]\d*['>]$/
|
|
1885
|
+
when /^\\k(.)0*[1-9]\d*['>]$/
|
|
1737
1886
|
emit(:backref, $1 == '<' ? :number_ref_ab : :number_ref_sq, text)
|
|
1738
|
-
when /^\\k(.)-[1-9]\d*['>]$/
|
|
1887
|
+
when /^\\k(.)-0*[1-9]\d*['>]$/
|
|
1739
1888
|
emit(:backref, $1 == '<' ? :number_rel_ref_ab : :number_rel_ref_sq, text)
|
|
1740
1889
|
when /^\\k(.)[^0-9\-].*[+\-]\d+['>]$/
|
|
1741
1890
|
emit(:backref, $1 == '<' ? :name_recursion_ref_ab : :name_recursion_ref_sq, text)
|
|
1742
|
-
when /^\\k(.)-?[1-9]\d*[+\-]\d+['>]$/
|
|
1891
|
+
when /^\\k(.)-?0*[1-9]\d*[+\-]\d+['>]$/
|
|
1743
1892
|
emit(:backref, $1 == '<' ? :number_recursion_ref_ab : :number_recursion_ref_sq, text)
|
|
1744
1893
|
else
|
|
1745
1894
|
raise ValidationError.for(:backref, 'backreference', 'invalid ref ID')
|
|
1746
1895
|
end
|
|
1747
1896
|
end
|
|
1748
1897
|
end
|
|
1749
|
-
when
|
|
1898
|
+
when 8
|
|
1750
1899
|
begin
|
|
1751
1900
|
te = p+1
|
|
1752
1901
|
begin
|
|
1753
1902
|
case text = copy(data, ts, te)
|
|
1754
1903
|
when /^\\g(.)[^0-9+\-].*['>]$/
|
|
1755
1904
|
emit(:backref, $1 == '<' ? :name_call_ab : :name_call_sq, text)
|
|
1756
|
-
when /^\\g(.)\d
|
|
1905
|
+
when /^\\g(.)(?:0|0*[1-9]\d*)['>]$/
|
|
1757
1906
|
emit(:backref, $1 == '<' ? :number_call_ab : :number_call_sq, text)
|
|
1758
|
-
when /^\\g(.)[+-]\d
|
|
1907
|
+
when /^\\g(.)[+-]0*[1-9]\d*/
|
|
1759
1908
|
emit(:backref, $1 == '<' ? :number_rel_call_ab : :number_rel_call_sq, text)
|
|
1760
1909
|
else
|
|
1761
1910
|
raise ValidationError.for(:backref, 'subexpression call', 'invalid ref ID')
|
|
1762
1911
|
end
|
|
1763
1912
|
end
|
|
1764
1913
|
end
|
|
1765
|
-
when 59
|
|
1914
|
+
when 59
|
|
1766
1915
|
begin
|
|
1767
1916
|
te = p+1
|
|
1768
1917
|
begin
|
|
1769
1918
|
case text = copy(data, ts, te)
|
|
1770
|
-
when '?' ;
|
|
1771
|
-
when '??';
|
|
1772
|
-
when '?+';
|
|
1919
|
+
when '?' ; emit(:quantifier, :zero_or_one, text)
|
|
1920
|
+
when '??'; emit(:quantifier, :zero_or_one_reluctant, text)
|
|
1921
|
+
when '?+'; emit(:quantifier, :zero_or_one_possessive, text)
|
|
1773
1922
|
end
|
|
1774
1923
|
end
|
|
1775
1924
|
end
|
|
1776
|
-
when 55
|
|
1925
|
+
when 55
|
|
1777
1926
|
begin
|
|
1778
1927
|
te = p+1
|
|
1779
1928
|
begin
|
|
1780
1929
|
case text = copy(data, ts, te)
|
|
1781
|
-
when '*' ;
|
|
1782
|
-
when '*?';
|
|
1783
|
-
when '*+';
|
|
1930
|
+
when '*' ; emit(:quantifier, :zero_or_more, text)
|
|
1931
|
+
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text)
|
|
1932
|
+
when '*+'; emit(:quantifier, :zero_or_more_possessive, text)
|
|
1784
1933
|
end
|
|
1785
1934
|
end
|
|
1786
1935
|
end
|
|
1787
|
-
when 57
|
|
1936
|
+
when 57
|
|
1788
1937
|
begin
|
|
1789
1938
|
te = p+1
|
|
1790
1939
|
begin
|
|
1791
1940
|
case text = copy(data, ts, te)
|
|
1792
|
-
when '+' ;
|
|
1793
|
-
when '+?';
|
|
1794
|
-
when '++';
|
|
1941
|
+
when '+' ; emit(:quantifier, :one_or_more, text)
|
|
1942
|
+
when '+?'; emit(:quantifier, :one_or_more_reluctant, text)
|
|
1943
|
+
when '++'; emit(:quantifier, :one_or_more_possessive, text)
|
|
1795
1944
|
end
|
|
1796
1945
|
end
|
|
1797
1946
|
end
|
|
1798
|
-
when
|
|
1947
|
+
when 11
|
|
1799
1948
|
begin
|
|
1800
1949
|
te = p+1
|
|
1801
1950
|
begin
|
|
1802
1951
|
emit(:quantifier, :interval, copy(data, ts, te))
|
|
1803
1952
|
end
|
|
1804
1953
|
end
|
|
1805
|
-
when
|
|
1954
|
+
when 49
|
|
1806
1955
|
begin
|
|
1807
1956
|
te = p+1
|
|
1808
1957
|
begin
|
|
@@ -1816,7 +1965,7 @@ te = p+1
|
|
|
1816
1965
|
end
|
|
1817
1966
|
end
|
|
1818
1967
|
end
|
|
1819
|
-
when
|
|
1968
|
+
when 51
|
|
1820
1969
|
begin
|
|
1821
1970
|
te = p
|
|
1822
1971
|
p = p - 1; begin
|
|
@@ -1827,81 +1976,70 @@ p = p - 1; begin
|
|
|
1827
1976
|
emit_options(text)
|
|
1828
1977
|
end
|
|
1829
1978
|
end
|
|
1830
|
-
when
|
|
1831
|
-
begin
|
|
1832
|
-
te = p
|
|
1833
|
-
p = p - 1; begin
|
|
1834
|
-
case text = copy(data, ts, te)
|
|
1835
|
-
when '(?='; emit(:assertion, :lookahead, text)
|
|
1836
|
-
when '(?!'; emit(:assertion, :nlookahead, text)
|
|
1837
|
-
when '(?<='; emit(:assertion, :lookbehind, text)
|
|
1838
|
-
when '(?<!'; emit(:assertion, :nlookbehind, text)
|
|
1839
|
-
end
|
|
1840
|
-
end
|
|
1841
|
-
end
|
|
1842
|
-
when 48 then
|
|
1979
|
+
when 50
|
|
1843
1980
|
begin
|
|
1844
1981
|
te = p
|
|
1845
1982
|
p = p - 1; begin
|
|
1983
|
+
self.capturing_group_count = capturing_group_count + 1
|
|
1846
1984
|
text = copy(data, ts, te)
|
|
1847
1985
|
emit(:group, :capture, text)
|
|
1848
1986
|
end
|
|
1849
1987
|
end
|
|
1850
|
-
when 58
|
|
1988
|
+
when 58
|
|
1851
1989
|
begin
|
|
1852
1990
|
te = p
|
|
1853
1991
|
p = p - 1; begin
|
|
1854
1992
|
case text = copy(data, ts, te)
|
|
1855
|
-
when '?' ;
|
|
1856
|
-
when '??';
|
|
1857
|
-
when '?+';
|
|
1993
|
+
when '?' ; emit(:quantifier, :zero_or_one, text)
|
|
1994
|
+
when '??'; emit(:quantifier, :zero_or_one_reluctant, text)
|
|
1995
|
+
when '?+'; emit(:quantifier, :zero_or_one_possessive, text)
|
|
1858
1996
|
end
|
|
1859
1997
|
end
|
|
1860
1998
|
end
|
|
1861
|
-
when 54
|
|
1999
|
+
when 54
|
|
1862
2000
|
begin
|
|
1863
2001
|
te = p
|
|
1864
2002
|
p = p - 1; begin
|
|
1865
2003
|
case text = copy(data, ts, te)
|
|
1866
|
-
when '*' ;
|
|
1867
|
-
when '*?';
|
|
1868
|
-
when '*+';
|
|
2004
|
+
when '*' ; emit(:quantifier, :zero_or_more, text)
|
|
2005
|
+
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text)
|
|
2006
|
+
when '*+'; emit(:quantifier, :zero_or_more_possessive, text)
|
|
1869
2007
|
end
|
|
1870
2008
|
end
|
|
1871
2009
|
end
|
|
1872
|
-
when 56
|
|
2010
|
+
when 56
|
|
1873
2011
|
begin
|
|
1874
2012
|
te = p
|
|
1875
2013
|
p = p - 1; begin
|
|
1876
2014
|
case text = copy(data, ts, te)
|
|
1877
|
-
when '+' ;
|
|
1878
|
-
when '+?';
|
|
1879
|
-
when '++';
|
|
2015
|
+
when '+' ; emit(:quantifier, :one_or_more, text)
|
|
2016
|
+
when '+?'; emit(:quantifier, :one_or_more_reluctant, text)
|
|
2017
|
+
when '++'; emit(:quantifier, :one_or_more_possessive, text)
|
|
1880
2018
|
end
|
|
1881
2019
|
end
|
|
1882
2020
|
end
|
|
1883
|
-
when 63
|
|
2021
|
+
when 63
|
|
1884
2022
|
begin
|
|
1885
2023
|
te = p
|
|
1886
2024
|
p = p - 1; begin
|
|
1887
2025
|
append_literal(data, ts, te)
|
|
1888
2026
|
end
|
|
1889
2027
|
end
|
|
1890
|
-
when 60
|
|
2028
|
+
when 60
|
|
1891
2029
|
begin
|
|
1892
2030
|
te = p
|
|
1893
2031
|
p = p - 1; begin
|
|
1894
2032
|
begin
|
|
1895
2033
|
stack[top] = cs
|
|
1896
2034
|
top+= 1
|
|
1897
|
-
cs =
|
|
2035
|
+
cs = 106
|
|
1898
2036
|
_goto_level = _again
|
|
1899
2037
|
next
|
|
1900
2038
|
end
|
|
1901
2039
|
|
|
1902
2040
|
end
|
|
1903
2041
|
end
|
|
1904
|
-
when
|
|
2042
|
+
when 48
|
|
1905
2043
|
begin
|
|
1906
2044
|
te = p
|
|
1907
2045
|
p = p - 1; begin
|
|
@@ -1915,7 +2053,7 @@ p = p - 1; begin
|
|
|
1915
2053
|
end
|
|
1916
2054
|
end
|
|
1917
2055
|
end
|
|
1918
|
-
when
|
|
2056
|
+
when 47
|
|
1919
2057
|
begin
|
|
1920
2058
|
te = p
|
|
1921
2059
|
p = p - 1; begin
|
|
@@ -1926,14 +2064,14 @@ p = p - 1; begin
|
|
|
1926
2064
|
end
|
|
1927
2065
|
end
|
|
1928
2066
|
end
|
|
1929
|
-
when
|
|
2067
|
+
when 46
|
|
1930
2068
|
begin
|
|
1931
2069
|
te = p
|
|
1932
2070
|
p = p - 1; begin
|
|
1933
2071
|
append_literal(data, ts, te)
|
|
1934
2072
|
end
|
|
1935
2073
|
end
|
|
1936
|
-
when 3
|
|
2074
|
+
when 3
|
|
1937
2075
|
begin
|
|
1938
2076
|
begin p = ((te))-1; end
|
|
1939
2077
|
begin
|
|
@@ -1944,64 +2082,45 @@ p = p - 1; begin
|
|
|
1944
2082
|
emit_options(text)
|
|
1945
2083
|
end
|
|
1946
2084
|
end
|
|
1947
|
-
when
|
|
2085
|
+
when 10
|
|
1948
2086
|
begin
|
|
1949
2087
|
begin p = ((te))-1; end
|
|
1950
2088
|
begin
|
|
1951
2089
|
append_literal(data, ts, te)
|
|
1952
2090
|
end
|
|
1953
2091
|
end
|
|
1954
|
-
when
|
|
2092
|
+
when 7
|
|
1955
2093
|
begin
|
|
1956
2094
|
begin p = ((te))-1; end
|
|
1957
2095
|
begin
|
|
1958
2096
|
begin
|
|
1959
2097
|
stack[top] = cs
|
|
1960
2098
|
top+= 1
|
|
1961
|
-
cs =
|
|
2099
|
+
cs = 106
|
|
1962
2100
|
_goto_level = _again
|
|
1963
2101
|
next
|
|
1964
2102
|
end
|
|
1965
2103
|
|
|
1966
2104
|
end
|
|
1967
2105
|
end
|
|
1968
|
-
when 1
|
|
2106
|
+
when 1
|
|
1969
2107
|
begin
|
|
1970
2108
|
case act
|
|
1971
|
-
when 0
|
|
2109
|
+
when 0
|
|
1972
2110
|
begin begin
|
|
1973
2111
|
cs = 0
|
|
1974
2112
|
_goto_level = _again
|
|
1975
2113
|
next
|
|
1976
2114
|
end
|
|
1977
2115
|
end
|
|
1978
|
-
when
|
|
1979
|
-
begin begin p = ((te))-1; end
|
|
1980
|
-
|
|
1981
|
-
text = copy(data, ts, te)
|
|
1982
|
-
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
|
1983
|
-
raise ValidationError.for(:group_option, $1 || "-#{$2}", text)
|
|
1984
|
-
end
|
|
1985
|
-
emit_options(text)
|
|
1986
|
-
end
|
|
1987
|
-
when 42 then
|
|
1988
|
-
begin begin p = ((te))-1; end
|
|
1989
|
-
|
|
1990
|
-
case text = copy(data, ts, te)
|
|
1991
|
-
when '(?='; emit(:assertion, :lookahead, text)
|
|
1992
|
-
when '(?!'; emit(:assertion, :nlookahead, text)
|
|
1993
|
-
when '(?<='; emit(:assertion, :lookbehind, text)
|
|
1994
|
-
when '(?<!'; emit(:assertion, :nlookbehind, text)
|
|
1995
|
-
end
|
|
1996
|
-
end
|
|
1997
|
-
when 56 then
|
|
2116
|
+
when 58
|
|
1998
2117
|
begin begin p = ((te))-1; end
|
|
1999
2118
|
|
|
2000
2119
|
append_literal(data, ts, te)
|
|
2001
2120
|
end
|
|
2002
2121
|
end
|
|
2003
2122
|
end
|
|
2004
|
-
when 75
|
|
2123
|
+
when 75
|
|
2005
2124
|
begin
|
|
2006
2125
|
|
|
2007
2126
|
text = copy(data, ts ? ts-1 : 0,-1)
|
|
@@ -2014,14 +2133,14 @@ p = p - 1; begin
|
|
|
2014
2133
|
begin
|
|
2015
2134
|
stack[top] = cs
|
|
2016
2135
|
top+= 1
|
|
2017
|
-
cs =
|
|
2136
|
+
cs = 93
|
|
2018
2137
|
_goto_level = _again
|
|
2019
2138
|
next
|
|
2020
2139
|
end
|
|
2021
2140
|
|
|
2022
2141
|
end
|
|
2023
2142
|
end
|
|
2024
|
-
when
|
|
2143
|
+
when 18
|
|
2025
2144
|
begin
|
|
2026
2145
|
|
|
2027
2146
|
text = copy(data, ts ? ts-1 : 0,-1)
|
|
@@ -2034,14 +2153,14 @@ p = p - 1; begin
|
|
|
2034
2153
|
begin
|
|
2035
2154
|
stack[top] = cs
|
|
2036
2155
|
top+= 1
|
|
2037
|
-
cs =
|
|
2156
|
+
cs = 93
|
|
2038
2157
|
_goto_level = _again
|
|
2039
2158
|
next
|
|
2040
2159
|
end
|
|
2041
2160
|
|
|
2042
2161
|
end
|
|
2043
2162
|
end
|
|
2044
|
-
when
|
|
2163
|
+
when 89
|
|
2045
2164
|
begin
|
|
2046
2165
|
|
|
2047
2166
|
text = copy(data, ts ? ts-1 : 0,-1)
|
|
@@ -2060,7 +2179,7 @@ p = p - 1; begin
|
|
|
2060
2179
|
|
|
2061
2180
|
end
|
|
2062
2181
|
end
|
|
2063
|
-
when
|
|
2182
|
+
when 91
|
|
2064
2183
|
begin
|
|
2065
2184
|
|
|
2066
2185
|
text = copy(data, ts ? ts-1 : 0,-1)
|
|
@@ -2079,7 +2198,7 @@ p = p - 1; begin
|
|
|
2079
2198
|
|
|
2080
2199
|
end
|
|
2081
2200
|
end
|
|
2082
|
-
when
|
|
2201
|
+
when 27
|
|
2083
2202
|
begin
|
|
2084
2203
|
|
|
2085
2204
|
text = copy(data, ts ? ts-1 : 0,-1)
|
|
@@ -2098,7 +2217,7 @@ p = p - 1; begin
|
|
|
2098
2217
|
|
|
2099
2218
|
end
|
|
2100
2219
|
end
|
|
2101
|
-
when
|
|
2220
|
+
when 29
|
|
2102
2221
|
begin
|
|
2103
2222
|
|
|
2104
2223
|
text = copy(data, ts ? ts-1 : 0,-1)
|
|
@@ -2117,7 +2236,7 @@ p = p - 1; begin
|
|
|
2117
2236
|
|
|
2118
2237
|
end
|
|
2119
2238
|
end
|
|
2120
|
-
when
|
|
2239
|
+
when 31
|
|
2121
2240
|
begin
|
|
2122
2241
|
|
|
2123
2242
|
text = copy(data, ts ? ts-1 : 0,-1)
|
|
@@ -2135,7 +2254,7 @@ te = p+1
|
|
|
2135
2254
|
|
|
2136
2255
|
end
|
|
2137
2256
|
end
|
|
2138
|
-
when 4
|
|
2257
|
+
when 4
|
|
2139
2258
|
begin
|
|
2140
2259
|
self.group_depth = group_depth - 1 end
|
|
2141
2260
|
begin
|
|
@@ -2144,7 +2263,7 @@ te = p+1
|
|
|
2144
2263
|
emit(:group, :comment, copy(data, ts, te))
|
|
2145
2264
|
end
|
|
2146
2265
|
end
|
|
2147
|
-
when
|
|
2266
|
+
when 40
|
|
2148
2267
|
begin
|
|
2149
2268
|
self.group_depth = group_depth - 1 end
|
|
2150
2269
|
begin
|
|
@@ -2166,9 +2285,9 @@ te = p+1
|
|
|
2166
2285
|
end
|
|
2167
2286
|
end
|
|
2168
2287
|
end
|
|
2169
|
-
when
|
|
2288
|
+
when 42
|
|
2170
2289
|
begin
|
|
2171
|
-
self.set_depth
|
|
2290
|
+
self.set_depth = set_depth + 1 end
|
|
2172
2291
|
begin
|
|
2173
2292
|
te = p+1
|
|
2174
2293
|
begin
|
|
@@ -2176,16 +2295,16 @@ te = p+1
|
|
|
2176
2295
|
begin
|
|
2177
2296
|
stack[top] = cs
|
|
2178
2297
|
top+= 1
|
|
2179
|
-
cs =
|
|
2298
|
+
cs = 93
|
|
2180
2299
|
_goto_level = _again
|
|
2181
2300
|
next
|
|
2182
2301
|
end
|
|
2183
2302
|
|
|
2184
2303
|
end
|
|
2185
2304
|
end
|
|
2186
|
-
when 69
|
|
2305
|
+
when 69
|
|
2187
2306
|
begin
|
|
2188
|
-
self.set_depth
|
|
2307
|
+
self.set_depth = set_depth - 1 end
|
|
2189
2308
|
begin
|
|
2190
2309
|
te = p+1
|
|
2191
2310
|
begin
|
|
@@ -2200,7 +2319,7 @@ te = p+1
|
|
|
2200
2319
|
|
|
2201
2320
|
else
|
|
2202
2321
|
begin
|
|
2203
|
-
cs =
|
|
2322
|
+
cs = 76
|
|
2204
2323
|
_goto_level = _again
|
|
2205
2324
|
next
|
|
2206
2325
|
end
|
|
@@ -2208,12 +2327,12 @@ te = p+1
|
|
|
2208
2327
|
end
|
|
2209
2328
|
end
|
|
2210
2329
|
end
|
|
2211
|
-
when 74
|
|
2330
|
+
when 74
|
|
2212
2331
|
begin
|
|
2213
|
-
self.set_depth
|
|
2332
|
+
self.set_depth = set_depth - 1 end
|
|
2214
2333
|
begin
|
|
2215
2334
|
te = p+1
|
|
2216
|
-
begin
|
|
2335
|
+
begin # special case, emits two tokens
|
|
2217
2336
|
emit(:literal, :literal, '-')
|
|
2218
2337
|
emit(:set, :close, ']')
|
|
2219
2338
|
if in_set?
|
|
@@ -2226,7 +2345,7 @@ te = p+1
|
|
|
2226
2345
|
|
|
2227
2346
|
else
|
|
2228
2347
|
begin
|
|
2229
|
-
cs =
|
|
2348
|
+
cs = 76
|
|
2230
2349
|
_goto_level = _again
|
|
2231
2350
|
next
|
|
2232
2351
|
end
|
|
@@ -2234,9 +2353,9 @@ te = p+1
|
|
|
2234
2353
|
end
|
|
2235
2354
|
end
|
|
2236
2355
|
end
|
|
2237
|
-
when
|
|
2356
|
+
when 20
|
|
2238
2357
|
begin
|
|
2239
|
-
self.set_depth
|
|
2358
|
+
self.set_depth = set_depth - 1 end
|
|
2240
2359
|
begin
|
|
2241
2360
|
te = p+1
|
|
2242
2361
|
begin
|
|
@@ -2249,58 +2368,34 @@ te = p+1
|
|
|
2249
2368
|
type = :nonposixclass
|
|
2250
2369
|
end
|
|
2251
2370
|
|
|
2252
|
-
unless
|
|
2371
|
+
unless POSIX_CLASSES[class_name]
|
|
2253
2372
|
raise ValidationError.for(:posix_class, text)
|
|
2254
2373
|
end
|
|
2255
2374
|
|
|
2256
2375
|
emit(type, class_name.to_sym, text)
|
|
2257
2376
|
end
|
|
2258
2377
|
end
|
|
2259
|
-
when 67
|
|
2260
|
-
begin
|
|
2261
|
-
te = p+1
|
|
2262
|
-
end
|
|
2263
|
-
begin
|
|
2264
|
-
self.set_depth = set_depth + 1 end
|
|
2265
|
-
when 83 then
|
|
2378
|
+
when 67
|
|
2266
2379
|
begin
|
|
2267
2380
|
te = p+1
|
|
2268
2381
|
end
|
|
2269
2382
|
begin
|
|
2270
|
-
|
|
2271
|
-
when
|
|
2383
|
+
self.set_depth = set_depth + 1 end
|
|
2384
|
+
when 2
|
|
2272
2385
|
begin
|
|
2273
2386
|
te = p+1
|
|
2274
2387
|
end
|
|
2275
2388
|
begin
|
|
2276
|
-
act =
|
|
2277
|
-
when 49 then
|
|
2278
|
-
begin
|
|
2279
|
-
te = p+1
|
|
2280
|
-
end
|
|
2281
|
-
begin
|
|
2282
|
-
act = 41; end
|
|
2283
|
-
when 7 then
|
|
2284
|
-
begin
|
|
2285
|
-
te = p+1
|
|
2286
|
-
end
|
|
2287
|
-
begin
|
|
2288
|
-
act = 42; end
|
|
2289
|
-
when 2 then
|
|
2290
|
-
begin
|
|
2291
|
-
te = p+1
|
|
2292
|
-
end
|
|
2293
|
-
begin
|
|
2294
|
-
act = 56; end
|
|
2389
|
+
act = 58; end
|
|
2295
2390
|
end
|
|
2296
2391
|
end
|
|
2297
2392
|
end
|
|
2298
2393
|
if _goto_level <= _again
|
|
2299
2394
|
case _re_scanner_to_state_actions[cs]
|
|
2300
|
-
when 64
|
|
2395
|
+
when 64
|
|
2301
2396
|
begin
|
|
2302
2397
|
ts = nil; end
|
|
2303
|
-
when
|
|
2398
|
+
when 36
|
|
2304
2399
|
begin
|
|
2305
2400
|
ts = nil; end
|
|
2306
2401
|
begin
|
|
@@ -2326,12 +2421,12 @@ act = 0
|
|
|
2326
2421
|
next;
|
|
2327
2422
|
end
|
|
2328
2423
|
case _re_scanner_eof_actions[cs]
|
|
2329
|
-
when
|
|
2424
|
+
when 12
|
|
2330
2425
|
begin
|
|
2331
2426
|
|
|
2332
2427
|
raise PrematureEndError.new('unicode property')
|
|
2333
2428
|
end
|
|
2334
|
-
when
|
|
2429
|
+
when 25
|
|
2335
2430
|
begin
|
|
2336
2431
|
|
|
2337
2432
|
text = copy(data, ts ? ts-1 : 0,-1)
|
|
@@ -2379,10 +2474,11 @@ end
|
|
|
2379
2474
|
File.read("#{__dir__}/scanner/properties/#{name}.csv").scan(/(.+),(.+)/).to_h
|
|
2380
2475
|
end
|
|
2381
2476
|
|
|
2382
|
-
|
|
2477
|
+
# Use each_with_object for required_ruby_version >= 2.2,or #to_h for >= 2.6
|
|
2478
|
+
POSIX_CLASSES =
|
|
2383
2479
|
%w[alnum alpha ascii blank cntrl digit graph
|
|
2384
2480
|
lower print punct space upper word xdigit]
|
|
2385
|
-
|
|
2481
|
+
.inject({}) { |o, e| o.merge(e => true) }.freeze
|
|
2386
2482
|
|
|
2387
2483
|
# Emits an array with the details of the scanned pattern
|
|
2388
2484
|
def emit(type, token, text)
|
|
@@ -2410,16 +2506,25 @@ end
|
|
|
2410
2506
|
end
|
|
2411
2507
|
end
|
|
2412
2508
|
|
|
2413
|
-
attr_accessor :literal_run # only public for #||= to work on ruby <= 2.5
|
|
2509
|
+
attr_accessor :capturing_group_count, :literal_run # only public for #||= to work on ruby <= 2.5
|
|
2414
2510
|
|
|
2415
2511
|
private
|
|
2416
2512
|
|
|
2417
2513
|
attr_accessor :block,
|
|
2418
2514
|
:collect_tokens, :tokens, :prev_token,
|
|
2419
2515
|
:free_spacing, :spacing_stack,
|
|
2516
|
+
:regexp_encoding,
|
|
2420
2517
|
:group_depth, :set_depth, :conditional_stack,
|
|
2421
2518
|
:char_pos
|
|
2422
2519
|
|
|
2520
|
+
def extract_encoding(input_object, options)
|
|
2521
|
+
if input_object.is_a?(::Regexp)
|
|
2522
|
+
input_object.encoding
|
|
2523
|
+
elsif options && (options & Regexp::NOENCODING)
|
|
2524
|
+
Encoding::BINARY
|
|
2525
|
+
end
|
|
2526
|
+
end
|
|
2527
|
+
|
|
2423
2528
|
def free_spacing?(input_object, options)
|
|
2424
2529
|
if options && !input_object.is_a?(String)
|
|
2425
2530
|
raise ArgumentError, 'options cannot be supplied unless scanning a String'
|