# # DO NOT MODIFY!!!! # This file is automatically generated by Racc 1.4.8 # from Racc grammer file "". # require 'racc/parser.rb' 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 c.y/module_eval...', 'c.y', 539) # 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 #{token_to_str(error_token_id)} (#{error_value.val})") end end def self.feature(name) attr_writer "#{name}_enabled" class_eval <<-EOS def enable_#{name} @#{name}_enabled = true end def #{name}_enabled? @#{name}_enabled end EOS end private_class_method :feature # # Allow blocks in parentheses as expressions, as per the gcc # extension. [http://rubyurl.com/iB7] # feature :block_expressions 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 # # 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 c.y/module_eval... ##### State transition tables begin ### clist = [ '121,123,83,292,131,134,137,21,297,148,152,156,159,162,165,168,113,121', '123,83,57,131,134,137,321,381,148,152,156,159,162,165,168,113,56,426', '57,380,252,321,288,89,53,41,49,140,231,21,39,427,157,161,164,167,111', '116,118,120,368,296,195,288,140,53,21,382,413,157,161,164,167,111,116', '118,120,53,288,75,88,252,41,377,200,41,142,145,149,153,72,21,76,57,109', '21,228,367,201,41,390,252,41,142,145,149,153,121,123,83,292,131,134', '137,89,41,148,152,156,159,162,165,168,113,121,123,83,41,131,134,137', '41,53,148,152,156,159,162,165,168,113,72,72,57,211,212,368,288,208,209', '391,88,140,198,21,437,374,157,161,164,167,111,116,118,120,223,252,199', '252,140,41,21,350,395,157,161,164,167,111,116,118,120,53,367,396,428', '205,41,397,100,41,142,145,149,153,252,56,271,57,206,207,353,272,101', '211,212,298,41,142,145,149,153,121,123,83,354,131,134,137,252,41,148', '152,156,159,162,165,168,113,121,123,83,398,131,134,137,205,53,148,152', '156,159,162,165,168,113,267,205,232,206,207,217,214,215,216,229,230', '140,190,21,206,207,157,161,164,167,111,116,118,120,233,191,211,212,140', '41,21,251,389,157,161,164,167,111,116,118,120,416,218,219,252,252,208', '209,404,41,142,145,149,153,252,266,256,258,259,260,261,262,263,264,265', '405,41,142,145,149,153,121,123,83,234,131,134,137,211,212,148,152,156', '159,162,165,168,113,121,123,83,72,131,134,137,379,431,148,152,156,159', '162,165,168,113,252,252,378,72,435,455,217,214,215,216,102,140,252,21', '252,252,157,161,164,167,111,116,118,120,217,214,215,216,140,228,21,286', '451,157,161,164,167,111,116,118,120,285,252,318,446,319,443,384,221', '41,142,145,149,153,252,252,252,383,32,36,1,218,219,375,53,220,41,142', '145,149,153,121,123,83,323,131,134,137,208,209,148,152,156,159,162,165', '168,113,121,123,83,223,131,134,137,211,212,148,152,156,159,162,165,168', '113,32,36,1,222,247,221,53,375,255,422,423,140,424,21,220,41,157,161', '164,167,111,116,118,120,360,268,358,304,140,192,21,356,41,157,161,164', '167,111,116,118,120,213,74,73,72,442,331,68,67,41,142,145,149,153,233', '66,345,280,344,283,284,86,41,287,41,425,41,142,145,149,153,121,123,83', ',131,134,137,,,148,152,156,159,162,165,168,113,121,123,83,,131,134,137', ',,148,152,156,159,162,165,168,113,,,,,,,,,,,,140,,21,,,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,,131', '134,137,,,148,152,156,159,162,165,168,113,121,123,83,,131,134,137,,', '148,152,156,159,162,165,168,113,,,,,,,,,,,,140,,21,,,157,161,164,167', '111,116,118,120,,,,,140,,21,,,157,161,164,167,111,116,118,120,,,,,,', ',92,41,142,145,149,153,170,57,245,,137,,,,,,,,41,142,145,149,153,121', '123,83,,131,134,137,,,148,152,156,159,162,165,168,113,,,,,,241,53,,', '140,242,243,244,246,157,161,164,167,111,116,118,120,,,,,,,140,,21,,', '157,161,164,167,111,116,118,120,,,,41,,,41,142,145,149,153,,,,,,,,,', ',,,,,41,142,145,149,153,121,123,83,235,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,,,,,,92,,,,,,,57,,,140,,21,,,157,161,164,167,111,116,118,120,121', '123,83,,131,134,137,,,148,152,156,159,162,165,168,113,,,,,,,53,,41,142', '145,149,153,,,,,,,,,,,,,,,,140,,21,,,157,161,164,167,111,116,118,120', '121,123,83,41,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,128,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', ',,,,,,,,83,,,,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,,,157,161,164,167,111,116,118', '120,375,,,,137,,,,,,,,,,,170,392,,,137,,,,,,41,142,145,149,153,,,,,', ',,,,,,,,140,,,,,157,161,164,167,111,116,118,120,271,,140,,,272,,157', '161,164,167,111,116,118,120,,,,,,,,,,,41,142,145,149,153,83,,,,137,', ',,,,41,142,145,149,153,170,441,,,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,271', ',140,,,272,,157,161,164,167,111,116,118,120,,,,,,,,,,,41,142,145,149', '153,83,,,,137,,,,,,41,142,145,149,153,170,,,,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,271,,140,,,272,,157,161,164,167,111,116,118,120,170,,,,137,', ',,,,41,142,145,149,153,170,,,,137,,,,,,41,142,145,149,153,,,,,,,,,,', ',271,,140,,,272,,157,161,164,167,111,116,118,120,,,140,,204,,137,157', '161,164,167,111,116,118,120,170,,,,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,342', ',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', '386,,137,,,,,,,,,,,420,,137,,,,,,,,,,41,142,145,149,153,,,,,,,,,,,,140', ',,,,157,161,164,167,111,116,118,120,140,,388,,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,137,,,,,,,,41,142', '145,149,153,,,,32,36,1,,,,140,,,,,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,,,,,,,,,400,401,,,,,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,,,,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,,,,,,,,,,,,,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,,', '157,161,164,167,111,116,118,120,,,,,,,,,,,,,137,340,,,,,,,,,,,,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,,,,', '157,161,164,167,111,116,118,120,137,415,,,,,,,,,,,41,142,145,149,153', '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,418,,,,,,,41', '142,145,149,153,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,430,,,,,,,,,,,41,142,145,149,153,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,140,,,,,157', '161,164,167,111,116,118,120,137,434,,,,,,,,,,,41,142,145,149,153,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,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,,,,,137,439,,,,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,450,,,,,,,,,,,41,142,145,149,153,240,,,', ',,,,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,,,,240,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,,,,,254', ',,,,,,,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,277,137,,,,,,,41,142,145,149,153', ',,,,,32,36,1,,,278,279,,,,,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,,,,,,,,,365', '366,,,,,157,161,164,167,111,116,118,120,,,,,,,,,,,,,,,,,,292,371,,,', ',,,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,288,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,321', '371,,,,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,288,403,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,,,,363,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(4267, 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 = [ '455,455,455,185,455,455,455,162,201,455,455,455,455,455,455,455,455', '374,374,374,58,374,374,374,226,332,374,374,374,374,374,374,374,374,31', '407,31,331,333,322,185,81,185,162,29,455,144,455,2,407,455,455,455,455', '455,455,455,455,290,199,101,226,374,226,374,333,385,374,374,374,374', '374,374,374,374,31,322,52,81,385,185,326,104,455,455,455,455,455,201', '29,52,76,80,2,325,290,104,58,347,326,374,374,374,374,374,451,451,451', '293,451,451,451,60,31,451,451,451,451,451,451,451,451,450,450,450,29', '450,450,450,2,76,450,450,450,450,450,450,450,450,199,101,57,308,308', '372,293,306,306,351,60,451,103,451,419,316,451,451,451,451,451,451,451', '451,324,316,103,419,450,76,450,269,357,450,450,450,450,450,450,450,450', '57,372,359,411,117,293,364,69,451,451,451,451,451,411,85,269,85,117', '117,274,269,69,309,309,203,450,450,450,450,450,446,446,446,274,446,446', '446,203,57,446,446,446,446,446,446,446,446,443,443,443,366,443,443,443', '302,85,443,443,443,443,443,443,443,443,166,303,148,302,302,125,125,125', '125,143,143,446,93,446,303,303,446,446,446,446,446,446,446,446,150,93', '310,310,443,85,443,163,343,443,443,443,443,443,443,443,443,387,314,314', '163,343,119,119,369,446,446,446,446,446,387,166,166,166,166,166,166', '166,166,166,166,370,443,443,443,443,443,439,439,439,152,439,439,439', '311,311,439,439,439,439,439,439,439,439,213,213,213,74,213,213,213,330', '414,213,213,213,213,213,213,213,213,330,414,328,73,417,449,312,312,312', '312,71,439,328,439,417,449,439,439,439,439,439,439,439,439,313,313,313', '313,213,139,213,181,438,213,213,213,213,213,213,213,213,181,438,224', '433,225,429,337,317,439,439,439,439,439,433,225,429,337,77,77,77,127', '127,381,77,315,213,213,213,213,213,156,156,156,227,156,156,156,305,305', '156,156,156,156,156,156,156,156,435,435,435,136,435,435,435,122,122', '435,435,435,435,435,435,435,435,53,53,53,134,159,133,53,390,165,399', '401,156,402,156,130,285,156,156,156,156,156,156,156,156,282,168,279', '210,435,95,435,276,272,435,435,435,435,435,435,435,435,123,51,50,49', '428,237,45,42,156,156,156,156,156,238,40,250,176,249,179,180,106,243', '182,242,406,435,435,435,435,435,434,434,434,,434,434,434,,,434,434,434', '434,434,434,434,434,431,431,431,,431,431,431,,,431,431,431,431,431,431', '431,431,,,,,,,,,,,,434,,434,,,434,434,434,434,434,434,434,434,,,,,431', ',431,,,431,431,431,431,431,431,431,431,,,,,,,,,434,434,434,434,434,', ',,,,,,,,,,,431,431,431,431,431,430,430,430,,430,430,430,,,430,430,430', '430,430,430,430,430,378,378,378,,378,378,378,,,378,378,378,378,378,378', '378,378,,,,,,,,,,,,430,,430,,,430,430,430,430,430,430,430,430,,,,,378', ',378,,,378,378,378,378,378,378,378,378,,,,,,,,191,430,430,430,430,430', '86,191,158,,86,,,,,,,,378,378,378,378,378,425,425,425,,425,425,425,', ',425,425,425,425,425,425,425,425,,,,,,158,191,,,86,158,158,158,158,86', '86,86,86,86,86,86,86,,,,,,,425,,425,,,425,425,425,425,425,425,425,425', ',,,191,,,86,86,86,86,86,,,,,,,,,,,,,,,425,425,425,425,425,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,233,233,233', ',233,233,233,,,233,233,233,233,233,233,233,233,,,,,,,,,154,154,154,154', '154,,,,,,63,,,,,,,63,,,233,,233,,,233,233,233,233,233,233,233,233,379', '379,379,,379,379,379,,,379,379,379,379,379,379,379,379,,,,,,,63,,233', '233,233,233,233,,,,,,,,,,,,,,,,379,,379,,,379,379,379,379,379,379,379', '379,415,415,415,63,415,415,415,,,415,415,415,415,415,415,415,415,,,', ',,,,,379,379,379,379,379,,,,,,,,,,,,,,,,415,,415,,220,415,415,415,415', '415,415,415,415,231,231,231,,231,231,231,,,231,231,231,231,231,231,231', '231,,,,,,,,,415,415,415,415,415,220,,,,,220,220,220,220,220,220,220', '220,,,231,,231,,,231,231,231,231,231,231,231,231,,,,,,,,,,,220,220,220', '220,220,,,,,,,,,,,231,231,231,231,231,83,83,83,83,83,83,83,,,83,83,83', '83,83,83,83,83,,,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83', '83,83,83,83,83,83,83,,,83,,83,,,83,83,83,83,83,83,83,83,304,304,304', ',304,304,304,,,304,304,304,304,304,304,304,304,,,,,,,,,83,83,83,83,83', ',,,,,,,,,,,,,,,304,,304,,,304,304,304,304,304,304,304,304,418,418,418', ',418,418,418,,,418,418,418,418,418,418,418,418,,,,,,,,,304,304,304,304', '304,,,,,,,,,,,,,,,,418,,418,,,418,418,418,418,418,418,418,418,,,,,,', ',,240,,,,240,,,,,,,,,,,,,418,418,418,418,418,240,240,240,240,240,240', '240,240,240,240,240,240,240,240,240,240,240,240,,,,240,,240,,,240,240', '240,240,240,240,240,240,323,,,,323,,,,,,,,,,,354,354,,,354,,,,,,240', '240,240,240,240,,,,,,,,,,,,,,323,,,,,323,323,323,323,323,323,323,323', '354,,354,,,354,,354,354,354,354,354,354,354,354,,,,,,,,,,,323,323,323', '323,323,137,,,,137,,,,,,354,354,354,354,354,427,427,,,427,,,137,137', '137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,,,,137', ',137,,,137,137,137,137,137,137,137,137,427,,427,,,427,,427,427,427,427', '427,427,427,427,,,,,,,,,,,137,137,137,137,137,254,,,,254,,,,,,427,427', '427,427,427,375,,,,375,,,254,254,254,254,254,254,254,254,254,254,254', '254,254,254,254,254,254,254,,,,254,,254,,,254,254,254,254,254,254,254', '254,375,,375,,,375,,375,375,375,375,375,375,375,375,170,,,,170,,,,,', '254,254,254,254,254,275,,,,275,,,,,,375,375,375,375,375,,,,,,,,,,,,170', ',170,,,170,,170,170,170,170,170,170,170,170,,,275,,113,,113,275,275', '275,275,275,275,275,275,394,,,,394,,,,,,170,170,170,170,170,,,,,,,,', ',,275,275,275,275,275,113,,,,,113,113,113,113,113,113,113,113,394,,', ',,394,394,394,394,394,394,394,394,,,,,,,,,,,,,113,113,113,113,113,247', ',247,,,,,,394,394,394,394,394,,,247,247,247,247,247,247,247,247,247', '247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,,,247,,247', ',,247,247,247,247,247,247,247,247,341,,341,,,,,,,,,,,389,,389,,,,,,', ',,,247,247,247,247,247,,,,,,,,,,,,341,,,,,341,341,341,341,341,341,341', '341,389,,342,,342,389,389,389,389,389,389,389,389,,,,,92,,,,,,,,341', '341,341,341,341,,,,,,,,,389,389,389,389,389,342,,,,,342,342,342,342', '342,342,342,342,92,,,,,92,92,92,92,92,92,92,92,281,,,,,,,,,,,,342,342', '342,342,342,277,,,,,,,,92,92,92,92,92,,,,281,281,281,,,,281,,,,,281', '281,281,281,281,281,281,281,,,,,277,,,,,277,277,277,277,277,277,277', '277,367,,,,,,,,281,281,281,281,281,271,,,,,,,,,,,,277,277,277,277,277', ',,,,,,,,367,367,,,,,367,367,367,367,367,367,367,367,271,,,,257,271,271', '271,271,271,271,271,271,,,,,102,,,,,,,,367,367,367,367,367,,,,,,,,,271', '271,271,271,271,257,,,,,257,257,257,257,257,257,257,257,102,,,,377,102', '102,102,102,102,102,102,102,,,,,252,,,,,,,,257,257,257,257,257,,,,,', ',,,102,102,102,102,102,377,,,,,377,377,377,377,377,377,377,377,252,', ',,380,252,252,252,252,252,252,252,252,,,,,112,,,,,,,,377,377,377,377', '377,,,,,,,,,252,252,252,252,252,380,,,,,380,380,380,380,380,380,380', '380,112,,,,,112,112,112,112,112,112,112,112,,,,,,,,,,,,,380,380,380', '380,380,383,,,,,,,,112,112,112,112,112,,,,,,383,383,383,383,383,383', '383,383,383,383,383,383,383,383,383,383,383,383,,,,383,,383,,,383,383', '383,383,383,383,383,383,,,,,,,,,,,,,245,245,,,,,,,,,,,,383,383,383,383', '383,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245', '245,245,,,,245,,245,,241,245,245,245,245,245,245,245,245,,,,,121,,,', ',,,,,,,,,,,,,,,,,245,245,245,245,245,241,,,,,241,241,241,241,241,241', '241,241,121,,,,,121,121,121,121,121,121,121,121,386,386,,,,,,,,,,,241', '241,241,241,241,234,,,,,,,,121,121,121,121,121,,,,,,,,,,386,,,,,386', '386,386,386,386,386,386,386,,,,,234,,,,,234,234,234,234,234,234,234', '234,388,388,,,,,,,386,386,386,386,386,232,,,,,,,,,,,,234,234,234,234', '234,,,,,,,,,,388,,,,,388,388,388,388,388,388,388,388,232,,,,,232,232', '232,232,232,232,232,232,413,413,,,,,,,,,,,388,388,388,388,388,230,,', ',,,,,232,232,232,232,232,,,,,,,,,,413,,,,,413,413,413,413,413,413,413', '413,,,,,230,,,,229,230,230,230,230,230,230,230,230,,,,,228,,,,413,413', '413,413,413,,,,,,,,,,,,,230,230,230,230,230,229,,,,,229,229,229,229', '229,229,229,229,228,,,,,228,228,228,228,228,228,228,228,416,416,,,,', ',,,,,,229,229,229,229,229,223,,,,,,,,228,228,228,228,228,,,,,,,,,,416', ',,,,416,416,416,416,416,416,416,416,,,,,223,,,,222,223,223,223,223,223', '223,223,223,,,,,221,,,,416,416,416,416,416,,,,,,,,,,,,,223,223,223,223', '223,222,,,,,222,222,222,222,222,222,222,222,221,,,,,221,221,221,221', '221,221,221,221,,,88,,,,,,,,,,222,222,222,222,222,88,219,,,,,,,221,221', '221,221,221,,,,,,88,88,88,,,88,88,,,,,88,88,88,88,88,88,88,88,,,,219', ',,,218,219,219,219,219,219,219,219,219,,,,,420,420,,,,88,88,88,88,88', ',,,,,,,,,,,219,219,219,219,219,218,,,,,218,218,218,218,218,218,218,218', '420,,,,,420,420,420,420,420,420,420,420,437,437,,,,,,,,,,,218,218,218', '218,218,157,,,,,,,,420,420,420,420,420,,,,,,,,,,437,,,,,437,437,437', '437,437,437,437,437,,,,,157,,,,217,157,157,157,157,157,157,157,157,', ',,,216,,,,437,437,437,437,437,,,,,,,,,,,,,157,157,157,157,157,217,,', ',,217,217,217,217,217,217,217,217,216,,,,161,216,216,216,216,216,216', '216,216,,,,,215,,,,,,,,217,217,217,217,217,,,,,,,,,216,216,216,216,216', '161,,,,,161,161,161,161,161,161,161,161,215,,,,214,215,215,215,215,215', '215,215,215,,,,,164,,,,,,,,161,161,161,161,161,,,,,,,,,215,215,215,215', '215,214,,,,,214,214,214,214,214,214,214,214,164,,,,212,164,164,164,164', '164,164,164,164,,,,,211,,,,,,,,214,214,214,214,214,,,,,,,,,164,164,164', '164,164,212,,,,,212,212,212,212,212,212,212,212,211,,,,,211,211,211', '211,211,211,211,211,,,175,,,,,,,,,,212,212,212,212,212,175,209,,,,,', ',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,288,,,,,,,,,,,,205,205,205,205,205,,,,,', ',,,192,192,192,192,192,,,,,,,,,288,288,,,,,288,288,288,288,288,288,288', '288,,,,,,,,,,,,,,,,,,292,292,,,,,,,288,288,288,288,288,292,292,292,292', '292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292', '292,292,292,292,89,292,,292,,,,,,,,,89,89,89,89,89,89,89,89,89,89,89', '89,89,89,89,89,89,89,89,89,89,89,89,89,,,,292,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,321,321,,,,99,,,,,,,,321,321,321,321', '321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321', '321,321,321,321,368,321,,321,,,,,,,,,368,368,368,368,368,368,368,368', '368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,,,,', '368,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,287,287,287,287,287,287,287', '287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287', ',,,287,287,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,67,67,67', '67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,,,,,,67,66,66,66,66,66', '66,66,66,66,66,66,66,66,66,66,66,66,66,,,,,,66,39,39,39,39,39,39,39', '39,39,39,39,39,39,39,39,39,39,39,,,,,,39,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(4267, 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 = [ 4096, nil, 43, nil, nil, nil, nil, nil, nil, nil, nil, nil, 4038, nil, nil, 4009, 3649, nil, nil, 3951, nil, nil, nil, nil, 3980, nil, nil, nil, nil, 39, nil, 27, nil, nil, nil, nil, nil, nil, nil, 4192, 504, nil, 497, nil, nil, 501, nil, nil, nil, 412, 492, 491, 70, 412, nil, nil, nil, 132, 11, 3690, 103, 3771, nil, 914, 4120, 4216, 4168, 4144, nil, 181, nil, 338, nil, 266, 249, nil, 82, 365, nil, nil, 82, 32, nil, 1140, nil, 187, 713, 3731, 2813, 3584, nil, nil, 1884, 249, nil, 481, nil, nil, 3810, 3849, nil, 54, 2074, 145, 76, nil, 494, nil, nil, nil, nil, nil, 2186, 1677, nil, nil, nil, 136, nil, 233, nil, 2375, 381, 493, nil, 184, nil, 341, nil, nil, 412, nil, nil, 388, 448, nil, 368, 1462, nil, 305, nil, nil, nil, 179, 44, nil, nil, nil, 237, nil, 266, nil, 309, nil, 820, nil, 417, 2954, 711, 449, nil, 3053, -43, 268, 3122, 455, 223, nil, 472, nil, 1619, nil, nil, nil, nil, 3232, 464, 3300, nil, 466, 504, 370, 497, nil, nil, -6, nil, nil, nil, nil, nil, 710, 3426, nil, nil, nil, nil, nil, nil, 53, nil, 2, nil, 197, nil, 3413, 3370, 3357, 3314, 3248, 479, 3178, 3165, 329, 3109, 3066, 3010, 2997, 2872, 2829, 1037, 2759, 2746, 2703, 382, 384, 15, 413, 2634, 2621, 2578, 1052, 2509, 878, 2444, nil, nil, 487, 506, nil, 1320, 2362, 432, 430, nil, 2319, nil, 1761, nil, 505, 503, nil, 2130, nil, 1548, nil, nil, 2061, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 149, nil, 2018, 400, nil, 193, 1634, 438, 1953, nil, 433, nil, 1936, 431, nil, nil, 383, nil, 4067, 3478, nil, 49, nil, 3547, 99, nil, nil, nil, nil, nil, nil, nil, nil, 186, 197, 1198, 370, 89, nil, 79, 139, 207, 259, 290, 308, 217, 358, 144, 326, nil, nil, nil, 3885, 30, 1376, 91, 21, 79, nil, 341, nil, 329, 28, 15, 18, nil, nil, nil, 386, nil, nil, nil, 1815, 1871, 269, nil, nil, nil, 88, nil, nil, nil, 101, nil, nil, 1391, nil, nil, 124, nil, 135, nil, nil, nil, nil, 139, nil, 183, 2005, 3922, 282, 299, nil, 135, nil, 14, 1563, nil, 2117, 644, 936, 2173, 407, nil, 2255, nil, 59, 2427, 278, 2496, 1828, 456, nil, nil, nil, 1690, nil, nil, nil, nil, 416, nil, 417, 456, nil, nil, nil, 508, 29, nil, nil, nil, 173, nil, 2561, 330, 994, 2686, 343, 1256, 146, 2885, nil, nil, nil, nil, 732, nil, 1477, 492, 385, 627, 539, nil, 383, 522, 434, nil, 2937, 371, 312, nil, nil, nil, 224, nil, nil, 207, nil, nil, 344, 119, 102, nil, nil, nil, -3, nil, nil, nil ] racc_action_default = [ -264, -117, -264, -75, -64, -118, -76, -65, -77, -66, -78, -67, -53, -79, -68, -55, -264, -80, -69, -57, -1, -166, -89, -70, -59, -3, -90, -71, -4, -264, -72, -264, -115, -83, -81, -73, -116, -82, -74, -264, -86, -258, -88, -52, -54, -264, -2, -56, -58, -264, -107, -110, -264, -136, -121, -60, -51, -264, -264, -62, -120, -264, -91, -264, -95, -97, -264, -264, 459, -264, -111, -113, -262, -264, -264, -50, -264, -135, -139, -138, -264, -119, -6, -264, -7, -264, -264, -264, -264, -264, -92, -85, -264, -264, -98, -100, -94, -96, -264, -264, -104, -264, -264, -264, -264, -61, -62, -140, -137, -122, -255, -206, -264, -264, -23, -212, -207, -216, -208, -219, -209, -264, -222, -264, -10, -227, -24, -230, -20, -9, -232, -26, -11, -234, -264, -12, -236, -264, -13, -238, -205, -14, -259, -240, -179, -260, -242, -184, -264, -261, -83, -180, -264, -263, -264, -181, -264, -264, -198, -264, -21, -264, -264, -264, -264, -264, -210, -204, -264, -167, -264, -179, -63, -5, -8, -264, -264, -264, -126, -205, -264, -264, -141, -143, -148, -147, -134, -210, -102, -257, -93, -264, -264, -84, -87, -106, -112, -114, -103, -264, -108, -264, -201, -264, -48, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -151, -264, -264, -264, -264, -264, -264, -264, -264, -19, -22, -264, -264, -199, -264, -264, -264, -264, -190, -264, -191, -264, -200, -264, -264, -25, -264, -202, -264, -45, -246, -264, -247, -248, -249, -250, -251, -252, -253, -254, -245, -244, -46, -264, -175, -264, -264, -171, -264, -264, -264, -264, -124, -205, -125, -264, -264, -131, -132, -264, -133, -264, -264, -146, -154, -145, -264, -152, -99, -101, -105, -109, -47, -213, -214, -215, -217, -218, -264, -220, -221, -17, -224, -225, -226, -223, -228, -229, -231, -233, -264, -235, -183, -182, -150, -264, -152, -264, -237, -239, -264, -15, -264, -18, -264, -264, -264, -264, -188, -189, -196, -264, -197, -194, -187, -264, -264, -264, -44, -49, -256, -264, -243, -176, -174, -264, -178, -168, -264, -170, -123, -264, -130, -264, -128, -149, -144, -142, -264, -159, -205, -264, -264, -264, -264, -165, -153, -16, -264, -264, -211, -264, -264, -264, -264, -264, -185, -264, -186, -264, -264, -264, -264, -264, -203, -177, -169, -173, -264, -129, -127, -158, -161, -264, -157, -205, -264, -163, -164, -155, -27, -264, -241, -29, -30, -264, -195, -264, -264, -264, -264, -264, -264, -264, -264, -172, -156, -160, -162, -264, -192, -264, -264, -264, -264, -264, -43, -264, -264, -264, -39, -264, -264, -264, -28, -193, -31, -264, -41, -42, -264, -37, -38, -264, -264, -264, -35, -40, -36, -264, -33, -34, -32 ] racc_goto_table = [ 42, 172, 31, 96, 97, 274, 180, 81, 203, 339, 82, 94, 160, 77, 43, 65, 196, 44, 31, 394, 189, 47, 372, 40, 289, 16, 48, 51, 202, 78, 189, 79, 225, 90, 64, 312, 313, 65, 173, 84, 65, 65, 65, 65, 188, 227, 302, 303, 175, 189, 50, 372, 54, 107, 197, 108, 64, 305, 306, 64, 64, 64, 64, 114, 78, 320, 20, 174, 61, 349, 90, 90, 362, 210, 65, 65, 226, 181, 54, 54, 337, 150, 46, 236, 54, 169, 93, 176, 224, 105, 154, 185, 394, 64, 64, 98, 99, 54, 314, 315, 317, 59, 324, 325, 144, 87, 54, 257, nil, nil, 184, nil, nil, 65, 196, nil, 196, 316, nil, nil, 189, 299, 300, 301, nil, 326, nil, 328, nil, 330, nil, nil, 64, 95, 114, 225, 333, 281, nil, 294, 69, nil, 343, nil, 295, nil, 106, 412, 332, 225, nil, 107, 150, 78, 238, 106, 308, 309, 310, 311, 250, nil, 347, 293, 103, 104, nil, nil, nil, 169, nil, nil, nil, nil, 276, 144, 282, 144, nil, 226, nil, nil, nil, 249, 226, nil, nil, nil, nil, nil, 355, 224, nil, 226, nil, nil, nil, nil, nil, 189, nil, nil, nil, nil, 322, 224, 54, nil, nil, nil, 407, 238, 54, nil, nil, nil, 65, nil, nil, nil, 237, 65, nil, 351, nil, nil, nil, 341, nil, 238, 65, 238, nil, nil, 144, 64, 385, 387, nil, 376, 64, nil, 81, nil, 336, nil, nil, nil, nil, 64, nil, 346, 144, nil, 144, 291, 348, 107, nil, nil, nil, 95, nil, 334, 335, nil, nil, nil, nil, 393, 293, nil, nil, nil, 169, 411, 357, 307, nil, nil, 359, 414, nil, 417, 419, 402, nil, 364, nil, 185, nil, nil, nil, 352, 185, 327, nil, 329, nil, 322, nil, nil, 238, nil, nil, 408, 361, nil, 429, 421, nil, 433, nil, 54, 54, 438, nil, nil, nil, nil, nil, nil, 226, 185, nil, 144, nil, nil, nil, nil, nil, nil, 449, nil, nil, nil, nil, nil, nil, nil, nil, nil, 393, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 169, nil, nil, nil, nil, nil, 65, nil, nil, nil, nil, nil, nil, 399, nil, 373, nil, 185, nil, 238, nil, 169, nil, 238, 238, 64, nil, nil, nil, 336, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 169, nil, 144, nil, nil, nil, 144, 144, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 238, nil, nil, 238, nil, nil, nil, nil, nil, nil, 238, nil, nil, 169, nil, 238, 238, nil, nil, 238, 238, nil, nil, 144, 238, 406, 144, nil, 238, 409, 410, 238, nil, 144, nil, 238, 238, nil, 144, 144, 238, nil, 144, 144, nil, 187, nil, 144, nil, nil, nil, 144, nil, nil, 144, 187, nil, nil, 144, 144, nil, nil, nil, 144, nil, 187, 432, nil, nil, 436, nil, nil, nil, nil, 187, nil, 440, nil, nil, nil, nil, 444, 445, nil, nil, 447, 448, nil, nil, nil, 452, nil, nil, nil, 453, nil, nil, 454, nil, nil, nil, 456, 457, nil, nil, nil, 458, nil, nil, nil, 239, nil, nil, nil, 248, nil, nil, 253, 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, 187, 187, 187, 187, 187, nil, 187, 187, nil, 187, 187, 187, 187, 187, 187, 187, 187, nil, 187, nil, 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, 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, 33, 33, 50, 43, 40, 20, 59, 8, 35, 19, 41, 5, 24, 37, 5, 5, 51, 73, 5, 49, 15, 47, 1, 5, 17, 62, 24, 73, 39, 20, 32, 23, 66, 66, 24, 8, 4, 24, 24, 24, 24, 16, 48, 63, 63, 41, 73, 15, 49, 15, 24, 16, 39, 23, 64, 64, 23, 23, 23, 23, 4, 24, 47, 2, 4, 31, 53, 32, 32, 46, 16, 24, 24, 33, 44, 15, 15, 58, 17, 2, 19, 15, 42, 34, 42, 8, 26, 18, 5, 51, 23, 23, 31, 31, 15, 67, 68, 69, 6, 70, 71, 15, 7, 15, 74, nil, nil, 15, nil, nil, 24, 37, nil, 37, 20, nil, nil, 73, 62, 62, 62, nil, 20, nil, 20, nil, 20, nil, nil, 23, 6, 4, 20, 20, 41, nil, 35, 36, nil, 20, nil, 16, nil, 6, 59, 48, 20, nil, 24, 17, 24, 17, 6, 65, 65, 65, 65, 17, nil, 48, 39, 36, 36, nil, nil, nil, 42, nil, nil, nil, nil, 42, 15, 42, 15, nil, 33, nil, nil, nil, 15, 33, nil, nil, nil, nil, nil, 27, 8, nil, 33, nil, nil, nil, nil, nil, 73, nil, nil, nil, nil, 39, 8, 15, nil, nil, nil, 50, 17, 15, nil, nil, nil, 24, nil, nil, nil, 9, 24, nil, 16, nil, nil, nil, 4, nil, 17, 24, 17, nil, nil, 15, 23, 20, 20, nil, 62, 23, nil, 40, nil, 42, nil, nil, nil, nil, 23, nil, 42, 15, nil, 15, 6, 42, 24, nil, nil, nil, 6, nil, 15, 15, nil, nil, nil, nil, 27, 39, nil, nil, nil, 42, 20, 42, 9, nil, nil, 42, 20, nil, 20, 20, 43, nil, 42, nil, 5, nil, nil, nil, 15, 5, 9, nil, 9, nil, 39, nil, nil, 17, nil, nil, 73, 15, nil, 20, 27, nil, 20, nil, 15, 15, 20, nil, nil, nil, nil, nil, nil, 33, 5, nil, 15, nil, nil, nil, nil, nil, nil, 20, nil, nil, nil, nil, nil, nil, nil, nil, nil, 27, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 42, nil, nil, nil, nil, nil, 24, nil, nil, nil, nil, nil, nil, 42, nil, 9, nil, 5, nil, 17, nil, 42, nil, 17, 17, 23, nil, nil, nil, 42, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 42, nil, 15, nil, nil, 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, 42, nil, 17, 17, nil, nil, 17, 17, nil, nil, 15, 17, 9, 15, nil, 17, 9, 9, 17, nil, 15, nil, 17, 17, nil, 15, 15, 17, nil, 15, 15, nil, 60, nil, 15, nil, nil, nil, 15, nil, nil, 15, 60, nil, nil, 15, 15, nil, nil, nil, 15, nil, 60, 9, nil, nil, 9, nil, nil, nil, nil, 60, nil, 9, nil, nil, nil, nil, 9, 9, nil, nil, 9, 9, nil, nil, nil, 9, nil, nil, nil, 9, nil, nil, 9, nil, nil, nil, 9, 9, nil, nil, nil, 9, nil, nil, nil, 60, nil, nil, nil, 60, 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, 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, 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, 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, 25, 66, nil, -20, 2, 70, 46, -49, 64, nil, nil, nil, nil, nil, 21, -48, -2, 7, -71, -105, nil, nil, -5, -24, nil, 13, -85, nil, nil, nil, 29, -28, -61, 23, -52, 91, -85, nil, -22, -51, -40, -1, -83, -12, nil, -215, -161, -92, -271, -165, -335, nil, -200, nil, nil, nil, nil, -165, -236, 366, nil, -84, -162, -154, -58, -183, -122, -122, -123, -126, -126, nil, -72, -59 ] 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, 273, 34, 37, 2, nil, 62, 63, nil, nil, nil, 70, 71, 58, 60, nil, 110, 369, nil, 182, 183, 370, 338, 290, nil, 275, 269, 270, 147, 151, 155, 158, nil, nil, 166, 112, 115, 117, 119, 122, 125, 127, 130, 133, 136, 139, 143, 146, nil ] 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, 3, 145, :_reduce_183, 1, 148, :_reduce_184, 4, 148, :_reduce_185, 4, 148, :_reduce_186, 3, 148, :_reduce_187, 3, 148, :_reduce_188, 3, 148, :_reduce_189, 2, 148, :_reduce_190, 2, 148, :_reduce_191, 6, 148, :_reduce_192, 7, 148, :_reduce_193, 1, 149, :_reduce_194, 3, 149, :_reduce_195, 1, 150, :_reduce_196, 1, 150, :_reduce_197, 1, 151, :_reduce_198, 2, 151, :_reduce_199, 2, 151, :_reduce_200, 2, 151, :_reduce_201, 2, 151, :_reduce_202, 4, 151, :_reduce_203, 1, 152, :_reduce_204, 1, 152, :_reduce_205, 1, 152, :_reduce_206, 1, 152, :_reduce_207, 1, 152, :_reduce_208, 1, 152, :_reduce_209, 1, 153, :_reduce_210, 4, 153, :_reduce_211, 1, 154, :_reduce_212, 3, 154, :_reduce_213, 3, 154, :_reduce_214, 3, 154, :_reduce_215, 1, 155, :_reduce_216, 3, 155, :_reduce_217, 3, 155, :_reduce_218, 1, 156, :_reduce_219, 3, 156, :_reduce_220, 3, 156, :_reduce_221, 1, 157, :_reduce_222, 3, 157, :_reduce_223, 3, 157, :_reduce_224, 3, 157, :_reduce_225, 3, 157, :_reduce_226, 1, 158, :_reduce_227, 3, 158, :_reduce_228, 3, 158, :_reduce_229, 1, 159, :_reduce_230, 3, 159, :_reduce_231, 1, 160, :_reduce_232, 3, 160, :_reduce_233, 1, 161, :_reduce_234, 3, 161, :_reduce_235, 1, 162, :_reduce_236, 3, 162, :_reduce_237, 1, 163, :_reduce_238, 3, 163, :_reduce_239, 1, 164, :_reduce_240, 5, 164, :_reduce_241, 1, 133, :_reduce_242, 3, 133, :_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, 165, :_reduce_254, 1, 111, :_reduce_255, 3, 111, :_reduce_256, 1, 107, :_reduce_257, 1, 106, :_reduce_258, 1, 146, :_reduce_259, 1, 146, :_reduce_260, 1, 146, :_reduce_261, 1, 129, :_reduce_262, 1, 147, :_reduce_263 ] racc_reduce_n = 264 racc_shift_n = 459 racc_token_table = { false => 0, :error => 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_nt_base = 91 racc_use_result_var = true 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 ##### State transition tables end ##### # reduce 0 omitted module_eval(<<'.,.,', 'c.y', 9) def _reduce_1(val, _values, result) result = TranslationUnit.new_at(val[0].pos, NodeChain[val[0]]) result end .,., module_eval(<<'.,.,', 'c.y', 10) def _reduce_2(val, _values, result) result = val[0]; result.entities << val[1] result end .,., module_eval(<<'.,.,', 'c.y', 14) def _reduce_3(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 15) def _reduce_4(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 24) def _reduce_7(val, _values, result) result = [val[0]] result end .,., module_eval(<<'.,.,', 'c.y', 25) def _reduce_8(val, _values, result) result = val[0] << val[1] result end .,., module_eval(<<'.,.,', 'c.y', 31) def _reduce_9(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 32) def _reduce_10(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 33) def _reduce_11(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 34) def _reduce_12(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 35) def _reduce_13(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 36) def _reduce_14(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 48) def _reduce_19(val, _values, result) result = Block.new_at(val[0].pos, val[1]) result end .,., module_eval(<<'.,.,', 'c.y', 49) def _reduce_20(val, _values, result) result = Block.new_at(val[0].pos ) result end .,., module_eval(<<'.,.,', 'c.y', 53) def _reduce_21(val, _values, result) result = NodeChain[val[0]] result end .,., module_eval(<<'.,.,', 'c.y', 54) def _reduce_22(val, _values, result) result = val[0] << val[1] result end .,., module_eval(<<'.,.,', 'c.y', 58) def _reduce_23(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 59) def _reduce_24(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 63) def _reduce_25(val, _values, result) result = ExpressionStatement.new_at(val[0].pos, val[0]) result end .,., module_eval(<<'.,.,', 'c.y', 64) def _reduce_26(val, _values, result) result = ExpressionStatement.new_at(val[0].pos ) result end .,., module_eval(<<'.,.,', 'c.y', 68) def _reduce_27(val, _values, result) result = If .new_at(val[0].pos, val[2], val[4] ) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', 'c.y', 70) def _reduce_29(val, _values, result) result = Switch.new_at(val[0].pos, val[2], val[4] ) result end .,., module_eval(<<'.,.,', 'c.y', 74) def _reduce_30(val, _values, result) result = While.new_at(val[0].pos, val[2], val[4] ) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 91) def _reduce_44(val, _values, result) result = Goto .new_at(val[0].pos, val[1].val) result end .,., module_eval(<<'.,.,', 'c.y', 92) def _reduce_45(val, _values, result) result = Continue.new_at(val[0].pos ) result end .,., module_eval(<<'.,.,', 'c.y', 93) def _reduce_46(val, _values, result) result = Break .new_at(val[0].pos ) result end .,., module_eval(<<'.,.,', 'c.y', 94) def _reduce_47(val, _values, result) result = Return .new_at(val[0].pos, val[1] ) result end .,., module_eval(<<'.,.,', 'c.y', 95) def _reduce_48(val, _values, result) result = Return .new_at(val[0].pos ) result end .,., module_eval(<<'.,.,', 'c.y', 97) def _reduce_49(val, _values, result) result = Goto .new_at(val[0].pos, val[1].name) result end .,., module_eval(<<'.,.,', 'c.y', 103) def _reduce_50(val, _values, result) result = make_declaration(val[0][0], val[0][1], val[1]) result end .,., module_eval(<<'.,.,', 'c.y', 104) def _reduce_51(val, _values, result) result = make_declaration(val[0][0], val[0][1], NodeArray[]) result end .,., module_eval(<<'.,.,', 'c.y', 108) def _reduce_52(val, _values, result) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval(<<'.,.,', 'c.y', 109) def _reduce_53(val, _values, result) result = [val[0][0], [val[0][1]]] result end .,., module_eval(<<'.,.,', 'c.y', 110) def _reduce_54(val, _values, result) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval(<<'.,.,', 'c.y', 111) def _reduce_55(val, _values, result) result = [val[0][0], [val[0][1]]] result end .,., module_eval(<<'.,.,', 'c.y', 112) def _reduce_56(val, _values, result) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval(<<'.,.,', 'c.y', 113) def _reduce_57(val, _values, result) result = [val[0][0], [val[0][1]]] result end .,., module_eval(<<'.,.,', 'c.y', 114) def _reduce_58(val, _values, result) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval(<<'.,.,', 'c.y', 115) def _reduce_59(val, _values, result) result = [val[0][0], [val[0][1]]] result end .,., module_eval(<<'.,.,', 'c.y', 119) def _reduce_60(val, _values, result) result = NodeArray[val[0]] result end .,., module_eval(<<'.,.,', 'c.y', 120) def _reduce_61(val, _values, result) result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'c.y', 124) def _reduce_62(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 125) def _reduce_63(val, _values, result) val[0].init = val[2]; result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 129) def _reduce_64(val, _values, result) result = [val[0].pos, :typedef ] result end .,., module_eval(<<'.,.,', 'c.y', 130) def _reduce_65(val, _values, result) result = [val[0].pos, :extern ] result end .,., module_eval(<<'.,.,', 'c.y', 131) def _reduce_66(val, _values, result) result = [val[0].pos, :static ] result end .,., module_eval(<<'.,.,', 'c.y', 132) def _reduce_67(val, _values, result) result = [val[0].pos, :auto ] result end .,., module_eval(<<'.,.,', 'c.y', 133) def _reduce_68(val, _values, result) result = [val[0].pos, :register] result end .,., module_eval(<<'.,.,', 'c.y', 137) def _reduce_69(val, _values, result) result = [val[0].pos, :void ] result end .,., module_eval(<<'.,.,', 'c.y', 138) def _reduce_70(val, _values, result) result = [val[0].pos, :char ] result end .,., module_eval(<<'.,.,', 'c.y', 139) def _reduce_71(val, _values, result) result = [val[0].pos, :short ] result end .,., module_eval(<<'.,.,', 'c.y', 140) def _reduce_72(val, _values, result) result = [val[0].pos, :int ] result end .,., module_eval(<<'.,.,', 'c.y', 141) def _reduce_73(val, _values, result) result = [val[0].pos, :long ] result end .,., module_eval(<<'.,.,', 'c.y', 142) def _reduce_74(val, _values, result) result = [val[0].pos, :float ] result end .,., module_eval(<<'.,.,', 'c.y', 143) def _reduce_75(val, _values, result) result = [val[0].pos, :double ] result end .,., module_eval(<<'.,.,', 'c.y', 144) def _reduce_76(val, _values, result) result = [val[0].pos, :signed ] result end .,., module_eval(<<'.,.,', 'c.y', 145) def _reduce_77(val, _values, result) result = [val[0].pos, :unsigned ] result end .,., module_eval(<<'.,.,', 'c.y', 146) def _reduce_78(val, _values, result) result = [val[0].pos, :_Bool ] result end .,., module_eval(<<'.,.,', 'c.y', 147) def _reduce_79(val, _values, result) result = [val[0].pos, :_Complex ] result end .,., module_eval(<<'.,.,', 'c.y', 148) def _reduce_80(val, _values, result) result = [val[0].pos, :_Imaginary] result end .,., module_eval(<<'.,.,', 'c.y', 149) def _reduce_81(val, _values, result) result = [val[0].pos, val[0] ] result end .,., module_eval(<<'.,.,', 'c.y', 150) def _reduce_82(val, _values, result) result = [val[0].pos, val[0] ] result end .,., module_eval(<<'.,.,', 'c.y', 151) def _reduce_83(val, _values, result) result = [val[0].pos, val[0] ] result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 164) def _reduce_89(val, _values, result) result = [val[0].pos, Struct] result end .,., module_eval(<<'.,.,', 'c.y', 165) def _reduce_90(val, _values, result) result = [val[0].pos, Union ] result end .,., module_eval(<<'.,.,', 'c.y', 169) def _reduce_91(val, _values, result) result = NodeArray[val[0]] result end .,., module_eval(<<'.,.,', 'c.y', 170) def _reduce_92(val, _values, result) val[0] << val[1]; result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 174) def _reduce_93(val, _values, result) result = make_declaration(val[0][0], val[0][1], val[1]) result end .,., module_eval(<<'.,.,', 'c.y', 178) def _reduce_94(val, _values, result) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval(<<'.,.,', 'c.y', 179) def _reduce_95(val, _values, result) result = [val[0][0], [val[0][1]]] result end .,., module_eval(<<'.,.,', 'c.y', 180) def _reduce_96(val, _values, result) val[1][1] << val[0][1]; result = val[1] result end .,., module_eval(<<'.,.,', 'c.y', 181) def _reduce_97(val, _values, result) result = [val[0][0], [val[0][1]]] result end .,., module_eval(<<'.,.,', 'c.y', 185) def _reduce_98(val, _values, result) result = NodeArray[val[0]] result end .,., module_eval(<<'.,.,', 'c.y', 186) def _reduce_99(val, _values, result) result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'c.y', 190) def _reduce_100(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 191) def _reduce_101(val, _values, result) result = val[0]; val[0].num_bits = val[2] result end .,., module_eval(<<'.,.,', 'c.y', 192) def _reduce_102(val, _values, result) result = Declarator.new_at(val[0].pos, :num_bits => val[1]) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', 'c.y', 197) def _reduce_104(val, _values, result) result = Enum.new_at(val[0].pos, nil , val[2]) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', 'c.y', 199) def _reduce_106(val, _values, result) result = Enum.new_at(val[0].pos, nil , val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 200) def _reduce_107(val, _values, result) result = Enum.new_at(val[0].pos, val[1].val, nil ) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 204) def _reduce_110(val, _values, result) result = Enum.new_at(val[0].pos, val[1].name, nil ) result end .,., module_eval(<<'.,.,', 'c.y', 208) def _reduce_111(val, _values, result) result = NodeArray[val[0]] result end .,., module_eval(<<'.,.,', 'c.y', 209) def _reduce_112(val, _values, result) result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'c.y', 213) def _reduce_113(val, _values, result) result = Enumerator.new_at(val[0].pos, val[0].val, nil ) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', 'c.y', 218) def _reduce_115(val, _values, result) result = [val[0].pos, :const ] result end .,., module_eval(<<'.,.,', 'c.y', 219) def _reduce_116(val, _values, result) result = [val[0].pos, :restrict] result end .,., module_eval(<<'.,.,', 'c.y', 220) def _reduce_117(val, _values, result) result = [val[0].pos, :volatile] result end .,., module_eval(<<'.,.,', 'c.y', 224) def _reduce_118(val, _values, result) result = [val[0].pos, :inline] result end .,., module_eval(<<'.,.,', 'c.y', 228) def _reduce_119(val, _values, result) result = add_decl_type(val[1], val[0]) result end .,., module_eval(<<'.,.,', 'c.y', 229) def _reduce_120(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 233) def _reduce_121(val, _values, result) result = Declarator.new_at(val[0].pos, nil, val[0].val) result end .,., module_eval(<<'.,.,', 'c.y', 234) def _reduce_122(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 251) def _reduce_136(val, _values, result) result = Pointer.new_at(val[0].pos) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 257) def _reduce_139(val, _values, result) result = [val[0][0], [val[0][1]]] result end .,., module_eval(<<'.,.,', 'c.y', 258) def _reduce_140(val, _values, result) val[0][1] << val[1][1]; result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 262) def _reduce_141(val, _values, result) result = [val[0], false] result end .,., module_eval(<<'.,.,', 'c.y', 263) def _reduce_142(val, _values, result) result = [val[0], true ] result end .,., module_eval(<<'.,.,', 'c.y', 267) def _reduce_143(val, _values, result) result = NodeArray[val[0]] result end .,., module_eval(<<'.,.,', 'c.y', 268) def _reduce_144(val, _values, result) result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'c.y', 272) 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(<<'.,.,', '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(<<'.,.,', 'c.y', 275) def _reduce_147(val, _values, result) result = make_parameter(val[0][0], val[0][1], nil , nil ) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 285) def _reduce_151(val, _values, result) result = make_direct_type(val[0][0], val[0][1]) result end .,., module_eval(<<'.,.,', 'c.y', 289) def _reduce_152(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 290) def _reduce_153(val, _values, result) val[1].direct_type = val[0]; result = val[1] result end .,., module_eval(<<'.,.,', 'c.y', 291) def _reduce_154(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 295) def _reduce_155(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 298) def _reduce_158(val, _values, result) result = Array.new_at(val[0].pos, nil, val[1]) result end .,., module_eval(<<'.,.,', 'c.y', 299) def _reduce_159(val, _values, result) result = Array.new_at(val[0].pos ) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', 'c.y', 301) def _reduce_161(val, _values, result) result = Array.new_at(val[0].pos) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 305) def _reduce_165(val, _values, result) result = Function.new_at(val[0].pos ) result end .,., module_eval(<<'.,.,', 'c.y', 311) def _reduce_166(val, _values, result) result = CustomType.new_at(val[0].pos, val[0].val) result end .,., module_eval(<<'.,.,', 'c.y', 315) def _reduce_167(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 316) def _reduce_168(val, _values, result) result = CompoundLiteral.new_at(val[0].pos, nil, val[1]) result end .,., module_eval(<<'.,.,', 'c.y', 317) def _reduce_169(val, _values, result) result = CompoundLiteral.new_at(val[0].pos, nil, val[1]) result end .,., module_eval(<<'.,.,', '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(<<'.,.,', 'c.y', 322) def _reduce_171(val, _values, result) result = NodeArray[MemberInit.new_at(val[0].pos, nil , val[0])] result end .,., module_eval(<<'.,.,', '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(<<'.,.,', '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(<<'.,.,', 'c.y', 328) def _reduce_174(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 332) def _reduce_175(val, _values, result) result = val[0]; val[0][1] = NodeArray[val[0][1]] result end .,., module_eval(<<'.,.,', 'c.y', 333) def _reduce_176(val, _values, result) result = val[0]; val[0][1] << val[1][1] result end .,., module_eval(<<'.,.,', 'c.y', 337) def _reduce_177(val, _values, result) result = [val[1].pos, val[1] ] result end .,., module_eval(<<'.,.,', '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(<<'.,.,', 'c.y', 344) def _reduce_179(val, _values, result) result = Variable.new_at(val[0].pos, val[0].val) result end .,., module_eval(<<'.,.,', 'c.y', 345) def _reduce_180(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 346) def _reduce_181(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 348) def _reduce_182(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'c.y', 349) def _reduce_183(val, _values, result) block_expressions_enabled? or parse_error val[0].pos, "compound statement found where expression expected" result = BlockExpression.new(val[1]); result.pos = val[0].pos result end .,., module_eval(<<'.,.,', 'c.y', 354) def _reduce_184(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 355) def _reduce_185(val, _values, result) result = Index .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 356) def _reduce_186(val, _values, result) result = Call .new_at(val[0].pos, val[0], val[2] ) result end .,., module_eval(<<'.,.,', 'c.y', 357) def _reduce_187(val, _values, result) result = Call .new_at(val[0].pos, val[0], NodeArray[]) result end .,., module_eval(<<'.,.,', 'c.y', 358) def _reduce_188(val, _values, result) result = Dot .new_at(val[0].pos, val[0], Member.new(val[2].val)) result end .,., module_eval(<<'.,.,', 'c.y', 359) def _reduce_189(val, _values, result) result = Arrow .new_at(val[0].pos, val[0], Member.new(val[2].val)) result end .,., module_eval(<<'.,.,', 'c.y', 360) def _reduce_190(val, _values, result) result = PostInc .new_at(val[0].pos, val[0] ) result end .,., module_eval(<<'.,.,', 'c.y', 361) def _reduce_191(val, _values, result) result = PostDec .new_at(val[0].pos, val[0] ) result end .,., module_eval(<<'.,.,', 'c.y', 362) def _reduce_192(val, _values, result) result = CompoundLiteral.new_at(val[0].pos, val[1], val[4]) result end .,., module_eval(<<'.,.,', 'c.y', 363) def _reduce_193(val, _values, result) result = CompoundLiteral.new_at(val[0].pos, val[1], val[4]) result end .,., module_eval(<<'.,.,', 'c.y', 367) def _reduce_194(val, _values, result) result = NodeArray[val[0]] result end .,., module_eval(<<'.,.,', 'c.y', 368) def _reduce_195(val, _values, result) result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'c.y', 372) def _reduce_196(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 373) def _reduce_197(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 377) def _reduce_198(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 378) def _reduce_199(val, _values, result) result = PreInc.new_at(val[0].pos, val[1]) result end .,., module_eval(<<'.,.,', 'c.y', 379) def _reduce_200(val, _values, result) result = PreDec.new_at(val[0].pos, val[1]) result end .,., module_eval(<<'.,.,', 'c.y', 380) def _reduce_201(val, _values, result) result = val[0][0].new_at(val[0][1], val[1]) result end .,., module_eval(<<'.,.,', 'c.y', 381) def _reduce_202(val, _values, result) result = Sizeof.new_at(val[0].pos, val[1]) result end .,., module_eval(<<'.,.,', 'c.y', 382) def _reduce_203(val, _values, result) result = Sizeof.new_at(val[0].pos, val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 386) def _reduce_204(val, _values, result) result = [Address , val[0].pos] result end .,., module_eval(<<'.,.,', 'c.y', 387) def _reduce_205(val, _values, result) result = [Dereference, val[0].pos] result end .,., module_eval(<<'.,.,', 'c.y', 388) def _reduce_206(val, _values, result) result = [Positive , val[0].pos] result end .,., module_eval(<<'.,.,', 'c.y', 389) def _reduce_207(val, _values, result) result = [Negative , val[0].pos] result end .,., module_eval(<<'.,.,', 'c.y', 390) def _reduce_208(val, _values, result) result = [BitNot , val[0].pos] result end .,., module_eval(<<'.,.,', 'c.y', 391) def _reduce_209(val, _values, result) result = [Not , val[0].pos] result end .,., module_eval(<<'.,.,', 'c.y', 395) def _reduce_210(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 396) def _reduce_211(val, _values, result) result = Cast.new_at(val[0].pos, val[1], val[3]) result end .,., module_eval(<<'.,.,', 'c.y', 400) def _reduce_212(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 401) def _reduce_213(val, _values, result) result = Multiply.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 402) def _reduce_214(val, _values, result) result = Divide .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 403) def _reduce_215(val, _values, result) result = Mod .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 407) def _reduce_216(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 408) def _reduce_217(val, _values, result) result = Add .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 409) def _reduce_218(val, _values, result) result = Subtract.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 413) def _reduce_219(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 414) def _reduce_220(val, _values, result) result = ShiftLeft .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 415) def _reduce_221(val, _values, result) result = ShiftRight.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 419) def _reduce_222(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 420) def _reduce_223(val, _values, result) result = Less.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 421) def _reduce_224(val, _values, result) result = More.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 422) def _reduce_225(val, _values, result) result = LessOrEqual.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 423) def _reduce_226(val, _values, result) result = MoreOrEqual.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 427) def _reduce_227(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 428) def _reduce_228(val, _values, result) result = Equal .new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 429) def _reduce_229(val, _values, result) result = NotEqual.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 433) def _reduce_230(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 434) def _reduce_231(val, _values, result) result = BitAnd.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 438) def _reduce_232(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 439) def _reduce_233(val, _values, result) result = BitXor.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 443) def _reduce_234(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 444) def _reduce_235(val, _values, result) result = BitOr.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 448) def _reduce_236(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 449) def _reduce_237(val, _values, result) result = And.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 453) def _reduce_238(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 454) def _reduce_239(val, _values, result) result = Or.new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 458) def _reduce_240(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 459) def _reduce_241(val, _values, result) result = Conditional.new_at(val[0].pos, val[0], val[2], val[4]) result end .,., module_eval(<<'.,.,', 'c.y', 463) def _reduce_242(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 464) def _reduce_243(val, _values, result) result = val[1].new_at(val[0].pos, val[0], val[2]) result end .,., module_eval(<<'.,.,', 'c.y', 468) def _reduce_244(val, _values, result) result = Assign result end .,., module_eval(<<'.,.,', 'c.y', 469) def _reduce_245(val, _values, result) result = MultiplyAssign result end .,., module_eval(<<'.,.,', 'c.y', 470) def _reduce_246(val, _values, result) result = DivideAssign result end .,., module_eval(<<'.,.,', 'c.y', 471) def _reduce_247(val, _values, result) result = ModAssign result end .,., module_eval(<<'.,.,', 'c.y', 472) def _reduce_248(val, _values, result) result = AddAssign result end .,., module_eval(<<'.,.,', 'c.y', 473) def _reduce_249(val, _values, result) result = SubtractAssign result end .,., module_eval(<<'.,.,', 'c.y', 474) def _reduce_250(val, _values, result) result = ShiftLeftAssign result end .,., module_eval(<<'.,.,', 'c.y', 475) def _reduce_251(val, _values, result) result = ShiftRightAssign result end .,., module_eval(<<'.,.,', 'c.y', 476) def _reduce_252(val, _values, result) result = BitAndAssign result end .,., module_eval(<<'.,.,', 'c.y', 477) def _reduce_253(val, _values, result) result = BitXorAssign result end .,., module_eval(<<'.,.,', 'c.y', 478) def _reduce_254(val, _values, result) result = BitOrAssign result end .,., module_eval(<<'.,.,', 'c.y', 482) def _reduce_255(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 484) def _reduce_256(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(<<'.,.,', 'c.y', 504) def _reduce_257(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 519) def _reduce_258(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 523) def _reduce_259(val, _values, result) result = val[0].val; result.pos = val[0].pos result end .,., module_eval(<<'.,.,', 'c.y', 524) def _reduce_260(val, _values, result) result = val[0].val; result.pos = val[0].pos result end .,., module_eval(<<'.,.,', 'c.y', 527) def _reduce_261(val, _values, result) result = val[0].val; result.pos = val[0].pos result end .,., module_eval(<<'.,.,', 'c.y', 531) def _reduce_262(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'c.y', 535) def _reduce_263(val, _values, result) result = val[0].val; result.pos = val[0].pos result end .,., def _reduce_none(val, _values, result) val[0] end end # class Parser end # module C