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