regextest 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -28,6 +28,8 @@ rule
28
28
  # a element (a letter, a character class, a range or another bracket)
29
29
  brc_elm: brc_lt1 LEX_MINUS brc_lt1
30
30
  {TRange.new(val[0], val[2])}
31
+ | brc_lt1 LEX_MINUS # [a-&&] pattern
32
+ {CharClass.new(val[0]).add(TLetter.new(:LEX_CHAR, val[1]))}
31
33
  | brc_lt1
32
34
  {val[0]}
33
35
  | brc_lt2
@@ -48,6 +50,7 @@ rule
48
50
  | LEX_MINUS {TLetter.new(:LEX_CHAR, val[0])} # minus as a first letter
49
51
  | LEX_CODE_LITERAL {TLetter.new(:LEX_CODE_LITERAL, val[0])}
50
52
  | LEX_CONTROL_LETTER {TLetter.new(:LEX_CONTROL_LETTER, val[0])}
53
+ | LEX_META_CONTROL_LETTER {TLetter.new(:LEX_META_CONTROL_LETTER, val[0])}
51
54
  | LEX_META_LETTER {TLetter.new(:LEX_CONTROL_LETTER, val[0])}
52
55
  | LEX_ESCAPED_LETTER {TLetter.new(:LEX_ESCAPED_LETTER, val[0])}
53
56
  | LEX_UNICODE {TLetter.new(:LEX_UNICODE, val[0])}
@@ -55,7 +58,7 @@ rule
55
58
  # a character class
56
59
  brc_lt2: LEX_POSIX_CHAR_CLASS {TLetter.new(:LEX_POSIX_CHAR_CLASS, val[0])}
57
60
  | LEX_SIMPLIFIED_CLASS {TLetter.new(:LEX_SIMPLIFIED_CLASS, val[0])}
58
- | LEX_UNICODE_CLASS {TLetter.new(:LEX_UNICODE_CLASS, val[0])}
61
+ | LEX_UNICODE_CLASS {TLetter.new(:LEX_UNICODE_CLASS_BRACKET, val[0])}
59
62
  | LEX_SPECIAL_LETTER {TLetter.new(:LEX_SPECIAL_LETTER, val[0])}
60
63
  | LEX_SPACE {TLetter.new(:LEX_SPACE, val[0])}
61
64
 
@@ -23,10 +23,11 @@ class Regextest::Front::BracketScanner
23
23
  [:LEX_CODE_LITERAL,
24
24
  LexCodeLiteral ],
25
25
  [:LEX_CONTROL_LETTER,
26
- %r!\\c[a-z]|\\C-[a-z]|\\c\\\\|\\C-\\\\! ],
26
+ %r!\\c\\\\|\\C-\\\\|\\c[0-~]|\\C-[0-~]! ],
27
+ [:LEX_META_CONTROL_LETTER,
28
+ %r!\\M-\\C-[0-~]! ],
27
29
  [:LEX_META_LETTER,
28
- # %r!\\M-(?:\\w|#{LexCodeLiteral.source})! ],
29
- %r!\\M-(?:[a-z]|\\C-[a-z])! ],
30
+ %r!\\M-[0-~]! ],
30
31
  # [:LEX_ESCAPED_LETTER,
31
32
  # %r!\\[tvnrbfae #\{\}\[\]\(\)]! ], # \b is valid within character class
32
33
  [:LEX_UNICODE,
@@ -20,13 +20,13 @@ module Regextest::Front::CharClass
20
20
  attr_reader :candidates, :offset, :length
21
21
 
22
22
  # Constructor
23
- def initialize(value)
23
+ def initialize(value, caller_type = nil)
24
24
  TstLog("CharClass: #{value}")
25
25
  @@ascii_whole_set ||= get_ascii_whole_set
26
26
  @@unicode_whole_set ||= get_unicode_whole_set
27
+ @caller_type = caller_type
27
28
 
28
-
29
- @reg_options = @@parse_options[:reg_options]
29
+ @options = nil
30
30
  case value
31
31
  when Array
32
32
  @candidates = value
@@ -198,6 +198,7 @@ module Regextest::Front::CharClass
198
198
  # fixes charset using options
199
199
  def set_options(options)
200
200
  TstLog("CharClass set_options: #{options[:reg_options].inspect}")
201
+ @options = options
201
202
 
202
203
  # call set_options of other bracket
203
204
  @candidates.each do |candidate|
@@ -208,7 +209,11 @@ module Regextest::Front::CharClass
208
209
 
209
210
  and_process(options) if @other_char_classes.size > 0
210
211
 
211
- ignore_process(options)
212
+ # somehow ignore process must be skipped when unicode
213
+ # class (\p{lower} etc.) in outside of bracket
214
+ if @caller_type != :LEX_UNICODE_CLASS
215
+ ignore_process(options)
216
+ end
212
217
 
213
218
  # reverse char set
214
219
  if @is_reverse
@@ -222,11 +227,14 @@ module Regextest::Front::CharClass
222
227
  def json
223
228
  #if @candidates.size > 1
224
229
  @@id += 1
230
+ charset = @options[:reg_options].charset
225
231
  "{" +
226
232
  "\"type\": \"LEX_CHAR_CLASS\", \"id\": \"CC#{@@id}\", " +
227
233
  "\"offset\": #{@offset}, \"length\": #{@length}, " +
228
234
  "\"value\": [" + @candidates.map{|elem| elem.json}.join(",") +
229
- "]}"
235
+ "], " +
236
+ "\"charset\": \"#{charset}\"" +
237
+ "}"
230
238
  #else
231
239
  # @candidates[0].json
232
240
  #end
@@ -38,9 +38,12 @@ module Regextest::Front::Letter
38
38
  when :LEX_SIMPLE_ESCAPE
39
39
  @data_type = :LEX_CHAR
40
40
  @obj = CharClass.new([ TRange.new(val[1..1])])
41
- when :LEX_CODE_LITERAL, :LEX_ESCAPED_LETTER, :LEX_UNICODE, :LEX_CONTROL_LETTER, :LEX_META_LETTER, :LEX_OCTET
41
+ when :LEX_CODE_LITERAL, :LEX_ESCAPED_LETTER, :LEX_UNICODE, :LEX_OCTET
42
42
  @data_type = :LEX_CHAR
43
43
  @obj = CharClass.new([ TRange.new(eval('"'+ val + '"'))]) # convert using ruby's eval
44
+ when :LEX_CONTROL_LETTER, :LEX_META_LETTER
45
+ @data_type = :LEX_CHAR
46
+ @obj = generate_control_letter(val, type)
44
47
  when :LEX_BRACKET
45
48
  @obj = Regextest::Front::Bracket.new(val)
46
49
  when :LEX_SIMPLIFIED_CLASS
@@ -48,7 +51,9 @@ module Regextest::Front::Letter
48
51
  when :LEX_POSIX_CHAR_CLASS
49
52
  @obj = generate_char_class(val)
50
53
  when :LEX_UNICODE_CLASS
51
- @obj = generate_unicode_char(val)
54
+ @obj = generate_unicode_char(val, type)
55
+ when :LEX_UNICODE_CLASS_BRACKET
56
+ @obj = generate_unicode_char(val, type)
52
57
  when :LEX_ANY_LETTER
53
58
  @obj = generate_any_char(val)
54
59
  when :LEX_SPECIAL_LETTER
@@ -61,14 +66,40 @@ module Regextest::Front::Letter
61
66
  end
62
67
  end
63
68
 
69
+ # generate control letter \c-x, \m-x
70
+ def generate_control_letter(val, type)
71
+ suffix = val[-1..-1]
72
+ codepoint = suffix.unpack("U*")[0]
73
+ case type
74
+ when :LEX_CONTROL_LETTER
75
+ if ('0'..'?').include?(suffix)
76
+ result = codepoint - 0x20
77
+ elsif ('@'..'_').include?(suffix)
78
+ result = codepoint - 0x40
79
+ elsif ('`'..'~').include?(suffix)
80
+ result = codepoint - 0x60
81
+ else
82
+ raise "Internal error: invalid control letter (#{val})"
83
+ end
84
+ when :LEX_META_LETTER
85
+ result = codepoint + 0x80
86
+ pp [result].pack("U*")
87
+ else
88
+ raise "Internal error: invalid type #{type}"
89
+ end
90
+ @obj = CharClass.new([ TRange.new([result].pack("U*"))])
91
+ end
92
+
64
93
  # generate whole set of letters (depends on option)
65
94
  def generate_any_char(val)
66
95
  if @options[:reg_options].is_unicode?
67
96
  obj = CharClass.new(TstConstUnicodeCharSet)
68
97
  else
69
- obj = CharClass.new( [ TRange.new("\x20", "\x7e") ] )
98
+ obj = CharClass.new(TstConstUnicodeCharSet)
99
+ # obj = CharClass.new( [ TRange.new("\x20", "\x7e") ] )
70
100
  end
71
101
 
102
+ # add new-line if multi-line option specified
72
103
  if( @options[:reg_options].is_multiline? )
73
104
  obj.add_ranges( [ TRange.new("\n") ] )
74
105
  end
@@ -177,12 +208,12 @@ module Regextest::Front::Letter
177
208
  end
178
209
 
179
210
  # generate Unicode class (ie. \p{...} | \P{...})
180
- def generate_unicode_char(val)
211
+ def generate_unicode_char(val, type)
181
212
  if(md = val.match(/(p|P)\{(\^?)(\w+)\}/))
182
213
  class_name = md[3].downcase
183
214
  reverse = (md[2] && md[2]=="^")?true:false
184
215
 
185
- obj = CharClass.new(class_name)
216
+ obj = CharClass.new(class_name, type)
186
217
  else
187
218
  raise "Internal error, inconsistent Unicode class #{val}"
188
219
  end
@@ -297,9 +328,11 @@ module Regextest::Front::Letter
297
328
  # transform to json format
298
329
  def json
299
330
  @@id += 1
331
+ charset = @options[:reg_options].charset
300
332
  "{" +
301
333
  "\"type\": \"#{@data_type}\", \"id\": \"L#{@@id}\", \"value\": #{@obj.json}, " +
302
- "\"offset\": #{@offset}, \"length\": #{@length}" +
334
+ "\"offset\": #{@offset}, \"length\": #{@length}, " +
335
+ "\"charset\": \"#{charset}\"" +
303
336
  "}"
304
337
  end
305
338
  end
@@ -50,7 +50,7 @@ module Regextest::Front::Parenthesis
50
50
 
51
51
  # get name of parenthesis (if any)
52
52
  def get_name(prefix)
53
- if(md = prefix.match(/^[<'](\w+)[>']$/))
53
+ if(md = prefix.match(/(?u:^[<'](\w+)[>']$)/))
54
54
  md[1]
55
55
  else
56
56
  nil
@@ -65,7 +65,7 @@ module Regextest::Front::Parenthesis
65
65
  if !condition_name
66
66
  raise "condition number #{prefix} is invalid"
67
67
  end
68
- elsif(md = prefix.match(/^\(<(\w+)>\)|\('(\w+)'\)$/))
68
+ elsif(md = prefix.match(/(?u:^\(<(\w+)>\)|\('(\w+)'\)$)/))
69
69
  match_string = md[1] || md[2]
70
70
  condition_name = @options[:parens].get_paren(match_string)
71
71
  if !condition_name
@@ -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
 
@@ -17,11 +17,12 @@ require 'regextest/front/sequence' # parser class for a sequence of elemen
17
17
  require 'regextest/front/bracket' # parser class for a character class (bracket)
18
18
  require 'regextest/front/anchor' # parser class for a anchor
19
19
  require 'regextest/front/back-refer' # parser class for a back reference
20
+ require 'regextest/front/special-letter' # parser class for a special letter
20
21
  require 'regextest/front/bracket-parser' # bracket parser
21
22
 
22
23
  class RegextestFrontParser < Racc::Parser
23
24
 
24
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 223)
25
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 227)
25
26
  # modules for sharing procedures with bracket parser
26
27
  include Regextest::Front::Empty
27
28
  include Regextest::Front::Letter
@@ -33,6 +34,7 @@ include Regextest::Front::Sequence
33
34
  include Regextest::Front::Bracket
34
35
  include Regextest::Front::Anchor
35
36
  include Regextest::Front::BackRefer
37
+ include Regextest::Front::SpecialLetter
36
38
 
37
39
  # execute to parse
38
40
  def parse(lex_words, options)
@@ -74,133 +76,134 @@ end
74
76
  ##### State transition tables begin ###
