regextest 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 reluctant_repeat command"
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.end_offset
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 - 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
- results_offset = (unshift_length > 0)?0:(offset-sub_results.end_offset)
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 < unshift_length
227
+ if i < sub_offset
218
228
  pre_part.push sub_elem
219
229
  else
220
- if(!@results[i-unshift_length].intersect(sub_elem))
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 < unshift_length
260
+ if i < sub_offset
250
261
  if i == j
251
262
  results_work.unshift (sub_elem.reverse)
252
263
  found = true
@@ -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
- TstConstUnicodeCharSet = (ENV['REGEXTEST_UNICODE_CHAR_SET'] || "ascii|katakana|hiragana").downcase
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)
@@ -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(/^\\k[<']((\-\d+)|(\d+)|(\w+))(?:([\+\-]\d+))?[>']$/))
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(/^\\g[<'](([\-\+]\d+)|(\d+)|(\w+))[>']$/))
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.12
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', 73)
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, 9,
69
- 10, 11, 12, 13, 15, 16, 17, 18, 19, 20,
70
- 21, 22, 23, 24, 3, 14, 9, 10, 11, 12,
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, 3, 14, 9, 10, 11, 12, 13, 15, 16,
73
- 17, 18, 19, 20, 21, 22, 23, 24, 14, 9,
74
- 10, 11, 12, 13, 15, 16, 17, 18, 19, 20,
75
- 21, 22, 23, 24, 14, 9, 10, 11, 12, 13,
76
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
77
- 14, 9, 10, 11, 12, 13, 15, 16, 17, 18,
78
- 19, 20, 21, 22, 23, 24, 14, 26, 35, 11,
79
- 12, 13, 15, 16, 17, 18, 19, 25, 32, 26,
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, 26, 26, 26,
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, 4, 4, 4, 4, 4, 4,
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, 3, 3, 3, 29, 30, 30, 29,
95
- 29, 29, 29, 29, 29, 29, 29, 1, 25, 1,
96
- 31, 31, 6 ]
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, 127, nil, 96, 80, nil, 128, nil, nil, 31,
100
- 48, nil, nil, nil, nil, nil, nil, nil, nil, nil,
101
- nil, nil, nil, nil, nil, 128, 14, 64, nil, 112,
102
- 115, 128, nil, nil, nil, nil, nil ]
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
- -28, -28, -1, -4, -5, -6, -9, -10, -11, -28,
106
- -28, -14, -15, -16, -17, -18, -19, -20, -21, -22,
107
- -23, -24, -25, -26, -27, -28, -28, -3, -7, -28,
108
- -28, -28, 37, -2, -8, -12, -13 ]
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
- 28, 1, 27, 33, 34, nil, nil, nil, nil, nil,
112
- 30, 31, nil, nil, nil, nil, nil, nil, nil, nil,
113
- nil, nil, nil, 28 ]
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, -23, -1, -4, -25, nil, nil ]
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, 21, :_reduce_1,
129
- 3, 21, :_reduce_2,
130
- 2, 22, :_reduce_3,
131
- 1, 22, :_reduce_4,
132
- 1, 22, :_reduce_none,
133
- 1, 23, :_reduce_6,
134
- 2, 23, :_reduce_7,
135
- 3, 24, :_reduce_8,
136
- 1, 24, :_reduce_9,
137
- 1, 24, :_reduce_10,
138
- 1, 24, :_reduce_11,
139
- 3, 27, :_reduce_12,
140
- 3, 27, :_reduce_13,
141
- 1, 25, :_reduce_14,
142
- 1, 25, :_reduce_15,
143
- 1, 25, :_reduce_16,
144
- 1, 25, :_reduce_17,
145
- 1, 25, :_reduce_18,
146
- 1, 25, :_reduce_19,
147
- 1, 25, :_reduce_20,
148
- 1, 25, :_reduce_21,
149
- 1, 25, :_reduce_22,
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, 26, :_reduce_25,
153
- 1, 26, :_reduce_26,
154
- 1, 26, :_reduce_27 ]
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 = 28
160
+ racc_reduce_n = 30
157
161
 
158
- racc_shift_n = 37
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
- :LEX_META_LETTER => 12,
174
- :LEX_ESCAPED_LETTER => 13,
175
- :LEX_UNICODE => 14,
176
- :LEX_POSIX_CHAR_CLASS => 15,
177
- :LEX_SIMPLIFIED_CLASS => 16,
178
- :LEX_UNICODE_CLASS => 17,
179
- :LEX_SPECIAL_LETTER => 18,
180
- :LEX_SPACE => 19 }
181
-
182
- racc_nt_base = 20
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', 39)
306
+ module_eval(<<'.,.,', 'bracket-parser.y', 37)
301
307
  def _reduce_12(val, _values)
302
- Bracket.new(val[0], val[1])
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', 44)
318
+ module_eval(<<'.,.,', 'bracket-parser.y', 43)
313
319
  def _reduce_14(val, _values)
