dbc 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 )