75
77
 
76
78
  clist = [
77
- '4,6,7,49,10,95,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28',
78
- '29,30,31,32,33,34,35,36,37,38,39,40,41,42,144,44,43,143,139,142,140',
79
- '141,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125',
80
- '126,127,128,129,130,131,132,133,134,135,136,138,109,137,144,102,147',
81
- '143,139,142,140,141,110,111,112,113,114,115,116,117,118,119,120,121',
82
- '122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,138,109',
83
- '137,144,102,49,143,139,142,140,141,110,111,112,113,114,115,116,117,118',
84
- '119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135',
85
- '136,138,109,137,4,6,7,44,10,,11,12,13,14,15,16,17,18,19,20,21,22,23',
86
- '24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,144,,,143,139',
87
- '142,140,141,110,111,112,113,114,115,116,117,118,119,120,121,122,123',
88
- '124,125,126,127,128,129,130,131,132,133,134,135,136,138,109,137,144',
89
- ',,143,139,142,140,141,110,111,112,113,114,115,116,117,118,119,120,121',
90
- '122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,138,109',
91
- '137,144,,,143,139,142,140,141,110,111,112,113,114,115,116,117,118,119',
92
- '120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136',
93
- '138,109,137,4,6,7,,10,,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25',
94
- '26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,93,52,53,,56,,57',
95
- '58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80',
96
- '81,82,83,85,86,88,84,87,4,6,7,,10,,11,12,13,14,15,16,17,18,19,20,21',
97
- '22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,144,',
98
- ',143,139,142,140,141,110,111,112,113,114,115,116,117,118,119,120,121',
99
- '122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,138,109',
100
- '137,144,,,143,139,142,140,141,110,111,112,113,114,115,116,117,118,119',
101
- '120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136',
102
- '138,109,137,144,,,143,139,142,140,141,110,111,112,113,114,115,116,117',
103
- '118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134',
104
- '135,136,138,109,137,144,,,143,139,142,140,141,110,111,112,113,114,115',
105
- '116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132',
106
- '133,134,135,136,138,109,137,144,,,143,139,142,140,141,110,111,112,113',
107
- '114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130',
108
- '131,132,133,134,135,136,138,109,137,144,,,143,139,142,140,141,110,111',
109
- '112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128',
110
- '129,130,131,132,133,134,135,136,138,109,137,144,,,143,139,142,140,141',
111
- '110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126',
112
- '127,128,129,130,131,132,133,134,135,136,138,109,137,144,,,143,139,142',
113
- '140,141,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124',
114
- '125,126,127,128,129,130,131,132,133,134,135,136,138,109,137,144,,,143',
115
- '139,142,140,141,110,111,112,113,114,115,116,117,118,119,120,121,122',
116
- '123,124,125,126,127,128,129,130,131,132,133,134,135,136,138,109,137',
117
- '144,,,143,139,142,140,141,110,111,112,113,114,115,116,117,118,119,120',
118
- '121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,138',
119
- '109,137,93,52,53,,56,,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72',
120
- '73,74,75,76,77,78,79,80,81,82,83,85,86,88,84,87,93,52,53,,56,,57,58',
121
- '59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81',
122
- '82,83,85,86,88,84,87,4,6,7,,10,,11,12,13,14,15,16,17,18,19,20,21,22',
123
- '23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,144,,,143',
124
- '139,142,140,141,110,111,112,113,114,115,116,117,118,119,120,121,122',
125
- '123,124,125,126,127,128,129,130,131,132,133,134,135,136,138,109,137',
126
- '144,,,143,139,142,140,141,110,111,112,113,114,115,116,117,118,119,120',
127
- '121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,138',
128
- '109,137,144,,,143,139,142,140,141,110,111,112,113,114,115,116,117,118',
129
- '119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135',
130
- '136,138,109,137,144,,,143,139,142,140,141,110,111,112,113,114,115,116',
131
- '117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133',
132
- '134,135,136,138,109,137,144,,,143,139,142,140,141,110,111,112,113,114',
133
- '115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131',
134
- '132,133,134,135,136,138,109,137,93,52,53,,56,,57,58,59,60,61,62,63,64',
135
- '65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,86,88,84',
136
- '87,144,,,143,139,142,140,141,110,111,112,113,114,115,116,117,118,119',
137
- '120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136',
138
- '138,109,137,144,,,143,139,142,140,141,110,111,112,113,114,115,116,117',
139
- '118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134',
140
- '135,136,138,109,137,144,,,143,139,142,140,141,110,111,112,113,114,115',
141
- '116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132',
142
- '133,134,135,136,138,109,137,144,,,143,139,142,140,141,110,111,112,113',
143
- '114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130',
144
- '131,132,133,134,135,136,138,109,137,144,,,143,139,142,140,141,110,111',
145
- '112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128',
146
- '129,130,131,132,133,134,135,136,138,109,137,144,,,143,139,142,140,141',
147
- '110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126',
148
- '127,128,129,130,131,132,133,134,135,136,138,109,137,144,,,143,139,142',
149
- '140,141,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124',
150
- '125,126,127,128,129,130,131,132,133,134,135,136,138,109,137,144,,,143',
151
- '139,142,140,141,110,111,112,113,114,115,116,117,118,119,120,121,122',
152
- '123,124,125,126,127,128,129,130,131,132,133,134,135,136,138,109,137',
153
- '144,,,143,139,142,140,141,110,111,112,113,114,115,116,117,118,119,120',
154
- '121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,138',
155
- '109,137,144,,,143,139,142,140,141,110,111,112,113,114,115,116,117,118',
156
- '119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135',
157
- '136,138,109,137,144,,,143,139,142,140,141,110,111,112,113,114,115,116',
158
- '117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133',
159
- '134,135,136,138,109,137,144,,,143,139,142,140,141,110,111,112,113,114',
160
- '115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131',
161
- '132,133,134,135,136,138,109,137,144,,,143,139,142,140,141,110,111,112',
162
- '113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129',
163
- '130,131,132,133,134,135,136,138,109,137,144,,,143,139,142,140,141,110',
164
- '111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127',
165
- '128,129,130,131,132,133,134,135,136,138,109,137,144,,,143,139,142,140',
166
- '141,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125',
167
- '126,127,128,129,130,131,132,133,134,135,136,138,109,137,6,7,,10,,11',
168
- '12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34',
169
- '35,36,37,38,39,40,41,42,100,101,,56,,57,58,59,60,61,62,63,64,65,66,67',
170
- '68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,86,88,84,87,46,47',
171
- ',10,,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
172
- '32,33,34,35,36,37,38,39,40,41,42,46,47,,10,,11,12,13,14,15,16,17,18',
173
- '19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41',
174
- '42,100,101,,56,,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74',
175
- '75,76,77,78,79,80,81,82,83,85,86,88,84,87,6,7,,10,,11,12,13,14,15,16',
176
- '17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39',
177
- '40,41,42,52,53,,56,,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72',
178
- '73,74,75,76,77,78,79,80,81,82,83,85,86,88,84,87,100,101,,56,,57,58,59',
179
- '60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82',
180
- '83,85,86,88,84,87,46,47,,10,,11,12,13,14,15,16,17,18,19,20,21,22,23',
181
- '24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,100,101,,56',
182
- ',57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79',
183
- '80,81,82,83,85,86,88,84,87,46,47,,10,,11,12,13,14,15,16,17,18,19,20',
184
- '21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,52',
185
- '53,,56,,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76',
186
- '77,78,79,80,81,82,83,85,86,88,84,87,100,101,,56,,57,58,59,60,61,62,63',
187
- '64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,86,88',
188
- '84,87,46,47,,10,,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27',
189
- '28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,52,53,,56,,57,58,59,60',
190
- '61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83',
191
- '85,86,88,84,87,46,47,,10,,11,12,13,14,15,16,17,18,19,20,21,22,23,24',
192
- '25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,6,7,,10,,11,12',
79
+ '4,6,7,50,10,96,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28',
80
+ '29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,145,45,44,144,140,143,141',
81
+ '142,111,112,113,115,116,117,118,103,119,120,121,122,123,124,125,126',
82
+ '127,128,129,130,131,132,133,114,134,135,136,137,139,110,138,145,148',
83
+ '103,144,140,143,141,142,111,112,113,115,116,117,118,50,119,120,121,122',
84
+ '123,124,125,126,127,128,129,130,131,132,133,114,134,135,136,137,139',
85
+ '110,138,145,45,,144,140,143,141,142,111,112,113,115,116,117,118,,119',
86
+ '120,121,122,123,124,125,126,127,128,129,130,131,132,133,114,134,135',
87
+ '136,137,139,110,138,4,6,7,,10,,11,12,13,14,15,16,17,18,19,20,21,22,23',
88
+ '24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,145,,,144',
89
+ '140,143,141,142,111,112,113,115,116,117,118,,119,120,121,122,123,124',
90
+ '125,126,127,128,129,130,131,132,133,114,134,135,136,137,139,110,138',
91
+ '145,,,144,140,143,141,142,111,112,113,115,116,117,118,,119,120,121,122',
92
+ '123,124,125,126,127,128,129,130,131,132,133,114,134,135,136,137,139',
93
+ '110,138,145,,,144,140,143,141,142,111,112,113,115,116,117,118,,119,120',
94
+ '121,122,123,124,125,126,127,128,129,130,131,132,133,114,134,135,136',
95
+ '137,139,110,138,4,6,7,,10,,11,12,13,14,15,16,17,18,19,20,21,22,23,24',
96
+ '25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,94,53,54,,57',
97
+ ',58,59,60,61,62,63,64,65,66,,67,68,69,70,71,72,73,74,75,76,77,78,79',
98
+ '80,81,82,83,84,86,87,89,85,88,4,6,7,,10,,11,12,13,14,15,16,17,18,19',
99
+ '20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42',
100
+ '43,145,,,144,140,143,141,142,111,112,113,115,116,117,118,,119,120,121',
101
+ '122,123,124,125,126,127,128,129,130,131,132,133,114,134,135,136,137',
102
+ '139,110,138,145,,,144,140,143,141,142,111,112,113,115,116,117,118,,119',
103
+ '120,121,122,123,124,125,126,127,128,129,130,131,132,133,114,134,135',
104
+ '136,137,139,110,138,145,,,144,140,143,141,142,111,112,113,115,116,117',
105
+ '118,,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,114',
106
+ '134,135,136,137,139,110,138,145,,,144,140,143,141,142,111,112,113,115',
107
+ '116,117,118,,119,120,121,122,123,124,125,126,127,128,129,130,131,132',
108
+ '133,114,134,135,136,137,139,110,138,145,,,144,140,143,141,142,111,112',
109
+ '113,115,116,117,118,,119,120,121,122,123,124,125,126,127,128,129,130',
110
+ '131,132,133,114,134,135,136,137,139,110,138,145,,,144,140,143,141,142',
111
+ '111,112,113,115,116,117,118,,119,120,121,122,123,124,125,126,127,128',
112
+ '129,130,131,132,133,114,134,135,136,137,139,110,138,145,,,144,140,143',
113
+ '141,142,111,112,113,115,116,117,118,,119,120,121,122,123,124,125,126',
114
+ '127,128,129,130,131,132,133,114,134,135,136,137,139,110,138,145,,,144',
115
+ '140,143,141,142,111,112,113,115,116,117,118,,119,120,121,122,123,124',
116
+ '125,126,127,128,129,130,131,132,133,114,134,135,136,137,139,110,138',
117
+ '145,,,144,140,143,141,142,111,112,113,115,116,117,118,,119,120,121,122',
118
+ '123,124,125,126,127,128,129,130,131,132,133,114,134,135,136,137,139',
119
+ '110,138,145,,,144,140,143,141,142,111,112,113,115,116,117,118,,119,120',
120
+ '121,122,123,124,125,126,127,128,129,130,131,132,133,114,134,135,136',
121
+ '137,139,110,138,94,53,54,,57,,58,59,60,61,62,63,64,65,66,,67,68,69,70',
122
+ '71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,89,85,88,94,53,54,,57',
123
+ ',58,59,60,61,62,63,64,65,66,,67,68,69,70,71,72,73,74,75,76,77,78,79',
124
+ '80,81,82,83,84,86,87,89,85,88,4,6,7,,10,,11,12,13,14,15,16,17,18,19',
125
+ '20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42',
126
+ '43,145,,,144,140,143,141,142,111,112,113,115,116,117,118,,119,120,121',
127
+ '122,123,124,125,126,127,128,129,130,131,132,133,114,134,135,136,137',
128
+ '139,110,138,145,,,144,140,143,141,142,111,112,113,115,116,117,118,,119',
129
+ '120,121,122,123,124,125,126,127,128,129,130,131,132,133,114,134,135',
130
+ '136,137,139,110,138,145,,,144,140,143,141,142,111,112,113,115,116,117',
131
+ '118,,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,114',
132
+ '134,135,136,137,139,110,138,145,,,144,140,143,141,142,111,112,113,115',
133
+ '116,117,118,,119,120,121,122,123,124,125,126,127,128,129,130,131,132',
134
+ '133,114,134,135,136,137,139,110,138,145,,,144,140,143,141,142,111,112',
135
+ '113,115,116,117,118,,119,120,121,122,123,124,125,126,127,128,129,130',
136
+ '131,132,133,114,134,135,136,137,139,110,138,94,53,54,,57,,58,59,60,61',
137
+ '62,63,64,65,66,,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84',
138
+ '86,87,89,85,88,145,,,144,140,143,141,142,111,112,113,115,116,117,118',
139
+ ',119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,114,134',
140
+ '135,136,137,139,110,138,145,,,144,140,143,141,142,111,112,113,115,116',
141
+ '117,118,,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133',
142
+ '114,134,135,136,137,139,110,138,145,,,144,140,143,141,142,111,112,113',
143
+ '115,116,117,118,,119,120,121,122,123,124,125,126,127,128,129,130,131',
144
+ '132,133,114,134,135,136,137,139,110,138,145,,,144,140,143,141,142,111',
145
+ '112,113,115,116,117,118,,119,120,121,122,123,124,125,126,127,128,129',
146
+ '130,131,132,133,114,134,135,136,137,139,110,138,145,,,144,140,143,141',
147
+ '142,111,112,113,115,116,117,118,,119,120,121,122,123,124,125,126,127',
148
+ '128,129,130,131,132,133,114,134,135,136,137,139,110,138,145,,,144,140',
149
+ '143,141,142,111,112,113,115,116,117,118,,119,120,121,122,123,124,125',
150
+ '126,127,128,129,130,131,132,133,114,134,135,136,137,139,110,138,145',
151
+ ',,144,140,143,141,142,111,112,113,115,116,117,118,,119,120,121,122,123',
152
+ '124,125,126,127,128,129,130,131,132,133,114,134,135,136,137,139,110',
153
+ '138,145,,,144,140,143,141,142,111,112,113,115,116,117,118,,119,120,121',
154
+ '122,123,124,125,126,127,128,129,130,131,132,133,114,134,135,136,137',
155
+ '139,110,138,145,,,144,140,143,141,142,111,112,113,115,116,117,118,,119',
156
+ '120,121,122,123,124,125,126,127,128,129,130,131,132,133,114,134,135',
157
+ '136,137,139,110,138,145,,,144,140,143,141,142,111,112,113,115,116,117',
158
+ '118,,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,114',
159
+ '134,135,136,137,139,110,138,145,,,144,140,143,141,142,111,112,113,115',
160
+ '116,117,118,,119,120,121,122,123,124,125,126,127,128,129,130,131,132',
161
+ '133,114,134,135,136,137,139,110,138,145,,,144,140,143,141,142,111,112',
162
+ '113,115,116,117,118,,119,120,121,122,123,124,125,126,127,128,129,130',
163
+ '131,132,133,114,134,135,136,137,139,110,138,145,,,144,140,143,141,142',
164
+ '111,112,113,115,116,117,118,,119,120,121,122,123,124,125,126,127,128',
165
+ '129,130,131,132,133,114,134,135,136,137,139,110,138,145,,,144,140,143',
166
+ '141,142,111,112,113,115,116,117,118,,119,120,121,122,123,124,125,126',
167
+ '127,128,129,130,131,132,133,114,134,135,136,137,139,110,138,145,,,144',
168
+ '140,143,141,142,111,112,113,115,116,117,118,,119,120,121,122,123,124',
169
+ '125,126,127,128,129,130,131,132,133,114,134,135,136,137,139,110,138',
170
+ '6,7,,10,,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30',
171
+ '31,32,33,34,35,36,37,38,39,40,41,42,43,101,102,,57,,58,59,60,61,62,63',
172
+ '64,65,66,,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87',
173
+ '89,85,88,47,48,,10,,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
174
+ '27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,47,48,,10,,11,12',
193
175
  '13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35',
194
- '36,37,38,39,40,41,42,52,53,,56,,57,58,59,60,61,62,63,64,65,66,67,68',
195
- '69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,86,88,84,87,6,7,,10',
176
+ '36,37,38,39,40,41,42,43,101,102,,57,,58,59,60,61,62,63,64,65,66,,67',
177
+ '68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,89,85,88,6',
178
+ '7,,10,,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
179
+ '32,33,34,35,36,37,38,39,40,41,42,43,53,54,,57,,58,59,60,61,62,63,64',
180
+ '65,66,,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,89',
181
+ '85,88,101,102,,57,,58,59,60,61,62,63,64,65,66,,67,68,69,70,71,72,73',
182
+ '74,75,76,77,78,79,80,81,82,83,84,86,87,89,85,88,47,48,,10,,11,12,13',
183
+ '14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36',
184
+ '37,38,39,40,41,42,43,101,102,,57,,58,59,60,61,62,63,64,65,66,,67,68',
185
+ '69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,89,85,88,47,48',
186
+ ',10,,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
187
+ '32,33,34,35,36,37,38,39,40,41,42,43,53,54,,57,,58,59,60,61,62,63,64',
188
+ '65,66,,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,89',
189
+ '85,88,101,102,,57,,58,59,60,61,62,63,64,65,66,,67,68,69,70,71,72,73',
190
+ '74,75,76,77,78,79,80,81,82,83,84,86,87,89,85,88,47,48,,10,,11,12,13',
191
+ '14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36',
192
+ '37,38,39,40,41,42,43,53,54,,57,,58,59,60,61,62,63,64,65,66,,67,68,69',
193
+ '70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,89,85,88,47,48,,10',
196
194
  ',11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33',
197
- '34,35,36,37,38,39,40,41,42,6,7,,10,,11,12,13,14,15,16,17,18,19,20,21',
198
- '22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,52,53',
199
- ',56,,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77',
200
- '78,79,80,81,82,83,85,86,88,84,87,100,101,,56,,57,58,59,60,61,62,63,64',
201
- '65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,86,88,84',
202
- '87,147,147,44,44,44,153,152,149,145,154,147,,,,,146' ]
203
- racc_action_table = arr = ::Array.new(2540, nil)
195
+ '34,35,36,37,38,39,40,41,42,43,6,7,,10,,11,12,13,14,15,16,17,18,19,20',
196
+ '21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43',
197
+ '53,54,,57,,58,59,60,61,62,63,64,65,66,,67,68,69,70,71,72,73,74,75,76',
198
+ '77,78,79,80,81,82,83,84,86,87,89,85,88,6,7,,10,,11,12,13,14,15,16,17',
199
+ '18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40',
200
+ '41,42,43,6,7,,10,,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27',
201
+ '28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,53,54,,57,,58,59,60',
202
+ '61,62,63,64,65,66,,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83',
203
+ '84,86,87,89,85,88,101,102,,57,,58,59,60,61,62,63,64,65,66,,67,68,69',
204
+ '70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,86,87,89,85,88,148,148',
205
+ '45,45,45,154,153,150,146,155,148,,,,,147' ]
206
+ racc_action_table = arr = ::Array.new(2607, nil)
204
207
  idx = 0
