# # DO NOT MODIFY!!!! # This file is automatically generated by racc 1.4.5 # from racc grammer file "lib/cast/c.y". # require 'racc/parser' require 'set' #### Error classes module C class ParseError < StandardError; end end ### Local variables: ### mode: ruby ### end: module C class Parser < Racc::Parser module_eval <<'..end lib/cast/c.y modeval..idba17d34edf', 'lib/cast/c.y', 536 ## A.1.9 -- Preprocessing numbers -- skip ## A.1.8 -- Header names -- skip ## A.1.7 -- Puncuators -- we don't bother with {##,#,%:,%:%:} since ## we don't do preprocessing @@punctuators = %r'\+\+|-[->]|&&|\|\||\.\.\.|(?:<<|>>|[<>=!*/%+\-&^|])=?|[\[\](){}.~?:;,]' @@digraphs = %r'<[:%]|[:%]>' ## A.1.6 -- String Literals -- simple for us because we don't decode ## the string (and indeed accept some illegal strings) @@string_literal = %r'L?"(?:[^\\]|\\.)*?"'m ## A.1.5 -- Constants @@decimal_floating_constant = %r'(?:(?:\d*\.\d+|\d+\.)(?:e[-+]?\d+)?|\d+e[-+]?\d+)[fl]?'i @@hexadecimal_floating_constant = %r'0x(?:(?:[0-9a-f]*\.[0-9a-f]+|[0-9a-f]+\.)|[0-9a-f]+)p[-+]?\d+[fl]?'i @@integer_constant = %r'(?:[1-9][0-9]*|0x[0-9a-f]+|0[0-7]*)(?:ul?l?|ll?u?)?'i @@floating_constant = %r'#{@@decimal_floating_constant}|#{@@hexadecimal_floating_constant}' @@enumeration_constant = %r'[a-zA-Z_\\][a-zA-Z_\\0-9]*' @@character_constant = %r"L?'(?:[^\\]|\\.)+?'" ## (note that as with string-literals, we accept some illegal ## character-constants) ## A.1.4 -- Universal character names -- skip ## A.1.3 -- Identifiers -- skip, since an identifier is lexically ## identical to an enumeration constant ## A.1.2 Keywords keywords = %w'auto break case char const continue default do double else enum extern float for goto if inline int long register restrict return short signed sizeof static struct switch typedef union unsigned void volatile while _Bool _Complex _Imaginary' @@keywords = %r"#{keywords.join('|')}" def initialize @type_names = ::Set.new @warning_proc = lambda{} @pos = C::Node::Pos.new(nil, 1, 0) end def initialize_copy x @pos = x.pos.dup @type_names = x.type_names.dup end attr_accessor :pos, :type_names def parse str if str.respond_to? :read str = str.read end @str = str begin prepare_lexer(str) return do_parse rescue ParseError => e e.set_backtrace(caller) raise end end ### ### Error handler, as used by racc. ### def on_error error_token_id, error_value, value_stack if error_value == '$' parse_error @pos, "unexpected EOF" else parse_error(error_value.pos, "parse error on #{error_token_id.inspect}") end end private class Token attr_accessor :pos, :val def initialize pos, val @pos = pos @val = val end end def eat str lines = str.split(/\r\n|[\r\n]/, -1) if lines.length == 1 @pos.col_num += lines[0].length else @pos.line_num += lines.length - 1 @pos.col_num = lines[-1].length end end private #### Helper methods ## Make a Declaration from the given specs and declarators. def make_declaration pos, specs, declarators specs.all?{|x| x.is_a?(Symbol) || x.is_a?(Type)} or raise specs.map{|x| x.class}.inspect decl = Declaration.new_at(pos, nil, declarators) ## set storage class storage_classes = specs.find_all do |x| [:typedef, :extern, :static, :auto, :register].include? x end ## 6.7.1p2: at most, one storage-class specifier may be given in ## the declaration specifiers in a declaration storage_classes.length <= 1 or begin if declarators.length == 0 for_name = '' else for_name = "for `#{declarators[0].name}'" end parse_error pos, "multiple or duplicate storage classes given #{for_name}'" end decl.storage = storage_classes[0] ## set type (specifiers, qualifiers) decl.type = make_direct_type(pos, specs) ## set function specifiers decl.inline = specs.include?(:inline) ## look for new type names if decl.typedef? decl.declarators.each do |d| if d.name @type_names << d.name end end end return decl end def make_function_def pos, specs, func_declarator, decl_list, defn add_decl_type(func_declarator, make_direct_type(pos, specs)) ## get types from decl_list if necessary function = func_declarator.indirect_type function.is_a? Function or parse_error pos, "non function type for function `#{func_declarator.name}'" params = function.params if decl_list params.all?{|p| p.type.nil?} or parse_error pos, "both prototype and declaration list given for `#{func_declarator.name}'" decl_list.each do |declaration| declaration.declarators.each do |declarator| param = params.find{|p| p.name == declarator.name} or parse_error pos, "no parameter named #{declarator.name}" if declarator.indirect_type param.type = declarator.indirect_type param.type.direct_type = declaration.type.dup else param.type = declaration.type.dup end end end params.all?{|p| p.type} or begin s = params.find_all{|p| p.type.nil?}.map{|p| "`#{p.name}'"}.join(' and ') parse_error pos, "types missing for parameters #{s}" end end fd = FunctionDef.new_at(pos, function.detach, func_declarator.name, defn, :no_prototype => !decl_list.nil?) ## set storage class ## 6.9.1p4: only extern or static allowed specs.each do |s| [:typedef, :auto, :register].include?(s) and "`#{s}' illegal for function" end storage_classes = specs.find_all do |s| s == :extern || s == :static end ## 6.7.1p2: at most, one storage-class specifier may be given in ## the declaration specifiers in a declaration storage_classes.length <= 1 or "multiple or duplicate storage classes given for `#{func_declarator.name}'" fd.storage = storage_classes[0] if storage_classes[0] ## set function specifiers ## 6.7.4p5 'inline' can be repeated fd.inline = specs.include?(:inline) return fd end ## Make a direct type from the list of type specifiers and type ## qualifiers. def make_direct_type pos, specs specs_order = [:signed, :unsigned, :short, :long, :double, :void, :char, :int, :float, :_Bool, :_Complex, :_Imaginary] type_specs = specs.find_all do |x| specs_order.include?(x) || !x.is_a?(Symbol) end type_specs.sort! do |a, b| (specs_order.index(a)||100) <=> (specs_order.index(b)||100) end ## set type specifiers ## 6.7.2p2: the specifier list should be one of these type = case type_specs when [:void] Void.new when [:char] Char.new when [:signed, :char] Char.new :signed => true when [:unsigned, :char] Char.new :signed => false when [:short], [:signed, :short], [:short, :int], [:signed, :short, :int] Int.new :longness => -1 when [:unsigned, :short], [:unsigned, :short, :int] Int.new :unsigned => true, :longness => -1 when [:int], [:signed], [:signed, :int] Int.new when [:unsigned], [:unsigned, :int] Int.new :unsigned => true when [:long], [:signed, :long], [:long, :int], [:signed, :long, :int] Int.new :longness => 1 when [:unsigned, :long], [:unsigned, :long, :int] Int.new :longness => 1, :unsigned => true when [:long, :long], [:signed, :long, :long], [:long, :long, :int], [:signed, :long, :long, :int] Int.new :longness => 2 when [:unsigned, :long, :long], [:unsigned, :long, :long, :int] Int.new :longness => 2, :unsigned => true when [:float] Float.new when [:double] Float.new :longness => 1 when [:long, :double] Float.new :longness => 2 when [:_Bool] Bool.new when [:float, :_Complex] Complex.new when [:double, :_Complex] Complex.new :longness => 1 when [:long, :double, :_Complex] Complex.new :longness => 2 when [:float, :_Imaginary] Imaginary.new when [:double, :_Imaginary] Imaginary.new :longness => 1 when [:long, :double, :_Imaginary] Imaginary.new :longness => 2 else if type_specs.length == 1 && [CustomType, Struct, Union, Enum].any?{|c| type_specs[0].is_a? c} type_specs[0] else if type_specs == [] parse_error pos, "no type specifiers given" else parse_error pos, "invalid type specifier combination: #{type_specs.join(' ')}" end end end type.pos ||= pos ## set type qualifiers ## 6.7.3p4: type qualifiers can be repeated type.const = specs.any?{|x| x.equal? :const } type.restrict = specs.any?{|x| x.equal? :restrict} type.volatile = specs.any?{|x| x.equal? :volatile} return type end def make_parameter pos, specs, indirect_type, name type = indirect_type if type type.direct_type = make_direct_type(pos, specs) else type = make_direct_type(pos, specs) end [:typedef, :extern, :static, :auto, :inline].each do |sym| specs.include? sym and parse_error pos, "parameter `#{declarator.name}' declared `#{sym}'" end return Parameter.new_at(pos, type, name, :register => specs.include?(:register)) end def add_type_quals type, quals type.const = quals.include?(:const ) type.restrict = quals.include?(:restrict) type.volatile = quals.include?(:volatile) return type end ## Add te given type as the "most direct" type to the given ## declarator. Return the declarator. def add_decl_type declarator, type if declarator.indirect_type declarator.indirect_type.direct_type = type else declarator.indirect_type = type end return declarator end def param_list params, var_args if params.length == 1 && params[0].type.is_a?(Void) && params[0].name.nil? return NodeArray[] elsif params.empty? return nil else return params end end def parse_error pos, str raise ParseError, "#{pos}: #{str}" end ..end lib/cast/c.y modeval..idba17d34edf ##### racc 1.4.5 generates ### racc_reduce_table = [ 0, 0, :racc_error, 1, 92, :_reduce_1, 2, 92, :_reduce_2, 1, 93, :_reduce_3, 1, 93, :_reduce_4, 4, 94, :_reduce_5, 3, 94, :_reduce_6, 1, 98, :_reduce_7, 2, 98, :_reduce_8, 1, 100, :_reduce_9, 1, 100, :_reduce_10, 1, 100, :_reduce_11, 1, 100, :_reduce_12, 1, 100, :_reduce_13, 1, 100, :_reduce_14, 3, 101, :_reduce_15, 4, 101, :_reduce_16, 3, 101, :_reduce_17, 3, 101, :_reduce_18, 3, 99, :_reduce_19, 2, 99, :_reduce_20, 1, 109, :_reduce_21, 2, 109, :_reduce_22, 1, 110, :_reduce_23, 1, 110, :_reduce_24, 2, 102, :_reduce_25, 1, 102, :_reduce_26, 5, 103, :_reduce_27, 7, 103, :_reduce_28, 5, 103, :_reduce_29, 5, 104, :_reduce_30, 7, 104, :_reduce_31, 9, 104, :_reduce_32, 8, 104, :_reduce_33, 8, 104, :_reduce_34, 7, 104, :_reduce_35, 8, 104, :_reduce_36, 7, 104, :_reduce_37, 7, 104, :_reduce_38, 6, 104, :_reduce_39, 8, 104, :_reduce_40, 7, 104, :_reduce_41, 7, 104, :_reduce_42, 6, 104, :_reduce_43, 3, 105, :_reduce_44, 2, 105, :_reduce_45, 2, 105, :_reduce_46, 3, 105, :_reduce_47, 2, 105, :_reduce_48, 3, 105, :_reduce_49, 3, 95, :_reduce_50, 2, 95, :_reduce_51, 2, 96, :_reduce_52, 1, 96, :_reduce_53, 2, 96, :_reduce_54, 1, 96, :_reduce_55, 2, 96, :_reduce_56, 1, 96, :_reduce_57, 2, 96, :_reduce_58, 1, 96, :_reduce_59, 1, 112, :_reduce_60, 3, 112, :_reduce_61, 1, 117, :_reduce_62, 3, 117, :_reduce_63, 1, 113, :_reduce_64, 1, 113, :_reduce_65, 1, 113, :_reduce_66, 1, 113, :_reduce_67, 1, 113, :_reduce_68, 1, 114, :_reduce_69, 1, 114, :_reduce_70, 1, 114, :_reduce_71, 1, 114, :_reduce_72, 1, 114, :_reduce_73, 1, 114, :_reduce_74, 1, 114, :_reduce_75, 1, 114, :_reduce_76, 1, 114, :_reduce_77, 1, 114, :_reduce_78, 1, 114, :_reduce_79, 1, 114, :_reduce_80, 1, 114, :_reduce_81, 1, 114, :_reduce_82, 1, 114, :_reduce_83, 5, 119, :_reduce_84, 4, 119, :_reduce_85, 2, 119, :_reduce_86, 5, 119, :_reduce_87, 2, 119, :_reduce_88, 1, 121, :_reduce_89, 1, 121, :_reduce_90, 1, 122, :_reduce_91, 2, 122, :_reduce_92, 3, 123, :_reduce_93, 2, 124, :_reduce_94, 1, 124, :_reduce_95, 2, 124, :_reduce_96, 1, 124, :_reduce_97, 1, 125, :_reduce_98, 3, 125, :_reduce_99, 1, 126, :_reduce_100, 3, 126, :_reduce_101, 2, 126, :_reduce_102, 5, 120, :_reduce_103, 4, 120, :_reduce_104, 6, 120, :_reduce_105, 5, 120, :_reduce_106, 2, 120, :_reduce_107, 5, 120, :_reduce_108, 6, 120, :_reduce_109, 2, 120, :_reduce_110, 1, 127, :_reduce_111, 3, 127, :_reduce_112, 1, 128, :_reduce_113, 3, 128, :_reduce_114, 1, 115, :_reduce_115, 1, 115, :_reduce_116, 1, 115, :_reduce_117, 1, 116, :_reduce_118, 2, 97, :_reduce_119, 1, 97, :_reduce_120, 1, 131, :_reduce_121, 3, 131, :_reduce_122, 5, 131, :_reduce_123, 4, 131, :_reduce_124, 4, 131, :_reduce_125, 3, 131, :_reduce_126, 6, 131, :_reduce_127, 5, 131, :_reduce_128, 6, 131, :_reduce_129, 5, 131, :_reduce_130, 4, 131, :_reduce_131, 4, 131, :_reduce_132, 4, 131, :_reduce_133, 3, 131, :_reduce_134, 2, 130, :_reduce_135, 1, 130, :_reduce_136, 3, 130, :_reduce_137, 2, 130, :_reduce_138, 1, 132, :_reduce_139, 2, 132, :_reduce_140, 1, 134, :_reduce_141, 3, 134, :_reduce_142, 1, 136, :_reduce_143, 3, 136, :_reduce_144, 2, 137, :_reduce_145, 2, 137, :_reduce_146, 1, 137, :_reduce_147, 1, 135, :_reduce_148, 3, 135, :_reduce_149, 2, 139, :_reduce_150, 1, 139, :_reduce_151, 1, 138, :_reduce_152, 2, 138, :_reduce_153, 1, 138, :_reduce_154, 3, 140, :_reduce_155, 4, 140, :_reduce_156, 3, 140, :_reduce_157, 3, 140, :_reduce_158, 2, 140, :_reduce_159, 4, 140, :_reduce_160, 3, 140, :_reduce_161, 4, 140, :_reduce_162, 3, 140, :_reduce_163, 3, 140, :_reduce_164, 2, 140, :_reduce_165, 1, 108, :_reduce_166, 1, 118, :_reduce_167, 3, 118, :_reduce_168, 4, 118, :_reduce_169, 2, 141, :_reduce_170, 1, 141, :_reduce_171, 4, 141, :_reduce_172, 3, 141, :_reduce_173, 2, 142, :_reduce_174, 1, 143, :_reduce_175, 2, 143, :_reduce_176, 3, 144, :_reduce_177, 2, 144, :_reduce_178, 1, 145, :_reduce_179, 1, 145, :_reduce_180, 1, 145, :_reduce_181, 3, 145, :_reduce_182, 1, 148, :_reduce_183, 4, 148, :_reduce_184, 4, 148, :_reduce_185, 3, 148, :_reduce_186, 3, 148, :_reduce_187, 3, 148, :_reduce_188, 2, 148, :_reduce_189, 2, 148, :_reduce_190, 6, 148, :_reduce_191, 7, 148, :_reduce_192, 1, 149, :_reduce_193, 3, 149, :_reduce_194, 1, 150, :_reduce_195, 1, 150, :_reduce_196, 1, 151, :_reduce_197, 2, 151, :_reduce_198, 2, 151, :_reduce_199, 2, 151, :_reduce_200, 2, 151, :_reduce_201, 4, 151, :_reduce_202, 1, 152, :_reduce_203, 1, 152, :_reduce_204, 1, 152, :_reduce_205, 1, 152, :_reduce_206, 1, 152, :_reduce_207, 1, 152, :_reduce_208, 1, 153, :_reduce_209, 4, 153, :_reduce_210, 1, 154, :_reduce_211, 3, 154, :_reduce_212, 3, 154, :_reduce_213, 3, 154, :_reduce_214, 1, 155, :_reduce_215, 3, 155, :_reduce_216, 3, 155, :_reduce_217, 1, 156, :_reduce_218, 3, 156, :_reduce_219, 3, 156, :_reduce_220, 1, 157, :_reduce_221, 3, 157, :_reduce_222, 3, 157, :_reduce_223, 3, 157, :_reduce_224, 3, 157, :_reduce_225, 1, 158, :_reduce_226, 3, 158, :_reduce_227, 3, 158, :_reduce_228, 1, 159, :_reduce_229, 3, 159, :_reduce_230, 1, 160, :_reduce_231, 3, 160, :_reduce_232, 1, 161, :_reduce_233, 3, 161, :_reduce_234, 1, 162, :_reduce_235, 3, 162, :_reduce_236, 1, 163, :_reduce_237, 3, 163, :_reduce_238, 1, 164, :_reduce_239, 5, 164, :_reduce_240, 1, 133, :_reduce_241, 3, 133, :_reduce_242, 1, 165, :_reduce_243, 1, 165, :_reduce_244, 1, 165, :_reduce_245, 1, 165, :_reduce_246, 1, 165, :_reduce_247, 1, 165, :_reduce_248, 1, 165, :_reduce_249, 1, 165, :_reduce_250, 1, 165, :_reduce_251, 1, 165, :_reduce_252, 1, 165, :_reduce_253, 1, 111, :_reduce_254, 3, 111, :_reduce_255, 1, 107, :_reduce_256, 1, 106, :_reduce_257, 1, 146, :_reduce_258, 1, 146, :_reduce_259, 1, 146, :_reduce_260, 1, 129, :_reduce_261, 1, 147, :_reduce_262 ] racc_reduce_n = 263 racc_shift_n = 457 clist = [ '121,123,83,291,131,134,137,319,251,148,152,156,159,162,165,168,113,56', '57,57,375,92,92,319,89,366,89,366,57,57,21,372,379,244,198,380,75,230', '251,109,287,251,53,378,287,140,53,21,199,76,157,161,164,167,111,116', '118,120,53,297,287,88,365,88,365,100,41,53,53,296,240,382,251,295,195', '241,242,243,245,101,41,381,388,41,142,145,149,153,121,123,83,128,131', '134,137,41,41,148,152,156,159,162,165,168,113,41,41,4,7,9,11,14,18,23', '27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,49,389,140,227,21,211', '212,157,161,164,167,111,116,118,120,121,123,83,72,131,134,137,72,72', '148,152,156,159,162,165,168,113,200,348,393,39,205,424,394,205,41,142', '145,149,153,21,201,351,266,206,207,425,206,207,453,56,395,57,270,396', '140,352,21,271,251,157,161,164,167,111,116,118,120,121,123,83,291,131', '134,137,21,41,148,152,156,159,162,165,168,113,231,32,36,1,211,212,53', '53,41,142,145,149,153,265,255,257,258,259,260,261,262,263,264,287,232', '57,41,402,140,403,21,228,229,157,161,164,167,111,116,118,120,121,123', '83,41,131,134,137,205,233,148,152,156,159,162,165,168,113,411,190,435', '206,207,41,53,387,41,142,145,149,153,251,191,251,250,426,414,72,251', '72,429,211,212,57,102,251,140,251,21,251,251,157,161,164,167,111,116', '118,120,121,123,83,41,131,134,137,433,377,148,152,156,159,162,165,168', '113,251,251,223,376,285,444,53,449,41,142,145,149,153,251,284,251,317', '251,227,441,221,32,36,1,211,212,251,53,140,251,21,211,212,157,161,164', '167,111,116,118,120,121,123,83,41,131,134,137,208,209,148,152,156,159', '162,165,168,113,217,214,215,216,217,214,215,216,41,142,145,149,153,217', '214,215,216,208,209,218,219,218,219,208,209,373,321,220,140,223,21,222', '246,157,161,164,167,111,116,118,120,121,123,83,221,131,134,137,373,254', '148,152,156,159,162,165,168,113,420,421,220,423,41,358,267,356,41,142', '145,149,153,303,192,354,213,41,74,73,72,440,329,68,67,232,66,343,140', '279,21,342,282,157,161,164,167,111,116,118,120,121,123,83,283,131,134', '137,86,41,148,152,156,159,162,165,168,113,286,41,422,,,,,,41,142,145', '149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167,111,116,118,120,121', '123,83,,131,134,137,,,148,152,156,159,162,165,168,113,,,,,,,,,41,142', '145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167,111,116,118,120', '121,123,83,,131,134,137,,,148,152,156,159,162,165,168,113,,,,,,,,,41', '142,145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167,111,116,118', '120,121,123,83,,131,134,137,,,148,152,156,159,162,165,168,113,,,,,,', ',,41,142,145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167,111,116', '118,120,121,123,83,,131,134,137,,,148,152,156,159,162,165,168,113,,', ',,,,,,41,142,145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167,111', '116,118,120,121,123,83,,131,134,137,,,148,152,156,159,162,165,168,113', ',,,,,,,,41,142,145,149,153,,,,,,,,,,,,,,,,140,,21,,137,157,161,164,167', '111,116,118,120,121,123,83,,131,134,137,,,148,152,156,159,162,165,168', '113,,,,,,,,,41,142,145,149,153,140,,,,,157,161,164,167,111,116,118,120', ',,140,,21,,,157,161,164,167,111,116,118,120,,,,,,,,,,,41,142,145,149', '153,,,,,,,,,,,41,142,145,149,153,121,123,83,234,131,134,137,,,148,152', '156,159,162,165,168,113,,,4,7,9,11,14,18,23,27,30,35,38,3,6,8,10,13', '17,22,26,29,32,36,1,5,,,140,,21,,,157,161,164,167,111,116,118,120,121', '123,83,,131,134,137,,,148,152,156,159,162,165,168,113,,,,,,,,,41,142', '145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167,111,116,118,120', '121,123,83,,131,134,137,,,148,152,156,159,162,165,168,113,,,,,,,,,41', '142,145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167,111,116,118', '120,121,123,83,,131,134,137,,,148,152,156,159,162,165,168,113,,,,,,', ',,41,142,145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167,111,116', '118,120,121,123,83,,131,134,137,,,148,152,156,159,162,165,168,113,,', ',,,,,,41,142,145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167,111', '116,118,120,121,123,83,,131,134,137,,,148,152,156,159,162,165,168,113', ',,,,,,,,41,142,145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167', '111,116,118,120,121,123,83,,131,134,137,,,148,152,156,159,162,165,168', '113,,,,,,,,,41,142,145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164', '167,111,116,118,120,121,123,83,,131,134,137,,,148,152,156,159,162,165', '168,113,373,,,,137,,,,41,142,145,149,153,,,,,,,,,,,,,,,,140,,21,,,157', '161,164,167,111,116,118,120,,,140,,,,,157,161,164,167,111,116,118,120', '170,,,,137,,,,,,41,142,145,149,153,170,,,,137,,,,,,41,142,145,149,153', ',,,,,,,,,,,270,,140,,,271,,157,161,164,167,111,116,118,120,,,140,,,', ',157,161,164,167,111,116,118,120,170,390,,,137,,,,,,41,142,145,149,153', '170,,,,137,,,,,,41,142,145,149,153,,,,,,,,,,,,270,,140,,,271,,157,161', '164,167,111,116,118,120,,,140,,,,,157,161,164,167,111,116,118,120,170', '439,,,137,,,,,,41,142,145,149,153,170,,,,137,,,,,,41,142,145,149,153', ',,,,,,,,,,,270,,140,,,271,,157,161,164,167,111,116,118,120,,,140,,,', ',157,161,164,167,111,116,118,120,170,,,,137,,,,,,41,142,145,149,153', '386,,137,,,,,,,,41,142,145,149,153,,,,,,,,,,,,270,,140,,,271,,157,161', '164,167,111,116,118,120,140,,204,,137,157,161,164,167,111,116,118,120', ',,384,,137,,,,,,,,41,142,145,149,153,,,,,,,,,41,142,145,149,153,140', ',,,,157,161,164,167,111,116,118,120,140,,,,,157,161,164,167,111,116', '118,120,,,,,,,,,,,,,41,142,145,149,153,340,,137,,,,,,41,142,145,149', '153,,,4,7,9,11,14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1', '5,,,140,,21,,,157,161,164,167,111,116,118,120,418,,137,,,,,,,,,,,,,137', ',,,,,,,,,41,142,145,149,153,,,,,,,,,,,,140,,,,,157,161,164,167,111,116', '118,120,140,,,,,157,161,164,167,111,116,118,120,,,137,,,,,,,,,,41,142', '145,149,153,177,137,,,,,,,41,142,145,149,153,,,,,,32,36,1,,,178,179', ',,,,157,161,164,167,111,116,118,120,,,,140,,,,137,157,161,164,167,111', '116,118,120,,,,,,,,,,41,142,145,149,153,137,,,,,,,,,,,41,142,145,149', '153,140,,,,137,157,161,164,167,111,116,118,120,,,,,32,36,1,,,,140,,', ',,157,161,164,167,111,116,118,120,,,41,142,145,149,153,140,,,,,157,161', '164,167,111,116,118,120,,,,,,41,142,145,149,153,,,137,,,,,,,,,,,,,41', '142,145,149,153,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,,', ',140,,21,,137,157,161,164,167,111,116,118,120,,,,,137,,,,,,,,,,,,,,', ',,,,,,41,142,145,149,153,140,,,,,157,161,164,167,111,116,118,120,140', ',,,137,157,161,164,167,111,116,118,120,,,,,,,,,,,,,41,142,145,149,153', ',,,,,,,,41,142,145,149,153,140,,,,,157,161,164,167,111,116,118,120,', ',,,,,,,,,,,137,,,,,,,,,,,,,41,142,145,149,153,18,23,27,30,35,38,3,6', '8,10,13,17,22,26,29,32,36,1,,,,140,,21,,137,157,161,164,167,111,116', '118,120,,,,,137,413,,,,,,,,,,,,,,,,,,,,41,142,145,149,153,140,,,,,157', '161,164,167,111,116,118,120,140,,,,137,157,161,164,167,111,116,118,120', ',,,,137,416,,,,,,,41,142,145,149,153,,,,,,,,,41,142,145,149,153,140', ',,,,157,161,164,167,111,116,118,120,140,,,,,157,161,164,167,111,116', '118,120,,,,,,,,,,,,,41,142,145,149,153,137,338,,,,,,,41,142,145,149', '153,137,,,,,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,,,,140', ',21,,,157,161,164,167,111,116,118,120,140,,,,137,157,161,164,167,111', '116,118,120,,,,,,,,,,,,,41,142,145,149,153,,,,,,,,,41,142,145,149,153', '140,,,,,157,161,164,167,111,116,118,120,,,,,,,,,,,,,137,,,,,,,,,,,,', '41,142,145,149,153,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1', ',,,140,,21,,137,157,161,164,167,111,116,118,120,,,,,137,428,,,,,,,,', ',,,,,,,,,,,41,142,145,149,153,140,,,,,157,161,164,167,111,116,118,120', '140,,,,137,157,161,164,167,111,116,118,120,,,,,137,432,,,,,,,41,142', '145,149,153,,,,,,,,,41,142,145,149,153,140,,,,,157,161,164,167,111,116', '118,120,140,,,,137,157,161,164,167,111,116,118,120,,,,,137,,,,,,,,41', '142,145,149,153,,,,,,,,,41,142,145,149,153,140,,,,,157,161,164,167,111', '116,118,120,140,,,,137,157,161,164,167,111,116,118,120,,,,,,,,,,,,,41', '142,145,149,153,,,,,,,,,41,142,145,149,153,140,,,,,157,161,164,167,111', '116,118,120,,,,,,,,,,,,,137,,,,,,,,,,,,,41,142,145,149,153,18,23,27', '30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,,,,140,,21,,137,157,161,164', '167,111,116,118,120,,,,,137,,,,,,,,,,,,,,,,,,,,,41,142,145,149,153,140', ',,,,157,161,164,167,111,116,118,120,140,,,,137,157,161,164,167,111,116', '118,120,,,,,,137,,,,,,,41,142,145,149,153,,,,,,,,,41,142,145,149,153', '140,,,,,157,161,164,167,111,116,118,120,398,399,,,,137,157,161,164,167', '111,116,118,120,,,,,137,,,,,,,41,142,145,149,153,,,,,,,,,,41,142,145', '149,153,140,,,,,157,161,164,167,111,116,118,120,140,,,,,157,161,164', '167,111,116,118,120,137,437,,,,,,,,,,,41,142,145,149,153,137,448,,,', ',,,41,142,145,149,153,,,,,,,,,,140,,,,,157,161,164,167,111,116,118,120', ',,,,140,,,,239,157,161,164,167,111,116,118,120,,,,,137,,,,41,142,145', '149,153,,,,,,,,,,,,,41,142,145,149,153,140,,,,,157,161,164,167,111,116', '118,120,140,,,,137,157,161,164,167,111,116,118,120,,,,,239,,,,,,,,41', '142,145,149,153,,,,,,,,,41,142,145,149,153,140,,,,,157,161,164,167,111', '116,118,120,140,,,,137,157,161,164,167,111,116,118,120,,,,,137,,,,,', ',,41,142,145,149,153,,,,,,,,,41,142,145,149,153,140,,,,,157,161,164', '167,111,116,118,120,140,,,,253,157,161,164,167,111,116,118,120,,,,,137', ',,,,,,,41,142,145,149,153,,,,,,,,,41,142,145,149,153,140,,,,,157,161', '164,167,111,116,118,120,140,,,,137,157,161,164,167,111,116,118,120,', ',,,,,,,,,,,41,142,145,149,153,,,,,,,,,41,142,145,149,153,140,,,,,157', '161,164,167,111,116,118,120,137,,,,,,,,,,,,,137,,276,,,,,,,,,,41,142', '145,149,153,,,,32,36,1,,,277,278,,,,,157,161,164,167,111,116,118,120', '140,,,,,157,161,164,167,111,116,118,120,137,,,,,,,,,,,,41,142,145,149', '153,137,,,,,,,,41,142,145,149,153,,,,32,36,1,,,,140,,,,,157,161,164', '167,111,116,118,120,,,,,140,,,,137,157,161,164,167,111,116,118,120,', ',,,137,,,,41,142,145,149,153,,,,,,,,,,,,,41,142,145,149,153,140,,,,', '157,161,164,167,111,116,118,120,140,,,,137,157,161,164,167,111,116,118', '120,,,,,137,,,,,,,,41,142,145,149,153,,,,,,,,,41,142,145,149,153,140', ',,,,157,161,164,167,111,116,118,120,140,,,,,157,161,164,167,111,116', '118,120,137,,,,,,,,,,,,41,142,145,149,153,,,,,,,,,41,142,145,149,153', ',,,,,,,,363,364,,,,,157,161,164,167,111,116,118,120,,,,,,,,,,,,,,,,', ',291,369,,,,,,,41,142,145,149,153,4,7,9,11,14,18,23,27,30,35,38,3,6', '8,10,13,17,22,26,29,32,36,1,5,287,186,53,,21,,,,,,,,,4,7,9,11,14,18', '23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,41,21,,,,,,,,,,', ',,,,45,,,,,,,,,,,,,,,,,,,,,41,4,7,9,11,14,18,23,27,30,35,38,3,6,8,10', '13,17,22,26,29,32,36,1,5,83,,,,21,,,,,,,,,,,,86,4,7,9,11,14,18,23,27', '30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,83,,,,21,,,,,,,,,,,,,4,7', '9,11,14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,91,,,,21', ',,,,,,,,,,,,,,,,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,193', ',,,,21,,,,,,,,,,,,,,,,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36', '1,194,,,,,21,,,,,,,,,,,,,,,,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29', '32,36,1,319,369,,,,21,,,,,,,,4,7,9,11,14,18,23,27,30,35,38,3,6,8,10', '13,17,22,26,29,32,36,1,5,287,401,53,,21,,,,,,,,,4,7,9,11,14,18,23,27', '30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,,21,4,7,9,11,14,18,23', '27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,,21,4,7,9,11,14,18', '23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,,21,4,7,9,11,14', '18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,,21,4,7,9,11', '14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,,21,4,7,9', '11,14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,361,21', '4,7,9,11,14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,', '21,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,,,,,,21,18,23,27', '30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,,,,,,21,18,23,27,30,35,38,3', '6,8,10,13,17,22,26,29,32,36,1,,,,,,21,18,23,27,30,35,38,3,6,8,10,13', '17,22,26,29,32,36,1,,,,,,21,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29', '32,36,1,,,,,,21' ] racc_action_table = arr = ::Array.new(4375, nil) str = a = i = nil idx = 0 clist.each do |str| str.split(',', -1).each do |i| arr[idx] = i.to_i unless i.empty? idx += 1 end end clist = [ '453,453,453,185,453,453,453,225,331,453,453,453,453,453,453,453,453', '31,58,31,324,63,191,320,81,289,60,370,63,191,162,315,330,158,103,331', '52,144,324,80,185,315,185,329,225,453,225,453,103,52,453,453,453,453', '453,453,453,453,31,203,320,81,289,60,370,69,162,63,191,201,158,335,203', '199,101,158,158,158,158,69,185,335,345,453,453,453,453,453,83,83,83', '83,83,83,83,58,31,83,83,83,83,83,83,83,83,63,191,83,83,83,83,83,83,83', '83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,29,349,83,323,83', '310,310,83,83,83,83,83,83,83,83,449,449,449,201,449,449,449,199,101', '449,449,449,449,449,449,449,449,104,268,355,2,117,405,357,301,83,83', '83,83,83,29,104,273,166,117,117,405,301,301,447,85,362,85,268,364,449', '273,449,268,447,449,449,449,449,449,449,449,449,448,448,448,292,448', '448,448,2,29,448,448,448,448,448,448,448,448,148,77,77,77,122,122,85', '77,449,449,449,449,449,166,166,166,166,166,166,166,166,166,166,292,150', '76,2,367,448,368,448,143,143,448,448,448,448,448,448,448,448,444,444', '444,85,444,444,444,302,152,444,444,444,444,444,444,444,444,383,93,417', '302,302,292,76,341,448,448,448,448,448,383,93,417,163,409,385,74,341', '73,412,309,309,57,71,409,444,163,444,385,412,444,444,444,444,444,444', '444,444,441,441,441,76,441,441,441,415,328,441,441,441,441,441,441,441', '441,415,328,322,326,181,431,57,436,444,444,444,444,444,326,181,431,224', '436,139,427,316,53,53,53,308,308,224,53,441,427,441,307,307,441,441', '441,441,441,441,441,441,437,437,437,57,437,437,437,305,305,437,437,437', '437,437,437,437,437,311,311,311,311,312,312,312,312,441,441,441,441', '441,125,125,125,125,304,304,127,127,313,313,119,119,379,226,314,437', '136,437,134,159,437,437,437,437,437,437,437,437,213,213,213,133,213', '213,213,388,165,213,213,213,213,213,213,213,213,397,399,130,404,284', '281,168,278,437,437,437,437,437,210,95,275,123,271,51,50,49,426,236', '45,42,237,40,249,213,176,213,248,179,213,213,213,213,213,213,213,213', '156,156,156,180,156,156,156,106,242,156,156,156,156,156,156,156,156', '182,241,400,,,,,,213,213,213,213,213,,,,,,,,,,,,,,,,156,,156,,,156,156', '156,156,156,156,156,156,433,433,433,,433,433,433,,,433,433,433,433,433', '433,433,433,,,,,,,,,156,156,156,156,156,,,,,,,,,,,,,,,,433,,433,,,433', '433,433,433,433,433,433,433,432,432,432,,432,432,432,,,432,432,432,432', '432,432,432,432,,,,,,,,,433,433,433,433,433,,,,,,,,,,,,,,,,432,,432', ',,432,432,432,432,432,432,432,432,429,429,429,,429,429,429,,,429,429', '429,429,429,429,429,429,,,,,,,,,432,432,432,432,432,,,,,,,,,,,,,,,,429', ',429,,,429,429,429,429,429,429,429,429,428,428,428,,428,428,428,,,428', '428,428,428,428,428,428,428,,,,,,,,,429,429,429,429,429,,,,,,,,,,,,', ',,,428,,428,,,428,428,428,428,428,428,428,428,372,372,372,,372,372,372', ',,372,372,372,372,372,372,372,372,,,,,,,,,428,428,428,428,428,,,,,,', ',,,,,,,,,372,,372,,220,372,372,372,372,372,372,372,372,423,423,423,', '423,423,423,,,423,423,423,423,423,423,423,423,,,,,,,,,372,372,372,372', '372,220,,,,,220,220,220,220,220,220,220,220,,,423,,423,,,423,423,423', '423,423,423,423,423,,,,,,,,,,,220,220,220,220,220,,,,,,,,,,,423,423', '423,423,423,154,154,154,154,154,154,154,,,154,154,154,154,154,154,154', '154,,,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154', '154,154,154,154,154,154,154,154,,,154,,154,,,154,154,154,154,154,154', '154,154,416,416,416,,416,416,416,,,416,416,416,416,416,416,416,416,', ',,,,,,,154,154,154,154,154,,,,,,,,,,,,,,,,416,,416,,,416,416,416,416', '416,416,416,416,230,230,230,,230,230,230,,,230,230,230,230,230,230,230', '230,,,,,,,,,416,416,416,416,416,,,,,,,,,,,,,,,,230,,230,,,230,230,230', '230,230,230,230,230,413,413,413,,413,413,413,,,413,413,413,413,413,413', '413,413,,,,,,,,,230,230,230,230,230,,,,,,,,,,,,,,,,413,,413,,,413,413', '413,413,413,413,413,413,377,377,377,,377,377,377,,,377,377,377,377,377', '377,377,377,,,,,,,,,413,413,413,413,413,,,,,,,,,,,,,,,,377,,377,,,377', '377,377,377,377,377,377,377,303,303,303,,303,303,303,,,303,303,303,303', '303,303,303,303,,,,,,,,,377,377,377,377,377,,,,,,,,,,,,,,,,303,,303', ',,303,303,303,303,303,303,303,303,376,376,376,,376,376,376,,,376,376', '376,376,376,376,376,376,,,,,,,,,303,303,303,303,303,,,,,,,,,,,,,,,,376', ',376,,,376,376,376,376,376,376,376,376,232,232,232,,232,232,232,,,232', '232,232,232,232,232,232,232,321,,,,321,,,,376,376,376,376,376,,,,,,', ',,,,,,,,,232,,232,,,232,232,232,232,232,232,232,232,,,321,,,,,321,321', '321,321,321,321,321,321,170,,,,170,,,,,,232,232,232,232,232,274,,,,274', ',,,,,321,321,321,321,321,,,,,,,,,,,,170,,170,,,170,,170,170,170,170', '170,170,170,170,,,274,,,,,274,274,274,274,274,274,274,274,352,352,,', '352,,,,,,170,170,170,170,170,86,,,,86,,,,,,274,274,274,274,274,,,,,', ',,,,,,352,,352,,,352,,352,352,352,352,352,352,352,352,,,86,,,,,86,86', '86,86,86,86,86,86,425,425,,,425,,,,,,352,352,352,352,352,392,,,,392', ',,,,,86,86,86,86,86,,,,,,,,,,,,425,,425,,,425,,425,425,425,425,425,425', '425,425,,,392,,,,,392,392,392,392,392,392,392,392,373,,,,373,,,,,,425', '425,425,425,425,340,,340,,,,,,,,392,392,392,392,392,,,,,,,,,,,,373,', '373,,,373,,373,373,373,373,373,373,373,373,340,,113,,113,340,340,340', '340,340,340,340,340,,,339,,339,,,,,,,,373,373,373,373,373,,,,,,,,,340', '340,340,340,340,113,,,,,113,113,113,113,113,113,113,113,339,,,,,339', '339,339,339,339,339,339,339,,,,,,,,,,,,,113,113,113,113,113,246,,246', ',,,,,339,339,339,339,339,,,246,246,246,246,246,246,246,246,246,246,246', '246,246,246,246,246,246,246,246,246,246,246,246,246,,,246,,246,,,246', '246,246,246,246,246,246,246,387,,387,,,,,,,,,,,,,375,,,,,,,,,,246,246', '246,246,246,,,,,,,,,,,,387,,,,,387,387,387,387,387,387,387,387,375,', ',,,375,375,375,375,375,375,375,375,,,88,,,,,,,,,,387,387,387,387,387', '88,378,,,,,,,375,375,375,375,375,,,,,,88,88,88,,,88,88,,,,,88,88,88', '88,88,88,88,88,,,,378,,,,92,378,378,378,378,378,378,378,378,,,,,,,,', ',88,88,88,88,88,280,,,,,,,,,,,378,378,378,378,378,92,,,,276,92,92,92', '92,92,92,92,92,,,,,280,280,280,,,,280,,,,,280,280,280,280,280,280,280', '280,,,92,92,92,92,92,276,,,,,276,276,276,276,276,276,276,276,,,,,,280', '280,280,280,280,,,381,,,,,,,,,,,,,276,276,276,276,276,381,381,381,381', '381,381,381,381,381,381,381,381,381,381,381,381,381,381,,,,381,,381', ',270,381,381,381,381,381,381,381,381,,,,,256,,,,,,,,,,,,,,,,,,,,,381', '381,381,381,381,270,,,,,270,270,270,270,270,270,270,270,256,,,,102,256', '256,256,256,256,256,256,256,,,,,,,,,,,,,270,270,270,270,270,,,,,,,,', '256,256,256,256,256,102,,,,,102,102,102,102,102,102,102,102,,,,,,,,', ',,,,253,,,,,,,,,,,,,102,102,102,102,102,253,253,253,253,253,253,253', '253,253,253,253,253,253,253,253,253,253,253,,,,253,,253,,251,253,253', '253,253,253,253,253,253,,,,,384,384,,,,,,,,,,,,,,,,,,,,253,253,253,253', '253,251,,,,,251,251,251,251,251,251,251,251,384,,,,112,384,384,384,384', '384,384,384,384,,,,,386,386,,,,,,,251,251,251,251,251,,,,,,,,,384,384', '384,384,384,112,,,,,112,112,112,112,112,112,112,112,386,,,,,386,386', '386,386,386,386,386,386,,,,,,,,,,,,,112,112,112,112,112,244,244,,,,', ',,386,386,386,386,386,240,,,,,244,244,244,244,244,244,244,244,244,244', '244,244,244,244,244,244,244,244,,,,244,,244,,,244,244,244,244,244,244', '244,244,240,,,,121,240,240,240,240,240,240,240,240,,,,,,,,,,,,,244,244', '244,244,244,,,,,,,,,240,240,240,240,240,121,,,,,121,121,121,121,121', '121,121,121,,,,,,,,,,,,,239,,,,,,,,,,,,,121,121,121,121,121,239,239', '239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,,,,239', ',239,,233,239,239,239,239,239,239,239,239,,,,,411,411,,,,,,,,,,,,,,', ',,,,,239,239,239,239,239,233,,,,,233,233,233,233,233,233,233,233,411', ',,,231,411,411,411,411,411,411,411,411,,,,,414,414,,,,,,,233,233,233', '233,233,,,,,,,,,411,411,411,411,411,231,,,,,231,231,231,231,231,231', '231,231,414,,,,229,414,414,414,414,414,414,414,414,,,,,228,,,,,,,,231', '231,231,231,231,,,,,,,,,414,414,414,414,414,229,,,,,229,229,229,229', '229,229,229,229,228,,,,227,228,228,228,228,228,228,228,228,,,,,,,,,', ',,,229,229,229,229,229,,,,,,,,,228,228,228,228,228,227,,,,,227,227,227', '227,227,227,227,227,,,,,,,,,,,,,137,,,,,,,,,,,,,227,227,227,227,227', '137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137', '137,,,,137,,137,,223,137,137,137,137,137,137,137,137,,,,,222,,,,,,,', ',,,,,,,,,,,,,137,137,137,137,137,223,,,,,223,223,223,223,223,223,223', '223,222,,,,221,222,222,222,222,222,222,222,222,,,,,,365,,,,,,,223,223', '223,223,223,,,,,,,,,222,222,222,222,222,221,,,,,221,221,221,221,221', '221,221,221,365,365,,,,219,365,365,365,365,365,365,365,365,,,,,218,', ',,,,,221,221,221,221,221,,,,,,,,,,365,365,365,365,365,219,,,,,219,219', '219,219,219,219,219,219,218,,,,,218,218,218,218,218,218,218,218,418', '418,,,,,,,,,,,219,219,219,219,219,435,435,,,,,,,218,218,218,218,218', ',,,,,,,,,418,,,,,418,418,418,418,418,418,418,418,,,,,435,,,,157,435', '435,435,435,435,435,435,435,,,,,217,,,,418,418,418,418,418,,,,,,,,,', ',,,435,435,435,435,435,157,,,,,157,157,157,157,157,157,157,157,217,', ',,216,217,217,217,217,217,217,217,217,,,,,161,,,,,,,,157,157,157,157', '157,,,,,,,,,217,217,217,217,217,216,,,,,216,216,216,216,216,216,216', '216,161,,,,215,161,161,161,161,161,161,161,161,,,,,214,,,,,,,,216,216', '216,216,216,,,,,,,,,161,161,161,161,161,215,,,,,215,215,215,215,215', '215,215,215,214,,,,164,214,214,214,214,214,214,214,214,,,,,212,,,,,', ',,215,215,215,215,215,,,,,,,,,214,214,214,214,214,164,,,,,164,164,164', '164,164,164,164,164,212,,,,211,212,212,212,212,212,212,212,212,,,,,', ',,,,,,,164,164,164,164,164,,,,,,,,,212,212,212,212,212,211,,,,,211,211', '211,211,211,211,211,211,175,,,,,,,,,,,,,209,,175,,,,,,,,,,211,211,211', '211,211,,,,175,175,175,,,175,175,,,,,175,175,175,175,175,175,175,175', '209,,,,,209,209,209,209,209,209,209,209,177,,,,,,,,,,,,175,175,175,175', '175,208,,,,,,,,209,209,209,209,209,,,,177,177,177,,,,177,,,,,177,177', '177,177,177,177,177,177,,,,,208,,,,207,208,208,208,208,208,208,208,208', ',,,,206,,,,177,177,177,177,177,,,,,,,,,,,,,208,208,208,208,208,207,', ',,,207,207,207,207,207,207,207,207,206,,,,205,206,206,206,206,206,206', '206,206,,,,,192,,,,,,,,207,207,207,207,207,,,,,,,,,206,206,206,206,206', '205,,,,,205,205,205,205,205,205,205,205,192,,,,,192,192,192,192,192', '192,192,192,287,,,,,,,,,,,,205,205,205,205,205,,,,,,,,,192,192,192,192', '192,,,,,,,,,287,287,,,,,287,287,287,287,287,287,287,287,,,,,,,,,,,,', ',,,,,291,291,,,,,,,287,287,287,287,287,291,291,291,291,291,291,291,291', '291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291', '89,291,,291,,,,,,,,,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89', '89,89,89,89,89,89,89,89,,,,291,89,,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,', ',,,89,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16', '16,16,16,59,,,,16,,,,,,,,,,,,59,59,59,59,59,59,59,59,59,59,59,59,59', '59,59,59,59,59,59,59,59,59,59,59,59,87,,,,59,,,,,,,,,,,,,87,87,87,87', '87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,61,,,,87', ',,,,,,,,,,,,,,,,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61', '98,,,,,61,,,,,,,,,,,,,,,,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98', '98,98,98,99,,,,,98,,,,,,,,,,,,,,,,99,99,99,99,99,99,99,99,99,99,99,99', '99,99,99,99,99,99,319,319,,,,99,,,,,,,,319,319,319,319,319,319,319,319', '319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319', '366,319,,319,,,,,,,,,366,366,366,366,366,366,366,366,366,366,366,366', '366,366,366,366,366,366,366,366,366,366,366,366,,,,,366,19,19,19,19', '19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,,,,,19,24', '24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24', ',,,,24,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15', '15,15,15,,,,,15,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12', '12,12,12,12,12,12,,,,,12,286,286,286,286,286,286,286,286,286,286,286', '286,286,286,286,286,286,286,286,286,286,286,286,286,,,,286,286,0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,0,64,64,64,64,64,64,64', '64,64,64,64,64,64,64,64,64,64,64,,,,,,64,39,39,39,39,39,39,39,39,39', '39,39,39,39,39,39,39,39,39,,,,,,39,66,66,66,66,66,66,66,66,66,66,66', '66,66,66,66,66,66,66,,,,,,66,67,67,67,67,67,67,67,67,67,67,67,67,67', '67,67,67,67,67,,,,,,67,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65', '65,65,65,,,,,,65' ] racc_action_check = arr = ::Array.new(4375, nil) str = a = i = nil idx = 0 clist.each do |str| str.split(',', -1).each do |i| arr[idx] = i.to_i unless i.empty? idx += 1 end end racc_action_pointer = [ 4204, nil, 161, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4146, nil, nil, 4117, 3757, nil, nil, 4059, nil, nil, nil, nil, 4088, nil, nil, nil, nil, 126, nil, 10, nil, nil, nil, nil, nil, nil, nil, 4252, 474, nil, 472, nil, nil, 476, nil, nil, nil, 387, 467, 466, 29, 316, nil, nil, nil, 295, 9, 3798, 17, 3879, nil, 19, 4228, 4324, 4276, 4300, nil, 59, nil, 284, nil, 214, 212, nil, 237, 180, nil, nil, 29, 15, nil, 85, nil, 179, 1490, 3839, 1878, 3692, nil, nil, 1937, 273, nil, 465, nil, nil, 3918, 3957, nil, 68, 2143, 28, 157, nil, 480, nil, nil, nil, nil, nil, 2306, 1673, nil, nil, nil, 119, nil, 361, nil, 2444, 162, 467, nil, 343, nil, 345, nil, nil, 399, nil, nil, 368, 417, nil, 352, 2783, nil, 282, nil, nil, nil, 178, 35, nil, nil, nil, 212, nil, 243, nil, 261, nil, 927, nil, 491, 3064, 24, 418, nil, 3133, -20, 288, 3232, 437, 158, nil, 452, nil, 1404, nil, nil, nil, nil, 3340, 435, 3405, nil, 438, 487, 331, 491, nil, nil, -6, nil, nil, nil, nil, nil, 20, 3534, nil, nil, nil, nil, nil, nil, 67, nil, 63, nil, 52, nil, 3521, 3478, 3465, 3422, 3353, 464, 3288, 3245, 433, 3189, 3176, 3120, 3077, 2952, 2939, 824, 2882, 2839, 2826, 343, -2, 411, 2719, 2676, 2663, 1043, 2607, 1333, 2551, nil, nil, 462, 476, nil, 2508, 2401, 426, 416, nil, 2388, nil, 1757, nil, 477, 473, nil, 2250, nil, 2207, nil, nil, 2100, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 143, nil, 2087, 384, nil, 172, 1419, 421, 1980, nil, 413, nil, 1960, 411, nil, nil, 371, nil, 4175, 3586, nil, 16, nil, 3655, 198, nil, nil, nil, nil, nil, nil, nil, nil, 122, 221, 1217, 355, 328, nil, 305, 298, 239, 73, 330, 334, 347, 366, 21, 286, nil, nil, 3993, 14, 1348, 267, 61, 18, nil, 330, nil, 318, 34, 22, -12, nil, nil, nil, 61, nil, nil, nil, 1686, 1630, 279, nil, nil, nil, 72, nil, nil, nil, 85, nil, nil, 1475, nil, nil, 118, nil, 122, nil, nil, nil, nil, 140, nil, 143, 2896, 4030, 238, 240, nil, 18, nil, 781, 1617, nil, 1824, 1275, 1159, 1894, 415, nil, 2044, nil, 272, 2263, 290, 2319, 1811, 438, nil, nil, nil, 1561, nil, nil, nil, nil, 406, nil, 407, 503, nil, nil, nil, 445, 162, nil, nil, nil, 286, nil, 2564, 291, 1101, 2620, 317, 985, 274, 3004, nil, nil, nil, nil, 839, nil, 1546, 467, 346, 723, 665, nil, 332, 607, 549, nil, 3021, 334, 375, nil, nil, nil, 317, nil, nil, 259, nil, nil, 175, 201, 143, nil, nil, nil, -3, nil, nil, nil ] racc_action_default = [ -263, -117, -263, -75, -64, -118, -76, -65, -77, -66, -78, -67, -53, -79, -68, -55, -263, -80, -69, -57, -1, -166, -89, -70, -59, -3, -90, -71, -4, -263, -72, -263, -115, -83, -81, -73, -116, -82, -74, -263, -86, -257, -88, -52, -54, -263, -2, -56, -58, -263, -107, -110, -263, -136, -121, -60, -51, -263, -263, -62, -120, -263, -91, -263, -95, -97, -263, -263, 457, -263, -111, -113, -261, -263, -263, -50, -263, -135, -139, -138, -263, -119, -6, -263, -7, -263, -263, -263, -263, -263, -92, -85, -263, -263, -98, -100, -94, -96, -263, -263, -104, -263, -263, -263, -263, -61, -62, -140, -137, -122, -254, -205, -263, -263, -23, -211, -206, -215, -207, -218, -208, -263, -221, -263, -10, -226, -24, -229, -20, -9, -231, -26, -11, -233, -263, -12, -235, -263, -13, -237, -204, -14, -258, -239, -179, -259, -241, -183, -263, -260, -83, -180, -263, -262, -263, -181, -263, -263, -197, -263, -21, -263, -263, -263, -263, -263, -209, -203, -263, -167, -263, -179, -63, -5, -8, -263, -263, -263, -126, -204, -263, -263, -141, -143, -148, -147, -134, -209, -102, -256, -93, -263, -263, -84, -87, -106, -112, -114, -103, -263, -108, -263, -200, -263, -48, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -151, -263, -263, -263, -263, -263, -263, -263, -263, -19, -22, -263, -263, -198, -263, -263, -263, -263, -189, -263, -190, -263, -199, -263, -263, -25, -263, -201, -263, -45, -245, -263, -246, -247, -248, -249, -250, -251, -252, -253, -244, -243, -46, -263, -175, -263, -263, -171, -263, -263, -263, -263, -124, -204, -125, -263, -263, -131, -132, -263, -133, -263, -263, -146, -154, -145, -263, -152, -99, -101, -105, -109, -47, -212, -213, -214, -216, -217, -263, -219, -220, -17, -223, -224, -225, -222, -227, -228, -230, -232, -263, -234, -182, -150, -263, -152, -263, -236, -238, -263, -15, -263, -18, -263, -263, -263, -263, -187, -188, -195, -263, -196, -193, -186, -263, -263, -263, -44, -49, -255, -263, -242, -176, -174, -263, -178, -168, -263, -170, -123, -263, -130, -263, -128, -149, -144, -142, -263, -159, -204, -263, -263, -263, -263, -165, -153, -16, -263, -263, -210, -263, -263, -263, -263, -263, -184, -263, -185, -263, -263, -263, -263, -263, -202, -177, -169, -173, -263, -129, -127, -158, -161, -263, -157, -204, -263, -163, -164, -155, -27, -263, -240, -29, -30, -263, -194, -263, -263, -263, -263, -263, -263, -263, -263, -172, -156, -160, -162, -263, -191, -263, -263, -263, -263, -263, -43, -263, -263, -263, -39, -263, -263, -263, -28, -192, -31, -263, -41, -42, -263, -37, -38, -263, -263, -263, -35, -40, -36, -263, -33, -34, -32 ] racc_goto_table = [ 42, 172, 31, 180, 81, 273, 94, 79, 202, 337, 203, 77, 96, 97, 43, 65, 226, 44, 31, 288, 189, 47, 188, 40, 16, 196, 48, 51, 90, 78, 189, 108, 197, 347, 224, 64, 392, 65, 20, 370, 65, 65, 65, 65, 160, 59, 175, 69, 82, 189, 50, 210, 54, 107, 46, 61, 169, 64, 176, 318, 64, 64, 64, 64, 78, 90, 90, 370, 84, 301, 302, 103, 104, 360, 65, 65, 173, 95, 54, 54, 181, 150, 98, 99, 54, 225, 307, 308, 309, 310, 106, 185, 114, 335, 64, 64, 174, 54, 93, 106, 105, 298, 299, 300, 144, 154, 54, 311, 312, 392, 184, 304, 305, 65, 313, 235, 314, 316, 330, 315, 189, 322, 294, 196, 323, 196, 324, 87, 326, 256, 328, nil, 345, 64, 293, 280, 224, 331, nil, 292, 169, nil, nil, 341, nil, 275, 410, 281, nil, nil, 224, 107, 150, 78, 237, nil, nil, nil, nil, nil, 249, nil, nil, 114, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 144, nil, 144, nil, 320, nil, nil, nil, 248, nil, nil, nil, 225, nil, 353, nil, nil, 225, nil, nil, nil, nil, nil, 189, 290, 349, 225, nil, nil, nil, 95, 54, nil, 405, nil, nil, 237, 54, nil, 334, 65, nil, 374, nil, nil, 65, 344, nil, nil, nil, nil, 346, nil, 237, 65, 237, nil, nil, nil, 144, 64, 383, 385, 81, nil, 64, nil, nil, 236, 169, 292, 355, nil, nil, 64, 357, 144, nil, 144, nil, 339, 107, 362, nil, nil, nil, nil, 332, 333, nil, nil, nil, 391, nil, nil, nil, nil, nil, 320, nil, 409, nil, nil, nil, nil, 400, 412, nil, 415, 417, nil, nil, nil, 185, nil, nil, nil, 350, 185, nil, nil, nil, nil, nil, nil, 306, 237, nil, 406, nil, 359, nil, 419, 427, nil, nil, 431, 54, 54, nil, 436, nil, 325, nil, 327, nil, 185, 169, nil, 144, nil, nil, nil, nil, 225, nil, nil, 447, nil, nil, 397, nil, nil, nil, nil, 391, nil, nil, 169, nil, nil, nil, nil, nil, nil, nil, 334, nil, nil, nil, nil, nil, 65, nil, nil, nil, nil, 169, nil, nil, nil, nil, nil, 185, nil, 237, nil, nil, nil, 237, 237, nil, 64, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 371, nil, nil, 144, nil, 169, nil, 144, 144, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 237, nil, nil, 237, nil, nil, nil, nil, nil, nil, 237, nil, nil, nil, nil, 237, 237, nil, nil, 237, 237, nil, nil, 144, 237, nil, 144, nil, 237, nil, nil, 237, nil, 144, nil, 237, 237, nil, 144, 144, 237, nil, 144, 144, nil, nil, 187, 144, 404, nil, nil, 144, 407, 408, 144, nil, 187, nil, 144, 144, nil, nil, nil, 144, nil, nil, 187, nil, nil, nil, nil, nil, nil, nil, nil, 187, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 430, nil, nil, 434, nil, nil, nil, nil, nil, nil, 438, nil, nil, nil, nil, 442, 443, nil, nil, 445, 446, nil, 238, nil, 450, nil, 247, nil, 451, 252, nil, 452, nil, nil, nil, 454, 455, nil, nil, nil, 456, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 187, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 187, 187, 187, 187, 187, nil, 187, 187, nil, 187, 187, 187, 187, 187, 187, 187, 187, nil, 187, nil, nil, nil, 187, 187, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 187, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 187, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 187 ] racc_goto_check = [ 17, 27, 5, 43, 40, 50, 35, 39, 62, 59, 20, 41, 33, 33, 5, 24, 48, 5, 5, 47, 73, 5, 16, 15, 1, 37, 5, 17, 32, 24, 73, 39, 16, 53, 20, 23, 51, 24, 2, 49, 24, 24, 24, 24, 19, 6, 41, 36, 8, 73, 15, 16, 15, 24, 2, 31, 42, 23, 42, 47, 23, 23, 23, 23, 24, 32, 32, 49, 4, 63, 63, 36, 36, 46, 24, 24, 8, 6, 15, 15, 44, 17, 31, 31, 15, 33, 65, 65, 65, 65, 6, 5, 4, 58, 23, 23, 4, 15, 34, 6, 26, 62, 62, 62, 15, 18, 15, 66, 66, 51, 15, 64, 64, 24, 67, 19, 68, 69, 48, 20, 73, 70, 16, 37, 71, 37, 20, 7, 20, 74, 20, nil, 48, 23, 35, 41, 20, 20, nil, 39, 42, nil, nil, 20, nil, 42, 59, 42, nil, nil, 20, 24, 17, 24, 17, nil, nil, nil, nil, nil, 17, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 15, nil, 15, nil, 39, nil, nil, nil, 15, nil, nil, nil, 33, nil, 27, nil, nil, 33, nil, nil, nil, nil, nil, 73, 6, 16, 33, nil, nil, nil, 6, 15, nil, 50, nil, nil, 17, 15, nil, 42, 24, nil, 62, nil, nil, 24, 42, nil, nil, nil, nil, 42, nil, 17, 24, 17, nil, nil, nil, 15, 23, 20, 20, 40, nil, 23, nil, nil, 9, 42, 39, 42, nil, nil, 23, 42, 15, nil, 15, nil, 4, 24, 42, nil, nil, nil, nil, 15, 15, nil, nil, nil, 27, nil, nil, nil, nil, nil, 39, nil, 20, nil, nil, nil, nil, 43, 20, nil, 20, 20, nil, nil, nil, 5, nil, nil, nil, 15, 5, nil, nil, nil, nil, nil, nil, 9, 17, nil, 73, nil, 15, nil, 27, 20, nil, nil, 20, 15, 15, nil, 20, nil, 9, nil, 9, nil, 5, 42, nil, 15, nil, nil, nil, nil, 33, nil, nil, 20, nil, nil, 42, nil, nil, nil, nil, 27, nil, nil, 42, nil, nil, nil, nil, nil, nil, nil, 42, nil, nil, nil, nil, nil, 24, nil, nil, nil, nil, 42, nil, nil, nil, nil, nil, 5, nil, 17, nil, nil, nil, 17, 17, nil, 23, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 9, nil, nil, 15, nil, 42, nil, 15, 15, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 17, nil, nil, 17, nil, nil, nil, nil, nil, nil, 17, nil, nil, nil, nil, 17, 17, nil, nil, 17, 17, nil, nil, 15, 17, nil, 15, nil, 17, nil, nil, 17, nil, 15, nil, 17, 17, nil, 15, 15, 17, nil, 15, 15, nil, nil, 60, 15, 9, nil, nil, 15, 9, 9, 15, nil, 60, nil, 15, 15, nil, nil, nil, 15, nil, nil, 60, nil, nil, nil, nil, nil, nil, nil, nil, 60, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 9, nil, nil, 9, nil, nil, nil, nil, nil, nil, 9, nil, nil, nil, nil, 9, 9, nil, nil, 9, 9, nil, 60, nil, 9, nil, 60, nil, 9, 60, nil, 9, nil, nil, nil, 9, 9, nil, nil, nil, 9, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 60, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 60, 60, 60, 60, 60, nil, 60, 60, nil, 60, 60, 60, 60, 60, 60, 60, 60, nil, 60, nil, nil, nil, 60, 60, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 60, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 60, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 60 ] racc_goto_pointer = [ nil, 24, 38, nil, 9, 2, 14, 68, -11, 87, nil, nil, nil, nil, nil, 21, -70, -2, 22, -39, -103, nil, nil, -4, -24, nil, 24, -85, nil, nil, nil, 16, -33, -52, 35, -57, -2, -76, nil, -46, -54, -42, -30, -86, -9, nil, -213, -166, -121, -253, -165, -316, nil, -235, nil, nil, nil, nil, -151, -235, 365, nil, -104, -139, -100, -128, -111, -106, -105, -106, -106, -104, nil, -72, -37 ] racc_goto_default = [ nil, nil, nil, 25, 28, 85, 80, nil, 124, 126, 129, 132, 135, 138, 141, 171, nil, 33, nil, nil, 163, 52, 12, 15, 19, 24, 55, 272, 34, 37, 2, nil, 62, 63, nil, nil, nil, 70, 71, 58, 60, nil, 110, 367, nil, 182, 183, 368, 336, 289, nil, 274, 268, 269, 147, 151, 155, 158, nil, nil, 166, 112, 115, 117, 119, 122, 125, 127, 130, 133, 136, 139, 143, 146, nil ] racc_token_table = { false => 0, Object.new => 1, :COLON => 2, :CASE => 3, :DEFAULT => 4, :LBRACE => 5, :RBRACE => 6, :SEMICOLON => 7, :IF => 8, :LPAREN => 9, :RPAREN => 10, :ELSE => 11, :SWITCH => 12, :WHILE => 13, :DO => 14, :FOR => 15, :GOTO => 16, :CONTINUE => 17, :BREAK => 18, :RETURN => 19, :COMMA => 20, :EQ => 21, :TYPEDEF => 22, :EXTERN => 23, :STATIC => 24, :AUTO => 25, :REGISTER => 26, :VOID => 27, :CHAR => 28, :SHORT => 29, :INT => 30, :LONG => 31, :FLOAT => 32, :DOUBLE => 33, :SIGNED => 34, :UNSIGNED => 35, :BOOL => 36, :COMPLEX => 37, :IMAGINARY => 38, :STRUCT => 39, :UNION => 40, :ENUM => 41, :CONST => 42, :RESTRICT => 43, :VOLATILE => 44, :INLINE => 45, :LBRACKET => 46, :RBRACKET => 47, :MUL => 48, :ELLIPSIS => 49, :TYPENAME => 50, :DOT => 51, :ARROW => 52, :INC => 53, :DEC => 54, :SIZEOF => 55, :AND => 56, :ADD => 57, :SUB => 58, :NOT => 59, :BANG => 60, :DIV => 61, :MOD => 62, :LSHIFT => 63, :RSHIFT => 64, :LT => 65, :GT => 66, :LEQ => 67, :GEQ => 68, :EQEQ => 69, :NEQ => 70, :XOR => 71, :OR => 72, :ANDAND => 73, :OROR => 74, :QUESTION => 75, :MULEQ => 76, :DIVEQ => 77, :MODEQ => 78, :ADDEQ => 79, :SUBEQ => 80, :LSHIFTEQ => 81, :RSHIFTEQ => 82, :ANDEQ => 83, :XOREQ => 84, :OREQ => 85, :ID => 86, :ICON => 87, :FCON => 88, :CCON => 89, :SCON => 90 } racc_use_result_var = true racc_nt_base = 91 Racc_arg = [ racc_action_table, racc_action_check, racc_action_default, racc_action_pointer, racc_goto_table, racc_goto_check, racc_goto_default, racc_goto_pointer, racc_nt_base, racc_reduce_table, racc_token_table, racc_shift_n, racc_reduce_n, racc_use_result_var ] Racc_token_to_s_table = [ '$end', 'error', 'COLON', 'CASE', 'DEFAULT', 'LBRACE', 'RBRACE', 'SEMICOLON', 'IF', 'LPAREN', 'RPAREN', 'ELSE', 'SWITCH', 'WHILE', 'DO', 'FOR', 'GOTO', 'CONTINUE', 'BREAK', 'RETURN', 'COMMA', 'EQ', 'TYPEDEF', 'EXTERN', 'STATIC', 'AUTO', 'REGISTER', 'VOID', 'CHAR', 'SHORT', 'INT', 'LONG', 'FLOAT', 'DOUBLE', 'SIGNED', 'UNSIGNED', 'BOOL', 'COMPLEX', 'IMAGINARY', 'STRUCT', 'UNION', 'ENUM', 'CONST', 'RESTRICT', 'VOLATILE', 'INLINE', 'LBRACKET', 'RBRACKET', 'MUL', 'ELLIPSIS', 'TYPENAME', 'DOT', 'ARROW', 'INC', 'DEC', 'SIZEOF', 'AND', 'ADD', 'SUB', 'NOT', 'BANG', 'DIV', 'MOD', 'LSHIFT', 'RSHIFT', 'LT', 'GT', 'LEQ', 'GEQ', 'EQEQ', 'NEQ', 'XOR', 'OR', 'ANDAND', 'OROR', 'QUESTION', 'MULEQ', 'DIVEQ', 'MODEQ', 'ADDEQ', 'SUBEQ', 'LSHIFTEQ', 'RSHIFTEQ', 'ANDEQ', 'XOREQ', 'OREQ', 'ID', 'ICON', 'FCON', 'CCON', 'SCON', '$start', 'translation_unit', 'external_declaration', 'function_definition', 'declaration', 'declaration_specifiers', 'declarator', 'declaration_list', 'compound_statement', 'statement', 'labeled_statement', 'expression_statement', 'selection_statement', 'iteration_statement', 'jump_statement', 'identifier', 'constant_expression', 'typedef_name', 'block_item_list', 'block_item', 'expression', 'init_declarator_list', 'storage_class_specifier', 'type_specifier', 'type_qualifier', 'function_specifier', 'init_declarator', 'initializer', 'struct_or_union_specifier', 'enum_specifier', 'struct_or_union', 'struct_declaration_list', 'struct_declaration', 'specifier_qualifier_list', 'struct_declarator_list', 'struct_declarator', 'enumerator_list', 'enumerator', 'enumeration_constant', 'pointer', 'direct_declarator', 'type_qualifier_list', 'assignment_expression', 'parameter_type_list', 'identifier_list', 'parameter_list', 'parameter_declaration', 'abstract_declarator', 'type_name', 'direct_abstract_declarator', 'initializer_list', 'designation', 'designator_list', 'designator', 'primary_expression', 'constant', 'string_literal', 'postfix_expression', 'argument_expression_list', 'argument_expression', 'unary_expression', 'unary_operator', 'cast_expression', 'multiplicative_expression', 'additive_expression', 'shift_expression', 'relational_expression', 'equality_expression', 'and_expression', 'exclusive_or_expression', 'inclusive_or_expression', 'logical_and_expression', 'logical_or_expression', 'conditional_expression', 'assignment_operator'] Racc_debug_parser = false ##### racc system variables end ##### # reduce 0 omitted module_eval <<'.,.,', 'lib/cast/c.y', 9 def _reduce_1( val, _values, result ) result = TranslationUnit.new_at(val[0].pos, NodeChain[val[0]]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 10 def _reduce_2( val, _values, result ) result = val[0]; result.entities << val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 14 def _reduce_3( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 15 def _reduce_4( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 19 def _reduce_5( val, _values, result ) result = make_function_def(val[0][0], val[0][1], val[1], val[2], val[3]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 20 def _reduce_6( val, _values, result ) result = make_function_def(val[0][0], val[0][1], val[1], nil , val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 24 def _reduce_7( val, _values, result ) result = [val[0]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 25 def _reduce_8( val, _values, result ) result = val[0] << val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 31 def _reduce_9( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 32 def _reduce_10( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 33 def _reduce_11( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 34 def _reduce_12( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 35 def _reduce_13( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 36 def _reduce_14( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 40 def _reduce_15( val, _values, result ) val[2].labels.unshift(PlainLabel.new_at(val[0].pos, val[0].val)); result = val[2] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 41 def _reduce_16( val, _values, result ) val[3].labels.unshift(Case .new_at(val[0].pos, val[1] )); result = val[3] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 42 def _reduce_17( val, _values, result ) val[2].labels.unshift(Default .new_at(val[0].pos )); result = val[2] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 44 def _reduce_18( val, _values, result ) val[2].labels.unshift(PlainLabel.new_at(val[0].pos, val[0].name)); result = val[2] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 48 def _reduce_19( val, _values, result ) result = Block.new_at(val[0].pos, val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 49 def _reduce_20( val, _values, result ) result = Block.new_at(val[0].pos ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 53 def _reduce_21( val, _values, result ) result = NodeChain[val[0]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 54 def _reduce_22( val, _values, result ) result = val[0] << val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 58 def _reduce_23( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 59 def _reduce_24( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 63 def _reduce_25( val, _values, result ) result = ExpressionStatement.new_at(val[0].pos, val[0]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 64 def _reduce_26( val, _values, result ) result = ExpressionStatement.new_at(val[0].pos ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 68 def _reduce_27( val, _values, result ) result = If .new_at(val[0].pos, val[2], val[4] ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 69 def _reduce_28( val, _values, result ) result = If .new_at(val[0].pos, val[2], val[4], val[6]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 70 def _reduce_29( val, _values, result ) result = Switch.new_at(val[0].pos, val[2], val[4] ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 74 def _reduce_30( val, _values, result ) result = While.new_at(val[0].pos, val[2], val[4] ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 75 def _reduce_31( val, _values, result ) result = While.new_at(val[0].pos, val[4], val[1], :do => true ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 76 def _reduce_32( val, _values, result ) result = For.new_at(val[0].pos, val[2], val[4], val[6], val[8]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 77 def _reduce_33( val, _values, result ) result = For.new_at(val[0].pos, val[2], val[4], nil , val[7]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 78 def _reduce_34( val, _values, result ) result = For.new_at(val[0].pos, val[2], nil , val[5], val[7]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 79 def _reduce_35( val, _values, result ) result = For.new_at(val[0].pos, val[2], nil , nil , val[6]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 80 def _reduce_36( val, _values, result ) result = For.new_at(val[0].pos, nil , val[3], val[5], val[7]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 81 def _reduce_37( val, _values, result ) result = For.new_at(val[0].pos, nil , val[3], nil , val[6]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 82 def _reduce_38( val, _values, result ) result = For.new_at(val[0].pos, nil , nil , val[4], val[6]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 83 def _reduce_39( val, _values, result ) result = For.new_at(val[0].pos, nil , nil , nil , val[5]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 84 def _reduce_40( val, _values, result ) result = For.new_at(val[0].pos, val[2], val[3], val[5], val[7]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 85 def _reduce_41( val, _values, result ) result = For.new_at(val[0].pos, val[2], val[3], nil , val[6]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 86 def _reduce_42( val, _values, result ) result = For.new_at(val[0].pos, val[2], nil , val[4], val[6]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 87 def _reduce_43( val, _values, result ) result = For.new_at(val[0].pos, val[2], nil , nil , val[5]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 91 def _reduce_44( val, _values, result ) result = Goto .new_at(val[0].pos, val[1].val) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 92 def _reduce_45( val, _values, result ) result = Continue.new_at(val[0].pos ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 93 def _reduce_46( val, _values, result ) result = Break .new_at(val[0].pos ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 94 def _reduce_47( val, _values, result ) result = Return .new_at(val[0].pos, val[1] ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 95 def _reduce_48( val, _values, result ) result = Return .new_at(val[0].pos ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 97 def _reduce_49( val, _values, result ) result = Goto .new_at(val[0].pos, val[1].name) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 103 def _reduce_50( val, _values, result ) result = make_declaration(val[0][0], val[0][1], val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 104 def _reduce_51( val, _values, result ) result = make_declaration(val[0][0], val[0][1], NodeArray[]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 108 def _reduce_52( val, _values, result ) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 109 def _reduce_53( val, _values, result ) result = [val[0][0], [val[0][1]]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 110 def _reduce_54( val, _values, result ) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 111 def _reduce_55( val, _values, result ) result = [val[0][0], [val[0][1]]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 112 def _reduce_56( val, _values, result ) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 113 def _reduce_57( val, _values, result ) result = [val[0][0], [val[0][1]]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 114 def _reduce_58( val, _values, result ) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 115 def _reduce_59( val, _values, result ) result = [val[0][0], [val[0][1]]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 119 def _reduce_60( val, _values, result ) result = NodeArray[val[0]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 120 def _reduce_61( val, _values, result ) result = val[0] << val[2] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 124 def _reduce_62( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 125 def _reduce_63( val, _values, result ) val[0].init = val[2]; result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 129 def _reduce_64( val, _values, result ) result = [val[0].pos, :typedef ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 130 def _reduce_65( val, _values, result ) result = [val[0].pos, :extern ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 131 def _reduce_66( val, _values, result ) result = [val[0].pos, :static ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 132 def _reduce_67( val, _values, result ) result = [val[0].pos, :auto ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 133 def _reduce_68( val, _values, result ) result = [val[0].pos, :register] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 137 def _reduce_69( val, _values, result ) result = [val[0].pos, :void ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 138 def _reduce_70( val, _values, result ) result = [val[0].pos, :char ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 139 def _reduce_71( val, _values, result ) result = [val[0].pos, :short ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 140 def _reduce_72( val, _values, result ) result = [val[0].pos, :int ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 141 def _reduce_73( val, _values, result ) result = [val[0].pos, :long ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 142 def _reduce_74( val, _values, result ) result = [val[0].pos, :float ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 143 def _reduce_75( val, _values, result ) result = [val[0].pos, :double ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 144 def _reduce_76( val, _values, result ) result = [val[0].pos, :signed ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 145 def _reduce_77( val, _values, result ) result = [val[0].pos, :unsigned ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 146 def _reduce_78( val, _values, result ) result = [val[0].pos, :_Bool ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 147 def _reduce_79( val, _values, result ) result = [val[0].pos, :_Complex ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 148 def _reduce_80( val, _values, result ) result = [val[0].pos, :_Imaginary] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 149 def _reduce_81( val, _values, result ) result = [val[0].pos, val[0] ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 150 def _reduce_82( val, _values, result ) result = [val[0].pos, val[0] ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 151 def _reduce_83( val, _values, result ) result = [val[0].pos, val[0] ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 155 def _reduce_84( val, _values, result ) result = val[0][1].new_at(val[0][0], val[1].val, val[3]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 156 def _reduce_85( val, _values, result ) result = val[0][1].new_at(val[0][0], nil , val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 157 def _reduce_86( val, _values, result ) result = val[0][1].new_at(val[0][0], val[1].val, nil ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 159 def _reduce_87( val, _values, result ) result = val[0][1].new_at(val[0][0], val[1].name, val[3]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 160 def _reduce_88( val, _values, result ) result = val[0][1].new_at(val[0][0], val[1].name, nil ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 164 def _reduce_89( val, _values, result ) result = [val[0].pos, Struct] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 165 def _reduce_90( val, _values, result ) result = [val[0].pos, Union ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 169 def _reduce_91( val, _values, result ) result = NodeArray[val[0]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 170 def _reduce_92( val, _values, result ) val[0] << val[1]; result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 174 def _reduce_93( val, _values, result ) result = make_declaration(val[0][0], val[0][1], val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 178 def _reduce_94( val, _values, result ) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 179 def _reduce_95( val, _values, result ) result = [val[0][0], [val[0][1]]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 180 def _reduce_96( val, _values, result ) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 181 def _reduce_97( val, _values, result ) result = [val[0][0], [val[0][1]]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 185 def _reduce_98( val, _values, result ) result = NodeArray[val[0]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 186 def _reduce_99( val, _values, result ) result = val[0] << val[2] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 190 def _reduce_100( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 191 def _reduce_101( val, _values, result ) result = val[0]; val[0].num_bits = val[2] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 192 def _reduce_102( val, _values, result ) result = Declarator.new_at(val[0].pos, :num_bits => val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 196 def _reduce_103( val, _values, result ) result = Enum.new_at(val[0].pos, val[1].val, val[3]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 197 def _reduce_104( val, _values, result ) result = Enum.new_at(val[0].pos, nil , val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 198 def _reduce_105( val, _values, result ) result = Enum.new_at(val[0].pos, val[1].val, val[3]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 199 def _reduce_106( val, _values, result ) result = Enum.new_at(val[0].pos, nil , val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 200 def _reduce_107( val, _values, result ) result = Enum.new_at(val[0].pos, val[1].val, nil ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 202 def _reduce_108( val, _values, result ) result = Enum.new_at(val[0].pos, val[1].name, val[3]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 203 def _reduce_109( val, _values, result ) result = Enum.new_at(val[0].pos, val[1].name, val[3]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 204 def _reduce_110( val, _values, result ) result = Enum.new_at(val[0].pos, val[1].name, nil ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 208 def _reduce_111( val, _values, result ) result = NodeArray[val[0]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 209 def _reduce_112( val, _values, result ) result = val[0] << val[2] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 213 def _reduce_113( val, _values, result ) result = Enumerator.new_at(val[0].pos, val[0].val, nil ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 214 def _reduce_114( val, _values, result ) result = Enumerator.new_at(val[0].pos, val[0].val, val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 218 def _reduce_115( val, _values, result ) result = [val[0].pos, :const ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 219 def _reduce_116( val, _values, result ) result = [val[0].pos, :restrict] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 220 def _reduce_117( val, _values, result ) result = [val[0].pos, :volatile] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 224 def _reduce_118( val, _values, result ) result = [val[0].pos, :inline] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 228 def _reduce_119( val, _values, result ) result = add_decl_type(val[1], val[0]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 229 def _reduce_120( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 233 def _reduce_121( val, _values, result ) result = Declarator.new_at(val[0].pos, nil, val[0].val) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 234 def _reduce_122( val, _values, result ) result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 235 def _reduce_123( val, _values, result ) result = add_decl_type(val[0], Array.new_at(val[0].pos )) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 236 def _reduce_124( val, _values, result ) result = add_decl_type(val[0], Array.new_at(val[0].pos )) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 237 def _reduce_125( val, _values, result ) result = add_decl_type(val[0], Array.new_at(val[0].pos, nil, val[2])) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 238 def _reduce_126( val, _values, result ) result = add_decl_type(val[0], Array.new_at(val[0].pos )) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 239 def _reduce_127( val, _values, result ) result = add_decl_type(val[0], Array.new_at(val[0].pos )) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 240 def _reduce_128( val, _values, result ) result = add_decl_type(val[0], Array.new_at(val[0].pos )) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 241 def _reduce_129( val, _values, result ) result = add_decl_type(val[0], Array.new_at(val[0].pos )) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 242 def _reduce_130( val, _values, result ) result = add_decl_type(val[0], Array.new_at(val[0].pos )) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 243 def _reduce_131( val, _values, result ) result = add_decl_type(val[0], Array.new_at(val[0].pos )) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 244 def _reduce_132( val, _values, result ) result = add_decl_type(val[0], Function.new_at(val[0].pos, nil, param_list(*val[2]), :var_args => val[2][1])) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 245 def _reduce_133( val, _values, result ) result = add_decl_type(val[0], Function.new_at(val[0].pos, nil, val[2])) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 246 def _reduce_134( val, _values, result ) result = add_decl_type(val[0], Function.new_at(val[0].pos )) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 250 def _reduce_135( val, _values, result ) result = add_type_quals(Pointer.new_at(val[0].pos), val[1][1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 251 def _reduce_136( val, _values, result ) result = Pointer.new_at(val[0].pos) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 252 def _reduce_137( val, _values, result ) p = add_type_quals(Pointer.new_at(val[0].pos), val[1][1]); val[2].direct_type = p; result = val[2] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 253 def _reduce_138( val, _values, result ) p = Pointer.new_at(val[0].pos) ; val[1].direct_type = p; result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 257 def _reduce_139( val, _values, result ) result = [val[0][0], [val[0][1]]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 258 def _reduce_140( val, _values, result ) val[0][1] << val[1][1]; result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 262 def _reduce_141( val, _values, result ) result = [val[0], false] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 263 def _reduce_142( val, _values, result ) result = [val[0], true ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 267 def _reduce_143( val, _values, result ) result = NodeArray[val[0]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 268 def _reduce_144( val, _values, result ) result = val[0] << val[2] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 273 def _reduce_145( val, _values, result ) ind_type = val[1].indirect_type and ind_type.detach result = make_parameter(val[0][0], val[0][1], ind_type, val[1].name) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 274 def _reduce_146( val, _values, result ) result = make_parameter(val[0][0], val[0][1], val[1] , nil ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 275 def _reduce_147( val, _values, result ) result = make_parameter(val[0][0], val[0][1], nil , nil ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 279 def _reduce_148( val, _values, result ) result = NodeArray[Parameter.new_at(val[0].pos, nil, val[0].val)] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 280 def _reduce_149( val, _values, result ) result = val[0] << Parameter.new_at(val[2].pos, nil, val[2].val) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 284 def _reduce_150( val, _values, result ) val[1].direct_type = make_direct_type(val[0][0], val[0][1]); result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 285 def _reduce_151( val, _values, result ) result = make_direct_type(val[0][0], val[0][1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 289 def _reduce_152( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 290 def _reduce_153( val, _values, result ) val[1].direct_type = val[0]; result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 291 def _reduce_154( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 295 def _reduce_155( val, _values, result ) result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 296 def _reduce_156( val, _values, result ) val[0].direct_type = Array.new_at(val[0].pos, nil, val[2]); result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 297 def _reduce_157( val, _values, result ) val[0].direct_type = Array.new_at(val[0].pos, nil, nil ); result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 298 def _reduce_158( val, _values, result ) result = Array.new_at(val[0].pos, nil, val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 299 def _reduce_159( val, _values, result ) result = Array.new_at(val[0].pos ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 300 def _reduce_160( val, _values, result ) val[0].direct_type = Array.new_at(val[0].pos); result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 301 def _reduce_161( val, _values, result ) result = Array.new_at(val[0].pos) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 302 def _reduce_162( val, _values, result ) val[0].direct_type = Function.new_at(val[0].pos, nil, param_list(*val[2]), val[2][1]); result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 303 def _reduce_163( val, _values, result ) val[0].direct_type = Function.new_at(val[0].pos ); result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 304 def _reduce_164( val, _values, result ) result = Function.new_at(val[0].pos, nil, param_list(*val[1]), val[1][1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 305 def _reduce_165( val, _values, result ) result = Function.new_at(val[0].pos ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 311 def _reduce_166( val, _values, result ) result = CustomType.new_at(val[0].pos, val[0].val) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 315 def _reduce_167( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 316 def _reduce_168( val, _values, result ) result = CompoundLiteral.new_at(val[0].pos, nil, val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 317 def _reduce_169( val, _values, result ) result = CompoundLiteral.new_at(val[0].pos, nil, val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 321 def _reduce_170( val, _values, result ) result = NodeArray[MemberInit.new_at(val[0][0] , val[0][1], val[1])] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 322 def _reduce_171( val, _values, result ) result = NodeArray[MemberInit.new_at(val[0].pos, nil , val[0])] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 323 def _reduce_172( val, _values, result ) result = val[0] << MemberInit.new_at(val[2][0] , val[2][1], val[3]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 324 def _reduce_173( val, _values, result ) result = val[0] << MemberInit.new_at(val[2].pos, nil , val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 328 def _reduce_174( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 332 def _reduce_175( val, _values, result ) result = val[0]; val[0][1] = NodeArray[val[0][1]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 333 def _reduce_176( val, _values, result ) result = val[0]; val[0][1] << val[1][1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 337 def _reduce_177( val, _values, result ) result = [val[1].pos, val[1] ] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 338 def _reduce_178( val, _values, result ) result = [val[1].pos, Member.new_at(val[1].pos, val[1].val)] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 344 def _reduce_179( val, _values, result ) result = Variable.new_at(val[0].pos, val[0].val) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 345 def _reduce_180( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 346 def _reduce_181( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 347 def _reduce_182( val, _values, result ) result = val[1] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 351 def _reduce_183( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 352 def _reduce_184( val, _values, result ) result = Index .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 353 def _reduce_185( val, _values, result ) result = Call .new_at(val[0].pos, val[0], val[2] ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 354 def _reduce_186( val, _values, result ) result = Call .new_at(val[0].pos, val[0], NodeArray[]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 355 def _reduce_187( val, _values, result ) result = Dot .new_at(val[0].pos, val[0], Member.new(val[2].val)) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 356 def _reduce_188( val, _values, result ) result = Arrow .new_at(val[0].pos, val[0], Member.new(val[2].val)) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 357 def _reduce_189( val, _values, result ) result = PostInc .new_at(val[0].pos, val[0] ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 358 def _reduce_190( val, _values, result ) result = PostDec .new_at(val[0].pos, val[0] ) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 359 def _reduce_191( val, _values, result ) result = CompoundLiteral.new_at(val[0].pos, val[1], val[4]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 360 def _reduce_192( val, _values, result ) result = CompoundLiteral.new_at(val[0].pos, val[1], val[4]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 364 def _reduce_193( val, _values, result ) result = NodeArray[val[0]] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 365 def _reduce_194( val, _values, result ) result = val[0] << val[2] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 369 def _reduce_195( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 370 def _reduce_196( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 374 def _reduce_197( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 375 def _reduce_198( val, _values, result ) result = PreInc.new_at(val[0].pos, val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 376 def _reduce_199( val, _values, result ) result = PreDec.new_at(val[0].pos, val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 377 def _reduce_200( val, _values, result ) result = val[0][0].new_at(val[0][1], val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 378 def _reduce_201( val, _values, result ) result = Sizeof.new_at(val[0].pos, val[1]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 379 def _reduce_202( val, _values, result ) result = Sizeof.new_at(val[0].pos, val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 383 def _reduce_203( val, _values, result ) result = [Address , val[0].pos] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 384 def _reduce_204( val, _values, result ) result = [Dereference, val[0].pos] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 385 def _reduce_205( val, _values, result ) result = [Positive , val[0].pos] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 386 def _reduce_206( val, _values, result ) result = [Negative , val[0].pos] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 387 def _reduce_207( val, _values, result ) result = [BitNot , val[0].pos] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 388 def _reduce_208( val, _values, result ) result = [Not , val[0].pos] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 392 def _reduce_209( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 393 def _reduce_210( val, _values, result ) result = Cast.new_at(val[0].pos, val[1], val[3]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 397 def _reduce_211( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 398 def _reduce_212( val, _values, result ) result = Multiply.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 399 def _reduce_213( val, _values, result ) result = Divide .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 400 def _reduce_214( val, _values, result ) result = Mod .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 404 def _reduce_215( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 405 def _reduce_216( val, _values, result ) result = Add .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 406 def _reduce_217( val, _values, result ) result = Subtract.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 410 def _reduce_218( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 411 def _reduce_219( val, _values, result ) result = ShiftLeft .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 412 def _reduce_220( val, _values, result ) result = ShiftRight.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 416 def _reduce_221( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 417 def _reduce_222( val, _values, result ) result = Less.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 418 def _reduce_223( val, _values, result ) result = More.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 419 def _reduce_224( val, _values, result ) result = LessOrEqual.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 420 def _reduce_225( val, _values, result ) result = MoreOrEqual.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 424 def _reduce_226( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 425 def _reduce_227( val, _values, result ) result = Equal .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 426 def _reduce_228( val, _values, result ) result = NotEqual.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 430 def _reduce_229( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 431 def _reduce_230( val, _values, result ) result = BitAnd.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 435 def _reduce_231( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 436 def _reduce_232( val, _values, result ) result = BitXor.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 440 def _reduce_233( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 441 def _reduce_234( val, _values, result ) result = BitOr.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 445 def _reduce_235( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 446 def _reduce_236( val, _values, result ) result = And.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 450 def _reduce_237( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 451 def _reduce_238( val, _values, result ) result = Or.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 455 def _reduce_239( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 456 def _reduce_240( val, _values, result ) result = Conditional.new_at(val[0].pos, val[0], val[2], val[4]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 460 def _reduce_241( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 461 def _reduce_242( val, _values, result ) result = val[1].new_at(val[0].pos, val[0], val[2]) result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 465 def _reduce_243( val, _values, result ) result = Assign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 466 def _reduce_244( val, _values, result ) result = MultiplyAssign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 467 def _reduce_245( val, _values, result ) result = DivideAssign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 468 def _reduce_246( val, _values, result ) result = ModAssign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 469 def _reduce_247( val, _values, result ) result = AddAssign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 470 def _reduce_248( val, _values, result ) result = SubtractAssign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 471 def _reduce_249( val, _values, result ) result = ShiftLeftAssign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 472 def _reduce_250( val, _values, result ) result = ShiftRightAssign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 473 def _reduce_251( val, _values, result ) result = BitAndAssign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 474 def _reduce_252( val, _values, result ) result = BitXorAssign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 475 def _reduce_253( val, _values, result ) result = BitOrAssign result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 479 def _reduce_254( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 498 def _reduce_255( val, _values, result ) if val[0].is_a? Comma if val[2].is_a? Comma val[0].exprs.push(*val[2].exprs) else val[0].exprs << val[2] end result = val[0] else if val[2].is_a? Comma val[2].exprs.unshift(val[0]) val[2].pos = val[0].pos result = val[2] else result = Comma.new_at(val[0].pos, NodeArray[val[0], val[2]]) end end result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 501 def _reduce_256( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 516 def _reduce_257( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 520 def _reduce_258( val, _values, result ) result = val[0].val; result.pos = val[0].pos result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 521 def _reduce_259( val, _values, result ) result = val[0].val; result.pos = val[0].pos result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 524 def _reduce_260( val, _values, result ) result = val[0].val; result.pos = val[0].pos result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 528 def _reduce_261( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'lib/cast/c.y', 532 def _reduce_262( val, _values, result ) result = val[0].val; result.pos = val[0].pos result end .,., def _reduce_none( val, _values, result ) result end end # class Parser end # module C