regexp_parser 1.7.1 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +157 -1
- data/Gemfile +6 -1
- data/LICENSE +1 -1
- data/README.md +38 -32
- data/Rakefile +18 -27
- data/lib/regexp_parser/error.rb +4 -0
- data/lib/regexp_parser/expression/base.rb +123 -0
- data/lib/regexp_parser/expression/classes/anchor.rb +0 -2
- data/lib/regexp_parser/expression/classes/{backref.rb → backreference.rb} +5 -0
- data/lib/regexp_parser/expression/classes/{set → character_set}/intersection.rb +0 -0
- data/lib/regexp_parser/expression/classes/{set → character_set}/range.rb +2 -1
- data/lib/regexp_parser/expression/classes/{set.rb → character_set.rb} +0 -0
- data/lib/regexp_parser/expression/classes/conditional.rb +11 -1
- data/lib/regexp_parser/expression/classes/{escape.rb → escape_sequence.rb} +13 -7
- data/lib/regexp_parser/expression/classes/free_space.rb +2 -4
- data/lib/regexp_parser/expression/classes/group.rb +28 -3
- data/lib/regexp_parser/expression/classes/literal.rb +1 -5
- data/lib/regexp_parser/expression/classes/property.rb +1 -3
- data/lib/regexp_parser/expression/classes/root.rb +4 -17
- data/lib/regexp_parser/expression/classes/type.rb +0 -2
- data/lib/regexp_parser/expression/methods/match_length.rb +2 -2
- data/lib/regexp_parser/expression/methods/strfregexp.rb +1 -1
- data/lib/regexp_parser/expression/methods/traverse.rb +2 -2
- data/lib/regexp_parser/expression/quantifier.rb +11 -2
- data/lib/regexp_parser/expression/sequence.rb +3 -20
- data/lib/regexp_parser/expression/subexpression.rb +1 -2
- data/lib/regexp_parser/expression.rb +7 -139
- data/lib/regexp_parser/lexer.rb +13 -11
- data/lib/regexp_parser/parser.rb +325 -344
- data/lib/regexp_parser/scanner/char_type.rl +11 -11
- data/lib/regexp_parser/scanner/properties/long.csv +604 -0
- data/lib/regexp_parser/scanner/properties/short.csv +242 -0
- data/lib/regexp_parser/scanner/property.rl +2 -2
- data/lib/regexp_parser/scanner/scanner.rl +235 -255
- data/lib/regexp_parser/scanner.rb +1324 -1387
- data/lib/regexp_parser/syntax/any.rb +4 -6
- data/lib/regexp_parser/syntax/base.rb +13 -15
- data/lib/regexp_parser/syntax/token/anchor.rb +15 -0
- data/lib/regexp_parser/syntax/{tokens → token}/assertion.rb +2 -2
- data/lib/regexp_parser/syntax/token/backreference.rb +30 -0
- data/lib/regexp_parser/syntax/{tokens → token}/character_set.rb +2 -2
- data/lib/regexp_parser/syntax/{tokens → token}/character_type.rb +3 -3
- data/lib/regexp_parser/syntax/{tokens → token}/conditional.rb +3 -3
- data/lib/regexp_parser/syntax/token/escape.rb +31 -0
- data/lib/regexp_parser/syntax/{tokens → token}/group.rb +7 -7
- data/lib/regexp_parser/syntax/{tokens → token}/keep.rb +1 -1
- data/lib/regexp_parser/syntax/{tokens → token}/meta.rb +2 -2
- data/lib/regexp_parser/syntax/{tokens → token}/posix_class.rb +3 -3
- data/lib/regexp_parser/syntax/token/quantifier.rb +35 -0
- data/lib/regexp_parser/syntax/token/unicode_property.rb +696 -0
- data/lib/regexp_parser/syntax/token.rb +45 -0
- data/lib/regexp_parser/syntax/version_lookup.rb +4 -4
- data/lib/regexp_parser/syntax/versions/1.8.6.rb +2 -2
- data/lib/regexp_parser/syntax/versions/1.9.1.rb +1 -1
- data/lib/regexp_parser/syntax/versions/3.1.0.rb +10 -0
- data/lib/regexp_parser/syntax.rb +8 -6
- data/lib/regexp_parser/token.rb +9 -20
- data/lib/regexp_parser/version.rb +1 -1
- data/lib/regexp_parser.rb +0 -2
- data/regexp_parser.gemspec +20 -22
- metadata +34 -165
- data/lib/regexp_parser/scanner/properties/long.yml +0 -594
- data/lib/regexp_parser/scanner/properties/short.yml +0 -237
- data/lib/regexp_parser/syntax/tokens/anchor.rb +0 -15
- data/lib/regexp_parser/syntax/tokens/backref.rb +0 -24
- data/lib/regexp_parser/syntax/tokens/escape.rb +0 -30
- data/lib/regexp_parser/syntax/tokens/quantifier.rb +0 -35
- data/lib/regexp_parser/syntax/tokens/unicode_property.rb +0 -675
- data/lib/regexp_parser/syntax/tokens.rb +0 -45
- data/spec/expression/base_spec.rb +0 -94
- data/spec/expression/clone_spec.rb +0 -120
- data/spec/expression/conditional_spec.rb +0 -89
- data/spec/expression/free_space_spec.rb +0 -27
- data/spec/expression/methods/match_length_spec.rb +0 -161
- data/spec/expression/methods/match_spec.rb +0 -25
- data/spec/expression/methods/strfregexp_spec.rb +0 -224
- data/spec/expression/methods/tests_spec.rb +0 -99
- data/spec/expression/methods/traverse_spec.rb +0 -161
- data/spec/expression/options_spec.rb +0 -128
- data/spec/expression/root_spec.rb +0 -9
- data/spec/expression/sequence_spec.rb +0 -9
- data/spec/expression/subexpression_spec.rb +0 -50
- data/spec/expression/to_h_spec.rb +0 -26
- data/spec/expression/to_s_spec.rb +0 -100
- data/spec/lexer/all_spec.rb +0 -22
- data/spec/lexer/conditionals_spec.rb +0 -53
- data/spec/lexer/delimiters_spec.rb +0 -68
- data/spec/lexer/escapes_spec.rb +0 -14
- data/spec/lexer/keep_spec.rb +0 -10
- data/spec/lexer/literals_spec.rb +0 -89
- data/spec/lexer/nesting_spec.rb +0 -99
- data/spec/lexer/refcalls_spec.rb +0 -55
- data/spec/parser/all_spec.rb +0 -43
- data/spec/parser/alternation_spec.rb +0 -88
- data/spec/parser/anchors_spec.rb +0 -17
- data/spec/parser/conditionals_spec.rb +0 -179
- data/spec/parser/errors_spec.rb +0 -30
- data/spec/parser/escapes_spec.rb +0 -121
- data/spec/parser/free_space_spec.rb +0 -130
- data/spec/parser/groups_spec.rb +0 -108
- data/spec/parser/keep_spec.rb +0 -6
- data/spec/parser/posix_classes_spec.rb +0 -8
- data/spec/parser/properties_spec.rb +0 -115
- data/spec/parser/quantifiers_spec.rb +0 -52
- data/spec/parser/refcalls_spec.rb +0 -112
- data/spec/parser/set/intersections_spec.rb +0 -127
- data/spec/parser/set/ranges_spec.rb +0 -111
- data/spec/parser/sets_spec.rb +0 -178
- data/spec/parser/types_spec.rb +0 -18
- data/spec/scanner/all_spec.rb +0 -18
- data/spec/scanner/anchors_spec.rb +0 -21
- data/spec/scanner/conditionals_spec.rb +0 -128
- data/spec/scanner/delimiters_spec.rb +0 -52
- data/spec/scanner/errors_spec.rb +0 -67
- data/spec/scanner/escapes_spec.rb +0 -53
- data/spec/scanner/free_space_spec.rb +0 -133
- data/spec/scanner/groups_spec.rb +0 -52
- data/spec/scanner/keep_spec.rb +0 -10
- data/spec/scanner/literals_spec.rb +0 -49
- data/spec/scanner/meta_spec.rb +0 -18
- data/spec/scanner/properties_spec.rb +0 -64
- data/spec/scanner/quantifiers_spec.rb +0 -20
- data/spec/scanner/refcalls_spec.rb +0 -36
- data/spec/scanner/sets_spec.rb +0 -102
- data/spec/scanner/types_spec.rb +0 -14
- data/spec/spec_helper.rb +0 -15
- data/spec/support/runner.rb +0 -42
- data/spec/support/shared_examples.rb +0 -77
- data/spec/support/warning_extractor.rb +0 -60
- data/spec/syntax/syntax_spec.rb +0 -48
- data/spec/syntax/syntax_token_map_spec.rb +0 -23
- data/spec/syntax/versions/1.8.6_spec.rb +0 -17
- data/spec/syntax/versions/1.9.1_spec.rb +0 -10
- data/spec/syntax/versions/1.9.3_spec.rb +0 -9
- data/spec/syntax/versions/2.0.0_spec.rb +0 -13
- data/spec/syntax/versions/2.2.0_spec.rb +0 -9
- data/spec/syntax/versions/aliases_spec.rb +0 -37
- data/spec/token/token_spec.rb +0 -85
@@ -1,19 +1,21 @@
|
|
1
1
|
# -*- warn-indent:false; -*-
|
2
2
|
|
3
|
-
# line 1 "/Users/
|
3
|
+
# line 1 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
4
4
|
|
5
|
-
# line
|
5
|
+
# line 649 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
6
6
|
|
7
7
|
|
8
8
|
# THIS IS A GENERATED FILE, DO NOT EDIT DIRECTLY
|
9
9
|
# This file was generated from lib/regexp_parser/scanner/scanner.rl
|
10
10
|
|
11
|
+
require 'regexp_parser/error'
|
12
|
+
|
11
13
|
class Regexp::Scanner
|
12
14
|
# General scanner error (catch all)
|
13
|
-
class ScannerError <
|
15
|
+
class ScannerError < Regexp::Parser::Error; end
|
14
16
|
|
15
17
|
# Base for all scanner validation errors
|
16
|
-
class ValidationError <
|
18
|
+
class ValidationError < Regexp::Parser::Error
|
17
19
|
def initialize(reason)
|
18
20
|
super reason
|
19
21
|
end
|
@@ -67,21 +69,16 @@ class Regexp::Scanner
|
|
67
69
|
#
|
68
70
|
# This method may raise errors if a syntax error is encountered.
|
69
71
|
# --------------------------------------------------------------------------
|
70
|
-
def self.scan(input_object, &block)
|
71
|
-
new.scan(input_object, &block)
|
72
|
+
def self.scan(input_object, options: nil, &block)
|
73
|
+
new.scan(input_object, options: options, &block)
|
72
74
|
end
|
73
75
|
|
74
|
-
def scan(input_object, &block)
|
76
|
+
def scan(input_object, options: nil, &block)
|
75
77
|
self.literal = nil
|
76
78
|
stack = []
|
77
79
|
|
78
|
-
|
79
|
-
|
80
|
-
self.free_spacing = (input_object.options & Regexp::EXTENDED != 0)
|
81
|
-
else
|
82
|
-
input = input_object
|
83
|
-
self.free_spacing = false
|
84
|
-
end
|
80
|
+
input = input_object.is_a?(Regexp) ? input_object.source : input_object
|
81
|
+
self.free_spacing = free_spacing?(input_object, options)
|
85
82
|
self.spacing_stack = [{:free_spacing => free_spacing, :depth => 0}]
|
86
83
|
|
87
84
|
data = input.unpack("c*") if input.is_a?(String)
|
@@ -93,73 +90,77 @@ class Regexp::Scanner
|
|
93
90
|
self.set_depth = 0
|
94
91
|
self.group_depth = 0
|
95
92
|
self.conditional_stack = []
|
93
|
+
self.char_pos = 0
|
96
94
|
|
97
95
|
|
98
|
-
# line
|
96
|
+
# line 96 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
99
97
|
class << self
|
100
98
|
attr_accessor :_re_scanner_trans_keys
|
101
99
|
private :_re_scanner_trans_keys, :_re_scanner_trans_keys=
|
102
100
|
end
|
103
101
|
self._re_scanner_trans_keys = [
|
104
102
|
0, 0, -128, -65, -128, -65,
|
105
|
-
-128, -65,
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
62, 48, 57,
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
105, 105,
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
103
|
+
-128, -65, 41, 41, 39,
|
104
|
+
57, 39, 39, 33, 62,
|
105
|
+
62, 62, 39, 60, 39, 57,
|
106
|
+
39, 39, 48, 57, 39,
|
107
|
+
57, 39, 57, 48, 57,
|
108
|
+
39, 39, 45, 62, 62, 62,
|
109
|
+
48, 57, 48, 62, 43,
|
110
|
+
62, 48, 57, 62, 62,
|
111
|
+
39, 60, 39, 57, 39, 39,
|
112
|
+
48, 57, 39, 57, 39,
|
113
|
+
57, 48, 57, 45, 62,
|
114
|
+
62, 62, 48, 57, 48, 62,
|
115
|
+
43, 62, 48, 57, 48,
|
116
|
+
57, 48, 125, 44, 125,
|
117
|
+
123, 123, 9, 122, 9, 125,
|
118
|
+
9, 122, -128, -65, -128,
|
119
|
+
-65, 38, 38, 94, 120,
|
120
|
+
97, 120, 108, 115, 110, 112,
|
121
|
+
117, 117, 109, 109, 58,
|
122
|
+
58, 93, 93, 104, 104,
|
123
|
+
97, 97, 99, 99, 105, 105,
|
124
|
+
105, 105, 108, 108, 97,
|
125
|
+
97, 110, 110, 107, 107,
|
126
|
+
110, 110, 116, 116, 114, 114,
|
127
|
+
108, 108, 105, 105, 103,
|
128
|
+
103, 105, 105, 116, 116,
|
129
|
+
114, 114, 97, 97, 112, 112,
|
130
|
+
104, 104, 111, 111, 119,
|
131
|
+
119, 101, 101, 114, 114,
|
132
|
+
114, 117, 105, 105, 110, 110,
|
133
|
+
110, 110, 99, 99, 112,
|
134
|
+
112, 97, 97, 99, 99,
|
135
|
+
101, 101, 112, 112, 112, 112,
|
136
|
+
111, 111, 114, 114, 100,
|
137
|
+
100, 100, 100, -128, -65,
|
138
|
+
-128, -65, 45, 45, 92, 92,
|
138
139
|
92, 92, 45, 45, 92,
|
139
140
|
92, 92, 92, 48, 123,
|
140
141
|
48, 102, 48, 102, 48, 102,
|
141
142
|
48, 102, 9, 125, 9,
|
142
143
|
125, 9, 125, 9, 125,
|
143
144
|
9, 125, 9, 125, 48, 123,
|
144
|
-
|
145
|
-
57,
|
146
|
-
-62, -
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
43, 63, 43, 63,
|
151
|
-
|
152
|
-
|
153
|
-
-
|
154
|
-
-65,
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
0
|
145
|
+
39, 39, 41, 41, 41,
|
146
|
+
57, 62, 62, -128, 127,
|
147
|
+
-62, -12, 1, 127, 1, 127,
|
148
|
+
9, 32, 33, 126, 10,
|
149
|
+
10, 63, 63, 33, 126,
|
150
|
+
33, 126, 62, 62, 43, 63,
|
151
|
+
43, 63, 43, 63, 65,
|
152
|
+
122, 44, 57, 43, 63,
|
153
|
+
68, 119, 80, 112, -62, 125,
|
154
|
+
-128, -65, -128, -65, -128,
|
155
|
+
-65, 38, 38, 38, 93,
|
156
|
+
58, 58, 67, 120, -62, 125,
|
157
|
+
-128, -65, -128, -65, -128,
|
158
|
+
-65, 48, 55, 48, 55,
|
159
|
+
77, 77, 45, 45, 0, 0,
|
160
|
+
67, 99, 45, 45, 0,
|
161
|
+
0, 92, 92, 48, 102,
|
162
|
+
39, 60, 39, 57, 49, 57,
|
163
|
+
41, 57, 45, 62, 0
|
163
164
|
]
|
164
165
|
|
165
166
|
class << self
|
@@ -167,26 +168,27 @@ class << self
|
|
167
168
|
private :_re_scanner_key_spans, :_re_scanner_key_spans=
|
168
169
|
end
|
169
170
|
self._re_scanner_key_spans = [
|
170
|
-
0, 64, 64, 64,
|
171
|
-
1,
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
171
|
+
0, 64, 64, 64, 1, 19, 1, 30,
|
172
|
+
1, 22, 19, 1, 10, 19, 19, 10,
|
173
|
+
1, 18, 1, 10, 15, 20, 10, 1,
|
174
|
+
22, 19, 1, 10, 19, 19, 10, 18,
|
175
|
+
1, 10, 15, 20, 10, 10, 78, 82,
|
176
|
+
1, 114, 117, 114, 64, 64, 1, 27,
|
177
|
+
24, 8, 3, 1, 1, 1, 1, 1,
|
176
178
|
1, 1, 1, 1, 1, 1, 1, 1,
|
177
179
|
1, 1, 1, 1, 1, 1, 1, 1,
|
178
|
-
1, 1, 1, 1, 1, 1, 1, 4,
|
179
180
|
1, 1, 1, 1, 1, 1, 1, 1,
|
180
|
-
|
181
|
-
1, 1, 1, 1, 1, 1, 1,
|
181
|
+
4, 1, 1, 1, 1, 1, 1, 1,
|
182
|
+
1, 1, 1, 1, 1, 1, 1, 64,
|
183
|
+
64, 1, 1, 1, 1, 1, 1, 76,
|
182
184
|
55, 55, 55, 55, 117, 117, 117, 117,
|
183
|
-
117, 117, 76, 1,
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
0, 33, 1, 0, 1, 55,
|
189
|
-
9, 17,
|
185
|
+
117, 117, 76, 1, 1, 17, 1, 256,
|
186
|
+
51, 127, 127, 24, 94, 1, 1, 94,
|
187
|
+
94, 1, 21, 21, 21, 58, 14, 21,
|
188
|
+
52, 33, 188, 64, 64, 64, 1, 56,
|
189
|
+
1, 54, 188, 64, 64, 64, 8, 8,
|
190
|
+
1, 1, 0, 33, 1, 0, 1, 55,
|
191
|
+
22, 19, 9, 17, 18
|
190
192
|
]
|
191
193
|
|
192
194
|
class << self
|
@@ -194,26 +196,27 @@ class << self
|
|
194
196
|
private :_re_scanner_index_offsets, :_re_scanner_index_offsets=
|
195
197
|
end
|
196
198
|
self._re_scanner_index_offsets = [
|
197
|
-
0, 0, 65, 130, 195,
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
199
|
+
0, 0, 65, 130, 195, 197, 217, 219,
|
200
|
+
250, 252, 275, 295, 297, 308, 328, 348,
|
201
|
+
359, 361, 380, 382, 393, 409, 430, 441,
|
202
|
+
443, 466, 486, 488, 499, 519, 539, 550,
|
203
|
+
569, 571, 582, 598, 619, 630, 641, 720,
|
204
|
+
803, 805, 920, 1038, 1153, 1218, 1283, 1285,
|
205
|
+
1313, 1338, 1347, 1351, 1353, 1355, 1357, 1359,
|
206
|
+
1361, 1363, 1365, 1367, 1369, 1371, 1373, 1375,
|
207
|
+
1377, 1379, 1381, 1383, 1385, 1387, 1389, 1391,
|
208
|
+
1393, 1395, 1397, 1399, 1401, 1403, 1405, 1407,
|
209
|
+
1409, 1414, 1416, 1418, 1420, 1422, 1424, 1426,
|
210
|
+
1428, 1430, 1432, 1434, 1436, 1438, 1440, 1442,
|
211
|
+
1507, 1572, 1574, 1576, 1578, 1580, 1582, 1584,
|
212
|
+
1661, 1717, 1773, 1829, 1885, 2003, 2121, 2239,
|
213
|
+
2357, 2475, 2593, 2670, 2672, 2674, 2692, 2694,
|
214
|
+
2951, 3003, 3131, 3259, 3284, 3379, 3381, 3383,
|
215
|
+
3478, 3573, 3575, 3597, 3619, 3641, 3700, 3715,
|
216
|
+
3737, 3790, 3824, 4013, 4078, 4143, 4208, 4210,
|
217
|
+
4267, 4269, 4324, 4513, 4578, 4643, 4708, 4717,
|
218
|
+
4726, 4728, 4730, 4731, 4765, 4767, 4768, 4770,
|
219
|
+
4826, 4849, 4869, 4879, 4897
|
217
220
|
]
|
218
221
|
|
219
222
|
class << self
|
@@ -245,687 +248,597 @@ self._re_scanner_indicies = [
|
|
245
248
|
3, 3, 3, 3, 3, 3, 3, 3,
|
246
249
|
3, 3, 3, 3, 3, 3, 3, 3,
|
247
250
|
3, 3, 3, 3, 3, 3, 3, 3,
|
248
|
-
3, 3, 0,
|
249
|
-
|
251
|
+
3, 3, 0, 6, 5, 8, 7, 7,
|
252
|
+
7, 7, 7, 4, 7, 7, 4, 4,
|
250
253
|
4, 4, 4, 4, 4, 4, 4, 4,
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
4, 4, 4, 4,
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
6, 6, 6, 6, 6, 0, 9, 8,
|
273
|
-
12, 11, 13, 10, 10, 10, 10, 10,
|
274
|
-
10, 10, 10, 14, 14, 14, 14, 14,
|
275
|
-
14, 14, 14, 14, 14, 10, 10, 10,
|
276
|
-
10, 10, 10, 10, 14, 14, 14, 14,
|
277
|
-
14, 14, 14, 14, 14, 14, 14, 14,
|
278
|
-
14, 14, 14, 14, 14, 14, 14, 14,
|
279
|
-
14, 14, 14, 14, 14, 14, 10, 10,
|
280
|
-
10, 10, 14, 10, 14, 14, 14, 14,
|
281
|
-
14, 14, 14, 14, 14, 14, 14, 14,
|
282
|
-
14, 14, 14, 14, 14, 14, 14, 14,
|
283
|
-
14, 14, 14, 14, 14, 14, 10, 15,
|
284
|
-
10, 10, 10, 10, 10, 10, 10, 10,
|
285
|
-
10, 10, 10, 10, 10, 10, 16, 16,
|
286
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
287
|
-
10, 10, 10, 15, 13, 10, 10, 16,
|
288
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
289
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
290
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
291
|
-
16, 10, 10, 10, 10, 16, 10, 16,
|
292
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
293
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
294
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
295
|
-
16, 10, 16, 16, 16, 16, 16, 16,
|
296
|
-
16, 16, 16, 16, 10, 10, 10, 10,
|
297
|
-
13, 10, 10, 16, 16, 16, 16, 16,
|
298
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
299
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
300
|
-
16, 16, 16, 16, 16, 10, 10, 10,
|
301
|
-
10, 16, 10, 16, 16, 16, 16, 16,
|
302
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
303
|
-
16, 16, 16, 16, 16, 16, 16, 16,
|
304
|
-
16, 16, 16, 16, 16, 10, 18, 17,
|
305
|
-
17, 17, 17, 17, 17, 17, 17, 17,
|
306
|
-
17, 17, 17, 17, 17, 17, 17, 17,
|
307
|
-
17, 17, 17, 19, 17, 20, 17, 17,
|
308
|
-
17, 21, 17, 22, 17, 17, 23, 23,
|
309
|
-
23, 23, 23, 23, 23, 23, 23, 23,
|
310
|
-
17, 17, 17, 17, 17, 17, 17, 23,
|
311
|
-
23, 23, 23, 23, 23, 23, 23, 23,
|
312
|
-
23, 23, 23, 23, 23, 23, 23, 23,
|
313
|
-
23, 23, 23, 23, 23, 23, 23, 23,
|
314
|
-
23, 17, 17, 17, 17, 23, 17, 23,
|
315
|
-
23, 23, 23, 23, 23, 23, 23, 23,
|
316
|
-
23, 23, 23, 23, 23, 23, 23, 23,
|
317
|
-
23, 23, 23, 23, 23, 23, 23, 23,
|
318
|
-
23, 17, 24, 24, 24, 24, 24, 24,
|
319
|
-
24, 24, 24, 24, 17, 20, 17, 17,
|
320
|
-
17, 17, 17, 17, 17, 17, 24, 24,
|
254
|
+
7, 8, 7, 10, 9, 9, 9, 9,
|
255
|
+
9, 9, 9, 9, 9, 9, 9, 4,
|
256
|
+
9, 9, 4, 4, 4, 4, 4, 4,
|
257
|
+
4, 4, 4, 4, 9, 9, 9, 10,
|
258
|
+
8, 9, 8, 9, 12, 11, 11, 11,
|
259
|
+
11, 11, 11, 11, 11, 11, 11, 11,
|
260
|
+
11, 11, 11, 11, 11, 11, 11, 11,
|
261
|
+
11, 13, 11, 15, 14, 14, 14, 14,
|
262
|
+
14, 16, 14, 14, 17, 18, 18, 18,
|
263
|
+
18, 18, 18, 18, 18, 18, 14, 15,
|
264
|
+
14, 19, 18, 18, 18, 18, 18, 18,
|
265
|
+
18, 18, 18, 11, 15, 11, 11, 11,
|
266
|
+
11, 11, 11, 11, 11, 19, 19, 19,
|
267
|
+
19, 19, 19, 19, 19, 19, 19, 11,
|
268
|
+
15, 11, 11, 11, 20, 11, 20, 11,
|
269
|
+
11, 18, 18, 18, 18, 18, 18, 18,
|
270
|
+
18, 18, 18, 11, 19, 19, 19, 19,
|
271
|
+
19, 19, 19, 19, 19, 19, 11, 15,
|
272
|
+
11, 22, 21, 21, 23, 24, 24, 24,
|
273
|
+
24, 24, 24, 24, 24, 24, 21, 21,
|
274
|
+
21, 21, 15, 21, 15, 21, 25, 24,
|
321
275
|
24, 24, 24, 24, 24, 24, 24, 24,
|
322
|
-
|
323
|
-
25, 25, 25,
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
17, 30, 30, 30, 30, 30, 30, 30,
|
353
|
-
30, 30, 30, 17, 17, 17, 17, 20,
|
354
|
-
17, 26, 17, 26, 17, 17, 28, 28,
|
355
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
356
|
-
17, 17, 17, 17, 20, 17, 17, 28,
|
357
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
358
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
359
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
360
|
-
28, 17, 17, 17, 17, 28, 17, 28,
|
361
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
362
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
363
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
364
|
-
28, 17, 32, 32, 32, 32, 32, 32,
|
365
|
-
32, 32, 32, 32, 31, 32, 32, 32,
|
366
|
-
32, 32, 32, 32, 32, 32, 32, 31,
|
367
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
368
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
369
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
370
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
371
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
372
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
373
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
374
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
375
|
-
31, 31, 33, 31, 32, 31, 31, 31,
|
376
|
-
34, 34, 34, 34, 34, 34, 34, 34,
|
377
|
-
34, 34, 31, 31, 31, 31, 31, 31,
|
378
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
379
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
380
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
381
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
382
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
383
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
384
|
-
31, 31, 31, 31, 31, 31, 31, 31,
|
385
|
-
31, 31, 31, 31, 31, 33, 31, 35,
|
386
|
-
36, 37, 37, 37, 37, 37, 36, 36,
|
387
|
-
36, 36, 36, 36, 36, 36, 36, 36,
|
388
|
-
36, 36, 36, 36, 36, 36, 36, 36,
|
389
|
-
37, 36, 36, 36, 36, 36, 36, 36,
|
390
|
-
36, 36, 36, 36, 36, 37, 37, 36,
|
391
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
392
|
-
37, 37, 36, 36, 36, 37, 36, 36,
|
393
|
-
36, 37, 37, 37, 37, 37, 37, 37,
|
394
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
395
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
396
|
-
37, 37, 37, 36, 36, 36, 38, 37,
|
397
|
-
36, 37, 37, 37, 37, 37, 37, 37,
|
398
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
399
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
400
|
-
37, 37, 37, 36, 37, 37, 37, 37,
|
401
|
-
37, 36, 36, 36, 36, 36, 36, 36,
|
402
|
-
36, 36, 36, 36, 36, 36, 36, 36,
|
403
|
-
36, 36, 36, 37, 36, 36, 36, 36,
|
404
|
-
36, 36, 36, 36, 36, 36, 36, 36,
|
405
|
-
37, 37, 36, 37, 37, 37, 37, 37,
|
406
|
-
37, 37, 37, 37, 37, 36, 36, 36,
|
407
|
-
37, 36, 36, 36, 37, 37, 37, 37,
|
408
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
409
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
410
|
-
37, 37, 37, 37, 37, 37, 36, 36,
|
411
|
-
36, 36, 37, 36, 37, 37, 37, 37,
|
412
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
413
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
414
|
-
37, 37, 37, 37, 37, 37, 36, 36,
|
415
|
-
39, 36, 37, 37, 37, 37, 37, 36,
|
416
|
-
36, 36, 36, 36, 36, 36, 36, 36,
|
417
|
-
36, 36, 36, 36, 36, 36, 36, 36,
|
418
|
-
36, 37, 36, 36, 36, 36, 36, 36,
|
419
|
-
36, 36, 36, 36, 36, 36, 37, 37,
|
420
|
-
36, 37, 37, 37, 37, 37, 37, 37,
|
421
|
-
37, 37, 37, 36, 36, 36, 37, 36,
|
422
|
-
36, 36, 37, 37, 37, 37, 37, 37,
|
423
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
424
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
425
|
-
37, 37, 37, 37, 36, 36, 36, 36,
|
426
|
-
37, 36, 37, 37, 37, 37, 37, 37,
|
427
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
428
|
-
37, 37, 37, 37, 37, 37, 37, 37,
|
429
|
-
37, 37, 37, 37, 36, 41, 41, 41,
|
430
|
-
41, 41, 41, 41, 41, 41, 41, 41,
|
431
|
-
41, 41, 41, 41, 41, 41, 41, 41,
|
432
|
-
41, 41, 41, 41, 41, 41, 41, 41,
|
433
|
-
41, 41, 41, 41, 41, 41, 41, 41,
|
434
|
-
41, 41, 41, 41, 41, 41, 41, 41,
|
435
|
-
41, 41, 41, 41, 41, 41, 41, 41,
|
276
|
+
11, 25, 25, 25, 25, 25, 25, 25,
|
277
|
+
25, 25, 25, 11, 11, 11, 11, 15,
|
278
|
+
11, 26, 11, 26, 11, 11, 24, 24,
|
279
|
+
24, 24, 24, 24, 24, 24, 24, 24,
|
280
|
+
11, 11, 11, 11, 15, 11, 25, 25,
|
281
|
+
25, 25, 25, 25, 25, 25, 25, 25,
|
282
|
+
11, 15, 11, 27, 11, 11, 11, 11,
|
283
|
+
11, 11, 11, 11, 11, 11, 11, 11,
|
284
|
+
11, 11, 11, 11, 11, 11, 11, 11,
|
285
|
+
28, 11, 30, 29, 29, 29, 29, 29,
|
286
|
+
31, 29, 29, 11, 32, 32, 32, 32,
|
287
|
+
32, 32, 32, 32, 32, 29, 30, 29,
|
288
|
+
33, 32, 32, 32, 32, 32, 32, 32,
|
289
|
+
32, 32, 11, 30, 11, 11, 11, 11,
|
290
|
+
11, 11, 11, 11, 33, 33, 33, 33,
|
291
|
+
33, 33, 33, 33, 33, 33, 11, 30,
|
292
|
+
11, 11, 11, 34, 11, 34, 11, 11,
|
293
|
+
32, 32, 32, 32, 32, 32, 32, 32,
|
294
|
+
32, 32, 11, 33, 33, 33, 33, 33,
|
295
|
+
33, 33, 33, 33, 33, 11, 36, 35,
|
296
|
+
35, 11, 37, 37, 37, 37, 37, 37,
|
297
|
+
37, 37, 37, 35, 35, 35, 35, 30,
|
298
|
+
35, 30, 35, 38, 37, 37, 37, 37,
|
299
|
+
37, 37, 37, 37, 37, 11, 38, 38,
|
300
|
+
38, 38, 38, 38, 38, 38, 38, 38,
|
301
|
+
11, 11, 11, 11, 30, 11, 39, 11,
|
302
|
+
39, 11, 11, 37, 37, 37, 37, 37,
|
303
|
+
37, 37, 37, 37, 37, 11, 11, 11,
|
304
|
+
11, 30, 11, 38, 38, 38, 38, 38,
|
305
|
+
38, 38, 38, 38, 38, 11, 41, 41,
|
436
306
|
41, 41, 41, 41, 41, 41, 41, 41,
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
307
|
+
40, 41, 41, 41, 41, 41, 41, 41,
|
308
|
+
41, 41, 41, 40, 40, 40, 40, 40,
|
309
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
310
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
311
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
312
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
313
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
314
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
315
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
316
|
+
40, 40, 40, 40, 40, 40, 42, 40,
|
317
|
+
41, 40, 40, 40, 43, 43, 43, 43,
|
318
|
+
43, 43, 43, 43, 43, 43, 40, 40,
|
319
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
320
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
321
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
322
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
323
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
324
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
325
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
326
|
+
40, 40, 40, 40, 40, 40, 40, 40,
|
327
|
+
40, 42, 40, 44, 45, 46, 46, 46,
|
328
|
+
46, 46, 45, 45, 45, 45, 45, 45,
|
329
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
330
|
+
45, 45, 45, 45, 46, 45, 45, 45,
|
331
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
332
|
+
45, 46, 46, 45, 46, 46, 46, 46,
|
333
|
+
46, 46, 46, 46, 46, 46, 45, 45,
|
334
|
+
45, 46, 45, 45, 45, 46, 46, 46,
|
447
335
|
46, 46, 46, 46, 46, 46, 46, 46,
|
448
|
-
46, 46, 46, 46, 46, 47, 47, 47,
|
449
|
-
47, 47, 47, 47, 47, 47, 47, 47,
|
450
|
-
47, 47, 47, 47, 47, 47, 47, 47,
|
451
|
-
47, 47, 47, 47, 47, 47, 47, 46,
|
452
|
-
46, 46, 46, 46, 46, 47, 47, 47,
|
453
|
-
47, 47, 47, 47, 47, 47, 47, 47,
|
454
|
-
47, 47, 47, 47, 47, 47, 47, 47,
|
455
|
-
47, 47, 47, 47, 47, 47, 47, 46,
|
456
|
-
47, 48, 46, 46, 46, 46, 46, 46,
|
457
336
|
46, 46, 46, 46, 46, 46, 46, 46,
|
458
|
-
46, 46, 46, 46,
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
46, 46, 46, 46,
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
46, 46, 46,
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
46,
|
473
|
-
46, 46,
|
474
|
-
46,
|
475
|
-
46,
|
476
|
-
46,
|
477
|
-
46,
|
478
|
-
46,
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
46, 46, 46, 46, 46, 46,
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
151, 151, 151, 151, 151, 151, 151, 151,
|
704
|
-
151, 151, 151, 151, 151, 151, 151, 151,
|
705
|
-
151, 151, 151, 151, 151, 151, 151, 151,
|
706
|
-
151, 151, 151, 151, 151, 151, 151, 151,
|
707
|
-
151, 151, 151, 151, 151, 151, 151, 151,
|
708
|
-
151, 133, 151, 133, 133, 133, 133, 133,
|
709
|
-
133, 133, 133, 134, 134, 134, 134, 134,
|
710
|
-
133, 133, 133, 133, 133, 133, 133, 133,
|
711
|
-
133, 133, 133, 133, 133, 133, 133, 133,
|
712
|
-
133, 133, 135, 152, 152, 152, 152, 152,
|
713
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
714
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
715
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
716
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
717
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
718
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
719
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
720
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
721
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
722
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
723
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
724
|
-
152, 133, 152, 135, 135, 135, 135, 135,
|
725
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
726
|
-
152, 152, 152, 152, 152, 152, 152, 152,
|
727
|
-
152, 152, 135, 152, 136, 136, 136, 151,
|
728
|
-
136, 136, 136, 151, 151, 151, 151, 136,
|
729
|
-
136, 151, 136, 136, 136, 136, 136, 136,
|
730
|
-
136, 136, 136, 136, 136, 136, 136, 136,
|
731
|
-
136, 136, 151, 136, 136, 136, 136, 136,
|
732
|
-
136, 136, 136, 136, 136, 136, 136, 136,
|
733
|
-
136, 136, 136, 136, 136, 136, 136, 136,
|
734
|
-
136, 136, 136, 136, 136, 136, 151, 151,
|
735
|
-
151, 151, 136, 136, 136, 136, 136, 136,
|
736
|
-
136, 136, 136, 136, 136, 136, 136, 136,
|
737
|
-
136, 136, 136, 136, 136, 136, 136, 136,
|
738
|
-
136, 136, 136, 136, 136, 136, 151, 151,
|
739
|
-
151, 136, 151, 9, 8, 8, 8, 8,
|
740
|
-
8, 8, 8, 8, 8, 8, 8, 8,
|
741
|
-
8, 8, 8, 8, 8, 8, 8, 8,
|
742
|
-
8, 8, 137, 137, 137, 8, 137, 137,
|
743
|
-
137, 8, 8, 8, 8, 137, 137, 8,
|
744
|
-
137, 137, 137, 137, 137, 137, 137, 137,
|
337
|
+
46, 46, 46, 46, 46, 46, 46, 45,
|
338
|
+
45, 45, 47, 46, 45, 46, 46, 46,
|
339
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
340
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
341
|
+
46, 46, 46, 46, 46, 46, 46, 45,
|
342
|
+
46, 46, 46, 46, 46, 45, 45, 45,
|
343
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
344
|
+
45, 45, 45, 45, 45, 45, 45, 46,
|
345
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
346
|
+
45, 45, 45, 45, 46, 46, 45, 46,
|
347
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
348
|
+
46, 45, 45, 45, 46, 45, 45, 45,
|
349
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
350
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
351
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
352
|
+
46, 46, 45, 45, 45, 45, 46, 45,
|
353
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
354
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
355
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
356
|
+
46, 46, 45, 45, 48, 45, 46, 46,
|
357
|
+
46, 46, 46, 45, 45, 45, 45, 45,
|
358
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
359
|
+
45, 45, 45, 45, 45, 46, 45, 45,
|
360
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
361
|
+
45, 45, 46, 46, 45, 46, 46, 46,
|
362
|
+
46, 46, 46, 46, 46, 46, 46, 45,
|
363
|
+
45, 45, 46, 45, 45, 45, 46, 46,
|
364
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
365
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
366
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
367
|
+
45, 45, 45, 45, 46, 45, 46, 46,
|
368
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
369
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
370
|
+
46, 46, 46, 46, 46, 46, 46, 46,
|
371
|
+
45, 50, 50, 50, 50, 50, 50, 50,
|
372
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
373
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
374
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
375
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
376
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
377
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
378
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
379
|
+
50, 49, 51, 51, 51, 51, 51, 51,
|
380
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
381
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
382
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
383
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
384
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
385
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
386
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
387
|
+
51, 51, 49, 53, 52, 56, 55, 55,
|
388
|
+
57, 58, 59, 60, 55, 55, 61, 55,
|
389
|
+
55, 55, 55, 62, 55, 55, 55, 63,
|
390
|
+
55, 55, 64, 55, 65, 55, 66, 67,
|
391
|
+
55, 57, 58, 59, 60, 55, 55, 61,
|
392
|
+
55, 55, 55, 55, 62, 55, 55, 55,
|
393
|
+
63, 55, 55, 64, 55, 65, 55, 66,
|
394
|
+
67, 55, 68, 55, 55, 55, 55, 55,
|
395
|
+
55, 69, 55, 70, 55, 71, 55, 72,
|
396
|
+
55, 73, 55, 74, 55, 75, 55, 76,
|
397
|
+
55, 73, 55, 77, 55, 78, 55, 73,
|
398
|
+
55, 79, 55, 80, 55, 81, 55, 73,
|
399
|
+
55, 82, 55, 83, 55, 84, 55, 73,
|
400
|
+
55, 85, 55, 86, 55, 87, 55, 73,
|
401
|
+
55, 88, 55, 89, 55, 90, 55, 73,
|
402
|
+
55, 91, 55, 92, 55, 93, 55, 73,
|
403
|
+
55, 94, 55, 55, 95, 55, 96, 55,
|
404
|
+
87, 55, 97, 55, 87, 55, 98, 55,
|
405
|
+
99, 55, 100, 55, 73, 55, 101, 55,
|
406
|
+
92, 55, 102, 55, 103, 55, 73, 55,
|
407
|
+
60, 55, 105, 105, 105, 105, 105, 105,
|
408
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
409
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
410
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
411
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
412
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
413
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
414
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
415
|
+
105, 105, 104, 106, 106, 106, 106, 106,
|
416
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
417
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
418
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
419
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
420
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
421
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
422
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
423
|
+
106, 106, 106, 104, 107, 45, 109, 108,
|
424
|
+
111, 108, 112, 45, 114, 113, 116, 113,
|
425
|
+
117, 117, 117, 117, 117, 117, 117, 117,
|
426
|
+
117, 117, 45, 45, 45, 45, 45, 45,
|
427
|
+
45, 117, 117, 117, 117, 117, 117, 45,
|
428
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
429
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
430
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
431
|
+
45, 117, 117, 117, 117, 117, 117, 45,
|
432
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
433
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
434
|
+
45, 45, 45, 118, 45, 119, 119, 119,
|
435
|
+
119, 119, 119, 119, 119, 119, 119, 45,
|
436
|
+
45, 45, 45, 45, 45, 45, 119, 119,
|
437
|
+
119, 119, 119, 119, 45, 45, 45, 45,
|
438
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
439
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
440
|
+
45, 45, 45, 45, 45, 45, 119, 119,
|
441
|
+
119, 119, 119, 119, 45, 120, 120, 120,
|
442
|
+
120, 120, 120, 120, 120, 120, 120, 45,
|
443
|
+
45, 45, 45, 45, 45, 45, 120, 120,
|
444
|
+
120, 120, 120, 120, 45, 45, 45, 45,
|
445
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
446
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
447
|
+
45, 45, 45, 45, 45, 45, 120, 120,
|
448
|
+
120, 120, 120, 120, 45, 121, 121, 121,
|
449
|
+
121, 121, 121, 121, 121, 121, 121, 45,
|
450
|
+
45, 45, 45, 45, 45, 45, 121, 121,
|
451
|
+
121, 121, 121, 121, 45, 45, 45, 45,
|
452
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
453
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
454
|
+
45, 45, 45, 45, 45, 45, 121, 121,
|
455
|
+
121, 121, 121, 121, 45, 122, 122, 122,
|
456
|
+
122, 122, 122, 122, 122, 122, 122, 45,
|
457
|
+
45, 45, 45, 45, 45, 45, 122, 122,
|
458
|
+
122, 122, 122, 122, 45, 45, 45, 45,
|
459
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
460
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
461
|
+
45, 45, 45, 45, 45, 45, 122, 122,
|
462
|
+
122, 122, 122, 122, 45, 118, 118, 118,
|
463
|
+
118, 118, 45, 45, 45, 45, 45, 45,
|
464
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
465
|
+
45, 45, 45, 45, 118, 45, 45, 45,
|
466
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
467
|
+
45, 45, 45, 45, 123, 123, 123, 123,
|
468
|
+
123, 123, 123, 123, 123, 123, 45, 45,
|
469
|
+
45, 45, 45, 45, 45, 123, 123, 123,
|
470
|
+
123, 123, 123, 45, 45, 45, 45, 45,
|
471
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
472
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
473
|
+
45, 45, 45, 45, 45, 123, 123, 123,
|
474
|
+
123, 123, 123, 45, 45, 45, 45, 45,
|
475
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
476
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
477
|
+
45, 121, 45, 118, 118, 118, 118, 118,
|
478
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
479
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
480
|
+
45, 45, 118, 45, 45, 45, 45, 45,
|
481
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
482
|
+
45, 45, 124, 124, 124, 124, 124, 124,
|
483
|
+
124, 124, 124, 124, 45, 45, 45, 45,
|
484
|
+
45, 45, 45, 124, 124, 124, 124, 124,
|
485
|
+
124, 45, 45, 45, 45, 45, 45, 45,
|
486
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
487
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
488
|
+
45, 45, 45, 124, 124, 124, 124, 124,
|
489
|
+
124, 45, 45, 45, 45, 45, 45, 45,
|
490
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
491
|
+
45, 45, 45, 45, 45, 45, 45, 121,
|
492
|
+
45, 118, 118, 118, 118, 118, 45, 45,
|
493
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
494
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
495
|
+
118, 45, 45, 45, 45, 45, 45, 45,
|
496
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
497
|
+
125, 125, 125, 125, 125, 125, 125, 125,
|
498
|
+
125, 125, 45, 45, 45, 45, 45, 45,
|
499
|
+
45, 125, 125, 125, 125, 125, 125, 45,
|
500
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
501
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
502
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
503
|
+
45, 125, 125, 125, 125, 125, 125, 45,
|
504
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
505
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
506
|
+
45, 45, 45, 45, 45, 121, 45, 118,
|
507
|
+
118, 118, 118, 118, 45, 45, 45, 45,
|
508
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
509
|
+
45, 45, 45, 45, 45, 45, 118, 45,
|
510
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
511
|
+
45, 45, 45, 45, 45, 45, 126, 126,
|
512
|
+
126, 126, 126, 126, 126, 126, 126, 126,
|
513
|
+
45, 45, 45, 45, 45, 45, 45, 126,
|
514
|
+
126, 126, 126, 126, 126, 45, 45, 45,
|
515
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
516
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
517
|
+
45, 45, 45, 45, 45, 45, 45, 126,
|
518
|
+
126, 126, 126, 126, 126, 45, 45, 45,
|
519
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
520
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
521
|
+
45, 45, 45, 121, 45, 118, 118, 118,
|
522
|
+
118, 118, 45, 45, 45, 45, 45, 45,
|
523
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
524
|
+
45, 45, 45, 45, 118, 45, 45, 45,
|
525
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
526
|
+
45, 45, 45, 45, 127, 127, 127, 127,
|
527
|
+
127, 127, 127, 127, 127, 127, 45, 45,
|
528
|
+
45, 45, 45, 45, 45, 127, 127, 127,
|
529
|
+
127, 127, 127, 45, 45, 45, 45, 45,
|
530
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
531
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
532
|
+
45, 45, 45, 45, 45, 127, 127, 127,
|
533
|
+
127, 127, 127, 45, 45, 45, 45, 45,
|
534
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
535
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
536
|
+
45, 121, 45, 118, 118, 118, 118, 118,
|
537
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
538
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
539
|
+
45, 45, 118, 45, 45, 45, 45, 45,
|
540
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
541
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
542
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
543
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
544
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
545
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
546
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
547
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
548
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
549
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
550
|
+
45, 45, 45, 45, 45, 45, 45, 121,
|
551
|
+
45, 129, 129, 129, 129, 129, 129, 129,
|
552
|
+
129, 129, 129, 128, 128, 128, 128, 128,
|
553
|
+
128, 128, 129, 129, 129, 129, 129, 129,
|
554
|
+
128, 128, 128, 128, 128, 128, 128, 128,
|
555
|
+
128, 128, 128, 128, 128, 128, 128, 128,
|
556
|
+
128, 128, 128, 128, 128, 128, 128, 128,
|
557
|
+
128, 128, 129, 129, 129, 129, 129, 129,
|
558
|
+
128, 128, 128, 128, 128, 128, 128, 128,
|
559
|
+
128, 128, 128, 128, 128, 128, 128, 128,
|
560
|
+
128, 128, 128, 128, 45, 128, 132, 131,
|
561
|
+
133, 130, 133, 130, 130, 130, 130, 130,
|
562
|
+
130, 134, 134, 134, 134, 134, 134, 134,
|
563
|
+
134, 134, 134, 130, 132, 135, 45, 45,
|
564
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
565
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
566
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
567
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
568
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
569
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
570
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
571
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
572
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
573
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
574
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
575
|
+
2, 2, 2, 2, 2, 2, 3, 3,
|
576
|
+
3, 3, 3, 3, 3, 3, 3, 3,
|
577
|
+
3, 3, 3, 3, 3, 3, 136, 136,
|
578
|
+
136, 136, 136, 45, 45, 45, 45, 45,
|
579
|
+
45, 45, 45, 45, 45, 45, 45, 137,
|
580
|
+
137, 137, 137, 137, 137, 137, 137, 138,
|
581
|
+
138, 138, 138, 138, 137, 137, 137, 137,
|
745
582
|
137, 137, 137, 137, 137, 137, 137, 137,
|
746
|
-
|
583
|
+
137, 137, 137, 137, 137, 137, 139, 140,
|
584
|
+
140, 141, 142, 140, 140, 140, 143, 144,
|
585
|
+
145, 146, 140, 140, 147, 140, 140, 140,
|
586
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
587
|
+
140, 140, 140, 140, 140, 148, 140, 140,
|
588
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
589
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
590
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
591
|
+
140, 149, 150, 151, 152, 140, 140, 140,
|
592
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
593
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
594
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
595
|
+
140, 153, 154, 151, 140, 137, 140, 2,
|
596
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
597
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
598
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
599
|
+
2, 2, 2, 2, 2, 3, 3, 3,
|
600
|
+
3, 3, 3, 3, 3, 3, 3, 3,
|
601
|
+
3, 3, 3, 3, 3, 136, 136, 136,
|
602
|
+
136, 136, 155, 137, 137, 137, 137, 137,
|
747
603
|
137, 137, 137, 137, 137, 137, 137, 137,
|
748
604
|
137, 137, 137, 137, 137, 137, 137, 137,
|
749
|
-
137, 137, 137, 137, 8, 8, 8, 8,
|
750
605
|
137, 137, 137, 137, 137, 137, 137, 137,
|
606
|
+
137, 137, 155, 155, 155, 155, 155, 155,
|
607
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
608
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
609
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
610
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
611
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
612
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
613
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
614
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
615
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
616
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
617
|
+
155, 155, 155, 155, 155, 155, 155, 155,
|
618
|
+
155, 137, 155, 137, 137, 137, 137, 137,
|
619
|
+
137, 137, 137, 138, 138, 138, 138, 138,
|
751
620
|
137, 137, 137, 137, 137, 137, 137, 137,
|
752
621
|
137, 137, 137, 137, 137, 137, 137, 137,
|
753
|
-
137, 137,
|
754
|
-
8, 154, 153, 15, 156, 11, 156, 156,
|
755
|
-
156, 14, 157, 155, 156, 156, 156, 156,
|
756
|
-
156, 156, 156, 156, 156, 156, 156, 156,
|
757
|
-
156, 156, 156, 156, 13, 156, 158, 15,
|
758
|
-
13, 156, 156, 156, 156, 156, 156, 156,
|
759
|
-
156, 156, 156, 156, 156, 156, 156, 156,
|
622
|
+
137, 137, 139, 156, 156, 156, 156, 156,
|
760
623
|
156, 156, 156, 156, 156, 156, 156, 156,
|
761
624
|
156, 156, 156, 156, 156, 156, 156, 156,
|
762
625
|
156, 156, 156, 156, 156, 156, 156, 156,
|
763
626
|
156, 156, 156, 156, 156, 156, 156, 156,
|
764
627
|
156, 156, 156, 156, 156, 156, 156, 156,
|
765
628
|
156, 156, 156, 156, 156, 156, 156, 156,
|
766
|
-
13, 156, 155, 156, 155, 156, 156, 156,
|
767
|
-
155, 155, 155, 156, 156, 156, 156, 156,
|
768
629
|
156, 156, 156, 156, 156, 156, 156, 156,
|
769
|
-
156, 156, 156, 159, 156, 155, 155, 155,
|
770
630
|
156, 156, 156, 156, 156, 156, 156, 156,
|
771
631
|
156, 156, 156, 156, 156, 156, 156, 156,
|
772
632
|
156, 156, 156, 156, 156, 156, 156, 156,
|
773
633
|
156, 156, 156, 156, 156, 156, 156, 156,
|
634
|
+
156, 137, 156, 139, 139, 139, 139, 139,
|
774
635
|
156, 156, 156, 156, 156, 156, 156, 156,
|
775
636
|
156, 156, 156, 156, 156, 156, 156, 156,
|
776
|
-
156, 156,
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
637
|
+
156, 156, 139, 156, 140, 140, 155, 155,
|
638
|
+
140, 140, 140, 155, 155, 155, 155, 140,
|
639
|
+
140, 155, 140, 140, 140, 140, 140, 140,
|
640
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
641
|
+
140, 140, 155, 140, 140, 140, 140, 140,
|
642
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
643
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
644
|
+
140, 140, 140, 140, 140, 140, 155, 155,
|
645
|
+
155, 155, 140, 140, 140, 140, 140, 140,
|
646
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
647
|
+
140, 140, 140, 140, 140, 140, 140, 140,
|
648
|
+
140, 140, 140, 140, 140, 140, 155, 155,
|
649
|
+
155, 140, 155, 158, 141, 160, 159, 163,
|
650
|
+
162, 5, 162, 162, 162, 164, 165, 161,
|
781
651
|
162, 162, 162, 162, 162, 162, 162, 162,
|
782
652
|
162, 162, 162, 162, 162, 162, 162, 162,
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
41, 41, 41, 41, 41, 41, 41, 41,
|
840
|
-
41, 41, 41, 41, 41, 41, 41, 186,
|
841
|
-
42, 42, 42, 42, 42, 42, 42, 42,
|
842
|
-
42, 42, 42, 42, 42, 42, 42, 42,
|
843
|
-
42, 42, 42, 42, 42, 42, 42, 42,
|
844
|
-
42, 42, 42, 42, 42, 42, 42, 42,
|
845
|
-
42, 42, 42, 42, 42, 42, 42, 42,
|
846
|
-
42, 42, 42, 42, 42, 42, 42, 42,
|
847
|
-
42, 42, 42, 42, 42, 42, 42, 42,
|
848
|
-
42, 42, 42, 42, 42, 42, 42, 42,
|
849
|
-
186, 187, 187, 187, 187, 187, 187, 187,
|
850
|
-
187, 187, 187, 187, 187, 187, 187, 187,
|
851
|
-
187, 187, 187, 187, 187, 187, 187, 187,
|
852
|
-
187, 187, 187, 187, 187, 187, 187, 187,
|
853
|
-
187, 187, 187, 187, 187, 187, 187, 187,
|
854
|
-
187, 187, 187, 187, 187, 187, 187, 187,
|
855
|
-
187, 187, 187, 187, 187, 187, 187, 187,
|
653
|
+
8, 162, 166, 163, 8, 162, 162, 162,
|
654
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
655
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
656
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
657
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
658
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
659
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
660
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
661
|
+
162, 162, 162, 162, 8, 162, 161, 162,
|
662
|
+
161, 162, 162, 162, 161, 161, 161, 162,
|
663
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
664
|
+
162, 162, 162, 162, 162, 162, 162, 167,
|
665
|
+
162, 161, 161, 161, 162, 162, 162, 162,
|
666
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
667
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
668
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
669
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
670
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
671
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
672
|
+
162, 162, 162, 162, 162, 162, 162, 162,
|
673
|
+
162, 162, 162, 161, 162, 8, 9, 170,
|
674
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
675
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
676
|
+
169, 169, 169, 170, 169, 172, 171, 171,
|
677
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
678
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
679
|
+
171, 172, 171, 174, 173, 173, 173, 173,
|
680
|
+
173, 173, 173, 173, 173, 173, 173, 173,
|
681
|
+
173, 173, 173, 173, 173, 173, 173, 174,
|
682
|
+
173, 176, 176, 175, 175, 175, 175, 176,
|
683
|
+
175, 175, 175, 177, 175, 175, 175, 175,
|
684
|
+
175, 175, 175, 175, 175, 175, 175, 175,
|
685
|
+
175, 175, 176, 175, 175, 175, 175, 175,
|
686
|
+
175, 175, 176, 175, 175, 175, 175, 178,
|
687
|
+
175, 175, 175, 179, 175, 175, 175, 175,
|
688
|
+
175, 175, 175, 175, 175, 175, 175, 175,
|
689
|
+
175, 175, 176, 175, 181, 180, 180, 180,
|
690
|
+
43, 43, 43, 43, 43, 43, 43, 43,
|
691
|
+
43, 43, 180, 183, 182, 182, 182, 182,
|
692
|
+
182, 182, 182, 182, 182, 182, 182, 182,
|
693
|
+
182, 182, 182, 182, 182, 182, 182, 183,
|
694
|
+
182, 184, 45, 45, 45, 184, 45, 45,
|
695
|
+
45, 45, 45, 45, 45, 45, 45, 184,
|
696
|
+
184, 45, 45, 45, 184, 184, 45, 45,
|
697
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
698
|
+
45, 184, 45, 45, 45, 184, 45, 45,
|
699
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
700
|
+
184, 45, 45, 45, 184, 45, 185, 45,
|
701
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
702
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
703
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
704
|
+
45, 45, 45, 45, 45, 45, 185, 45,
|
705
|
+
186, 186, 186, 186, 186, 186, 186, 186,
|
706
|
+
186, 186, 186, 186, 186, 186, 186, 186,
|
707
|
+
186, 186, 186, 186, 186, 186, 186, 186,
|
708
|
+
186, 186, 186, 186, 186, 186, 187, 187,
|
856
709
|
187, 187, 187, 187, 187, 187, 187, 187,
|
857
|
-
187,
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
710
|
+
187, 187, 187, 187, 187, 187, 188, 188,
|
711
|
+
188, 188, 188, 50, 50, 50, 50, 50,
|
712
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
713
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
714
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
715
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
716
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
717
|
+
50, 50, 189, 50, 190, 50, 189, 189,
|
718
|
+
189, 189, 50, 191, 189, 50, 50, 50,
|
719
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
720
|
+
50, 50, 50, 50, 50, 189, 50, 50,
|
721
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
722
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
723
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
724
|
+
50, 192, 193, 194, 195, 50, 50, 50,
|
725
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
726
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
727
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
728
|
+
50, 189, 189, 189, 50, 50, 50, 50,
|
729
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
730
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
731
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
732
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
733
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
734
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
735
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
736
|
+
50, 50, 50, 50, 50, 196, 51, 51,
|
737
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
738
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
739
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
740
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
741
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
742
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
743
|
+
51, 51, 51, 51, 51, 51, 51, 51,
|
744
|
+
51, 51, 51, 51, 51, 51, 196, 197,
|
875
745
|
197, 197, 197, 197, 197, 197, 197, 197,
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
199,
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
746
|
+
197, 197, 197, 197, 197, 197, 197, 197,
|
747
|
+
197, 197, 197, 197, 197, 197, 197, 197,
|
748
|
+
197, 197, 197, 197, 197, 197, 197, 197,
|
749
|
+
197, 197, 197, 197, 197, 197, 197, 197,
|
750
|
+
197, 197, 197, 197, 197, 197, 197, 197,
|
751
|
+
197, 197, 197, 197, 197, 197, 197, 197,
|
752
|
+
197, 197, 197, 197, 197, 197, 197, 196,
|
753
|
+
198, 196, 200, 199, 199, 199, 199, 199,
|
754
|
+
199, 199, 199, 199, 199, 199, 199, 199,
|
755
|
+
199, 199, 199, 199, 199, 199, 199, 199,
|
756
|
+
199, 199, 199, 199, 199, 199, 199, 199,
|
757
|
+
199, 199, 199, 199, 199, 199, 199, 199,
|
758
|
+
199, 199, 199, 199, 199, 199, 199, 199,
|
759
|
+
199, 199, 199, 199, 199, 199, 199, 199,
|
760
|
+
199, 201, 199, 204, 203, 206, 206, 205,
|
761
|
+
205, 205, 206, 205, 205, 205, 205, 206,
|
762
|
+
205, 205, 206, 205, 205, 206, 205, 205,
|
763
|
+
205, 206, 205, 205, 205, 206, 206, 206,
|
764
|
+
205, 205, 205, 206, 206, 206, 206, 206,
|
765
|
+
206, 205, 206, 205, 205, 205, 205, 205,
|
766
|
+
206, 205, 206, 205, 206, 206, 206, 206,
|
767
|
+
206, 206, 206, 205, 207, 207, 207, 207,
|
768
|
+
207, 207, 207, 207, 207, 207, 207, 207,
|
769
|
+
207, 207, 207, 207, 207, 207, 207, 207,
|
770
|
+
207, 207, 207, 207, 207, 207, 207, 207,
|
771
|
+
207, 207, 208, 208, 208, 208, 208, 208,
|
772
|
+
208, 208, 208, 208, 208, 208, 208, 208,
|
773
|
+
208, 208, 209, 209, 209, 209, 209, 105,
|
774
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
775
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
776
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
777
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
778
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
779
|
+
105, 105, 105, 105, 105, 105, 210, 105,
|
780
|
+
105, 105, 210, 210, 210, 210, 105, 105,
|
781
|
+
210, 105, 211, 212, 212, 212, 212, 212,
|
782
|
+
212, 212, 213, 213, 105, 105, 105, 105,
|
783
|
+
105, 210, 105, 45, 45, 214, 215, 105,
|
784
|
+
105, 45, 215, 105, 105, 45, 105, 216,
|
785
|
+
105, 105, 217, 105, 215, 215, 105, 105,
|
786
|
+
105, 215, 215, 105, 45, 210, 210, 210,
|
787
|
+
210, 105, 105, 218, 218, 107, 215, 218,
|
788
|
+
218, 105, 215, 105, 105, 105, 105, 105,
|
789
|
+
218, 105, 217, 105, 218, 215, 218, 219,
|
790
|
+
218, 215, 220, 105, 45, 210, 210, 210,
|
791
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
792
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
793
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
794
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
795
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
796
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
797
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
798
|
+
105, 105, 105, 105, 105, 105, 105, 105,
|
799
|
+
105, 221, 106, 106, 106, 106, 106, 106,
|
800
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
801
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
802
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
803
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
804
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
805
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
806
|
+
106, 106, 106, 106, 106, 106, 106, 106,
|
807
|
+
106, 106, 221, 222, 222, 222, 222, 222,
|
808
|
+
222, 222, 222, 222, 222, 222, 222, 222,
|
809
|
+
222, 222, 222, 222, 222, 222, 222, 222,
|
810
|
+
222, 222, 222, 222, 222, 222, 222, 222,
|
811
|
+
222, 222, 222, 222, 222, 222, 222, 222,
|
812
|
+
222, 222, 222, 222, 222, 222, 222, 222,
|
813
|
+
222, 222, 222, 222, 222, 222, 222, 222,
|
814
|
+
222, 222, 222, 222, 222, 222, 222, 222,
|
815
|
+
222, 222, 222, 221, 224, 224, 224, 224,
|
816
|
+
224, 224, 224, 224, 223, 226, 226, 226,
|
817
|
+
226, 226, 226, 226, 226, 225, 228, 108,
|
818
|
+
230, 229, 108, 232, 113, 113, 113, 113,
|
819
|
+
113, 113, 113, 113, 113, 113, 113, 113,
|
820
|
+
113, 113, 113, 113, 113, 113, 113, 113,
|
821
|
+
113, 113, 113, 113, 113, 113, 113, 113,
|
822
|
+
113, 113, 113, 233, 113, 235, 234, 113,
|
823
|
+
116, 113, 237, 237, 237, 237, 237, 237,
|
824
|
+
237, 237, 237, 237, 236, 236, 236, 236,
|
825
|
+
236, 236, 236, 237, 237, 237, 237, 237,
|
826
|
+
237, 236, 236, 236, 236, 236, 236, 236,
|
827
|
+
236, 236, 236, 236, 236, 236, 236, 236,
|
828
|
+
236, 236, 236, 236, 236, 236, 236, 236,
|
829
|
+
236, 236, 236, 237, 237, 237, 237, 237,
|
830
|
+
237, 236, 239, 238, 238, 238, 238, 238,
|
831
|
+
240, 238, 238, 238, 241, 241, 241, 241,
|
832
|
+
241, 241, 241, 241, 241, 238, 238, 242,
|
833
|
+
238, 132, 131, 131, 131, 131, 131, 243,
|
834
|
+
131, 131, 243, 243, 243, 243, 243, 243,
|
835
|
+
243, 243, 243, 243, 131, 134, 134, 134,
|
836
|
+
134, 134, 134, 134, 134, 134, 243, 133,
|
837
|
+
243, 243, 243, 243, 243, 243, 134, 134,
|
838
|
+
134, 134, 134, 134, 134, 134, 134, 134,
|
839
|
+
243, 243, 135, 135, 243, 243, 243, 243,
|
840
|
+
243, 243, 243, 243, 243, 243, 135, 135,
|
841
|
+
135, 135, 132, 135, 0
|
929
842
|
]
|
930
843
|
|
931
844
|
class << self
|
@@ -933,36 +846,37 @@ class << self
|
|
933
846
|
private :_re_scanner_trans_targs, :_re_scanner_trans_targs=
|
934
847
|
end
|
935
848
|
self._re_scanner_trans_targs = [
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
|
952
|
-
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
849
|
+
119, 120, 1, 2, 119, 4, 119, 6,
|
850
|
+
119, 8, 129, 119, 10, 17, 11, 119,
|
851
|
+
12, 16, 14, 13, 15, 18, 19, 23,
|
852
|
+
21, 20, 22, 25, 31, 26, 119, 27,
|
853
|
+
29, 28, 30, 32, 33, 35, 34, 36,
|
854
|
+
119, 38, 135, 39, 41, 0, 42, 43,
|
855
|
+
137, 138, 138, 44, 138, 138, 138, 138,
|
856
|
+
48, 49, 60, 64, 68, 72, 76, 80,
|
857
|
+
85, 89, 91, 94, 50, 57, 51, 55,
|
858
|
+
52, 53, 54, 138, 56, 58, 59, 61,
|
859
|
+
62, 63, 65, 66, 67, 69, 70, 71,
|
860
|
+
73, 74, 75, 77, 78, 79, 81, 83,
|
861
|
+
82, 84, 86, 87, 88, 90, 92, 93,
|
862
|
+
146, 146, 95, 98, 146, 152, 146, 154,
|
863
|
+
101, 146, 155, 146, 157, 104, 107, 105,
|
864
|
+
106, 146, 108, 109, 110, 111, 112, 113,
|
865
|
+
146, 159, 160, 115, 116, 160, 117, 118,
|
866
|
+
3, 121, 122, 123, 124, 125, 119, 126,
|
867
|
+
119, 130, 131, 119, 132, 119, 133, 119,
|
868
|
+
119, 134, 119, 119, 119, 119, 119, 119,
|
869
|
+
127, 119, 128, 119, 5, 119, 7, 119,
|
870
|
+
119, 119, 119, 119, 119, 119, 119, 119,
|
871
|
+
119, 119, 9, 24, 119, 37, 119, 119,
|
872
|
+
136, 40, 139, 140, 141, 138, 142, 143,
|
873
|
+
144, 138, 138, 138, 138, 45, 138, 138,
|
874
|
+
46, 138, 138, 138, 47, 145, 145, 147,
|
875
|
+
148, 149, 146, 150, 150, 146, 97, 146,
|
876
|
+
100, 146, 146, 103, 114, 146, 96, 146,
|
877
|
+
151, 146, 146, 146, 153, 146, 99, 146,
|
878
|
+
156, 158, 146, 102, 146, 146, 160, 161,
|
879
|
+
162, 163, 164, 160
|
966
880
|
]
|
967
881
|
|
968
882
|
class << self
|
@@ -970,36 +884,37 @@ class << self
|
|
970
884
|
private :_re_scanner_trans_actions, :_re_scanner_trans_actions=
|
971
885
|
end
|
972
886
|
self._re_scanner_trans_actions = [
|
973
|
-
1, 2, 0,
|
974
|
-
|
975
|
-
0,
|
976
|
-
0, 0, 0, 0, 0, 0,
|
977
|
-
0, 0, 0, 0, 0, 0, 0,
|
978
|
-
|
979
|
-
|
887
|
+
1, 2, 0, 0, 3, 4, 5, 0,
|
888
|
+
6, 0, 7, 8, 0, 0, 0, 9,
|
889
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
890
|
+
0, 0, 0, 0, 0, 0, 10, 0,
|
891
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
892
|
+
11, 0, 0, 0, 0, 0, 0, 0,
|
893
|
+
13, 14, 15, 0, 16, 17, 18, 19,
|
980
894
|
0, 0, 0, 0, 0, 0, 0, 0,
|
981
|
-
0, 0, 0, 0, 0, 22, 0, 0,
|
982
895
|
0, 0, 0, 0, 0, 0, 0, 0,
|
896
|
+
0, 0, 0, 20, 0, 0, 0, 0,
|
983
897
|
0, 0, 0, 0, 0, 0, 0, 0,
|
984
898
|
0, 0, 0, 0, 0, 0, 0, 0,
|
985
|
-
0, 0, 0, 0, 23, 0, 25, 0,
|
986
|
-
26, 0, 0, 27, 0, 28, 0, 0,
|
987
|
-
0, 0, 0, 29, 0, 0, 0, 0,
|
988
|
-
0, 0, 30, 0, 31, 32, 0, 0,
|
989
899
|
0, 0, 0, 0, 0, 0, 0, 0,
|
990
|
-
|
991
|
-
0,
|
992
|
-
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
900
|
+
21, 22, 0, 0, 24, 0, 25, 0,
|
901
|
+
0, 26, 0, 27, 0, 0, 0, 0,
|
902
|
+
0, 28, 0, 0, 0, 0, 0, 0,
|
903
|
+
29, 0, 30, 0, 0, 31, 0, 0,
|
904
|
+
0, 0, 0, 0, 0, 0, 34, 35,
|
905
|
+
36, 0, 0, 37, 0, 38, 39, 40,
|
906
|
+
41, 39, 42, 43, 44, 45, 46, 47,
|
907
|
+
48, 49, 0, 50, 0, 51, 0, 52,
|
908
|
+
53, 54, 55, 56, 57, 58, 59, 60,
|
909
|
+
61, 62, 0, 0, 63, 0, 64, 65,
|
910
|
+
67, 0, 0, 39, 39, 68, 0, 39,
|
911
|
+
69, 70, 71, 72, 73, 0, 74, 75,
|
912
|
+
0, 76, 77, 78, 0, 79, 80, 0,
|
913
|
+
39, 39, 81, 82, 83, 84, 0, 85,
|
914
|
+
0, 86, 87, 0, 0, 88, 0, 89,
|
915
|
+
0, 90, 91, 92, 39, 93, 0, 94,
|
916
|
+
39, 0, 95, 0, 96, 97, 98, 39,
|
917
|
+
39, 39, 39, 99
|
1003
918
|
]
|
1004
919
|
|
1005
920
|
class << self
|
@@ -1020,13 +935,14 @@ self._re_scanner_to_state_actions = [
|
|
1020
935
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1021
936
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1022
937
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1023
|
-
0, 0, 0, 0, 0, 0, 0,
|
938
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
939
|
+
0, 0, 0, 0, 0, 0, 0, 32,
|
1024
940
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1025
941
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1026
|
-
|
1027
|
-
0,
|
1028
|
-
0, 0, 0, 0, 0, 0,
|
1029
|
-
0, 0, 0
|
942
|
+
66, 66, 66, 0, 0, 0, 0, 0,
|
943
|
+
0, 66, 66, 0, 0, 0, 0, 0,
|
944
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
945
|
+
66, 0, 0, 0, 0
|
1030
946
|
]
|
1031
947
|
|
1032
948
|
class << self
|
@@ -1047,13 +963,14 @@ self._re_scanner_from_state_actions = [
|
|
1047
963
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1048
964
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1049
965
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1050
|
-
0, 0, 0, 0, 0, 0, 0, 34,
|
1051
966
|
0, 0, 0, 0, 0, 0, 0, 0,
|
967
|
+
0, 0, 0, 0, 0, 0, 0, 33,
|
968
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
969
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
970
|
+
33, 33, 33, 0, 0, 0, 0, 0,
|
971
|
+
0, 33, 33, 0, 0, 0, 0, 0,
|
1052
972
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1053
|
-
|
1054
|
-
0, 0, 34, 34, 0, 0, 0, 0,
|
1055
|
-
0, 0, 0, 0, 0, 0, 34, 0,
|
1056
|
-
0, 0, 0
|
973
|
+
33, 0, 0, 0, 0
|
1057
974
|
]
|
1058
975
|
|
1059
976
|
class << self
|
@@ -1064,23 +981,24 @@ self._re_scanner_eof_actions = [
|
|
1064
981
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1065
982
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1066
983
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1067
|
-
0, 0, 0, 0, 13, 13, 13, 13,
|
1068
984
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1069
985
|
0, 0, 0, 0, 0, 0, 0, 0,
|
986
|
+
12, 12, 12, 12, 0, 0, 0, 0,
|
1070
987
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1071
988
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1072
989
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1073
990
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1074
991
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1075
|
-
0, 24, 24, 0, 24, 24, 0, 24,
|
1076
|
-
24, 24, 24, 24, 24, 24, 24, 24,
|
1077
|
-
24, 24, 24, 0, 0, 0, 0, 0,
|
1078
992
|
0, 0, 0, 0, 0, 0, 0, 0,
|
993
|
+
0, 23, 23, 0, 23, 23, 0, 23,
|
994
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
995
|
+
23, 23, 23, 0, 0, 0, 0, 0,
|
1079
996
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1080
|
-
0, 0, 0, 24, 0, 0, 0, 0,
|
1081
|
-
0, 0, 0, 24, 0, 0, 0, 0,
|
1082
997
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1083
|
-
0, 0, 0
|
998
|
+
0, 0, 23, 0, 0, 0, 0, 0,
|
999
|
+
0, 0, 23, 0, 0, 0, 0, 0,
|
1000
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1001
|
+
0, 0, 0, 0, 0
|
1084
1002
|
]
|
1085
1003
|
|
1086
1004
|
class << self
|
@@ -1088,36 +1006,37 @@ class << self
|
|
1088
1006
|
private :_re_scanner_eof_trans, :_re_scanner_eof_trans=
|
1089
1007
|
end
|
1090
1008
|
self._re_scanner_eof_trans = [
|
1091
|
-
0, 1, 1, 1,
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1009
|
+
0, 1, 1, 1, 5, 5, 5, 5,
|
1010
|
+
1, 12, 12, 12, 12, 12, 12, 12,
|
1011
|
+
12, 12, 12, 12, 12, 12, 12, 12,
|
1012
|
+
12, 12, 12, 12, 12, 12, 12, 12,
|
1013
|
+
12, 12, 12, 12, 12, 41, 41, 41,
|
1014
|
+
0, 0, 0, 0, 50, 50, 53, 55,
|
1015
|
+
55, 55, 55, 55, 55, 55, 55, 55,
|
1016
|
+
55, 55, 55, 55, 55, 55, 55, 55,
|
1017
|
+
55, 55, 55, 55, 55, 55, 55, 55,
|
1018
|
+
55, 55, 55, 55, 55, 55, 55, 55,
|
1019
|
+
55, 55, 55, 55, 55, 55, 55, 55,
|
1020
|
+
55, 55, 55, 55, 55, 55, 55, 105,
|
1021
|
+
105, 0, 0, 111, 0, 0, 116, 0,
|
1103
1022
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1104
|
-
0, 0, 0,
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
1023
|
+
0, 0, 0, 131, 131, 131, 131, 0,
|
1024
|
+
156, 156, 157, 157, 156, 158, 160, 162,
|
1025
|
+
162, 169, 170, 172, 174, 176, 181, 183,
|
1026
|
+
0, 0, 0, 197, 197, 197, 197, 200,
|
1027
|
+
203, 0, 0, 222, 222, 222, 224, 226,
|
1028
|
+
228, 228, 228, 232, 232, 232, 232, 237,
|
1029
|
+
0, 244, 244, 244, 244
|
1111
1030
|
]
|
1112
1031
|
|
1113
1032
|
class << self
|
1114
1033
|
attr_accessor :re_scanner_start
|
1115
1034
|
end
|
1116
|
-
self.re_scanner_start =
|
1035
|
+
self.re_scanner_start = 119;
|
1117
1036
|
class << self
|
1118
1037
|
attr_accessor :re_scanner_first_final
|
1119
1038
|
end
|
1120
|
-
self.re_scanner_first_final =
|
1039
|
+
self.re_scanner_first_final = 119;
|
1121
1040
|
class << self
|
1122
1041
|
attr_accessor :re_scanner_error
|
1123
1042
|
end
|
@@ -1126,36 +1045,36 @@ self.re_scanner_error = 0;
|
|
1126
1045
|
class << self
|
1127
1046
|
attr_accessor :re_scanner_en_char_type
|
1128
1047
|
end
|
1129
|
-
self.re_scanner_en_char_type =
|
1048
|
+
self.re_scanner_en_char_type = 136;
|
1130
1049
|
class << self
|
1131
1050
|
attr_accessor :re_scanner_en_unicode_property
|
1132
1051
|
end
|
1133
|
-
self.re_scanner_en_unicode_property =
|
1052
|
+
self.re_scanner_en_unicode_property = 137;
|
1134
1053
|
class << self
|
1135
1054
|
attr_accessor :re_scanner_en_character_set
|
1136
1055
|
end
|
1137
|
-
self.re_scanner_en_character_set =
|
1056
|
+
self.re_scanner_en_character_set = 138;
|
1138
1057
|
class << self
|
1139
1058
|
attr_accessor :re_scanner_en_set_escape_sequence
|
1140
1059
|
end
|
1141
|
-
self.re_scanner_en_set_escape_sequence =
|
1060
|
+
self.re_scanner_en_set_escape_sequence = 145;
|
1142
1061
|
class << self
|
1143
1062
|
attr_accessor :re_scanner_en_escape_sequence
|
1144
1063
|
end
|
1145
|
-
self.re_scanner_en_escape_sequence =
|
1064
|
+
self.re_scanner_en_escape_sequence = 146;
|
1146
1065
|
class << self
|
1147
1066
|
attr_accessor :re_scanner_en_conditional_expression
|
1148
1067
|
end
|
1149
|
-
self.re_scanner_en_conditional_expression =
|
1068
|
+
self.re_scanner_en_conditional_expression = 160;
|
1150
1069
|
class << self
|
1151
1070
|
attr_accessor :re_scanner_en_main
|
1152
1071
|
end
|
1153
|
-
self.re_scanner_en_main =
|
1072
|
+
self.re_scanner_en_main = 119;
|
1154
1073
|
|
1155
1074
|
|
1156
|
-
# line
|
1075
|
+
# line 739 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1157
1076
|
|
1158
|
-
# line
|
1077
|
+
# line 1077 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
1159
1078
|
begin
|
1160
1079
|
p ||= 0
|
1161
1080
|
pe ||= data.length
|
@@ -1166,9 +1085,9 @@ begin
|
|
1166
1085
|
act = 0
|
1167
1086
|
end
|
1168
1087
|
|
1169
|
-
# line
|
1088
|
+
# line 740 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1170
1089
|
|
1171
|
-
# line
|
1090
|
+
# line 1090 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
1172
1091
|
begin
|
1173
1092
|
testEof = false
|
1174
1093
|
_slen, _trans, _keys, _inds, _acts, _nacts = nil
|
@@ -1191,12 +1110,12 @@ begin
|
|
1191
1110
|
end
|
1192
1111
|
if _goto_level <= _resume
|
1193
1112
|
case _re_scanner_from_state_actions[cs]
|
1194
|
-
when
|
1113
|
+
when 33 then
|
1195
1114
|
# line 1 "NONE"
|
1196
1115
|
begin
|
1197
1116
|
ts = p
|
1198
1117
|
end
|
1199
|
-
# line
|
1118
|
+
# line 1118 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
1200
1119
|
end
|
1201
1120
|
_keys = cs << 1
|
1202
1121
|
_inds = _re_scanner_index_offsets[cs]
|
@@ -1215,35 +1134,35 @@ ts = p
|
|
1215
1134
|
cs = _re_scanner_trans_targs[_trans]
|
1216
1135
|
if _re_scanner_trans_actions[_trans] != 0
|
1217
1136
|
case _re_scanner_trans_actions[_trans]
|
1218
|
-
when
|
1219
|
-
# line
|
1137
|
+
when 35 then
|
1138
|
+
# line 159 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1220
1139
|
begin
|
1221
1140
|
self.group_depth = group_depth + 1 end
|
1222
|
-
when
|
1223
|
-
# line
|
1141
|
+
when 4 then
|
1142
|
+
# line 160 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1224
1143
|
begin
|
1225
1144
|
self.group_depth = group_depth - 1 end
|
1226
|
-
when
|
1145
|
+
when 39 then
|
1227
1146
|
# line 1 "NONE"
|
1228
1147
|
begin
|
1229
1148
|
te = p+1
|
1230
1149
|
end
|
1231
|
-
when
|
1232
|
-
# line 12 "/Users/
|
1150
|
+
when 67 then
|
1151
|
+
# line 12 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/char_type.rl"
|
1233
1152
|
begin
|
1234
1153
|
te = p+1
|
1235
1154
|
begin
|
1236
|
-
case text =
|
1237
|
-
when '\d'; emit(:type, :digit, text
|
1238
|
-
when '\D'; emit(:type, :nondigit, text
|
1239
|
-
when '\h'; emit(:type, :hex, text
|
1240
|
-
when '\H'; emit(:type, :nonhex, text
|
1241
|
-
when '\s'; emit(:type, :space, text
|
1242
|
-
when '\S'; emit(:type, :nonspace, text
|
1243
|
-
when '\w'; emit(:type, :word, text
|
1244
|
-
when '\W'; emit(:type, :nonword, text
|
1245
|
-
when '\R'; emit(:type, :linebreak, text
|
1246
|
-
when '\X'; emit(:type, :xgrapheme, text
|
1155
|
+
case text = copy(data, ts-1, te)
|
1156
|
+
when '\d'; emit(:type, :digit, text)
|
1157
|
+
when '\D'; emit(:type, :nondigit, text)
|
1158
|
+
when '\h'; emit(:type, :hex, text)
|
1159
|
+
when '\H'; emit(:type, :nonhex, text)
|
1160
|
+
when '\s'; emit(:type, :space, text)
|
1161
|
+
when '\S'; emit(:type, :nonspace, text)
|
1162
|
+
when '\w'; emit(:type, :word, text)
|
1163
|
+
when '\W'; emit(:type, :nonword, text)
|
1164
|
+
when '\R'; emit(:type, :linebreak, text)
|
1165
|
+
when '\X'; emit(:type, :xgrapheme, text)
|
1247
1166
|
end
|
1248
1167
|
begin
|
1249
1168
|
top -= 1
|
@@ -1254,12 +1173,12 @@ te = p+1
|
|
1254
1173
|
|
1255
1174
|
end
|
1256
1175
|
end
|
1257
|
-
when
|
1258
|
-
# line 16 "/Users/
|
1176
|
+
when 13 then
|
1177
|
+
# line 16 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
|
1259
1178
|
begin
|
1260
1179
|
te = p+1
|
1261
1180
|
begin
|
1262
|
-
text =
|
1181
|
+
text = copy(data, ts-1, te)
|
1263
1182
|
type = (text[1] == 'P') ^ (text[3] == '^') ? :nonproperty : :property
|
1264
1183
|
|
1265
1184
|
name = data[ts+2..te-2].pack('c*').gsub(/[\^\s_\-]/, '').downcase
|
@@ -1267,7 +1186,7 @@ te = p+1
|
|
1267
1186
|
token = self.class.short_prop_map[name] || self.class.long_prop_map[name]
|
1268
1187
|
raise UnknownUnicodePropertyError.new(name) unless token
|
1269
1188
|
|
1270
|
-
self.emit(type, token.to_sym, text
|
1189
|
+
self.emit(type, token.to_sym, text)
|
1271
1190
|
|
1272
1191
|
begin
|
1273
1192
|
top -= 1
|
@@ -1278,188 +1197,185 @@ te = p+1
|
|
1278
1197
|
|
1279
1198
|
end
|
1280
1199
|
end
|
1281
|
-
when
|
1282
|
-
# line
|
1200
|
+
when 17 then
|
1201
|
+
# line 187 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1283
1202
|
begin
|
1284
1203
|
te = p+1
|
1285
1204
|
begin # special case, emits two tokens
|
1286
|
-
emit(:literal, :literal, '-'
|
1287
|
-
emit(:set, :intersection, '&&'
|
1205
|
+
emit(:literal, :literal, '-')
|
1206
|
+
emit(:set, :intersection, '&&')
|
1288
1207
|
end
|
1289
1208
|
end
|
1290
|
-
when
|
1291
|
-
# line
|
1209
|
+
when 72 then
|
1210
|
+
# line 192 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1292
1211
|
begin
|
1293
1212
|
te = p+1
|
1294
1213
|
begin
|
1295
|
-
text =
|
1214
|
+
text = copy(data, ts, te)
|
1296
1215
|
if tokens.last[1] == :open
|
1297
|
-
emit(:set, :negate, text
|
1216
|
+
emit(:set, :negate, text)
|
1298
1217
|
else
|
1299
|
-
emit(:literal, :literal, text
|
1218
|
+
emit(:literal, :literal, text)
|
1300
1219
|
end
|
1301
1220
|
end
|
1302
1221
|
end
|
1303
|
-
when
|
1304
|
-
# line
|
1222
|
+
when 74 then
|
1223
|
+
# line 213 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1305
1224
|
begin
|
1306
1225
|
te = p+1
|
1307
1226
|
begin
|
1308
|
-
emit(:set, :intersection,
|
1227
|
+
emit(:set, :intersection, copy(data, ts, te))
|
1309
1228
|
end
|
1310
1229
|
end
|
1311
|
-
when
|
1312
|
-
# line
|
1230
|
+
when 70 then
|
1231
|
+
# line 217 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1313
1232
|
begin
|
1314
1233
|
te = p+1
|
1315
1234
|
begin
|
1316
1235
|
begin
|
1317
1236
|
stack[top] = cs
|
1318
1237
|
top+= 1
|
1319
|
-
cs =
|
1238
|
+
cs = 145
|
1320
1239
|
_goto_level = _again
|
1321
1240
|
next
|
1322
1241
|
end
|
1323
1242
|
|
1324
1243
|
end
|
1325
1244
|
end
|
1326
|
-
when
|
1327
|
-
# line
|
1245
|
+
when 68 then
|
1246
|
+
# line 247 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1328
1247
|
begin
|
1329
1248
|
te = p+1
|
1330
1249
|
begin
|
1331
|
-
emit(:literal, :literal,
|
1250
|
+
emit(:literal, :literal, copy(data, ts, te))
|
1332
1251
|
end
|
1333
1252
|
end
|
1334
|
-
when
|
1335
|
-
# line
|
1253
|
+
when 15 then
|
1254
|
+
# line 251 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1336
1255
|
begin
|
1337
1256
|
te = p+1
|
1338
1257
|
begin
|
1339
|
-
|
1340
|
-
|
1341
|
-
emit(:literal, :literal, char, *rest)
|
1258
|
+
text = copy(data, ts, te)
|
1259
|
+
emit(:literal, :literal, text)
|
1342
1260
|
end
|
1343
1261
|
end
|
1344
|
-
when
|
1345
|
-
# line
|
1262
|
+
when 75 then
|
1263
|
+
# line 201 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1346
1264
|
begin
|
1347
1265
|
te = p
|
1348
1266
|
p = p - 1; begin
|
1349
|
-
text =
|
1267
|
+
text = copy(data, ts, te)
|
1350
1268
|
# ranges cant start with a subset or intersection/negation/range operator
|
1351
1269
|
if tokens.last[0] == :set
|
1352
|
-
emit(:literal, :literal, text
|
1270
|
+
emit(:literal, :literal, text)
|
1353
1271
|
else
|
1354
|
-
emit(:set, :range, text
|
1272
|
+
emit(:set, :range, text)
|
1355
1273
|
end
|
1356
1274
|
end
|
1357
1275
|
end
|
1358
|
-
when
|
1359
|
-
# line
|
1276
|
+
when 78 then
|
1277
|
+
# line 221 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1360
1278
|
begin
|
1361
1279
|
te = p
|
1362
1280
|
p = p - 1; begin
|
1363
|
-
emit(:set, :open,
|
1281
|
+
emit(:set, :open, copy(data, ts, te))
|
1364
1282
|
begin
|
1365
1283
|
stack[top] = cs
|
1366
1284
|
top+= 1
|
1367
|
-
cs =
|
1285
|
+
cs = 138
|
1368
1286
|
_goto_level = _again
|
1369
1287
|
next
|
1370
1288
|
end
|
1371
1289
|
|
1372
1290
|
end
|
1373
1291
|
end
|
1374
|
-
when
|
1375
|
-
# line
|
1292
|
+
when 73 then
|
1293
|
+
# line 251 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1376
1294
|
begin
|
1377
1295
|
te = p
|
1378
1296
|
p = p - 1; begin
|
1379
|
-
|
1380
|
-
|
1381
|
-
emit(:literal, :literal, char, *rest)
|
1297
|
+
text = copy(data, ts, te)
|
1298
|
+
emit(:literal, :literal, text)
|
1382
1299
|
end
|
1383
1300
|
end
|
1384
|
-
when
|
1385
|
-
# line
|
1301
|
+
when 16 then
|
1302
|
+
# line 201 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1386
1303
|
begin
|
1387
1304
|
begin p = ((te))-1; end
|
1388
1305
|
begin
|
1389
|
-
text =
|
1306
|
+
text = copy(data, ts, te)
|
1390
1307
|
# ranges cant start with a subset or intersection/negation/range operator
|
1391
1308
|
if tokens.last[0] == :set
|
1392
|
-
emit(:literal, :literal, text
|
1309
|
+
emit(:literal, :literal, text)
|
1393
1310
|
else
|
1394
|
-
emit(:set, :range, text
|
1311
|
+
emit(:set, :range, text)
|
1395
1312
|
end
|
1396
1313
|
end
|
1397
1314
|
end
|
1398
|
-
when
|
1399
|
-
# line
|
1315
|
+
when 19 then
|
1316
|
+
# line 221 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1400
1317
|
begin
|
1401
1318
|
begin p = ((te))-1; end
|
1402
1319
|
begin
|
1403
|
-
emit(:set, :open,
|
1320
|
+
emit(:set, :open, copy(data, ts, te))
|
1404
1321
|
begin
|
1405
1322
|
stack[top] = cs
|
1406
1323
|
top+= 1
|
1407
|
-
cs =
|
1324
|
+
cs = 138
|
1408
1325
|
_goto_level = _again
|
1409
1326
|
next
|
1410
1327
|
end
|
1411
1328
|
|
1412
1329
|
end
|
1413
1330
|
end
|
1414
|
-
when
|
1415
|
-
# line
|
1331
|
+
when 14 then
|
1332
|
+
# line 251 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1416
1333
|
begin
|
1417
1334
|
begin p = ((te))-1; end
|
1418
1335
|
begin
|
1419
|
-
|
1420
|
-
|
1421
|
-
emit(:literal, :literal, char, *rest)
|
1336
|
+
text = copy(data, ts, te)
|
1337
|
+
emit(:literal, :literal, text)
|
1422
1338
|
end
|
1423
1339
|
end
|
1424
|
-
when
|
1425
|
-
# line
|
1340
|
+
when 80 then
|
1341
|
+
# line 260 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1426
1342
|
begin
|
1427
1343
|
te = p+1
|
1428
1344
|
begin
|
1429
|
-
|
1345
|
+
p = p - 1;
|
1346
|
+
cs = 138;
|
1430
1347
|
begin
|
1431
|
-
top
|
1432
|
-
|
1348
|
+
stack[top] = cs
|
1349
|
+
top+= 1
|
1350
|
+
cs = 146
|
1433
1351
|
_goto_level = _again
|
1434
1352
|
next
|
1435
1353
|
end
|
1436
1354
|
|
1437
1355
|
end
|
1438
1356
|
end
|
1439
|
-
when
|
1440
|
-
# line
|
1357
|
+
when 79 then
|
1358
|
+
# line 266 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1441
1359
|
begin
|
1442
1360
|
te = p+1
|
1443
1361
|
begin
|
1444
|
-
|
1445
|
-
cs = 131;
|
1362
|
+
emit(:escape, :literal, copy(data, ts-1, te))
|
1446
1363
|
begin
|
1447
|
-
|
1448
|
-
top
|
1449
|
-
cs = 139
|
1364
|
+
top -= 1
|
1365
|
+
cs = stack[top]
|
1450
1366
|
_goto_level = _again
|
1451
1367
|
next
|
1452
1368
|
end
|
1453
1369
|
|
1454
1370
|
end
|
1455
1371
|
end
|
1456
|
-
when
|
1457
|
-
# line
|
1372
|
+
when 84 then
|
1373
|
+
# line 276 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1458
1374
|
begin
|
1459
1375
|
te = p+1
|
1460
1376
|
begin
|
1461
|
-
text =
|
1462
|
-
emit(:backref, :number, text
|
1377
|
+
text = copy(data, ts-1, te)
|
1378
|
+
emit(:backref, :number, text)
|
1463
1379
|
begin
|
1464
1380
|
top -= 1
|
1465
1381
|
cs = stack[top]
|
@@ -1469,12 +1385,12 @@ te = p+1
|
|
1469
1385
|
|
1470
1386
|
end
|
1471
1387
|
end
|
1472
|
-
when
|
1473
|
-
# line
|
1388
|
+
when 91 then
|
1389
|
+
# line 282 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1474
1390
|
begin
|
1475
1391
|
te = p+1
|
1476
1392
|
begin
|
1477
|
-
emit(:escape, :octal,
|
1393
|
+
emit(:escape, :octal, copy(data, ts-1, te))
|
1478
1394
|
begin
|
1479
1395
|
top -= 1
|
1480
1396
|
cs = stack[top]
|
@@ -1484,27 +1400,27 @@ te = p+1
|
|
1484
1400
|
|
1485
1401
|
end
|
1486
1402
|
end
|
1487
|
-
when
|
1488
|
-
# line
|
1403
|
+
when 81 then
|
1404
|
+
# line 287 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1489
1405
|
begin
|
1490
1406
|
te = p+1
|
1491
1407
|
begin
|
1492
|
-
case text =
|
1493
|
-
when '\.'; emit(:escape, :dot, text
|
1494
|
-
when '\|'; emit(:escape, :alternation, text
|
1495
|
-
when '\^'; emit(:escape, :bol, text
|
1496
|
-
when '\$'; emit(:escape, :eol, text
|
1497
|
-
when '\?'; emit(:escape, :zero_or_one, text
|
1498
|
-
when '\*'; emit(:escape, :zero_or_more, text
|
1499
|
-
when '\+'; emit(:escape, :one_or_more, text
|
1500
|
-
when '\('; emit(:escape, :group_open, text
|
1501
|
-
when '\)'; emit(:escape, :group_close, text
|
1502
|
-
when '\{'; emit(:escape, :interval_open, text
|
1503
|
-
when '\}'; emit(:escape, :interval_close, text
|
1504
|
-
when '\['; emit(:escape, :set_open, text
|
1505
|
-
when '\]'; emit(:escape, :set_close, text
|
1408
|
+
case text = copy(data, ts-1, te)
|
1409
|
+
when '\.'; emit(:escape, :dot, text)
|
1410
|
+
when '\|'; emit(:escape, :alternation, text)
|
1411
|
+
when '\^'; emit(:escape, :bol, text)
|
1412
|
+
when '\$'; emit(:escape, :eol, text)
|
1413
|
+
when '\?'; emit(:escape, :zero_or_one, text)
|
1414
|
+
when '\*'; emit(:escape, :zero_or_more, text)
|
1415
|
+
when '\+'; emit(:escape, :one_or_more, text)
|
1416
|
+
when '\('; emit(:escape, :group_open, text)
|
1417
|
+
when '\)'; emit(:escape, :group_close, text)
|
1418
|
+
when '\{'; emit(:escape, :interval_open, text)
|
1419
|
+
when '\}'; emit(:escape, :interval_close, text)
|
1420
|
+
when '\['; emit(:escape, :set_open, text)
|
1421
|
+
when '\]'; emit(:escape, :set_close, text)
|
1506
1422
|
when "\\\\";
|
1507
|
-
emit(:escape, :backslash, text
|
1423
|
+
emit(:escape, :backslash, text)
|
1508
1424
|
end
|
1509
1425
|
begin
|
1510
1426
|
top -= 1
|
@@ -1515,22 +1431,22 @@ te = p+1
|
|
1515
1431
|
|
1516
1432
|
end
|
1517
1433
|
end
|
1518
|
-
when
|
1519
|
-
# line
|
1434
|
+
when 87 then
|
1435
|
+
# line 308 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1520
1436
|
begin
|
1521
1437
|
te = p+1
|
1522
1438
|
begin
|
1523
1439
|
# \b is emitted as backspace only when inside a character set, otherwise
|
1524
1440
|
# it is a word boundary anchor. A syntax might "normalize" it if needed.
|
1525
|
-
case text =
|
1526
|
-
when '\a'; emit(:escape, :bell, text
|
1527
|
-
when '\b'; emit(:escape, :backspace, text
|
1528
|
-
when '\e'; emit(:escape, :escape, text
|
1529
|
-
when '\f'; emit(:escape, :form_feed, text
|
1530
|
-
when '\n'; emit(:escape, :newline, text
|
1531
|
-
when '\r'; emit(:escape, :carriage, text
|
1532
|
-
when '\t'; emit(:escape, :tab, text
|
1533
|
-
when '\v'; emit(:escape, :vertical_tab, text
|
1441
|
+
case text = copy(data, ts-1, te)
|
1442
|
+
when '\a'; emit(:escape, :bell, text)
|
1443
|
+
when '\b'; emit(:escape, :backspace, text)
|
1444
|
+
when '\e'; emit(:escape, :escape, text)
|
1445
|
+
when '\f'; emit(:escape, :form_feed, text)
|
1446
|
+
when '\n'; emit(:escape, :newline, text)
|
1447
|
+
when '\r'; emit(:escape, :carriage, text)
|
1448
|
+
when '\t'; emit(:escape, :tab, text)
|
1449
|
+
when '\v'; emit(:escape, :vertical_tab, text)
|
1534
1450
|
end
|
1535
1451
|
begin
|
1536
1452
|
top -= 1
|
@@ -1541,16 +1457,16 @@ te = p+1
|
|
1541
1457
|
|
1542
1458
|
end
|
1543
1459
|
end
|
1544
|
-
when
|
1545
|
-
# line
|
1460
|
+
when 28 then
|
1461
|
+
# line 324 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1546
1462
|
begin
|
1547
1463
|
te = p+1
|
1548
1464
|
begin
|
1549
|
-
text =
|
1465
|
+
text = copy(data, ts-1, te)
|
1550
1466
|
if text[2].chr == '{'
|
1551
|
-
emit(:escape, :codepoint_list, text
|
1467
|
+
emit(:escape, :codepoint_list, text)
|
1552
1468
|
else
|
1553
|
-
emit(:escape, :codepoint, text
|
1469
|
+
emit(:escape, :codepoint, text)
|
1554
1470
|
end
|
1555
1471
|
begin
|
1556
1472
|
top -= 1
|
@@ -1561,12 +1477,12 @@ te = p+1
|
|
1561
1477
|
|
1562
1478
|
end
|
1563
1479
|
end
|
1564
|
-
when
|
1565
|
-
# line
|
1480
|
+
when 97 then
|
1481
|
+
# line 334 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1566
1482
|
begin
|
1567
1483
|
te = p+1
|
1568
1484
|
begin
|
1569
|
-
emit(:escape, :hex,
|
1485
|
+
emit(:escape, :hex, copy(data, ts-1, te))
|
1570
1486
|
begin
|
1571
1487
|
top -= 1
|
1572
1488
|
cs = stack[top]
|
@@ -1576,8 +1492,8 @@ te = p+1
|
|
1576
1492
|
|
1577
1493
|
end
|
1578
1494
|
end
|
1579
|
-
when
|
1580
|
-
# line
|
1495
|
+
when 24 then
|
1496
|
+
# line 343 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1581
1497
|
begin
|
1582
1498
|
te = p+1
|
1583
1499
|
begin
|
@@ -1591,8 +1507,8 @@ te = p+1
|
|
1591
1507
|
|
1592
1508
|
end
|
1593
1509
|
end
|
1594
|
-
when
|
1595
|
-
# line
|
1510
|
+
when 26 then
|
1511
|
+
# line 348 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1596
1512
|
begin
|
1597
1513
|
te = p+1
|
1598
1514
|
begin
|
@@ -1606,46 +1522,46 @@ te = p+1
|
|
1606
1522
|
|
1607
1523
|
end
|
1608
1524
|
end
|
1609
|
-
when
|
1610
|
-
# line
|
1525
|
+
when 85 then
|
1526
|
+
# line 353 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1611
1527
|
begin
|
1612
1528
|
te = p+1
|
1613
1529
|
begin
|
1614
1530
|
p = p - 1;
|
1615
|
-
cs = ((in_set? ?
|
1531
|
+
cs = ((in_set? ? 138 : 119));
|
1616
1532
|
begin
|
1617
1533
|
stack[top] = cs
|
1618
1534
|
top+= 1
|
1619
|
-
cs =
|
1535
|
+
cs = 136
|
1620
1536
|
_goto_level = _again
|
1621
1537
|
next
|
1622
1538
|
end
|
1623
1539
|
|
1624
1540
|
end
|
1625
1541
|
end
|
1626
|
-
when
|
1627
|
-
# line
|
1542
|
+
when 86 then
|
1543
|
+
# line 359 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1628
1544
|
begin
|
1629
1545
|
te = p+1
|
1630
1546
|
begin
|
1631
1547
|
p = p - 1;
|
1632
|
-
cs = ((in_set? ?
|
1548
|
+
cs = ((in_set? ? 138 : 119));
|
1633
1549
|
begin
|
1634
1550
|
stack[top] = cs
|
1635
1551
|
top+= 1
|
1636
|
-
cs =
|
1552
|
+
cs = 137
|
1637
1553
|
_goto_level = _again
|
1638
1554
|
next
|
1639
1555
|
end
|
1640
1556
|
|
1641
1557
|
end
|
1642
1558
|
end
|
1643
|
-
when
|
1644
|
-
# line
|
1559
|
+
when 22 then
|
1560
|
+
# line 365 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1645
1561
|
begin
|
1646
1562
|
te = p+1
|
1647
1563
|
begin
|
1648
|
-
emit(:escape, :literal,
|
1564
|
+
emit(:escape, :literal, copy(data, ts-1, te))
|
1649
1565
|
begin
|
1650
1566
|
top -= 1
|
1651
1567
|
cs = stack[top]
|
@@ -1655,12 +1571,12 @@ te = p+1
|
|
1655
1571
|
|
1656
1572
|
end
|
1657
1573
|
end
|
1658
|
-
when
|
1659
|
-
# line
|
1574
|
+
when 90 then
|
1575
|
+
# line 282 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1660
1576
|
begin
|
1661
1577
|
te = p
|
1662
1578
|
p = p - 1; begin
|
1663
|
-
emit(:escape, :octal,
|
1579
|
+
emit(:escape, :octal, copy(data, ts-1, te))
|
1664
1580
|
begin
|
1665
1581
|
top -= 1
|
1666
1582
|
cs = stack[top]
|
@@ -1670,12 +1586,12 @@ p = p - 1; begin
|
|
1670
1586
|
|
1671
1587
|
end
|
1672
1588
|
end
|
1673
|
-
when
|
1674
|
-
# line
|
1589
|
+
when 96 then
|
1590
|
+
# line 334 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1675
1591
|
begin
|
1676
1592
|
te = p
|
1677
1593
|
p = p - 1; begin
|
1678
|
-
emit(:escape, :hex,
|
1594
|
+
emit(:escape, :hex, copy(data, ts-1, te))
|
1679
1595
|
begin
|
1680
1596
|
top -= 1
|
1681
1597
|
cs = stack[top]
|
@@ -1685,8 +1601,8 @@ p = p - 1; begin
|
|
1685
1601
|
|
1686
1602
|
end
|
1687
1603
|
end
|
1688
|
-
when
|
1689
|
-
# line
|
1604
|
+
when 93 then
|
1605
|
+
# line 343 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1690
1606
|
begin
|
1691
1607
|
te = p
|
1692
1608
|
p = p - 1; begin
|
@@ -1700,8 +1616,8 @@ p = p - 1; begin
|
|
1700
1616
|
|
1701
1617
|
end
|
1702
1618
|
end
|
1703
|
-
when
|
1704
|
-
# line
|
1619
|
+
when 95 then
|
1620
|
+
# line 348 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1705
1621
|
begin
|
1706
1622
|
te = p
|
1707
1623
|
p = p - 1; begin
|
@@ -1715,15 +1631,45 @@ p = p - 1; begin
|
|
1715
1631
|
|
1716
1632
|
end
|
1717
1633
|
end
|
1718
|
-
when
|
1634
|
+
when 88 then
|
1635
|
+
# line 365 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1636
|
+
begin
|
1637
|
+
te = p
|
1638
|
+
p = p - 1; begin
|
1639
|
+
emit(:escape, :literal, copy(data, ts-1, te))
|
1640
|
+
begin
|
1641
|
+
top -= 1
|
1642
|
+
cs = stack[top]
|
1643
|
+
_goto_level = _again
|
1644
|
+
next
|
1645
|
+
end
|
1646
|
+
|
1647
|
+
end
|
1648
|
+
end
|
1649
|
+
when 21 then
|
1650
|
+
# line 365 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1651
|
+
begin
|
1652
|
+
begin p = ((te))-1; end
|
1653
|
+
begin
|
1654
|
+
emit(:escape, :literal, copy(data, ts-1, te))
|
1655
|
+
begin
|
1656
|
+
top -= 1
|
1657
|
+
cs = stack[top]
|
1658
|
+
_goto_level = _again
|
1659
|
+
next
|
1660
|
+
end
|
1661
|
+
|
1662
|
+
end
|
1663
|
+
end
|
1664
|
+
when 89 then
|
1719
1665
|
# line 1 "NONE"
|
1720
1666
|
begin
|
1721
1667
|
case act
|
1722
|
-
when
|
1668
|
+
when 16 then
|
1723
1669
|
begin begin p = ((te))-1; end
|
1724
1670
|
|
1725
|
-
text =
|
1726
|
-
emit(:backref, :number, text
|
1671
|
+
text = copy(data, ts-1, te)
|
1672
|
+
emit(:backref, :number, text)
|
1727
1673
|
begin
|
1728
1674
|
top -= 1
|
1729
1675
|
cs = stack[top]
|
@@ -1732,10 +1678,10 @@ p = p - 1; begin
|
|
1732
1678
|
end
|
1733
1679
|
|
1734
1680
|
end
|
1735
|
-
when
|
1681
|
+
when 17 then
|
1736
1682
|
begin begin p = ((te))-1; end
|
1737
1683
|
|
1738
|
-
emit(:escape, :octal,
|
1684
|
+
emit(:escape, :octal, copy(data, ts-1, te))
|
1739
1685
|
begin
|
1740
1686
|
top -= 1
|
1741
1687
|
cs = stack[top]
|
@@ -1746,18 +1692,18 @@ p = p - 1; begin
|
|
1746
1692
|
end
|
1747
1693
|
end
|
1748
1694
|
end
|
1749
|
-
when
|
1750
|
-
# line
|
1695
|
+
when 31 then
|
1696
|
+
# line 375 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1751
1697
|
begin
|
1752
1698
|
te = p+1
|
1753
1699
|
begin
|
1754
|
-
text =
|
1755
|
-
emit(:conditional, :condition, text
|
1756
|
-
emit(:conditional, :condition_close, ')'
|
1700
|
+
text = copy(data, ts, te-1)
|
1701
|
+
emit(:conditional, :condition, text)
|
1702
|
+
emit(:conditional, :condition_close, ')')
|
1757
1703
|
end
|
1758
1704
|
end
|
1759
|
-
when
|
1760
|
-
# line
|
1705
|
+
when 98 then
|
1706
|
+
# line 381 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1761
1707
|
begin
|
1762
1708
|
te = p+1
|
1763
1709
|
begin
|
@@ -1765,15 +1711,15 @@ te = p+1
|
|
1765
1711
|
begin
|
1766
1712
|
stack[top] = cs
|
1767
1713
|
top+= 1
|
1768
|
-
cs =
|
1714
|
+
cs = 119
|
1769
1715
|
_goto_level = _again
|
1770
1716
|
next
|
1771
1717
|
end
|
1772
1718
|
|
1773
1719
|
end
|
1774
1720
|
end
|
1775
|
-
when
|
1776
|
-
# line
|
1721
|
+
when 99 then
|
1722
|
+
# line 381 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1777
1723
|
begin
|
1778
1724
|
te = p
|
1779
1725
|
p = p - 1; begin
|
@@ -1781,15 +1727,15 @@ p = p - 1; begin
|
|
1781
1727
|
begin
|
1782
1728
|
stack[top] = cs
|
1783
1729
|
top+= 1
|
1784
|
-
cs =
|
1730
|
+
cs = 119
|
1785
1731
|
_goto_level = _again
|
1786
1732
|
next
|
1787
1733
|
end
|
1788
1734
|
|
1789
1735
|
end
|
1790
1736
|
end
|
1791
|
-
when
|
1792
|
-
# line
|
1737
|
+
when 30 then
|
1738
|
+
# line 381 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1793
1739
|
begin
|
1794
1740
|
begin p = ((te))-1; end
|
1795
1741
|
begin
|
@@ -1797,352 +1743,340 @@ p = p - 1; begin
|
|
1797
1743
|
begin
|
1798
1744
|
stack[top] = cs
|
1799
1745
|
top+= 1
|
1800
|
-
cs =
|
1746
|
+
cs = 119
|
1801
1747
|
_goto_level = _again
|
1802
1748
|
next
|
1803
1749
|
end
|
1804
1750
|
|
1805
1751
|
end
|
1806
1752
|
end
|
1807
|
-
when
|
1808
|
-
# line
|
1753
|
+
when 37 then
|
1754
|
+
# line 394 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1809
1755
|
begin
|
1810
1756
|
te = p+1
|
1811
1757
|
begin
|
1812
|
-
emit(:meta, :dot,
|
1758
|
+
emit(:meta, :dot, copy(data, ts, te))
|
1813
1759
|
end
|
1814
1760
|
end
|
1815
|
-
when
|
1816
|
-
# line
|
1761
|
+
when 42 then
|
1762
|
+
# line 398 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1817
1763
|
begin
|
1818
1764
|
te = p+1
|
1819
1765
|
begin
|
1820
1766
|
if conditional_stack.last == group_depth
|
1821
|
-
emit(:conditional, :separator,
|
1767
|
+
emit(:conditional, :separator, copy(data, ts, te))
|
1822
1768
|
else
|
1823
|
-
emit(:meta, :alternation,
|
1769
|
+
emit(:meta, :alternation, copy(data, ts, te))
|
1824
1770
|
end
|
1825
1771
|
end
|
1826
1772
|
end
|
1827
|
-
when
|
1828
|
-
# line
|
1773
|
+
when 41 then
|
1774
|
+
# line 408 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1829
1775
|
begin
|
1830
1776
|
te = p+1
|
1831
1777
|
begin
|
1832
|
-
emit(:anchor, :bol,
|
1778
|
+
emit(:anchor, :bol, copy(data, ts, te))
|
1833
1779
|
end
|
1834
1780
|
end
|
1835
|
-
when
|
1836
|
-
# line
|
1781
|
+
when 34 then
|
1782
|
+
# line 412 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1837
1783
|
begin
|
1838
1784
|
te = p+1
|
1839
1785
|
begin
|
1840
|
-
emit(:anchor, :eol,
|
1786
|
+
emit(:anchor, :eol, copy(data, ts, te))
|
1841
1787
|
end
|
1842
1788
|
end
|
1843
|
-
when
|
1844
|
-
# line
|
1789
|
+
when 62 then
|
1790
|
+
# line 416 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1845
1791
|
begin
|
1846
1792
|
te = p+1
|
1847
1793
|
begin
|
1848
|
-
emit(:keep, :mark,
|
1794
|
+
emit(:keep, :mark, copy(data, ts, te))
|
1849
1795
|
end
|
1850
1796
|
end
|
1851
|
-
when
|
1852
|
-
# line
|
1797
|
+
when 61 then
|
1798
|
+
# line 420 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1853
1799
|
begin
|
1854
1800
|
te = p+1
|
1855
1801
|
begin
|
1856
|
-
case text =
|
1857
|
-
when '\\A'; emit(:anchor, :bos, text
|
1858
|
-
when '\\z'; emit(:anchor, :eos, text
|
1859
|
-
when '\\Z'; emit(:anchor, :eos_ob_eol, text
|
1860
|
-
when '\\b'; emit(:anchor, :word_boundary, text
|
1861
|
-
when '\\B'; emit(:anchor, :nonword_boundary, text
|
1862
|
-
when '\\G'; emit(:anchor, :match_start, text
|
1802
|
+
case text = copy(data, ts, te)
|
1803
|
+
when '\\A'; emit(:anchor, :bos, text)
|
1804
|
+
when '\\z'; emit(:anchor, :eos, text)
|
1805
|
+
when '\\Z'; emit(:anchor, :eos_ob_eol, text)
|
1806
|
+
when '\\b'; emit(:anchor, :word_boundary, text)
|
1807
|
+
when '\\B'; emit(:anchor, :nonword_boundary, text)
|
1808
|
+
when '\\G'; emit(:anchor, :match_start, text)
|
1863
1809
|
end
|
1864
1810
|
end
|
1865
1811
|
end
|
1866
|
-
when
|
1867
|
-
# line
|
1812
|
+
when 40 then
|
1813
|
+
# line 431 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1868
1814
|
begin
|
1869
1815
|
te = p+1
|
1870
1816
|
begin
|
1871
1817
|
append_literal(data, ts, te)
|
1872
1818
|
end
|
1873
1819
|
end
|
1874
|
-
when
|
1875
|
-
# line
|
1820
|
+
when 51 then
|
1821
|
+
# line 446 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1876
1822
|
begin
|
1877
1823
|
te = p+1
|
1878
1824
|
begin
|
1879
|
-
text =
|
1825
|
+
text = copy(data, ts, te)
|
1880
1826
|
|
1881
1827
|
conditional_stack << group_depth
|
1882
1828
|
|
1883
|
-
emit(:conditional, :open, text[0..-2]
|
1884
|
-
emit(:conditional, :condition_open, '('
|
1829
|
+
emit(:conditional, :open, text[0..-2])
|
1830
|
+
emit(:conditional, :condition_open, '(')
|
1885
1831
|
begin
|
1886
1832
|
stack[top] = cs
|
1887
1833
|
top+= 1
|
1888
|
-
cs =
|
1834
|
+
cs = 160
|
1889
1835
|
_goto_level = _again
|
1890
1836
|
next
|
1891
1837
|
end
|
1892
1838
|
|
1893
1839
|
end
|
1894
1840
|
end
|
1895
|
-
when
|
1896
|
-
# line
|
1841
|
+
when 52 then
|
1842
|
+
# line 477 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1897
1843
|
begin
|
1898
1844
|
te = p+1
|
1899
1845
|
begin
|
1900
|
-
text =
|
1846
|
+
text = copy(data, ts, te)
|
1901
1847
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
1902
1848
|
raise InvalidGroupOption.new($1 || "-#{$2}", text)
|
1903
1849
|
end
|
1904
|
-
emit_options(text
|
1850
|
+
emit_options(text)
|
1905
1851
|
end
|
1906
1852
|
end
|
1907
|
-
when
|
1908
|
-
# line
|
1853
|
+
when 50 then
|
1854
|
+
# line 491 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1909
1855
|
begin
|
1910
1856
|
te = p+1
|
1911
1857
|
begin
|
1912
|
-
case text =
|
1913
|
-
when '(?='; emit(:assertion, :lookahead, text
|
1914
|
-
when '(?!'; emit(:assertion, :nlookahead, text
|
1915
|
-
when '(?<='; emit(:assertion, :lookbehind, text
|
1916
|
-
when '(?<!'; emit(:assertion, :nlookbehind, text
|
1858
|
+
case text = copy(data, ts, te)
|
1859
|
+
when '(?='; emit(:assertion, :lookahead, text)
|
1860
|
+
when '(?!'; emit(:assertion, :nlookahead, text)
|
1861
|
+
when '(?<='; emit(:assertion, :lookbehind, text)
|
1862
|
+
when '(?<!'; emit(:assertion, :nlookbehind, text)
|
1917
1863
|
end
|
1918
1864
|
end
|
1919
1865
|
end
|
1920
|
-
when
|
1921
|
-
# line
|
1866
|
+
when 6 then
|
1867
|
+
# line 508 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1922
1868
|
begin
|
1923
1869
|
te = p+1
|
1924
1870
|
begin
|
1925
|
-
case text =
|
1926
|
-
when '(?:'; emit(:group, :passive, text
|
1927
|
-
when '(?>'; emit(:group, :atomic, text
|
1928
|
-
when '(?~'; emit(:group, :absence, text
|
1871
|
+
case text = copy(data, ts, te)
|
1872
|
+
when '(?:'; emit(:group, :passive, text)
|
1873
|
+
when '(?>'; emit(:group, :atomic, text)
|
1874
|
+
when '(?~'; emit(:group, :absence, text)
|
1929
1875
|
|
1930
1876
|
when /^\(\?(?:<>|'')/
|
1931
1877
|
validation_error(:group, 'named group', 'name is empty')
|
1932
1878
|
|
1933
|
-
when /^\(
|
1934
|
-
emit(:group, :named_ab, text
|
1879
|
+
when /^\(\?<[^>]+>/
|
1880
|
+
emit(:group, :named_ab, text)
|
1935
1881
|
|
1936
|
-
when /^\(\?'
|
1937
|
-
emit(:group, :named_sq, text
|
1882
|
+
when /^\(\?'[^']+'/
|
1883
|
+
emit(:group, :named_sq, text)
|
1938
1884
|
|
1939
1885
|
end
|
1940
1886
|
end
|
1941
1887
|
end
|
1942
|
-
when
|
1943
|
-
# line
|
1888
|
+
when 10 then
|
1889
|
+
# line 549 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1944
1890
|
begin
|
1945
1891
|
te = p+1
|
1946
1892
|
begin
|
1947
|
-
case text =
|
1948
|
-
when /^\\(
|
1949
|
-
validation_error(:backref, '
|
1950
|
-
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
1956
|
-
|
1957
|
-
|
1958
|
-
when /^\\(
|
1959
|
-
|
1960
|
-
emit(:backref, :name_ref_sq, text, ts, te)
|
1961
|
-
else
|
1962
|
-
emit(:backref, :name_call_sq, text, ts, te)
|
1963
|
-
end
|
1964
|
-
|
1965
|
-
when /^\\([gk])<\d+>/ # angle-brackets
|
1966
|
-
if $1 == 'k'
|
1967
|
-
emit(:backref, :number_ref_ab, text, ts, te)
|
1968
|
-
else
|
1969
|
-
emit(:backref, :number_call_ab, text, ts, te)
|
1970
|
-
end
|
1971
|
-
|
1972
|
-
when /^\\([gk])'\d+'/ # single quotes
|
1973
|
-
if $1 == 'k'
|
1974
|
-
emit(:backref, :number_ref_sq, text, ts, te)
|
1975
|
-
else
|
1976
|
-
emit(:backref, :number_call_sq, text, ts, te)
|
1977
|
-
end
|
1978
|
-
|
1979
|
-
when /^\\(?:g<\+|g<-|(k)<-)\d+>/ # angle-brackets
|
1980
|
-
if $1 == 'k'
|
1981
|
-
emit(:backref, :number_rel_ref_ab, text, ts, te)
|
1982
|
-
else
|
1983
|
-
emit(:backref, :number_rel_call_ab, text, ts, te)
|
1984
|
-
end
|
1985
|
-
|
1986
|
-
when /^\\(?:g'\+|g'-|(k)'-)\d+'/ # single quotes
|
1987
|
-
if $1 == 'k'
|
1988
|
-
emit(:backref, :number_rel_ref_sq, text, ts, te)
|
1989
|
-
else
|
1990
|
-
emit(:backref, :number_rel_call_sq, text, ts, te)
|
1991
|
-
end
|
1992
|
-
|
1993
|
-
when /^\\k<[^\d+\-]\w*[+\-]\d+>/ # angle-brackets
|
1994
|
-
emit(:backref, :name_recursion_ref_ab, text, ts, te)
|
1995
|
-
|
1996
|
-
when /^\\k'[^\d+\-]\w*[+\-]\d+'/ # single-quotes
|
1997
|
-
emit(:backref, :name_recursion_ref_sq, text, ts, te)
|
1998
|
-
|
1999
|
-
when /^\\([gk])<[+\-]?\d+[+\-]\d+>/ # angle-brackets
|
2000
|
-
emit(:backref, :number_recursion_ref_ab, text, ts, te)
|
2001
|
-
|
2002
|
-
when /^\\([gk])'[+\-]?\d+[+\-]\d+'/ # single-quotes
|
2003
|
-
emit(:backref, :number_recursion_ref_sq, text, ts, te)
|
2004
|
-
|
1893
|
+
case text = copy(data, ts, te)
|
1894
|
+
when /^\\k(<>|'')/
|
1895
|
+
validation_error(:backref, 'backreference', 'ref ID is empty')
|
1896
|
+
when /^\\k(.)[^\p{digit}\-][^+\-]*\D$/
|
1897
|
+
emit(:backref, $1 == '<' ? :name_ref_ab : :name_ref_sq, text)
|
1898
|
+
when /^\\k(.)\d+\D$/
|
1899
|
+
emit(:backref, $1 == '<' ? :number_ref_ab : :number_ref_sq, text)
|
1900
|
+
when /^\\k(.)-\d+\D$/
|
1901
|
+
emit(:backref, $1 == '<' ? :number_rel_ref_ab : :number_rel_ref_sq, text)
|
1902
|
+
when /^\\k(.)[^\p{digit}\-].*[+\-]\d+\D$/
|
1903
|
+
emit(:backref, $1 == '<' ? :name_recursion_ref_ab : :name_recursion_ref_sq, text)
|
1904
|
+
when /^\\k(.)-?\d+[+\-]\d+\D$/
|
1905
|
+
emit(:backref, $1 == '<' ? :number_recursion_ref_ab : :number_recursion_ref_sq, text)
|
2005
1906
|
end
|
2006
1907
|
end
|
2007
1908
|
end
|
2008
|
-
when
|
2009
|
-
# line
|
1909
|
+
when 9 then
|
1910
|
+
# line 568 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2010
1911
|
begin
|
2011
1912
|
te = p+1
|
2012
1913
|
begin
|
2013
|
-
case text =
|
2014
|
-
when '
|
2015
|
-
|
2016
|
-
when
|
1914
|
+
case text = copy(data, ts, te)
|
1915
|
+
when /^\\g(<>|'')/
|
1916
|
+
validation_error(:backref, 'subexpression call', 'ref ID is empty')
|
1917
|
+
when /^\\g(.)[^\p{digit}+\->][^+\-]*/
|
1918
|
+
emit(:backref, $1 == '<' ? :name_call_ab : :name_call_sq, text)
|
1919
|
+
when /^\\g(.)\d+\D$/
|
1920
|
+
emit(:backref, $1 == '<' ? :number_call_ab : :number_call_sq, text)
|
1921
|
+
when /^\\g(.)[+-]\d+/
|
1922
|
+
emit(:backref, $1 == '<' ? :number_rel_call_ab : :number_rel_call_sq, text)
|
2017
1923
|
end
|
2018
1924
|
end
|
2019
1925
|
end
|
2020
|
-
when
|
2021
|
-
# line
|
1926
|
+
when 59 then
|
1927
|
+
# line 584 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2022
1928
|
begin
|
2023
1929
|
te = p+1
|
2024
1930
|
begin
|
2025
|
-
case text =
|
2026
|
-
when '
|
2027
|
-
when '
|
2028
|
-
when '
|
1931
|
+
case text = copy(data, ts, te)
|
1932
|
+
when '?' ; emit(:quantifier, :zero_or_one, text)
|
1933
|
+
when '??'; emit(:quantifier, :zero_or_one_reluctant, text)
|
1934
|
+
when '?+'; emit(:quantifier, :zero_or_one_possessive, text)
|
2029
1935
|
end
|
2030
1936
|
end
|
2031
1937
|
end
|
2032
|
-
when
|
2033
|
-
# line
|
1938
|
+
when 55 then
|
1939
|
+
# line 592 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2034
1940
|
begin
|
2035
1941
|
te = p+1
|
2036
1942
|
begin
|
2037
|
-
case text =
|
2038
|
-
when '
|
2039
|
-
when '
|
2040
|
-
when '
|
1943
|
+
case text = copy(data, ts, te)
|
1944
|
+
when '*' ; emit(:quantifier, :zero_or_more, text)
|
1945
|
+
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text)
|
1946
|
+
when '*+'; emit(:quantifier, :zero_or_more_possessive, text)
|
2041
1947
|
end
|
2042
1948
|
end
|
2043
1949
|
end
|
2044
|
-
when
|
2045
|
-
# line
|
1950
|
+
when 57 then
|
1951
|
+
# line 600 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2046
1952
|
begin
|
2047
1953
|
te = p+1
|
2048
1954
|
begin
|
2049
|
-
|
1955
|
+
case text = copy(data, ts, te)
|
1956
|
+
when '+' ; emit(:quantifier, :one_or_more, text)
|
1957
|
+
when '+?'; emit(:quantifier, :one_or_more_reluctant, text)
|
1958
|
+
when '++'; emit(:quantifier, :one_or_more_possessive, text)
|
1959
|
+
end
|
2050
1960
|
end
|
2051
1961
|
end
|
2052
|
-
when
|
2053
|
-
# line
|
1962
|
+
when 65 then
|
1963
|
+
# line 608 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1964
|
+
begin
|
1965
|
+
te = p+1
|
1966
|
+
begin
|
1967
|
+
emit(:quantifier, :interval, copy(data, ts, te))
|
1968
|
+
end
|
1969
|
+
end
|
1970
|
+
when 46 then
|
1971
|
+
# line 623 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2054
1972
|
begin
|
2055
1973
|
te = p+1
|
2056
1974
|
begin
|
2057
1975
|
if free_spacing
|
2058
|
-
emit(:free_space, :comment,
|
1976
|
+
emit(:free_space, :comment, copy(data, ts, te))
|
2059
1977
|
else
|
2060
|
-
|
1978
|
+
# consume only the pound sign (#) and backtrack to do regular scanning
|
1979
|
+
append_literal(data, ts, ts + 1)
|
1980
|
+
begin p = (( ts + 1))-1; end
|
1981
|
+
|
2061
1982
|
end
|
2062
1983
|
end
|
2063
1984
|
end
|
2064
|
-
when
|
2065
|
-
# line
|
1985
|
+
when 49 then
|
1986
|
+
# line 477 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2066
1987
|
begin
|
2067
1988
|
te = p
|
2068
1989
|
p = p - 1; begin
|
2069
|
-
text =
|
1990
|
+
text = copy(data, ts, te)
|
2070
1991
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
2071
1992
|
raise InvalidGroupOption.new($1 || "-#{$2}", text)
|
2072
1993
|
end
|
2073
|
-
emit_options(text
|
1994
|
+
emit_options(text)
|
2074
1995
|
end
|
2075
1996
|
end
|
2076
|
-
when
|
2077
|
-
# line
|
1997
|
+
when 53 then
|
1998
|
+
# line 491 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2078
1999
|
begin
|
2079
2000
|
te = p
|
2080
2001
|
p = p - 1; begin
|
2081
|
-
text =
|
2082
|
-
emit(:
|
2002
|
+
case text = copy(data, ts, te)
|
2003
|
+
when '(?='; emit(:assertion, :lookahead, text)
|
2004
|
+
when '(?!'; emit(:assertion, :nlookahead, text)
|
2005
|
+
when '(?<='; emit(:assertion, :lookbehind, text)
|
2006
|
+
when '(?<!'; emit(:assertion, :nlookbehind, text)
|
2007
|
+
end
|
2083
2008
|
end
|
2084
2009
|
end
|
2085
|
-
when
|
2086
|
-
# line
|
2010
|
+
when 47 then
|
2011
|
+
# line 526 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2012
|
+
begin
|
2013
|
+
te = p
|
2014
|
+
p = p - 1; begin
|
2015
|
+
text = copy(data, ts, te)
|
2016
|
+
emit(:group, :capture, text)
|
2017
|
+
end
|
2018
|
+
end
|
2019
|
+
when 58 then
|
2020
|
+
# line 584 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2087
2021
|
begin
|
2088
2022
|
te = p
|
2089
2023
|
p = p - 1; begin
|
2090
|
-
case text =
|
2091
|
-
when '?' ; emit(:quantifier, :zero_or_one, text
|
2092
|
-
when '??'; emit(:quantifier, :zero_or_one_reluctant, text
|
2093
|
-
when '?+'; emit(:quantifier, :zero_or_one_possessive, text
|
2024
|
+
case text = copy(data, ts, te)
|
2025
|
+
when '?' ; emit(:quantifier, :zero_or_one, text)
|
2026
|
+
when '??'; emit(:quantifier, :zero_or_one_reluctant, text)
|
2027
|
+
when '?+'; emit(:quantifier, :zero_or_one_possessive, text)
|
2094
2028
|
end
|
2095
2029
|
end
|
2096
2030
|
end
|
2097
|
-
when
|
2098
|
-
# line
|
2031
|
+
when 54 then
|
2032
|
+
# line 592 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2099
2033
|
begin
|
2100
2034
|
te = p
|
2101
2035
|
p = p - 1; begin
|
2102
|
-
case text =
|
2103
|
-
when '*' ; emit(:quantifier, :zero_or_more, text
|
2104
|
-
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text
|
2105
|
-
when '*+'; emit(:quantifier, :zero_or_more_possessive, text
|
2036
|
+
case text = copy(data, ts, te)
|
2037
|
+
when '*' ; emit(:quantifier, :zero_or_more, text)
|
2038
|
+
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text)
|
2039
|
+
when '*+'; emit(:quantifier, :zero_or_more_possessive, text)
|
2106
2040
|
end
|
2107
2041
|
end
|
2108
2042
|
end
|
2109
|
-
when
|
2110
|
-
# line
|
2043
|
+
when 56 then
|
2044
|
+
# line 600 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2111
2045
|
begin
|
2112
2046
|
te = p
|
2113
2047
|
p = p - 1; begin
|
2114
|
-
case text =
|
2115
|
-
when '+' ; emit(:quantifier, :one_or_more, text
|
2116
|
-
when '+?'; emit(:quantifier, :one_or_more_reluctant, text
|
2117
|
-
when '++'; emit(:quantifier, :one_or_more_possessive, text
|
2048
|
+
case text = copy(data, ts, te)
|
2049
|
+
when '+' ; emit(:quantifier, :one_or_more, text)
|
2050
|
+
when '+?'; emit(:quantifier, :one_or_more_reluctant, text)
|
2051
|
+
when '++'; emit(:quantifier, :one_or_more_possessive, text)
|
2118
2052
|
end
|
2119
2053
|
end
|
2120
2054
|
end
|
2121
|
-
when
|
2122
|
-
# line
|
2055
|
+
when 64 then
|
2056
|
+
# line 608 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2123
2057
|
begin
|
2124
2058
|
te = p
|
2125
2059
|
p = p - 1; begin
|
2126
|
-
emit(:quantifier, :interval,
|
2060
|
+
emit(:quantifier, :interval, copy(data, ts, te))
|
2127
2061
|
end
|
2128
2062
|
end
|
2129
|
-
when
|
2130
|
-
# line
|
2063
|
+
when 63 then
|
2064
|
+
# line 613 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2131
2065
|
begin
|
2132
2066
|
te = p
|
2133
2067
|
p = p - 1; begin
|
2134
2068
|
append_literal(data, ts, te)
|
2135
2069
|
end
|
2136
2070
|
end
|
2137
|
-
when
|
2138
|
-
# line
|
2071
|
+
when 60 then
|
2072
|
+
# line 619 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2139
2073
|
begin
|
2140
2074
|
te = p
|
2141
2075
|
p = p - 1; begin
|
2142
2076
|
begin
|
2143
2077
|
stack[top] = cs
|
2144
2078
|
top+= 1
|
2145
|
-
cs =
|
2079
|
+
cs = 146
|
2146
2080
|
_goto_level = _again
|
2147
2081
|
next
|
2148
2082
|
end
|
@@ -2150,66 +2084,73 @@ p = p - 1; begin
|
|
2150
2084
|
end
|
2151
2085
|
end
|
2152
2086
|
when 45 then
|
2153
|
-
# line
|
2087
|
+
# line 623 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2154
2088
|
begin
|
2155
2089
|
te = p
|
2156
2090
|
p = p - 1; begin
|
2157
2091
|
if free_spacing
|
2158
|
-
emit(:free_space, :
|
2092
|
+
emit(:free_space, :comment, copy(data, ts, te))
|
2159
2093
|
else
|
2160
|
-
|
2094
|
+
# consume only the pound sign (#) and backtrack to do regular scanning
|
2095
|
+
append_literal(data, ts, ts + 1)
|
2096
|
+
begin p = (( ts + 1))-1; end
|
2097
|
+
|
2161
2098
|
end
|
2162
2099
|
end
|
2163
2100
|
end
|
2164
2101
|
when 44 then
|
2165
|
-
# line
|
2102
|
+
# line 633 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2103
|
+
begin
|
2104
|
+
te = p
|
2105
|
+
p = p - 1; begin
|
2106
|
+
if free_spacing
|
2107
|
+
emit(:free_space, :whitespace, copy(data, ts, te))
|
2108
|
+
else
|
2109
|
+
append_literal(data, ts, te)
|
2110
|
+
end
|
2111
|
+
end
|
2112
|
+
end
|
2113
|
+
when 43 then
|
2114
|
+
# line 644 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2166
2115
|
begin
|
2167
2116
|
te = p
|
2168
2117
|
p = p - 1; begin
|
2169
2118
|
append_literal(data, ts, te)
|
2170
2119
|
end
|
2171
2120
|
end
|
2172
|
-
when
|
2173
|
-
# line
|
2121
|
+
when 3 then
|
2122
|
+
# line 477 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2174
2123
|
begin
|
2175
2124
|
begin p = ((te))-1; end
|
2176
2125
|
begin
|
2177
|
-
text =
|
2126
|
+
text = copy(data, ts, te)
|
2178
2127
|
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
2179
2128
|
raise InvalidGroupOption.new($1 || "-#{$2}", text)
|
2180
2129
|
end
|
2181
|
-
emit_options(text
|
2130
|
+
emit_options(text)
|
2182
2131
|
end
|
2183
2132
|
end
|
2184
|
-
when
|
2185
|
-
# line
|
2133
|
+
when 11 then
|
2134
|
+
# line 613 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2186
2135
|
begin
|
2187
2136
|
begin p = ((te))-1; end
|
2188
2137
|
begin
|
2189
2138
|
append_literal(data, ts, te)
|
2190
2139
|
end
|
2191
2140
|
end
|
2192
|
-
when
|
2193
|
-
# line
|
2141
|
+
when 8 then
|
2142
|
+
# line 619 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2194
2143
|
begin
|
2195
2144
|
begin p = ((te))-1; end
|
2196
2145
|
begin
|
2197
2146
|
begin
|
2198
2147
|
stack[top] = cs
|
2199
2148
|
top+= 1
|
2200
|
-
cs =
|
2149
|
+
cs = 146
|
2201
2150
|
_goto_level = _again
|
2202
2151
|
next
|
2203
2152
|
end
|
2204
2153
|
|
2205
|
-
end
|
2206
|
-
end
|
2207
|
-
when 3 then
|
2208
|
-
# line 671 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2209
|
-
begin
|
2210
|
-
begin p = ((te))-1; end
|
2211
|
-
begin
|
2212
|
-
append_literal(data, ts, te)
|
2213
2154
|
end
|
2214
2155
|
end
|
2215
2156
|
when 1 then
|
@@ -2223,86 +2164,84 @@ p = p - 1; begin
|
|
2223
2164
|
next
|
2224
2165
|
end
|
2225
2166
|
end
|
2226
|
-
when
|
2167
|
+
when 40 then
|
2168
|
+
begin begin p = ((te))-1; end
|
2169
|
+
|
2170
|
+
text = copy(data, ts, te)
|
2171
|
+
if text[2..-1] =~ /([^\-mixdau:]|^$)|-.*([dau])/
|
2172
|
+
raise InvalidGroupOption.new($1 || "-#{$2}", text)
|
2173
|
+
end
|
2174
|
+
emit_options(text)
|
2175
|
+
end
|
2176
|
+
when 41 then
|
2177
|
+
begin begin p = ((te))-1; end
|
2178
|
+
|
2179
|
+
case text = copy(data, ts, te)
|
2180
|
+
when '(?='; emit(:assertion, :lookahead, text)
|
2181
|
+
when '(?!'; emit(:assertion, :nlookahead, text)
|
2182
|
+
when '(?<='; emit(:assertion, :lookbehind, text)
|
2183
|
+
when '(?<!'; emit(:assertion, :nlookbehind, text)
|
2184
|
+
end
|
2185
|
+
end
|
2186
|
+
when 55 then
|
2227
2187
|
begin begin p = ((te))-1; end
|
2228
2188
|
|
2229
2189
|
append_literal(data, ts, te)
|
2230
2190
|
end
|
2231
2191
|
end
|
2232
2192
|
end
|
2233
|
-
when
|
2234
|
-
# line
|
2193
|
+
when 77 then
|
2194
|
+
# line 147 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2235
2195
|
begin
|
2236
2196
|
|
2237
|
-
text =
|
2197
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2238
2198
|
raise PrematureEndError.new( text )
|
2239
2199
|
end
|
2240
|
-
# line
|
2200
|
+
# line 221 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2241
2201
|
begin
|
2242
2202
|
te = p
|
2243
2203
|
p = p - 1; begin
|
2244
|
-
emit(:set, :open,
|
2204
|
+
emit(:set, :open, copy(data, ts, te))
|
2245
2205
|
begin
|
2246
2206
|
stack[top] = cs
|
2247
2207
|
top+= 1
|
2248
|
-
cs =
|
2208
|
+
cs = 138
|
2249
2209
|
_goto_level = _again
|
2250
2210
|
next
|
2251
2211
|
end
|
2252
2212
|
|
2253
2213
|
end
|
2254
2214
|
end
|
2255
|
-
when
|
2256
|
-
# line
|
2215
|
+
when 18 then
|
2216
|
+
# line 147 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2257
2217
|
begin
|
2258
2218
|
|
2259
|
-
text =
|
2219
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2260
2220
|
raise PrematureEndError.new( text )
|
2261
2221
|
end
|
2262
|
-
# line
|
2222
|
+
# line 221 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2263
2223
|
begin
|
2264
2224
|
begin p = ((te))-1; end
|
2265
2225
|
begin
|
2266
|
-
emit(:set, :open,
|
2226
|
+
emit(:set, :open, copy(data, ts, te))
|
2267
2227
|
begin
|
2268
2228
|
stack[top] = cs
|
2269
2229
|
top+= 1
|
2270
|
-
cs =
|
2271
|
-
_goto_level = _again
|
2272
|
-
next
|
2273
|
-
end
|
2274
|
-
|
2275
|
-
end
|
2276
|
-
end
|
2277
|
-
when 93 then
|
2278
|
-
# line 137 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2279
|
-
begin
|
2280
|
-
|
2281
|
-
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
2282
|
-
raise PrematureEndError.new( text )
|
2283
|
-
end
|
2284
|
-
# line 329 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2285
|
-
begin
|
2286
|
-
te = p
|
2287
|
-
p = p - 1; begin
|
2288
|
-
emit(:escape, :hex, *text(data, ts, te, 1))
|
2289
|
-
begin
|
2290
|
-
top -= 1
|
2291
|
-
cs = stack[top]
|
2230
|
+
cs = 138
|
2292
2231
|
_goto_level = _again
|
2293
2232
|
next
|
2294
2233
|
end
|
2295
2234
|
|
2296
2235
|
end
|
2297
2236
|
end
|
2298
|
-
when
|
2299
|
-
# line
|
2237
|
+
when 92 then
|
2238
|
+
# line 147 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2300
2239
|
begin
|
2301
2240
|
|
2302
|
-
text =
|
2241
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2303
2242
|
raise PrematureEndError.new( text )
|
2304
2243
|
end
|
2305
|
-
# line
|
2244
|
+
# line 343 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2306
2245
|
begin
|
2307
2246
|
te = p
|
2308
2247
|
p = p - 1; begin
|
@@ -2316,14 +2255,14 @@ p = p - 1; begin
|
|
2316
2255
|
|
2317
2256
|
end
|
2318
2257
|
end
|
2319
|
-
when
|
2320
|
-
# line
|
2258
|
+
when 94 then
|
2259
|
+
# line 147 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2321
2260
|
begin
|
2322
2261
|
|
2323
|
-
text =
|
2262
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2324
2263
|
raise PrematureEndError.new( text )
|
2325
2264
|
end
|
2326
|
-
# line
|
2265
|
+
# line 348 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2327
2266
|
begin
|
2328
2267
|
te = p
|
2329
2268
|
p = p - 1; begin
|
@@ -2337,14 +2276,14 @@ p = p - 1; begin
|
|
2337
2276
|
|
2338
2277
|
end
|
2339
2278
|
end
|
2340
|
-
when
|
2341
|
-
# line
|
2279
|
+
when 25 then
|
2280
|
+
# line 147 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2342
2281
|
begin
|
2343
2282
|
|
2344
|
-
text =
|
2283
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2345
2284
|
raise PrematureEndError.new( text )
|
2346
2285
|
end
|
2347
|
-
# line
|
2286
|
+
# line 343 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2348
2287
|
begin
|
2349
2288
|
begin p = ((te))-1; end
|
2350
2289
|
begin
|
@@ -2358,14 +2297,14 @@ p = p - 1; begin
|
|
2358
2297
|
|
2359
2298
|
end
|
2360
2299
|
end
|
2361
|
-
when
|
2362
|
-
# line
|
2300
|
+
when 27 then
|
2301
|
+
# line 147 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2363
2302
|
begin
|
2364
2303
|
|
2365
|
-
text =
|
2304
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2366
2305
|
raise PrematureEndError.new( text )
|
2367
2306
|
end
|
2368
|
-
# line
|
2307
|
+
# line 348 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2369
2308
|
begin
|
2370
2309
|
begin p = ((te))-1; end
|
2371
2310
|
begin
|
@@ -2379,14 +2318,14 @@ p = p - 1; begin
|
|
2379
2318
|
|
2380
2319
|
end
|
2381
2320
|
end
|
2382
|
-
when
|
2383
|
-
# line
|
2321
|
+
when 29 then
|
2322
|
+
# line 153 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2384
2323
|
begin
|
2385
2324
|
|
2386
|
-
text =
|
2325
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2387
2326
|
validation_error(:sequence, 'sequence', text)
|
2388
2327
|
end
|
2389
|
-
# line
|
2328
|
+
# line 339 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2390
2329
|
begin
|
2391
2330
|
te = p+1
|
2392
2331
|
begin
|
@@ -2399,28 +2338,28 @@ te = p+1
|
|
2399
2338
|
|
2400
2339
|
end
|
2401
2340
|
end
|
2402
|
-
when
|
2403
|
-
# line
|
2341
|
+
when 5 then
|
2342
|
+
# line 160 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2404
2343
|
begin
|
2405
2344
|
self.group_depth = group_depth - 1 end
|
2406
|
-
# line
|
2345
|
+
# line 462 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2407
2346
|
begin
|
2408
2347
|
te = p+1
|
2409
2348
|
begin
|
2410
|
-
emit(:group, :comment,
|
2349
|
+
emit(:group, :comment, copy(data, ts, te))
|
2411
2350
|
end
|
2412
2351
|
end
|
2413
|
-
when
|
2414
|
-
# line
|
2352
|
+
when 36 then
|
2353
|
+
# line 160 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2415
2354
|
begin
|
2416
2355
|
self.group_depth = group_depth - 1 end
|
2417
|
-
# line
|
2356
|
+
# line 531 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2418
2357
|
begin
|
2419
2358
|
te = p+1
|
2420
2359
|
begin
|
2421
2360
|
if conditional_stack.last == group_depth + 1
|
2422
2361
|
conditional_stack.pop
|
2423
|
-
emit(:conditional, :close,
|
2362
|
+
emit(:conditional, :close, copy(data, ts, te))
|
2424
2363
|
else
|
2425
2364
|
if spacing_stack.length > 1 &&
|
2426
2365
|
spacing_stack.last[:depth] == group_depth + 1
|
@@ -2428,38 +2367,38 @@ te = p+1
|
|
2428
2367
|
self.free_spacing = spacing_stack.last[:free_spacing]
|
2429
2368
|
end
|
2430
2369
|
|
2431
|
-
emit(:group, :close,
|
2370
|
+
emit(:group, :close, copy(data, ts, te))
|
2432
2371
|
end
|
2433
2372
|
end
|
2434
2373
|
end
|
2435
|
-
when
|
2436
|
-
# line
|
2374
|
+
when 38 then
|
2375
|
+
# line 161 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2437
2376
|
begin
|
2438
2377
|
self.set_depth = set_depth + 1 end
|
2439
|
-
# line
|
2378
|
+
# line 437 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2440
2379
|
begin
|
2441
2380
|
te = p+1
|
2442
2381
|
begin
|
2443
|
-
emit(:set, :open,
|
2382
|
+
emit(:set, :open, copy(data, ts, te))
|
2444
2383
|
begin
|
2445
2384
|
stack[top] = cs
|
2446
2385
|
top+= 1
|
2447
|
-
cs =
|
2386
|
+
cs = 138
|
2448
2387
|
_goto_level = _again
|
2449
2388
|
next
|
2450
2389
|
end
|
2451
2390
|
|
2452
2391
|
end
|
2453
2392
|
end
|
2454
|
-
when
|
2455
|
-
# line
|
2393
|
+
when 71 then
|
2394
|
+
# line 162 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2456
2395
|
begin
|
2457
2396
|
self.set_depth = set_depth - 1 end
|
2458
|
-
# line
|
2397
|
+
# line 168 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2459
2398
|
begin
|
2460
2399
|
te = p+1
|
2461
2400
|
begin
|
2462
|
-
emit(:set, :close,
|
2401
|
+
emit(:set, :close, copy(data, ts, te))
|
2463
2402
|
if in_set?
|
2464
2403
|
begin
|
2465
2404
|
top -= 1
|
@@ -2470,7 +2409,7 @@ te = p+1
|
|
2470
2409
|
|
2471
2410
|
else
|
2472
2411
|
begin
|
2473
|
-
cs =
|
2412
|
+
cs = 119
|
2474
2413
|
_goto_level = _again
|
2475
2414
|
next
|
2476
2415
|
end
|
@@ -2478,16 +2417,16 @@ te = p+1
|
|
2478
2417
|
end
|
2479
2418
|
end
|
2480
2419
|
end
|
2481
|
-
when
|
2482
|
-
# line
|
2420
|
+
when 76 then
|
2421
|
+
# line 162 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2483
2422
|
begin
|
2484
2423
|
self.set_depth = set_depth - 1 end
|
2485
|
-
# line
|
2424
|
+
# line 177 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2486
2425
|
begin
|
2487
2426
|
te = p+1
|
2488
2427
|
begin # special case, emits two tokens
|
2489
|
-
emit(:literal, :literal, copy(data, ts
|
2490
|
-
emit(:set, :close, copy(data, ts+1
|
2428
|
+
emit(:literal, :literal, copy(data, ts, te-1))
|
2429
|
+
emit(:set, :close, copy(data, ts+1, te))
|
2491
2430
|
if in_set?
|
2492
2431
|
begin
|
2493
2432
|
top -= 1
|
@@ -2498,7 +2437,7 @@ te = p+1
|
|
2498
2437
|
|
2499
2438
|
else
|
2500
2439
|
begin
|
2501
|
-
cs =
|
2440
|
+
cs = 119
|
2502
2441
|
_goto_level = _again
|
2503
2442
|
next
|
2504
2443
|
end
|
@@ -2506,15 +2445,15 @@ te = p+1
|
|
2506
2445
|
end
|
2507
2446
|
end
|
2508
2447
|
end
|
2509
|
-
when
|
2510
|
-
# line
|
2448
|
+
when 20 then
|
2449
|
+
# line 162 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2511
2450
|
begin
|
2512
2451
|
self.set_depth = set_depth - 1 end
|
2513
|
-
# line
|
2452
|
+
# line 226 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2514
2453
|
begin
|
2515
2454
|
te = p+1
|
2516
2455
|
begin
|
2517
|
-
text =
|
2456
|
+
text = copy(data, ts, te)
|
2518
2457
|
|
2519
2458
|
type = :posixclass
|
2520
2459
|
class_name = text[2..-3]
|
@@ -2523,85 +2462,74 @@ te = p+1
|
|
2523
2462
|
type = :nonposixclass
|
2524
2463
|
end
|
2525
2464
|
|
2526
|
-
emit(type, class_name.to_sym, text
|
2465
|
+
emit(type, class_name.to_sym, text)
|
2527
2466
|
end
|
2528
2467
|
end
|
2529
|
-
when
|
2530
|
-
# line
|
2531
|
-
begin
|
2532
|
-
self.set_depth = set_depth - 1 end
|
2533
|
-
# line 229 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2468
|
+
when 69 then
|
2469
|
+
# line 1 "NONE"
|
2534
2470
|
begin
|
2535
2471
|
te = p+1
|
2536
|
-
begin
|
2537
|
-
emit(:set, :collation, *text(data, ts, te))
|
2538
|
-
end
|
2539
2472
|
end
|
2540
|
-
|
2541
|
-
# line 152 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2473
|
+
# line 161 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2542
2474
|
begin
|
2543
|
-
self.set_depth = set_depth
|
2544
|
-
|
2545
|
-
begin
|
2546
|
-
te = p+1
|
2547
|
-
begin
|
2548
|
-
emit(:set, :equivalent, *text(data, ts, te))
|
2549
|
-
end
|
2550
|
-
end
|
2551
|
-
when 66 then
|
2475
|
+
self.set_depth = set_depth + 1 end
|
2476
|
+
when 83 then
|
2552
2477
|
# line 1 "NONE"
|
2553
2478
|
begin
|
2554
2479
|
te = p+1
|
2555
2480
|
end
|
2556
|
-
# line
|
2481
|
+
# line 276 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2557
2482
|
begin
|
2558
|
-
|
2559
|
-
when
|
2483
|
+
act = 16; end
|
2484
|
+
when 82 then
|
2560
2485
|
# line 1 "NONE"
|
2561
2486
|
begin
|
2562
2487
|
te = p+1
|
2563
2488
|
end
|
2564
|
-
# line
|
2489
|
+
# line 282 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2565
2490
|
begin
|
2566
|
-
act =
|
2567
|
-
when
|
2491
|
+
act = 17; end
|
2492
|
+
when 7 then
|
2568
2493
|
# line 1 "NONE"
|
2569
2494
|
begin
|
2570
2495
|
te = p+1
|
2571
2496
|
end
|
2572
|
-
# line
|
2497
|
+
# line 491 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2573
2498
|
begin
|
2574
|
-
act =
|
2499
|
+
act = 41; end
|
2575
2500
|
when 2 then
|
2576
2501
|
# line 1 "NONE"
|
2577
2502
|
begin
|
2578
2503
|
te = p+1
|
2579
2504
|
end
|
2580
|
-
# line
|
2505
|
+
# line 644 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2581
2506
|
begin
|
2582
|
-
act =
|
2583
|
-
when
|
2507
|
+
act = 55; end
|
2508
|
+
when 48 then
|
2584
2509
|
# line 1 "NONE"
|
2585
2510
|
begin
|
2586
2511
|
te = p+1
|
2587
2512
|
end
|
2588
|
-
# line
|
2513
|
+
# line 160 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2589
2514
|
begin
|
2590
2515
|
self.group_depth = group_depth - 1 end
|
2591
|
-
# line
|
2516
|
+
# line 159 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2592
2517
|
begin
|
2593
2518
|
self.group_depth = group_depth + 1 end
|
2594
|
-
# line
|
2519
|
+
# line 477 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2520
|
+
begin
|
2521
|
+
act = 40; end
|
2522
|
+
# line 2522 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
2595
2523
|
end
|
2596
2524
|
end
|
2597
2525
|
end
|
2598
2526
|
if _goto_level <= _again
|
2599
2527
|
case _re_scanner_to_state_actions[cs]
|
2600
|
-
when
|
2528
|
+
when 66 then
|
2601
2529
|
# line 1 "NONE"
|
2602
2530
|
begin
|
2603
2531
|
ts = nil; end
|
2604
|
-
when
|
2532
|
+
when 32 then
|
2605
2533
|
# line 1 "NONE"
|
2606
2534
|
begin
|
2607
2535
|
ts = nil; end
|
@@ -2609,7 +2537,7 @@ ts = nil; end
|
|
2609
2537
|
begin
|
2610
2538
|
act = 0
|
2611
2539
|
end
|
2612
|
-
# line
|
2540
|
+
# line 2540 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
2613
2541
|
end
|
2614
2542
|
|
2615
2543
|
if cs == 0
|
@@ -2630,20 +2558,20 @@ act = 0
|
|
2630
2558
|
next;
|
2631
2559
|
end
|
2632
2560
|
case _re_scanner_eof_actions[cs]
|
2633
|
-
when
|
2634
|
-
# line 8 "/Users/
|
2561
|
+
when 12 then
|
2562
|
+
# line 8 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
|
2635
2563
|
begin
|
2636
2564
|
|
2637
2565
|
raise PrematureEndError.new('unicode property')
|
2638
2566
|
end
|
2639
|
-
when
|
2640
|
-
# line
|
2567
|
+
when 23 then
|
2568
|
+
# line 147 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2641
2569
|
begin
|
2642
2570
|
|
2643
|
-
text =
|
2571
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2644
2572
|
raise PrematureEndError.new( text )
|
2645
2573
|
end
|
2646
|
-
# line
|
2574
|
+
# line 2574 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
|
2647
2575
|
end
|
2648
2576
|
end
|
2649
2577
|
|
@@ -2654,13 +2582,13 @@ act = 0
|
|
2654
2582
|
end
|
2655
2583
|
end
|
2656
2584
|
|
2657
|
-
# line
|
2585
|
+
# line 741 "/Users/janoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2658
2586
|
|
2659
2587
|
# to avoid "warning: assigned but unused variable - testEof"
|
2660
2588
|
testEof = testEof
|
2661
2589
|
|
2662
2590
|
if cs == re_scanner_error
|
2663
|
-
text =
|
2591
|
+
text = copy(data, ts ? ts-1 : 0, -1)
|
2664
2592
|
raise ScannerError.new("Scan error at '#{text}'")
|
2665
2593
|
end
|
2666
2594
|
|
@@ -2676,34 +2604,54 @@ end
|
|
2676
2604
|
end
|
2677
2605
|
|
2678
2606
|
# lazy-load property maps when first needed
|
2679
|
-
require 'yaml'
|
2680
|
-
PROP_MAPS_DIR = File.expand_path('../scanner/properties', __FILE__)
|
2681
|
-
|
2682
2607
|
def self.short_prop_map
|
2683
|
-
@short_prop_map ||=
|
2608
|
+
@short_prop_map ||= parse_prop_map('short')
|
2684
2609
|
end
|
2685
2610
|
|
2686
2611
|
def self.long_prop_map
|
2687
|
-
@long_prop_map ||=
|
2612
|
+
@long_prop_map ||= parse_prop_map('long')
|
2613
|
+
end
|
2614
|
+
|
2615
|
+
def self.parse_prop_map(name)
|
2616
|
+
File.read("#{__dir__}/scanner/properties/#{name}.csv").scan(/(.+),(.+)/).to_h
|
2688
2617
|
end
|
2689
2618
|
|
2690
2619
|
# Emits an array with the details of the scanned pattern
|
2691
|
-
def emit(type, token, text
|
2620
|
+
def emit(type, token, text)
|
2692
2621
|
#puts "EMIT: type: #{type}, token: #{token}, text: #{text}, ts: #{ts}, te: #{te}"
|
2693
2622
|
|
2694
2623
|
emit_literal if literal
|
2695
2624
|
|
2625
|
+
# Ragel runs with byte-based indices (ts, te). These are of little value to
|
2626
|
+
# end-users, so we keep track of char-based indices and emit those instead.
|
2627
|
+
ts_char_pos = char_pos
|
2628
|
+
te_char_pos = char_pos + text.length
|
2629
|
+
|
2696
2630
|
if block
|
2697
|
-
block.call type, token, text,
|
2631
|
+
block.call type, token, text, ts_char_pos, te_char_pos
|
2698
2632
|
end
|
2699
2633
|
|
2700
|
-
tokens << [type, token, text,
|
2634
|
+
tokens << [type, token, text, ts_char_pos, te_char_pos]
|
2635
|
+
|
2636
|
+
self.char_pos = te_char_pos
|
2701
2637
|
end
|
2702
2638
|
|
2703
2639
|
private
|
2704
2640
|
|
2705
2641
|
attr_accessor :tokens, :literal, :block, :free_spacing, :spacing_stack,
|
2706
|
-
:group_depth, :set_depth, :conditional_stack
|
2642
|
+
:group_depth, :set_depth, :conditional_stack, :char_pos
|
2643
|
+
|
2644
|
+
def free_spacing?(input_object, options)
|
2645
|
+
if options && !input_object.is_a?(String)
|
2646
|
+
raise ArgumentError, 'options cannot be supplied unless scanning a String'
|
2647
|
+
end
|
2648
|
+
|
2649
|
+
options = input_object.options if input_object.is_a?(::Regexp)
|
2650
|
+
|
2651
|
+
return false unless options
|
2652
|
+
|
2653
|
+
options & Regexp::EXTENDED != 0
|
2654
|
+
end
|
2707
2655
|
|
2708
2656
|
def in_group?
|
2709
2657
|
group_depth > 0
|
@@ -2714,36 +2662,25 @@ end
|
|
2714
2662
|
end
|
2715
2663
|
|
2716
2664
|
# Copy from ts to te from data as text
|
2717
|
-
def copy(data,
|
2718
|
-
data[
|
2719
|
-
end
|
2720
|
-
|
2721
|
-
# Copy from ts to te from data as text, returning an array with the text
|
2722
|
-
# and the offsets used to copy it.
|
2723
|
-
def text(data, ts, te, soff = 0)
|
2724
|
-
[copy(data, ts-soff..te-1), ts-soff, te]
|
2665
|
+
def copy(data, ts, te)
|
2666
|
+
data[ts...te].pack('c*').force_encoding('utf-8')
|
2725
2667
|
end
|
2726
2668
|
|
2727
2669
|
# Appends one or more characters to the literal buffer, to be emitted later
|
2728
|
-
# by a call to emit_literal.
|
2670
|
+
# by a call to emit_literal.
|
2729
2671
|
def append_literal(data, ts, te)
|
2730
2672
|
self.literal = literal || []
|
2731
|
-
literal <<
|
2673
|
+
literal << copy(data, ts, te)
|
2732
2674
|
end
|
2733
2675
|
|
2734
|
-
# Emits the literal run collected by calls to the append_literal method
|
2735
|
-
# using the total start (ts) and end (te) offsets of the run.
|
2676
|
+
# Emits the literal run collected by calls to the append_literal method.
|
2736
2677
|
def emit_literal
|
2737
|
-
|
2738
|
-
text = literal.map {|t| t[0]}.join
|
2739
|
-
|
2740
|
-
text.force_encoding('utf-8') if text.respond_to?(:force_encoding)
|
2741
|
-
|
2678
|
+
text = literal.join
|
2742
2679
|
self.literal = nil
|
2743
|
-
emit(:literal, :literal, text
|
2680
|
+
emit(:literal, :literal, text)
|
2744
2681
|
end
|
2745
2682
|
|
2746
|
-
def emit_options(text
|
2683
|
+
def emit_options(text)
|
2747
2684
|
token = nil
|
2748
2685
|
|
2749
2686
|
# Ruby allows things like '(?-xxxx)' or '(?xx-xx--xx-:abc)'.
|
@@ -2769,14 +2706,14 @@ end
|
|
2769
2706
|
token = :options_switch
|
2770
2707
|
end
|
2771
2708
|
|
2772
|
-
emit(:group, token, text
|
2709
|
+
emit(:group, token, text)
|
2773
2710
|
end
|
2774
2711
|
|
2775
2712
|
def emit_meta_control_sequence(data, ts, te, token)
|
2776
2713
|
if data.last < 0x00 || data.last > 0x7F
|
2777
2714
|
validation_error(:sequence, 'escape', token.to_s)
|
2778
2715
|
end
|
2779
|
-
emit(:escape, token,
|
2716
|
+
emit(:escape, token, copy(data, ts-1, te))
|
2780
2717
|
end
|
2781
2718
|
|
2782
2719
|
# Centralizes and unifies the handling of validation related
|