205
208
  clist.each do |str|
206
209
  str.split(',', -1).each do |i|
@@ -210,134 +213,135 @@ clist = [
210
213
  end
211
214
 
212
215
  clist = [
213
- '0,0,0,5,0,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0',
214
- '0,0,0,0,144,2,1,144,144,144,144,144,144,144,144,144,144,144,144,144',
215
- '144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144',
216
- '144,144,144,144,144,143,51,148,143,143,143,143,143,143,143,143,143,143',
217
- '143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143',
218
- '143,143,143,143,143,143,143,143,142,99,45,142,142,142,142,142,142,142',
216
+ '0,0,0,5,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0',
217
+ '0,0,0,0,0,145,2,1,145,145,145,145,145,145,145,145,145,145,145,145,52',
218
+ '145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145',
219
+ '145,145,145,145,145,145,144,149,100,144,144,144,144,144,144,144,144',
220
+ '144,144,144,144,46,144,144,144,144,144,144,144,144,144,144,144,144,144',
221
+ '144,144,144,144,144,144,144,144,144,144,143,49,,143,143,143,143,143',
222
+ '143,143,143,143,143,143,143,,143,143,143,143,143,143,143,143,143,143',
223
+ '143,143,143,143,143,143,143,143,143,143,143,143,143,4,4,4,,4,,4,4,4',
224
+ '4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,142,,,142',
225
+ '142,142,142,142,142,142,142,142,142,142,142,,142,142,142,142,142,142',
219
226
  '142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142',
220
- '142,142,142,142,142,142,142,142,142,142,142,4,4,4,48,4,,4,4,4,4,4,4',
221
- '4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,141,,,141,141,141',
227
+ '141,,,141,141,141,141,141,141,141,141,141,141,141,141,,141,141,141,141',
222
228
  '141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141',
223
- '141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,140,,,140',
224
- '140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140',
229
+ '141,141,140,,,140,140,140,140,140,140,140,140,140,140,140,140,,140,140',
225
230
  '140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140',
226
- '139,,,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139',
231
+ '140,140,140,140,10,10,10,,10,,10,10,10,10,10,10,10,10,10,10,10,10,10',
232
+ '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11',
233
+ ',11,,11,11,11,11,11,11,11,11,11,,11,11,11,11,11,11,11,11,11,11,11,11',
234
+ '11,11,11,11,11,11,11,11,11,11,11,12,12,12,,12,,12,12,12,12,12,12,12',
235
+ '12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12',
236
+ '12,12,12,139,,,139,139,139,139,139,139,139,139,139,139,139,139,,139',
227
237
  '139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139',
228
- '139,139,10,10,10,,10,,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10',
229
- '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,,11,,11,11',
230
- '11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11',
231
- '11,11,11,11,11,11,11,12,12,12,,12,,12,12,12,12,12,12,12,12,12,12,12',
232
- '12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,138,',
233
- ',138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138',
234
- '138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138',
235
- '138,137,,,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137',
236
- '137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137',
237
- '137,137,137,136,,,136,136,136,136,136,136,136,136,136,136,136,136,136',
238
- '136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136',
239
- '136,136,136,136,136,135,,,135,135,135,135,135,135,135,135,135,135,135',
240
- '135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135',
241
- '135,135,135,135,135,135,135,134,,,134,134,134,134,134,134,134,134,134',
242
- '134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134',
243
- '134,134,134,134,134,134,134,134,134,133,,,133,133,133,133,133,133,133',
238
+ '139,139,139,139,139,138,,,138,138,138,138,138,138,138,138,138,138,138',
239
+ '138,,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138',
240
+ '138,138,138,138,138,138,138,137,,,137,137,137,137,137,137,137,137,137',
241
+ '137,137,137,,137,137,137,137,137,137,137,137,137,137,137,137,137,137',
242
+ '137,137,137,137,137,137,137,137,137,136,,,136,136,136,136,136,136,136',
243
+ '136,136,136,136,136,,136,136,136,136,136,136,136,136,136,136,136,136',
244
+ '136,136,136,136,136,136,136,136,136,136,136,135,,,135,135,135,135,135',
245
+ '135,135,135,135,135,135,135,,135,135,135,135,135,135,135,135,135,135',
246
+ '135,135,135,135,135,135,135,135,135,135,135,135,135,134,,,134,134,134',
247
+ '134,134,134,134,134,134,134,134,134,,134,134,134,134,134,134,134,134',
248
+ '134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,133,,,133',
249
+ '133,133,133,133,133,133,133,133,133,133,133,,133,133,133,133,133,133',
244
250
  '133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133',
245
- '133,133,133,133,133,133,133,133,133,133,133,132,,,132,132,132,132,132',
251
+ '132,,,132,132,132,132,132,132,132,132,132,132,132,132,,132,132,132,132',
246
252
  '132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132',
247
- '132,132,132,132,132,132,132,132,132,132,132,132,132,131,,,131,131,131',
253
+ '132,132,131,,,131,131,131,131,131,131,131,131,131,131,131,131,,131,131',
248
254
  '131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131',
249
- '131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,130,,,130',
250
- '130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130',
251
- '130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130',
252
- '129,,,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129',
253
- '129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129',
254
- '129,129,56,56,56,,56,,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56',
255
- '56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,57,57,,57,,57,57',
256
- '57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57',
257
- '57,57,57,57,57,57,57,58,58,58,,58,,58,58,58,58,58,58,58,58,58,58,58',
258
- '58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,88,,',
259
- '88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88',
260
- '88,88,88,88,88,88,88,88,88,88,88,88,128,,,128,128,128,128,128,128,128',
255
+ '131,131,131,131,130,,,130,130,130,130,130,130,130,130,130,130,130,130',
256
+ ',130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130',
257
+ '130,130,130,130,130,130,57,57,57,,57,,57,57,57,57,57,57,57,57,57,,57',
258
+ '57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,58',
259
+ '58,58,,58,,58,58,58,58,58,58,58,58,58,,58,58,58,58,58,58,58,58,58,58',
260
+ '58,58,58,58,58,58,58,58,58,58,58,58,58,59,59,59,,59,,59,59,59,59,59',
261
+ '59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59',
262
+ '59,59,59,59,59,89,,,89,89,89,89,89,89,89,89,89,89,89,89,,89,89,89,89',
263
+ '89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,129,,,129,129',
264
+ '129,129,129,129,129,129,129,129,129,129,,129,129,129,129,129,129,129',
265
+ '129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128',
266
+ ',,128,128,128,128,128,128,128,128,128,128,128,128,,128,128,128,128,128',
261
267
  '128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128',
262
- '128,128,128,128,128,128,128,128,128,128,128,127,,,127,127,127,127,127',
268
+ '128,127,,,127,127,127,127,127,127,127,127,127,127,127,127,,127,127,127',
263
269
  '127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127',
264
- '127,127,127,127,127,127,127,127,127,127,127,127,127,126,,,126,126,126',
270
+ '127,127,127,126,,,126,126,126,126,126,126,126,126,126,126,126,126,,126',
265
271
  '126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126',
266
- '126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,125,,,125',
272
+ '126,126,126,126,126,94,94,94,,94,,94,94,94,94,94,94,94,94,94,,94,94',
273
+ '94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,125,',
274
+ ',125,125,125,125,125,125,125,125,125,125,125,125,,125,125,125,125,125',
267
275
  '125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125',
268
- '125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125',
269
- '93,93,93,,93,,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93',
270
- '93,93,93,93,93,93,93,93,93,93,93,93,93,93,124,,,124,124,124,124,124',
276
+ '125,124,,,124,124,124,124,124,124,124,124,124,124,124,124,,124,124,124',
271
277
  '124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124',
272
- '124,124,124,124,124,124,124,124,124,124,124,124,124,123,,,123,123,123',
278
+ '124,124,124,123,,,123,123,123,123,123,123,123,123,123,123,123,123,,123',
273
279
  '123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123',
274
- '123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,122,,,122',
275
- '122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122',
276
- '122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122',
277
- '121,,,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121',
278
- '121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121',
279
- '121,121,120,,,120,120,120,120,120,120,120,120,120,120,120,120,120,120',
280
- '120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120',
281
- '120,120,120,120,119,,,119,119,119,119,119,119,119,119,119,119,119,119',
282
- '119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119',
283
- '119,119,119,119,119,119,118,,,118,118,118,118,118,118,118,118,118,118',
284
- '118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118',
285
- '118,118,118,118,118,118,118,118,117,,,117,117,117,117,117,117,117,117',
280
+ '123,123,123,123,123,122,,,122,122,122,122,122,122,122,122,122,122,122',
281
+ '122,,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122',
282
+ '122,122,122,122,122,122,122,121,,,121,121,121,121,121,121,121,121,121',
283
+ '121,121,121,,121,121,121,121,121,121,121,121,121,121,121,121,121,121',
284
+ '121,121,121,121,121,121,121,121,121,120,,,120,120,120,120,120,120,120',
285
+ '120,120,120,120,120,,120,120,120,120,120,120,120,120,120,120,120,120',
286
+ '120,120,120,120,120,120,120,120,120,120,120,119,,,119,119,119,119,119',
287
+ '119,119,119,119,119,119,119,,119,119,119,119,119,119,119,119,119,119',
288
+ '119,119,119,119,119,119,119,119,119,119,119,119,119,118,,,118,118,118',
289
+ '118,118,118,118,118,118,118,118,118,,118,118,118,118,118,118,118,118',
290
+ '118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,117,,,117',
291
+ '117,117,117,117,117,117,117,117,117,117,117,,117,117,117,117,117,117',
286
292
  '117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117',
287
- '117,117,117,117,117,117,117,117,117,117,116,,,116,116,116,116,116,116',
293
+ '116,,,116,116,116,116,116,116,116,116,116,116,116,116,,116,116,116,116',
288
294
  '116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116',
289
- '116,116,116,116,116,116,116,116,116,116,116,116,115,,,115,115,115,115',
295
+ '116,116,115,,,115,115,115,115,115,115,115,115,115,115,115,115,,115,115',
290
296
  '115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115',
291
- '115,115,115,115,115,115,115,115,115,115,115,115,115,115,114,,,114,114',
292
- '114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114',
293
- '114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,113',
294
- ',,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113',
295
- '113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113',
296
- '113,110,,,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110',
297
- '110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110',
298
- '110,110,110,111,,,111,111,111,111,111,111,111,111,111,111,111,111,111',
299
- '111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111',
300
- '111,111,111,111,111,112,,,112,112,112,112,112,112,112,112,112,112,112',
301
- '112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112',
302
- '112,112,112,112,112,112,112,53,53,,53,,53,53,53,53,53,53,53,53,53,53',
303
- '53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,190',
304
- '190,,190,,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190',
305
- '190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190',
306
- '151,151,,151,,151,151,151,151,151,151,151,151,151,151,151,151,151,151',
307
- '151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151',
308
- '151,104,104,,104,,104,104,104,104,104,104,104,104,104,104,104,104,104',
309
- '104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104',
310
- '104,104,103,103,,103,,103,103,103,103,103,103,103,103,103,103,103,103',
311
- '103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103',
312
- '103,103,103,101,101,,101,,101,101,101,101,101,101,101,101,101,101,101',
313
- '101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101',
314
- '101,101,101,101,100,100,,100,,100,100,100,100,100,100,100,100,100,100',
315
- '100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100',
316
- '100,100,100,100,100,150,150,,150,,150,150,150,150,150,150,150,150,150',
317
- '150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150',
318
- '150,150,150,150,150,150,98,98,,98,,98,98,98,98,98,98,98,98,98,98,98',
319
- '98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,97,97',
320
- ',97,,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97',
321
- '97,97,97,97,97,97,97,97,97,97,97,96,96,,96,,96,96,96,96,96,96,96,96',
322
- '96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96',
323
- '96,147,147,,147,,147,147,147,147,147,147,147,147,147,147,147,147,147',
324
- '147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147',
325
- '147,147,92,92,,92,,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92',
326
- '92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,3,3,,3,,3,3,3,3,3,3,3,3',
327
- '3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,,6,,6,6,6,6,6,6',
328
- '6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,89,89,,89,,89,89',
329
- '89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89',
330
- '89,89,89,89,89,89,89,7,7,,7,,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7',
331
- '7,7,7,7,7,7,7,7,7,7,7,7,52,52,,52,,52,52,52,52,52,52,52,52,52,52,52',
332
- '52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,44,44',
333
- ',44,,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44',
334
- '44,44,44,44,44,44,44,44,44,44,44,47,47,,47,,47,47,47,47,47,47,47,47',
335
- '47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47',
336
- '47,46,46,,46,,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46',
337
- '46,46,46,46,46,46,46,46,46,46,46,46,46,46,50,50,,50,,50,50,50,50,50',
338
- '50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50',
339
- '50,50,50,50,106,105,94,90,107,106,105,94,90,107,91,,,,,91' ]
340
- racc_action_check = arr = ::Array.new(2540, nil)
297
+ '115,115,115,115,114,,,114,114,114,114,114,114,114,114,114,114,114,114',
298
+ ',114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114',
299
+ '114,114,114,114,114,114,111,,,111,111,111,111,111,111,111,111,111,111',
300
+ '111,111,,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111',
301
+ '111,111,111,111,111,111,111,111,112,,,112,112,112,112,112,112,112,112',
302
+ '112,112,112,112,,112,112,112,112,112,112,112,112,112,112,112,112,112',
303
+ '112,112,112,112,112,112,112,112,112,112,113,,,113,113,113,113,113,113',
304
+ '113,113,113,113,113,113,,113,113,113,113,113,113,113,113,113,113,113',
305
+ '113,113,113,113,113,113,113,113,113,113,113,113,54,54,,54,,54,54,54',
306
+ '54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54',
307
+ '54,54,54,54,54,54,54,191,191,,191,,191,191,191,191,191,191,191,191,191',
308
+ ',191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191',
309
+ '191,191,191,191,191,191,152,152,,152,,152,152,152,152,152,152,152,152',
310
+ '152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152',
311
+ '152,152,152,152,152,152,152,152,105,105,,105,,105,105,105,105,105,105',
312
+ '105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105',
313
+ '105,105,105,105,105,105,105,105,105,105,104,104,,104,,104,104,104,104',
314
+ '104,104,104,104,104,,104,104,104,104,104,104,104,104,104,104,104,104',
315
+ '104,104,104,104,104,104,104,104,104,104,104,102,102,,102,,102,102,102',
316
+ '102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102',
317
+ '102,102,102,102,102,102,102,102,102,102,102,102,102,101,101,,101,,101',
318
+ '101,101,101,101,101,101,101,101,,101,101,101,101,101,101,101,101,101',
319
+ '101,101,101,101,101,101,101,101,101,101,101,101,101,101,151,151,,151',
320
+ ',151,151,151,151,151,151,151,151,151,,151,151,151,151,151,151,151,151',
321
+ '151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,99,99,,99',
322
+ ',99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99',
323
+ '99,99,99,99,99,99,99,99,99,99,98,98,,98,,98,98,98,98,98,98,98,98,98',
324
+ ',98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98',
325
+ '97,97,,97,,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97',
326
+ '97,97,97,97,97,97,97,97,97,97,97,97,97,97,148,148,,148,,148,148,148',
327
+ '148,148,148,148,148,148,,148,148,148,148,148,148,148,148,148,148,148',
328
+ '148,148,148,148,148,148,148,148,148,148,148,148,93,93,,93,,93,93,93',
329
+ '93,93,93,93,93,93,,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93',
330
+ '93,93,93,93,93,93,3,3,,3,,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3',
331
+ '3,3,3,3,3,3,3,3,3,3,3,3,6,6,,6,,6,6,6,6,6,6,6,6,6,,6,6,6,6,6,6,6,6,6',
332
+ '6,6,6,6,6,6,6,6,6,6,6,6,6,6,90,90,,90,,90,90,90,90,90,90,90,90,90,90',
333
+ '90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90',
334
+ '7,7,,7,,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7',
335
+ '7,7,7,53,53,,53,,53,53,53,53,53,53,53,53,53,,53,53,53,53,53,53,53,53',
336
+ '53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,45,45,,45,,45,45,45,45',
337
+ '45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45',
338
+ '45,45,45,45,45,45,48,48,,48,,48,48,48,48,48,48,48,48,48,48,48,48,48',
339
+ '48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,,47',
340
+ ',47,47,47,47,47,47,47,47,47,,47,47,47,47,47,47,47,47,47,47,47,47,47',
341
+ '47,47,47,47,47,47,47,47,47,47,51,51,,51,,51,51,51,51,51,51,51,51,51',
342
+ ',51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51',
343
+ '107,106,95,91,108,107,106,95,91,108,92,,,,,92' ]
344
+ racc_action_check = arr = ::Array.new(2607, nil)
341
345
  idx = 0
