dbc 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -206,51 +206,59 @@ case RUBY_PLATFORM
206
206
  # I have found that these setting work best with GNU C libs
207
207
  # experiance may vary :)
208
208
  defines << ['__GLIBC_HAVE_LONG_LONG', nil, '1']
209
- defines << ['__extension__', nil, ' ']
210
- defines << ['__inline__', nil, ' ']
211
209
  when /powerpc|darwin/
212
210
  defines << ['__ppc__', nil, nil]
213
211
  else
214
212
  warn "unrecognized platform: #{RUBY_PLATFORM}"
215
213
  end
214
+
215
+ # for gcc compatibility
216
+ defines << ['__extension__', nil, ' ']
217
+ defines << ['__const__', nil, ' ']
218
+ defines << ['__inline__', nil, ' ']
219
+ defines << ['__attribute__', ['arg'], ' ']
220
+
216
221
  # for gcc 3.4+ compatibility
217
222
  defines << ['__builtin_va_list', nil, 'int *']
218
223
  defines << ['SHLIB_COMPAT', ['arg'], '(0)']
224
+
219
225
  # so '##' is used to paste tokens, not '/**/'
220
226
  defines << ['__STDC__', nil, '1']
221
227
  #############################################
222
228
 
223
- # Cache Tokens => Preprocessor => Parse OCL => Parse C Types
224
- # Cached tokens are output.
225
- if not docs and check_level == DBC::NONE
226
- out_str = text
227
- else
228
- begin
229
- if docs
230
- out_str = DBC.parse_docs(CTokenizer::Lexer.new(text, src_file))
231
- elsif preprocess_only
232
- out_str = ''
233
- preproc = Preprocessor::Parser.new( search_path,
234
- search_path_limited,
235
- text, src_file )
236
-
237
- defines.each { |d,p,v| preproc.define(d, p, v) }
238
- preproc.each do |t|
239
- out_str << t[1]
240
- end
229
+ begin
230
+ if docs
231
+ out_str = DBC.parse_docs(CTokenizer::Lexer.new(text, src_file))
232
+ elsif preprocess_only
233
+ out_str = ''
234
+ preproc = Preprocessor::Parser.new( search_path,
235
+ search_path_limited,
236
+ text, src_file )
237
+
238
+ defines.each { |d,p,v| preproc.define(d, p, v) }
239
+ preproc.each do |t|
240
+ out_str << t[1]
241
+ end
242
+ else
243
+ if check_level == DBC::NONE
244
+ out_str = text
241
245
  else
246
+ # Cache Tokens => Preprocessor => Parse OCL => Parse C Types
247
+ # Cached tokens are output, not Preprocessed tokens
242
248
  out_str = ''
243
249
  # cache statements
244
250
  cache = DBC::Cache.new(text, src_file)
245
251
  # preprocesses all tokens
246
- preproc = Preprocessor::Parser.new(search_path, search_path_limited, cache)
252
+ preproc = Preprocessor::Parser.new( search_path,
253
+ search_path_limited,
254
+ cache )
247
255
 
248
256
  # define tokens passed
249
257
  defines.each { |d| preproc.define(*d) }
250
-
258
+
251
259
  # extracts DBC condtions
252
260
  source = DBC::OCLParser.new(preproc)
253
-
261
+
254
262
  # extract all C Statements
255
263
  DBC.parse(source) do |context, f_body|
256
264
  stmt = cache.reset
@@ -258,7 +266,7 @@ else
258
266
  stmt = stmt.cache
259
267
  # remove end of file token if it exists
260
268
  stmt.pop unless stmt.empty? or stmt.last[0]
261
-
269
+
262
270
  # define C types
263
271
  context.each do |ctxt|
264
272
  CType[ctxt.identifier] = ctxt if ctxt.typedef?
@@ -268,25 +276,26 @@ else
268
276
  unless context.first
269
277
  raise CTokenizer.error(nil, line, "unmatched braket")
270
278
  end
271
- out_str << expand_function(source.conditions, context.first, \
272
- stmt, line, line_info)
279
+ out_str << expand_function( source.conditions,
280
+ context.first,
281
+ stmt, line, line_info )
273
282
  else
274
283
  stmt.each do |t|
275
284
  out_str << t[1]
276
285
  end
277
286
  end
278
- end
279
- end
280
- rescue CTokenizer::Error, CType::EvaluationError
281
- warn $!
282
- exit(-1)
283
- ensure
284
- if !$! or always_output
285
- if dest_file
286
- File.open(dest_file, 'w') { |f| f.write(out_str) }
287
- else
288
- $stdout.write(out_str)
289
- end
287
+ end # do
288
+ end #if
289
+ end # if
290
+ rescue CTokenizer::Error, CType::EvaluationError
291
+ warn $!
292
+ exit(-1)
293
+ ensure
294
+ if !$! or always_output
295
+ if dest_file
296
+ File.open(dest_file, 'w') { |f| f.write(out_str) }
297
+ else
298
+ $stdout.write(out_str)
290
299
  end
291
300
  end
292
301
  end
@@ -13,38 +13,36 @@ module CTokenizer
13
13
 
14
14
  SPACE_1 = /[\t ]+/
15
15
  SPACE_2 = /\\[\t ]*#{NEWLINE}/