314
- TLetter.new(:LEX_CHAR, val[0])
320
+ Bracket.new(val[0], val[1])
315
321
  end
316
322
  .,.,
317
323
 
318
- module_eval(<<'.,.,', 'bracket-parser.y', 45)
324
+ module_eval(<<'.,.,', 'bracket-parser.y', 46)
319
325
  def _reduce_15(val, _values)
320
- TLetter.new(:LEX_OCTET, val[0])
326
+ TLetter.new(:LEX_CHAR, val[0])
321
327
  end
322
328
  .,.,
323
329
 
324
- module_eval(<<'.,.,', 'bracket-parser.y', 46)
330
+ module_eval(<<'.,.,', 'bracket-parser.y', 47)
325
331
  def _reduce_16(val, _values)
326
- TLetter.new(:LEX_SIMPLE_ESCAPE, val[0])
332
+ TLetter.new(:LEX_OCTET, val[0])
327
333
  end
328
334
  .,.,
329
335
 
330
- module_eval(<<'.,.,', 'bracket-parser.y', 47)
336
+ module_eval(<<'.,.,', 'bracket-parser.y', 48)
331
337
  def _reduce_17(val, _values)
332
- TLetter.new(:LEX_CHAR, val[0])
338
+ TLetter.new(:LEX_SIMPLE_ESCAPE, val[0])
333
339
  end
334
340
  .,.,
335
341
 
336
- module_eval(<<'.,.,', 'bracket-parser.y', 48)
342
+ module_eval(<<'.,.,', 'bracket-parser.y', 49)
337
343
  def _reduce_18(val, _values)
338
- TLetter.new(:LEX_CODE_LITERAL, val[0])
344
+ TLetter.new(:LEX_CHAR, val[0])
339
345
  end
340
346
  .,.,
341
347
 
342
- module_eval(<<'.,.,', 'bracket-parser.y', 49)
348
+ module_eval(<<'.,.,', 'bracket-parser.y', 50)
343
349
  def _reduce_19(val, _values)
344
- TLetter.new(:LEX_CONTROL_LETTER, val[0])
350
+ TLetter.new(:LEX_CODE_LITERAL, val[0])
345
351
  end
346
352
  .,.,
347
353
 
348
- module_eval(<<'.,.,', 'bracket-parser.y', 50)
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', 51)
360
+ module_eval(<<'.,.,', 'bracket-parser.y', 52)
355
361
  def _reduce_21(val, _values)
356
- TLetter.new(:LEX_ESCAPED_LETTER, val[0])
362
+ TLetter.new(:LEX_META_CONTROL_LETTER, val[0])
357
363
  end
358
364
  .,.,
359
365
 
360
- module_eval(<<'.,.,', 'bracket-parser.y', 52)
366
+ module_eval(<<'.,.,', 'bracket-parser.y', 53)
361
367
  def _reduce_22(val, _values)
362
- TLetter.new(:LEX_UNICODE, val[0])
368
+ TLetter.new(:LEX_CONTROL_LETTER, val[0])
363
369
  end
364
370
  .,.,
365
371
 
366
- module_eval(<<'.,.,', 'bracket-parser.y', 55)
372
+ module_eval(<<'.,.,', 'bracket-parser.y', 54)
367
373
  def _reduce_23(val, _values)
368
- TLetter.new(:LEX_POSIX_CHAR_CLASS, val[0])
374
+ TLetter.new(:LEX_ESCAPED_LETTER, val[0])
369
375
  end
370
376
  .,.,
371
377
 
372
- module_eval(<<'.,.,', 'bracket-parser.y', 56)
378
+ module_eval(<<'.,.,', 'bracket-parser.y', 55)
373
379
  def _reduce_24(val, _values)
374
- TLetter.new(:LEX_SIMPLIFIED_CLASS, val[0])
380
+ TLetter.new(:LEX_UNICODE, val[0])
375
381
  end
376
382
  .,.,
377
383
 
378
- module_eval(<<'.,.,', 'bracket-parser.y', 57)
384
+ module_eval(<<'.,.,', 'bracket-parser.y', 58)
379
385
  def _reduce_25(val, _values)
380
- TLetter.new(:LEX_UNICODE_CLASS, val[0])
386
+ TLetter.new(:LEX_POSIX_CHAR_CLASS, val[0])
381
387
  end
382
388
  .,.,
383
389
 
384
- module_eval(<<'.,.,', 'bracket-parser.y', 58)
390
+ module_eval(<<'.,.,', 'bracket-parser.y', 59)
385
391
  def _reduce_26(val, _values)
386
- TLetter.new(:LEX_SPECIAL_LETTER, val[0])
392
+ TLetter.new(:LEX_SIMPLIFIED_CLASS, val[0])
387
393
  end
388
394
  .,.,
389
395
 
390
- module_eval(<<'.,.,', 'bracket-parser.y', 59)
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
  .,.,