342
346
  clist.each do |str|
343
347
  str.split(',', -1).each do |i|
@@ -347,232 +351,235 @@ clist = [
347
351
  end
348
352
 
349
353
  racc_action_pointer = [
350
- -2, 40, 37, 2188, 150, -2, 2225, 2299, nil, nil,
351
- 302, 340, 378, nil, nil, nil, nil, nil, nil, nil,
354
+ -2, 41, 38, 2246, 154, -2, 2284, 2360, nil, nil,
355
+ 310, 349, 388, nil, nil, nil, nil, nil, nil, nil,
352
356
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
353
357
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
354
- nil, nil, nil, 5, 2373, 111, 2447, 2410, 153, nil,
355
- 2484, 72, 2336, 1707, nil, nil, 796, 834, 872, nil,
358
+ nil, nil, nil, nil, 5, 2436, 88, 2512, 2474, 116,
359
+ nil, 2550, 49, 2398, 1752, nil, nil, 817, 856, 895,
356
360
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
357
361
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
358
- nil, nil, nil, nil, nil, nil, nil, nil, 910, 2262,
359
- 2525, 2532, 2151, 1100, 2524, nil, 2077, 2040, 2003, 110,
360
- 1929, 1892, nil, 1855, 1818, 2523, 2522, 2526, nil, nil,
361
- 1594, 1632, 1670, 1556, 1518, 1480, 1442, 1404, 1366, 1328,
362
- 1290, 1252, 1214, 1176, 1138, 1062, 1024, 986, 948, 758,
363
- 720, 682, 644, 606, 568, 530, 492, 454, 416, 264,
364
- 226, 188, 112, 74, 36, nil, nil, 2114, 76, nil,
365
- 1966, 1781, nil, nil, nil, nil, nil, nil, nil, nil,
362
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 934,
363
+ 2322, 2592, 2599, 2208, 1129, 2591, nil, 2132, 2094, 2056,
364
+ 75, 1980, 1942, nil, 1904, 1866, 2590, 2589, 2593, nil,
365
+ nil, 1636, 1675, 1714, 1597, 1558, 1519, 1480, 1441, 1402,
366
+ 1363, 1324, 1285, 1246, 1207, 1168, 1090, 1051, 1012, 973,
367
+ 778, 739, 700, 661, 622, 583, 544, 505, 466, 427,
368
+ 271, 232, 193, 115, 76, 37, nil, nil, 2170, 77,
369
+ nil, 2018, 1828, nil, nil, nil, nil, nil, nil, nil,
366
370
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
367
371
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
368
372
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
369
- 1744 ]
373
+ nil, 1790 ]
370
374
 