16
- SPACE = %r(#{SPACE_1}|#{SPACE_2})
16
+ #SPACE = %r(#{SPACE_1}|#{SPACE_2})
17
17
 
18
18
  IDENTIFIER = /[a-zA-Z_]\w*/
19
19
 
20
- COMMENT_1 = /\/\*.*?\*\//m
20
+ comment_1 = /\/\*.*?\*\//m
21
21
  # scarry comment - bad style - beward of '\' at end of line...
22
- COMMENT_2 = /\/\/(?:\\[ \t]*#{NEWLINE}|[^\r\n])+/m
23
- COMMENT = %r(#{COMMENT_1}|#{COMMENT_2})m
22
+ comment_2 = /\/\/(?:\\[ \t]*#{NEWLINE}|[^\r\n])+/m
23
+ COMMENT = %r(#{comment_1}|#{comment_2})m
24
24
 
25
- SYMBOL_1 = /\+=|\-=|\*=|\/=|%=|\&=|\^=|\|=|<<=|>>=|##|\.\.\./
26
- SYMBOL_2 = /==|!=|<=|>=|->|\&\&|\|\||<<|>>|\+\+|\-\-|<:|:>|<%|%>/
27
- SYMBOL_3 = /[\(\)\[\]\{\}\|\&\+\-\/\*%<>\.,=!:;\?\^~#]/
28
- SYMBOL = %r(#{SYMBOL_1}|#{SYMBOL_2}|#{SYMBOL_3})
25
+ sym_1 = /\+=|\-=|\*=|\/=|%=|\&=|\^=|\|=|<<=|>>=|##|\.\.\./
26
+ sym_2 = /==|!=|<=|>=|->|\&\&|\|\||<<|>>|\+\+|\-\-/
27
+ sym_3 = /<:|:>|<%|%>|%:%:|%:/ # Digraph
28
+ sym_4 = /[\(\)\[\]\{\}\|\&\+\-\/\*%<>\.,=!:;\?\^~#]/
29
+ SYMBOL = %r(#{sym_1}|#{sym_2}|#{sym_3}|#{sym_4})
29
30
 
30
31
  CHARACTER = /L?'(?:[^']|\\.)*'/
31
32
  STRING = /L?"(?:[^"]|\\.)*"/
32
33
 
33
- # Note: FLOAT should come before INTEGER
34
34
  f_e = /[eE][-+]?[0-9]+/
35
35
  f_s = /[fFlL]/
36
- FLOAT_1 = /[0-9]+#{f_e}#{f_s}?/
37
- FLOAT_2 = /[0-9]*\.[0-9]+#{f_e}?#{f_s}?/
38
- # FLOAT_3 causes ambiguities... :(
39
- #FLOAT_3 = /[0-9]+\.[0-9]*#{f_e}?#{f_s}?/
40
- #FLOAT = %r(#{FLOAT_1}|#{FLOAT_2}|#{FLOAT_3})
41
- FLOAT = %r(#{FLOAT_1}|#{FLOAT_2})
36
+ flt_1 = /[0-9]+#{f_e}#{f_s}?/
37
+ flt_2 = /[0-9]*\.[0-9]+#{f_e}?#{f_s}?/
38
+ # flt_3 causes ambiguities... :(
39
+ #flt_3 = /[0-9]+\.[0-9]*#{f_e}?#{f_s}?/
42
40
 
43
41
  i_s = /[uUlL]*/
44
- INTEGER_1 = /0[xX][0-9a-fA-F]+#{i_s}/
45
- INTEGER_2 = /0[0-7]+#{i_s}/
46
- INTEGER_3 = /[0-9]+#{i_s}/
47
- INTEGER = %r(#{INTEGER_1}|#{INTEGER_2}|#{INTEGER_3})
42
+ int_1 = /0[xX][0-9a-fA-F]+#{i_s}/
43
+ int_2 = /0[0-7]+#{i_s}/
44
+ int_3 = /[0-9]+#{i_s}/
45
+ CONSTANT = %r(#{int_1}|#{int_2}|#{int_3}|#{flt_1}|#{flt_2})
48
46
  end # Expression
49
47
 
50
48
  class Error < StandardError
@@ -134,33 +132,44 @@ module CTokenizer
134
132
  attr_reader :file, :line
135
133
 
136
134
  alias empty? eos?
135
+ alias scan_super scan
136
+
137
+ def scan(re)
138
+ m = scan_super(re)
139
+ @line += CTokenizer.line_count(m)
140
+ m
141
+ end
137
142
 
138
143
  def shift
139
144
  # don't need \A in regexp's cause StringScanner does this automatically.
145
+ # try to put most common tokens first
140
146
  t = case
141
- when m = scan(Expression::SPACE)
142
- @line += CTokenizer.line_count(m)
147
+ #when m = scan_super(Expression::SPACE)
148
+ # @line += CTokenizer.line_count(m)
149
+ # [:SPACE, m]
150
+ when m = scan_super(Expression::SPACE_1)
143
151
  [:SPACE, m]
144
- when m = scan(Expression::IDENTIFIER)
152
+ when m = scan_super(Expression::IDENTIFIER)
145
153
  [:IDENTIFIER, m]
146
- when m = scan(Expression::COMMENT)
154
+ when m = scan_super(Expression::COMMENT)
147
155
  @line += CTokenizer.line_count(m)
148
156
  [:COMMENT, m]
149
- # SYMBOL should come before INTEGER and FLOAT
150
- when m = scan(Expression::SYMBOL)
157
+ # SYMBOL should come before CONSTANT
158
+ when m = scan_super(Expression::SYMBOL)
151
159
  [:SYMBOL, m]
152
- when m = scan(Expression::NEWLINE)
153
- @line += CTokenizer.line_count(m)
160
+ when m = scan_super(Expression::NEWLINE)
161
+ #@line += CTokenizer.line_count(m)
162
+ @line += 1
154
163
  [:NEWLINE, m]
155
- # FLOAT should come before INTEGER
156
- when m = scan(Expression::FLOAT)
157
- [:FLOAT, m]
158
- when m = scan(Expression::INTEGER)
159
- [:INTEGER, m]
160
- when m = scan(Expression::CHARACTER)
161
- [:CHARACTER, m]
162
- when m = scan(Expression::STRING)
164
+ when m = scan_super(Expression::CONSTANT)
165
+ [:CONSTANT, m]
166
+ when m = scan_super(Expression::STRING)
163
167
  [:STRING, m]
168
+ when m = scan_super(Expression::SPACE_2)
169
+ @line += 1
170
+ [:SPACE, m]
171
+ when m = scan_super(Expression::CHARACTER)
172
+ [:CHARACTER, m]
164
173
  when eos?
165
174
  EOF_TOKEN # end of file, \Z don't work with StringScanner
166
175
  when m = getch
@@ -320,73 +329,84 @@ module CTokenizer
320
329
  end
321
330
  end
322
331
 
323
- # C Lexer
324
- class CLexer < LexerBase
325
-
326
- def CLexer.reserved_word?(str)
327
- str =~ /\A(?:auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\Z/o
328
- end
332
+ ## Diagraph
333
+ diagraph = {}
334
+ # pair[1] maps to pair[0], Digraph -> Punctuator
335
+ [ ['[', '<:'], [']', ':>'], ['{', '<%'], ['}', '%>'],
336
+ ['#', '%:'], ['##', '%:%:'] ].each do |p|
337
+ p[0].freeze
338
+ diagraph[p[1].freeze] = p.freeze
339
+ end
340
+ diagraph.freeze
341
+ ##
342
+
343
+ ## C Preprocessor
344
+ cp_reserved_word = {}
345
+ [ 'if','ifdef','ifndef','else','elif','endif','include','include_next',
346
+ 'define','defined','undef','line','error','warning','pragma' ].each do |t|
347
+ t.freeze
348
+ cp_reserved_word[t] = [t, t].freeze
349
+ end
350
+ cp_reserved_word.freeze
329
351
 
330
- def CLexer.convert_token(t)
331
- str = t[1]
332
- case t[0]
333
- when :SYMBOL
334
- case str
335
- when '<:'
336
- str = '['
337
- when ':>'
338
- str = ']'
339
- when '<%'
340
- str = '{'
341
- when '%>'
342
- str = '}'
343
- end # case
344
- t = [str, str].freeze
345
- when :IDENTIFIER
346
- if CLexer.reserved_word?(str)
347
- t = [str, str].freeze
348
- end
349
- end #case
350
- t
352
+ cp_reserved_symbol = {}
353
+ [ '!','*','/','%','+','-','<<','>>','(',')','<','<=','>','>=','==','!=',
354
+ '&','^','|','~','&&','||','?',':','#','##','...',',' ].each do |t|
355
+ t.freeze
356
+ cp_reserved_symbol[t] = [t, t].freeze
357
+ end
358
+ cp_reserved_symbol.freeze
359
+ ##
360
+
361
+ ## C
362
+ c_reserved_word = {}
363
+ [ 'auto','break','case','char','const','continue','default','do', 'double',
364
+ 'else','enum','extern','float','for','goto','if','inline', 'int','long',
365
+ 'register','return','short','signed','sizeof','static', 'struct',
366
+ 'switch','typedef','union','unsigned','void','volatile', 'while' ].each do |t|
367
+ t.freeze
368
+ c_reserved_word[t] = [t, t].freeze
369
+ end
370
+ c_reserved_word.freeze
371
+
372
+ # share symbols between C and CP
373
+ c_reserved_symbol = {}
374
+ [ '+=','-=','*=','/=','%=','&=','^=','|=', '<<=', '>>=', '##', '...',
375
+ '==','!=','<=','>=','->','&&','||', '<<','>>','++','--',
376
+ '(',')','[',']','{','}','|','&','+','-','*','/','%','<','>',
377
+ '.',',','=','!',':',';','?','^','~','#' ].each do |t|
378
+ unless cp_reserved_symbol.include?(t)
379
+ t.freeze
380
+ c_reserved_symbol[t] = [t, t].freeze
351
381
  end
382
+ end
383
+ c_reserved_symbol.merge!(cp_reserved_symbol)
384
+ c_reserved_symbol.freeze
385
+ ##
386
+ C_RESERVED = c_reserved_symbol.dup
387
+ C_RESERVED.merge!(diagraph)
388
+ C_RESERVED.merge!(c_reserved_word)
389
+ C_RESERVED.freeze
390
+
391
+ CP_RESERVED = cp_reserved_symbol.dup
392
+ CP_RESERVED.merge!(diagraph)
393
+ CP_RESERVED.merge!(cp_reserved_word)
394
+ CP_RESERVED.freeze
352
395
 
396
+ # C Lexer
397
+ class CLexer < LexerBase
353
398
  def shift
354
- CLexer.convert_token(super)
399
+ t = super
400
+ C_RESERVED.fetch(t.at(1), t)
355
401
  end
356
-
357
402
  end # CLexer
358
-
403
+
359
404
  # C Preprocessor Lexer
360
405
  class CPLexer < LexerBase
361
-
362
- def CPLexer.reserved_word?(str)
363
- str =~ /\A(?:if|ifdef|ifndef|else|elif|endif|include|include_next|define|defined|undef|line|error|warning|pragma)\Z/
364
- end
365
-
366
- def CPLexer.convert_token(t)
367
- str = t[1]
368
- case t[0]
369
- when :SYMBOL
370
- case str
371
- when '!', '*', '/', '%', '+', '-', \
372
- '<<', '>>', '(', ')', \
373
- '<', '<=', '>', '>=', '==', '!=', \
374
- '&', '^', '|', '&&', '||', \
375
- '?', ':', '#', '##', '...', ','
376
- t = [str, str].freeze
377
- end # case
378
- when :IDENTIFIER
379
- if CPLexer.reserved_word?(str)
380
- t = [str, str].freeze
381
- end
382
- end # case
383
- t
384
- end
385
-
386
406
  def shift
387
- CPLexer.convert_token(super)
407
+ t = super
408
+ CP_RESERVED.fetch(t.at(1), t)
388
409
  end
389
-
390
410
  end # CPLexer
391
411
 
392
412
  end # Tokenizer
@@ -39,7 +39,6 @@ module CType
39
39
  raise EvaluationError, "cannot evaluate '#{part}'"
40
40
  end
41
41
 
42
- @@typedefs = {}
43
42
  def CType.parse(source)
44
43
  tokens = CTokenizer::SkipMacros.new(source)
45
44
  ctype_parser = Parser.new()
@@ -53,24 +52,30 @@ module CType
53
52
  if results
54
53
  results = [results] unless results.class == Array
55
54
  results.each do |t|
56
- @@typedefs[t.to_s] = t if t.typedef?
55
+ CType[t.to_s] = t if t.typedef?
57
56
  end
58
57
  end
59
58
  end
60
59
  end
61
60
 
61
+ @@typedefs = {}
62
+
62
63
  def CType.[](val)
63
- @@typedefs[val]
64
+ t = @@typedefs[val]
65
+ t && t.at(1)
66
+ end
67
+
68
+ def CType.convert_token(t)
69
+ @@typedefs.fetch(t.at(1), t)
64
70
  end
65
71
 
66
- def CType.include?(val)
67
- @@typedefs.include?(val)
72
+ def CType.include?(name)
73
+ @@typedefs.include?(name)
68
74
  end
69
75
 
70
- def CType.[]=(val, new_val)
71
- raise "expecting a String got #{val.class}" if val.class != String
72
- raise ParseError, "type #{val} already defined" if @@typedefs.include?(val)
73
- @@typedefs[val] = new_val
76
+ def CType.[]=(name, tdef)
77
+ raise ParseError, "type #{name} already defined" if @@typedefs.include?(name)
78
+ @@typedefs[name.freeze] = [:TYPEDEF_NAME, tdef].freeze
74
79
  end
75
80
 
76
81
  class StructUnion
@@ -601,7 +606,7 @@ module CType
601
606
 
602
607
  class Parser < Racc::Parser
603
608
 
604
- module_eval <<'..end src/ctype.y modeval..idcee92c23da', 'src/ctype.y', 1137
609
+ module_eval <<'..end src/ctype.y modeval..id38effc9221', 'src/ctype.y', 1142
605
610
 
606
611
  def parse(str, file=nil, line=1)
607
612
  @tokens = CTokenizer::CLexer.new(str, file, line)
@@ -622,25 +627,22 @@ protected
622
627
  attr_writer :in_member
623
628
 
624
629
  def next_token
625
- t = nil
630
+ t_sym = t = nil
626
631
  loop do
627
632
  t = @tokens.shift
633
+ t_sym = t.at(0)
628
634
  # ignore comments, newlines, and spaces
629
- case t[0]
630
- when :SPACE, :COMMENT, :NEWLINE
631
- next
632
- when :IDENTIFIER
633
- unless @in_member
634
- tdef = CType[t[1]]
635
- t = [:TYPEDEF_NAME, tdef] if tdef
636
- end
637
- end
638
- break
635
+ break t[0] unless t_sym == :SPACE or
636
+ t_sym == :COMMENT or
637
+ t_sym == :NEWLINE
638
+ end # loop
639
+ if t_sym == :IDENTIFIER and not @in_member
640
+ t = CType.convert_token(t)
639
641
  end
640
642
  t
641
643
  end
642
644
 
643
- ..end src/ctype.y modeval..idcee92c23da
645
+ ..end src/ctype.y modeval..id38effc9221
644
646
 
645
647
  ##### racc 1.4.4 generates ###
646
648
 
@@ -679,9 +681,9 @@ racc_reduce_table = [
679
681
  1, 91, :_reduce_none,
680
682
  1, 91, :_reduce_none,
681
683
  1, 91, :_reduce_none,
682
- 1, 91, :_reduce_none,
683
- 3, 91, :_reduce_35,
684
+ 3, 91, :_reduce_34,
684
685
  1, 93, :_reduce_none,
686
+ 2, 93, :_reduce_36,
685
687
  2, 93, :_reduce_37,
686
688
  2, 93, :_reduce_38,
687
689
  2, 93, :_reduce_39,
@@ -833,275 +835,287 @@ racc_reduce_table = [
833
835
 
834
836
  racc_reduce_n = 185
835
837
 
836
- racc_shift_n = 272
838
+ racc_shift_n = 273
837
839
 
838
840
  racc_action_table = [
839
- 130, 132, 135, 176, 48, 113, 116, 130, 132, 135,
840
- 59, 156, 113, 116, 196, 195, 114, 118, 121, 78,
841
- 18, 48, 59, 114, 118, 121, 161, 59, 48, 48,
841
+ 132, 134, 137, 112, 50, 48, 117, 122, 132, 134,
842
+ 137, 112, 84, 182, 117, 122, 246, 119, 123, 50,
843
+ 18, 48, 48, 242, 78, 119, 123, 161, 48, 48,
842
844
  16, 22, 25, 29, 33, 36, 1, 3, 6, 9,
843
- 12, 15, 21, 127, 59, 133, 48, 59, 159, 155,
844
- 127, 53, 133, 130, 132, 135, 59, 181, 113, 116,
845
- 130, 132, 135, 242, 158, 113, 116, 30, 161, 114,
846
- 118, 121, 59, 263, 48, 48, 114, 118, 121, 72,
847
- 154, 48, 242, 15, 21, 159, 15, 21, 48, 227,
848
- 159, 48, 75, 182, 227, 75, 127, 53, 133, 167,
849
- 168, 169, 170, 127, 159, 133, 59, 100, 71, 153,
850
- 53, 228, 150, 53, 76, 149, 228, 76, 255, 222,
851
- 256, 92, 196, 195, 18, 245, 128, 257, 37, 2,
852
- 4, 7, 10, 13, 16, 22, 25, 29, 33, 36,
853
- 1, 3, 6, 9, 12, 15, 21, 242, 223, 167,
854
- 168, 169, 170, 258, 59, 171, 172, 37, 2, 4,
855
- 7, 10, 13, 167, 168, 169, 170, 196, 195, 159,
856
- 148, 30, 18, 48, 15, 21, 37, 2, 4, 7,
857
- 10, 13, 16, 22, 25, 29, 33, 36, 1, 3,
858
- 6, 9, 12, 15, 21, 161, 223, 59, 47, 48,
859
- 61, 188, 186, 187, 130, 132, 135, 171, 172, 113,
860
- 116, 59, 59, 188, 186, 187, 48, 159, 96, 30,
861
- 114, 118, 121, 140, 48, 48, 142, 188, 186, 187,
862
- 48, 48, 57, 57, 47, 48, 49, 166, 53, 190,
863
- 191, 190, 191, 190, 191, 241, 92, 127, 173, 133,
864
- 196, 195, 53, 53, 176, 18, 196, 195, 268, 37,
845
+ 12, 15, 21, 129, 161, 135, 79, 50, 183, 159,
846
+ 50, 129, 50, 135, 132, 134, 137, 112, 50, 243,
847
+ 117, 122, 132, 134, 137, 112, 159, 30, 117, 122,
848
+ 48, 119, 123, 50, 130, 48, 48, 50, 96, 119,
849
+ 123, 159, 154, 48, 50, 15, 21, 75, 15, 21,
850
+ 243, 48, 54, 58, 64, 48, 48, 129, 54, 135,
851
+ 92, 228, 48, 63, 58, 129, 92, 135, 50, 173,
852
+ 174, 153, 159, 54, 173, 174, 74, 54, 54, 256,
853
+ 223, 257, 102, 229, 54, 18, 196, 195, 264, 37,
865
854
  2, 4, 7, 10, 13, 16, 22, 25, 29, 33,
866
- 36, 1, 3, 6, 9, 12, 15, 21, 18, 178,
867
- 179, 34, 37, 2, 4, 7, 10, 13, 16, 22,
868
- 25, 29, 33, 36, 1, 3, 6, 9, 12, 15,
869
- 21, 18, 30, 219, 114, 118, 121, 180, 140, 48,
870
- 213, 16, 22, 25, 29, 33, 36, 1, 3, 6,
871
- 9, 12, 15, 21, 18, 30, 173, 157, 179, 180,
872
- 264, 175, 39, 84, 16, 22, 25, 29, 33, 36,
873
- 1, 3, 6, 9, 12, 15, 21, 193, 30, 130,
874
- 132, 135, 48, 48, 113, 116, 16, 22, 25, 29,
875
- 33, 36, 1, 3, 6, 114, 118, 121, 18, 64,
876
- 48, 30, 37, 2, 4, 7, 10, 13, 16, 22,
877
- 25, 29, 33, 36, 1, 3, 6, 9, 12, 15,
878
- 21, 18, 127, 266, 133, 48, 63, 38, 269, 270,
879
- 259, 16, 22, 25, 29, 33, 36, 1, 3, 6,
880
- 9, 12, 15, 21, 18, 30, -78, nil, 37, 2,
855
+ 36, 1, 3, 6, 9, 12, 15, 21, 243, 224,
856
+ 47, 48, 61, 78, 196, 195, 50, 208, 50, 209,
857
+ 210, 211, 200, 201, 202, 203, 204, 205, 207, 48,
858
+ 159, 148, 30, 18, 48, 79, 48, 37, 2, 4,
859
+ 7, 10, 13, 16, 22, 25, 29, 33, 36, 1,
860
+ 3, 6, 9, 12, 15, 21, 161, 224, 54, 167,
861
+ 168, 169, 170, 258, 132, 134, 137, 112, 196, 195,
862
+ 117, 122, 167, 168, 169, 170, 191, 192, 159, 259,
863
+ 30, 119, 123, 142, 18, 48, 144, 260, 37, 2,
881
864
  4, 7, 10, 13, 16, 22, 25, 29, 33, 36,
882
- 1, 3, 6, 9, 12, 15, 21, nil, 30, 130,
883
- 132, 135, nil, nil, 113, 116, nil, 78, 114, 118,
884
- 121, nil, 18, 48, nil, 114, 118, 121, nil, nil,
885
- 48, 30, 16, 22, 25, 29, 33, 36, 1, 3,
886
- 6, 9, 12, 15, 21, 175, nil, nil, nil, nil,
887
- nil, nil, 127, nil, 133, nil, 151, nil, nil, nil,
888
- nil, nil, 114, 118, 121, nil, 18, 48, nil, 30,
865
+ 1, 3, 6, 9, 12, 15, 21, 129, 228, 135,
866
+ 37, 2, 4, 7, 10, 13, 196, 195, 269, 191,
867
+ 192, 119, 123, 18, 149, 48, 150, 15, 21, 155,
868
+ 229, 30, 220, 16, 22, 25, 29, 33, 36, 1,
869
+ 3, 6, 9, 12, 15, 21, 18, 172, 191, 192,
889
870
  37, 2, 4, 7, 10, 13, 16, 22, 25, 29,
890
- 33, 36, 1, 3, 6, 9, 12, 15, 21, 175,
891
- 18, nil, nil, nil, 37, 2, 4, 7, 10, 13,
871
+ 33, 36, 1, 3, 6, 9, 12, 15, 21, 18,
872
+ 30, 119, 123, 119, 123, 48, 81, 48, 156, 16,
873
+ 22, 25, 29, 33, 36, 1, 3, 6, 9, 12,
874
+ 15, 21, 18, 30, 119, 123, 157, 172, 48, 172,
875
+ 196, 195, 16, 22, 25, 29, 33, 36, 1, 3,
876
+ 6, 9, 12, 15, 21, 48, 30, 187, 188, 189,
877
+ 172, 167, 168, 169, 170, 158, 151, 47, 48, 49,
878
+ 187, 188, 189, 119, 123, 166, 18, 48, 48, 30,
879
+ 37, 2, 4, 7, 10, 13, 16, 22, 25, 29,
880
+ 33, 36, 1, 3, 6, 9, 12, 15, 21, 172,
881
+ 18, 187, 188, 189, 37, 2, 4, 7, 10, 13,
892
882
  16, 22, 25, 29, 33, 36, 1, 3, 6, 9,
893
- 12, 15, 21, 30, 260, 130, 132, 135, nil, nil,
894
- 113, 116, nil, nil, nil, 114, 118, 121, 18, nil,
895
- 48, 114, 118, 121, nil, nil, 48, 30, 16, 22,
896
- 25, 29, 33, 36, 1, 3, 6, 9, 12, 15,
897
- 21, 18, 175, nil, nil, nil, nil, nil, 127, nil,
898
- 133, 16, 22, 25, 29, 33, 36, 1, 3, 6,
899
- 9, 12, 15, 21, nil, 30, 130, 132, 135, nil,
900
- nil, 113, 116, nil, nil, 91, nil, nil, nil, nil,
901
- nil, nil, 114, 118, 121, 18, nil, 48, 30, 37,
902
- 2, 4, 7, 10, 13, 16, 22, 25, 29, 33,
903
- 36, 1, 3, 6, 9, 12, 15, 21, 18, 127,
904
- nil, 133, 114, 118, 121, nil, nil, 48, 16, 22,
883
+ 12, 15, 21, 30, 261, 16, 22, 25, 29, 33,
884
+ 36, 1, 3, 6, 175, 176, 179, 181, 265, 214,
885
+ 175, 119, 123, 39, 18, 48, -78, 30, 37, 2,
886
+ 4, 7, 10, 13, 16, 22, 25, 29, 33, 36,
887
+ 1, 3, 6, 9, 12, 15, 21, 172, 142, 176,
888
+ 181, 179, 267, 38, 270, 271, 178, 81, nil, nil,
889
+ nil, nil, nil, nil, nil, nil, nil, nil, 18, nil,
890
+ nil, 30, 37, 2, 4, 7, 10, 13, 16, 22,
905
891
  25, 29, 33, 36, 1, 3, 6, 9, 12, 15,
906
- 21, nil, 30, nil, nil, nil, nil, nil, 207, 175,
907
- 208, 209, 210, 199, 200, 201, 202, 203, 204, 206,
908
- nil, nil, 18, 48, nil, 30, 37, 2, 4, 7,
892
+ 21, nil, 18, 48, nil, nil, 37, 2, 4, 7,
909
893
  10, 13, 16, 22, 25, 29, 33, 36, 1, 3,
910
- 6, 9, 12, 15, 21, nil, 107, nil, nil, 130,
911
- 132, 135, nil, nil, 113, 116, 130, 132, 135, nil,
912
- nil, 113, 116, nil, nil, 114, 118, 121, 140, 30,
913
- 48, 142, 114, 118, 121, nil, nil, 48, nil, 130,
914
- 132, 135, nil, nil, 113, 116, nil, nil, nil, nil,
915
- nil, nil, 127, nil, 133, 114, 118, 121, nil, 127,
916
- 48, 133, 130, 132, 135, nil, nil, 113, 116, 130,
917
- 132, 135, nil, nil, 113, 116, nil, nil, 114, 118,
918
- 121, nil, 127, 48, 133, 114, 118, 121, 140, nil,
919
- 48, 142, 130, 132, 135, nil, nil, 113, 116, nil,
920
- nil, nil, nil, nil, nil, 127, nil, 133, 114, 118,
921
- 121, nil, 127, 48, 133, 130, 132, 135, nil, nil,
922
- 113, 116, 130, 132, 135, nil, nil, 113, 116, nil,
923
- nil, 114, 118, 121, 140, 127, 48, 133, 114, 118,
924
- 121, nil, nil, 48, nil, 130, 132, 135, nil, nil,
925
- 113, 116, nil, nil, nil, nil, nil, nil, 127, nil,
926
- 133, 114, 118, 121, nil, 127, 48, 133, 130, 132,
927
- 135, nil, nil, 113, 116, 130, 132, 135, nil, nil,
928
- 113, 116, nil, nil, 114, 118, 121, nil, 127, 48,
929
- 133, 114, 118, 121, nil, nil, 48, nil, 130, 132,
930
- 135, nil, nil, 113, 116, nil, nil, nil, nil, nil,
931
- nil, 127, nil, 133, 114, 118, 121, nil, 127, 48,
932
- 133, 130, 132, 135, nil, nil, 113, 116, 130, 132,
933
- 135, nil, nil, 113, 116, nil, nil, 114, 118, 121,
934
- nil, 127, 48, 133, 114, 118, 121, nil, nil, 48,
935
- nil, 130, 132, 135, nil, nil, 113, 116, nil, nil,
936
- nil, nil, nil, nil, 127, nil, 133, 114, 118, 121,
937
- nil, 127, 48, 133, 130, 132, 135, nil, nil, 113,
938
- 116, 130, 132, 135, nil, nil, 113, 116, nil, nil,
939
- 114, 118, 121, nil, 127, 48, 133, 114, 118, 121,
940
- nil, nil, 48, nil, 130, 132, 135, nil, nil, 113,
941
- 116, nil, nil, nil, nil, nil, nil, 127, nil, 133,
942
- 114, 118, 121, nil, 127, 48, 133, 130, 132, 135,
943
- nil, nil, 113, 116, 130, 132, 135, nil, nil, 113,
944
- 116, nil, nil, 114, 118, 121, nil, 127, 48, 133,
945
- 114, 118, 121, nil, nil, 48, nil, 130, 132, 135,
946
- nil, nil, 113, 116, nil, nil, nil, nil, nil, nil,
947
- 127, nil, 133, 114, 118, 121, nil, 127, 48, 133,
948
- 130, 132, 135, nil, nil, 113, 116, 130, 132, 135,
949
- nil, nil, 113, 116, nil, nil, 114, 118, 121, nil,
950
- 127, 48, 133, 114, 118, 121, nil, nil, 48, nil,
951
- 130, 132, 135, nil, nil, 113, 116, nil, nil, nil,
952
- nil, nil, nil, 127, nil, 133, 114, 118, 121, nil,
953
- 127, 48, 133, nil, nil, nil, nil, nil, nil, nil,
894
+ 6, 9, 12, 15, 21, 30, 109, 132, 134, 137,
895
+ 112, nil, nil, 117, 122, nil, nil, nil, nil, nil,
896
+ 18, nil, nil, nil, 119, 123, nil, nil, 48, 30,
897
+ 16, 22, 25, 29, 33, 36, 1, 3, 6, 9,
898
+ 12, 15, 21, 18, nil, nil, nil, nil, nil, nil,
899
+ 129, nil, 135, 16, 22, 25, 29, 33, 36, 1,
900
+ 3, 6, 9, 12, 15, 21, nil, 30, nil, nil,
901
+ nil, nil, nil, nil, nil, nil, nil, 91, nil, nil,
902
+ nil, nil, nil, nil, nil, nil, nil, nil, 18, nil,
903
+ 30, 34, 37, 2, 4, 7, 10, 13, 16, 22,
904
+ 25, 29, 33, 36, 1, 3, 6, 9, 12, 15,
905
+ 21, 18, nil, nil, nil, nil, nil, nil, nil, nil,
906
+ nil, 16, 22, 25, 29, 33, 36, 1, 3, 6,
907
+ 9, 12, 15, 21, 18, 30, nil, nil, nil, nil,
908
+ nil, nil, nil, nil, 16, 22, 25, 29, 33, 36,
909
+ 1, 3, 6, 9, 12, 15, 21, 198, 30, 132,
910
+ 134, 137, 112, nil, nil, 117, 122, 132, 134, 137,
911
+ 112, nil, nil, 117, 122, nil, 119, 123, nil, nil,
912
+ 48, 30, nil, nil, 119, 123, nil, nil, 48, nil,
913
+ 132, 134, 137, 112, nil, nil, 117, 122, nil, nil,
914
+ nil, nil, 129, nil, 135, nil, nil, 119, 123, nil,
915
+ 129, 48, 135, 132, 134, 137, 112, nil, nil, 117,
916
+ 122, 132, 134, 137, 112, nil, nil, 117, 122, nil,
917
+ 119, 123, nil, 129, 48, 135, nil, nil, 119, 123,
918
+ 142, nil, 48, 144, 132, 134, 137, 112, nil, nil,
919
+ 117, 122, nil, nil, nil, nil, 129, nil, 135, nil,
920
+ nil, 119, 123, nil, 129, 48, 135, 132, 134, 137,
921
+ 112, nil, nil, 117, 122, 132, 134, 137, 112, nil,
922
+ nil, 117, 122, nil, 119, 123, nil, 129, 48, 135,
923
+ nil, nil, 119, 123, nil, nil, 48, nil, 132, 134,
924
+ 137, 112, nil, nil, 117, 122, nil, nil, nil, nil,
925
+ 129, nil, 135, nil, nil, 119, 123, nil, 129, 48,
926
+ 135, 132, 134, 137, 112, nil, nil, 117, 122, 132,
927
+ 134, 137, 112, nil, nil, 117, 122, nil, 119, 123,
928
+ nil, 129, 48, 135, nil, nil, 119, 123, nil, nil,
929
+ 48, nil, 132, 134, 137, 112, nil, nil, 117, 122,
930
+ nil, nil, nil, nil, 129, nil, 135, nil, nil, 119,
931
+ 123, nil, 129, 48, 135, 132, 134, 137, 112, nil,
932
+ nil, 117, 122, 132, 134, 137, 112, nil, nil, 117,
933
+ 122, nil, 119, 123, nil, 129, 48, 135, nil, nil,
934
+ 119, 123, nil, nil, 48, nil, 132, 134, 137, 112,
935
+ nil, nil, 117, 122, nil, nil, nil, nil, 129, nil,
936
+ 135, nil, nil, 119, 123, nil, 129, 48, 135, 132,
937
+ 134, 137, 112, nil, nil, 117, 122, 132, 134, 137,
938
+ 112, nil, nil, 117, 122, nil, 119, 123, nil, 129,
939
+ 48, 135, nil, nil, 119, 123, nil, nil, 48, nil,
940
+ 132, 134, 137, 112, nil, nil, 117, 122, nil, nil,
941
+ nil, nil, 129, nil, 135, nil, nil, 119, 123, nil,
942
+ 129, 48, 135, 132, 134, 137, 112, nil, nil, 117,
943
+ 122, 132, 134, 137, 112, nil, nil, 117, 122, nil,
944
+ 119, 123, nil, 129, 48, 135, nil, nil, 119, 123,
945
+ nil, nil, 48, nil, 132, 134, 137, 112, nil, nil,
946
+ 117, 122, nil, nil, nil, nil, 129, nil, 135, nil,
947
+ nil, 119, 123, nil, 129, 48, 135, 132, 134, 137,
948
+ 112, nil, nil, 117, 122, 132, 134, 137, 112, nil,
949
+ nil, 117, 122, nil, 119, 123, 142, 129, 48, 135,
950
+ nil, nil, 119, 123, nil, nil, 48, nil, nil, nil,
954
951
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
955
- nil, nil, nil, 127, nil, 133 ]
952
+ 129, nil, 135, nil, nil, nil, nil, nil, 129, nil,
953
+ 135, 132, 134, 137, 112, nil, nil, 117, 122, 132,
954
+ 134, 137, 112, nil, nil, 117, 122, nil, 119, 123,
955
+ 142, nil, 48, 144, nil, nil, 119, 123, nil, nil,
956
+ 48, nil, 132, 134, 137, 112, nil, nil, 117, 122,
957
+ nil, nil, nil, nil, 129, nil, 135, nil, nil, 119,
958
+ 123, nil, 129, 48, 135, 132, 134, 137, 112, nil,
959
+ nil, 117, 122, nil, nil, nil, nil, nil, nil, nil,
960
+ nil, nil, 119, 123, nil, 129, 48, 135, nil, nil,
961
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
962
+ nil, nil, nil, nil, nil, nil, nil, nil, 129, nil,
963
+ 135 ]
956
964
 
957
965
  racc_action_check = [
958
- 127, 127, 127, 237, 162, 127, 127, 228, 228, 228,
959
- 71, 101, 228, 228, 232, 232, 127, 127, 127, 99,
960
- 127, 127, 184, 228, 228, 228, 162, 106, 228, 71,
961
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
962
- 127, 127, 127, 127, 81, 127, 106, 59, 162, 95,
963
- 228, 71, 228, 159, 159, 159, 53, 124, 159, 159,
964
- 76, 76, 76, 184, 105, 76, 76, 127, 106, 159,
965
- 159, 159, 153, 228, 159, 53, 76, 76, 76, 50,
966
- 93, 76, 244, 81, 81, 184, 59, 59, 55, 165,
967
- 106, 153, 56, 124, 226, 74, 159, 53, 159, 109,
968
- 109, 109, 109, 76, 244, 76, 242, 73, 50, 93,
969
- 55, 165, 87, 153, 56, 86, 226, 74, 212, 159,
970
- 212, 153, 231, 231, 242, 185, 76, 221, 242, 242,
971
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
972
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 234,
973
- 234, 234, 234, 224, 161, 235, 235, 20, 20, 20,
974
- 20, 20, 20, 233, 233, 233, 233, 229, 229, 242,
975
- 85, 242, 161, 161, 20, 20, 161, 161, 161, 161,
966
+ 129, 129, 129, 129, 108, 162, 129, 129, 79, 79,
967
+ 79, 79, 60, 126, 79, 79, 186, 129, 129, 185,
968
+ 129, 129, 108, 184, 57, 79, 79, 162, 61, 79,
969
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
970
+ 129, 129, 129, 129, 108, 129, 57, 50, 126, 162,
971
+ 71, 79, 153, 79, 159, 159, 159, 159, 67, 185,
972
+ 159, 159, 229, 229, 229, 229, 108, 129, 229, 229,
973
+ 153, 159, 159, 28, 79, 159, 67, 74, 67, 229,
974
+ 229, 185, 93, 229, 82, 50, 50, 51, 71, 71,
975
+ 245, 28, 153, 28, 44, 74, 56, 159, 67, 159,
976
+ 153, 165, 82, 38, 82, 229, 67, 229, 243, 113,
977
+ 113, 93, 245, 28, 236, 236, 51, 74, 56, 213,
978
+ 159, 213, 76, 165, 82, 243, 230, 230, 229, 243,
979
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
980
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
981
+ 30, 30, 30, 77, 231, 231, 161, 141, 54, 141,
982
+ 141, 141, 141, 141, 141, 141, 141, 141, 141, 84,
983
+ 243, 85, 243, 161, 161, 77, 54, 161, 161, 161,
976
984
  161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
977
- 161, 161, 161, 161, 161, 161, 161, 67, 30, 30,
978
- 30, 249, 249, 249, 255, 255, 255, 110, 110, 255,
979
- 255, 28, 79, 250, 250, 250, 67, 161, 67, 161,
980
- 255, 255, 255, 255, 84, 255, 255, 129, 129, 129,
981
- 28, 79, 28, 79, 26, 26, 26, 108, 67, 131,
982
- 131, 252, 252, 253, 253, 183, 67, 255, 112, 255,
983
- 134, 134, 28, 79, 115, 157, 230, 230, 255, 157,
985
+ 161, 161, 161, 161, 161, 161, 161, 161, 54, 111,
986
+ 111, 111, 111, 222, 256, 256, 256, 256, 136, 136,
987
+ 256, 256, 234, 234, 234, 234, 133, 133, 161, 225,
988
+ 161, 256, 256, 256, 157, 256, 256, 226, 157, 157,
984
989
  157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
985
- 157, 157, 157, 157, 157, 157, 157, 157, 0, 119,
986
- 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
987
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
988
- 0, 49, 157, 157, 135, 135, 135, 122, 136, 135,
989
- 147, 49, 49, 49, 49, 49, 49, 49, 49, 49,
990
- 49, 49, 49, 49, 132, 0, 236, 103, 238, 239,
991
- 240, 135, 17, 60, 132, 132, 132, 132, 132, 132,
992
- 132, 132, 132, 132, 132, 132, 132, 132, 49, 195,
993
- 195, 195, 61, 150, 195, 195, 23, 23, 23, 23,
994
- 23, 23, 23, 23, 23, 195, 195, 195, 32, 44,
995
- 195, 132, 32, 32, 32, 32, 32, 32, 32, 32,
990
+ 157, 157, 157, 157, 157, 157, 157, 256, 227, 256,
991
+ 20, 20, 20, 20, 20, 20, 232, 232, 256, 252,
992
+ 252, 117, 117, 49, 86, 117, 87, 20, 20, 95,
993
+ 227, 157, 157, 49, 49, 49, 49, 49, 49, 49,
994
+ 49, 49, 49, 49, 49, 49, 32, 117, 253, 253,
996
995
  32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
997
- 32, 193, 195, 251, 195, 158, 38, 5, 261, 262,
998
- 225, 193, 193, 193, 193, 193, 193, 193, 193, 193,
999
- 193, 193, 193, 193, 58, 32, 58, nil, 58, 58,
1000
- 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1001
- 58, 58, 58, 58, 58, 58, 58, nil, 193, 264,
1002
- 264, 264, nil, nil, 264, 264, nil, 58, 130, 130,
1003
- 130, nil, 89, 130, nil, 264, 264, 264, nil, nil,
1004
- 264, 58, 89, 89, 89, 89, 89, 89, 89, 89,
1005
- 89, 89, 89, 89, 89, 130, nil, nil, nil, nil,
1006
- nil, nil, 264, nil, 264, nil, 89, nil, nil, nil,
1007
- nil, nil, 113, 113, 113, nil, 80, 113, nil, 89,
1008
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
1009
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 113,
1010
- 227, nil, nil, nil, 227, 227, 227, 227, 227, 227,
1011
- 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
1012
- 227, 227, 227, 80, 227, 155, 155, 155, nil, nil,
1013
- 155, 155, nil, nil, nil, 133, 133, 133, 64, nil,
1014
- 133, 155, 155, 155, nil, nil, 155, 227, 64, 64,
1015
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
1016
- 64, 65, 133, nil, nil, nil, nil, nil, 155, nil,
1017
- 155, 65, 65, 65, 65, 65, 65, 65, 65, 65,
1018
- 65, 65, 65, 65, nil, 64, 245, 245, 245, nil,
1019
- nil, 245, 245, nil, nil, 65, nil, nil, nil, nil,
1020
- nil, nil, 245, 245, 245, 19, nil, 245, 65, 19,
996
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 198,
997
+ 49, 135, 135, 134, 134, 135, 101, 134, 103, 198,
998
+ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
999
+ 198, 198, 89, 32, 132, 132, 105, 135, 132, 134,
1000
+ 233, 233, 89, 89, 89, 89, 89, 89, 89, 89,
1001
+ 89, 89, 89, 89, 89, 158, 198, 251, 251, 251,
1002
+ 132, 235, 235, 235, 235, 107, 89, 26, 26, 26,
1003
+ 131, 131, 131, 112, 112, 110, 83, 112, 150, 89,
1004
+ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
1005
+ 83, 83, 83, 83, 83, 83, 83, 83, 83, 112,
1006
+ 228, 250, 250, 250, 228, 228, 228, 228, 228, 228,
1007
+ 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
1008
+ 228, 228, 228, 83, 228, 23, 23, 23, 23, 23,
1009
+ 23, 23, 23, 23, 237, 238, 239, 240, 241, 147,
1010
+ 115, 122, 122, 17, 59, 122, 59, 228, 59, 59,
1011
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
1012
+ 59, 59, 59, 59, 59, 59, 59, 122, 138, 116,
1013
+ 124, 121, 254, 5, 262, 263, 120, 59, nil, nil,
1014
+ nil, nil, nil, nil, nil, nil, nil, nil, 19, nil,
1015
+ nil, 59, 19, 19, 19, 19, 19, 19, 19, 19,
1021
1016
  19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1022
- 19, 19, 19, 19, 19, 19, 19, 19, 70, 245,
1023
- nil, 245, 116, 116, 116, nil, nil, 116, 70, 70,
1024
- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
1025
- 70, nil, 19, nil, nil, nil, nil, nil, 139, 116,
1026
- 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1027
- nil, nil, 75, 75, nil, 70, 75, 75, 75, 75,
1028
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1029
- 75, 75, 75, 75, 75, nil, 75, nil, nil, 78,
1030
- 78, 78, nil, nil, 78, 78, 148, 148, 148, nil,
1031
- nil, 148, 148, nil, nil, 78, 78, 78, 78, 75,
1032
- 78, 78, 148, 148, 148, nil, nil, 148, nil, 167,
1033
- 167, 167, nil, nil, 167, 167, nil, nil, nil, nil,
1034
- nil, nil, 78, nil, 78, 167, 167, 167, nil, 148,
1035
- 167, 148, 168, 168, 168, nil, nil, 168, 168, 142,
1036
- 142, 142, nil, nil, 142, 142, nil, nil, 168, 168,
1037
- 168, nil, 167, 168, 167, 142, 142, 142, 142, nil,
1038
- 142, 142, 169, 169, 169, nil, nil, 169, 169, nil,
1039
- nil, nil, nil, nil, nil, 168, nil, 168, 169, 169,
1040
- 169, nil, 142, 169, 142, 205, 205, 205, nil, nil,
1041
- 205, 205, 196, 196, 196, nil, nil, 196, 196, nil,
1042
- nil, 205, 205, 205, 205, 169, 205, 169, 196, 196,
1043
- 196, nil, nil, 196, nil, 170, 170, 170, nil, nil,
1044
- 170, 170, nil, nil, nil, nil, nil, nil, 205, nil,
1045
- 205, 170, 170, 170, nil, 196, 170, 196, 92, 92,
1046
- 92, nil, nil, 92, 92, 171, 171, 171, nil, nil,
1047
- 171, 171, nil, nil, 92, 92, 92, nil, 170, 92,
1048
- 170, 171, 171, 171, nil, nil, 171, nil, 191, 191,
1049
- 191, nil, nil, 191, 191, nil, nil, nil, nil, nil,
1050
- nil, 92, nil, 92, 191, 191, 191, nil, 171, 191,
1051
- 171, 190, 190, 190, nil, nil, 190, 190, 188, 188,
1052
- 188, nil, nil, 188, 188, nil, nil, 190, 190, 190,
1053
- nil, 191, 190, 191, 188, 188, 188, nil, nil, 188,
1054
- nil, 187, 187, 187, nil, nil, 187, 187, nil, nil,
1055
- nil, nil, nil, nil, 190, nil, 190, 187, 187, 187,
1056
- nil, 188, 187, 188, 186, 186, 186, nil, nil, 186,
1057
- 186, 172, 172, 172, nil, nil, 172, 172, nil, nil,
1058
- 186, 186, 186, nil, 187, 186, 187, 172, 172, 172,
1059
- nil, nil, 172, nil, 173, 173, 173, nil, nil, 173,
1060
- 173, nil, nil, nil, nil, nil, nil, 186, nil, 186,
1061
- 173, 173, 173, nil, 172, 173, 172, 182, 182, 182,
1062
- nil, nil, 182, 182, 181, 181, 181, nil, nil, 181,
1063
- 181, nil, nil, 182, 182, 182, nil, 173, 182, 173,
1064
- 181, 181, 181, nil, nil, 181, nil, 176, 176, 176,
1065
- nil, nil, 176, 176, nil, nil, nil, nil, nil, nil,
1066
- 182, nil, 182, 176, 176, 176, nil, 181, 176, 181,
1067
- 175, 175, 175, nil, nil, 175, 175, 179, 179, 179,
1068
- nil, nil, 179, 179, nil, nil, 175, 175, 175, nil,
1069
- 176, 175, 176, 179, 179, 179, nil, nil, 179, nil,
1070
- 180, 180, 180, nil, nil, 180, 180, nil, nil, nil,
1071
- nil, nil, nil, 175, nil, 175, 180, 180, 180, nil,
1072
- 179, 180, 179, nil, nil, nil, nil, nil, nil, nil,
1017
+ 19, nil, 78, 78, nil, nil, 78, 78, 78, 78,
1018
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
1019
+ 78, 78, 78, 78, 78, 19, 78, 182, 182, 182,
1020
+ 182, nil, nil, 182, 182, nil, nil, nil, nil, nil,
1021
+ 64, nil, nil, nil, 182, 182, nil, nil, 182, 78,
1022
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
1023
+ 64, 64, 64, 65, nil, nil, nil, nil, nil, nil,
1024
+ 182, nil, 182, 65, 65, 65, 65, 65, 65, 65,
1025
+ 65, 65, 65, 65, 65, 65, nil, 64, nil, nil,
1026
+ nil, nil, nil, nil, nil, nil, nil, 65, nil, nil,
1027
+ nil, nil, nil, nil, nil, nil, nil, nil, 0, nil,
1028
+ 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1029
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1030
+ 0, 70, nil, nil, nil, nil, nil, nil, nil, nil,
1031
+ nil, 70, 70, 70, 70, 70, 70, 70, 70, 70,
1032
+ 70, 70, 70, 70, 137, 0, nil, nil, nil, nil,
1033
+ nil, nil, nil, nil, 137, 137, 137, 137, 137, 137,
1034
+ 137, 137, 137, 137, 137, 137, 137, 137, 70, 179,
1035
+ 179, 179, 179, nil, nil, 179, 179, 176, 176, 176,
1036
+ 176, nil, nil, 176, 176, nil, 179, 179, nil, nil,
1037
+ 179, 137, nil, nil, 176, 176, nil, nil, 176, nil,
1038
+ 183, 183, 183, 183, nil, nil, 183, 183, nil, nil,
1039
+ nil, nil, 179, nil, 179, nil, nil, 183, 183, nil,
1040
+ 176, 183, 176, 187, 187, 187, 187, nil, nil, 187,
1041
+ 187, 81, 81, 81, 81, nil, nil, 81, 81, nil,
1042
+ 187, 187, nil, 183, 187, 183, nil, nil, 81, 81,
1043
+ 81, nil, 81, 81, 175, 175, 175, 175, nil, nil,
1044
+ 175, 175, nil, nil, nil, nil, 187, nil, 187, nil,
1045
+ nil, 175, 175, nil, 81, 175, 81, 188, 188, 188,
1046
+ 188, nil, nil, 188, 188, 174, 174, 174, 174, nil,
1047
+ nil, 174, 174, nil, 188, 188, nil, 175, 188, 175,
1048
+ nil, nil, 174, 174, nil, nil, 174, nil, 173, 173,
1049
+ 173, 173, nil, nil, 173, 173, nil, nil, nil, nil,
1050
+ 188, nil, 188, nil, nil, 173, 173, nil, 174, 173,
1051
+ 174, 172, 172, 172, 172, nil, nil, 172, 172, 170,
1052
+ 170, 170, 170, nil, nil, 170, 170, nil, 172, 172,
1053
+ nil, 173, 172, 173, nil, nil, 170, 170, nil, nil,
1054
+ 170, nil, 189, 189, 189, 189, nil, nil, 189, 189,
1055
+ nil, nil, nil, nil, 172, nil, 172, nil, nil, 189,
1056
+ 189, nil, 170, 189, 170, 92, 92, 92, 92, nil,
1057
+ nil, 92, 92, 169, 169, 169, 169, nil, nil, 169,
1058
+ 169, nil, 92, 92, nil, 189, 92, 189, nil, nil,
1059
+ 169, 169, nil, nil, 169, nil, 168, 168, 168, 168,
1060
+ nil, nil, 168, 168, nil, nil, nil, nil, 92, nil,
1061
+ 92, nil, nil, 168, 168, nil, 169, 168, 169, 167,
1062
+ 167, 167, 167, nil, nil, 167, 167, 191, 191, 191,
1063
+ 191, nil, nil, 191, 191, nil, 167, 167, nil, 168,
1064
+ 167, 168, nil, nil, 191, 191, nil, nil, 191, nil,
1065
+ 192, 192, 192, 192, nil, nil, 192, 192, nil, nil,
1066
+ nil, nil, 167, nil, 167, nil, nil, 192, 192, nil,
1067
+ 191, 192, 191, 195, 195, 195, 195, nil, nil, 195,
1068
+ 195, 196, 196, 196, 196, nil, nil, 196, 196, nil,
1069
+ 195, 195, nil, 192, 195, 192, nil, nil, 196, 196,
1070
+ nil, nil, 196, nil, 155, 155, 155, 155, nil, nil,
1071
+ 155, 155, nil, nil, nil, nil, 195, nil, 195, nil,
1072
+ nil, 155, 155, nil, 196, 155, 196, 206, 206, 206,
1073
+ 206, nil, nil, 206, 206, 148, 148, 148, 148, nil,
1074
+ nil, 148, 148, nil, 206, 206, 206, 155, 206, 155,
1075
+ nil, nil, 148, 148, nil, nil, 148, nil, nil, nil,
1076
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1077
+ 206, nil, 206, nil, nil, nil, nil, nil, 148, nil,
1078
+ 148, 144, 144, 144, 144, nil, nil, 144, 144, 246,
1079
+ 246, 246, 246, nil, nil, 246, 246, nil, 144, 144,
1080
+ 144, nil, 144, 144, nil, nil, 246, 246, nil, nil,
1081
+ 246, nil, 181, 181, 181, 181, nil, nil, 181, 181,
1082
+ nil, nil, nil, nil, 144, nil, 144, nil, nil, 181,
1083
+ 181, nil, 246, 181, 246, 265, 265, 265, 265, nil,
1084
+ nil, 265, 265, nil, nil, nil, nil, nil, nil, nil,
1085
+ nil, nil, 265, 265, nil, 181, 265, 181, nil, nil,
1073
1086
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1074
- nil, nil, nil, 180, nil, 180 ]
1087
+ nil, nil, nil, nil, nil, nil, nil, nil, 265, nil,
1088
+ 265 ]
1075
1089
 
1076
1090
  racc_action_pointer = [
1077
- 250, nil, nil, nil, nil, 397, nil, nil, nil, nil,
1078
- nil, nil, nil, nil, nil, nil, nil, 302, nil, 597,
1079
- 125, nil, nil, 318, nil, nil, 206, nil, 201, nil,
1080
- 170, nil, 340, nil, nil, nil, nil, nil, 396, nil,
1081
- nil, nil, nil, nil, 339, nil, nil, nil, nil, 273,
1082
- 48, nil, nil, 46, nil, 59, 41, nil, 386, 37,
1083
- 303, 323, nil, nil, 530, 553, nil, 187, nil, nil,
1084
- 620, 0, nil, 55, 44, 664, 52, nil, 711, 202,
1085
- 468, 34, nil, nil, 195, 109, 53, 52, nil, 424,
1086
- nil, nil, 870, 49, nil, -10, nil, nil, nil, -42,
1087
- nil, -41, nil, 267, nil, 4, 17, nil, 185, 84,
1088
- 188, nil, 195, 468, nil, 198, 628, nil, nil, 205,
1089
- 223, nil, 286, nil, 35, nil, nil, -8, nil, 217,
1090
- 424, 226, 296, 531, 196, 280, 281, nil, nil, 617,
1091
- nil, nil, 771, nil, nil, nil, nil, 248, 718, nil,
1092
- 324, nil, nil, 62, nil, 537, nil, 227, 366, 45,
1093
- nil, 144, -25, nil, nil, 38, nil, 741, 764, 794,
1094
- 847, 877, 983, 1006, nil, 1082, 1059, nil, nil, 1089,
1095
- 1112, 1036, 1029, 193, 12, 73, 976, 953, 930, nil,
1096
- 923, 900, nil, 363, nil, 341, 824, nil, nil, nil,
1097
- nil, nil, nil, nil, nil, 817, nil, nil, nil, nil,
1098
- nil, nil, 58, nil, nil, nil, nil, nil, nil, nil,
1099
- nil, 53, nil, nil, 101, 348, 43, 492, -1, 113,
1100
- 202, 68, -40, 148, 134, 136, 273, -53, 271, 308,
1101
- 271, nil, 96, nil, 31, 598, nil, nil, nil, 191,
1102
- 203, 341, 228, 230, nil, 196, nil, nil, nil, nil,
1103
- nil, 346, 325, nil, 431, nil, nil, nil, nil, nil,
1104
- nil, nil ]
1091
+ 590, nil, nil, nil, nil, 473, nil, nil, nil, nil,
1092
+ nil, nil, nil, nil, nil, nil, nil, 413, nil, 460,
1093
+ 218, nil, nil, 387, nil, nil, 339, nil, 62, nil,
1094
+ 122, nil, 258, nil, nil, nil, nil, nil, 103, nil,
1095
+ nil, nil, nil, nil, 64, nil, nil, nil, nil, 235,
1096
+ 36, 56, nil, nil, 147, nil, 67, -27, nil, 416,
1097
+ -18, -1, nil, nil, 522, 545, nil, 47, nil, nil,
1098
+ 613, 39, nil, nil, 66, nil, 70, 102, 484, 0,
1099
+ nil, 743, 73, 348, 140, 110, 202, 206, nil, 304,
1100
+ nil, nil, 897, 51, nil, 210, nil, nil, nil, nil,
1101
+ nil, 255, nil, 266, nil, 276, nil, 305, -7, nil,
1102
+ 323, 183, 348, 89, nil, 387, 413, 236, nil, nil,
1103
+ 402, 414, 416, nil, 448, nil, -10, nil, nil, -8,
1104
+ nil, 359, 309, 202, 288, 286, 154, 636, 441, nil,
1105
+ nil, 96, nil, nil, 1113, nil, nil, 377, 1067, nil,
1106
+ 349, nil, nil, 41, nil, 1036, nil, 196, 326, 46,
1107
+ nil, 145, -24, nil, nil, 50, nil, 951, 928, 905,
1108
+ 851, nil, 843, 820, 797, 766, 689, nil, nil, 681,
1109
+ nil, 1144, 529, 712, -29, 8, -36, 735, 789, 874,
1110
+ nil, 959, 982, nil, nil, 1005, 1013, nil, 281, nil,
1111
+ nil, nil, nil, nil, nil, nil, 1059, nil, nil, nil,
1112
+ nil, nil, nil, 59, nil, nil, nil, nil, nil, nil,
1113
+ nil, nil, 129, nil, nil, 167, 175, 197, 372, 54,
1114
+ 72, 100, 202, 286, 196, 345, 94, 381, 379, 379,
1115
+ 415, 379, nil, 97, nil, 39, 1121, nil, nil, nil,
1116
+ 390, 346, 245, 274, 420, nil, 196, nil, nil, nil,
1117
+ nil, nil, 422, 401, nil, 1167, nil, nil, nil, nil,
1118
+ nil, nil, nil ]
1105
1119
 
1106
1120
  racc_action_default = [
1107
1121
  -5, -19, -8, -20, -9, -185, -21, -10, -1, -22,
@@ -1109,97 +1123,97 @@ racc_action_default = [
1109
1123
  -109, -25, -14, -112, -106, -15, -185, -114, -185, -16,
1110
1124
  -185, -115, -185, -17, -6, -116, -18, -7, -185, -4,
1111
1125
  -110, -107, -108, -113, -122, -118, -119, -30, -29, -185,
1112
- -185, -138, -83, -185, -135, -185, -137, -82, -85, -155,
1113
- -147, -185, -111, 272, -185, -185, -123, -185, -127, -128,
1114
- -185, -185, -81, -185, -136, -185, -185, -79, -185, -185,
1115
- -77, -154, -157, -158, -185, -152, -185, -148, -150, -185,
1116
- -124, -121, -185, -185, -130, -132, -126, -129, -84, -85,
1117
- -139, -185, -168, -160, -162, -167, -166, -144, -185, -61,
1118
- -64, -34, -66, -185, -31, -68, -185, -36, -32, -185,
1119
- -70, -33, -72, -44, -74, -76, -46, -185, -141, -50,
1120
- -185, -53, -185, -185, -56, -185, -93, -86, -87, -44,
1121
- -26, -92, -185, -27, -80, -156, -159, -185, -185, -146,
1126
+ -155, -185, -138, -83, -185, -135, -185, -137, -82, -85,
1127
+ -147, -185, -111, 273, -185, -185, -123, -185, -127, -128,
1128
+ -185, -154, -157, -158, -185, -81, -185, -136, -185, -185,
1129
+ -79, -185, -185, -77, -185, -152, -185, -148, -150, -185,
1130
+ -124, -121, -185, -185, -130, -132, -126, -129, -156, -159,
1131
+ -84, -85, -139, -185, -168, -160, -162, -167, -166, -144,
1132
+ -185, -61, -185, -64, -33, -66, -68, -185, -35, -31,
1133
+ -185, -70, -185, -32, -72, -44, -74, -76, -46, -185,
1134
+ -141, -50, -185, -53, -185, -185, -56, -185, -93, -86,
1135
+ -87, -44, -26, -92, -185, -27, -80, -185, -185, -146,
1122
1136
  -149, -120, -133, -185, -125, -185, -143, -185, -185, -185,
1123
1137
  -165, -185, -173, -172, -164, -174, -142, -185, -185, -185,
1124
- -185, -185, -185, -185, -39, -185, -185, -40, -140, -185,
1125
- -185, -185, -185, -185, -170, -185, -185, -185, -185, -41,
1126
- -185, -185, -42, -185, -37, -185, -185, -38, -28, -99,
1127
- -100, -101, -102, -103, -104, -185, -105, -95, -96, -97,
1128
- -98, -90, -185, -145, -153, -151, -131, -134, -163, -161,
1129
- -169, -185, -177, -181, -185, -185, -175, -185, -185, -57,
1130
- -59, -58, -60, -62, -63, -65, -67, -69, -71, -73,
1131
- -185, -35, -185, -171, -173, -185, -48, -49, -47, -51,
1132
- -52, -185, -55, -54, -94, -185, -88, -178, -176, -182,
1133
- -183, -185, -185, -179, -185, -45, -43, -91, -89, -184,
1134
- -180, -75 ]
1138
+ -185, -37, -185, -185, -185, -185, -185, -38, -140, -185,
1139
+ -39, -185, -185, -185, -185, -170, -185, -185, -185, -185,
1140
+ -40, -185, -185, -41, -36, -185, -185, -42, -185, -28,
1141
+ -99, -100, -101, -102, -103, -104, -185, -105, -95, -96,
1142
+ -97, -98, -90, -185, -145, -153, -151, -131, -134, -163,
1143
+ -161, -169, -185, -177, -181, -185, -185, -175, -185, -185,
1144
+ -57, -59, -58, -60, -62, -63, -65, -67, -69, -71,
1145
+ -73, -185, -34, -185, -171, -173, -185, -47, -48, -49,
1146
+ -51, -52, -55, -54, -185, -94, -185, -88, -178, -176,
1147
+ -182, -183, -185, -185, -179, -185, -45, -43, -91, -89,
1148
+ -184, -180, -75 ]
1135
1149
 
1136
1150
  racc_goto_table = [
1137
- 141, 82, 137, 139, 108, 69, 119, 74, 42, 94,
1138
- 73, 97, 224, 160, 226, 65, 80, 14, 90, 205,
1139
- 69, 69, 152, 145, 28, 254, 69, 86, 58, 174,
1140
- 89, 44, 177, 185, 43, 60, 98, 70, 192, 246,
1141
- 247, 248, 90, 40, 212, 69, 189, 83, 162, 194,
1142
- 147, 197, 70, 70, 249, 250, 62, 239, 70, 229,
1143
- 230, 231, 232, 93, 141, 238, 211, 139, 184, 146,
1144
- 237, 99, 236, 184, 235, 77, 198, 70, 214, 99,
1145
- 233, 234, 79, 69, 41, 217, 252, 253, 69, 221,
1146
- 45, 243, 51, 224, 45, 216, 226, 144, 265, 251,
1147
- 101, 17, 215, 162, 79, 81, 164, 218, 11, 105,
1148
- 8, 5, 240, nil, 74, 70, nil, 51, 73, 51,
1149
- 70, nil, nil, nil, nil, 85, 244, 141, nil, nil,
1150
- 139, 51, nil, nil, 184, 51, nil, nil, nil, 102,
1151
- nil, nil, nil, 51, nil, nil, nil, nil, 85, 69,
1152
- nil, nil, nil, nil, nil, nil, 261, nil, 262, nil,
1151
+ 72, 143, 141, 42, 139, 110, 120, 76, 94, 69,
1152
+ 97, 77, 14, 227, 160, 186, 225, 90, 83, 152,
1153
+ 28, 98, 59, 197, 69, 69, 247, 248, 249, 65,
1154
+ 69, 44, 70, 73, 86, 60, 250, 251, 206, 40,
1155
+ 171, 90, 234, 235, 89, 177, 255, 70, 70, 69,
1156
+ 180, 43, 62, 70, 99, 252, 253, 147, 162, 100,
1157
+ 190, 213, 193, 194, 143, 141, 240, 212, 101, 185,
1158
+ 93, 80, 70, 239, 238, 215, 101, 185, 237, 82,
1159
+ 236, 199, 218, 41, 254, 266, 222, 103, 45, 69,
1160
+ 52, 244, 45, 17, 217, 146, 227, 69, 225, 216,
1161
+ 71, 219, 164, 82, 230, 231, 232, 233, 11, 107,
1162
+ 241, 162, 70, 8, 76, 5, 52, 77, 52, nil,
1163
+ 70, nil, nil, 85, nil, nil, 143, 141, nil, 52,
1164
+ nil, nil, nil, nil, nil, 245, 52, nil, 185, nil,
1165
+ 104, nil, nil, nil, 52, nil, 85, nil, nil, nil,
1166
+ nil, nil, nil, nil, nil, 262, 263, nil, 69, nil,
1153
1167
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1154
- 51, nil, nil, nil, nil, nil, nil, 141, nil, 267,
1155
- 139, 70, nil, nil, 244, nil, 271, nil, nil, nil,
1168
+ 52, nil, nil, nil, nil, nil, 143, 141, nil, 268,
1169
+ nil, 70, nil, nil, nil, 272, nil, nil, nil, nil,
1170
+ nil, nil, nil, 245, nil, nil, nil, nil, nil, nil,
1156
1171
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1157
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1158
- nil, nil, nil, nil, 85, nil, nil, 51, nil, nil,
1159
- nil, nil, 220, nil, nil, 51, 51 ]
1172
+ nil, nil, 85, nil, nil, 52, nil, nil, nil, nil,
1173
+ 221, nil, nil, 52, 52 ]
1160
1174
 
1161
1175
  racc_goto_check = [
1162
- 29, 52, 35, 16, 54, 40, 15, 53, 9, 50,
1163
- 51, 49, 64, 62, 65, 45, 32, 4, 46, 38,
1164
- 40, 40, 15, 52, 30, 36, 40, 56, 31, 14,
1165
- 45, 44, 14, 17, 41, 44, 34, 9, 17, 18,
1166
- 18, 18, 46, 30, 37, 40, 14, 9, 52, 14,
1167
- 56, 14, 9, 9, 19, 19, 30, 27, 9, 21,
1168
- 21, 21, 21, 48, 29, 26, 35, 16, 49, 9,
1169
- 25, 31, 24, 49, 23, 4, 10, 9, 15, 31,
1170
- 22, 22, 30, 40, 6, 15, 20, 20, 40, 15,
1171
- 12, 62, 12, 64, 12, 50, 65, 4, 18, 17,
1172
- 55, 5, 58, 52, 30, 59, 31, 61, 3, 63,
1173
- 2, 1, 15, nil, 53, 9, nil, 12, 51, 12,
1174
- 9, nil, nil, nil, nil, 12, 52, 29, nil, nil,
1175
- 16, 12, nil, nil, 49, 12, nil, nil, nil, 12,
1176
- nil, nil, nil, 12, nil, nil, nil, nil, 12, 40,
1177
- nil, nil, nil, nil, nil, nil, 54, nil, 15, nil,
1178
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1179
- 12, nil, nil, nil, nil, nil, nil, 29, nil, 35,
1180
- 16, 9, nil, nil, 52, nil, 29, nil, nil, nil,
1176
+ 52, 29, 16, 9, 35, 54, 15, 51, 50, 40,
1177
+ 49, 53, 4, 65, 62, 17, 64, 46, 32, 15,
1178
+ 30, 52, 31, 17, 40, 40, 18, 18, 18, 45,
1179
+ 40, 44, 9, 9, 56, 44, 19, 19, 38, 30,
1180
+ 14, 46, 22, 22, 45, 14, 36, 9, 9, 40,
1181
+ 14, 41, 30, 9, 9, 20, 20, 56, 52, 34,
1182
+ 14, 37, 14, 14, 29, 16, 27, 35, 31, 49,
1183
+ 48, 4, 9, 26, 25, 15, 31, 49, 24, 30,
1184
+ 23, 10, 15, 6, 17, 18, 15, 55, 12, 40,
1185
+ 12, 62, 12, 5, 50, 4, 65, 40, 64, 58,
1186
+ 59, 61, 31, 30, 21, 21, 21, 21, 3, 63,
1187
+ 15, 52, 9, 2, 51, 1, 12, 53, 12, nil,
1188
+ 9, nil, nil, 12, nil, nil, 29, 16, nil, 12,
1189
+ nil, nil, nil, nil, nil, 52, 12, nil, 49, nil,
1190
+ 12, nil, nil, nil, 12, nil, 12, nil, nil, nil,
1191
+ nil, nil, nil, nil, nil, 54, 15, nil, 40, nil,
1181
1192
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1193
+ 12, nil, nil, nil, nil, nil, 29, 16, nil, 35,
1194
+ nil, 9, nil, nil, nil, 29, nil, nil, nil, nil,
1195
+ nil, nil, nil, 52, nil, nil, nil, nil, nil, nil,
1182
1196
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1183
- nil, nil, nil, nil, 12, nil, nil, 12, nil, nil,
1184
- nil, nil, 12, nil, nil, 12, 12 ]
1197
+ nil, nil, 12, nil, nil, 12, nil, nil, nil, nil,
1198
+ 12, nil, nil, 12, 12 ]
1185
1199
 
1186
1200
  racc_goto_pointer = [
1187
- nil, 111, 110, 108, 17, 101, 64, nil, nil, -12,
1188
- -60, nil, 64, nil, -84, -70, -75, -94, -147, -136,
1189
- -109, -108, -91, -99, -104, -109, -115, -124, nil, -78,
1190
- 24, 0, -42, nil, -35, -76, -180, -98, -120, nil,
1191
- -44, 11, nil, nil, 5, -34, -47, nil, -4, -59,
1192
- -58, -43, -58, -48, -71, 25, -34, nil, -48, 46,
1193
- nil, -50, -93, 34, -149, -148 ]
1201
+ nil, 115, 113, 108, 12, 93, 63, nil, nil, -17,
1202
+ -57, nil, 62, nil, -72, -73, -79, -114, -161, -155,
1203
+ -140, -63, -131, -95, -98, -105, -108, -116, nil, -80,
1204
+ 20, -6, -41, nil, -15, -77, -160, -83, -103, nil,
1205
+ -40, 28, nil, nil, 5, -20, -48, nil, 3, -60,
1206
+ -59, -47, -50, -45, -73, 9, -27, nil, -51, 50,
1207
+ nil, -56, -94, 31, -145, -149 ]
1194
1208
 
1195
1209
  racc_goto_default = [
1196
1210
  nil, nil, nil, nil, nil, nil, 19, 23, 26, 32,
1197
- 143, 136, 111, 46, 117, 183, 123, nil, 126, 129,
1198
- 131, 134, 109, 110, 112, 115, 120, 122, 124, 125,
1199
- 106, 95, nil, 50, 52, nil, 138, nil, nil, 20,
1211
+ 145, 138, 114, 46, 118, 184, 125, nil, 128, 131,
1212
+ 133, 136, 111, 113, 115, 116, 121, 124, 126, 127,
1213
+ 108, 95, nil, 51, 53, nil, 140, nil, nil, 20,
1200
1214
  24, 27, 31, 35, nil, nil, 66, 67, nil, 68,
1201
- nil, 54, 55, 56, 225, nil, nil, 87, 88, nil,
1202
- 103, 104, nil, nil, 163, 165 ]
1215
+ nil, 55, 56, 57, 226, nil, nil, 87, 88, nil,
1216
+ 105, 106, nil, nil, 163, 165 ]
1203
1217
 
1204
1218
  racc_token_table = {
1205
1219
  false => 0,
@@ -1211,23 +1225,23 @@ racc_token_table = {
1211
1225
  :UPLUS => 6,
1212
1226
  :UMINUS => 7,
1213
1227
  "!" => 8,
1214
- "sizeof" => 9,
1215
- "*" => 10,
1216
- "/" => 11,
1217
- "%" => 12,
1218
- "+" => 13,
1219
- "-" => 14,
1220
- "<" => 15,
1221
- "<=" => 16,
1222
- ">" => 17,
1223
- ">=" => 18,
1224
- "==" => 19,
1225
- "!=" => 20,
1226
- "&&" => 21,
1227
- "||" => 22,
1228
- :POINTER => 23,
1229
- :INTEGER => 24,
1230
- :FLOAT => 25,
1228
+ "~" => 9,
1229
+ "sizeof" => 10,
1230
+ "*" => 11,
1231
+ "/" => 12,
1232
+ "%" => 13,
1233
+ "+" => 14,
1234
+ "-" => 15,
1235
+ "<" => 16,
1236
+ "<=" => 17,
1237
+ ">" => 18,
1238
+ ">=" => 19,
1239
+ "==" => 20,
1240
+ "!=" => 21,
1241
+ "&&" => 22,
1242
+ "||" => 23,
1243
+ :POINTER => 24,
1244
+ :CONSTANT => 25,
1231
1245
  :CHARACTER => 26,
1232
1246
  :STRING => 27,
1233
1247
  :TYPEDEF_NAME => 28,
@@ -1310,6 +1324,7 @@ Racc_token_to_s_table = [
1310
1324
  'UPLUS',
1311
1325
  'UMINUS',
1312
1326
  '"!"',
1327
+ '"~"',
1313
1328
  '"sizeof"',
1314
1329
  '"*"',
1315
1330
  '"/"',
@@ -1325,8 +1340,7 @@ Racc_token_to_s_table = [
1325
1340
  '"&&"',
1326
1341
  '"||"',
1327
1342
  'POINTER',
1328
- 'INTEGER',
1329
- 'FLOAT',
1343
+ 'CONSTANT',
1330
1344
  'CHARACTER',
1331
1345
  'STRING',
1332
1346
  'TYPEDEF_NAME',
@@ -1557,16 +1571,21 @@ module_eval <<'.,.,', 'src/ctype.y', 89
1557
1571
 
1558
1572
  # reduce 33 omitted
1559
1573
 
1560
- # reduce 34 omitted
1561
-
1562
- module_eval <<'.,.,', 'src/ctype.y', 97
1563
- def _reduce_35( val, _values, result )
1574
+ module_eval <<'.,.,', 'src/ctype.y', 96
1575
+ def _reduce_34( val, _values, result )
1564
1576
  result = val[1]
1565
1577
  result
1566
1578
  end
1567
1579
  .,.,
1568
1580
 
1569
- # reduce 36 omitted
1581
+ # reduce 35 omitted
1582
+
1583
+ module_eval <<'.,.,', 'src/ctype.y', 101
1584
+ def _reduce_36( val, _values, result )
1585
+ result = val[0,2].join
1586
+ result
1587
+ end
1588
+ .,.,
1570
1589
 
1571
1590
  module_eval <<'.,.,', 'src/ctype.y', 102
1572
1591
  def _reduce_37( val, _values, result )