regextest 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pre/unicode.rb +5 -0
- data/lib/regextest.rb +7 -3
- data/lib/regextest/back/element.rb +36 -13
- data/lib/regextest/back/main.rb +116 -65
- data/lib/regextest/back/result.rb +19 -8
- data/lib/regextest/common.rb +4 -1
- data/lib/regextest/front.rb +5 -0
- data/lib/regextest/front/back-refer.rb +2 -2
- data/lib/regextest/front/bracket-parser.rb +121 -103
- data/lib/regextest/front/bracket-parser.y +4 -1
- data/lib/regextest/front/bracket-scanner.rb +4 -3
- data/lib/regextest/front/char-class.rb +13 -5
- data/lib/regextest/front/letter.rb +39 -6
- data/lib/regextest/front/parenthesis.rb +2 -2
- data/lib/regextest/front/parser.rb +564 -545
- data/lib/regextest/front/parser.y +8 -3
- data/lib/regextest/front/range.rb +19 -1
- data/lib/regextest/front/scanner.rb +16 -13
- data/lib/regextest/front/special-letter.rb +63 -0
- data/lib/regextest/regex-option.rb +27 -0
- data/lib/regextest/unicode.rb +5 -0
- data/lib/regextest/version.rb +1 -1
- data/lib/tst-reg-test.rb +66 -21
- metadata +3 -2
@@ -14,6 +14,7 @@ class Regextest::Back::Result
|
|
14
14
|
@look_behinds = []
|
15
15
|
@positional_anchors = {}
|
16
16
|
@reluctant_repeat = {}
|
17
|
+
@possessive_repeat = {}
|
17
18
|
@start_offset = 0
|
18
19
|
@end_offset = 0
|
19
20
|
@pre_match = nil
|
@@ -58,7 +59,7 @@ class Regextest::Back::Result
|
|
58
59
|
@positional_anchors[cmd].push @end_offset
|
59
60
|
end
|
60
61
|
|
61
|
-
# Adds reluctant repeat information
|
62
|
+
# Adds reluctant / possessive repeat information
|
62
63
|
def add_reluctant_repeat(elem)
|
63
64
|
repeat_id = elem.param[:id]
|
64
65
|
case elem.command
|
@@ -70,8 +71,16 @@ class Regextest::Back::Result
|
|
70
71
|
else
|
71
72
|
raise "internal error, invalid reluctant_repeat_end command"
|
72
73
|
end
|
74
|
+
when :CMD_ANC_POSSESSIVE_BEGIN
|
75
|
+
@possessive_repeat[repeat_id] = [@end_offset]
|
76
|
+
when :CMD_ANC_POSSESSIVE_END
|
77
|
+
if @possessive_repeat[repeat_id]
|
78
|
+
@possessive_repeat[repeat_id].push @end_offset
|
79
|
+
else
|
80
|
+
raise "internal error, invalid possessive_repeat_end command"
|
81
|
+
end
|
73
82
|
else
|
74
|
-
raise "internal error, invalid
|
83
|
+
raise "internal error, invalid reluctant / possessive repeat command"
|
75
84
|
end
|
76
85
|
end
|
77
86
|
|
@@ -107,7 +116,8 @@ class Regextest::Back::Result
|
|
107
116
|
|
108
117
|
# Merge each elements of look aheads
|
109
118
|
def merge_look_ahead_elems(offset, sub_results)
|
110
|
-
term_offset = offset + sub_results.
|
119
|
+
term_offset = offset + sub_results.size
|
120
|
+
# puts "offset=#{offset}, end_offset=#{sub_results.size}, term_offset=#{term_offset}"
|
111
121
|
|
112
122
|
# intersect elems
|
113
123
|
offset.step(term_offset-1) do | i |
|
@@ -201,7 +211,7 @@ class Regextest::Back::Result
|
|
201
211
|
|
202
212
|
# Merge each elements of look behinds
|
203
213
|
def merge_look_behind_elems(offset, sub_results)
|
204
|
-
unshift_length = sub_results.end_offset
|
214
|
+
unshift_length = offset - sub_results.end_offset
|
205
215
|
if unshift_length > 0
|
206
216
|
# @results = sub_results[0..(unshift_length-1)] + @results
|
207
217
|
if !unshift_params(unshift_length)
|
@@ -210,14 +220,14 @@ class Regextest::Back::Result
|
|
210
220
|
end
|
211
221
|
|
212
222
|
# intersect elems
|
213
|
-
|
223
|
+
sub_offset = (unshift_length >=0)?unshift_length:(-unshift_length)
|
214
224
|
pre_part = []
|
215
225
|
0.step(sub_results.end_offset-1) do | i |
|
216
226
|
sub_elem = sub_results[i]
|
217
|
-
if i <
|
227
|
+
if i < sub_offset
|
218
228
|
pre_part.push sub_elem
|
219
229
|
else
|
220
|
-
if(!@results[i-
|
230
|
+
if(!@results[i-sub_offset].intersect(sub_elem))
|
221
231
|
return nil
|
222
232
|
end
|
223
233
|
end
|
@@ -243,10 +253,11 @@ class Regextest::Back::Result
|
|
243
253
|
|
244
254
|
# intersect elems
|
245
255
|
results_offset = (unshift_length > 0)?0:(offset-sub_results.end_offset)
|
256
|
+
sub_offset = (unshift_length >=0)?unshift_length:(-unshift_length)
|
246
257
|
0.step(sub_results.end_offset-1) do | i |
|
247
258
|
sub_elem = sub_results[i]
|
248
259
|
|
249
|
-
if i <
|
260
|
+
if i < sub_offset
|
250
261
|
if i == j
|
251
262
|
results_work.unshift (sub_elem.reverse)
|
252
263
|
found = true
|
data/lib/regextest/common.rb
CHANGED
@@ -10,13 +10,16 @@ module Regextest::Common
|
|
10
10
|
|
11
11
|
# environment variables
|
12
12
|
TstConstRetryMax = (ENV['REGEXTEST_MAX_RETRY'])?(ENV['REGEXTEST_MAX_RETRY'].to_i):5
|
13
|
+
TstConstRetryMaxSecond = (ENV['REGEXTEST_MAX_RETRY_SECOND'])?(ENV['REGEXTEST_MAX_RETRY_SECOND'].to_f):0.01
|
13
14
|
TstConstRepeatMax = (ENV['REGEXTEST_MAX_REPEAT'])?(ENV['REGEXTEST_MAX_REPEAT'].to_i):32
|
14
15
|
TstConstRecursionMax = (ENV['REGEXTEST_MAX_RECURSION'])?(ENV['REGEXTEST_MAX_RECURSION'].to_i):32
|
15
16
|
TstConstDebug = (ENV['REGEXTEST_DEBUG'])?true:false
|
16
17
|
TstConstTimeout = (ENV['REGEXTEST_TIMEOUT'])?(ENV['REGEXTEST_TIMEOUT'].to_f):1.0 # default is 1 second
|
18
|
+
TstFixnumMax = 2 ** 64
|
17
19
|
|
18
20
|
# whole character set if unicode mode. specify as 'ascii|kana', 'ascii|han|kana', etc.
|
19
|
-
|
21
|
+
# where "_asciiprint is codepoints range 32..126
|
22
|
+
TstConstUnicodeCharSet = (ENV['REGEXTEST_UNICODE_CHAR_SET'] || "_asciiprint|katakana|hiragana").downcase
|
20
23
|
|
21
24
|
# Log
|
22
25
|
def TstLog(msg)
|
data/lib/regextest/front.rb
CHANGED
@@ -57,6 +57,11 @@ class Regextest::Front
|
|
57
57
|
JSON.pretty_generate(get_object, @json_option)
|
58
58
|
end
|
59
59
|
|
60
|
+
# Return JSON of regex
|
61
|
+
def get_json_regex
|
62
|
+
JSON.pretty_generate(get_object["regex"], @json_option)
|
63
|
+
end
|
64
|
+
|
60
65
|
end
|
61
66
|
|
62
67
|
# Test suite (execute when this file is specified in command line)
|
@@ -34,7 +34,7 @@ module Regextest::Front::BackRefer
|
|
34
34
|
raise "Error: Internal error, invalid back reference"
|
35
35
|
end
|
36
36
|
when :LEX_NAMED_REFER # a pattern like \k<foo>, \k<1>, \k<-1>
|
37
|
-
if(md = value.match(
|
37
|
+
if(md = value.match(/(?u:^\\k[<']((\-\d+)|(\d+)|(\w+))(?:([\+\-]\d+))?[>']$)/))
|
38
38
|
if md[2] # \k<-1>
|
39
39
|
@paren_obj = @options[:parens].get_paren(md[1], @offset)
|
40
40
|
elsif md[3] # \k<1>
|
@@ -51,7 +51,7 @@ module Regextest::Front::BackRefer
|
|
51
51
|
raise "Error: Internal error, invalid named reference"
|
52
52
|
end
|
53
53
|
when :LEX_NAMED_GENERATE # a pattern like \g<foo>
|
54
|
-
if(md = value.match(
|
54
|
+
if(md = value.match(/(?u:^\\g[<'](([\-\+]\d+)|(\d+)|(\w+))[>']$)/))
|
55
55
|
if md[2] # \k<-1>
|
56
56
|
@paren_obj = @options[:parens].get_paren(md[1], @offset)
|
57
57
|
elsif md[3] # \k<1>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# DO NOT MODIFY!!!!
|
3
|
-
# This file is automatically generated by Racc 1.4.
|
3
|
+
# This file is automatically generated by Racc 1.4.14
|
4
4
|
# from Racc grammer file "".
|
5
5
|
#
|
6
6
|
|
@@ -15,7 +15,7 @@ require 'regextest/front/bracket' # parser class for a bracket
|
|
15
15
|
|
16
16
|
class RegextestFrontBracketParser < Racc::Parser
|
17
17
|
|
18
|
-
module_eval(<<'...end bracket-parser.y/module_eval...', 'bracket-parser.y',
|
18
|
+
module_eval(<<'...end bracket-parser.y/module_eval...', 'bracket-parser.y', 76)
|
19
19
|
# modules for sharing procedures with main (regex) parser
|
20
20
|
include Regextest::Front::Range
|
21
21
|
include Regextest::Front::Letter
|
@@ -65,97 +65,101 @@ end
|
|
65
65
|
|
66
66
|
racc_action_table = [
|
67
67
|
3, 14, 9, 10, 11, 12, 13, 15, 16, 17,
|
68
|
-
18, 19, 20, 21, 22, 23, 24, 3, 14,
|
69
|
-
10, 11, 12, 13, 15, 16, 17, 18, 19,
|
70
|
-
21, 22, 23, 24, 3, 14, 9, 10,
|
68
|
+
18, 19, 20, 21, 22, 23, 24, 25, 3, 14,
|
69
|
+
9, 10, 11, 12, 13, 15, 16, 17, 18, 19,
|
70
|
+
20, 21, 22, 23, 24, 25, 3, 14, 9, 10,
|
71
|
+
11, 12, 13, 15, 16, 17, 18, 19, 20, 21,
|
72
|
+
22, 23, 24, 25, 3, 14, 9, 10, 11, 12,
|
71
73
|
13, 15, 16, 17, 18, 19, 20, 21, 22, 23,
|
72
|
-
24,
|
73
|
-
17, 18, 19, 20, 21, 22, 23, 24, 14,
|
74
|
-
10, 11, 12, 13, 15, 16, 17, 18, 19,
|
75
|
-
21, 22, 23, 24, 14, 9, 10, 11,
|
76
|
-
15, 16, 17, 18, 19, 20, 21, 22,
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
26, 36, 29 ]
|
74
|
+
24, 25, 14, 9, 10, 11, 12, 13, 15, 16,
|
75
|
+
17, 18, 19, 20, 21, 22, 23, 24, 25, 14,
|
76
|
+
9, 10, 11, 12, 13, 15, 16, 17, 18, 19,
|
77
|
+
20, 21, 22, 23, 24, 25, 14, 9, 10, 11,
|
78
|
+
12, 13, 15, 16, 17, 18, 19, 20, 21, 22,
|
79
|
+
23, 24, 25, 14, 27, 36, 11, 12, 13, 15,
|
80
|
+
16, 17, 18, 19, 20, 26, 33, 27, 27, 37,
|
81
|
+
30 ]
|
81
82
|
|
82
83
|
racc_action_check = [
|
83
84
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
84
|
-
0, 0, 0, 0, 0, 0, 0,
|
85
|
-
26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
|
86
|
-
26, 26, 26, 26, 9, 9, 9, 9, 9, 9,
|
87
|
-
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
88
|
-
9, 10, 10, 10, 10, 10, 10, 10, 10, 10,
|
89
|
-
10, 10, 10, 10, 10, 10, 10, 10, 27, 27,
|
85
|
+
0, 0, 0, 0, 0, 0, 0, 0, 27, 27,
|
90
86
|
27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
|
91
|
-
27, 27, 27, 27,
|
87
|
+
27, 27, 27, 27, 27, 27, 9, 9, 9, 9,
|
88
|
+
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
89
|
+
9, 9, 9, 9, 10, 10, 10, 10, 10, 10,
|
90
|
+
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
|
91
|
+
10, 10, 28, 28, 28, 28, 28, 28, 28, 28,
|
92
|
+
28, 28, 28, 28, 28, 28, 28, 28, 28, 4,
|
92
93
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
94
|
+
4, 4, 4, 4, 4, 4, 3, 3, 3, 3,
|
93
95
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
94
|
-
3, 3, 3,
|
95
|
-
|
96
|
-
|
96
|
+
3, 3, 3, 30, 31, 31, 30, 30, 30, 30,
|
97
|
+
30, 30, 30, 30, 30, 1, 26, 1, 32, 32,
|
98
|
+
6 ]
|
97
99
|
|
98
100
|
racc_action_pointer = [
|
99
|
-
-3,
|
100
|
-
|
101
|
-
nil, nil, nil, nil, nil,
|
102
|
-
|
101
|
+
-3, 135, nil, 102, 85, nil, 136, nil, nil, 33,
|
102
|
+
51, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
103
|
+
nil, nil, nil, nil, nil, nil, 136, 15, 68, nil,
|
104
|
+
119, 122, 136, nil, nil, nil, nil, nil ]
|
103
105
|
|
104
106
|
racc_action_default = [
|
105
|
-
-
|
106
|
-
-
|
107
|
-
-
|
108
|
-
-
|
107
|
+
-30, -30, -1, -4, -5, -6, -10, -11, -12, -30,
|
108
|
+
-30, -15, -16, -17, -18, -19, -20, -21, -22, -23,
|
109
|
+
-24, -25, -26, -27, -28, -29, -30, -30, -3, -7,
|
110
|
+
-9, -30, -30, 38, -2, -8, -13, -14 ]
|
109
111
|
|
110
112
|
racc_goto_table = [
|
111
|
-
|
112
|
-
|
113
|
-
nil, nil, nil,
|
113
|
+
29, 1, 28, 34, 35, nil, nil, nil, nil, nil,
|
114
|
+
31, 32, nil, nil, nil, nil, nil, nil, nil, nil,
|
115
|
+
nil, nil, nil, nil, 29 ]
|
114
116
|
|
115
117
|
racc_goto_check = [
|
116
118
|
4, 1, 3, 2, 5, nil, nil, nil, nil, nil,
|
117
119
|
1, 1, nil, nil, nil, nil, nil, nil, nil, nil,
|
118
|
-
nil, nil, nil, 4 ]
|
120
|
+
nil, nil, nil, nil, 4 ]
|
119
121
|
|
120
122
|
racc_goto_pointer = [
|
121
|
-
nil, 1, -
|
123
|
+
nil, 1, -24, -1, -4, -26, nil, nil ]
|
122
124
|
|
123
125
|
racc_goto_default = [
|
124
126
|
nil, nil, 2, 4, 5, 6, 7, 8 ]
|
125
127
|
|
126
128
|
racc_reduce_table = [
|
127
129
|
0, 0, :racc_error,
|
128
|
-
1,
|
129
|
-
3,
|
130
|
-
2,
|
131
|
-
1,
|
132
|
-
1,
|
133
|
-
1,
|
134
|
-
2,
|
135
|
-
3,
|
136
|
-
|
137
|
-
1,
|
138
|
-
1,
|
139
|
-
|
140
|
-
3,
|
141
|
-
|
142
|
-
1,
|
143
|
-
1,
|
144
|
-
1,
|
145
|
-
1,
|
146
|
-
1,
|
147
|
-
1,
|
148
|
-
1,
|
149
|
-
1,
|
130
|
+
1, 22, :_reduce_1,
|
131
|
+
3, 22, :_reduce_2,
|
132
|
+
2, 23, :_reduce_3,
|
133
|
+
1, 23, :_reduce_4,
|
134
|
+
1, 23, :_reduce_none,
|
135
|
+
1, 24, :_reduce_6,
|
136
|
+
2, 24, :_reduce_7,
|
137
|
+
3, 25, :_reduce_8,
|
138
|
+
2, 25, :_reduce_9,
|
139
|
+
1, 25, :_reduce_10,
|
140
|
+
1, 25, :_reduce_11,
|
141
|
+
1, 25, :_reduce_12,
|
142
|
+
3, 28, :_reduce_13,
|
143
|
+
3, 28, :_reduce_14,
|
144
|
+
1, 26, :_reduce_15,
|
145
|
+
1, 26, :_reduce_16,
|
146
|
+
1, 26, :_reduce_17,
|
147
|
+
1, 26, :_reduce_18,
|
148
|
+
1, 26, :_reduce_19,
|
149
|
+
1, 26, :_reduce_20,
|
150
|
+
1, 26, :_reduce_21,
|
151
|
+
1, 26, :_reduce_22,
|
150
152
|
1, 26, :_reduce_23,
|
151
153
|
1, 26, :_reduce_24,
|
152
|
-
1,
|
153
|
-
1,
|
154
|
-
1,
|
154
|
+
1, 27, :_reduce_25,
|
155
|
+
1, 27, :_reduce_26,
|
156
|
+
1, 27, :_reduce_27,
|
157
|
+
1, 27, :_reduce_28,
|
158
|
+
1, 27, :_reduce_29 ]
|
155
159
|
|
156
|
-
racc_reduce_n =
|
160
|
+
racc_reduce_n = 30
|
157
161
|
|
158
|
-
racc_shift_n =
|
162
|
+
racc_shift_n = 38
|
159
163
|
|
160
164
|
racc_token_table = {
|
161
165
|
false => 0,
|
@@ -170,16 +174,17 @@ racc_token_table = {
|
|
170
174
|
:LEX_SIMPLE_ESCAPE => 9,
|
171
175
|
:LEX_CODE_LITERAL => 10,
|
172
176
|
:LEX_CONTROL_LETTER => 11,
|
173
|
-
:
|
174
|
-
:
|
175
|
-
:
|
176
|
-
:
|
177
|
-
:
|
178
|
-
:
|
179
|
-
:
|
180
|
-
:
|
181
|
-
|
182
|
-
|
177
|
+
:LEX_META_CONTROL_LETTER => 12,
|
178
|
+
:LEX_META_LETTER => 13,
|
179
|
+
:LEX_ESCAPED_LETTER => 14,
|
180
|
+
:LEX_UNICODE => 15,
|
181
|
+
:LEX_POSIX_CHAR_CLASS => 16,
|
182
|
+
:LEX_SIMPLIFIED_CLASS => 17,
|
183
|
+
:LEX_UNICODE_CLASS => 18,
|
184
|
+
:LEX_SPECIAL_LETTER => 19,
|
185
|
+
:LEX_SPACE => 20 }
|
186
|
+
|
187
|
+
racc_nt_base = 21
|
183
188
|
|
184
189
|
racc_use_result_var = false
|
185
190
|
|
@@ -212,6 +217,7 @@ Racc_token_to_s_table = [
|
|
212
217
|
"LEX_SIMPLE_ESCAPE",
|
213
218
|
"LEX_CODE_LITERAL",
|
214
219
|
"LEX_CONTROL_LETTER",
|
220
|
+
"LEX_META_CONTROL_LETTER",
|
215
221
|
"LEX_META_LETTER",
|
216
222
|
"LEX_ESCAPED_LETTER",
|
217
223
|
"LEX_UNICODE",
|
@@ -281,7 +287,7 @@ module_eval(<<'.,.,', 'bracket-parser.y', 29)
|
|
281
287
|
|
282
288
|
module_eval(<<'.,.,', 'bracket-parser.y', 31)
|
283
289
|
def _reduce_9(val, _values)
|
284
|
-
val[0]
|
290
|
+
CharClass.new(val[0]).add(TLetter.new(:LEX_CHAR, val[1]))
|
285
291
|
end
|
286
292
|
.,.,
|
287
293
|
|
@@ -297,9 +303,9 @@ module_eval(<<'.,.,', 'bracket-parser.y', 35)
|
|
297
303
|
end
|
298
304
|
.,.,
|
299
305
|
|
300
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
306
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 37)
|
301
307
|
def _reduce_12(val, _values)
|
302
|
-
|
308
|
+
val[0]
|
303
309
|
end
|
304
310
|
.,.,
|
305
311
|
|
@@ -309,86 +315,98 @@ module_eval(<<'.,.,', 'bracket-parser.y', 41)
|
|
309
315
|
end
|
310
316
|
.,.,
|
311
317
|
|
312
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
318
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 43)
|
313
319
|
def _reduce_14(val, _values)
|
314
|
-
|
320
|
+
Bracket.new(val[0], val[1])
|
315
321
|
end
|
316
322
|
.,.,
|
317
323
|
|
318
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
324
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 46)
|
319
325
|
def _reduce_15(val, _values)
|
320
|
-
TLetter.new(:
|
326
|
+
TLetter.new(:LEX_CHAR, val[0])
|
321
327
|
end
|
322
328
|
.,.,
|
323
329
|
|
324
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
330
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 47)
|
325
331
|
def _reduce_16(val, _values)
|
326
|
-
TLetter.new(:
|
332
|
+
TLetter.new(:LEX_OCTET, val[0])
|
327
333
|
end
|
328
334
|
.,.,
|
329
335
|
|
330
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
336
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 48)
|
331
337
|
def _reduce_17(val, _values)
|
332
|
-
TLetter.new(:
|
338
|
+
TLetter.new(:LEX_SIMPLE_ESCAPE, val[0])
|
333
339
|
end
|
334
340
|
.,.,
|
335
341
|
|
336
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
342
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 49)
|
337
343
|
def _reduce_18(val, _values)
|
338
|
-
TLetter.new(:
|
344
|
+
TLetter.new(:LEX_CHAR, val[0])
|
339
345
|
end
|
340
346
|
.,.,
|
341
347
|
|
342
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
348
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 50)
|
343
349
|
def _reduce_19(val, _values)
|
344
|
-
TLetter.new(:
|
350
|
+
TLetter.new(:LEX_CODE_LITERAL, val[0])
|
345
351
|
end
|
346
352
|
.,.,
|
347
353
|
|
348
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
354
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 51)
|
349
355
|
def _reduce_20(val, _values)
|
350
356
|
TLetter.new(:LEX_CONTROL_LETTER, val[0])
|
351
357
|
end
|
352
358
|
.,.,
|
353
359
|
|
354
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
360
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 52)
|
355
361
|
def _reduce_21(val, _values)
|
356
|
-
TLetter.new(:
|
362
|
+
TLetter.new(:LEX_META_CONTROL_LETTER, val[0])
|
357
363
|
end
|
358
364
|
.,.,
|
359
365
|
|
360
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
366
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 53)
|
361
367
|
def _reduce_22(val, _values)
|
362
|
-
TLetter.new(:
|
368
|
+
TLetter.new(:LEX_CONTROL_LETTER, val[0])
|
363
369
|
end
|
364
370
|
.,.,
|
365
371
|
|
366
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
372
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 54)
|
367
373
|
def _reduce_23(val, _values)
|
368
|
-
TLetter.new(:
|
374
|
+
TLetter.new(:LEX_ESCAPED_LETTER, val[0])
|
369
375
|
end
|
370
376
|
.,.,
|
371
377
|
|
372
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
378
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 55)
|
373
379
|
def _reduce_24(val, _values)
|
374
|
-
TLetter.new(:
|
380
|
+
TLetter.new(:LEX_UNICODE, val[0])
|
375
381
|
end
|
376
382
|
.,.,
|
377
383
|
|
378
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
384
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 58)
|
379
385
|
def _reduce_25(val, _values)
|
380
|
-
TLetter.new(:
|
386
|
+
TLetter.new(:LEX_POSIX_CHAR_CLASS, val[0])
|
381
387
|
end
|
382
388
|
.,.,
|
383
389
|
|
384
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
390
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 59)
|
385
391
|
def _reduce_26(val, _values)
|
386
|
-
TLetter.new(:
|
392
|
+
TLetter.new(:LEX_SIMPLIFIED_CLASS, val[0])
|
387
393
|
end
|
388
394
|
.,.,
|
389
395
|
|
390
|
-
module_eval(<<'.,.,', 'bracket-parser.y',
|
396
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 60)
|
391
397
|
def _reduce_27(val, _values)
|
398
|
+
TLetter.new(:LEX_UNICODE_CLASS_BRACKET, val[0])
|
399
|
+
end
|
400
|
+
.,.,
|
401
|
+
|
402
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 61)
|
403
|
+
def _reduce_28(val, _values)
|
404
|
+
TLetter.new(:LEX_SPECIAL_LETTER, val[0])
|
405
|
+
end
|
406
|
+
.,.,
|
407
|
+
|
408
|
+
module_eval(<<'.,.,', 'bracket-parser.y', 62)
|
409
|
+
def _reduce_29(val, _values)
|
392
410
|
TLetter.new(:LEX_SPACE, val[0])
|
393
411
|
end
|
394
412
|
.,.,
|