371
375
  racc_action_default = [
372
- -2, -136, -1, -3, -2, -7, -13, -14, -15, -17,
373
- -2, -51, -2, -21, -22, -23, -24, -25, -26, -27,
376
+ -2, -139, -1, -3, -2, -7, -13, -14, -15, -17,
377
+ -2, -52, -2, -21, -22, -23, -24, -25, -26, -27,
374
378
  -28, -29, -30, -31, -32, -33, -34, -35, -36, -37,
375
379
  -38, -39, -40, -41, -42, -43, -44, -45, -46, -47,
376
- -48, -49, -50, -136, -5, -8, -136, -136, -6, -16,
377
- -9, -56, -62, -63, -64, -66, -51, -51, -2, -70,
380
+ -48, -49, -50, -51, -139, -5, -8, -139, -139, -6,
381
+ -16, -9, -57, -63, -64, -65, -67, -52, -52, -2,
378
382
  -71, -72, -73, -74, -75, -76, -77, -78, -79, -80,
379
383
  -81, -82, -83, -84, -85, -86, -87, -88, -89, -90,
380
- -91, -92, -93, -94, -95, -96, -97, -98, -136, -11,
381
- -136, -136, -52, -51, -136, 191, -4, -10, -12, -57,
382
- -136, -136, -65, -58, -60, -136, -136, -136, -99, -100,
383
- -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
384
- -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
385
- -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
386
- -136, -136, -136, -136, -136, -18, -19, -54, -55, -20,
387
- -59, -61, -67, -68, -69, -101, -102, -103, -104, -105,
388
- -106, -107, -108, -109, -110, -111, -112, -113, -114, -115,
389
- -116, -117, -118, -119, -120, -121, -122, -123, -124, -125,
390
- -126, -127, -128, -129, -130, -131, -132, -133, -134, -135,
391
- -53 ]
384
+ -91, -92, -93, -94, -95, -96, -97, -98, -99, -101,
385
+ -11, -139, -139, -53, -52, -139, 192, -4, -10, -12,
386
+ -58, -139, -139, -66, -59, -61, -139, -139, -139, -100,
387
+ -102, -101, -101, -101, -101, -101, -101, -101, -101, -101,
388
+ -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
389
+ -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
390
+ -101, -101, -101, -101, -101, -101, -18, -19, -55, -56,
391
+ -20, -60, -62, -68, -69, -70, -103, -104, -105, -106,
392
+ -107, -108, -109, -110, -111, -112, -113, -114, -115, -116,
393
+ -117, -118, -119, -120, -121, -122, -123, -124, -125, -127,
394
+ -128, -129, -130, -131, -132, -133, -134, -135, -136, -137,
395
+ -138, -54 ]
392
396
 
393
397
  racc_goto_table = [
394
- 45, 2, 50, 89, 99, 48, 1, 91, nil, nil,
395
- nil, 90, nil, 94, nil, nil, nil, nil, nil, nil,
396
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
398
+ 46, 1, 51, 100, 2, 92, 90, nil, 49, nil,
399
+ nil, nil, nil, nil, 91, nil, 95, nil, nil, nil,
397
400
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
398
- 96, nil, 97, 98, nil, nil, 99, nil, 103, 104,
399
- nil, 99, 105, 106, nil, nil, nil, 99, nil, 107,
400
401
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
402
+ nil, nil, nil, 98, 97, 100, nil, 99, nil, 104,
403
+ 100, 106, 107, 105, nil, nil, 100, nil, nil, nil,
404
+ nil, nil, nil, 108, nil, nil, nil, nil, nil, nil,
401
405
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
402
- nil, nil, nil, 108, nil, nil, 45, nil, nil, 148,
403
- nil, nil, nil, 45, nil, 45, 150, 151, nil, nil,
404
- nil, 45, nil, nil, 99, 155, 156, 157, 158, 159,
405
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
406
- 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
407
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
408
- nil, nil, nil, 190, 99, nil, nil, nil, 45 ]
406
+ nil, nil, 109, nil, nil, nil, nil, 46, 149, nil,
407
+ nil, nil, nil, nil, 46, nil, 46, 151, nil, nil,
408
+ nil, 152, 46, 100, 156, 157, 158, 159, 160, 161,
409
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
410
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
411
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, nil,
412
+ nil, nil, nil, 100, 191, nil, nil, nil, nil, 46 ]
409
413
 
410
414
  racc_goto_check = [
411
- 4, 2, 5, 3, 9, 2, 1, 8, nil, nil,
412
- nil, 2, nil, 2, nil, nil, nil, nil, nil, nil,
415
+ 4, 1, 5, 9, 2, 8, 3, nil, 2, nil,
416
+ nil, nil, nil, nil, 2, nil, 2, nil, nil, nil,
413
417
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
414
418
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
415
- 3, nil, 5, 3, nil, nil, 9, nil, 5, 3,
416
- nil, 9, 8, 8, nil, nil, nil, 9, nil, 2,
419
+ nil, nil, nil, 5, 3, 9, nil, 3, nil, 5,
420
+ 9, 8, 8, 3, nil, nil, 9, nil, nil, nil,
421
+ nil, nil, nil, 2, nil, nil, nil, nil, nil, nil,
417
422
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
418
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
419
- nil, nil, nil, 12, nil, nil, 4, nil, nil, 8,
420
- nil, nil, nil, 4, nil, 4, 5, 3, nil, nil,
421
- nil, 4, nil, nil, 9, 12, 12, 12, 12, 12,
422
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
423
+ nil, nil, 12, nil, nil, nil, nil, 4, 8, nil,
424
+ nil, nil, nil, nil, 4, nil, 4, 5, nil, nil,
425
+ nil, 3, 4, 9, 12, 12, 12, 12, 12, 12,
423
426
  12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
424
427
  12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
425
- nil, nil, nil, 5, 9, nil, nil, nil, 4 ]
428
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, nil,
429
+ nil, nil, nil, 9, 5, nil, nil, nil, nil, 4 ]
426
430
 
427
431
  racc_goto_pointer = [
428
- nil, 6, 1, -4, -3, -4, nil, nil, -4, -46,
429
- nil, nil, -5 ]
432
+ nil, 1, 4, -1, -3, -4, nil, nil, -6, -48,
433
+ nil, nil, -7 ]
430
434
 
431
435
  racc_goto_default = [
432
- nil, nil, nil, 3, 5, 92, 8, 9, nil, 51,
433
- 54, 55, nil ]
436
+ nil, nil, nil, 3, 5, 93, 8, 9, nil, 52,
437
+ 55, 56, nil ]
434
438
 
