regexp_parser 0.1.1 → 0.1.5
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 +7 -0
- data/ChangeLog +45 -0
- data/Rakefile +12 -44
- data/VERSION.yml +5 -0
- data/lib/regexp_parser.rb +5 -38
- data/lib/regexp_parser/expression.rb +68 -221
- data/lib/regexp_parser/expression/classes/alternation.rb +47 -0
- data/lib/regexp_parser/expression/classes/anchor.rb +26 -0
- data/lib/regexp_parser/expression/classes/backref.rb +42 -0
- data/lib/regexp_parser/expression/classes/escape.rb +27 -0
- data/lib/regexp_parser/expression/classes/group.rb +67 -0
- data/lib/regexp_parser/expression/classes/literal.rb +7 -0
- data/lib/regexp_parser/expression/{property.rb → classes/property.rb} +1 -1
- data/lib/regexp_parser/expression/classes/root.rb +26 -0
- data/lib/regexp_parser/expression/classes/set.rb +100 -0
- data/lib/regexp_parser/expression/classes/type.rb +17 -0
- data/lib/regexp_parser/expression/quantifier.rb +26 -0
- data/lib/regexp_parser/expression/subexpression.rb +69 -0
- data/lib/regexp_parser/lexer.rb +4 -4
- data/lib/regexp_parser/parser.rb +31 -13
- data/lib/regexp_parser/scanner.rb +1849 -1488
- data/lib/regexp_parser/scanner/property.rl +7 -2
- data/lib/regexp_parser/scanner/scanner.rl +377 -191
- data/lib/regexp_parser/syntax.rb +7 -0
- data/lib/regexp_parser/syntax/ruby/1.8.6.rb +4 -4
- data/lib/regexp_parser/syntax/ruby/1.9.1.rb +9 -9
- data/lib/regexp_parser/syntax/ruby/2.0.0.rb +16 -0
- data/lib/regexp_parser/syntax/ruby/2.1.0.rb +13 -0
- data/lib/regexp_parser/syntax/tokens.rb +21 -320
- data/lib/regexp_parser/syntax/tokens/anchor.rb +17 -0
- data/lib/regexp_parser/syntax/tokens/assertion.rb +15 -0
- data/lib/regexp_parser/syntax/tokens/backref.rb +26 -0
- data/lib/regexp_parser/syntax/tokens/character_set.rb +48 -0
- data/lib/regexp_parser/syntax/tokens/character_type.rb +16 -0
- data/lib/regexp_parser/syntax/tokens/escape.rb +29 -0
- data/lib/regexp_parser/syntax/tokens/group.rb +22 -0
- data/lib/regexp_parser/syntax/tokens/meta.rb +15 -0
- data/lib/regexp_parser/syntax/tokens/quantifier.rb +37 -0
- data/lib/regexp_parser/syntax/tokens/unicode_property.rb +204 -0
- data/lib/regexp_parser/token.rb +37 -0
- data/test/expression/test_all.rb +7 -0
- data/test/expression/test_base.rb +72 -0
- data/test/expression/test_clone.rb +144 -0
- data/test/{parser/test_expression.rb → expression/test_to_s.rb} +10 -10
- data/test/helpers.rb +1 -0
- data/test/parser/test_all.rb +1 -1
- data/test/parser/test_alternation.rb +35 -0
- data/test/parser/test_anchors.rb +2 -2
- data/test/parser/test_refcalls.rb +1 -1
- data/test/parser/test_sets.rb +54 -8
- data/test/scanner/test_anchors.rb +2 -2
- data/test/scanner/test_conditionals.rb +31 -0
- data/test/scanner/test_errors.rb +88 -8
- data/test/scanner/test_escapes.rb +4 -4
- data/test/scanner/test_groups.rb +7 -0
- data/test/scanner/test_quoting.rb +29 -0
- data/test/scanner/test_sets.rb +1 -0
- data/test/syntax/ruby/test_1.8.rb +3 -3
- data/test/test_all.rb +1 -1
- metadata +62 -48
- data/lib/regexp_parser/expression/set.rb +0 -59
data/lib/regexp_parser/lexer.rb
CHANGED
@@ -21,15 +21,15 @@ module Regexp::Lexer
|
|
21
21
|
type, token = *syntax.normalize(type, token)
|
22
22
|
syntax.check! type, token
|
23
23
|
|
24
|
-
|
24
|
+
ascend(type, token)
|
25
25
|
|
26
|
-
|
26
|
+
break_literal(last) if type == :quantifier and
|
27
27
|
last and last.type == :literal
|
28
28
|
|
29
29
|
current = Regexp::Token.new(type, token, text, ts, te,
|
30
30
|
@nesting, @set_nesting)
|
31
31
|
|
32
|
-
current =
|
32
|
+
current = merge_literal(current) if type == :literal and
|
33
33
|
last and last.type == :literal
|
34
34
|
|
35
35
|
last.next(current) if last
|
@@ -38,7 +38,7 @@ module Regexp::Lexer
|
|
38
38
|
@tokens << current
|
39
39
|
last = current
|
40
40
|
|
41
|
-
|
41
|
+
descend(type, token)
|
42
42
|
end
|
43
43
|
|
44
44
|
if block_given?
|
data/lib/regexp_parser/parser.rb
CHANGED
@@ -71,7 +71,7 @@ module Regexp::Parser
|
|
71
71
|
when :open
|
72
72
|
self.open_set(token)
|
73
73
|
when :close
|
74
|
-
self.close_set
|
74
|
+
self.close_set(token)
|
75
75
|
when :negate
|
76
76
|
self.negate_set
|
77
77
|
when :member, :range, :escape, :collation, :equivalent
|
@@ -93,16 +93,22 @@ module Regexp::Parser
|
|
93
93
|
@node << CharacterType::Any.new(token)
|
94
94
|
when :alternation
|
95
95
|
unless @node.token == :alternation
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
96
|
+
unless @node.last.is_a?(Alternation)
|
97
|
+
alt = Alternation.new(token)
|
98
|
+
seq = Sequence.new
|
99
|
+
|
100
|
+
while @node.expressions.last
|
101
|
+
seq.insert @node.expressions.pop
|
102
|
+
end
|
103
|
+
alt.alternative(seq)
|
104
|
+
|
105
|
+
@node << alt
|
106
|
+
@node = alt
|
107
|
+
@node.alternative
|
108
|
+
else
|
109
|
+
@node = @node.last
|
110
|
+
@node.alternative
|
100
111
|
end
|
101
|
-
alt.alternative(seq)
|
102
|
-
|
103
|
-
@node << alt
|
104
|
-
@node = alt
|
105
|
-
@node.alternative
|
106
112
|
else
|
107
113
|
@node.alternative
|
108
114
|
end
|
@@ -238,9 +244,9 @@ module Regexp::Parser
|
|
238
244
|
|
239
245
|
def self.anchor(token)
|
240
246
|
case token.token
|
241
|
-
when :
|
247
|
+
when :bol
|
242
248
|
@node << Anchor::BeginningOfLine.new(token)
|
243
|
-
when :
|
249
|
+
when :eol
|
244
250
|
@node << Anchor::EndOfLine.new(token)
|
245
251
|
when :bos
|
246
252
|
@node << Anchor::BOS.new(token)
|
@@ -292,6 +298,15 @@ module Regexp::Parser
|
|
292
298
|
end
|
293
299
|
|
294
300
|
def self.quantifier(token)
|
301
|
+
unless @node.expressions.last
|
302
|
+
if token.token == :zero_or_one
|
303
|
+
raise "Quantifier given without a target, or the syntax of the group " +
|
304
|
+
"or its options is incorrect"
|
305
|
+
else
|
306
|
+
raise "Quantifier `#{token.text}' given without a target"
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
295
310
|
case token.token
|
296
311
|
when :zero_or_one
|
297
312
|
@node.expressions.last.quantify(:zero_or_one, token.text, 0, 1, :greedy)
|
@@ -396,6 +411,8 @@ module Regexp::Parser
|
|
396
411
|
end
|
397
412
|
|
398
413
|
def self.open_set(token)
|
414
|
+
token.token = :character
|
415
|
+
|
399
416
|
if token.type == :subset
|
400
417
|
@set << CharacterSubSet.new(token)
|
401
418
|
else
|
@@ -411,7 +428,8 @@ module Regexp::Parser
|
|
411
428
|
@set << token.text
|
412
429
|
end
|
413
430
|
|
414
|
-
def self.close_set
|
431
|
+
def self.close_set(token)
|
432
|
+
@set.close
|
415
433
|
end
|
416
434
|
|
417
435
|
end # module Regexp::Parser
|
@@ -1,13 +1,15 @@
|
|
1
1
|
|
2
|
-
# line 1 "/
|
2
|
+
# line 1 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3
3
|
|
4
|
-
# line
|
4
|
+
# line 677 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
5
5
|
|
6
6
|
|
7
|
+
# THIS IS A GENERATED FILE, DO NOT EDIT DIRECTLY
|
8
|
+
# This file was generated from scanner.rl
|
7
9
|
|
8
10
|
module Regexp::Scanner
|
9
11
|
|
10
|
-
# line
|
12
|
+
# line 13 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
|
11
13
|
class << self
|
12
14
|
attr_accessor :_re_scanner_trans_keys
|
13
15
|
private :_re_scanner_trans_keys, :_re_scanner_trans_keys=
|
@@ -15,14 +17,14 @@ end
|
|
15
17
|
self._re_scanner_trans_keys = [
|
16
18
|
0, 0, -128, -65, -128, -65,
|
17
19
|
-128, -65, -128, -65, -128,
|
18
|
-
-65, -128, -65,
|
19
|
-
41, 41,
|
20
|
+
-65, -128, -65, 33, 120,
|
21
|
+
41, 41, 41, 41, 39, 122,
|
20
22
|
33, 122, 48, 122, 39,
|
21
|
-
60,
|
23
|
+
60, 39, 122, 48, 57,
|
22
24
|
39, 57, 48, 57, 39, 57,
|
23
|
-
39, 122,
|
24
|
-
57,
|
25
|
-
|
25
|
+
39, 122, 43, 122, 48,
|
26
|
+
57, 48, 62, 48, 57,
|
27
|
+
43, 62, 43, 122, 44, 125,
|
26
28
|
48, 125, 123, 123, 9,
|
27
29
|
122, 9, 125, 9, 125,
|
28
30
|
9, 125, 9, 125, 49, 54,
|
@@ -56,34 +58,37 @@ self._re_scanner_trans_keys = [
|
|
56
58
|
-128, -65, -128, -65, -128,
|
57
59
|
-65, -128, -65, -128, -65,
|
58
60
|
92, 92, 120, 120, 48, 102,
|
59
|
-
45, 45,
|
60
|
-
|
61
|
-
|
61
|
+
45, 45, 45, 45, 67,
|
62
|
+
99, 45, 45, 48, 123,
|
63
|
+
48, 102, 48, 102, 48, 102,
|
62
64
|
48, 102, 48, 102, 48,
|
63
|
-
102, 48, 102,
|
64
|
-
48,
|
65
|
-
|
66
|
-
|
65
|
+
102, 48, 102, 9, 125,
|
66
|
+
48, 125, 48, 123, 9, 125,
|
67
|
+
9, 125, -128, 127, -62,
|
68
|
+
-33, -32, -17, -16, -12,
|
69
|
+
1, 127, 32, 126, 63, 63,
|
70
|
+
43, 63, 43, 63, 43,
|
71
|
+
63, 65, 122, 43, 63,
|
72
|
+
80, 112, -62, 127, -128, -65,
|
73
|
+
-62, -33, -128, -65, -32,
|
74
|
+
-17, -128, -65, -16, -12,
|
75
|
+
1, 127, 38, 38, 93, 93,
|
76
|
+
45, 45, 46, 61, -62,
|
77
|
+
127, -62, -33, -32, -17,
|
78
|
+
-16, -12, 1, 127, 32, 126,
|
79
|
+
32, 126, 32, 126, 48,
|
80
|
+
102, 32, 126, 36, 125,
|
81
|
+
48, 55, 48, 55, 92, 92,
|
82
|
+
48, 102, 125, 125, 125,
|
83
|
+
125, 125, 125, 125, 125,
|
84
|
+
125, 125, 125, 125, 125, 125,
|
85
|
+
125, 125, 9, 125, 9,
|
86
|
+
125, 9, 125, 9, 125,
|
87
|
+
9, 125, 9, 125, 9, 125,
|
88
|
+
9, 32, 9, 125, 48,
|
89
|
+
125, 48, 125, 48, 125,
|
67
90
|
48, 125, 48, 125, 48, 125,
|
68
|
-
48, 125,
|
69
|
-
125, -128, 127, -62, -33,
|
70
|
-
-32, -17, -16, -12, 1, 127,
|
71
|
-
32, 126, 63, 63, 33,
|
72
|
-
120, 105, 120, 105, 120,
|
73
|
-
105, 120, 45, 120, 45, 120,
|
74
|
-
45, 120, 43, 63, 43,
|
75
|
-
63, 43, 63, 65, 122,
|
76
|
-
43, 63, 80, 112, -62, 127,
|
77
|
-
-128, -65, -62, -33, -128,
|
78
|
-
-65, -32, -17, -128, -65,
|
79
|
-
-16, -12, 1, 127, 38, 38,
|
80
|
-
93, 93, 45, 45, 46,
|
81
|
-
61, -62, 127, -62, -33,
|
82
|
-
-32, -17, -16, -12, 1, 127,
|
83
|
-
32, 126, 32, 126, 32,
|
84
|
-
126, 48, 102, 32, 126,
|
85
|
-
36, 125, 48, 55, 48, 55,
|
86
|
-
48, 102, 0
|
91
|
+
48, 125, 125, 125, 0
|
87
92
|
]
|
88
93
|
|
89
94
|
class << self
|
@@ -91,10 +96,10 @@ class << self
|
|
91
96
|
private :_re_scanner_key_spans, :_re_scanner_key_spans=
|
92
97
|
end
|
93
98
|
self._re_scanner_key_spans = [
|
94
|
-
0, 64, 64, 64, 64, 64, 64,
|
95
|
-
1,
|
96
|
-
19, 10, 19, 84,
|
97
|
-
|
99
|
+
0, 64, 64, 64, 64, 64, 64, 88,
|
100
|
+
1, 1, 84, 90, 75, 22, 84, 10,
|
101
|
+
19, 10, 19, 84, 80, 10, 15, 10,
|
102
|
+
20, 80, 82, 78, 1, 114, 117, 117,
|
98
103
|
117, 117, 6, 1, 1, 1, 1, 2,
|
99
104
|
1, 3, 1, 1, 114, 64, 64, 64,
|
100
105
|
64, 64, 64, 75, 78, 78, 1, 27,
|
@@ -105,16 +110,17 @@ self._re_scanner_key_spans = [
|
|
105
110
|
4, 1, 1, 1, 1, 1, 1, 1,
|
106
111
|
1, 1, 1, 1, 1, 1, 1, 58,
|
107
112
|
1, 1, 64, 64, 64, 64, 64, 64,
|
108
|
-
1, 1, 55, 1,
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
113
|
+
1, 1, 55, 1, 1, 33, 1, 76,
|
114
|
+
55, 55, 55, 55, 55, 55, 55, 117,
|
115
|
+
78, 76, 117, 117, 256, 30, 16, 5,
|
116
|
+
127, 95, 1, 21, 21, 21, 58, 21,
|
117
|
+
33, 190, 64, 30, 64, 16, 64, 5,
|
118
|
+
127, 1, 1, 1, 16, 190, 30, 16,
|
119
|
+
5, 127, 95, 95, 95, 55, 95, 90,
|
120
|
+
8, 8, 1, 55, 1, 1, 1, 1,
|
121
|
+
1, 1, 1, 1, 117, 117, 117, 117,
|
122
|
+
117, 117, 117, 24, 117, 78, 78, 78,
|
123
|
+
78, 78, 78, 78, 1
|
118
124
|
]
|
119
125
|
|
120
126
|
class << self
|
@@ -123,29 +129,30 @@ class << self
|
|
123
129
|
end
|
124
130
|
self._re_scanner_index_offsets = [
|
125
131
|
0, 0, 65, 130, 195, 260, 325, 390,
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
132
|
+
479, 481, 483, 568, 659, 735, 758, 843,
|
133
|
+
854, 874, 885, 905, 990, 1071, 1082, 1098,
|
134
|
+
1109, 1130, 1211, 1294, 1373, 1375, 1490, 1608,
|
135
|
+
1726, 1844, 1962, 1969, 1971, 1973, 1975, 1977,
|
136
|
+
1980, 1982, 1986, 1988, 1990, 2105, 2170, 2235,
|
137
|
+
2300, 2365, 2430, 2495, 2571, 2650, 2729, 2731,
|
138
|
+
2759, 2784, 2793, 2797, 2799, 2801, 2803, 2805,
|
139
|
+
2807, 2809, 2811, 2813, 2815, 2817, 2819, 2821,
|
140
|
+
2823, 2825, 2827, 2829, 2831, 2833, 2835, 2837,
|
141
|
+
2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853,
|
142
|
+
2855, 2860, 2862, 2864, 2866, 2868, 2870, 2872,
|
143
|
+
2874, 2876, 2878, 2880, 2882, 2884, 2886, 2888,
|
144
|
+
2947, 2949, 2951, 3016, 3081, 3146, 3211, 3276,
|
145
|
+
3341, 3343, 3345, 3401, 3403, 3405, 3439, 3441,
|
146
|
+
3518, 3574, 3630, 3686, 3742, 3798, 3854, 3910,
|
147
|
+
4028, 4107, 4184, 4302, 4420, 4677, 4708, 4725,
|
148
|
+
4731, 4859, 4955, 4957, 4979, 5001, 5023, 5082,
|
149
|
+
5104, 5138, 5329, 5394, 5425, 5490, 5507, 5572,
|
150
|
+
5578, 5706, 5708, 5710, 5712, 5729, 5920, 5951,
|
151
|
+
5968, 5974, 6102, 6198, 6294, 6390, 6446, 6542,
|
152
|
+
6633, 6642, 6651, 6653, 6709, 6711, 6713, 6715,
|
153
|
+
6717, 6719, 6721, 6723, 6725, 6843, 6961, 7079,
|
154
|
+
7197, 7315, 7433, 7551, 7576, 7694, 7773, 7852,
|
155
|
+
7931, 8010, 8089, 8168, 8247
|
149
156
|
]
|
150
157
|
|
151
158
|
class << self
|
@@ -201,241 +208,222 @@ self._re_scanner_indicies = [
|
|
201
208
|
6, 6, 6, 6, 6, 6, 6, 6,
|
202
209
|
6, 6, 6, 6, 6, 6, 6, 6,
|
203
210
|
6, 6, 6, 6, 6, 6, 6, 6,
|
204
|
-
6, 6, 6, 6, 6, 0,
|
205
|
-
9,
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
7, 7,
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
7, 7, 7, 7, 7, 7,
|
214
|
-
|
215
|
-
7, 7, 7, 7, 7,
|
216
|
-
|
217
|
-
|
211
|
+
6, 6, 6, 6, 6, 0, 8, 7,
|
212
|
+
9, 7, 7, 7, 10, 7, 7, 7,
|
213
|
+
7, 7, 11, 7, 7, 7, 7, 7,
|
214
|
+
7, 7, 7, 7, 7, 7, 7, 12,
|
215
|
+
7, 13, 8, 12, 7, 7, 7, 7,
|
216
|
+
7, 7, 7, 7, 7, 7, 7, 7,
|
217
|
+
7, 7, 7, 7, 7, 7, 7, 7,
|
218
|
+
7, 7, 7, 7, 7, 7, 7, 7,
|
219
|
+
7, 7, 7, 7, 7, 7, 7, 7,
|
220
|
+
7, 7, 7, 7, 7, 7, 11, 7,
|
221
|
+
7, 7, 11, 7, 7, 7, 7, 7,
|
222
|
+
7, 7, 7, 7, 7, 11, 7, 7,
|
223
|
+
14, 15, 14, 12, 7, 7, 7, 7,
|
224
|
+
7, 7, 7, 7, 10, 10, 10, 10,
|
225
|
+
10, 10, 10, 10, 10, 10, 7, 7,
|
226
|
+
7, 7, 7, 7, 7, 10, 10, 10,
|
218
227
|
10, 10, 10, 10, 10, 10, 10, 10,
|
219
|
-
10, 7, 7, 7, 7, 7, 7, 10,
|
220
228
|
10, 10, 10, 10, 10, 10, 10, 10,
|
229
|
+
10, 10, 10, 10, 10, 10, 10, 7,
|
230
|
+
7, 7, 7, 7, 7, 10, 10, 10,
|
221
231
|
10, 10, 10, 10, 10, 10, 10, 10,
|
222
232
|
10, 10, 10, 10, 10, 10, 10, 10,
|
223
|
-
10,
|
224
|
-
|
225
|
-
7, 7, 7, 7, 7, 7, 7,
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
17,
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
22, 22, 22, 22, 22, 22, 22, 14,
|
262
|
-
20, 14, 14, 14, 14, 14, 14, 14,
|
263
|
-
14, 22, 22, 22, 22, 22, 22, 22,
|
264
|
-
22, 22, 22, 14, 20, 14, 14, 14,
|
265
|
-
21, 14, 21, 14, 14, 19, 19, 19,
|
266
|
-
19, 19, 19, 19, 19, 19, 19, 14,
|
267
|
-
14, 14, 14, 14, 14, 14, 19, 19,
|
268
|
-
19, 19, 19, 19, 19, 19, 19, 19,
|
269
|
-
19, 19, 19, 19, 19, 19, 19, 19,
|
270
|
-
19, 19, 19, 19, 19, 19, 19, 19,
|
271
|
-
14, 14, 14, 14, 14, 14, 19, 19,
|
272
|
-
19, 19, 19, 19, 19, 19, 19, 19,
|
273
|
-
19, 19, 19, 19, 19, 19, 19, 19,
|
274
|
-
19, 19, 19, 19, 19, 19, 19, 19,
|
275
|
-
14, 23, 14, 14, 14, 24, 24, 24,
|
276
|
-
24, 24, 24, 24, 24, 24, 14, 14,
|
277
|
-
14, 14, 14, 14, 14, 25, 25, 25,
|
278
|
-
25, 25, 25, 25, 25, 25, 25, 25,
|
279
|
-
25, 25, 25, 25, 25, 25, 25, 25,
|
280
|
-
25, 25, 25, 25, 25, 25, 25, 14,
|
281
|
-
14, 14, 14, 14, 14, 25, 25, 25,
|
282
|
-
25, 25, 25, 25, 25, 25, 25, 25,
|
283
|
-
25, 25, 25, 25, 25, 25, 25, 25,
|
284
|
-
25, 25, 25, 25, 25, 25, 25, 14,
|
233
|
+
10, 10, 10, 10, 10, 10, 10, 7,
|
234
|
+
8, 7, 7, 7, 7, 7, 7, 7,
|
235
|
+
7, 7, 7, 7, 7, 7, 7, 16,
|
236
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
237
|
+
16, 7, 7, 7, 8, 12, 7, 7,
|
238
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
239
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
240
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
241
|
+
16, 16, 7, 7, 7, 7, 7, 7,
|
242
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
243
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
244
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
245
|
+
16, 16, 7, 16, 16, 16, 16, 16,
|
246
|
+
16, 16, 16, 16, 16, 7, 7, 7,
|
247
|
+
7, 12, 7, 7, 16, 16, 16, 16,
|
248
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
249
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
250
|
+
16, 16, 16, 16, 16, 16, 7, 7,
|
251
|
+
7, 7, 7, 7, 16, 16, 16, 16,
|
252
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
253
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
254
|
+
16, 16, 16, 16, 16, 16, 7, 18,
|
255
|
+
17, 17, 17, 17, 17, 17, 17, 17,
|
256
|
+
17, 17, 17, 17, 17, 17, 17, 17,
|
257
|
+
17, 17, 17, 17, 19, 17, 20, 17,
|
258
|
+
17, 17, 21, 17, 22, 17, 17, 23,
|
259
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
260
|
+
23, 17, 17, 17, 17, 17, 17, 17,
|
261
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
262
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
263
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
264
|
+
23, 23, 17, 17, 17, 17, 17, 17,
|
265
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
266
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
267
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
268
|
+
23, 23, 17, 24, 24, 24, 24, 24,
|
269
|
+
24, 24, 24, 24, 24, 17, 20, 17,
|
270
|
+
17, 17, 17, 17, 17, 17, 17, 24,
|
285
271
|
24, 24, 24, 24, 24, 24, 24, 24,
|
286
|
-
24,
|
287
|
-
|
288
|
-
|
289
|
-
27, 27, 27, 27, 27, 27, 27, 27,
|
290
|
-
27, 14, 27, 27, 27, 27, 27, 27,
|
291
|
-
27, 27, 27, 27, 14, 14, 14, 14,
|
292
|
-
20, 14, 26, 14, 26, 14, 14, 25,
|
293
|
-
25, 25, 25, 25, 25, 25, 25, 25,
|
294
|
-
25, 14, 14, 14, 14, 20, 14, 14,
|
295
|
-
25, 25, 25, 25, 25, 25, 25, 25,
|
296
|
-
25, 25, 25, 25, 25, 25, 25, 25,
|
297
|
-
25, 25, 25, 25, 25, 25, 25, 25,
|
298
|
-
25, 25, 14, 14, 14, 14, 14, 14,
|
272
|
+
24, 17, 24, 25, 25, 25, 25, 25,
|
273
|
+
25, 25, 25, 25, 17, 20, 17, 17,
|
274
|
+
17, 21, 17, 21, 17, 17, 25, 25,
|
299
275
|
25, 25, 25, 25, 25, 25, 25, 25,
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
276
|
+
17, 20, 17, 17, 17, 21, 17, 21,
|
277
|
+
17, 17, 23, 23, 23, 23, 23, 23,
|
278
|
+
23, 23, 23, 23, 17, 17, 17, 17,
|
279
|
+
17, 17, 17, 23, 23, 23, 23, 23,
|
280
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
281
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
282
|
+
23, 23, 23, 23, 23, 17, 17, 17,
|
283
|
+
17, 17, 17, 23, 23, 23, 23, 23,
|
284
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
285
|
+
23, 23, 23, 23, 23, 23, 23, 23,
|
286
|
+
23, 23, 23, 23, 23, 17, 26, 17,
|
287
|
+
27, 17, 17, 28, 28, 28, 28, 28,
|
288
|
+
28, 28, 28, 28, 28, 17, 17, 17,
|
289
|
+
17, 20, 17, 17, 28, 28, 28, 28,
|
307
290
|
28, 28, 28, 28, 28, 28, 28, 28,
|
308
291
|
28, 28, 28, 28, 28, 28, 28, 28,
|
292
|
+
28, 28, 28, 28, 28, 28, 17, 17,
|
293
|
+
17, 17, 17, 17, 28, 28, 28, 28,
|
309
294
|
28, 28, 28, 28, 28, 28, 28, 28,
|
310
295
|
28, 28, 28, 28, 28, 28, 28, 28,
|
311
|
-
28, 28, 28, 28, 28, 28,
|
312
|
-
28, 28, 28, 28, 31, 28, 29, 29,
|
296
|
+
28, 28, 28, 28, 28, 28, 17, 29,
|
313
297
|
29, 29, 29, 29, 29, 29, 29, 29,
|
298
|
+
29, 17, 29, 29, 29, 29, 29, 29,
|
299
|
+
29, 29, 29, 29, 17, 17, 17, 17,
|
300
|
+
20, 17, 29, 30, 30, 30, 30, 30,
|
301
|
+
30, 30, 30, 30, 17, 26, 17, 26,
|
302
|
+
17, 17, 30, 30, 30, 30, 30, 30,
|
303
|
+
30, 30, 30, 30, 17, 17, 17, 17,
|
304
|
+
20, 17, 26, 17, 26, 17, 17, 28,
|
314
305
|
28, 28, 28, 28, 28, 28, 28, 28,
|
306
|
+
28, 17, 17, 17, 17, 20, 17, 17,
|
315
307
|
28, 28, 28, 28, 28, 28, 28, 28,
|
316
308
|
28, 28, 28, 28, 28, 28, 28, 28,
|
317
309
|
28, 28, 28, 28, 28, 28, 28, 28,
|
310
|
+
28, 28, 17, 17, 17, 17, 17, 17,
|
318
311
|
28, 28, 28, 28, 28, 28, 28, 28,
|
319
312
|
28, 28, 28, 28, 28, 28, 28, 28,
|
320
313
|
28, 28, 28, 28, 28, 28, 28, 28,
|
321
|
-
28, 28,
|
322
|
-
|
323
|
-
|
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
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
435
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
436
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
437
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
438
|
-
53, 53, 53, 50, 54, 54, 54, 54,
|
314
|
+
28, 28, 17, 32, 31, 31, 31, 33,
|
315
|
+
33, 33, 33, 33, 33, 33, 33, 33,
|
316
|
+
33, 31, 31, 31, 31, 31, 31, 31,
|
317
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
318
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
319
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
320
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
321
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
322
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
323
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
324
|
+
31, 31, 31, 31, 34, 31, 32, 32,
|
325
|
+
32, 32, 32, 32, 32, 32, 32, 32,
|
326
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
327
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
328
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
329
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
330
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
331
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
332
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
333
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
334
|
+
31, 31, 31, 34, 31, 35, 36, 37,
|
335
|
+
37, 37, 37, 37, 36, 36, 36, 36,
|
336
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
337
|
+
36, 36, 36, 36, 36, 36, 37, 36,
|
338
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
339
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
340
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
341
|
+
36, 36, 36, 36, 36, 36, 36, 38,
|
342
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
343
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
344
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
345
|
+
37, 36, 36, 36, 39, 37, 36, 38,
|
346
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
347
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
348
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
349
|
+
37, 36, 37, 37, 37, 37, 37, 36,
|
350
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
351
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
352
|
+
36, 37, 36, 36, 36, 36, 36, 36,
|
353
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
354
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
355
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
356
|
+
36, 36, 37, 37, 37, 37, 37, 37,
|
357
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
358
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
359
|
+
37, 37, 37, 37, 36, 36, 36, 36,
|
360
|
+
37, 36, 37, 37, 37, 37, 37, 37,
|
361
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
362
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
363
|
+
37, 37, 37, 37, 36, 36, 40, 36,
|
364
|
+
37, 37, 37, 37, 37, 36, 36, 36,
|
365
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
366
|
+
36, 36, 36, 36, 36, 36, 36, 37,
|
367
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
368
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
369
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
370
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
371
|
+
37, 37, 37, 37, 37, 37, 41, 37,
|
372
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
373
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
374
|
+
37, 37, 36, 36, 36, 36, 37, 36,
|
375
|
+
37, 37, 37, 37, 37, 37, 41, 37,
|
376
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
377
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
378
|
+
37, 37, 36, 36, 40, 36, 37, 37,
|
379
|
+
37, 37, 37, 36, 36, 36, 36, 36,
|
380
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
381
|
+
36, 36, 36, 36, 36, 37, 36, 36,
|
382
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
383
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
384
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
385
|
+
36, 36, 36, 36, 36, 36, 37, 37,
|
386
|
+
37, 37, 42, 37, 37, 37, 37, 37,
|
387
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
388
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
389
|
+
36, 36, 36, 36, 37, 36, 37, 37,
|
390
|
+
37, 37, 42, 37, 37, 37, 37, 37,
|
391
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
392
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
393
|
+
36, 36, 40, 36, 37, 37, 37, 37,
|
394
|
+
37, 36, 36, 36, 36, 36, 36, 36,
|
395
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
396
|
+
36, 36, 36, 37, 36, 36, 36, 36,
|
397
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
398
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
399
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
400
|
+
43, 36, 36, 36, 37, 37, 37, 37,
|
401
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
402
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
403
|
+
37, 37, 37, 37, 37, 37, 36, 36,
|
404
|
+
36, 36, 37, 36, 37, 37, 37, 37,
|
405
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
406
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
407
|
+
37, 37, 37, 37, 37, 37, 36, 36,
|
408
|
+
40, 36, 44, 45, 46, 45, 46, 47,
|
409
|
+
36, 48, 36, 49, 36, 40, 36, 50,
|
410
|
+
36, 49, 49, 36, 51, 36, 49, 49,
|
411
|
+
49, 36, 52, 36, 49, 36, 37, 37,
|
412
|
+
37, 37, 37, 36, 36, 36, 36, 36,
|
413
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
414
|
+
36, 36, 36, 36, 36, 37, 36, 36,
|
415
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
416
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
417
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
418
|
+
36, 36, 36, 36, 36, 36, 38, 37,
|
419
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
420
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
421
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
422
|
+
36, 36, 36, 36, 37, 36, 38, 37,
|
423
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
424
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
425
|
+
37, 37, 37, 37, 37, 37, 37, 37,
|
426
|
+
36, 54, 54, 54, 54, 54, 54, 54,
|
439
427
|
54, 54, 54, 54, 54, 54, 54, 54,
|
440
428
|
54, 54, 54, 54, 54, 54, 54, 54,
|
441
429
|
54, 54, 54, 54, 54, 54, 54, 54,
|
@@ -443,7 +431,7 @@ self._re_scanner_indicies = [
|
|
443
431
|
54, 54, 54, 54, 54, 54, 54, 54,
|
444
432
|
54, 54, 54, 54, 54, 54, 54, 54,
|
445
433
|
54, 54, 54, 54, 54, 54, 54, 54,
|
446
|
-
54,
|
434
|
+
54, 53, 55, 55, 55, 55, 55, 55,
|
447
435
|
55, 55, 55, 55, 55, 55, 55, 55,
|
448
436
|
55, 55, 55, 55, 55, 55, 55, 55,
|
449
437
|
55, 55, 55, 55, 55, 55, 55, 55,
|
@@ -451,7 +439,7 @@ self._re_scanner_indicies = [
|
|
451
439
|
55, 55, 55, 55, 55, 55, 55, 55,
|
452
440
|
55, 55, 55, 55, 55, 55, 55, 55,
|
453
441
|
55, 55, 55, 55, 55, 55, 55, 55,
|
454
|
-
55, 55,
|
442
|
+
55, 55, 53, 56, 56, 56, 56, 56,
|
455
443
|
56, 56, 56, 56, 56, 56, 56, 56,
|
456
444
|
56, 56, 56, 56, 56, 56, 56, 56,
|
457
445
|
56, 56, 56, 56, 56, 56, 56, 56,
|
@@ -459,89 +447,88 @@ self._re_scanner_indicies = [
|
|
459
447
|
56, 56, 56, 56, 56, 56, 56, 56,
|
460
448
|
56, 56, 56, 56, 56, 56, 56, 56,
|
461
449
|
56, 56, 56, 56, 56, 56, 56, 56,
|
462
|
-
56, 56, 56,
|
450
|
+
56, 56, 56, 53, 57, 57, 57, 57,
|
463
451
|
57, 57, 57, 57, 57, 57, 57, 57,
|
464
|
-
57, 50, 50, 50, 50, 50, 50, 50,
|
465
452
|
57, 57, 57, 57, 57, 57, 57, 57,
|
466
453
|
57, 57, 57, 57, 57, 57, 57, 57,
|
467
454
|
57, 57, 57, 57, 57, 57, 57, 57,
|
468
|
-
57, 57, 50, 50, 50, 50, 50, 50,
|
469
455
|
57, 57, 57, 57, 57, 57, 57, 57,
|
470
456
|
57, 57, 57, 57, 57, 57, 57, 57,
|
471
457
|
57, 57, 57, 57, 57, 57, 57, 57,
|
472
|
-
57, 57,
|
458
|
+
57, 57, 57, 57, 53, 58, 58, 58,
|
459
|
+
58, 58, 58, 58, 58, 58, 58, 58,
|
460
|
+
58, 58, 58, 58, 58, 58, 58, 58,
|
461
|
+
58, 58, 58, 58, 58, 58, 58, 58,
|
462
|
+
58, 58, 58, 58, 58, 58, 58, 58,
|
463
|
+
58, 58, 58, 58, 58, 58, 58, 58,
|
464
|
+
58, 58, 58, 58, 58, 58, 58, 58,
|
465
|
+
58, 58, 58, 58, 58, 58, 58, 58,
|
466
|
+
58, 58, 58, 58, 58, 53, 59, 59,
|
473
467
|
59, 59, 59, 59, 59, 59, 59, 59,
|
474
|
-
59, 59, 59, 59, 59, 59, 59, 60,
|
475
|
-
60, 60, 60, 60, 60, 60, 60, 60,
|
476
|
-
60, 60, 60, 60, 60, 60, 60, 60,
|
477
|
-
60, 60, 60, 60, 60, 60, 60, 60,
|
478
|
-
60, 59, 59, 59, 59, 59, 59, 60,
|
479
|
-
60, 60, 60, 60, 60, 60, 60, 60,
|
480
|
-
60, 60, 60, 60, 60, 60, 60, 60,
|
481
|
-
60, 60, 60, 60, 60, 60, 60, 60,
|
482
|
-
60, 59, 60, 61, 59, 59, 59, 59,
|
483
468
|
59, 59, 59, 59, 59, 59, 59, 59,
|
484
|
-
59, 59, 59, 59, 59, 59,
|
469
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
470
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
471
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
472
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
473
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
474
|
+
59, 59, 59, 59, 59, 59, 53, 60,
|
475
|
+
60, 60, 60, 60, 60, 60, 60, 60,
|
476
|
+
60, 53, 53, 53, 53, 53, 53, 53,
|
485
477
|
60, 60, 60, 60, 60, 60, 60, 60,
|
486
478
|
60, 60, 60, 60, 60, 60, 60, 60,
|
487
479
|
60, 60, 60, 60, 60, 60, 60, 60,
|
488
|
-
|
480
|
+
60, 60, 53, 53, 53, 53, 53, 53,
|
489
481
|
60, 60, 60, 60, 60, 60, 60, 60,
|
490
482
|
60, 60, 60, 60, 60, 60, 60, 60,
|
491
483
|
60, 60, 60, 60, 60, 60, 60, 60,
|
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
|
-
114,
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
117, 117, 117, 117, 117, 117, 117, 117,
|
541
|
-
117, 117, 117, 117, 117, 117, 117, 117,
|
542
|
-
117, 117, 117, 117, 117, 117, 117, 117,
|
543
|
-
117, 117, 117, 117, 117, 117, 117, 117,
|
544
|
-
117, 114, 118, 118, 118, 118, 118, 118,
|
484
|
+
60, 60, 53, 63, 62, 62, 62, 62,
|
485
|
+
62, 62, 62, 62, 62, 62, 62, 62,
|
486
|
+
62, 62, 62, 62, 62, 62, 62, 63,
|
487
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
488
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
489
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
490
|
+
63, 62, 62, 62, 62, 62, 62, 63,
|
491
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
492
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
493
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
494
|
+
63, 62, 63, 64, 62, 62, 62, 62,
|
495
|
+
62, 62, 62, 62, 62, 62, 62, 62,
|
496
|
+
62, 62, 62, 62, 62, 62, 63, 63,
|
497
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
498
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
499
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
500
|
+
62, 62, 62, 62, 62, 62, 63, 63,
|
501
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
502
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
503
|
+
63, 63, 63, 63, 63, 63, 63, 63,
|
504
|
+
62, 65, 62, 66, 62, 62, 67, 68,
|
505
|
+
69, 70, 62, 62, 71, 62, 62, 62,
|
506
|
+
62, 72, 62, 62, 62, 73, 62, 62,
|
507
|
+
74, 62, 75, 62, 76, 77, 62, 67,
|
508
|
+
68, 69, 70, 62, 62, 71, 62, 62,
|
509
|
+
62, 62, 72, 62, 62, 62, 73, 62,
|
510
|
+
62, 74, 62, 75, 62, 76, 77, 62,
|
511
|
+
78, 62, 62, 62, 62, 62, 62, 79,
|
512
|
+
62, 80, 62, 81, 62, 82, 62, 83,
|
513
|
+
62, 84, 62, 85, 62, 86, 62, 83,
|
514
|
+
62, 87, 62, 88, 62, 83, 62, 89,
|
515
|
+
62, 90, 62, 91, 62, 83, 62, 92,
|
516
|
+
62, 93, 62, 94, 62, 83, 62, 95,
|
517
|
+
62, 96, 62, 97, 62, 83, 62, 98,
|
518
|
+
62, 99, 62, 100, 62, 83, 62, 101,
|
519
|
+
62, 102, 62, 103, 62, 83, 62, 104,
|
520
|
+
62, 62, 105, 62, 106, 62, 97, 62,
|
521
|
+
107, 62, 97, 62, 108, 62, 109, 62,
|
522
|
+
110, 62, 83, 62, 111, 62, 102, 62,
|
523
|
+
112, 62, 113, 62, 83, 62, 70, 62,
|
524
|
+
114, 114, 114, 114, 114, 114, 114, 114,
|
525
|
+
114, 114, 114, 114, 114, 114, 114, 114,
|
526
|
+
114, 114, 114, 114, 114, 114, 114, 114,
|
527
|
+
114, 114, 62, 62, 62, 62, 62, 62,
|
528
|
+
114, 114, 114, 114, 114, 114, 114, 114,
|
529
|
+
114, 114, 114, 114, 114, 114, 114, 114,
|
530
|
+
114, 114, 114, 114, 114, 114, 114, 114,
|
531
|
+
114, 114, 62, 115, 62, 116, 62, 118,
|
545
532
|
118, 118, 118, 118, 118, 118, 118, 118,
|
546
533
|
118, 118, 118, 118, 118, 118, 118, 118,
|
547
534
|
118, 118, 118, 118, 118, 118, 118, 118,
|
@@ -549,7 +536,7 @@ self._re_scanner_indicies = [
|
|
549
536
|
118, 118, 118, 118, 118, 118, 118, 118,
|
550
537
|
118, 118, 118, 118, 118, 118, 118, 118,
|
551
538
|
118, 118, 118, 118, 118, 118, 118, 118,
|
552
|
-
118, 118,
|
539
|
+
118, 118, 118, 118, 118, 118, 118, 117,
|
553
540
|
119, 119, 119, 119, 119, 119, 119, 119,
|
554
541
|
119, 119, 119, 119, 119, 119, 119, 119,
|
555
542
|
119, 119, 119, 119, 119, 119, 119, 119,
|
@@ -557,7 +544,8 @@ self._re_scanner_indicies = [
|
|
557
544
|
119, 119, 119, 119, 119, 119, 119, 119,
|
558
545
|
119, 119, 119, 119, 119, 119, 119, 119,
|
559
546
|
119, 119, 119, 119, 119, 119, 119, 119,
|
560
|
-
119, 119, 119,
|
547
|
+
119, 119, 119, 119, 119, 119, 119, 119,
|
548
|
+
117, 120, 120, 120, 120, 120, 120, 120,
|
561
549
|
120, 120, 120, 120, 120, 120, 120, 120,
|
562
550
|
120, 120, 120, 120, 120, 120, 120, 120,
|
563
551
|
120, 120, 120, 120, 120, 120, 120, 120,
|
@@ -565,227 +553,182 @@ self._re_scanner_indicies = [
|
|
565
553
|
120, 120, 120, 120, 120, 120, 120, 120,
|
566
554
|
120, 120, 120, 120, 120, 120, 120, 120,
|
567
555
|
120, 120, 120, 120, 120, 120, 120, 120,
|
568
|
-
120,
|
569
|
-
121, 124, 124, 124, 124, 124, 124, 124,
|
570
|
-
124, 124, 124, 121, 121, 121, 121, 121,
|
571
|
-
121, 121, 124, 124, 124, 124, 124, 124,
|
556
|
+
120, 117, 121, 121, 121, 121, 121, 121,
|
572
557
|
121, 121, 121, 121, 121, 121, 121, 121,
|
573
558
|
121, 121, 121, 121, 121, 121, 121, 121,
|
574
559
|
121, 121, 121, 121, 121, 121, 121, 121,
|
575
|
-
121, 121,
|
576
|
-
121,
|
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
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
619
|
-
134, 134, 134, 134, 134, 134, 33, 135,
|
620
|
-
135, 135, 135, 135, 135, 135, 135, 135,
|
621
|
-
135, 33, 33, 33, 33, 33, 33, 33,
|
622
|
-
135, 135, 135, 135, 135, 135, 33, 33,
|
623
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
624
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
625
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
626
|
-
135, 135, 135, 135, 135, 135, 33, 136,
|
560
|
+
121, 121, 121, 121, 121, 121, 121, 121,
|
561
|
+
121, 121, 121, 121, 121, 121, 121, 121,
|
562
|
+
121, 121, 121, 121, 121, 121, 121, 121,
|
563
|
+
121, 121, 121, 121, 121, 121, 121, 121,
|
564
|
+
121, 121, 117, 122, 122, 122, 122, 122,
|
565
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
566
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
567
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
568
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
569
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
570
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
571
|
+
122, 122, 122, 122, 122, 122, 122, 122,
|
572
|
+
122, 122, 122, 117, 123, 123, 123, 123,
|
573
|
+
123, 123, 123, 123, 123, 123, 123, 123,
|
574
|
+
123, 123, 123, 123, 123, 123, 123, 123,
|
575
|
+
123, 123, 123, 123, 123, 123, 123, 123,
|
576
|
+
123, 123, 123, 123, 123, 123, 123, 123,
|
577
|
+
123, 123, 123, 123, 123, 123, 123, 123,
|
578
|
+
123, 123, 123, 123, 123, 123, 123, 123,
|
579
|
+
123, 123, 123, 123, 123, 123, 123, 123,
|
580
|
+
123, 123, 123, 123, 117, 125, 124, 126,
|
581
|
+
124, 127, 127, 127, 127, 127, 127, 127,
|
582
|
+
127, 127, 127, 124, 124, 124, 124, 124,
|
583
|
+
124, 124, 127, 127, 127, 127, 127, 127,
|
584
|
+
124, 124, 124, 124, 124, 124, 124, 124,
|
585
|
+
124, 124, 124, 124, 124, 124, 124, 124,
|
586
|
+
124, 124, 124, 124, 124, 124, 124, 124,
|
587
|
+
124, 124, 127, 127, 127, 127, 127, 127,
|
588
|
+
124, 128, 36, 129, 36, 132, 131, 131,
|
589
|
+
131, 131, 131, 131, 131, 131, 131, 131,
|
590
|
+
131, 131, 131, 131, 131, 131, 131, 131,
|
591
|
+
131, 131, 131, 131, 131, 131, 131, 131,
|
592
|
+
131, 131, 131, 131, 131, 133, 131, 133,
|
593
|
+
131, 134, 134, 134, 134, 134, 134, 134,
|
594
|
+
134, 134, 134, 36, 36, 36, 36, 36,
|
595
|
+
36, 36, 134, 134, 134, 134, 134, 134,
|
596
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
597
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
598
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
599
|
+
36, 36, 134, 134, 134, 134, 134, 134,
|
600
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
601
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
602
|
+
36, 36, 36, 36, 135, 36, 136, 136,
|
627
603
|
136, 136, 136, 136, 136, 136, 136, 136,
|
628
|
-
|
629
|
-
136, 136, 136, 136, 136,
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
136, 136, 136, 136, 136,
|
604
|
+
36, 36, 36, 36, 36, 36, 36, 136,
|
605
|
+
136, 136, 136, 136, 136, 36, 36, 36,
|
606
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
607
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
608
|
+
36, 36, 36, 36, 36, 36, 36, 136,
|
609
|
+
136, 136, 136, 136, 136, 36, 137, 137,
|
634
610
|
137, 137, 137, 137, 137, 137, 137, 137,
|
635
|
-
|
636
|
-
137, 137, 137, 137, 137,
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
137, 137, 137, 137, 137,
|
611
|
+
36, 36, 36, 36, 36, 36, 36, 137,
|
612
|
+
137, 137, 137, 137, 137, 36, 36, 36,
|
613
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
614
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
615
|
+
36, 36, 36, 36, 36, 36, 36, 137,
|
616
|
+
137, 137, 137, 137, 137, 36, 138, 138,
|
641
617
|
138, 138, 138, 138, 138, 138, 138, 138,
|
642
|
-
|
643
|
-
138, 138, 138, 138, 138,
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
138, 138, 138, 138, 138,
|
618
|
+
36, 36, 36, 36, 36, 36, 36, 138,
|
619
|
+
138, 138, 138, 138, 138, 36, 36, 36,
|
620
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
621
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
622
|
+
36, 36, 36, 36, 36, 36, 36, 138,
|
623
|
+
138, 138, 138, 138, 138, 36, 139, 139,
|
648
624
|
139, 139, 139, 139, 139, 139, 139, 139,
|
649
|
-
|
650
|
-
139, 139, 139, 139, 139,
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
139, 139, 139, 139, 139,
|
625
|
+
36, 36, 36, 36, 36, 36, 36, 139,
|
626
|
+
139, 139, 139, 139, 139, 36, 36, 36,
|
627
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
628
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
629
|
+
36, 36, 36, 36, 36, 36, 36, 139,
|
630
|
+
139, 139, 139, 139, 139, 36, 140, 140,
|
655
631
|
140, 140, 140, 140, 140, 140, 140, 140,
|
656
|
-
|
657
|
-
140, 140, 140, 140, 140,
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
140, 140, 140, 140, 140,
|
662
|
-
141, 141, 141, 141,
|
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
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
712
|
-
33, 33, 33, 33, 33, 33, 146, 33,
|
632
|
+
36, 36, 36, 36, 36, 36, 36, 140,
|
633
|
+
140, 140, 140, 140, 140, 36, 36, 36,
|
634
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
635
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
636
|
+
36, 36, 36, 36, 36, 36, 36, 140,
|
637
|
+
140, 140, 140, 140, 140, 36, 141, 141,
|
638
|
+
141, 141, 141, 141, 141, 141, 141, 141,
|
639
|
+
36, 36, 36, 36, 36, 36, 36, 141,
|
640
|
+
141, 141, 141, 141, 141, 36, 36, 36,
|
641
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
642
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
643
|
+
36, 36, 36, 36, 36, 36, 36, 141,
|
644
|
+
141, 141, 141, 141, 141, 36, 142, 142,
|
645
|
+
142, 142, 142, 142, 142, 142, 142, 142,
|
646
|
+
36, 36, 36, 36, 36, 36, 36, 142,
|
647
|
+
142, 142, 142, 142, 142, 36, 36, 36,
|
648
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
649
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
650
|
+
36, 36, 36, 36, 36, 36, 36, 142,
|
651
|
+
142, 142, 142, 142, 142, 36, 143, 143,
|
652
|
+
143, 143, 143, 36, 36, 36, 36, 36,
|
653
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
654
|
+
36, 36, 36, 36, 36, 143, 36, 36,
|
655
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
656
|
+
36, 36, 36, 36, 36, 139, 139, 139,
|
657
|
+
139, 139, 139, 139, 139, 139, 139, 36,
|
658
|
+
36, 36, 36, 36, 36, 36, 139, 139,
|
659
|
+
139, 139, 139, 139, 36, 36, 36, 36,
|
660
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
661
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
662
|
+
36, 36, 36, 36, 36, 36, 139, 139,
|
663
|
+
139, 139, 139, 139, 36, 36, 36, 36,
|
664
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
665
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
666
|
+
36, 36, 138, 36, 139, 139, 139, 139,
|
667
|
+
139, 139, 139, 139, 139, 139, 36, 36,
|
668
|
+
36, 36, 36, 36, 36, 139, 139, 139,
|
669
|
+
139, 139, 139, 36, 36, 36, 36, 36,
|
670
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
671
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
672
|
+
36, 36, 36, 36, 36, 139, 139, 139,
|
673
|
+
139, 139, 139, 36, 36, 36, 36, 36,
|
674
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
675
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
676
|
+
36, 138, 36, 145, 145, 145, 145, 145,
|
677
|
+
145, 145, 145, 145, 145, 144, 144, 144,
|
678
|
+
144, 144, 144, 144, 145, 145, 145, 145,
|
679
|
+
145, 145, 144, 144, 144, 144, 144, 144,
|
680
|
+
144, 144, 144, 144, 144, 144, 144, 144,
|
681
|
+
144, 144, 144, 144, 144, 144, 144, 144,
|
682
|
+
144, 144, 144, 144, 145, 145, 145, 145,
|
683
|
+
145, 145, 144, 144, 144, 144, 144, 144,
|
684
|
+
144, 144, 144, 144, 144, 144, 144, 144,
|
685
|
+
144, 144, 144, 144, 144, 144, 146, 144,
|
686
|
+
148, 148, 148, 148, 148, 147, 147, 147,
|
713
687
|
147, 147, 147, 147, 147, 147, 147, 147,
|
714
|
-
147, 147,
|
715
|
-
|
716
|
-
|
717
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
718
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
719
|
-
33, 147, 147, 147, 147, 147, 147, 33,
|
720
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
721
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
722
|
-
33, 33, 33, 33, 33, 146, 33, 148,
|
723
|
-
148, 148, 148, 148, 148, 148, 148, 148,
|
724
|
-
148, 33, 33, 33, 33, 33, 33, 33,
|
725
|
-
148, 148, 148, 148, 148, 148, 33, 33,
|
726
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
727
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
728
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
729
|
-
148, 148, 148, 148, 148, 148, 33, 33,
|
730
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
731
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
732
|
-
33, 33, 33, 33, 146, 33, 149, 149,
|
688
|
+
147, 147, 147, 147, 147, 147, 147, 148,
|
689
|
+
147, 147, 147, 147, 147, 147, 147, 147,
|
690
|
+
147, 147, 147, 147, 147, 147, 147, 149,
|
733
691
|
149, 149, 149, 149, 149, 149, 149, 149,
|
734
|
-
|
735
|
-
149, 149, 149, 149, 149,
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
149, 149, 149, 149, 149,
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
151, 151, 151, 151, 151, 151,
|
754
|
-
|
755
|
-
151, 151, 151,
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
767
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
768
|
-
33, 33, 33, 33, 152, 152, 152, 152,
|
769
|
-
152, 152, 33, 33, 33, 33, 33, 33,
|
770
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
771
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
772
|
-
146, 33, 146, 33, 28, 28, 28, 28,
|
773
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
774
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
775
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
776
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
777
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
778
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
779
|
-
28, 28, 28, 28, 28, 28, 28, 28,
|
780
|
-
28, 28, 28, 28, 28, 28, 153, 153,
|
692
|
+
149, 147, 147, 147, 147, 147, 147, 147,
|
693
|
+
149, 149, 149, 149, 149, 149, 147, 147,
|
694
|
+
147, 147, 147, 147, 147, 147, 147, 147,
|
695
|
+
147, 147, 147, 147, 147, 147, 147, 147,
|
696
|
+
147, 147, 147, 147, 147, 147, 147, 147,
|
697
|
+
149, 149, 149, 149, 149, 149, 147, 147,
|
698
|
+
147, 147, 147, 147, 147, 147, 147, 147,
|
699
|
+
147, 147, 147, 147, 147, 147, 147, 147,
|
700
|
+
147, 147, 147, 147, 150, 147, 152, 152,
|
701
|
+
152, 152, 152, 151, 151, 151, 151, 151,
|
702
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
703
|
+
151, 151, 151, 151, 151, 152, 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, 151, 151, 151, 151, 151, 151, 151,
|
709
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
710
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
711
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
712
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
713
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
714
|
+
151, 151, 151, 151, 151, 151, 151, 151,
|
715
|
+
151, 151, 150, 151, 31, 31, 31, 31,
|
716
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
717
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
718
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
719
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
720
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
721
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
722
|
+
31, 31, 31, 31, 31, 31, 31, 31,
|
723
|
+
31, 31, 31, 31, 31, 31, 153, 153,
|
781
724
|
153, 153, 153, 153, 153, 153, 153, 153,
|
782
725
|
153, 153, 153, 153, 153, 153, 153, 153,
|
783
726
|
153, 153, 153, 153, 153, 153, 153, 153,
|
784
727
|
153, 153, 153, 153, 154, 154, 154, 154,
|
785
728
|
154, 154, 154, 154, 154, 154, 154, 154,
|
786
729
|
154, 154, 154, 154, 155, 155, 155, 155,
|
787
|
-
155,
|
788
|
-
|
730
|
+
155, 31, 31, 31, 31, 31, 31, 31,
|
731
|
+
31, 31, 31, 31, 31, 156, 156, 156,
|
789
732
|
156, 156, 156, 156, 156, 156, 156, 156,
|
790
733
|
156, 156, 156, 156, 156, 156, 156, 156,
|
791
734
|
156, 156, 156, 156, 156, 156, 156, 156,
|
@@ -797,11 +740,11 @@ self._re_scanner_indicies = [
|
|
797
740
|
157, 157, 157, 157, 157, 157, 157, 157,
|
798
741
|
157, 157, 157, 157, 157, 157, 157, 157,
|
799
742
|
157, 157, 157, 157, 157, 157, 157, 165,
|
800
|
-
166,
|
743
|
+
166, 31, 167, 157, 157, 157, 157, 157,
|
801
744
|
157, 157, 157, 157, 157, 157, 157, 157,
|
802
745
|
157, 157, 157, 157, 157, 157, 157, 157,
|
803
|
-
157, 157, 157, 157, 157, 157, 157,
|
804
|
-
168,
|
746
|
+
157, 157, 157, 157, 157, 157, 157, 33,
|
747
|
+
168, 31, 157, 156, 157, 153, 153, 153,
|
805
748
|
153, 153, 153, 153, 153, 153, 153, 153,
|
806
749
|
153, 153, 153, 153, 153, 153, 153, 153,
|
807
750
|
153, 153, 153, 153, 153, 153, 153, 153,
|
@@ -836,122 +779,66 @@ self._re_scanner_indicies = [
|
|
836
779
|
157, 157, 157, 157, 157, 157, 157, 157,
|
837
780
|
157, 157, 157, 157, 157, 157, 157, 157,
|
838
781
|
157, 157, 157, 157, 157, 157, 169, 169,
|
839
|
-
169, 157, 169, 171, 170,
|
840
|
-
172, 172, 172, 174, 172, 172, 172, 172,
|
841
|
-
172, 175, 172, 172, 172, 172, 172, 172,
|
842
|
-
172, 172, 172, 172, 172, 172, 11, 172,
|
843
|
-
176, 12, 11, 172, 172, 172, 172, 172,
|
844
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
845
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
846
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
847
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
848
|
-
172, 172, 172, 172, 172, 177, 172, 172,
|
849
|
-
172, 177, 172, 172, 172, 172, 172, 172,
|
850
|
-
172, 172, 172, 172, 177, 172, 178, 172,
|
851
|
-
172, 172, 178, 172, 172, 172, 172, 172,
|
852
|
-
172, 172, 172, 172, 172, 178, 172, 179,
|
853
|
-
172, 172, 172, 179, 172, 172, 172, 172,
|
854
|
-
172, 172, 172, 172, 172, 172, 179, 172,
|
855
|
-
180, 172, 172, 172, 180, 172, 172, 172,
|
856
|
-
172, 172, 172, 172, 172, 172, 172, 180,
|
857
|
-
172, 175, 172, 172, 172, 172, 172, 172,
|
858
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
859
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
860
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
861
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
862
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
863
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
864
|
-
172, 172, 172, 172, 172, 181, 172, 172,
|
865
|
-
172, 181, 172, 172, 172, 172, 172, 172,
|
866
|
-
172, 172, 172, 172, 181, 172, 175, 172,
|
867
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
868
|
-
172, 172, 172, 172, 172, 172, 172, 172,
|
782
|
+
169, 157, 169, 171, 170, 173, 172, 172,
|
869
783
|
172, 172, 172, 172, 172, 172, 172, 172,
|
870
784
|
172, 172, 172, 172, 172, 172, 172, 172,
|
871
|
-
172,
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
785
|
+
172, 173, 172, 175, 174, 174, 174, 174,
|
786
|
+
174, 174, 174, 174, 174, 174, 174, 174,
|
787
|
+
174, 174, 174, 174, 174, 174, 174, 175,
|
788
|
+
174, 177, 176, 176, 176, 176, 176, 176,
|
789
|
+
176, 176, 176, 176, 176, 176, 176, 176,
|
790
|
+
176, 176, 176, 176, 176, 177, 176, 179,
|
791
|
+
179, 178, 180, 178, 178, 179, 180, 178,
|
792
|
+
178, 178, 178, 178, 178, 178, 178, 178,
|
793
|
+
178, 180, 178, 178, 178, 180, 178, 178,
|
794
|
+
179, 178, 178, 178, 178, 178, 178, 178,
|
795
|
+
179, 178, 180, 178, 178, 181, 180, 178,
|
796
|
+
178, 181, 178, 178, 178, 178, 178, 178,
|
797
|
+
178, 180, 178, 178, 178, 180, 178, 178,
|
798
|
+
179, 178, 183, 182, 182, 182, 182, 182,
|
799
|
+
182, 182, 182, 182, 182, 182, 182, 182,
|
800
|
+
182, 182, 182, 182, 182, 182, 183, 182,
|
801
|
+
184, 36, 36, 36, 36, 36, 36, 36,
|
802
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
803
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
804
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
805
|
+
184, 36, 186, 186, 186, 186, 186, 186,
|
806
|
+
186, 186, 186, 186, 186, 186, 186, 186,
|
807
|
+
186, 186, 186, 186, 186, 186, 186, 186,
|
808
|
+
186, 186, 186, 186, 186, 186, 186, 186,
|
892
809
|
187, 187, 187, 187, 187, 187, 187, 187,
|
893
810
|
187, 187, 187, 187, 187, 187, 187, 187,
|
894
|
-
188,
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
189, 189, 189,
|
899
|
-
|
900
|
-
|
901
|
-
|
811
|
+
188, 188, 188, 188, 188, 185, 185, 185,
|
812
|
+
185, 185, 185, 185, 185, 185, 185, 185,
|
813
|
+
185, 189, 189, 189, 189, 189, 189, 189,
|
814
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
815
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
816
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
817
|
+
185, 185, 185, 185, 190, 185, 191, 185,
|
818
|
+
190, 190, 190, 190, 185, 192, 190, 185,
|
902
819
|
193, 193, 193, 193, 193, 193, 193, 193,
|
820
|
+
193, 193, 185, 185, 185, 185, 185, 190,
|
821
|
+
185, 193, 193, 193, 193, 193, 193, 193,
|
903
822
|
193, 193, 193, 193, 193, 193, 193, 193,
|
904
|
-
193,
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
204, 204, 204, 204, 204, 196, 196, 196,
|
924
|
-
196, 196, 201, 196, 204, 204, 204, 204,
|
925
|
-
204, 204, 204, 204, 204, 204, 204, 204,
|
926
|
-
204, 204, 204, 204, 204, 204, 204, 204,
|
927
|
-
204, 204, 204, 204, 204, 204, 205, 206,
|
928
|
-
207, 208, 196, 196, 204, 204, 204, 204,
|
929
|
-
204, 204, 204, 204, 204, 204, 204, 204,
|
930
|
-
204, 204, 204, 204, 204, 204, 204, 204,
|
931
|
-
204, 204, 204, 204, 204, 204, 201, 201,
|
932
|
-
201, 196, 200, 196, 51, 51, 51, 51,
|
933
|
-
51, 51, 51, 51, 51, 51, 51, 51,
|
934
|
-
51, 51, 51, 51, 51, 51, 51, 51,
|
935
|
-
51, 51, 51, 51, 51, 51, 51, 51,
|
936
|
-
51, 51, 51, 51, 51, 51, 51, 51,
|
937
|
-
51, 51, 51, 51, 51, 51, 51, 51,
|
938
|
-
51, 51, 51, 51, 51, 51, 51, 51,
|
939
|
-
51, 51, 51, 51, 51, 51, 51, 51,
|
940
|
-
51, 51, 51, 51, 209, 210, 210, 210,
|
941
|
-
210, 210, 210, 210, 210, 210, 210, 210,
|
942
|
-
210, 210, 210, 210, 210, 210, 210, 210,
|
943
|
-
210, 210, 210, 210, 210, 210, 210, 210,
|
944
|
-
210, 210, 210, 209, 53, 53, 53, 53,
|
945
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
946
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
947
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
948
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
949
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
950
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
951
|
-
53, 53, 53, 53, 53, 53, 53, 53,
|
952
|
-
53, 53, 53, 53, 209, 211, 211, 211,
|
953
|
-
211, 211, 211, 211, 211, 211, 211, 211,
|
954
|
-
211, 211, 211, 211, 211, 209, 56, 56,
|
823
|
+
193, 193, 193, 193, 193, 193, 193, 193,
|
824
|
+
193, 193, 193, 194, 195, 196, 197, 185,
|
825
|
+
185, 193, 193, 193, 193, 193, 193, 193,
|
826
|
+
193, 193, 193, 193, 193, 193, 193, 193,
|
827
|
+
193, 193, 193, 193, 193, 193, 193, 193,
|
828
|
+
193, 193, 193, 190, 190, 190, 185, 189,
|
829
|
+
185, 54, 54, 54, 54, 54, 54, 54,
|
830
|
+
54, 54, 54, 54, 54, 54, 54, 54,
|
831
|
+
54, 54, 54, 54, 54, 54, 54, 54,
|
832
|
+
54, 54, 54, 54, 54, 54, 54, 54,
|
833
|
+
54, 54, 54, 54, 54, 54, 54, 54,
|
834
|
+
54, 54, 54, 54, 54, 54, 54, 54,
|
835
|
+
54, 54, 54, 54, 54, 54, 54, 54,
|
836
|
+
54, 54, 54, 54, 54, 54, 54, 54,
|
837
|
+
54, 198, 199, 199, 199, 199, 199, 199,
|
838
|
+
199, 199, 199, 199, 199, 199, 199, 199,
|
839
|
+
199, 199, 199, 199, 199, 199, 199, 199,
|
840
|
+
199, 199, 199, 199, 199, 199, 199, 199,
|
841
|
+
198, 56, 56, 56, 56, 56, 56, 56,
|
955
842
|
56, 56, 56, 56, 56, 56, 56, 56,
|
956
843
|
56, 56, 56, 56, 56, 56, 56, 56,
|
957
844
|
56, 56, 56, 56, 56, 56, 56, 56,
|
@@ -959,149 +846,352 @@ self._re_scanner_indicies = [
|
|
959
846
|
56, 56, 56, 56, 56, 56, 56, 56,
|
960
847
|
56, 56, 56, 56, 56, 56, 56, 56,
|
961
848
|
56, 56, 56, 56, 56, 56, 56, 56,
|
962
|
-
56,
|
963
|
-
212, 212, 212, 212, 209, 200, 200, 200,
|
849
|
+
56, 198, 200, 200, 200, 200, 200, 200,
|
964
850
|
200, 200, 200, 200, 200, 200, 200, 200,
|
965
|
-
200, 200,
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
971
|
-
|
972
|
-
|
973
|
-
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
|
851
|
+
200, 200, 198, 59, 59, 59, 59, 59,
|
852
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
853
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
854
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
855
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
856
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
857
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
858
|
+
59, 59, 59, 59, 59, 59, 59, 59,
|
859
|
+
59, 59, 59, 198, 201, 201, 201, 201,
|
860
|
+
201, 198, 189, 189, 189, 189, 189, 189,
|
861
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
862
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
863
|
+
189, 189, 189, 189, 189, 189, 189, 189,
|
864
|
+
189, 198, 198, 198, 198, 198, 198, 198,
|
865
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
866
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
867
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
868
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
869
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
870
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
871
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
872
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
873
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
874
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
875
|
+
198, 198, 198, 198, 198, 198, 198, 198,
|
876
|
+
189, 198, 202, 198, 203, 198, 204, 198,
|
877
|
+
207, 206, 206, 206, 206, 206, 206, 206,
|
878
|
+
206, 206, 206, 206, 208, 206, 206, 209,
|
879
|
+
206, 210, 210, 210, 210, 210, 210, 210,
|
880
|
+
210, 210, 210, 210, 210, 210, 210, 210,
|
881
|
+
210, 210, 210, 210, 210, 210, 210, 210,
|
882
|
+
210, 210, 210, 210, 210, 210, 210, 211,
|
883
|
+
211, 211, 211, 211, 211, 211, 211, 211,
|
884
|
+
211, 211, 211, 211, 211, 211, 211, 212,
|
885
|
+
212, 212, 212, 212, 36, 36, 36, 36,
|
886
|
+
36, 36, 36, 36, 36, 36, 36, 36,
|
887
|
+
213, 213, 213, 213, 213, 213, 213, 213,
|
888
|
+
213, 213, 213, 213, 213, 213, 213, 213,
|
889
|
+
213, 213, 213, 213, 213, 213, 213, 213,
|
890
|
+
213, 213, 213, 213, 213, 213, 213, 214,
|
891
|
+
214, 214, 214, 215, 214, 214, 214, 215,
|
892
|
+
215, 215, 215, 216, 215, 215, 214, 214,
|
893
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
894
|
+
214, 214, 214, 214, 214, 214, 215, 214,
|
895
|
+
214, 214, 214, 217, 214, 214, 214, 217,
|
896
|
+
214, 214, 214, 214, 214, 214, 214, 218,
|
897
|
+
214, 214, 217, 214, 214, 214, 217, 214,
|
898
|
+
214, 214, 215, 215, 215, 215, 214, 214,
|
899
|
+
214, 219, 214, 217, 214, 214, 214, 217,
|
900
|
+
214, 214, 214, 214, 214, 214, 214, 218,
|
901
|
+
214, 214, 217, 214, 214, 214, 217, 220,
|
902
|
+
214, 214, 215, 215, 215, 214, 213, 36,
|
903
|
+
210, 210, 210, 210, 210, 210, 210, 210,
|
904
|
+
210, 210, 210, 210, 210, 210, 210, 210,
|
905
|
+
210, 210, 210, 210, 210, 210, 210, 210,
|
906
|
+
210, 210, 210, 210, 210, 210, 221, 211,
|
907
|
+
211, 211, 211, 211, 211, 211, 211, 211,
|
908
|
+
211, 211, 211, 211, 211, 211, 211, 221,
|
909
|
+
212, 212, 212, 212, 212, 221, 213, 213,
|
910
|
+
213, 213, 213, 213, 213, 213, 213, 213,
|
911
|
+
213, 213, 213, 213, 213, 213, 213, 213,
|
912
|
+
213, 213, 213, 213, 213, 213, 213, 213,
|
913
|
+
213, 213, 213, 213, 213, 221, 221, 221,
|
914
|
+
221, 221, 221, 221, 221, 221, 221, 221,
|
915
|
+
221, 221, 221, 221, 221, 221, 221, 221,
|
916
|
+
221, 221, 221, 221, 221, 221, 221, 221,
|
917
|
+
221, 221, 221, 221, 221, 221, 221, 221,
|
983
918
|
221, 221, 221, 221, 221, 221, 221, 221,
|
984
919
|
221, 221, 221, 221, 221, 221, 221, 221,
|
985
920
|
221, 221, 221, 221, 221, 221, 221, 221,
|
986
|
-
221, 221, 222, 222, 222, 222, 222, 222,
|
987
|
-
222, 222, 222, 222, 222, 222, 222, 222,
|
988
|
-
222, 222, 223, 223, 223, 223, 223, 33,
|
989
|
-
33, 33, 33, 33, 33, 33, 33, 33,
|
990
|
-
33, 33, 33, 224, 224, 224, 224, 224,
|
991
|
-
224, 224, 224, 224, 224, 224, 224, 224,
|
992
|
-
224, 224, 224, 224, 224, 224, 224, 224,
|
993
|
-
224, 224, 224, 224, 224, 224, 224, 224,
|
994
|
-
224, 224, 225, 225, 225, 225, 226, 225,
|
995
|
-
225, 225, 226, 226, 226, 226, 227, 226,
|
996
|
-
226, 225, 225, 225, 225, 225, 225, 225,
|
997
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
998
|
-
225, 226, 225, 225, 225, 225, 228, 225,
|
999
|
-
225, 225, 228, 225, 225, 225, 225, 225,
|
1000
|
-
225, 225, 229, 225, 225, 228, 225, 225,
|
1001
|
-
225, 228, 225, 225, 225, 226, 226, 226,
|
1002
|
-
226, 225, 225, 225, 230, 225, 228, 225,
|
1003
|
-
225, 225, 228, 225, 225, 225, 225, 225,
|
1004
|
-
225, 225, 229, 225, 225, 228, 225, 225,
|
1005
|
-
225, 228, 231, 225, 225, 226, 226, 226,
|
1006
|
-
225, 224, 33, 221, 221, 221, 221, 221,
|
1007
921
|
221, 221, 221, 221, 221, 221, 221, 221,
|
1008
922
|
221, 221, 221, 221, 221, 221, 221, 221,
|
1009
923
|
221, 221, 221, 221, 221, 221, 221, 221,
|
1010
|
-
221,
|
924
|
+
221, 221, 221, 221, 221, 221, 221, 221,
|
925
|
+
221, 221, 221, 221, 213, 221, 214, 214,
|
926
|
+
214, 214, 117, 214, 214, 214, 117, 117,
|
927
|
+
117, 117, 214, 117, 117, 214, 214, 214,
|
928
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
929
|
+
214, 214, 214, 214, 214, 117, 214, 214,
|
930
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
931
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
932
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
933
|
+
214, 117, 117, 117, 117, 214, 214, 214,
|
934
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
935
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
936
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
937
|
+
214, 117, 117, 117, 214, 117, 214, 214,
|
938
|
+
214, 214, 221, 214, 214, 214, 221, 221,
|
939
|
+
221, 221, 214, 221, 221, 214, 222, 222,
|
1011
940
|
222, 222, 222, 222, 222, 222, 222, 222,
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
232, 232, 232, 232, 232, 232, 232, 232,
|
1024
|
-
232, 232, 232, 232, 232, 232, 232, 232,
|
1025
|
-
232, 232, 232, 232, 232, 232, 232, 232,
|
1026
|
-
232, 232, 232, 232, 232, 232, 232, 232,
|
1027
|
-
232, 232, 232, 232, 232, 232, 232, 232,
|
1028
|
-
232, 232, 232, 232, 232, 232, 232, 224,
|
1029
|
-
232, 225, 225, 225, 225, 114, 225, 225,
|
1030
|
-
225, 114, 114, 114, 114, 225, 114, 114,
|
1031
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1032
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1033
|
-
114, 225, 225, 225, 225, 225, 225, 225,
|
1034
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1035
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1036
|
-
225, 225, 225, 225, 114, 114, 114, 114,
|
1037
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1038
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1039
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1040
|
-
225, 225, 225, 225, 114, 114, 114, 225,
|
1041
|
-
114, 225, 225, 225, 225, 232, 225, 225,
|
1042
|
-
225, 232, 232, 232, 232, 225, 232, 232,
|
1043
|
-
225, 233, 233, 233, 233, 233, 233, 233,
|
1044
|
-
233, 233, 233, 225, 225, 225, 225, 225,
|
1045
|
-
232, 225, 233, 233, 233, 233, 233, 233,
|
1046
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1047
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1048
|
-
225, 225, 225, 225, 232, 232, 232, 232,
|
1049
|
-
225, 225, 233, 233, 233, 233, 233, 233,
|
1050
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1051
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1052
|
-
225, 225, 225, 225, 232, 232, 232, 225,
|
1053
|
-
232, 225, 225, 225, 225, 234, 225, 225,
|
1054
|
-
225, 234, 234, 234, 234, 225, 235, 234,
|
1055
|
-
225, 236, 236, 236, 236, 236, 236, 236,
|
1056
|
-
236, 236, 236, 225, 225, 225, 225, 225,
|
1057
|
-
234, 225, 236, 236, 236, 236, 236, 236,
|
1058
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1059
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1060
|
-
225, 225, 225, 225, 234, 234, 234, 234,
|
1061
|
-
225, 225, 236, 236, 236, 236, 236, 236,
|
1062
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1063
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
1064
|
-
225, 225, 225, 225, 234, 234, 234, 225,
|
1065
|
-
234, 238, 238, 238, 238, 238, 238, 238,
|
1066
|
-
238, 238, 238, 237, 237, 237, 237, 237,
|
1067
|
-
237, 237, 238, 238, 238, 238, 238, 238,
|
1068
|
-
237, 237, 237, 237, 237, 237, 237, 237,
|
1069
|
-
237, 237, 237, 237, 237, 237, 237, 237,
|
1070
|
-
237, 237, 237, 237, 237, 237, 237, 237,
|
1071
|
-
237, 237, 238, 238, 238, 238, 238, 238,
|
1072
|
-
237, 225, 225, 225, 225, 234, 225, 225,
|
1073
|
-
225, 234, 234, 234, 234, 225, 235, 234,
|
1074
|
-
225, 225, 225, 225, 225, 225, 225, 225,
|
941
|
+
214, 214, 214, 214, 214, 221, 214, 222,
|
942
|
+
222, 222, 222, 222, 222, 214, 214, 214,
|
943
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
944
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
945
|
+
214, 221, 221, 221, 221, 214, 214, 222,
|
946
|
+
222, 222, 222, 222, 222, 214, 214, 214,
|
947
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
948
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
949
|
+
214, 221, 221, 221, 214, 221, 214, 214,
|
950
|
+
214, 214, 223, 214, 214, 214, 223, 223,
|
951
|
+
223, 223, 214, 224, 223, 214, 225, 225,
|
1075
952
|
225, 225, 225, 225, 225, 225, 225, 225,
|
1076
|
-
|
1077
|
-
225, 225, 225, 225, 225,
|
1078
|
-
|
1079
|
-
|
1080
|
-
|
1081
|
-
225, 225, 225, 225, 225,
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
953
|
+
214, 214, 214, 214, 214, 223, 214, 225,
|
954
|
+
225, 225, 225, 225, 225, 214, 214, 214,
|
955
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
956
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
957
|
+
214, 223, 223, 223, 223, 214, 214, 225,
|
958
|
+
225, 225, 225, 225, 225, 214, 214, 214,
|
959
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
960
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
961
|
+
214, 223, 223, 223, 214, 223, 227, 227,
|
962
|
+
227, 227, 227, 227, 227, 227, 227, 227,
|
963
|
+
226, 226, 226, 226, 226, 226, 226, 227,
|
964
|
+
227, 227, 227, 227, 227, 226, 226, 226,
|
965
|
+
226, 226, 226, 226, 226, 226, 226, 226,
|
966
|
+
226, 226, 226, 226, 226, 226, 226, 226,
|
967
|
+
226, 226, 226, 226, 226, 226, 226, 227,
|
968
|
+
227, 227, 227, 227, 227, 226, 214, 214,
|
969
|
+
214, 214, 223, 214, 214, 214, 223, 223,
|
970
|
+
223, 223, 214, 224, 223, 214, 214, 214,
|
971
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
972
|
+
214, 214, 214, 214, 214, 223, 214, 214,
|
973
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
974
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
975
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
976
|
+
214, 223, 223, 223, 223, 214, 214, 214,
|
977
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
978
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
979
|
+
214, 214, 214, 214, 214, 214, 214, 214,
|
980
|
+
214, 223, 223, 223, 214, 223, 229, 228,
|
981
|
+
228, 228, 229, 229, 229, 229, 228, 228,
|
982
|
+
229, 228, 230, 231, 231, 231, 231, 231,
|
983
|
+
231, 231, 232, 232, 228, 228, 228, 228,
|
984
|
+
228, 229, 228, 36, 36, 233, 36, 228,
|
985
|
+
228, 36, 36, 228, 228, 228, 228, 234,
|
986
|
+
228, 228, 235, 228, 228, 36, 228, 228,
|
987
|
+
228, 36, 228, 228, 36, 229, 229, 229,
|
988
|
+
229, 228, 228, 236, 236, 128, 36, 236,
|
989
|
+
236, 36, 36, 228, 228, 36, 228, 228,
|
990
|
+
236, 228, 235, 228, 236, 236, 236, 237,
|
991
|
+
236, 36, 238, 228, 36, 229, 229, 229,
|
992
|
+
228, 240, 240, 240, 240, 240, 240, 240,
|
993
|
+
240, 239, 242, 242, 242, 242, 242, 242,
|
994
|
+
242, 242, 241, 245, 244, 248, 248, 248,
|
995
|
+
248, 248, 248, 248, 248, 248, 248, 247,
|
996
|
+
247, 247, 247, 247, 247, 247, 248, 248,
|
997
|
+
248, 248, 248, 248, 247, 247, 247, 247,
|
998
|
+
247, 247, 247, 247, 247, 247, 247, 247,
|
999
|
+
247, 247, 247, 247, 247, 247, 247, 247,
|
1000
|
+
247, 247, 247, 247, 247, 247, 248, 248,
|
1001
|
+
248, 248, 248, 248, 247, 249, 250, 249,
|
1002
|
+
251, 249, 252, 249, 253, 249, 254, 249,
|
1003
|
+
255, 249, 256, 249, 150, 257, 257, 257,
|
1004
|
+
257, 257, 250, 250, 250, 250, 250, 250,
|
1005
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1006
|
+
250, 250, 250, 250, 257, 250, 250, 250,
|
1007
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1008
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1009
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1010
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1011
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1012
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1013
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1014
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1015
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1016
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1017
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1018
|
+
250, 150, 250, 258, 258, 258, 258, 258,
|
1019
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1020
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1021
|
+
251, 251, 258, 251, 251, 251, 251, 251,
|
1022
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1023
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1024
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1025
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1026
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1027
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1028
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1029
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1030
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1031
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1032
|
+
251, 251, 251, 251, 251, 251, 251, 150,
|
1033
|
+
251, 259, 259, 259, 259, 259, 252, 252,
|
1034
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1035
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1036
|
+
259, 252, 252, 252, 252, 252, 252, 252,
|
1037
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1038
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1039
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1040
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1041
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1042
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1043
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1044
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1045
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1046
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1047
|
+
252, 252, 252, 252, 252, 150, 252, 260,
|
1048
|
+
260, 260, 260, 260, 253, 253, 253, 253,
|
1049
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1050
|
+
253, 253, 253, 253, 253, 253, 260, 253,
|
1051
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1052
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1053
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1054
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1055
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1056
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1057
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1058
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1059
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1060
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1061
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1062
|
+
253, 253, 253, 150, 253, 261, 261, 261,
|
1063
|
+
261, 261, 254, 254, 254, 254, 254, 254,
|
1064
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1065
|
+
254, 254, 254, 254, 261, 254, 254, 254,
|
1066
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1067
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1068
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1069
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1070
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1071
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1072
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1073
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1074
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1075
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1076
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1077
|
+
254, 150, 254, 262, 262, 262, 262, 262,
|
1098
1078
|
255, 255, 255, 255, 255, 255, 255, 255,
|
1099
|
-
|
1100
|
-
255, 255,
|
1079
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1080
|
+
255, 255, 262, 255, 255, 255, 255, 255,
|
1081
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1082
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1083
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1084
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1085
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1086
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1087
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1088
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1089
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1090
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1091
|
+
255, 255, 255, 255, 255, 255, 255, 150,
|
1092
|
+
255, 263, 263, 263, 263, 263, 256, 256,
|
1093
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1094
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1095
|
+
263, 256, 256, 256, 256, 256, 256, 256,
|
1096
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1097
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1098
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1099
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1100
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1101
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1102
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1103
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1104
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1105
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1106
|
+
256, 256, 256, 256, 256, 150, 256, 264,
|
1107
|
+
264, 264, 264, 264, 150, 150, 150, 150,
|
1108
|
+
150, 150, 150, 150, 150, 150, 150, 150,
|
1109
|
+
150, 150, 150, 150, 150, 150, 264, 150,
|
1110
|
+
152, 152, 152, 152, 152, 249, 249, 249,
|
1111
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1112
|
+
249, 249, 249, 249, 249, 249, 249, 152,
|
1113
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1114
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1115
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1116
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1117
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1118
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1119
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1120
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1121
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1122
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1123
|
+
249, 249, 249, 249, 249, 249, 249, 249,
|
1124
|
+
249, 249, 249, 249, 150, 249, 266, 266,
|
1125
|
+
266, 266, 266, 266, 266, 266, 266, 266,
|
1126
|
+
250, 250, 250, 250, 250, 250, 250, 266,
|
1127
|
+
266, 266, 266, 266, 266, 250, 250, 250,
|
1128
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1129
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1130
|
+
250, 250, 250, 250, 250, 250, 250, 266,
|
1131
|
+
266, 266, 266, 266, 266, 250, 250, 250,
|
1132
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1133
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1134
|
+
250, 250, 250, 267, 250, 268, 268, 268,
|
1135
|
+
268, 268, 268, 268, 268, 268, 268, 251,
|
1136
|
+
251, 251, 251, 251, 251, 251, 268, 268,
|
1137
|
+
268, 268, 268, 268, 251, 251, 251, 251,
|
1138
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1139
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1140
|
+
251, 251, 251, 251, 251, 251, 268, 268,
|
1141
|
+
268, 268, 268, 268, 251, 251, 251, 251,
|
1142
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1143
|
+
251, 251, 251, 251, 251, 251, 251, 251,
|
1144
|
+
251, 251, 267, 251, 269, 269, 269, 269,
|
1145
|
+
269, 269, 269, 269, 269, 269, 252, 252,
|
1146
|
+
252, 252, 252, 252, 252, 269, 269, 269,
|
1147
|
+
269, 269, 269, 252, 252, 252, 252, 252,
|
1148
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1149
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1150
|
+
252, 252, 252, 252, 252, 269, 269, 269,
|
1151
|
+
269, 269, 269, 252, 252, 252, 252, 252,
|
1152
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1153
|
+
252, 252, 252, 252, 252, 252, 252, 252,
|
1154
|
+
252, 267, 252, 270, 270, 270, 270, 270,
|
1155
|
+
270, 270, 270, 270, 270, 253, 253, 253,
|
1156
|
+
253, 253, 253, 253, 270, 270, 270, 270,
|
1157
|
+
270, 270, 253, 253, 253, 253, 253, 253,
|
1158
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1159
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1160
|
+
253, 253, 253, 253, 270, 270, 270, 270,
|
1161
|
+
270, 270, 253, 253, 253, 253, 253, 253,
|
1162
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1163
|
+
253, 253, 253, 253, 253, 253, 253, 253,
|
1164
|
+
267, 253, 271, 271, 271, 271, 271, 271,
|
1165
|
+
271, 271, 271, 271, 254, 254, 254, 254,
|
1166
|
+
254, 254, 254, 271, 271, 271, 271, 271,
|
1167
|
+
271, 254, 254, 254, 254, 254, 254, 254,
|
1168
|
+
254, 254, 254, 254, 254, 254, 254, 254,
|
1101
1169
|
254, 254, 254, 254, 254, 254, 254, 254,
|
1170
|
+
254, 254, 254, 271, 271, 271, 271, 271,
|
1171
|
+
271, 254, 254, 254, 254, 254, 254, 254,
|
1102
1172
|
254, 254, 254, 254, 254, 254, 254, 254,
|
1103
|
-
254, 254, 254, 254, 254, 254, 254,
|
1104
|
-
|
1173
|
+
254, 254, 254, 254, 254, 254, 254, 267,
|
1174
|
+
254, 272, 272, 272, 272, 272, 272, 272,
|
1175
|
+
272, 272, 272, 255, 255, 255, 255, 255,
|
1176
|
+
255, 255, 272, 272, 272, 272, 272, 272,
|
1177
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1178
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1179
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1180
|
+
255, 255, 272, 272, 272, 272, 272, 272,
|
1181
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1182
|
+
255, 255, 255, 255, 255, 255, 255, 255,
|
1183
|
+
255, 255, 255, 255, 255, 255, 267, 255,
|
1184
|
+
273, 273, 273, 273, 273, 273, 273, 273,
|
1185
|
+
273, 273, 256, 256, 256, 256, 256, 256,
|
1186
|
+
256, 273, 273, 273, 273, 273, 273, 256,
|
1187
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1188
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1189
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1190
|
+
256, 273, 273, 273, 273, 273, 273, 256,
|
1191
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1192
|
+
256, 256, 256, 256, 256, 256, 256, 256,
|
1193
|
+
256, 256, 256, 256, 256, 267, 256, 267,
|
1194
|
+
150, 0
|
1105
1195
|
]
|
1106
1196
|
|
1107
1197
|
class << self
|
@@ -1109,38 +1199,41 @@ class << self
|
|
1109
1199
|
private :_re_scanner_trans_targs, :_re_scanner_trans_targs=
|
1110
1200
|
end
|
1111
1201
|
self._re_scanner_trans_targs = [
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
162, 162,
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1202
|
+
132, 133, 3, 134, 5, 6, 135, 132,
|
1203
|
+
132, 8, 10, 132, 132, 11, 9, 132,
|
1204
|
+
12, 132, 14, 20, 132, 15, 17, 19,
|
1205
|
+
16, 18, 21, 23, 25, 22, 24, 0,
|
1206
|
+
27, 26, 143, 29, 0, 30, 31, 44,
|
1207
|
+
144, 32, 33, 34, 35, 38, 40, 42,
|
1208
|
+
36, 37, 39, 41, 43, 145, 147, 149,
|
1209
|
+
46, 49, 151, 48, 145, 145, 145, 53,
|
1210
|
+
54, 145, 56, 57, 68, 72, 76, 80,
|
1211
|
+
84, 88, 93, 97, 99, 102, 58, 65,
|
1212
|
+
59, 63, 60, 61, 62, 145, 64, 66,
|
1213
|
+
67, 69, 70, 71, 73, 74, 75, 77,
|
1214
|
+
78, 79, 81, 82, 83, 85, 86, 87,
|
1215
|
+
89, 91, 90, 92, 94, 95, 96, 98,
|
1216
|
+
100, 101, 104, 105, 145, 157, 158, 108,
|
1217
|
+
159, 110, 111, 160, 157, 113, 114, 165,
|
1218
|
+
167, 170, 167, 167, 118, 167, 120, 123,
|
1219
|
+
121, 122, 167, 124, 125, 126, 127, 128,
|
1220
|
+
167, 171, 130, 172, 180, 189, 167, 167,
|
1221
|
+
131, 1, 2, 4, 136, 137, 132, 138,
|
1222
|
+
132, 139, 140, 132, 141, 132, 142, 132,
|
1223
|
+
132, 132, 132, 7, 132, 132, 132, 132,
|
1224
|
+
132, 132, 132, 132, 132, 13, 132, 132,
|
1225
|
+
28, 145, 146, 148, 150, 152, 145, 153,
|
1226
|
+
154, 155, 156, 145, 145, 145, 145, 45,
|
1227
|
+
47, 50, 145, 145, 51, 145, 145, 52,
|
1228
|
+
55, 103, 106, 107, 109, 161, 162, 157,
|
1229
|
+
162, 162, 157, 157, 163, 157, 164, 157,
|
1230
|
+
112, 166, 157, 157, 167, 167, 168, 168,
|
1231
|
+
167, 115, 116, 167, 167, 119, 129, 167,
|
1232
|
+
169, 167, 167, 167, 167, 117, 167, 167,
|
1233
|
+
167, 167, 173, 174, 175, 176, 177, 178,
|
1234
|
+
179, 181, 182, 183, 184, 185, 186, 187,
|
1235
|
+
188, 167, 190, 167, 191, 192, 193, 194,
|
1236
|
+
195, 196
|
1144
1237
|
]
|
1145
1238
|
|
1146
1239
|
class << self
|
@@ -1149,37 +1242,40 @@ class << self
|
|
1149
1242
|
end
|
1150
1243
|
self._re_scanner_trans_actions = [
|
1151
1244
|
1, 2, 0, 2, 0, 0, 2, 3,
|
1152
|
-
4, 5, 0, 6, 7, 0,
|
1153
|
-
0,
|
1154
|
-
0, 0, 0, 0,
|
1155
|
-
0, 0, 0, 0, 0,
|
1156
|
-
|
1157
|
-
0, 0,
|
1158
|
-
0,
|
1159
|
-
0,
|
1160
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
1161
|
-
0, 0,
|
1162
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
1163
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
1164
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
1165
|
-
0,
|
1166
|
-
|
1167
|
-
25,
|
1168
|
-
|
1169
|
-
|
1170
|
-
0, 0, 0, 0, 0, 0,
|
1171
|
-
|
1172
|
-
|
1173
|
-
|
1174
|
-
|
1175
|
-
0,
|
1176
|
-
0,
|
1177
|
-
|
1178
|
-
|
1179
|
-
0,
|
1180
|
-
|
1181
|
-
|
1182
|
-
|
1245
|
+
4, 5, 0, 6, 7, 0, 5, 8,
|
1246
|
+
0, 9, 0, 0, 10, 0, 0, 0,
|
1247
|
+
0, 0, 0, 0, 0, 0, 0, 11,
|
1248
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1249
|
+
13, 0, 0, 0, 0, 0, 0, 0,
|
1250
|
+
0, 0, 0, 0, 0, 14, 15, 15,
|
1251
|
+
0, 0, 15, 0, 16, 17, 18, 0,
|
1252
|
+
0, 19, 0, 0, 0, 0, 0, 0,
|
1253
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1254
|
+
0, 0, 0, 0, 0, 20, 0, 0,
|
1255
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1256
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1257
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1258
|
+
0, 0, 0, 0, 21, 22, 23, 0,
|
1259
|
+
23, 0, 0, 23, 24, 0, 0, 0,
|
1260
|
+
25, 15, 26, 27, 0, 28, 0, 0,
|
1261
|
+
0, 0, 29, 0, 0, 0, 0, 0,
|
1262
|
+
30, 0, 0, 0, 0, 0, 31, 32,
|
1263
|
+
0, 0, 0, 0, 0, 0, 35, 36,
|
1264
|
+
37, 0, 0, 38, 0, 39, 15, 40,
|
1265
|
+
41, 42, 43, 44, 45, 46, 47, 48,
|
1266
|
+
49, 50, 51, 52, 53, 0, 54, 55,
|
1267
|
+
0, 57, 0, 15, 15, 0, 58, 0,
|
1268
|
+
0, 15, 15, 59, 60, 61, 62, 0,
|
1269
|
+
0, 0, 63, 64, 0, 65, 66, 0,
|
1270
|
+
0, 0, 0, 0, 0, 0, 23, 67,
|
1271
|
+
68, 69, 70, 71, 0, 72, 15, 73,
|
1272
|
+
0, 15, 74, 75, 76, 77, 78, 79,
|
1273
|
+
80, 0, 0, 81, 82, 0, 0, 83,
|
1274
|
+
0, 84, 85, 86, 87, 0, 88, 89,
|
1275
|
+
90, 91, 0, 0, 0, 0, 0, 0,
|
1276
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1277
|
+
15, 92, 0, 93, 0, 0, 0, 0,
|
1278
|
+
0, 0
|
1183
1279
|
]
|
1184
1280
|
|
1185
1281
|
class << self
|
@@ -1203,14 +1299,15 @@ self._re_scanner_to_state_actions = [
|
|
1203
1299
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1204
1300
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1205
1301
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1302
|
+
0, 0, 0, 0, 33, 0, 0, 0,
|
1206
1303
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1207
|
-
|
1304
|
+
56, 56, 0, 0, 0, 0, 0, 0,
|
1305
|
+
0, 0, 0, 0, 0, 33, 0, 0,
|
1306
|
+
0, 0, 0, 0, 0, 0, 0, 56,
|
1208
1307
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1209
1308
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1210
|
-
0, 53, 53, 0, 0, 0, 0, 0,
|
1211
|
-
0, 0, 0, 0, 0, 0, 28, 0,
|
1212
1309
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1213
|
-
|
1310
|
+
0, 0, 0, 0, 0
|
1214
1311
|
]
|
1215
1312
|
|
1216
1313
|
class << self
|
@@ -1234,14 +1331,15 @@ self._re_scanner_from_state_actions = [
|
|
1234
1331
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1235
1332
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1236
1333
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1334
|
+
0, 0, 0, 0, 34, 0, 0, 0,
|
1237
1335
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1238
|
-
|
1336
|
+
34, 34, 0, 0, 0, 0, 0, 0,
|
1337
|
+
0, 0, 0, 0, 0, 34, 0, 0,
|
1338
|
+
0, 0, 0, 0, 0, 0, 0, 34,
|
1239
1339
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1240
1340
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1241
|
-
0, 29, 29, 0, 0, 0, 0, 0,
|
1242
|
-
0, 0, 0, 0, 0, 0, 29, 0,
|
1243
1341
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1244
|
-
|
1342
|
+
0, 0, 0, 0, 0
|
1245
1343
|
]
|
1246
1344
|
|
1247
1345
|
class << self
|
@@ -1252,12 +1350,9 @@ self._re_scanner_eof_actions = [
|
|
1252
1350
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1253
1351
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1254
1352
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1255
|
-
0, 0,
|
1256
|
-
|
1257
|
-
|
1258
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
1259
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
1260
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
1353
|
+
0, 0, 11, 11, 12, 12, 12, 12,
|
1354
|
+
12, 12, 12, 12, 12, 12, 12, 12,
|
1355
|
+
12, 12, 12, 12, 12, 0, 0, 0,
|
1261
1356
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1262
1357
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1263
1358
|
0, 0, 0, 0, 0, 0, 0, 0,
|
@@ -1266,13 +1361,17 @@ self._re_scanner_eof_actions = [
|
|
1266
1361
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1267
1362
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1268
1363
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1364
|
+
0, 0, 0, 11, 11, 0, 0, 11,
|
1365
|
+
11, 11, 11, 11, 11, 11, 11, 11,
|
1366
|
+
11, 11, 11, 0, 0, 0, 0, 0,
|
1269
1367
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1368
|
+
0, 11, 0, 0, 0, 0, 0, 0,
|
1270
1369
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1370
|
+
0, 0, 0, 0, 0, 0, 0, 11,
|
1271
1371
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1272
|
-
0, 0, 10, 0, 0, 0, 0, 0,
|
1273
1372
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1274
1373
|
0, 0, 0, 0, 0, 0, 0, 0,
|
1275
|
-
0, 0, 0, 0
|
1374
|
+
0, 0, 0, 0, 0
|
1276
1375
|
]
|
1277
1376
|
|
1278
1377
|
class << self
|
@@ -1281,39 +1380,40 @@ class << self
|
|
1281
1380
|
end
|
1282
1381
|
self._re_scanner_eof_trans = [
|
1283
1382
|
0, 1, 1, 1, 1, 1, 1, 8,
|
1284
|
-
8, 8, 8, 8, 8,
|
1285
|
-
|
1286
|
-
|
1287
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
1288
|
-
0, 0, 0, 0, 0,
|
1289
|
-
|
1290
|
-
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
1299
|
-
0, 0, 0,
|
1300
|
-
|
1301
|
-
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1383
|
+
8, 8, 8, 8, 8, 18, 18, 18,
|
1384
|
+
18, 18, 18, 18, 18, 18, 18, 18,
|
1385
|
+
18, 18, 0, 0, 0, 0, 0, 0,
|
1386
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1387
|
+
0, 0, 0, 0, 0, 54, 54, 54,
|
1388
|
+
54, 54, 54, 54, 62, 62, 62, 62,
|
1389
|
+
62, 62, 62, 62, 62, 62, 62, 62,
|
1390
|
+
62, 62, 62, 62, 62, 62, 62, 62,
|
1391
|
+
62, 62, 62, 62, 62, 62, 62, 62,
|
1392
|
+
62, 62, 62, 62, 62, 62, 62, 62,
|
1393
|
+
62, 62, 62, 62, 62, 62, 62, 62,
|
1394
|
+
62, 62, 62, 62, 62, 62, 62, 62,
|
1395
|
+
62, 62, 118, 118, 118, 118, 118, 118,
|
1396
|
+
125, 125, 125, 0, 0, 131, 131, 0,
|
1397
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
1398
|
+
0, 0, 0, 152, 0, 170, 170, 170,
|
1399
|
+
170, 170, 171, 173, 175, 177, 179, 183,
|
1400
|
+
0, 0, 199, 199, 199, 199, 199, 199,
|
1401
|
+
199, 199, 199, 199, 206, 0, 222, 222,
|
1402
|
+
222, 222, 118, 222, 224, 227, 224, 0,
|
1403
|
+
240, 242, 244, 247, 250, 250, 250, 250,
|
1404
|
+
250, 250, 250, 250, 250, 250, 250, 250,
|
1405
|
+
250, 250, 250, 250, 250, 266, 266, 266,
|
1406
|
+
266, 266, 266, 266, 266
|
1307
1407
|
]
|
1308
1408
|
|
1309
1409
|
class << self
|
1310
1410
|
attr_accessor :re_scanner_start
|
1311
1411
|
end
|
1312
|
-
self.re_scanner_start =
|
1412
|
+
self.re_scanner_start = 132;
|
1313
1413
|
class << self
|
1314
1414
|
attr_accessor :re_scanner_first_final
|
1315
1415
|
end
|
1316
|
-
self.re_scanner_first_final =
|
1416
|
+
self.re_scanner_first_final = 132;
|
1317
1417
|
class << self
|
1318
1418
|
attr_accessor :re_scanner_error
|
1319
1419
|
end
|
@@ -1322,46 +1422,76 @@ self.re_scanner_error = 0;
|
|
1322
1422
|
class << self
|
1323
1423
|
attr_accessor :re_scanner_en_unicode_property
|
1324
1424
|
end
|
1325
|
-
self.re_scanner_en_unicode_property =
|
1425
|
+
self.re_scanner_en_unicode_property = 144;
|
1326
1426
|
class << self
|
1327
1427
|
attr_accessor :re_scanner_en_character_set
|
1328
1428
|
end
|
1329
|
-
self.re_scanner_en_character_set =
|
1429
|
+
self.re_scanner_en_character_set = 145;
|
1330
1430
|
class << self
|
1331
1431
|
attr_accessor :re_scanner_en_set_escape_sequence
|
1332
1432
|
end
|
1333
|
-
self.re_scanner_en_set_escape_sequence =
|
1433
|
+
self.re_scanner_en_set_escape_sequence = 157;
|
1334
1434
|
class << self
|
1335
1435
|
attr_accessor :re_scanner_en_escape_sequence
|
1336
1436
|
end
|
1337
|
-
self.re_scanner_en_escape_sequence =
|
1437
|
+
self.re_scanner_en_escape_sequence = 167;
|
1338
1438
|
class << self
|
1339
1439
|
attr_accessor :re_scanner_en_main
|
1340
1440
|
end
|
1341
|
-
self.re_scanner_en_main =
|
1441
|
+
self.re_scanner_en_main = 132;
|
1342
1442
|
|
1343
1443
|
|
1344
|
-
# line
|
1444
|
+
# line 684 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1345
1445
|
|
1446
|
+
# General scanner error (catch all)
|
1346
1447
|
class ScannerError < StandardError
|
1347
1448
|
def initialize(what)
|
1348
1449
|
super what
|
1349
1450
|
end
|
1350
1451
|
end
|
1351
1452
|
|
1453
|
+
# Base for all scanner validation errors
|
1454
|
+
class ValidationError < StandardError
|
1455
|
+
def initialize(reason)
|
1456
|
+
super reason
|
1457
|
+
end
|
1458
|
+
end
|
1459
|
+
|
1460
|
+
# Unexpected end of pattern
|
1352
1461
|
class PrematureEndError < ScannerError
|
1353
1462
|
def initialize(where = '')
|
1354
|
-
super "Premature end of pattern
|
1463
|
+
super "Premature end of pattern at #{where}"
|
1464
|
+
end
|
1465
|
+
end
|
1466
|
+
|
1467
|
+
# Invalid sequence format. Used for escape sequences, mainly.
|
1468
|
+
class InvalidSequenceError < ValidationError
|
1469
|
+
def initialize(what = 'sequence', where = '')
|
1470
|
+
super "Invalid #{what} at #{where}"
|
1471
|
+
end
|
1472
|
+
end
|
1473
|
+
|
1474
|
+
# Invalid group. Used for named groups.
|
1475
|
+
class InvalidGroupError < ValidationError
|
1476
|
+
def initialize(what, reason)
|
1477
|
+
super "Invalid #{what}, #{reason}."
|
1478
|
+
end
|
1479
|
+
end
|
1480
|
+
|
1481
|
+
# Invalid back reference. Used for name a number refs/calls.
|
1482
|
+
class InvalidBackrefError < ValidationError
|
1483
|
+
def initialize(what, reason)
|
1484
|
+
super "Invalid back reference #{what}, #{reason}"
|
1355
1485
|
end
|
1356
1486
|
end
|
1357
1487
|
|
1358
|
-
|
1488
|
+
# The property name was not recognized by the scanner.
|
1489
|
+
class UnknownUnicodePropertyError < ValidationError
|
1359
1490
|
def initialize(name)
|
1360
1491
|
super "Unknown unicode character property name #{name}"
|
1361
1492
|
end
|
1362
1493
|
end
|
1363
1494
|
|
1364
|
-
|
1365
1495
|
# Scans the given regular expression text, or Regexp object and collects the
|
1366
1496
|
# emitted token into an array that gets returned at the end. If a block is
|
1367
1497
|
# given, it gets called for each emitted token.
|
@@ -1382,7 +1512,7 @@ self.re_scanner_en_main = 142;
|
|
1382
1512
|
in_set, set_depth, set_type = false, 0, :set
|
1383
1513
|
|
1384
1514
|
|
1385
|
-
# line
|
1515
|
+
# line 1516 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
|
1386
1516
|
begin
|
1387
1517
|
p ||= 0
|
1388
1518
|
pe ||= data.length
|
@@ -1393,9 +1523,9 @@ begin
|
|
1393
1523
|
act = 0
|
1394
1524
|
end
|
1395
1525
|
|
1396
|
-
# line
|
1526
|
+
# line 754 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1397
1527
|
|
1398
|
-
# line
|
1528
|
+
# line 1529 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
|
1399
1529
|
begin
|
1400
1530
|
testEof = false
|
1401
1531
|
_slen, _trans, _keys, _inds, _acts, _nacts = nil
|
@@ -1418,22 +1548,21 @@ begin
|
|
1418
1548
|
end
|
1419
1549
|
if _goto_level <= _resume
|
1420
1550
|
case _re_scanner_from_state_actions[cs]
|
1421
|
-
when
|
1422
|
-
# line 1 "
|
1551
|
+
when 34 then
|
1552
|
+
# line 1 "NONE"
|
1423
1553
|
begin
|
1424
1554
|
ts = p
|
1425
1555
|
end
|
1426
|
-
# line
|
1427
|
-
# line 1428 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner.rb"
|
1556
|
+
# line 1557 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
|
1428
1557
|
end
|
1429
1558
|
_keys = cs << 1
|
1430
1559
|
_inds = _re_scanner_index_offsets[cs]
|
1431
1560
|
_slen = _re_scanner_key_spans[cs]
|
1432
1561
|
_trans = if ( _slen > 0 &&
|
1433
|
-
_re_scanner_trans_keys[_keys] <= data[p] &&
|
1434
|
-
data[p] <= _re_scanner_trans_keys[_keys + 1]
|
1562
|
+
_re_scanner_trans_keys[_keys] <= data[p].ord &&
|
1563
|
+
data[p].ord <= _re_scanner_trans_keys[_keys + 1]
|
1435
1564
|
) then
|
1436
|
-
_re_scanner_indicies[ _inds + data[p] - _re_scanner_trans_keys[_keys] ]
|
1565
|
+
_re_scanner_indicies[ _inds + data[p].ord - _re_scanner_trans_keys[_keys] ]
|
1437
1566
|
else
|
1438
1567
|
_re_scanner_indicies[ _inds + _slen ]
|
1439
1568
|
end
|
@@ -1442,33 +1571,28 @@ ts = p
|
|
1442
1571
|
cs = _re_scanner_trans_targs[_trans]
|
1443
1572
|
if _re_scanner_trans_actions[_trans] != 0
|
1444
1573
|
case _re_scanner_trans_actions[_trans]
|
1445
|
-
when
|
1446
|
-
# line
|
1447
|
-
begin
|
1448
|
-
raise PrematureEndError end
|
1449
|
-
# line 116 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1450
|
-
when 31 then
|
1451
|
-
# line 119 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1574
|
+
when 11 then
|
1575
|
+
# line 124 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1452
1576
|
begin
|
1453
|
-
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1577
|
+
|
1578
|
+
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
1579
|
+
raise PrematureEndError.new( text )
|
1580
|
+
end
|
1581
|
+
when 5 then
|
1582
|
+
# line 137 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1457
1583
|
begin
|
1458
1584
|
group_depth -= 1; in_group = group_depth > 0 ? true : false end
|
1459
|
-
|
1460
|
-
|
1461
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1585
|
+
when 15 then
|
1586
|
+
# line 1 "NONE"
|
1462
1587
|
begin
|
1463
1588
|
te = p+1
|
1464
1589
|
end
|
1465
|
-
|
1466
|
-
|
1467
|
-
# line 60 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1590
|
+
when 13 then
|
1591
|
+
# line 60 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/property.rl"
|
1468
1592
|
begin
|
1469
1593
|
te = p+1
|
1470
1594
|
begin
|
1471
|
-
text = data
|
1595
|
+
text = text(data, ts, te, 1).first
|
1472
1596
|
if in_set
|
1473
1597
|
type = :set
|
1474
1598
|
else
|
@@ -1935,9 +2059,14 @@ te = p+1
|
|
1935
2059
|
self.emit(type, :script_unknown, text, ts-1, te)
|
1936
2060
|
|
1937
2061
|
else
|
1938
|
-
|
2062
|
+
# Should this really be an error? Or would emitting
|
2063
|
+
# an :unknown for the property be better?
|
2064
|
+
#
|
2065
|
+
# self.emit(type, :unknown, text, ts-1, te)
|
1939
2066
|
|
2067
|
+
raise UnknownUnicodePropertyError.new(name)
|
1940
2068
|
end
|
2069
|
+
|
1941
2070
|
begin
|
1942
2071
|
top -= 1
|
1943
2072
|
cs = stack[top]
|
@@ -1947,20 +2076,19 @@ te = p+1
|
|
1947
2076
|
|
1948
2077
|
end
|
1949
2078
|
end
|
1950
|
-
|
1951
|
-
|
1952
|
-
# line 126 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2079
|
+
when 60 then
|
2080
|
+
# line 143 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1953
2081
|
begin
|
1954
2082
|
te = p+1
|
1955
2083
|
begin
|
1956
2084
|
set_type = set_depth > 1 ? :subset : :set
|
1957
2085
|
set_depth -= 1; in_set = set_depth > 0 ? true : false
|
1958
2086
|
|
1959
|
-
|
2087
|
+
emit(set_type, :close, *text(data, ts, te))
|
1960
2088
|
|
1961
2089
|
if set_depth == 0
|
1962
2090
|
begin
|
1963
|
-
cs =
|
2091
|
+
cs = 132
|
1964
2092
|
_goto_level = _again
|
1965
2093
|
next
|
1966
2094
|
end
|
@@ -1976,21 +2104,20 @@ te = p+1
|
|
1976
2104
|
end
|
1977
2105
|
end
|
1978
2106
|
end
|
1979
|
-
|
1980
|
-
|
1981
|
-
# line 139 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2107
|
+
when 64 then
|
2108
|
+
# line 156 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
1982
2109
|
begin
|
1983
2110
|
te = p+1
|
1984
2111
|
begin # special case, emits two tokens
|
1985
2112
|
set_type = set_depth > 1 ? :subset : :set
|
1986
2113
|
set_depth -= 1; in_set = set_depth > 0 ? true : false
|
1987
2114
|
|
1988
|
-
|
1989
|
-
|
2115
|
+
emit(set_type, :member, copy(data, ts..te-2), ts, te)
|
2116
|
+
emit(set_type, :close, copy(data, ts+1..te-1), ts, te)
|
1990
2117
|
|
1991
2118
|
if set_depth == 0
|
1992
2119
|
begin
|
1993
|
-
cs =
|
2120
|
+
cs = 132
|
1994
2121
|
_goto_level = _again
|
1995
2122
|
next
|
1996
2123
|
end
|
@@ -2006,61 +2133,56 @@ te = p+1
|
|
2006
2133
|
end
|
2007
2134
|
end
|
2008
2135
|
end
|
2009
|
-
|
2010
|
-
|
2011
|
-
# line 153 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2136
|
+
when 61 then
|
2137
|
+
# line 170 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2012
2138
|
begin
|
2013
2139
|
te = p+1
|
2014
2140
|
begin
|
2015
|
-
text = data
|
2141
|
+
text = text(data, ts, te).first
|
2016
2142
|
if @tokens.last[1] == :open
|
2017
|
-
|
2143
|
+
emit(set_type, :negate, text, ts, te)
|
2018
2144
|
else
|
2019
|
-
|
2145
|
+
emit(set_type, :member, text, ts, te)
|
2020
2146
|
end
|
2021
2147
|
end
|
2022
2148
|
end
|
2023
|
-
|
2024
|
-
|
2025
|
-
# line 162 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2149
|
+
when 16 then
|
2150
|
+
# line 179 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2026
2151
|
begin
|
2027
2152
|
te = p+1
|
2028
2153
|
begin
|
2029
|
-
|
2154
|
+
emit(set_type, :range, *text(data, ts, te))
|
2030
2155
|
end
|
2031
2156
|
end
|
2032
|
-
|
2033
|
-
|
2034
|
-
# line 166 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2157
|
+
when 63 then
|
2158
|
+
# line 183 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2035
2159
|
begin
|
2036
2160
|
te = p+1
|
2037
2161
|
begin
|
2038
|
-
|
2162
|
+
emit(set_type, :intersection, *text(data, ts, te))
|
2039
2163
|
end
|
2040
2164
|
end
|
2041
|
-
|
2042
|
-
|
2043
|
-
# line 170 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2165
|
+
when 59 then
|
2166
|
+
# line 187 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2044
2167
|
begin
|
2045
2168
|
te = p+1
|
2046
2169
|
begin
|
2047
2170
|
begin
|
2048
2171
|
stack[top] = cs
|
2049
2172
|
top+= 1
|
2050
|
-
cs =
|
2173
|
+
cs = 157
|
2051
2174
|
_goto_level = _again
|
2052
2175
|
next
|
2053
2176
|
end
|
2054
2177
|
|
2055
2178
|
end
|
2056
2179
|
end
|
2057
|
-
|
2058
|
-
|
2059
|
-
# line 182 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2180
|
+
when 20 then
|
2181
|
+
# line 199 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2060
2182
|
begin
|
2061
2183
|
te = p+1
|
2062
2184
|
begin
|
2063
|
-
text = data
|
2185
|
+
text = text(data, ts, te).first
|
2064
2186
|
|
2065
2187
|
class_name = text[2..-3]
|
2066
2188
|
if class_name[0].chr == '^'
|
@@ -2068,110 +2190,101 @@ te = p+1
|
|
2068
2190
|
end
|
2069
2191
|
|
2070
2192
|
token_sym = "class_#{class_name}".to_sym
|
2071
|
-
|
2193
|
+
emit(set_type, token_sym, text, ts, te)
|
2072
2194
|
end
|
2073
2195
|
end
|
2074
|
-
|
2075
|
-
|
2076
|
-
# line 194 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2196
|
+
when 19 then
|
2197
|
+
# line 211 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2077
2198
|
begin
|
2078
2199
|
te = p+1
|
2079
2200
|
begin
|
2080
|
-
|
2201
|
+
emit(set_type, :collation, *text(data, ts, te))
|
2081
2202
|
end
|
2082
2203
|
end
|
2083
|
-
|
2084
|
-
|
2085
|
-
# line 198 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2204
|
+
when 21 then
|
2205
|
+
# line 215 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2086
2206
|
begin
|
2087
2207
|
te = p+1
|
2088
2208
|
begin
|
2089
|
-
|
2209
|
+
emit(set_type, :equivalent, *text(data, ts, te))
|
2090
2210
|
end
|
2091
2211
|
end
|
2092
|
-
|
2093
|
-
|
2094
|
-
# line 204 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2212
|
+
when 58 then
|
2213
|
+
# line 221 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2095
2214
|
begin
|
2096
2215
|
te = p+1
|
2097
2216
|
begin
|
2098
|
-
|
2217
|
+
emit(set_type, :member, *text(data, ts, te))
|
2099
2218
|
end
|
2100
2219
|
end
|
2101
|
-
|
2102
|
-
|
2103
|
-
# line 212 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2220
|
+
when 57 then
|
2221
|
+
# line 229 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2104
2222
|
begin
|
2105
2223
|
te = p+1
|
2106
2224
|
begin
|
2107
|
-
|
2225
|
+
emit(set_type, :member, *text(data, ts, te))
|
2108
2226
|
end
|
2109
2227
|
end
|
2110
|
-
|
2111
|
-
|
2112
|
-
# line 174 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2228
|
+
when 66 then
|
2229
|
+
# line 191 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2113
2230
|
begin
|
2114
2231
|
te = p
|
2115
2232
|
p = p - 1; begin
|
2116
2233
|
set_depth += 1; in_set = true
|
2117
2234
|
set_type = set_depth > 1 ? :subset : :set
|
2118
2235
|
|
2119
|
-
|
2236
|
+
emit(set_type, :open, *text(data, ts, te))
|
2120
2237
|
begin
|
2121
2238
|
stack[top] = cs
|
2122
2239
|
top+= 1
|
2123
|
-
cs =
|
2240
|
+
cs = 145
|
2124
2241
|
_goto_level = _again
|
2125
2242
|
next
|
2126
2243
|
end
|
2127
2244
|
|
2128
2245
|
end
|
2129
2246
|
end
|
2130
|
-
|
2131
|
-
|
2132
|
-
# line 212 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2247
|
+
when 62 then
|
2248
|
+
# line 229 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2133
2249
|
begin
|
2134
2250
|
te = p
|
2135
2251
|
p = p - 1; begin
|
2136
|
-
|
2252
|
+
emit(set_type, :member, *text(data, ts, te))
|
2137
2253
|
end
|
2138
2254
|
end
|
2139
|
-
|
2140
|
-
|
2141
|
-
# line 174 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2255
|
+
when 18 then
|
2256
|
+
# line 191 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2142
2257
|
begin
|
2143
2258
|
begin p = ((te))-1; end
|
2144
2259
|
begin
|
2145
2260
|
set_depth += 1; in_set = true
|
2146
2261
|
set_type = set_depth > 1 ? :subset : :set
|
2147
2262
|
|
2148
|
-
|
2263
|
+
emit(set_type, :open, *text(data, ts, te))
|
2149
2264
|
begin
|
2150
2265
|
stack[top] = cs
|
2151
2266
|
top+= 1
|
2152
|
-
cs =
|
2267
|
+
cs = 145
|
2153
2268
|
_goto_level = _again
|
2154
2269
|
next
|
2155
2270
|
end
|
2156
2271
|
|
2157
2272
|
end
|
2158
2273
|
end
|
2159
|
-
|
2160
|
-
|
2161
|
-
# line 212 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2274
|
+
when 14 then
|
2275
|
+
# line 229 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2162
2276
|
begin
|
2163
2277
|
begin p = ((te))-1; end
|
2164
2278
|
begin
|
2165
|
-
|
2279
|
+
emit(set_type, :member, *text(data, ts, te))
|
2166
2280
|
end
|
2167
2281
|
end
|
2168
|
-
|
2169
|
-
|
2170
|
-
# line 239 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2282
|
+
when 71 then
|
2283
|
+
# line 237 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2171
2284
|
begin
|
2172
2285
|
te = p+1
|
2173
2286
|
begin
|
2174
|
-
|
2287
|
+
emit(set_type, :backspace, *text(data, ts, te, 1))
|
2175
2288
|
begin
|
2176
2289
|
top -= 1
|
2177
2290
|
cs = stack[top]
|
@@ -2181,13 +2294,12 @@ te = p+1
|
|
2181
2294
|
|
2182
2295
|
end
|
2183
2296
|
end
|
2184
|
-
|
2185
|
-
|
2186
|
-
# line 249 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2297
|
+
when 75 then
|
2298
|
+
# line 256 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2187
2299
|
begin
|
2188
2300
|
te = p+1
|
2189
2301
|
begin
|
2190
|
-
|
2302
|
+
emit(set_type, :range_hex, *text(data, ts, te, 1))
|
2191
2303
|
begin
|
2192
2304
|
top -= 1
|
2193
2305
|
cs = stack[top]
|
@@ -2197,18 +2309,32 @@ te = p+1
|
|
2197
2309
|
|
2198
2310
|
end
|
2199
2311
|
end
|
2200
|
-
# line 249 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2201
2312
|
when 67 then
|
2202
|
-
# line
|
2313
|
+
# line 266 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2314
|
+
begin
|
2315
|
+
te = p+1
|
2316
|
+
begin
|
2317
|
+
emit(set_type, :escape, *text(data, ts, te, 1))
|
2318
|
+
begin
|
2319
|
+
top -= 1
|
2320
|
+
cs = stack[top]
|
2321
|
+
_goto_level = _again
|
2322
|
+
next
|
2323
|
+
end
|
2324
|
+
|
2325
|
+
end
|
2326
|
+
end
|
2327
|
+
when 70 then
|
2328
|
+
# line 271 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2203
2329
|
begin
|
2204
2330
|
te = p+1
|
2205
2331
|
begin
|
2206
2332
|
p = p - 1;
|
2207
|
-
cs =
|
2333
|
+
cs = 145;
|
2208
2334
|
begin
|
2209
2335
|
stack[top] = cs
|
2210
2336
|
top+= 1
|
2211
|
-
cs =
|
2337
|
+
cs = 144
|
2212
2338
|
_goto_level = _again
|
2213
2339
|
next
|
2214
2340
|
end
|
@@ -2222,13 +2348,12 @@ te = p+1
|
|
2222
2348
|
|
2223
2349
|
end
|
2224
2350
|
end
|
2225
|
-
|
2226
|
-
|
2227
|
-
# line 239 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2351
|
+
when 74 then
|
2352
|
+
# line 256 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2228
2353
|
begin
|
2229
2354
|
te = p
|
2230
2355
|
p = p - 1; begin
|
2231
|
-
|
2356
|
+
emit(set_type, :range_hex, *text(data, ts, te, 1))
|
2232
2357
|
begin
|
2233
2358
|
top -= 1
|
2234
2359
|
cs = stack[top]
|
@@ -2238,13 +2363,12 @@ p = p - 1; begin
|
|
2238
2363
|
|
2239
2364
|
end
|
2240
2365
|
end
|
2241
|
-
|
2242
|
-
|
2243
|
-
# line 244 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2366
|
+
when 73 then
|
2367
|
+
# line 261 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2244
2368
|
begin
|
2245
2369
|
te = p
|
2246
2370
|
p = p - 1; begin
|
2247
|
-
|
2371
|
+
emit(set_type, :member_hex, *text(data, ts, te, 1))
|
2248
2372
|
begin
|
2249
2373
|
top -= 1
|
2250
2374
|
cs = stack[top]
|
@@ -2254,13 +2378,12 @@ p = p - 1; begin
|
|
2254
2378
|
|
2255
2379
|
end
|
2256
2380
|
end
|
2257
|
-
|
2258
|
-
|
2259
|
-
# line 266 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2381
|
+
when 72 then
|
2382
|
+
# line 283 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2260
2383
|
begin
|
2261
2384
|
te = p
|
2262
2385
|
p = p - 1; begin
|
2263
|
-
|
2386
|
+
emit(set_type, :escape, *text(data, ts, te, 1))
|
2264
2387
|
begin
|
2265
2388
|
top -= 1
|
2266
2389
|
cs = stack[top]
|
@@ -2270,13 +2393,12 @@ p = p - 1; begin
|
|
2270
2393
|
|
2271
2394
|
end
|
2272
2395
|
end
|
2273
|
-
|
2274
|
-
|
2275
|
-
# line 244 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2396
|
+
when 24 then
|
2397
|
+
# line 261 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2276
2398
|
begin
|
2277
2399
|
begin p = ((te))-1; end
|
2278
2400
|
begin
|
2279
|
-
|
2401
|
+
emit(set_type, :member_hex, *text(data, ts, te, 1))
|
2280
2402
|
begin
|
2281
2403
|
top -= 1
|
2282
2404
|
cs = stack[top]
|
@@ -2286,9 +2408,8 @@ p = p - 1; begin
|
|
2286
2408
|
|
2287
2409
|
end
|
2288
2410
|
end
|
2289
|
-
|
2290
|
-
|
2291
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2411
|
+
when 22 then
|
2412
|
+
# line 1 "NONE"
|
2292
2413
|
begin
|
2293
2414
|
case act
|
2294
2415
|
when 0 then
|
@@ -2298,30 +2419,18 @@ p = p - 1; begin
|
|
2298
2419
|
next
|
2299
2420
|
end
|
2300
2421
|
end
|
2301
|
-
when 14 then
|
2302
|
-
begin begin p = ((te))-1; end
|
2303
|
-
|
2304
|
-
self.emit(set_type, :backspace, data[ts-1..te-1].pack('c*'), ts-1, te)
|
2305
|
-
begin
|
2306
|
-
top -= 1
|
2307
|
-
cs = stack[top]
|
2308
|
-
_goto_level = _again
|
2309
|
-
next
|
2310
|
-
end
|
2311
|
-
|
2312
|
-
end
|
2313
2422
|
when 15 then
|
2314
2423
|
begin begin p = ((te))-1; end
|
2315
2424
|
|
2316
|
-
case text = data
|
2317
|
-
when '\d';
|
2318
|
-
when '\D';
|
2319
|
-
when '\h';
|
2320
|
-
when '\H';
|
2321
|
-
when '\s';
|
2322
|
-
when '\S';
|
2323
|
-
when '\w';
|
2324
|
-
when '\W';
|
2425
|
+
case text = text(data, ts, te, 1).first
|
2426
|
+
when '\d'; emit(set_type, :type_digit, text, ts-1, te)
|
2427
|
+
when '\D'; emit(set_type, :type_nondigit, text, ts-1, te)
|
2428
|
+
when '\h'; emit(set_type, :type_hex, text, ts-1, te)
|
2429
|
+
when '\H'; emit(set_type, :type_nonhex, text, ts-1, te)
|
2430
|
+
when '\s'; emit(set_type, :type_space, text, ts-1, te)
|
2431
|
+
when '\S'; emit(set_type, :type_nonspace, text, ts-1, te)
|
2432
|
+
when '\w'; emit(set_type, :type_word, text, ts-1, te)
|
2433
|
+
when '\W'; emit(set_type, :type_nonword, text, ts-1, te)
|
2325
2434
|
end
|
2326
2435
|
begin
|
2327
2436
|
top -= 1
|
@@ -2334,7 +2443,7 @@ end
|
|
2334
2443
|
when 18 then
|
2335
2444
|
begin begin p = ((te))-1; end
|
2336
2445
|
|
2337
|
-
|
2446
|
+
emit(set_type, :escape, *text(data, ts, te, 1))
|
2338
2447
|
begin
|
2339
2448
|
top -= 1
|
2340
2449
|
cs = stack[top]
|
@@ -2346,7 +2455,7 @@ end
|
|
2346
2455
|
when 20 then
|
2347
2456
|
begin begin p = ((te))-1; end
|
2348
2457
|
|
2349
|
-
|
2458
|
+
emit(set_type, :escape, *text(data, ts, te, 1))
|
2350
2459
|
begin
|
2351
2460
|
top -= 1
|
2352
2461
|
cs = stack[top]
|
@@ -2357,14 +2466,13 @@ end
|
|
2357
2466
|
end
|
2358
2467
|
end
|
2359
2468
|
end
|
2360
|
-
|
2361
|
-
|
2362
|
-
# line 276 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2469
|
+
when 80 then
|
2470
|
+
# line 293 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2363
2471
|
begin
|
2364
2472
|
te = p+1
|
2365
2473
|
begin
|
2366
|
-
text = data
|
2367
|
-
|
2474
|
+
text = text(data, ts, te, 1).first
|
2475
|
+
emit(:backref, :number, text, ts-1, te)
|
2368
2476
|
begin
|
2369
2477
|
top -= 1
|
2370
2478
|
cs = stack[top]
|
@@ -2374,13 +2482,12 @@ te = p+1
|
|
2374
2482
|
|
2375
2483
|
end
|
2376
2484
|
end
|
2377
|
-
|
2378
|
-
|
2379
|
-
# line 282 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2485
|
+
when 85 then
|
2486
|
+
# line 299 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2380
2487
|
begin
|
2381
2488
|
te = p+1
|
2382
2489
|
begin
|
2383
|
-
|
2490
|
+
emit(:escape, :octal, *text(data, ts, te, 1))
|
2384
2491
|
begin
|
2385
2492
|
top -= 1
|
2386
2493
|
cs = stack[top]
|
@@ -2390,28 +2497,27 @@ te = p+1
|
|
2390
2497
|
|
2391
2498
|
end
|
2392
2499
|
end
|
2393
|
-
|
2394
|
-
|
2395
|
-
# line 287 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2500
|
+
when 77 then
|
2501
|
+
# line 304 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2396
2502
|
begin
|
2397
2503
|
te = p+1
|
2398
2504
|
begin
|
2399
|
-
case text = data
|
2400
|
-
when '\.';
|
2401
|
-
when '\|';
|
2402
|
-
when '\^';
|
2403
|
-
when '\$';
|
2404
|
-
when '\?';
|
2405
|
-
when '\*';
|
2406
|
-
when '\+';
|
2407
|
-
when '\(';
|
2408
|
-
when '\)';
|
2409
|
-
when '\{';
|
2410
|
-
when '\}';
|
2411
|
-
when '\[';
|
2412
|
-
when '\]';
|
2505
|
+
case text = text(data, ts, te, 1).first
|
2506
|
+
when '\.'; emit(:escape, :dot, text, ts-1, te)
|
2507
|
+
when '\|'; emit(:escape, :alternation, text, ts-1, te)
|
2508
|
+
when '\^'; emit(:escape, :bol, text, ts-1, te)
|
2509
|
+
when '\$'; emit(:escape, :eol, text, ts-1, te)
|
2510
|
+
when '\?'; emit(:escape, :zero_or_one, text, ts-1, te)
|
2511
|
+
when '\*'; emit(:escape, :zero_or_more, text, ts-1, te)
|
2512
|
+
when '\+'; emit(:escape, :one_or_more, text, ts-1, te)
|
2513
|
+
when '\('; emit(:escape, :group_open, text, ts-1, te)
|
2514
|
+
when '\)'; emit(:escape, :group_close, text, ts-1, te)
|
2515
|
+
when '\{'; emit(:escape, :interval_open, text, ts-1, te)
|
2516
|
+
when '\}'; emit(:escape, :interval_close, text, ts-1, te)
|
2517
|
+
when '\['; emit(:escape, :set_open, text, ts-1, te)
|
2518
|
+
when '\]'; emit(:escape, :set_close, text, ts-1, te)
|
2413
2519
|
when "\\\\";
|
2414
|
-
|
2520
|
+
emit(:escape, :backslash, text, ts-1, te)
|
2415
2521
|
end
|
2416
2522
|
begin
|
2417
2523
|
top -= 1
|
@@ -2422,23 +2528,22 @@ te = p+1
|
|
2422
2528
|
|
2423
2529
|
end
|
2424
2530
|
end
|
2425
|
-
|
2426
|
-
|
2427
|
-
# line 308 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2531
|
+
when 82 then
|
2532
|
+
# line 325 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2428
2533
|
begin
|
2429
2534
|
te = p+1
|
2430
2535
|
begin
|
2431
2536
|
# \b is emitted as backspace only when inside a character set, otherwise
|
2432
2537
|
# it is a word boundary anchor. A syntax might "normalize" it if needed.
|
2433
|
-
case text = data
|
2434
|
-
when '\a';
|
2435
|
-
when '\e';
|
2436
|
-
when '\f';
|
2437
|
-
when '\n';
|
2438
|
-
when '\r';
|
2439
|
-
when '\s';
|
2440
|
-
when '\t';
|
2441
|
-
when '\v';
|
2538
|
+
case text = text(data, ts, te, 1).first
|
2539
|
+
when '\a'; emit(:escape, :bell, text, ts-1, te)
|
2540
|
+
when '\e'; emit(:escape, :escape, text, ts-1, te)
|
2541
|
+
when '\f'; emit(:escape, :form_feed, text, ts-1, te)
|
2542
|
+
when '\n'; emit(:escape, :newline, text, ts-1, te)
|
2543
|
+
when '\r'; emit(:escape, :carriage, text, ts-1, te)
|
2544
|
+
when '\s'; emit(:escape, :space, text, ts-1, te)
|
2545
|
+
when '\t'; emit(:escape, :tab, text, ts-1, te)
|
2546
|
+
when '\v'; emit(:escape, :vertical_tab, text, ts-1, te)
|
2442
2547
|
end
|
2443
2548
|
begin
|
2444
2549
|
top -= 1
|
@@ -2449,17 +2554,16 @@ te = p+1
|
|
2449
2554
|
|
2450
2555
|
end
|
2451
2556
|
end
|
2452
|
-
|
2453
|
-
|
2454
|
-
# line 324 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2557
|
+
when 29 then
|
2558
|
+
# line 341 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2455
2559
|
begin
|
2456
2560
|
te = p+1
|
2457
2561
|
begin
|
2458
|
-
text = data
|
2562
|
+
text = text(data, ts, te, 1).first
|
2459
2563
|
if text[2].chr == '{'
|
2460
|
-
|
2564
|
+
emit(:escape, :codepoint_list, text, ts-1, te)
|
2461
2565
|
else
|
2462
|
-
|
2566
|
+
emit(:escape, :codepoint, text, ts-1, te)
|
2463
2567
|
end
|
2464
2568
|
begin
|
2465
2569
|
top -= 1
|
@@ -2470,13 +2574,12 @@ te = p+1
|
|
2470
2574
|
|
2471
2575
|
end
|
2472
2576
|
end
|
2473
|
-
|
2474
|
-
|
2475
|
-
# line 334 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2577
|
+
when 90 then
|
2578
|
+
# line 351 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2476
2579
|
begin
|
2477
2580
|
te = p+1
|
2478
2581
|
begin
|
2479
|
-
|
2582
|
+
emit(:escape, :hex, *text(data, ts, te, 1))
|
2480
2583
|
begin
|
2481
2584
|
top -= 1
|
2482
2585
|
cs = stack[top]
|
@@ -2486,13 +2589,12 @@ te = p+1
|
|
2486
2589
|
|
2487
2590
|
end
|
2488
2591
|
end
|
2489
|
-
|
2490
|
-
|
2491
|
-
# line 339 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2592
|
+
when 93 then
|
2593
|
+
# line 356 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2492
2594
|
begin
|
2493
2595
|
te = p+1
|
2494
2596
|
begin
|
2495
|
-
|
2597
|
+
emit(:escape, :hex_wide, *text(data, ts, te, 1))
|
2496
2598
|
begin
|
2497
2599
|
top -= 1
|
2498
2600
|
cs = stack[top]
|
@@ -2502,13 +2604,12 @@ te = p+1
|
|
2502
2604
|
|
2503
2605
|
end
|
2504
2606
|
end
|
2505
|
-
|
2506
|
-
|
2507
|
-
# line 344 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2607
|
+
when 31 then
|
2608
|
+
# line 365 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2508
2609
|
begin
|
2509
2610
|
te = p+1
|
2510
2611
|
begin
|
2511
|
-
|
2612
|
+
raise InvalidSequenceError.new("wide hex sequence")
|
2512
2613
|
begin
|
2513
2614
|
top -= 1
|
2514
2615
|
cs = stack[top]
|
@@ -2518,27 +2619,67 @@ te = p+1
|
|
2518
2619
|
|
2519
2620
|
end
|
2520
2621
|
end
|
2521
|
-
# line 344 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2522
2622
|
when 25 then
|
2523
|
-
# line
|
2623
|
+
# line 370 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2524
2624
|
begin
|
2525
2625
|
te = p+1
|
2526
2626
|
begin
|
2527
|
-
|
2627
|
+
if data[te]
|
2628
|
+
c = data[te].chr
|
2629
|
+
if c =~ /[\x00-\x7F]/
|
2630
|
+
emit(:escape, :control, copy(data, ts-1..te), ts-1, te+1)
|
2631
|
+
p += 1
|
2632
|
+
else
|
2633
|
+
raise InvalidSequenceError.new("control sequence")
|
2634
|
+
end
|
2635
|
+
else
|
2636
|
+
raise PrematureEndError.new("control sequence")
|
2637
|
+
end
|
2638
|
+
begin
|
2639
|
+
top -= 1
|
2640
|
+
cs = stack[top]
|
2641
|
+
_goto_level = _again
|
2642
|
+
next
|
2643
|
+
end
|
2644
|
+
|
2528
2645
|
end
|
2529
2646
|
end
|
2530
|
-
|
2531
|
-
|
2532
|
-
|
2647
|
+
when 28 then
|
2648
|
+
# line 385 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2649
|
+
begin
|
2650
|
+
te = p+1
|
2651
|
+
begin
|
2652
|
+
if data[te]
|
2653
|
+
c = data[te].chr
|
2654
|
+
if c =~ /[\x00-\x7F]/
|
2655
|
+
emit(:escape, :meta_sequence, copy(data, ts-1..te), ts-1, te+1)
|
2656
|
+
p += 1
|
2657
|
+
else
|
2658
|
+
raise InvalidSequenceError.new("meta sequence")
|
2659
|
+
end
|
2660
|
+
else
|
2661
|
+
raise PrematureEndError.new("meta sequence")
|
2662
|
+
end
|
2663
|
+
begin
|
2664
|
+
top -= 1
|
2665
|
+
cs = stack[top]
|
2666
|
+
_goto_level = _again
|
2667
|
+
next
|
2668
|
+
end
|
2669
|
+
|
2670
|
+
end
|
2671
|
+
end
|
2672
|
+
when 81 then
|
2673
|
+
# line 400 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2533
2674
|
begin
|
2534
2675
|
te = p+1
|
2535
2676
|
begin
|
2536
2677
|
p = p - 1;
|
2537
|
-
cs =
|
2678
|
+
cs = 132;
|
2538
2679
|
begin
|
2539
2680
|
stack[top] = cs
|
2540
2681
|
top+= 1
|
2541
|
-
cs =
|
2682
|
+
cs = 144
|
2542
2683
|
_goto_level = _again
|
2543
2684
|
next
|
2544
2685
|
end
|
@@ -2551,13 +2692,12 @@ te = p+1
|
|
2551
2692
|
|
2552
2693
|
end
|
2553
2694
|
end
|
2554
|
-
|
2555
|
-
|
2556
|
-
# line 359 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2695
|
+
when 76 then
|
2696
|
+
# line 406 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2557
2697
|
begin
|
2558
2698
|
te = p+1
|
2559
2699
|
begin
|
2560
|
-
|
2700
|
+
emit(:escape, :literal, *text(data, ts, te, 1))
|
2561
2701
|
begin
|
2562
2702
|
top -= 1
|
2563
2703
|
cs = stack[top]
|
@@ -2567,13 +2707,12 @@ te = p+1
|
|
2567
2707
|
|
2568
2708
|
end
|
2569
2709
|
end
|
2570
|
-
|
2571
|
-
|
2572
|
-
# line 282 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2710
|
+
when 84 then
|
2711
|
+
# line 299 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2573
2712
|
begin
|
2574
2713
|
te = p
|
2575
2714
|
p = p - 1; begin
|
2576
|
-
|
2715
|
+
emit(:escape, :octal, *text(data, ts, te, 1))
|
2577
2716
|
begin
|
2578
2717
|
top -= 1
|
2579
2718
|
cs = stack[top]
|
@@ -2583,13 +2722,12 @@ p = p - 1; begin
|
|
2583
2722
|
|
2584
2723
|
end
|
2585
2724
|
end
|
2586
|
-
|
2587
|
-
|
2588
|
-
# line 334 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2725
|
+
when 89 then
|
2726
|
+
# line 351 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2589
2727
|
begin
|
2590
2728
|
te = p
|
2591
2729
|
p = p - 1; begin
|
2592
|
-
|
2730
|
+
emit(:escape, :hex, *text(data, ts, te, 1))
|
2593
2731
|
begin
|
2594
2732
|
top -= 1
|
2595
2733
|
cs = stack[top]
|
@@ -2599,16 +2737,95 @@ p = p - 1; begin
|
|
2599
2737
|
|
2600
2738
|
end
|
2601
2739
|
end
|
2602
|
-
|
2603
|
-
|
2604
|
-
|
2740
|
+
when 91 then
|
2741
|
+
# line 365 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2742
|
+
begin
|
2743
|
+
te = p
|
2744
|
+
p = p - 1; begin
|
2745
|
+
raise InvalidSequenceError.new("wide hex sequence")
|
2746
|
+
begin
|
2747
|
+
top -= 1
|
2748
|
+
cs = stack[top]
|
2749
|
+
_goto_level = _again
|
2750
|
+
next
|
2751
|
+
end
|
2752
|
+
|
2753
|
+
end
|
2754
|
+
end
|
2755
|
+
when 87 then
|
2756
|
+
# line 385 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2757
|
+
begin
|
2758
|
+
te = p
|
2759
|
+
p = p - 1; begin
|
2760
|
+
if data[te]
|
2761
|
+
c = data[te].chr
|
2762
|
+
if c =~ /[\x00-\x7F]/
|
2763
|
+
emit(:escape, :meta_sequence, copy(data, ts-1..te), ts-1, te+1)
|
2764
|
+
p += 1
|
2765
|
+
else
|
2766
|
+
raise InvalidSequenceError.new("meta sequence")
|
2767
|
+
end
|
2768
|
+
else
|
2769
|
+
raise PrematureEndError.new("meta sequence")
|
2770
|
+
end
|
2771
|
+
begin
|
2772
|
+
top -= 1
|
2773
|
+
cs = stack[top]
|
2774
|
+
_goto_level = _again
|
2775
|
+
next
|
2776
|
+
end
|
2777
|
+
|
2778
|
+
end
|
2779
|
+
end
|
2780
|
+
when 32 then
|
2781
|
+
# line 365 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2782
|
+
begin
|
2783
|
+
begin p = ((te))-1; end
|
2784
|
+
begin
|
2785
|
+
raise InvalidSequenceError.new("wide hex sequence")
|
2786
|
+
begin
|
2787
|
+
top -= 1
|
2788
|
+
cs = stack[top]
|
2789
|
+
_goto_level = _again
|
2790
|
+
next
|
2791
|
+
end
|
2792
|
+
|
2793
|
+
end
|
2794
|
+
end
|
2795
|
+
when 27 then
|
2796
|
+
# line 385 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2797
|
+
begin
|
2798
|
+
begin p = ((te))-1; end
|
2799
|
+
begin
|
2800
|
+
if data[te]
|
2801
|
+
c = data[te].chr
|
2802
|
+
if c =~ /[\x00-\x7F]/
|
2803
|
+
emit(:escape, :meta_sequence, copy(data, ts-1..te), ts-1, te+1)
|
2804
|
+
p += 1
|
2805
|
+
else
|
2806
|
+
raise InvalidSequenceError.new("meta sequence")
|
2807
|
+
end
|
2808
|
+
else
|
2809
|
+
raise PrematureEndError.new("meta sequence")
|
2810
|
+
end
|
2811
|
+
begin
|
2812
|
+
top -= 1
|
2813
|
+
cs = stack[top]
|
2814
|
+
_goto_level = _again
|
2815
|
+
next
|
2816
|
+
end
|
2817
|
+
|
2818
|
+
end
|
2819
|
+
end
|
2820
|
+
when 83 then
|
2821
|
+
# line 1 "NONE"
|
2605
2822
|
begin
|
2606
2823
|
case act
|
2607
2824
|
when 21 then
|
2608
2825
|
begin begin p = ((te))-1; end
|
2609
2826
|
|
2610
|
-
text = data
|
2611
|
-
|
2827
|
+
text = text(data, ts, te, 1).first
|
2828
|
+
emit(:backref, :number, text, ts-1, te)
|
2612
2829
|
begin
|
2613
2830
|
top -= 1
|
2614
2831
|
cs = stack[top]
|
@@ -2620,7 +2837,7 @@ p = p - 1; begin
|
|
2620
2837
|
when 22 then
|
2621
2838
|
begin begin p = ((te))-1; end
|
2622
2839
|
|
2623
|
-
|
2840
|
+
emit(:escape, :octal, *text(data, ts, te, 1))
|
2624
2841
|
begin
|
2625
2842
|
top -= 1
|
2626
2843
|
cs = stack[top]
|
@@ -2631,411 +2848,359 @@ p = p - 1; begin
|
|
2631
2848
|
end
|
2632
2849
|
end
|
2633
2850
|
end
|
2634
|
-
|
2635
|
-
|
2636
|
-
# line 372 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2851
|
+
when 38 then
|
2852
|
+
# line 419 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2637
2853
|
begin
|
2638
2854
|
te = p+1
|
2639
2855
|
begin
|
2640
|
-
|
2856
|
+
emit(:meta, :dot, *text(data, ts, te))
|
2641
2857
|
end
|
2642
2858
|
end
|
2643
|
-
|
2644
|
-
|
2645
|
-
# line 376 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2859
|
+
when 41 then
|
2860
|
+
# line 423 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2646
2861
|
begin
|
2647
2862
|
te = p+1
|
2648
2863
|
begin
|
2649
|
-
|
2864
|
+
emit(:meta, :alternation, *text(data, ts, te))
|
2650
2865
|
end
|
2651
2866
|
end
|
2652
|
-
|
2653
|
-
|
2654
|
-
# line 382 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2867
|
+
when 40 then
|
2868
|
+
# line 429 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2655
2869
|
begin
|
2656
2870
|
te = p+1
|
2657
2871
|
begin
|
2658
|
-
|
2872
|
+
emit(:anchor, :bol, *text(data, ts, te))
|
2659
2873
|
end
|
2660
2874
|
end
|
2661
|
-
|
2662
|
-
|
2663
|
-
# line 386 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2875
|
+
when 35 then
|
2876
|
+
# line 433 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2664
2877
|
begin
|
2665
2878
|
te = p+1
|
2666
2879
|
begin
|
2667
|
-
|
2880
|
+
emit(:anchor, :eol, *text(data, ts, te))
|
2668
2881
|
end
|
2669
2882
|
end
|
2670
|
-
|
2671
|
-
|
2672
|
-
# line 390 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2883
|
+
when 52 then
|
2884
|
+
# line 437 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2673
2885
|
begin
|
2674
2886
|
te = p+1
|
2675
2887
|
begin
|
2676
|
-
case text = data
|
2677
|
-
when '\\A';
|
2678
|
-
when '\\z';
|
2679
|
-
when '\\Z';
|
2680
|
-
when '\\b';
|
2681
|
-
when '\\B';
|
2682
|
-
when '\\G';
|
2683
|
-
else
|
2888
|
+
case text = text(data, ts, te).first
|
2889
|
+
when '\\A'; emit(:anchor, :bos, text, ts, te)
|
2890
|
+
when '\\z'; emit(:anchor, :eos, text, ts, te)
|
2891
|
+
when '\\Z'; emit(:anchor, :eos_ob_eol, text, ts, te)
|
2892
|
+
when '\\b'; emit(:anchor, :word_boundary, text, ts, te)
|
2893
|
+
when '\\B'; emit(:anchor, :nonword_boundary, text, ts, te)
|
2894
|
+
when '\\G'; emit(:anchor, :match_start, text, ts, te)
|
2895
|
+
else
|
2896
|
+
raise ScannerError.new(
|
2897
|
+
"Unexpected character in anchor at #{text} (char #{ts})")
|
2684
2898
|
end
|
2685
2899
|
end
|
2686
2900
|
end
|
2687
|
-
|
2688
|
-
|
2689
|
-
# line 408 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2901
|
+
when 53 then
|
2902
|
+
# line 457 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2690
2903
|
begin
|
2691
2904
|
te = p+1
|
2692
2905
|
begin
|
2693
|
-
case text = data
|
2694
|
-
when '\\d';
|
2695
|
-
when '\\D';
|
2696
|
-
when '\\h';
|
2697
|
-
when '\\H';
|
2698
|
-
when '\\s';
|
2699
|
-
when '\\S';
|
2700
|
-
when '\\w';
|
2701
|
-
when '\\W';
|
2906
|
+
case text = text(data, ts, te).first
|
2907
|
+
when '\\d'; emit(:type, :digit, text, ts, te)
|
2908
|
+
when '\\D'; emit(:type, :nondigit, text, ts, te)
|
2909
|
+
when '\\h'; emit(:type, :hex, text, ts, te)
|
2910
|
+
when '\\H'; emit(:type, :nonhex, text, ts, te)
|
2911
|
+
when '\\s'; emit(:type, :space, text, ts, te)
|
2912
|
+
when '\\S'; emit(:type, :nonspace, text, ts, te)
|
2913
|
+
when '\\w'; emit(:type, :word, text, ts, te)
|
2914
|
+
when '\\W'; emit(:type, :nonword, text, ts, te)
|
2915
|
+
else
|
2916
|
+
raise ScannerError.new(
|
2917
|
+
"Unexpected character in type at #{text} (char #{ts})")
|
2702
2918
|
end
|
2703
2919
|
end
|
2704
2920
|
end
|
2705
|
-
|
2706
|
-
|
2707
|
-
# line 424 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2921
|
+
when 39 then
|
2922
|
+
# line 476 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2708
2923
|
begin
|
2709
2924
|
te = p+1
|
2710
2925
|
begin
|
2711
2926
|
set_depth += 1; in_set = true
|
2712
2927
|
set_type = set_depth > 1 ? :subset : :set
|
2713
2928
|
|
2714
|
-
|
2929
|
+
emit(set_type, :open, *text(data, ts, te))
|
2715
2930
|
begin
|
2716
2931
|
stack[top] = cs
|
2717
2932
|
top+= 1
|
2718
|
-
cs =
|
2933
|
+
cs = 145
|
2719
2934
|
_goto_level = _again
|
2720
2935
|
next
|
2721
2936
|
end
|
2722
2937
|
|
2723
2938
|
end
|
2724
2939
|
end
|
2725
|
-
|
2726
|
-
|
2727
|
-
# line 449 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2940
|
+
when 6 then
|
2941
|
+
# line 501 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2728
2942
|
begin
|
2729
2943
|
te = p+1
|
2730
2944
|
begin
|
2731
|
-
|
2732
|
-
if data[te]
|
2733
|
-
c = data[te].chr
|
2734
|
-
if c == ':' # include the ':'
|
2735
|
-
self.emit(:group, :options, data[ts..te].pack('c*'), ts, te+1)
|
2736
|
-
p += 1
|
2737
|
-
elsif c == ')' # just options by themselves
|
2738
|
-
self.emit(:group, :options, data[ts..te-1].pack('c*'), ts, te)
|
2739
|
-
else
|
2740
|
-
raise ScannerError.new(
|
2741
|
-
"Unexpected '#{c}' in options sequence, ':' or ')' expected")
|
2742
|
-
end
|
2743
|
-
else
|
2744
|
-
raise PrematureEndError.new("options") unless data[te]
|
2745
|
-
end
|
2945
|
+
p = scan_options(p, data, ts, te)
|
2746
2946
|
end
|
2747
2947
|
end
|
2748
|
-
|
2749
|
-
|
2750
|
-
# line 473 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2948
|
+
when 4 then
|
2949
|
+
# line 511 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2751
2950
|
begin
|
2752
2951
|
te = p+1
|
2753
2952
|
begin
|
2754
|
-
case text =
|
2755
|
-
when '(?=';
|
2756
|
-
when '(?!';
|
2757
|
-
when '(?<=';
|
2758
|
-
when '(?<!';
|
2953
|
+
case text = text(data, ts, te).first
|
2954
|
+
when '(?='; emit(:assertion, :lookahead, text, ts, te)
|
2955
|
+
when '(?!'; emit(:assertion, :nlookahead, text, ts, te)
|
2956
|
+
when '(?<='; emit(:assertion, :lookbehind, text, ts, te)
|
2957
|
+
when '(?<!'; emit(:assertion, :nlookbehind, text, ts, te)
|
2759
2958
|
end
|
2760
2959
|
end
|
2761
2960
|
end
|
2762
|
-
|
2763
|
-
|
2764
|
-
# line 489 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2961
|
+
when 7 then
|
2962
|
+
# line 527 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2765
2963
|
begin
|
2766
2964
|
te = p+1
|
2767
2965
|
begin
|
2768
|
-
case text =
|
2769
|
-
when '(?:';
|
2770
|
-
when '(?>';
|
2771
|
-
|
2772
|
-
when
|
2773
|
-
|
2774
|
-
|
2775
|
-
|
2966
|
+
case text = text(data, ts, te).first
|
2967
|
+
when '(?:'; emit(:group, :passive, text, ts, te)
|
2968
|
+
when '(?>'; emit(:group, :atomic, text, ts, te)
|
2969
|
+
|
2970
|
+
when /^\(\?<(\w*)>/
|
2971
|
+
empty_name_error(:group, 'named group (ab)') if $1.empty?
|
2972
|
+
|
2973
|
+
emit(:group, :named_ab, text, ts, te)
|
2974
|
+
|
2975
|
+
when /^\(\?'(\w*)'/
|
2976
|
+
empty_name_error(:group, 'named group (sq)') if $1.empty?
|
2977
|
+
|
2978
|
+
emit(:group, :named_sq, text, ts, te)
|
2979
|
+
|
2980
|
+
else
|
2981
|
+
raise ScannerError.new(
|
2982
|
+
"Unknown subexpression group format '#{text}'")
|
2776
2983
|
end
|
2777
2984
|
end
|
2778
2985
|
end
|
2779
|
-
|
2780
|
-
|
2781
|
-
# line 513 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2986
|
+
when 10 then
|
2987
|
+
# line 560 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2782
2988
|
begin
|
2783
2989
|
te = p+1
|
2784
2990
|
begin
|
2785
|
-
case text = data
|
2786
|
-
when
|
2991
|
+
case text = text(data, ts, te).first
|
2992
|
+
when /^\\([gk])<>/ # angle brackets
|
2993
|
+
empty_backref_error("ref/call (ab)")
|
2994
|
+
|
2995
|
+
when /^\\([gk])''/ # single quotes
|
2996
|
+
empty_backref_error("ref/call (sq)")
|
2997
|
+
|
2998
|
+
when /^\\([gk])<[^\d-](\w+)?>/ # angle-brackets
|
2787
2999
|
if $1 == 'k'
|
2788
|
-
|
3000
|
+
emit(:backref, :name_ref_ab, text, ts, te)
|
2789
3001
|
else
|
2790
|
-
|
3002
|
+
emit(:backref, :name_call_ab, text, ts, te)
|
2791
3003
|
end
|
2792
3004
|
|
2793
|
-
when
|
3005
|
+
when /^\\([gk])'[^\d-](\w+)?'/ #single quotes
|
2794
3006
|
if $1 == 'k'
|
2795
|
-
|
3007
|
+
emit(:backref, :name_ref_sq, text, ts, te)
|
2796
3008
|
else
|
2797
|
-
|
3009
|
+
emit(:backref, :name_call_sq, text, ts, te)
|
2798
3010
|
end
|
2799
3011
|
|
2800
|
-
when
|
3012
|
+
when /^\\([gk])<\d+>/ # angle-brackets
|
2801
3013
|
if $1 == 'k'
|
2802
|
-
|
3014
|
+
emit(:backref, :number_ref_ab, text, ts, te)
|
2803
3015
|
else
|
2804
|
-
|
3016
|
+
emit(:backref, :number_call_ab, text, ts, te)
|
2805
3017
|
end
|
2806
3018
|
|
2807
|
-
when
|
3019
|
+
when /^\\([gk])'\d+'/ # single quotes
|
2808
3020
|
if $1 == 'k'
|
2809
|
-
|
3021
|
+
emit(:backref, :number_ref_sq, text, ts, te)
|
2810
3022
|
else
|
2811
|
-
|
3023
|
+
emit(:backref, :number_call_sq, text, ts, te)
|
2812
3024
|
end
|
2813
3025
|
|
2814
|
-
when
|
3026
|
+
when /^\\([gk])<-\d+>/ # angle-brackets
|
2815
3027
|
if $1 == 'k'
|
2816
|
-
|
3028
|
+
emit(:backref, :number_rel_ref_ab, text, ts, te)
|
2817
3029
|
else
|
2818
|
-
|
3030
|
+
emit(:backref, :number_rel_call_ab, text, ts, te)
|
2819
3031
|
end
|
2820
3032
|
|
2821
|
-
when
|
3033
|
+
when /^\\([gk])'-\d+'/ # single quotes
|
2822
3034
|
if $1 == 'k'
|
2823
|
-
|
3035
|
+
emit(:backref, :number_rel_ref_sq, text, ts, te)
|
2824
3036
|
else
|
2825
|
-
|
3037
|
+
emit(:backref, :number_rel_call_sq, text, ts, te)
|
2826
3038
|
end
|
2827
3039
|
|
2828
|
-
when
|
2829
|
-
|
3040
|
+
when /^\\k<[^\d-](\w+)?[+\-]\d+>/ # angle-brackets
|
3041
|
+
emit(:backref, :name_nest_ref_ab, text, ts, te)
|
2830
3042
|
|
2831
|
-
when
|
2832
|
-
|
3043
|
+
when /^\\k'[^\d-](\w+)?[+\-]\d+'/ # single-quotes
|
3044
|
+
emit(:backref, :name_nest_ref_sq, text, ts, te)
|
2833
3045
|
|
2834
|
-
when
|
2835
|
-
|
3046
|
+
when /^\\([gk])<\d+[+\-]\d+>/ # angle-brackets
|
3047
|
+
emit(:backref, :number_nest_ref_ab, text, ts, te)
|
2836
3048
|
|
2837
|
-
when
|
2838
|
-
|
3049
|
+
when /^\\([gk])'\d+[+\-]\d+'/ # single-quotes
|
3050
|
+
emit(:backref, :number_nest_ref_sq, text, ts, te)
|
2839
3051
|
|
3052
|
+
else
|
3053
|
+
raise ScannerError.new(
|
3054
|
+
"Unknown backreference format '#{text}'")
|
2840
3055
|
end
|
2841
3056
|
end
|
2842
3057
|
end
|
2843
|
-
|
2844
|
-
|
2845
|
-
# line 575 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3058
|
+
when 50 then
|
3059
|
+
# line 631 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2846
3060
|
begin
|
2847
3061
|
te = p+1
|
2848
3062
|
begin
|
2849
|
-
case text =
|
2850
|
-
when '?' ;
|
2851
|
-
when '??';
|
2852
|
-
when '?+';
|
3063
|
+
case text = text(data, ts, te).first
|
3064
|
+
when '?' ; emit(:quantifier, :zero_or_one, text, ts, te)
|
3065
|
+
when '??'; emit(:quantifier, :zero_or_one_reluctant, text, ts, te)
|
3066
|
+
when '?+'; emit(:quantifier, :zero_or_one_possessive, text, ts, te)
|
2853
3067
|
end
|
2854
3068
|
end
|
2855
3069
|
end
|
2856
|
-
|
2857
|
-
|
2858
|
-
# line 583 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3070
|
+
when 46 then
|
3071
|
+
# line 639 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2859
3072
|
begin
|
2860
3073
|
te = p+1
|
2861
3074
|
begin
|
2862
|
-
case text =
|
2863
|
-
when '*' ;
|
2864
|
-
when '*?';
|
2865
|
-
when '*+';
|
3075
|
+
case text = text(data, ts, te).first
|
3076
|
+
when '*' ; emit(:quantifier, :zero_or_more, text, ts, te)
|
3077
|
+
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text, ts, te)
|
3078
|
+
when '*+'; emit(:quantifier, :zero_or_more_possessive, text, ts, te)
|
2866
3079
|
end
|
2867
3080
|
end
|
2868
3081
|
end
|
2869
|
-
|
2870
|
-
|
2871
|
-
# line 591 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3082
|
+
when 48 then
|
3083
|
+
# line 647 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2872
3084
|
begin
|
2873
3085
|
te = p+1
|
2874
3086
|
begin
|
2875
|
-
case text =
|
2876
|
-
when '+' ;
|
2877
|
-
when '+?';
|
2878
|
-
when '++';
|
3087
|
+
case text = text(data, ts, te).first
|
3088
|
+
when '+' ; emit(:quantifier, :one_or_more, text, ts, te)
|
3089
|
+
when '+?'; emit(:quantifier, :one_or_more_reluctant, text, ts, te)
|
3090
|
+
when '++'; emit(:quantifier, :one_or_more_possessive, text, ts, te)
|
2879
3091
|
end
|
2880
3092
|
end
|
2881
3093
|
end
|
2882
|
-
|
2883
|
-
|
2884
|
-
# line 599 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3094
|
+
when 55 then
|
3095
|
+
# line 655 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2885
3096
|
begin
|
2886
3097
|
te = p+1
|
2887
3098
|
begin
|
2888
|
-
|
2889
|
-
end
|
2890
|
-
end
|
2891
|
-
# line 599 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2892
|
-
when 40 then
|
2893
|
-
# line 449 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2894
|
-
begin
|
2895
|
-
te = p
|
2896
|
-
p = p - 1; begin
|
2897
|
-
# special handling to resolve ambiguity with passive groups
|
2898
|
-
if data[te]
|
2899
|
-
c = data[te].chr
|
2900
|
-
if c == ':' # include the ':'
|
2901
|
-
self.emit(:group, :options, data[ts..te].pack('c*'), ts, te+1)
|
2902
|
-
p += 1
|
2903
|
-
elsif c == ')' # just options by themselves
|
2904
|
-
self.emit(:group, :options, data[ts..te-1].pack('c*'), ts, te)
|
2905
|
-
else
|
2906
|
-
raise ScannerError.new(
|
2907
|
-
"Unexpected '#{c}' in options sequence, ':' or ')' expected")
|
2908
|
-
end
|
2909
|
-
else
|
2910
|
-
raise PrematureEndError.new("options") unless data[te]
|
2911
|
-
end
|
3099
|
+
emit(:quantifier, :interval, *text(data, ts, te))
|
2912
3100
|
end
|
2913
3101
|
end
|
2914
|
-
|
2915
|
-
|
2916
|
-
# line 501 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3102
|
+
when 43 then
|
3103
|
+
# line 548 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2917
3104
|
begin
|
2918
3105
|
te = p
|
2919
3106
|
p = p - 1; begin
|
2920
|
-
text =
|
2921
|
-
|
3107
|
+
text = text(data, ts, te).first
|
3108
|
+
emit(:group, :capture, text, ts, te)
|
2922
3109
|
end
|
2923
3110
|
end
|
2924
|
-
|
2925
|
-
|
2926
|
-
# line 575 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3111
|
+
when 49 then
|
3112
|
+
# line 631 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2927
3113
|
begin
|
2928
3114
|
te = p
|
2929
3115
|
p = p - 1; begin
|
2930
|
-
case text =
|
2931
|
-
when '?' ;
|
2932
|
-
when '??';
|
2933
|
-
when '?+';
|
3116
|
+
case text = text(data, ts, te).first
|
3117
|
+
when '?' ; emit(:quantifier, :zero_or_one, text, ts, te)
|
3118
|
+
when '??'; emit(:quantifier, :zero_or_one_reluctant, text, ts, te)
|
3119
|
+
when '?+'; emit(:quantifier, :zero_or_one_possessive, text, ts, te)
|
2934
3120
|
end
|
2935
3121
|
end
|
2936
3122
|
end
|
2937
|
-
|
2938
|
-
|
2939
|
-
# line 583 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3123
|
+
when 45 then
|
3124
|
+
# line 639 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2940
3125
|
begin
|
2941
3126
|
te = p
|
2942
3127
|
p = p - 1; begin
|
2943
|
-
case text =
|
2944
|
-
when '*' ;
|
2945
|
-
when '*?';
|
2946
|
-
when '*+';
|
3128
|
+
case text = text(data, ts, te).first
|
3129
|
+
when '*' ; emit(:quantifier, :zero_or_more, text, ts, te)
|
3130
|
+
when '*?'; emit(:quantifier, :zero_or_more_reluctant, text, ts, te)
|
3131
|
+
when '*+'; emit(:quantifier, :zero_or_more_possessive, text, ts, te)
|
2947
3132
|
end
|
2948
3133
|
end
|
2949
3134
|
end
|
2950
|
-
|
2951
|
-
|
2952
|
-
# line 591 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3135
|
+
when 47 then
|
3136
|
+
# line 647 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2953
3137
|
begin
|
2954
3138
|
te = p
|
2955
3139
|
p = p - 1; begin
|
2956
|
-
case text =
|
2957
|
-
when '+' ;
|
2958
|
-
when '+?';
|
2959
|
-
when '++';
|
3140
|
+
case text = text(data, ts, te).first
|
3141
|
+
when '+' ; emit(:quantifier, :one_or_more, text, ts, te)
|
3142
|
+
when '+?'; emit(:quantifier, :one_or_more_reluctant, text, ts, te)
|
3143
|
+
when '++'; emit(:quantifier, :one_or_more_possessive, text, ts, te)
|
2960
3144
|
end
|
2961
3145
|
end
|
2962
3146
|
end
|
2963
|
-
|
2964
|
-
|
2965
|
-
# line 599 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3147
|
+
when 54 then
|
3148
|
+
# line 655 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2966
3149
|
begin
|
2967
3150
|
te = p
|
2968
3151
|
p = p - 1; begin
|
2969
|
-
|
3152
|
+
emit(:quantifier, :interval, *text(data, ts, te))
|
2970
3153
|
end
|
2971
3154
|
end
|
2972
|
-
|
2973
|
-
|
2974
|
-
# line 605 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3155
|
+
when 51 then
|
3156
|
+
# line 661 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2975
3157
|
begin
|
2976
3158
|
te = p
|
2977
3159
|
p = p - 1; begin
|
2978
3160
|
begin
|
2979
3161
|
stack[top] = cs
|
2980
3162
|
top+= 1
|
2981
|
-
cs =
|
3163
|
+
cs = 167
|
2982
3164
|
_goto_level = _again
|
2983
3165
|
next
|
2984
3166
|
end
|
2985
3167
|
|
2986
3168
|
end
|
2987
3169
|
end
|
2988
|
-
|
2989
|
-
|
2990
|
-
# line 616 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3170
|
+
when 42 then
|
3171
|
+
# line 672 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2991
3172
|
begin
|
2992
3173
|
te = p
|
2993
3174
|
p = p - 1; begin
|
2994
|
-
|
3175
|
+
append_literal(data, ts, te)
|
2995
3176
|
end
|
2996
3177
|
end
|
2997
|
-
# line 616 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
2998
3178
|
when 3 then
|
2999
|
-
# line
|
3179
|
+
# line 548 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3000
3180
|
begin
|
3001
3181
|
begin p = ((te))-1; end
|
3002
3182
|
begin
|
3003
|
-
|
3004
|
-
|
3005
|
-
c = data[te].chr
|
3006
|
-
if c == ':' # include the ':'
|
3007
|
-
self.emit(:group, :options, data[ts..te].pack('c*'), ts, te+1)
|
3008
|
-
p += 1
|
3009
|
-
elsif c == ')' # just options by themselves
|
3010
|
-
self.emit(:group, :options, data[ts..te-1].pack('c*'), ts, te)
|
3011
|
-
else
|
3012
|
-
raise ScannerError.new(
|
3013
|
-
"Unexpected '#{c}' in options sequence, ':' or ')' expected")
|
3014
|
-
end
|
3015
|
-
else
|
3016
|
-
raise PrematureEndError.new("options") unless data[te]
|
3017
|
-
end
|
3183
|
+
text = text(data, ts, te).first
|
3184
|
+
emit(:group, :capture, text, ts, te)
|
3018
3185
|
end
|
3019
3186
|
end
|
3020
|
-
|
3021
|
-
|
3022
|
-
# line 605 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3187
|
+
when 9 then
|
3188
|
+
# line 661 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3023
3189
|
begin
|
3024
3190
|
begin p = ((te))-1; end
|
3025
3191
|
begin
|
3026
3192
|
begin
|
3027
3193
|
stack[top] = cs
|
3028
3194
|
top+= 1
|
3029
|
-
cs =
|
3195
|
+
cs = 167
|
3030
3196
|
_goto_level = _again
|
3031
3197
|
next
|
3032
3198
|
end
|
3033
3199
|
|
3034
3200
|
end
|
3035
3201
|
end
|
3036
|
-
# line 605 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3037
3202
|
when 1 then
|
3038
|
-
# line 1 "
|
3203
|
+
# line 1 "NONE"
|
3039
3204
|
begin
|
3040
3205
|
case act
|
3041
3206
|
when 0 then
|
@@ -3045,194 +3210,291 @@ p = p - 1; begin
|
|
3045
3210
|
next
|
3046
3211
|
end
|
3047
3212
|
end
|
3048
|
-
when
|
3213
|
+
when 53 then
|
3049
3214
|
begin begin p = ((te))-1; end
|
3050
3215
|
|
3051
|
-
|
3216
|
+
append_literal(data, ts, te)
|
3052
3217
|
end
|
3053
3218
|
end
|
3054
3219
|
end
|
3055
|
-
|
3056
|
-
|
3057
|
-
# line 116 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3220
|
+
when 65 then
|
3221
|
+
# line 124 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3058
3222
|
begin
|
3059
|
-
|
3060
|
-
|
3061
|
-
|
3223
|
+
|
3224
|
+
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
3225
|
+
raise PrematureEndError.new( text )
|
3226
|
+
end
|
3227
|
+
# line 191 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3062
3228
|
begin
|
3063
3229
|
te = p
|
3064
3230
|
p = p - 1; begin
|
3065
3231
|
set_depth += 1; in_set = true
|
3066
3232
|
set_type = set_depth > 1 ? :subset : :set
|
3067
3233
|
|
3068
|
-
|
3234
|
+
emit(set_type, :open, *text(data, ts, te))
|
3069
3235
|
begin
|
3070
3236
|
stack[top] = cs
|
3071
3237
|
top+= 1
|
3072
|
-
cs =
|
3238
|
+
cs = 145
|
3073
3239
|
_goto_level = _again
|
3074
3240
|
next
|
3075
3241
|
end
|
3076
3242
|
|
3077
3243
|
end
|
3078
3244
|
end
|
3079
|
-
|
3080
|
-
|
3081
|
-
# line 116 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3245
|
+
when 17 then
|
3246
|
+
# line 124 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3082
3247
|
begin
|
3083
|
-
|
3084
|
-
|
3085
|
-
|
3248
|
+
|
3249
|
+
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
3250
|
+
raise PrematureEndError.new( text )
|
3251
|
+
end
|
3252
|
+
# line 191 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3086
3253
|
begin
|
3087
3254
|
begin p = ((te))-1; end
|
3088
3255
|
begin
|
3089
3256
|
set_depth += 1; in_set = true
|
3090
3257
|
set_type = set_depth > 1 ? :subset : :set
|
3091
3258
|
|
3092
|
-
|
3259
|
+
emit(set_type, :open, *text(data, ts, te))
|
3093
3260
|
begin
|
3094
3261
|
stack[top] = cs
|
3095
3262
|
top+= 1
|
3096
|
-
cs =
|
3263
|
+
cs = 145
|
3097
3264
|
_goto_level = _again
|
3098
3265
|
next
|
3099
3266
|
end
|
3100
3267
|
|
3101
3268
|
end
|
3102
3269
|
end
|
3103
|
-
|
3104
|
-
|
3105
|
-
|
3270
|
+
when 88 then
|
3271
|
+
# line 124 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3272
|
+
begin
|
3273
|
+
|
3274
|
+
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
3275
|
+
raise PrematureEndError.new( text )
|
3276
|
+
end
|
3277
|
+
# line 351 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3278
|
+
begin
|
3279
|
+
te = p
|
3280
|
+
p = p - 1; begin
|
3281
|
+
emit(:escape, :hex, *text(data, ts, te, 1))
|
3282
|
+
begin
|
3283
|
+
top -= 1
|
3284
|
+
cs = stack[top]
|
3285
|
+
_goto_level = _again
|
3286
|
+
next
|
3287
|
+
end
|
3288
|
+
|
3289
|
+
end
|
3290
|
+
end
|
3291
|
+
when 92 then
|
3292
|
+
# line 124 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3293
|
+
begin
|
3294
|
+
|
3295
|
+
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
3296
|
+
raise PrematureEndError.new( text )
|
3297
|
+
end
|
3298
|
+
# line 365 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3299
|
+
begin
|
3300
|
+
te = p
|
3301
|
+
p = p - 1; begin
|
3302
|
+
raise InvalidSequenceError.new("wide hex sequence")
|
3303
|
+
begin
|
3304
|
+
top -= 1
|
3305
|
+
cs = stack[top]
|
3306
|
+
_goto_level = _again
|
3307
|
+
next
|
3308
|
+
end
|
3309
|
+
|
3310
|
+
end
|
3311
|
+
end
|
3312
|
+
when 86 then
|
3313
|
+
# line 124 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3314
|
+
begin
|
3315
|
+
|
3316
|
+
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
3317
|
+
raise PrematureEndError.new( text )
|
3318
|
+
end
|
3319
|
+
# line 385 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3320
|
+
begin
|
3321
|
+
te = p
|
3322
|
+
p = p - 1; begin
|
3323
|
+
if data[te]
|
3324
|
+
c = data[te].chr
|
3325
|
+
if c =~ /[\x00-\x7F]/
|
3326
|
+
emit(:escape, :meta_sequence, copy(data, ts-1..te), ts-1, te+1)
|
3327
|
+
p += 1
|
3328
|
+
else
|
3329
|
+
raise InvalidSequenceError.new("meta sequence")
|
3330
|
+
end
|
3331
|
+
else
|
3332
|
+
raise PrematureEndError.new("meta sequence")
|
3333
|
+
end
|
3334
|
+
begin
|
3335
|
+
top -= 1
|
3336
|
+
cs = stack[top]
|
3337
|
+
_goto_level = _again
|
3338
|
+
next
|
3339
|
+
end
|
3340
|
+
|
3341
|
+
end
|
3342
|
+
end
|
3343
|
+
when 26 then
|
3344
|
+
# line 124 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3345
|
+
begin
|
3346
|
+
|
3347
|
+
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
3348
|
+
raise PrematureEndError.new( text )
|
3349
|
+
end
|
3350
|
+
# line 385 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3351
|
+
begin
|
3352
|
+
begin p = ((te))-1; end
|
3353
|
+
begin
|
3354
|
+
if data[te]
|
3355
|
+
c = data[te].chr
|
3356
|
+
if c =~ /[\x00-\x7F]/
|
3357
|
+
emit(:escape, :meta_sequence, copy(data, ts-1..te), ts-1, te+1)
|
3358
|
+
p += 1
|
3359
|
+
else
|
3360
|
+
raise InvalidSequenceError.new("meta sequence")
|
3361
|
+
end
|
3362
|
+
else
|
3363
|
+
raise PrematureEndError.new("meta sequence")
|
3364
|
+
end
|
3365
|
+
begin
|
3366
|
+
top -= 1
|
3367
|
+
cs = stack[top]
|
3368
|
+
_goto_level = _again
|
3369
|
+
next
|
3370
|
+
end
|
3371
|
+
|
3372
|
+
end
|
3373
|
+
end
|
3374
|
+
when 30 then
|
3375
|
+
# line 130 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3376
|
+
begin
|
3377
|
+
|
3378
|
+
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
3379
|
+
raise InvalidSequenceError.new('sequence', text)
|
3380
|
+
end
|
3381
|
+
# line 361 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3382
|
+
begin
|
3383
|
+
te = p+1
|
3384
|
+
begin
|
3385
|
+
begin
|
3386
|
+
top -= 1
|
3387
|
+
cs = stack[top]
|
3388
|
+
_goto_level = _again
|
3389
|
+
next
|
3390
|
+
end
|
3391
|
+
|
3392
|
+
end
|
3393
|
+
end
|
3394
|
+
when 44 then
|
3395
|
+
# line 137 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3396
|
+
begin
|
3397
|
+
group_depth -= 1; in_group = group_depth > 0 ? true : false end
|
3398
|
+
# line 136 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3399
|
+
begin
|
3400
|
+
group_depth += 1; in_group = true end
|
3401
|
+
when 8 then
|
3402
|
+
# line 137 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3106
3403
|
begin
|
3107
3404
|
group_depth -= 1; in_group = group_depth > 0 ? true : false end
|
3108
|
-
# line
|
3109
|
-
# line 437 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3405
|
+
# line 489 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3110
3406
|
begin
|
3111
3407
|
te = p+1
|
3112
3408
|
begin
|
3113
|
-
|
3409
|
+
emit(:group, :comment, *text(data, ts, te))
|
3114
3410
|
end
|
3115
3411
|
end
|
3116
|
-
|
3117
|
-
|
3118
|
-
# line 120 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3412
|
+
when 37 then
|
3413
|
+
# line 137 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3119
3414
|
begin
|
3120
3415
|
group_depth -= 1; in_group = group_depth > 0 ? true : false end
|
3121
|
-
# line
|
3122
|
-
# line 506 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3416
|
+
# line 553 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3123
3417
|
begin
|
3124
3418
|
te = p+1
|
3125
3419
|
begin
|
3126
|
-
|
3420
|
+
emit(:group, :close, *text(data, ts, te))
|
3127
3421
|
end
|
3128
3422
|
end
|
3129
|
-
|
3130
|
-
|
3131
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3423
|
+
when 36 then
|
3424
|
+
# line 1 "NONE"
|
3132
3425
|
begin
|
3133
3426
|
te = p+1
|
3134
3427
|
end
|
3135
|
-
# line
|
3136
|
-
# line 220 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3428
|
+
# line 136 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3137
3429
|
begin
|
3138
|
-
|
3139
|
-
|
3140
|
-
|
3141
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3430
|
+
group_depth += 1; in_group = true end
|
3431
|
+
when 69 then
|
3432
|
+
# line 1 "NONE"
|
3142
3433
|
begin
|
3143
3434
|
te = p+1
|
3144
3435
|
end
|
3145
|
-
# line
|
3146
|
-
# line 225 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3436
|
+
# line 242 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3147
3437
|
begin
|
3148
3438
|
act = 15; end
|
3149
|
-
|
3150
|
-
|
3151
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3439
|
+
when 68 then
|
3440
|
+
# line 1 "NONE"
|
3152
3441
|
begin
|
3153
3442
|
te = p+1
|
3154
3443
|
end
|
3155
|
-
# line
|
3156
|
-
# line 249 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3444
|
+
# line 266 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3157
3445
|
begin
|
3158
3446
|
act = 18; end
|
3159
|
-
|
3160
|
-
|
3161
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3447
|
+
when 23 then
|
3448
|
+
# line 1 "NONE"
|
3162
3449
|
begin
|
3163
3450
|
te = p+1
|
3164
3451
|
end
|
3165
|
-
# line
|
3166
|
-
# line 266 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3452
|
+
# line 283 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3167
3453
|
begin
|
3168
3454
|
act = 20; end
|
3169
|
-
|
3170
|
-
|
3171
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3455
|
+
when 79 then
|
3456
|
+
# line 1 "NONE"
|
3172
3457
|
begin
|
3173
3458
|
te = p+1
|
3174
3459
|
end
|
3175
|
-
# line
|
3176
|
-
# line 276 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3460
|
+
# line 293 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3177
3461
|
begin
|
3178
3462
|
act = 21; end
|
3179
|
-
|
3180
|
-
|
3181
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3463
|
+
when 78 then
|
3464
|
+
# line 1 "NONE"
|
3182
3465
|
begin
|
3183
3466
|
te = p+1
|
3184
3467
|
end
|
3185
|
-
# line
|
3186
|
-
# line 282 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3468
|
+
# line 299 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3187
3469
|
begin
|
3188
3470
|
act = 22; end
|
3189
|
-
# line 282 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3190
3471
|
when 2 then
|
3191
|
-
# line 1 "
|
3192
|
-
begin
|
3193
|
-
te = p+1
|
3194
|
-
end
|
3195
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3196
|
-
# line 616 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3197
|
-
begin
|
3198
|
-
act = 51; end
|
3199
|
-
# line 616 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3200
|
-
when 39 then
|
3201
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3472
|
+
# line 1 "NONE"
|
3202
3473
|
begin
|
3203
3474
|
te = p+1
|
3204
3475
|
end
|
3205
|
-
# line
|
3206
|
-
# line 120 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3476
|
+
# line 672 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3207
3477
|
begin
|
3208
|
-
|
3209
|
-
# line
|
3210
|
-
# line 119 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3211
|
-
begin
|
3212
|
-
group_depth += 1; in_group = true end
|
3213
|
-
# line 119 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3214
|
-
# line 3215 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner.rb"
|
3478
|
+
act = 53; end
|
3479
|
+
# line 3480 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
|
3215
3480
|
end
|
3216
3481
|
end
|
3217
3482
|
end
|
3218
3483
|
if _goto_level <= _again
|
3219
3484
|
case _re_scanner_to_state_actions[cs]
|
3220
|
-
when
|
3221
|
-
# line 1 "
|
3485
|
+
when 56 then
|
3486
|
+
# line 1 "NONE"
|
3222
3487
|
begin
|
3223
3488
|
ts = nil; end
|
3224
|
-
|
3225
|
-
|
3226
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3489
|
+
when 33 then
|
3490
|
+
# line 1 "NONE"
|
3227
3491
|
begin
|
3228
3492
|
ts = nil; end
|
3229
|
-
# line 1 "
|
3230
|
-
# line 1 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3493
|
+
# line 1 "NONE"
|
3231
3494
|
begin
|
3232
3495
|
act = 0
|
3233
3496
|
end
|
3234
|
-
# line
|
3235
|
-
# line 3236 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner.rb"
|
3497
|
+
# line 3498 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
|
3236
3498
|
end
|
3237
3499
|
|
3238
3500
|
if cs == 0
|
@@ -3253,19 +3515,20 @@ act = 0
|
|
3253
3515
|
next;
|
3254
3516
|
end
|
3255
3517
|
case _re_scanner_eof_actions[cs]
|
3256
|
-
when
|
3257
|
-
# line 52 "/
|
3518
|
+
when 12 then
|
3519
|
+
# line 52 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/property.rl"
|
3258
3520
|
begin
|
3259
3521
|
|
3260
3522
|
raise PrematureEndError.new('unicode property')
|
3261
3523
|
end
|
3262
|
-
|
3263
|
-
|
3264
|
-
# line 116 "/ama/src/ruby/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3524
|
+
when 11 then
|
3525
|
+
# line 124 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3265
3526
|
begin
|
3266
|
-
|
3267
|
-
|
3268
|
-
|
3527
|
+
|
3528
|
+
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
3529
|
+
raise PrematureEndError.new( text )
|
3530
|
+
end
|
3531
|
+
# line 3532 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
|
3269
3532
|
end
|
3270
3533
|
end
|
3271
3534
|
|
@@ -3276,7 +3539,12 @@ act = 0
|
|
3276
3539
|
end
|
3277
3540
|
end
|
3278
3541
|
|
3279
|
-
# line
|
3542
|
+
# line 755 "/Users/ammar/src/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
|
3543
|
+
|
3544
|
+
if cs == re_scanner_error
|
3545
|
+
text = ts ? copy(data, ts-1..-1) : data.pack('c*')
|
3546
|
+
raise ScannerError.new("Scan error at '#{text}'")
|
3547
|
+
end
|
3280
3548
|
|
3281
3549
|
raise PrematureEndError.new("(missing group closing paranthesis) "+
|
3282
3550
|
"[#{in_group}:#{group_depth}]") if in_group
|
@@ -3284,36 +3552,96 @@ end
|
|
3284
3552
|
"[#{in_set}:#{set_depth}]") if in_set
|
3285
3553
|
|
3286
3554
|
# when the entire expression is a literal run
|
3287
|
-
|
3555
|
+
emit_literal if @literal
|
3288
3556
|
|
3289
3557
|
@tokens
|
3290
3558
|
end
|
3291
3559
|
|
3292
|
-
|
3293
|
-
|
3560
|
+
private
|
3561
|
+
|
3562
|
+
# Ragel's regex-based scan of the group options introduced a lot of
|
3563
|
+
# ambiguity, so we just ask it to find the beginning of what looks
|
3564
|
+
# like an options run and handle the rest in here.
|
3565
|
+
def self.scan_options(p, data, ts, te)
|
3566
|
+
text = text(data, ts, te).first
|
3567
|
+
|
3568
|
+
options_char, options_length = true, 0
|
3569
|
+
|
3570
|
+
# Copy while we have option characters, the maximum is 7, for (?mix-mix,
|
3571
|
+
# even though it doesn't make sense it is possible.
|
3572
|
+
while options_char and options_length < 7
|
3573
|
+
if data[te + options_length]
|
3574
|
+
c = data[te + options_length].chr
|
3575
|
+
|
3576
|
+
if c =~ /[-mix]/
|
3577
|
+
text << c ; p += 1 ; options_length += 1
|
3578
|
+
else
|
3579
|
+
options_char = false
|
3580
|
+
end
|
3581
|
+
else
|
3582
|
+
raise PrematureEndError.new("expression options `#{text}'")
|
3583
|
+
end
|
3584
|
+
end
|
3585
|
+
|
3586
|
+
if data[te + options_length]
|
3587
|
+
c = data[te + options_length].chr
|
3588
|
+
|
3589
|
+
if c == ':'
|
3590
|
+
# Include the ':' in the options text
|
3591
|
+
text << c ; p += 1 ; options_length += 1
|
3592
|
+
emit(:group, :options, text, ts, te + options_length)
|
3593
|
+
|
3594
|
+
elsif c == ')'
|
3595
|
+
# Don't include the closing ')', let group_close handle it.
|
3596
|
+
emit(:group, :options, text, ts, te + options_length)
|
3597
|
+
|
3598
|
+
else
|
3599
|
+
# Plain Regexp reports this as 'undefined group option'
|
3600
|
+
raise ScannerError.new(
|
3601
|
+
"Unexpected `#{c}' in options sequence, ':' or ')' expected")
|
3602
|
+
end
|
3603
|
+
else
|
3604
|
+
raise PrematureEndError.new("expression options `#{text}'")
|
3605
|
+
end
|
3606
|
+
|
3607
|
+
p # return the new value of the data pointer
|
3608
|
+
end
|
3609
|
+
|
3610
|
+
# Copy from ts to te from data as text
|
3611
|
+
def self.copy(data, range)
|
3612
|
+
data[range].pack('c*')
|
3613
|
+
end
|
3614
|
+
|
3615
|
+
# Copy from ts to te from data as text, returning an array with the text
|
3616
|
+
# and the offsets used to copy it.
|
3617
|
+
def self.text(data, ts, te, soff = 0)
|
3618
|
+
[copy(data, ts-soff..te-1), ts-soff, te]
|
3619
|
+
end
|
3620
|
+
|
3621
|
+
# Appends one or more characters to the literal buffer, to be emitted later
|
3622
|
+
# by a call to emit_literal. Contents can be a mix of ASCII and UTF-8.
|
3294
3623
|
def self.append_literal(data, ts, te)
|
3295
3624
|
@literal ||= []
|
3296
|
-
@literal <<
|
3625
|
+
@literal << text(data, ts, te)
|
3297
3626
|
end
|
3298
3627
|
|
3299
|
-
#
|
3300
|
-
#
|
3628
|
+
# Emits the literal run collected by calls to the append_literal method,
|
3629
|
+
# using the total start (ts) and end (te) offsets of the run.
|
3301
3630
|
def self.emit_literal
|
3302
3631
|
ts, te = @literal.first[1], @literal.last[2]
|
3303
3632
|
text = @literal.map {|t| t[0]}.join
|
3304
3633
|
|
3305
3634
|
text.force_encoding('utf-8') if text.respond_to?(:force_encoding)
|
3306
3635
|
|
3307
|
-
self.emit(:literal, :literal, text, ts, te)
|
3308
3636
|
@literal = nil
|
3637
|
+
emit(:literal, :literal, text, ts, te)
|
3309
3638
|
end
|
3310
3639
|
|
3640
|
+
# Emits an array with the details of the scanned pattern
|
3311
3641
|
def self.emit(type, token, text, ts, te)
|
3312
|
-
#puts "
|
3642
|
+
#puts "EMIT: type: #{type}, token: #{token}, text: #{text}, ts: #{ts}, te: #{te}"
|
3313
3643
|
|
3314
|
-
if @literal
|
3315
|
-
self.emit_literal
|
3316
|
-
end
|
3644
|
+
emit_literal if @literal
|
3317
3645
|
|
3318
3646
|
if @block
|
3319
3647
|
@block.call type, token, text, ts, te
|
@@ -3322,4 +3650,37 @@ end
|
|
3322
3650
|
@tokens << [type, token, text, ts, te]
|
3323
3651
|
end
|
3324
3652
|
|
3653
|
+
# Centralizes and unifies the handling of validation related
|
3654
|
+
# errors.
|
3655
|
+
def self.validation_error(type, what, reason)
|
3656
|
+
case type
|
3657
|
+
when :group
|
3658
|
+
error = InvalidGroupError.new(what, reason)
|
3659
|
+
when :backref
|
3660
|
+
error = InvalidBackrefError.new(what, reason)
|
3661
|
+
when :sequence
|
3662
|
+
error = InvalidSequenceError.new(what, reason)
|
3663
|
+
else
|
3664
|
+
error = ValidationError.new('expression')
|
3665
|
+
end
|
3666
|
+
|
3667
|
+
# TODO: configuration option to treat scanner level validation
|
3668
|
+
# errors as warnings or ignore them
|
3669
|
+
if false # @@config.validation_warn
|
3670
|
+
$stderr.puts error.to_s # unless @@config.validation_ignore
|
3671
|
+
else
|
3672
|
+
raise error # unless @@config.validation_ignore
|
3673
|
+
end
|
3674
|
+
end
|
3675
|
+
|
3676
|
+
# Used for references with an empty name or number
|
3677
|
+
def self.empty_backref_error(type, what)
|
3678
|
+
validation_error(:backref, what, 'ref ID is empty')
|
3679
|
+
end
|
3680
|
+
|
3681
|
+
# Used for named expressions with an empty name
|
3682
|
+
def self.empty_name_error(type, what)
|
3683
|
+
validation_error(type, what, 'name is empty')
|
3684
|
+
end
|
3685
|
+
|
3325
3686
|
end # module Regexp::Scanner
|