435
439
  racc_reduce_table = [
436
440
  0, 0, :racc_error,
437
- 1, 41, :_reduce_none,
438
- 0, 42, :_reduce_2,
439
- 1, 42, :_reduce_3,
440
- 3, 42, :_reduce_4,
441
- 2, 42, :_reduce_5,
442
- 2, 42, :_reduce_6,
443
- 1, 43, :_reduce_7,
444
- 2, 43, :_reduce_8,
445
- 2, 43, :_reduce_9,
446
- 3, 43, :_reduce_10,
447
- 2, 43, :_reduce_11,
448
- 3, 43, :_reduce_12,
449
- 1, 43, :_reduce_13,
450
- 1, 43, :_reduce_14,
451
- 1, 44, :_reduce_15,
452
- 2, 44, :_reduce_16,
453
- 1, 46, :_reduce_17,
454
- 3, 46, :_reduce_18,
455
- 3, 46, :_reduce_19,
456
- 3, 46, :_reduce_20,
457
- 1, 47, :_reduce_21,
458
- 1, 47, :_reduce_22,
459
- 1, 47, :_reduce_23,
460
- 1, 47, :_reduce_24,
461
- 1, 47, :_reduce_25,
462
- 1, 47, :_reduce_26,
463
- 1, 47, :_reduce_27,
464
- 1, 47, :_reduce_28,
465
- 1, 47, :_reduce_29,
466
- 1, 47, :_reduce_30,
467
- 1, 47, :_reduce_31,
468
- 1, 47, :_reduce_32,
469
- 1, 47, :_reduce_33,
470
- 1, 47, :_reduce_34,
471
- 1, 47, :_reduce_35,
472
- 1, 47, :_reduce_36,
473
- 1, 47, :_reduce_37,
474
- 1, 47, :_reduce_38,
475
- 1, 47, :_reduce_39,
476
- 1, 47, :_reduce_40,
477
- 1, 47, :_reduce_41,
478
- 1, 47, :_reduce_42,
479
- 1, 47, :_reduce_43,
480
- 1, 47, :_reduce_44,
481
- 1, 47, :_reduce_45,
482
- 1, 47, :_reduce_46,
483
- 1, 47, :_reduce_47,
484
- 1, 47, :_reduce_48,
485
- 1, 47, :_reduce_49,
486
- 1, 47, :_reduce_50,
487
- 0, 48, :_reduce_51,
488
- 1, 48, :_reduce_52,
489
- 3, 48, :_reduce_53,
490
- 2, 48, :_reduce_54,
491
- 2, 48, :_reduce_55,
492
- 1, 45, :_reduce_56,
493
- 2, 45, :_reduce_57,
494
- 2, 45, :_reduce_58,
495
- 3, 45, :_reduce_59,
496
- 2, 45, :_reduce_60,
497
- 3, 45, :_reduce_61,
498
- 1, 45, :_reduce_62,
499
- 1, 45, :_reduce_63,
500
- 1, 49, :_reduce_64,
501
- 2, 49, :_reduce_65,
502
- 1, 50, :_reduce_66,
503
- 3, 50, :_reduce_67,
504
- 3, 50, :_reduce_68,
505
- 3, 50, :_reduce_69,
506
- 1, 51, :_reduce_70,
507
- 1, 51, :_reduce_71,
508
- 1, 51, :_reduce_72,
509
- 1, 51, :_reduce_73,
510
- 1, 51, :_reduce_74,
511
- 1, 51, :_reduce_75,
512
- 1, 51, :_reduce_76,
513
- 1, 51, :_reduce_77,
514
- 1, 51, :_reduce_78,
515
- 1, 51, :_reduce_79,
516
- 1, 51, :_reduce_80,
517
- 1, 51, :_reduce_81,
518
- 1, 51, :_reduce_82,
519
- 1, 51, :_reduce_83,
520
- 1, 51, :_reduce_84,
521
- 1, 51, :_reduce_85,
522
- 1, 51, :_reduce_86,
523
- 1, 51, :_reduce_87,
524
- 1, 51, :_reduce_88,
525
- 1, 51, :_reduce_89,
526
- 1, 51, :_reduce_90,
527
- 1, 51, :_reduce_91,
528
- 1, 51, :_reduce_92,
529
- 1, 51, :_reduce_93,
530
- 1, 51, :_reduce_94,
531
- 1, 51, :_reduce_95,
532
- 1, 51, :_reduce_96,
533
- 1, 51, :_reduce_97,
534
- 1, 51, :_reduce_98,
535
- 2, 51, :_reduce_99,
536
- 1, 52, :_reduce_none,
537
- 2, 52, :_reduce_none,
538
- 2, 52, :_reduce_none,
539
- 2, 52, :_reduce_none,
540
- 2, 52, :_reduce_none,
541
- 2, 52, :_reduce_none,
542
- 2, 52, :_reduce_none,
543
- 2, 52, :_reduce_none,
544
- 2, 52, :_reduce_none,
545
- 2, 52, :_reduce_none,
546
- 2, 52, :_reduce_none,
547
- 2, 52, :_reduce_none,
548
- 2, 52, :_reduce_none,
549
- 2, 52, :_reduce_none,
550
- 2, 52, :_reduce_none,
551
- 2, 52, :_reduce_none,
552
- 2, 52, :_reduce_none,
553
- 2, 52, :_reduce_none,
554
- 2, 52, :_reduce_none,
555
- 2, 52, :_reduce_none,
556
- 2, 52, :_reduce_none,
557
- 2, 52, :_reduce_none,
558
- 2, 52, :_reduce_none,
559
- 2, 52, :_reduce_none,
560
- 2, 52, :_reduce_none,
561
- 2, 52, :_reduce_none,
562
- 2, 52, :_reduce_none,
563
- 2, 52, :_reduce_none,
564
- 2, 52, :_reduce_none,
565
- 2, 52, :_reduce_none,
566
- 2, 52, :_reduce_none,
567
- 2, 52, :_reduce_none,
568
- 2, 52, :_reduce_none,
569
- 2, 52, :_reduce_none,
570
- 2, 52, :_reduce_none,
571
- 2, 52, :_reduce_none ]
572
-
573
- racc_reduce_n = 136
574
-
575
- racc_shift_n = 191
441
+ 1, 42, :_reduce_none,
442
+ 0, 43, :_reduce_2,
443
+ 1, 43, :_reduce_3,
444
+ 3, 43, :_reduce_4,
445
+ 2, 43, :_reduce_5,
446
+ 2, 43, :_reduce_6,
447
+ 1, 44, :_reduce_7,
448
+ 2, 44, :_reduce_8,
449
+ 2, 44, :_reduce_9,
450
+ 3, 44, :_reduce_10,
451
+ 2, 44, :_reduce_11,
452
+ 3, 44, :_reduce_12,
453
+ 1, 44, :_reduce_13,
454
+ 1, 44, :_reduce_14,
455
+ 1, 45, :_reduce_15,
456
+ 2, 45, :_reduce_16,
457
+ 1, 47, :_reduce_17,
458
+ 3, 47, :_reduce_18,
459
+ 3, 47, :_reduce_19,
460
+ 3, 47, :_reduce_20,
461
+ 1, 48, :_reduce_21,
462
+ 1, 48, :_reduce_22,
463
+ 1, 48, :_reduce_23,
464
+ 1, 48, :_reduce_24,
465
+ 1, 48, :_reduce_25,
466
+ 1, 48, :_reduce_26,
467
+ 1, 48, :_reduce_27,
468
+ 1, 48, :_reduce_28,
469
+ 1, 48, :_reduce_29,
470
+ 1, 48, :_reduce_30,
471
+ 1, 48, :_reduce_31,
472
+ 1, 48, :_reduce_32,
473
+ 1, 48, :_reduce_33,
474
+ 1, 48, :_reduce_34,
475
+ 1, 48, :_reduce_35,
476
+ 1, 48, :_reduce_36,
477
+ 1, 48, :_reduce_37,
478
+ 1, 48, :_reduce_38,
479
+ 1, 48, :_reduce_39,
480
+ 1, 48, :_reduce_40,
481
+ 1, 48, :_reduce_41,
482
+ 1, 48, :_reduce_42,
483
+ 1, 48, :_reduce_43,
484
+ 1, 48, :_reduce_44,
485
+ 1, 48, :_reduce_45,
486
+ 1, 48, :_reduce_46,
487
+ 1, 48, :_reduce_47,
488
+ 1, 48, :_reduce_48,
489
+ 1, 48, :_reduce_49,
490
+ 1, 48, :_reduce_50,
491
+ 1, 48, :_reduce_51,
492
+ 0, 49, :_reduce_52,
493
+ 1, 49, :_reduce_53,
494
+ 3, 49, :_reduce_54,
495
+ 2, 49, :_reduce_55,
496
+ 2, 49, :_reduce_56,
497
+ 1, 46, :_reduce_57,
498
+ 2, 46, :_reduce_58,
499
+ 2, 46, :_reduce_59,
500
+ 3, 46, :_reduce_60,
501
+ 2, 46, :_reduce_61,
502
+ 3, 46, :_reduce_62,
503
+ 1, 46, :_reduce_63,
504
+ 1, 46, :_reduce_64,
505
+ 1, 50, :_reduce_65,
506
+ 2, 50, :_reduce_66,
507
+ 1, 51, :_reduce_67,
508
+ 3, 51, :_reduce_68,
509
+ 3, 51, :_reduce_69,
510
+ 3, 51, :_reduce_70,
511
+ 1, 52, :_reduce_71,
512
+ 1, 52, :_reduce_72,
513
+ 1, 52, :_reduce_73,
514
+ 1, 52, :_reduce_74,
515
+ 1, 52, :_reduce_75,
516
+ 1, 52, :_reduce_76,
517
+ 1, 52, :_reduce_77,
518
+ 1, 52, :_reduce_78,
519
+ 1, 52, :_reduce_79,
520
+ 1, 52, :_reduce_80,
521
+ 1, 52, :_reduce_81,
522
+ 1, 52, :_reduce_82,
523
+ 1, 52, :_reduce_83,
524
+ 1, 52, :_reduce_84,
525
+ 1, 52, :_reduce_85,
526
+ 1, 52, :_reduce_86,
527
+ 1, 52, :_reduce_87,
528
+ 1, 52, :_reduce_88,
529
+ 1, 52, :_reduce_89,
530
+ 1, 52, :_reduce_90,
531
+ 1, 52, :_reduce_91,
532
+ 1, 52, :_reduce_92,
533
+ 1, 52, :_reduce_93,
534
+ 1, 52, :_reduce_94,
535
+ 1, 52, :_reduce_95,
536
+ 1, 52, :_reduce_96,
537
+ 1, 52, :_reduce_97,
538
+ 1, 52, :_reduce_98,
539
+ 1, 52, :_reduce_99,
540
+ 2, 52, :_reduce_100,
541
+ 0, 53, :_reduce_none,
542
+ 1, 53, :_reduce_none,
543
+ 2, 53, :_reduce_none,
544
+ 2, 53, :_reduce_none,
545
+ 2, 53, :_reduce_none,
546
+ 2, 53, :_reduce_none,
547
+ 2, 53, :_reduce_none,
548
+ 2, 53, :_reduce_none,
549
+ 2, 53, :_reduce_none,
550
+ 2, 53, :_reduce_none,
551
+ 2, 53, :_reduce_none,
552
+ 2, 53, :_reduce_none,
553
+ 2, 53, :_reduce_none,
554
+ 2, 53, :_reduce_none,
555
+ 2, 53, :_reduce_none,
556
+ 2, 53, :_reduce_none,
557
+ 2, 53, :_reduce_none,
558
+ 2, 53, :_reduce_none,
559
+ 2, 53, :_reduce_none,
560
+ 2, 53, :_reduce_none,
561
+ 2, 53, :_reduce_none,
562
+ 2, 53, :_reduce_none,
563
+ 2, 53, :_reduce_none,
564
+ 2, 53, :_reduce_none,
565
+ 2, 53, :_reduce_none,
566
+ 2, 53, :_reduce_none,
567
+ 2, 53, :_reduce_none,
568
+ 2, 53, :_reduce_none,
569
+ 2, 53, :_reduce_none,
570
+ 2, 53, :_reduce_none,
571
+ 2, 53, :_reduce_none,
572
+ 2, 53, :_reduce_none,
573
+ 2, 53, :_reduce_none,
574
+ 2, 53, :_reduce_none,
575
+ 2, 53, :_reduce_none,
576
+ 2, 53, :_reduce_none,
577
+ 2, 53, :_reduce_none,
578
+ 2, 53, :_reduce_none ]
579
+
580
+ racc_reduce_n = 139
581
+
582
+ racc_shift_n = 192
576
583
 
577
584
  racc_token_table = {
578
585
  false => 0,
@@ -592,31 +599,32 @@ racc_token_table = {
592
599
  :LEX_NAMED_REFER => 14,
593
600
  :LEX_NAMED_GENERATE => 15,
594
601
  :LEX_CONTROL_LETTER => 16,
595
- :LEX_META_LETTER => 17,
596
- :LEX_ESCAPED_LETTER => 18,
597
- :LEX_UNICODE => 19,
598
- :LEX_SIMPLIFIED_CLASS => 20,
599
- :LEX_UNICODE_CLASS => 21,
600
- :LEX_BRACKET => 22,
601
- :LEX_ANC_LINE_BEGIN => 23,
602
- :LEX_ANC_LINE_END => 24,
603
- :LEX_ANC_WORD_BOUND => 25,
604
- :LEX_ANC_WORD_UNBOUND => 26,
605
- :LEX_ANC_STRING_BEGIN => 27,
606
- :LEX_ANC_STRING_END => 28,
607
- :LEX_ANC_STRING_END2 => 29,
608
- :LEX_ANC_LOOK_BEHIND2 => 30,
609
- :LEX_ANC_MATCH_START => 31,
610
- :LEX_SPECIAL_LETTER => 32,
611
- :LEX_MINUS => 33,
612
- :LEX_AND_AND => 34,
613
- :LEX_SPACE => 35,
614
- :LEX_SIMPLE_ESCAPE => 36,
615
- :LEX_SHARP => 37,
616
- :LEX_NEW_LINE => 38,
617
- :LEX_ANY_LETTER => 39 }
618
-
619
- racc_nt_base = 40
602
+ :LEX_META_CONTROL_LETTER => 17,
603
+ :LEX_META_LETTER => 18,
604
+ :LEX_ESCAPED_LETTER => 19,
605
+ :LEX_UNICODE => 20,
606
+ :LEX_SIMPLIFIED_CLASS => 21,
607
+ :LEX_UNICODE_CLASS => 22,
608
+ :LEX_BRACKET => 23,
609
+ :LEX_ANC_LINE_BEGIN => 24,
610
+ :LEX_ANC_LINE_END => 25,
611
+ :LEX_ANC_WORD_BOUND => 26,
612
+ :LEX_ANC_WORD_UNBOUND => 27,
613
+ :LEX_ANC_STRING_BEGIN => 28,
614
+ :LEX_ANC_STRING_END => 29,
615
+ :LEX_ANC_STRING_END2 => 30,
616
+ :LEX_ANC_LOOK_BEHIND2 => 31,
617
+ :LEX_ANC_MATCH_START => 32,
618
+ :LEX_SPECIAL_LETTER => 33,
619
+ :LEX_MINUS => 34,
620
+ :LEX_AND_AND => 35,
621
+ :LEX_SPACE => 36,
622
+ :LEX_SIMPLE_ESCAPE => 37,
623
+ :LEX_SHARP => 38,
624
+ :LEX_NEW_LINE => 39,
625
+ :LEX_ANY_LETTER => 40 }
626
+
627
+ racc_nt_base = 41
620
628
 
621
629
  racc_use_result_var = false
622
630
 
@@ -654,6 +662,7 @@ Racc_token_to_s_table = [
654
662
  "LEX_NAMED_REFER",
655
663
  "LEX_NAMED_GENERATE",
656
664
  "LEX_CONTROL_LETTER",
665
+ "LEX_META_CONTROL_LETTER",
657
666
  "LEX_META_LETTER",
658
667
  "LEX_ESCAPED_LETTER",
659
668
  "LEX_UNICODE",
@@ -857,127 +866,127 @@ module_eval(<<'.,.,', 'parser.y', 63)
857
866
 
858
867
  module_eval(<<'.,.,', 'parser.y', 64)
859
868
  def _reduce_28(val, _values)
860
- TLetter.new(:LEX_CONTROL_LETTER, val[0])
869
+ TLetter.new(:LEX_META_CONTROL_LETTER, val[0])
861
870
  end
862
871
  .,.,
863
872
 
864
873
  module_eval(<<'.,.,', 'parser.y', 65)
865
874
  def _reduce_29(val, _values)
866
- TLetter.new(:LEX_ESCAPED_LETTER, val[0])
875
+ TLetter.new(:LEX_CONTROL_LETTER, val[0])
867
876
  end
868
877
  .,.,
869
878
 
870
879
  module_eval(<<'.,.,', 'parser.y', 66)
871
880
  def _reduce_30(val, _values)
872
- TLetter.new(:LEX_UNICODE, val[0])
881
+ TLetter.new(:LEX_ESCAPED_LETTER, val[0])
873
882
  end
874
883
  .,.,
875
884
 
876
885
  module_eval(<<'.,.,', 'parser.y', 67)
877
886
  def _reduce_31(val, _values)
878
- TLetter.new(:LEX_SIMPLIFIED_CLASS, val[0])
887
+ TLetter.new(:LEX_UNICODE, val[0])
879
888
  end
880
889
  .,.,
881
890
 
882
891
  module_eval(<<'.,.,', 'parser.y', 68)
883
892
  def _reduce_32(val, _values)
884
- TLetter.new(:LEX_UNICODE_CLASS, val[0])
893
+ TLetter.new(:LEX_SIMPLIFIED_CLASS, val[0])
885
894
  end
886
895
  .,.,
887
896
 
888
897
  module_eval(<<'.,.,', 'parser.y', 69)
889
898
  def _reduce_33(val, _values)
890
- @bracket_parser.parse(val[0], @options)
899
+ TLetter.new(:LEX_UNICODE_CLASS, val[0])
891
900
  end
892
901
  .,.,
893
902
 
894
903
  module_eval(<<'.,.,', 'parser.y', 70)
895
904
  def _reduce_34(val, _values)
896
- Anchor.new(:LEX_ANC_LINE_BEGIN, val[0])
905
+ @bracket_parser.parse(val[0], @options)
897
906
  end
898
907
  .,.,
899
908
 
900
909
  module_eval(<<'.,.,', 'parser.y', 71)
901
910
  def _reduce_35(val, _values)
902
- Anchor.new(:LEX_ANC_LINE_END, val[0])
911
+ Anchor.new(:LEX_ANC_LINE_BEGIN, val[0])
903
912
  end
904
913
  .,.,
905
914
 
906
915
  module_eval(<<'.,.,', 'parser.y', 72)
907
916
  def _reduce_36(val, _values)
908
- Anchor.new(:LEX_ANC_WORD_BOUND, val[0])
917
+ Anchor.new(:LEX_ANC_LINE_END, val[0])
909
918
  end
910
919
  .,.,
911
920
 
912
921
  module_eval(<<'.,.,', 'parser.y', 73)
913
922
  def _reduce_37(val, _values)
914
- Anchor.new(:LEX_ANC_WORD_UNBOUND, val[0])
923
+ Anchor.new(:LEX_ANC_WORD_BOUND, val[0])
915
924
  end
916
925
  .,.,
917
926
 
918
927
  module_eval(<<'.,.,', 'parser.y', 74)
919
928
  def _reduce_38(val, _values)
920
- Anchor.new(:LEX_ANC_STRING_BEGIN, val[0])
929
+ Anchor.new(:LEX_ANC_WORD_UNBOUND, val[0])
921
930
  end
922
931
  .,.,
923
932
 
924
933
  module_eval(<<'.,.,', 'parser.y', 75)
925
934
  def _reduce_39(val, _values)
926
- Anchor.new(:LEX_ANC_STRING_END, val[0])
935
+ Anchor.new(:LEX_ANC_STRING_BEGIN, val[0])
927
936
  end
928
937
  .,.,
929
938
 
930
939
  module_eval(<<'.,.,', 'parser.y', 76)
931
940
  def _reduce_40(val, _values)
932
- Anchor.new(:LEX_ANC_STRING_END2, val[0])
941
+ Anchor.new(:LEX_ANC_STRING_END, val[0])
933
942
  end
934
943
  .,.,
935
944
 
936
945
  module_eval(<<'.,.,', 'parser.y', 77)
937
946
  def _reduce_41(val, _values)
938
- Anchor.new(:LEX_ANC_LOOK_BEHIND2, val[0])
947
+ Anchor.new(:LEX_ANC_STRING_END2, val[0])
939
948
  end
940
949
  .,.,
941
950
 
942
951
  module_eval(<<'.,.,', 'parser.y', 78)
943
952
  def _reduce_42(val, _values)
944
- Anchor.new(:LEX_ANC_MATCH_START, val[0])
953
+ Anchor.new(:LEX_ANC_LOOK_BEHIND2, val[0])
945
954
  end
946
955
  .,.,
947
956
 
948
957
  module_eval(<<'.,.,', 'parser.y', 79)
949
958
  def _reduce_43(val, _values)
950
- TLetter.new(:LEX_SPECIAL_LETTER, val[0])
959
+ Anchor.new(:LEX_ANC_MATCH_START, val[0])
951
960
  end
952
961
  .,.,
953
962
 
954
963
  module_eval(<<'.,.,', 'parser.y', 80)
955
964
  def _reduce_44(val, _values)
956
- TLetter.new(:LEX_CHAR, val[0])
965
+ SpecialLetter.new(val[0])
957
966
  end
958
967
  .,.,
959
968
 
960
969
  module_eval(<<'.,.,', 'parser.y', 81)
961
970
  def _reduce_45(val, _values)
962
- TLetter.new(:LEX_AND_AND, val[0])
971
+ TLetter.new(:LEX_CHAR, val[0])
963
972
  end
964
973
  .,.,
965
974
 
966
975
  module_eval(<<'.,.,', 'parser.y', 82)
967
976
  def _reduce_46(val, _values)
968
- TLetter.new(:LEX_SPACE, val[0])
977
+ TLetter.new(:LEX_AND_AND, val[0])
969
978
  end
970
979
  .,.,
971
980
 
972
981
  module_eval(<<'.,.,', 'parser.y', 83)
973
982
  def _reduce_47(val, _values)
974
- TLetter.new(:LEX_SIMPLE_ESCAPE, val[0])
983
+ TLetter.new(:LEX_SPACE, val[0])
975
984
  end
976
985
  .,.,
977
986
 
978
987
  module_eval(<<'.,.,', 'parser.y', 84)
979
988
  def _reduce_48(val, _values)
980
- TLetter.new(:LEX_CHAR, val[0])
989
+ TLetter.new(:LEX_SIMPLE_ESCAPE, val[0])
981
990
  end
982
991
  .,.,
983
992
 
@@ -989,163 +998,163 @@ module_eval(<<'.,.,', 'parser.y', 85)
989
998
 
990
999
  module_eval(<<'.,.,', 'parser.y', 86)
991
1000
  def _reduce_50(val, _values)
992
- TLetter.new(:LEX_ANY_LETTER, val[0])
1001
+ TLetter.new(:LEX_CHAR, val[0])
993
1002
  end
994
1003
  .,.,
995
1004
 
996
- module_eval(<<'.,.,', 'parser.y', 91)
1005
+ module_eval(<<'.,.,', 'parser.y', 87)
997
1006
  def _reduce_51(val, _values)
998
- TEmpty.new
1007
+ TLetter.new(:LEX_ANY_LETTER, val[0])
999
1008
  end
1000
1009
  .,.,
1001
1010
 
1002
- module_eval(<<'.,.,', 'parser.y', 93)
1011
+ module_eval(<<'.,.,', 'parser.y', 92)
1003
1012
  def _reduce_52(val, _values)
1004
- Selectable.new(val[0])
1013
+ TEmpty.new
1005
1014
  end
1006
1015
  .,.,
1007
1016
 
1008
- module_eval(<<'.,.,', 'parser.y', 95)
1017
+ module_eval(<<'.,.,', 'parser.y', 94)
1009
1018
  def _reduce_53(val, _values)
1010
- val[0].add(val[2])
1019
+ Selectable.new(val[0])
1011
1020
  end
1012
1021
  .,.,
1013
1022
 
1014
- module_eval(<<'.,.,', 'parser.y', 97)
1023
+ module_eval(<<'.,.,', 'parser.y', 96)
1015
1024
  def _reduce_54(val, _values)
1016
- val[0].add(TEmpty.new)
1025
+ val[0].add(val[2])
1017
1026
  end
1018
1027
  .,.,
1019
1028
 
1020
- module_eval(<<'.,.,', 'parser.y', 99)
1029
+ module_eval(<<'.,.,', 'parser.y', 98)
1021
1030
  def _reduce_55(val, _values)
1022
- Selectable.new(TEmpty.new).add(val[1])
1031
+ val[0].add(TEmpty.new)
1023
1032
  end
1024
1033
  .,.,
1025
1034
 
1026
- module_eval(<<'.,.,', 'parser.y', 103)
1035
+ module_eval(<<'.,.,', 'parser.y', 100)
1027
1036
  def _reduce_56(val, _values)
1028
- Sequence.new(val[0])
1037
+ Selectable.new(TEmpty.new).add(val[1])
1029
1038
  end
1030
1039
  .,.,
1031
1040
 
1032
- module_eval(<<'.,.,', 'parser.y', 105)
1041
+ module_eval(<<'.,.,', 'parser.y', 104)
1033
1042
  def _reduce_57(val, _values)
1034
- val[0].add(val[1])
1043
+ Sequence.new(val[0])
1035
1044
  end
1036
1045
  .,.,
1037
1046
 
1038
- module_eval(<<'.,.,', 'parser.y', 107)
1047
+ module_eval(<<'.,.,', 'parser.y', 106)
1039
1048
  def _reduce_58(val, _values)
1040
- Sequence.new(Paren.new(val[0])).concatinate(val[1])
1049
+ val[0].add(val[1])
1041
1050
  end
1042
1051
  .,.,
1043
1052
 
1044
- module_eval(<<'.,.,', 'parser.y', 109)
1053
+ module_eval(<<'.,.,', 'parser.y', 108)
1045
1054
  def _reduce_59(val, _values)
1046
- val[0].add(Paren.new(val[1])).concatinate(val[2])
1055
+ Sequence.new(Paren.new(val[0])).concatinate(val[1])
1047
1056
  end
1048
1057
  .,.,
1049
1058
 
1050
- module_eval(<<'.,.,', 'parser.y', 111)
1059
+ module_eval(<<'.,.,', 'parser.y', 110)
1051
1060
  def _reduce_60(val, _values)
1052
- Sequence.new(Paren.new(val[0])).concatinate(val[1])
1061
+ val[0].add(Paren.new(val[1])).concatinate(val[2])
1053
1062
  end
1054
1063
  .,.,
1055
1064
 
1056
- module_eval(<<'.,.,', 'parser.y', 113)
1065
+ module_eval(<<'.,.,', 'parser.y', 112)
1057
1066
  def _reduce_61(val, _values)
1058
- val[0].add(Paren.new(val[1])).concatinate(val[2])
1067
+ Sequence.new(Paren.new(val[0])).concatinate(val[1])
1059
1068
  end
1060
1069
  .,.,
1061
1070
 
1062
- module_eval(<<'.,.,', 'parser.y', 115)
1071
+ module_eval(<<'.,.,', 'parser.y', 114)
1063
1072
  def _reduce_62(val, _values)
1064
- Sequence.new(Paren.new(val[0]))
1073
+ val[0].add(Paren.new(val[1])).concatinate(val[2])
1065
1074
  end
1066
1075
  .,.,
1067
1076
 
1068
- module_eval(<<'.,.,', 'parser.y', 117)
1077
+ module_eval(<<'.,.,', 'parser.y', 116)
1069
1078
  def _reduce_63(val, _values)
1070
1079
  Sequence.new(Paren.new(val[0]))
1071
1080
  end
1072
1081
  .,.,
1073
1082
 
1074
- module_eval(<<'.,.,', 'parser.y', 121)
1083
+ module_eval(<<'.,.,', 'parser.y', 118)
1075
1084
  def _reduce_64(val, _values)
1076
- Repeatable.new(val[0])
1085
+ Sequence.new(Paren.new(val[0]))
1077
1086
  end
1078
1087
  .,.,
1079
1088
 
1080
- module_eval(<<'.,.,', 'parser.y', 123)
1089
+ module_eval(<<'.,.,', 'parser.y', 122)
1081
1090
  def _reduce_65(val, _values)
1082
- val[0].set_quant(val[1])
1091
+ Repeatable.new(val[0])
1083
1092
  end
1084
1093
  .,.,
1085
1094
 
1086
- module_eval(<<'.,.,', 'parser.y', 127)
1095
+ module_eval(<<'.,.,', 'parser.y', 124)
1087
1096
  def _reduce_66(val, _values)
1088
- val[0]
1097
+ val[0].set_quant(val[1])
1089
1098
  end
1090
1099
  .,.,
1091
1100
 
1092
- module_eval(<<'.,.,', 'parser.y', 129)
1101
+ module_eval(<<'.,.,', 'parser.y', 128)
1093
1102
  def _reduce_67(val, _values)
1094
- @options[:parens].add(Paren.new(val[0], val[1], val[2]))
1103
+ val[0]
1095
1104
  end
1096
1105
  .,.,
1097
1106
 
1098
- module_eval(<<'.,.,', 'parser.y', 131)
1107
+ module_eval(<<'.,.,', 'parser.y', 130)
1099
1108
  def _reduce_68(val, _values)
1100
1109
  @options[:parens].add(Paren.new(val[0], val[1], val[2]))
1101
1110
  end
1102
1111
  .,.,
1103
1112
 
1104
- module_eval(<<'.,.,', 'parser.y', 133)
1113
+ module_eval(<<'.,.,', 'parser.y', 132)
1105
1114
  def _reduce_69(val, _values)
1106
1115
  @options[:parens].add(Paren.new(val[0], val[1], val[2]))
1107
1116
  end
1108
1117
  .,.,
1109
1118
 
1110
- module_eval(<<'.,.,', 'parser.y', 136)
1119
+ module_eval(<<'.,.,', 'parser.y', 134)
1111
1120
  def _reduce_70(val, _values)
1112
- TLetter.new(:LEX_CHAR, val[0])
1121
+ @options[:parens].add(Paren.new(val[0], val[1], val[2]))
1113
1122
  end
1114
1123
  .,.,
1115
1124
 
1116
1125
  module_eval(<<'.,.,', 'parser.y', 137)
1117
1126
  def _reduce_71(val, _values)
1118
- TLetter.new(:LEX_OCTET, val[0])
1127
+ TLetter.new(:LEX_CHAR, val[0])
1119
1128
  end
1120
1129
  .,.,
1121
1130
 
1122
1131
  module_eval(<<'.,.,', 'parser.y', 138)
1123
1132
  def _reduce_72(val, _values)
1124
- BackRefer.new(:LEX_BACK_REFER, val[0])
1133
+ TLetter.new(:LEX_OCTET, val[0])
1125
1134
  end
1126
1135
  .,.,
1127
1136
 
1128
1137
  module_eval(<<'.,.,', 'parser.y', 139)
1129
1138
  def _reduce_73(val, _values)
1130
- TLetter.new(:LEX_CODE_LITERAL, val[0])
1139
+ BackRefer.new(:LEX_BACK_REFER, val[0])
1131
1140
  end
1132
1141
  .,.,
1133
1142
 
1134
1143
  module_eval(<<'.,.,', 'parser.y', 140)
1135
1144
  def _reduce_74(val, _values)
1136
- BackRefer.new(:LEX_NAMED_REFER, val[0])
1145
+ TLetter.new(:LEX_CODE_LITERAL, val[0])
1137
1146
  end
1138
1147
  .,.,
1139
1148
 
1140
1149
  module_eval(<<'.,.,', 'parser.y', 141)
1141
1150
  def _reduce_75(val, _values)
1142
- BackRefer.new(:LEX_NAMED_GENERATE, val[0])
1151
+ BackRefer.new(:LEX_NAMED_REFER, val[0])
1143
1152
  end
1144
1153
  .,.,
1145
1154
 
1146
1155
  module_eval(<<'.,.,', 'parser.y', 142)
1147
1156
  def _reduce_76(val, _values)
1148
- TLetter.new(:LEX_CONTROL_LETTER, val[0])
1157
+ BackRefer.new(:LEX_NAMED_GENERATE, val[0])
1149
1158
  end
1150
1159
  .,.,
1151
1160
 
@@ -1157,109 +1166,109 @@ module_eval(<<'.,.,', 'parser.y', 143)
1157
1166
 
1158
1167
  module_eval(<<'.,.,', 'parser.y', 144)
1159
1168
  def _reduce_78(val, _values)
1160
- TLetter.new(:LEX_ESCAPED_LETTER, val[0])
1169
+ TLetter.new(:LEX_CONTROL_LETTER, val[0])
1161
1170
  end
1162
1171
  .,.,
1163
1172
 
1164
1173
  module_eval(<<'.,.,', 'parser.y', 145)
1165
1174
  def _reduce_79(val, _values)
1166
- TLetter.new(:LEX_UNICODE, val[0])
1175
+ TLetter.new(:LEX_ESCAPED_LETTER, val[0])
1167
1176
  end
1168
1177
  .,.,
1169
1178
 
1170
1179
  module_eval(<<'.,.,', 'parser.y', 146)
1171
1180
  def _reduce_80(val, _values)
1172
- TLetter.new(:LEX_SIMPLIFIED_CLASS, val[0])
1181
+ TLetter.new(:LEX_UNICODE, val[0])
1173
1182
  end
1174
1183
  .,.,
1175
1184
 
1176
1185
  module_eval(<<'.,.,', 'parser.y', 147)
1177
1186
  def _reduce_81(val, _values)
1178
- TLetter.new(:LEX_UNICODE_CLASS, val[0])
1187
+ TLetter.new(:LEX_SIMPLIFIED_CLASS, val[0])
1179
1188
  end
1180
1189
  .,.,
1181
1190
 
1182
1191
  module_eval(<<'.,.,', 'parser.y', 148)
1183
1192
  def _reduce_82(val, _values)
1184
- @bracket_parser.parse(val[0], @options)
1193
+ TLetter.new(:LEX_UNICODE_CLASS, val[0])
1185
1194
  end
1186
1195
  .,.,
1187
1196
 
1188
1197
  module_eval(<<'.,.,', 'parser.y', 149)
1189
1198
  def _reduce_83(val, _values)
1190
- Anchor.new(:LEX_ANC_LINE_BEGIN, val[0])
1199
+ @bracket_parser.parse(val[0], @options)
1191
1200
  end
1192
1201
  .,.,
1193
1202
 
1194
1203
  module_eval(<<'.,.,', 'parser.y', 150)
1195
1204
  def _reduce_84(val, _values)
1196
- Anchor.new(:LEX_ANC_LINE_END, val[0])
1205
+ Anchor.new(:LEX_ANC_LINE_BEGIN, val[0])
1197
1206
  end
1198
1207
  .,.,
1199
1208
 
1200
1209
  module_eval(<<'.,.,', 'parser.y', 151)
1201
1210
  def _reduce_85(val, _values)
1202
- Anchor.new(:LEX_ANC_WORD_BOUND, val[0])
1211
+ Anchor.new(:LEX_ANC_LINE_END, val[0])
1203
1212
  end
1204
1213
  .,.,
1205
1214
 
1206
1215
  module_eval(<<'.,.,', 'parser.y', 152)
1207
1216
  def _reduce_86(val, _values)
1208
- Anchor.new(:LEX_ANC_WORD_UNBOUND, val[0])
1217
+ Anchor.new(:LEX_ANC_WORD_BOUND, val[0])
1209
1218
  end
1210
1219
  .,.,
1211
1220
 
1212
1221
  module_eval(<<'.,.,', 'parser.y', 153)
1213
1222
  def _reduce_87(val, _values)
1214
- Anchor.new(:LEX_ANC_STRING_BEGIN, val[0])
1223
+ Anchor.new(:LEX_ANC_WORD_UNBOUND, val[0])
1215
1224
  end
1216
1225
  .,.,
1217
1226
 
1218
1227
  module_eval(<<'.,.,', 'parser.y', 154)
1219
1228
  def _reduce_88(val, _values)
1220
- Anchor.new(:LEX_ANC_STRING_END, val[0])
1229
+ Anchor.new(:LEX_ANC_STRING_BEGIN, val[0])
1221
1230
  end
1222
1231
  .,.,
1223
1232
 
1224
1233
  module_eval(<<'.,.,', 'parser.y', 155)
1225
1234
  def _reduce_89(val, _values)
1226
- Anchor.new(:LEX_ANC_STRING_END2, val[0])
1235
+ Anchor.new(:LEX_ANC_STRING_END, val[0])
1227
1236
  end
1228
1237
  .,.,
1229
1238
 
1230
1239
  module_eval(<<'.,.,', 'parser.y', 156)
1231
1240
  def _reduce_90(val, _values)
1232
- Anchor.new(:LEX_ANC_LOOK_BEHIND2, val[0])
1241
+ Anchor.new(:LEX_ANC_STRING_END2, val[0])
1233
1242
  end
1234
1243
  .,.,
1235
1244
 
1236
1245
  module_eval(<<'.,.,', 'parser.y', 157)
1237
1246
  def _reduce_91(val, _values)
1238
- Anchor.new(:LEX_ANC_MATCH_START, val[0])
1247
+ Anchor.new(:LEX_ANC_LOOK_BEHIND2, val[0])
1239
1248
  end
1240
1249
  .,.,
1241
1250
 
1242
1251
  module_eval(<<'.,.,', 'parser.y', 158)
1243
1252
  def _reduce_92(val, _values)
1244
- TLetter.new(:LEX_SPECIAL_LETTER, val[0])
1253
+ Anchor.new(:LEX_ANC_MATCH_START, val[0])
1245
1254
  end
1246
1255
  .,.,
1247
1256
 
1248
1257
  module_eval(<<'.,.,', 'parser.y', 159)
1249
1258
  def _reduce_93(val, _values)
1250
- TLetter.new(:LEX_CHAR, val[0])
1259
+ SpecialLetter.new(val[0])
1251
1260
  end
1252
1261
  .,.,
1253
1262
 
1254
1263
  module_eval(<<'.,.,', 'parser.y', 160)
1255
1264
  def _reduce_94(val, _values)
1256
- TLetter.new(:LEX_AND_AND, val[0])
1265
+ TLetter.new(:LEX_CHAR, val[0])
1257
1266
  end
1258
1267
  .,.,
1259
1268
 
1260
1269
  module_eval(<<'.,.,', 'parser.y', 161)
1261
1270
  def _reduce_95(val, _values)
1262
- TEmpty.new
1271
+ TLetter.new(:LEX_AND_AND, val[0])
1263
1272
  end
1264
1273
  .,.,
1265
1274
 
@@ -1271,23 +1280,27 @@ module_eval(<<'.,.,', 'parser.y', 162)
1271
1280
 
1272
1281
  module_eval(<<'.,.,', 'parser.y', 163)
1273
1282
  def _reduce_97(val, _values)
1274
- TLetter.new(:LEX_SIMPLE_ESCAPE, val[0])
1283
+ TEmpty.new
1275
1284
  end
1276
1285
  .,.,
1277
1286
 
1278
1287
  module_eval(<<'.,.,', 'parser.y', 164)
1279
1288
  def _reduce_98(val, _values)
1280
- TLetter.new(:LEX_ANY_LETTER, val[0])
1289
+ TLetter.new(:LEX_SIMPLE_ESCAPE, val[0])
1281
1290
  end
1282
1291
  .,.,
1283
1292
 
1284
1293
  module_eval(<<'.,.,', 'parser.y', 165)
1285
1294
  def _reduce_99(val, _values)
1286
- TEmpty.new
1295
+ TLetter.new(:LEX_ANY_LETTER, val[0])
1287
1296
  end
1288
1297
  .,.,
1289
1298
 
1290
- # reduce 100 omitted
1299
+ module_eval(<<'.,.,', 'parser.y', 166)
1300
+ def _reduce_100(val, _values)
1301
+ TEmpty.new
1302
+ end
1303
+ .,.,
1291
1304
 
1292
1305
  # reduce 101 omitted
1293
1306
 
@@ -1359,6 +1372,12 @@ module_eval(<<'.,.,', 'parser.y', 165)
1359
1372
 
1360
1373
  # reduce 135 omitted
1361
1374
 
1375
+ # reduce 136 omitted
1376
+
1377
+ # reduce 137 omitted
1378
+
1379
+ # reduce 138 omitted
1380
+
1362
1381
  def _reduce_none(val, _values)
1363
1382
  val[0]
1364
1383
  end