# # DO NOT MODIFY!!!! # This file is automatically generated by Racc 1.4.9 # from Racc grammer file "". # require 'racc/parser.rb' class C_parser < Racc::Parser module_eval(<<'...end C_parser.y.rb/module_eval...', 'C_parser.y.rb', 784) RESERVED = { # keyword 'typedef' => :TYPEDEF, 'struct' => :STRUCT, 'union' => :UNION, 'sizeof' => :SIZEOF, 'throw' => :THROW, # specifier # types 'void' => :VOID, 'char' => :CHAR, 'short' => :SHORT, 'volatile'=> :VOLATILE, 'restrict'=> :RESTRICT, 'const' => :CONST, 'extern' => :EXTERN, 'long' => :LONG, 'float' => :FLOAT, 'double' => :DOUBLE, 'signed' => :SIGNED, 'unsigned'=> :UNSIGNED, 'int' => :INT, 'enum' => :ENUM, 'if' => :IF, 'else' => :ELSE, 'while' => :WHILE, 'do' => :DO, 'for' => :FOR, 'switch' => :SWITCH, 'case' => :CASE, 'default' => :DEFAULT, 'goto' => :GOTO, 'continue' => :CONTINUE, 'break' => :BREAK, 'return' => :RETURN, '__inline__' => :__INLINE__, 'inline' => :INLINE, '__inline' => :__INLINE, 'Inline' => :CINLINE, # inline starting with Capital letter 'static' => :STATIC, 'register' => :REGISTER, 'auto' => :AUTO, '__extension__' => :EXTENSION, '__asm__' => :_ASM, 'asm' => :_ASM } @@generator_nest = -1 @@generator_stack = [] @@current_locale = [] def finalize # mikan Namespace.pop Celltype.pop Cell.pop CompositeCelltype.pop Region.pop end def set_plugin( plugin ) @plugin = plugin end def self.get_plugin @@generator_stack[@@generator_nest].get_plugin end def get_plugin @plugin end def parse(files) # mikan Namespace.push Celltype.push Cell.push CompositeCelltype.push Region.push @@generator_nest += 1 @@generator_stack[@@generator_nest] = self @b_no_type_name = false begin @q = [] comment = false # b_asm = false # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策 TECS_LANG::set_kcode_binary # 800U, 0xffLL など (整数リテラルに共通の修飾子) integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?" files.each {|file| lineno = 1 begin #2.0 IO.foreach(file) {|line| TECSIO.foreach(file) {|line| col = 1 line.rstrip! until line.empty? if comment case line # コメント終了 when /\A\*\// comment = false when /\A./ ; end else case line # 空白、プリプロセスディレクティブ when /\A\s+/ ; # 識別子 when /\A[a-zA-Z_]\w*/ word = $& @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)] # 16 進数定数 when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/ @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)] # 8 進数定数 when /\A0[0-7]+#{integer_qualifier}/ @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)] # 浮動小数定数 when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/ @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)] # 整数定数 when /\A\d+#{integer_qualifier}/ # when /\A\d+/ @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)] # 文字 when /\A'(?:[^'\\]|\\.)'/ @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)] # 文字列 # "#include #include #include \"../systask/logtask.cfg\" 最後の " 忘れ)で無限ループ # when /\A"(?:[^"\\]+|\\.)*"/ when /\A"(?:[^"\\]|\\.)*"/ # これはうまく行くようだ @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)] # 行コメント when /\A\/\/.*$/ # 読み飛ばすだけ # コメント開始 when /\A\/\*/ comment = true when /\A>>=/, /\A<<=/, /\A>>/, /\A<=/, /\A<=/, /\A\->/, /\A\+\+/, /\A\-\-/ @q << [$&, Token.new($&, file, lineno, col)] when /\A\|\|/, /\A\&\&/ @q << [$&, Token.new($&, file, lineno, col)] when /\A./ @q << [$&, Token.new($&, file, lineno, col)] else raise end end line = $' col += $&.length end lineno += 1 } rescue => evar Generator.error( "B1002 while open or reading \'$1\'" , file ) print_exception( evar ) end } # 終了の印 @q << nil @yydebug = true do_parse ensure @@generator_nest -= 1 TECS_LANG::reset_kcode end end def next_token token = @q.shift if token then @@current_locale[@@generator_nest] = token[1].locale case token[1].val when ";", ":", ",", "(", ")", "{", "}" set_no_type_name false when ".", "->" set_no_type_name true end # TYPE_NAME トークンへ置き換え if @b_no_type_name == false if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then token[0] = :TYPE_NAME locale = @@current_locale[@@generator_nest] #print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}: type_name'\n" ) end end if $debug then # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生) locale = @@current_locale[@@generator_nest] if token then print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" ) else print( "#{locale[0]}: line #{locale[1]} : EOF\n" ) end end end token end def on_error(t, v, vstack) if v == "$" then Generator.error( "B1003 Unexpected EOF" ) else Generator.error( "B1004 syntax error near \'$1\'" , v.val ) end end def self.current_locale @@current_locale[ @@generator_nest ] end @@n_error = 0 @@n_warning = 0 @@n_info = 0 # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切) def self.error( msg ) @@n_error += 1 locale = @@current_locale[ @@generator_nest ] if locale then Console.puts "#{locale[0]}:#{locale[1]}: error: #{msg}" else Console.puts "error: #{msg}" end end # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切) def self.warning( msg ) @@n_warning += 1 locale = @@current_locale[ @@generator_nest ] Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}" end # このメソッドは構文解析、意味解析からのみ呼出し可 def self.info( msg ) @@n_info += 1 locale = @@current_locale[ @@generator_nest ] Console.puts "info: #{locale[0]}: line #{locale[1]} #{msg}" end def self.get_n_error @@n_error end def self.get_n_warning @@n_warning end def self.get_nest @@generator_nest end def set_no_type_name b_no_type_name locale = @@current_locale[ @@generator_nest ] #print "b_no_type_name=#{b_no_type_name} #{locale[0]}: line #{locale[1]}\n" @b_no_type_name = b_no_type_name end ...end C_parser.y.rb/module_eval... ##### State transition tables begin ### clist = [ '111,112,113,114,115,117,294,118,56,298,55,163,54,123,124,82,54,262,122', '125,126,127,128,129,130,111,112,113,114,115,117,217,118,271,391,101', '163,91,123,124,82,271,271,122,125,126,127,128,129,130,56,70,171,72,82', '69,397,71,80,32,33,34,224,309,271,223,216,226,84,227,228,229,84,392', '101,325,272,171,298,312,80,164,165,172,393,173,174,175,176,177,178,179', '180,149,181,101,218,79,308,369,388,32,33,34,265,266,164,165,172,73,173', '174,175,176,177,178,179,180,149,181,111,112,113,114,115,117,384,118', '32,33,34,163,78,123,124,82,440,402,122,125,126,127,128,129,130,55,219', '271,271,383,101,54,332,248,325,387,55,298,249,250,56,382,54,111,112', '113,114,115,117,56,118,56,171,331,163,395,123,124,82,276,210,122,125', '126,127,128,129,130,420,55,378,210,248,377,396,54,330,249,250,393,92', '164,165,172,56,173,174,175,176,177,178,179,180,149,181,171,9,10,11,12', '13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,355,356', '213,164,165,172,204,173,174,175,176,177,178,179,180,149,181,111,112', '113,114,115,117,404,118,93,378,203,163,377,123,124,82,193,271,122,125', '126,127,128,129,130,111,112,113,114,115,117,290,118,101,86,55,163,85', '123,124,82,54,291,122,125,126,127,128,129,130,56,357,171,13,14,15,16', '17,18,19,20,21,22,26,28,30,31,32,33,34,248,86,322,438,85,249,250,171', '434,435,370,164,165,172,271,173,174,175,176,177,178,179,180,149,181', '259,260,261,321,255,256,257,258,315,316,262,164,165,172,271,173,174', '175,176,177,178,179,180,149,181,111,112,113,114,115,117,403,118,317', '318,263,163,264,123,124,82,320,271,122,125,126,127,128,129,130,13,14', '15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,437,111,112,113,114,115', '117,360,118,400,171,271,163,368,123,124,82,166,103,122,125,126,127,128', '129,130,102,55,255,256,257,258,310,54,255,256,257,258,405,164,165,172', '56,173,174,175,176,177,178,179,180,149,181,171,9,10,11,12,13,14,15,16', '17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,259,260,301,164,165', '172,300,173,174,175,176,177,178,179,180,149,181,111,112,113,114,115', '117,408,118,253,254,292,163,409,123,124,82,253,254,122,125,126,127,128', '129,130,111,112,113,114,115,117,410,118,253,254,55,163,289,123,124,82', '54,288,122,125,126,127,128,129,130,56,415,171,13,14,15,16,17,18,19,20', '21,22,26,28,30,31,32,33,34,253,254,253,254,251,252,261,171,211,212,285', '164,165,172,284,173,174,175,176,177,178,179,180,149,181,237,238,239', '240,241,242,243,244,245,246,247,164,165,172,283,173,174,175,176,177', '178,179,180,149,181,111,112,113,114,115,117,282,118,251,252,389,163', '389,123,124,82,251,252,122,125,126,127,128,129,130,111,112,113,114,115', '117,101,118,67,82,55,163,64,123,124,82,54,63,122,125,126,127,128,129', '130,56,55,171,55,55,294,280,54,298,54,54,54,279,430,431,432,56,433,56', '56,56,365,436,278,263,275,264,171,273,270,48,164,165,172,444,173,174', '175,176,177,178,179,180,149,181,269,3,,,,,,,,,,164,165,172,,173,174', '175,176,177,178,179,180,149,181,111,112,113,114,115,117,,118,,,,163', ',123,124,82,,,122,125,126,127,128,129,130,111,112,113,114,115,117,,118', ',,,148,,123,124,,,,122,125,126,127,128,129,130,,,171,111,112,113,114', '115,117,,118,,,,148,,123,124,,,,122,125,126,127,128,129,130,,,,164,165', '172,,173,174,175,176,177,178,179,180,149,181,,,,,,,111,112,113,114,115', '117,,118,,411,,148,,123,124,,,149,122,125,126,127,128,129,130,,,,111', '112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129', '130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127', '128,129,130,,,171,,,,,,,,,,,,,149,,111,112,113,114,115,117,,118,,,171', '148,,123,124,,,,122,125,126,127,128,129,130,,149,,,,,,,,111,112,113', '114,115,117,,118,,,,148,,123,124,146,398,149,122,125,126,127,128,129', '130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127', '128,129,130,111,112,113,114,115,117,,118,,149,,148,,123,124,389,,,122', '125,126,127,128,129,130,,,,147,,,111,112,113,114,115,117,,118,,,,148', '149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,', '118,,379,,148,149,123,124,,,,122,125,126,127,128,129,130,,,,,,,,,,,', ',149,,,,,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126', '127,128,129,130,,149,,,,,,,,,,,,,,,,,,,,,,,,,149,171,9,10,11,12,13,14', '15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,111,112,113', '114,115,117,,118,,,,148,,123,124,149,,,122,125,126,127,128,129,130,111', '112,113,114,115,117,,118,,,,148,,123,124,146,,,122,125,126,127,128,129', '130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127', '128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122', '125,126,127,128,129,130,,,147,,,111,112,113,114,115,117,,118,,,,148', '149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,', '118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113,114', '115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,111,112', '113,114,115,117,,118,,,,148,,123,124,146,,149,122,125,126,127,128,129', '130,111,112,113,114,115,117,427,118,,,,148,,123,124,,,149,122,125,126', '127,128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149', '122,125,126,127,128,129,130,,,147,,,111,112,113,114,115,117,,118,,185', ',148,149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115', '117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112', '113,114,115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130', '111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128', '129,130,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126', '127,128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149', '122,125,126,127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123', '124,,,149,122,125,126,127,128,129,130,111,112,113,114,115,117,,118,', ',,148,,123,124,,,149,122,125,126,127,128,129,130,,111,112,113,114,115', '117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113', '114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111', '112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129', '130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126', '127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122', '125,126,127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123,124', ',,149,122,125,126,127,128,129,130,,111,112,113,114,115,117,,118,,,,148', ',123,124,,,149,122,125,126,127,128,129,130,111,112,113,114,115,117,', '118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113,114', '115,117,,118,,,,148,,123,124,146,,149,122,125,126,127,128,129,130,,111', '112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129', '130,,,,,,,,,,,,,,,,,,149,,,,,,,,,,147,,,111,112,113,114,115,117,,118', ',,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113,114,115', '117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,,,,,,13', '14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114,115', '117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,,111,112', '113,114,115,231,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130', '111,112,113,114,115,233,,118,,,,148,,123,124,,,,122,125,126,127,128', '129,130,111,112,113,114,115,233,,118,,,,148,,123,124,,,149,122,125,126', '127,128,129,130,,,,,,,,,,,,,111,112,113,114,115,117,149,118,,,,148,', '123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,149,118', ',,,148,,123,124,,,,122,125,126,127,128,129,130,,,,,,,149,13,14,15,16', '17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114,115,117,,118', ',,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113,114,115', '117,327,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,,,,,,', ',13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114', '115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112', '113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130', '111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127,128', '129,130,,111,112,113,114,115,117,429,118,,,,148,,123,124,,,149,122,125', '126,127,128,129,130,,287,,,,111,112,113,114,115,117,,118,,,,148,149', '123,124,146,442,,122,125,126,127,128,129,130,111,112,113,114,115,117', ',118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113', '114,115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,', ',147,,,,,,,,,,,,,,46,149,,,,,,,,,,,,,,,,,,,,,,,,,149,,,46,,,,,,,,,,', ',,,,,,,,,,,,149,45,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30', '31,32,33,34,35,36,37,38,,,47,45,9,10,11,12,13,14,15,16,17,18,19,20,21', '22,26,28,30,31,32,33,34,35,36,37,38,,41,47,294,375,,298,,,54,,,,,,,', ',56,,,,,,,,,,325,375,,298,,,,,,,,,,,,56,,,,,,,,9,10,11,12,13,14,15,16', '17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14', '15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,188,,,,,192', ',,,,,,,,,,,,,,,,,,,413,,,,,,,,,,,,,,,,,,,,,,9,10,11,12,13,14,15,16,17', '18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15', '16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,371,9,10,11,12', '13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,,,,,', '205,,,,,,,,,,,,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31', '32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28', '30,31,32,33,34,35,36,37,38,307,,,,,,,,,,,,,,,,,,,,,,,,,381,,,,,,,,,', ',,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36', '37,38,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34', '35,36,37,38,302,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31', '32,33,34,35,36,37,38,,,,,,,,,,,,9,10,11,12,13,14,15,16,17,18,19,20,21', '22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17,18,19', '20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17', '18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15', '16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13', '14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11', '12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9', '10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37', '38' ] racc_action_table = arr = ::Array.new(3198, 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 = [ '440,440,440,440,440,440,293,440,56,293,52,440,293,440,440,440,52,139', '440,440,440,440,440,440,440,438,438,438,438,438,438,106,438,354,326', '103,438,65,438,438,438,151,326,438,438,438,438,438,438,438,88,29,440', '31,51,29,354,31,109,56,56,56,120,207,286,120,106,120,293,120,120,120', '52,328,212,324,151,438,324,212,51,440,440,440,328,440,440,440,440,440', '440,440,440,440,440,318,110,49,207,286,318,88,88,88,142,142,438,438', '438,31,438,438,438,438,438,438,438,438,438,438,436,436,436,436,436,436', '304,436,120,120,120,436,49,436,436,436,428,362,436,436,436,436,436,436', '436,98,116,428,362,304,316,98,227,340,222,316,309,222,340,340,98,304', '309,167,167,167,167,167,167,222,167,309,436,226,167,333,167,167,167', '167,98,167,167,167,167,167,167,167,394,4,297,309,339,297,334,4,225,339', '339,394,66,436,436,436,4,436,436,436,436,436,436,436,436,436,436,167', '167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167', '167,167,167,167,167,167,167,167,267,267,101,167,167,167,95,167,167,167', '167,167,167,167,167,167,167,429,429,429,429,429,429,364,429,68,373,94', '429,373,429,429,429,87,364,429,429,429,429,429,429,429,427,427,427,427', '427,427,187,427,71,83,217,427,83,427,427,427,217,187,427,427,427,427', '427,427,427,217,269,429,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75', '75,75,133,53,221,426,53,133,133,427,418,418,291,429,429,429,426,429', '429,429,429,429,429,429,429,429,429,137,137,350,220,136,136,136,136', '214,214,351,427,427,427,220,427,427,427,427,427,427,427,427,427,427', '175,175,175,175,175,175,363,175,215,215,352,175,353,175,175,175,218', '363,175,175,175,175,175,175,175,76,76,76,76,76,76,76,76,76,76,76,76', '76,76,76,76,76,425,82,82,82,82,82,82,274,82,357,175,425,82,283,82,82', '82,82,73,82,82,82,82,82,82,82,72,201,347,347,347,347,209,201,348,348', '348,348,365,175,175,175,201,175,175,175,175,175,175,175,175,175,175', '82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82', '82,82,82,349,349,198,82,82,82,197,82,82,82,82,82,82,82,82,82,82,273', '273,273,273,273,273,371,273,135,135,189,273,374,273,273,273,346,346', '273,273,273,273,273,273,273,404,404,404,404,404,404,376,404,345,345', '79,404,186,404,404,404,79,184,404,404,404,404,404,404,404,79,380,273', '47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,344,344,343,343,342', '342,138,404,99,99,179,273,273,273,178,273,273,273,273,273,273,273,273', '273,273,131,131,131,131,131,131,131,131,131,131,131,404,404,404,177', '404,404,404,404,404,404,404,404,404,404,402,402,402,402,402,402,176', '402,341,341,395,402,396,402,402,402,134,134,402,402,402,402,402,402', '402,275,275,275,275,275,275,102,275,27,403,77,275,25,275,275,275,77', '23,275,275,275,275,275,275,275,77,55,402,152,384,191,174,55,191,152', '384,191,173,408,412,414,55,416,152,384,191,281,422,172,140,165,141,275', '163,149,3,402,402,402,437,402,402,402,402,402,402,402,402,402,402,147', '1,,,,,,,,,,275,275,275,,275,275,275,275,275,275,275,275,275,275,360', '360,360,360,360,360,,360,,,,360,,360,360,360,,,360,360,360,360,360,360', '360,249,249,249,249,249,249,,249,,,,249,,249,249,,,,249,249,249,249', '249,249,249,,,360,383,383,383,383,383,383,,383,,,,383,,383,383,,,,383', '383,383,383,383,383,383,,,,360,360,360,,360,360,360,360,360,360,360', '360,360,360,,,,,,,377,377,377,377,377,377,,377,,377,,377,,377,377,,', '249,377,377,377,377,377,377,377,,,,367,367,367,367,367,367,,367,,,,367', ',367,367,,,383,367,367,367,367,367,367,367,366,366,366,366,366,366,', '366,,,,366,,366,366,,,,366,366,366,366,366,366,366,,,367,,,,,,,,,,,', ',377,,393,393,393,393,393,393,,393,,,366,393,,393,393,,,,393,393,393', '393,393,393,393,,367,,,,,,,,356,356,356,356,356,356,,356,,,,356,,356', '356,356,356,366,356,356,356,356,356,356,356,330,330,330,330,330,330', ',330,,,,330,,330,330,,,,330,330,330,330,330,330,330,322,322,322,322', '322,322,,322,,393,,322,,322,322,322,,,322,322,322,322,322,322,322,,', ',356,,,310,310,310,310,310,310,,310,,,,310,356,310,310,,,,310,310,310', '310,310,310,310,298,298,298,298,298,298,,298,,298,,298,330,298,298,', ',,298,298,298,298,298,298,298,,,,,,,,,,,,,322,,,,,282,282,282,282,282', '282,,282,,,,282,,282,282,,,,282,282,282,282,282,282,282,,310,,,,,,,', ',,,,,,,,,,,,,,,,,298,282,282,282,282,282,282,282,282,282,282,282,282', '282,282,282,282,282,282,282,282,282,282,282,282,282,282,280,280,280', '280,280,280,,280,,,,280,,280,280,282,,,280,280,280,280,280,280,280,146', '146,146,146,146,146,,146,,,,146,,146,146,146,,,146,146,146,146,146,146', '146,278,278,278,278,278,278,,278,,,,278,,278,278,,,,278,278,278,278', '278,278,278,,397,397,397,397,397,397,,397,,,,397,,397,397,,,280,397', '397,397,397,397,397,397,,,146,,,405,405,405,405,405,405,,405,,,,405', '146,405,405,,,,405,405,405,405,405,405,405,271,271,271,271,271,271,', '271,,,,271,278,271,271,,,,271,271,271,271,271,271,271,,266,266,266,266', '266,266,,266,,,,266,397,266,266,,,,266,266,266,266,266,266,266,80,80', '80,80,80,80,,80,,,,80,,80,80,80,,405,80,80,80,80,80,80,80,406,406,406', '406,406,406,406,406,,,,406,,406,406,,,271,406,406,406,406,406,406,406', ',265,265,265,265,265,265,,265,,,,265,,265,265,,,266,265,265,265,265', '265,265,265,,,80,,,85,85,85,85,85,85,,85,,85,,85,80,85,85,,,,85,85,85', '85,85,85,85,264,264,264,264,264,264,,264,,,,264,406,264,264,,,,264,264', '264,264,264,264,264,,263,263,263,263,263,263,,263,,,,263,265,263,263', ',,,263,263,263,263,263,263,263,262,262,262,262,262,262,,262,,,,262,', '262,262,,,85,262,262,262,262,262,262,262,261,261,261,261,261,261,,261', ',,,261,,261,261,,,264,261,261,261,261,261,261,261,,260,260,260,260,260', '260,,260,,,,260,,260,260,,,263,260,260,260,260,260,260,260,259,259,259', '259,259,259,,259,,,,259,,259,259,,,262,259,259,259,259,259,259,259,258', '258,258,258,258,258,,258,,,,258,,258,258,,,261,258,258,258,258,258,258', '258,,257,257,257,257,257,257,,257,,,,257,,257,257,,,260,257,257,257', '257,257,257,257,256,256,256,256,256,256,,256,,,,256,,256,256,,,259,256', '256,256,256,256,256,256,255,255,255,255,255,255,,255,,,,255,,255,255', ',,258,255,255,255,255,255,255,255,,254,254,254,254,254,254,,254,,,,254', ',254,254,,,257,254,254,254,254,254,254,254,253,253,253,253,253,253,', '253,,,,253,,253,253,,,256,253,253,253,253,253,253,253,252,252,252,252', '252,252,,252,,,,252,,252,252,,,255,252,252,252,252,252,252,252,,251', '251,251,251,251,251,,251,,,,251,,251,251,,,254,251,251,251,251,251,251', '251,250,250,250,250,250,250,,250,,,,250,,250,250,,,253,250,250,250,250', '250,250,250,389,389,389,389,389,389,,389,,,,389,,389,389,389,,252,389', '389,389,389,389,389,389,,248,248,248,248,248,248,,248,,,,248,,248,248', ',,251,248,248,248,248,248,248,248,,,,,,,,,,,,,,,,,,250,,,,,,,,,,389', ',,117,117,117,117,117,117,,117,,,,117,389,117,117,,,,117,117,117,117', '117,117,117,,236,236,236,236,236,236,,236,,,,236,248,236,236,,,,236', '236,236,236,236,236,236,,,,,,,117,117,117,117,117,117,117,117,117,117', '117,117,117,117,117,117,117,,,121,121,121,121,121,121,,121,,,,121,,121', '121,,,117,121,121,121,121,121,121,121,,122,122,122,122,122,122,,122', ',,,122,,122,122,,,236,122,122,122,122,122,122,122,123,123,123,123,123', '123,,123,,,,123,,123,123,,,,123,123,123,123,123,123,123,124,124,124', '124,124,124,,124,,,,124,,124,124,,,121,124,124,124,124,124,124,124,', ',,,,,,,,,,,233,233,233,233,233,233,122,233,,,,233,,233,233,,,,233,233', '233,233,233,233,233,223,223,223,223,223,223,123,223,,,,223,,223,223', ',,,223,223,223,223,223,223,223,,,,,,,124,233,233,233,233,233,233,233', '233,233,233,233,233,233,233,233,233,233,,,231,231,231,231,231,231,,231', ',,,231,,231,231,,,233,231,231,231,231,231,231,231,224,224,224,224,224', '224,224,224,,,,224,,224,224,,,223,224,224,224,224,224,224,224,,,,,,', ',231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231', ',,213,213,213,213,213,213,,213,,,,213,,213,213,,,231,213,213,213,213', '213,213,213,210,210,210,210,210,210,,210,,,,210,,210,210,,,224,210,210', '210,210,210,210,210,180,180,180,180,180,180,,180,,,,180,,180,180,,,', '180,180,180,180,180,180,180,,407,407,407,407,407,407,407,407,,,,407', ',407,407,,,213,407,407,407,407,407,407,407,,180,,,,435,435,435,435,435', '435,,435,,,,435,210,435,435,435,435,,435,435,435,435,435,435,435,164', '164,164,164,164,164,,164,,,,164,180,164,164,,,,164,164,164,164,164,164', '164,,279,279,279,279,279,279,,279,,,,279,407,279,279,,,,279,279,279', '279,279,279,279,,,435,,,,,,,,,,,,,,41,435,,,,,,,,,,,,,,,,,,,,,,,,,164', ',,2,,,,,,,,,,,,,,,,,,,,,,,279,41,41,41,41,41,41,41,41,41,41,41,41,41', '41,41,41,41,41,41,41,41,41,41,41,41,41,,,41,2,2,2,2,2,2,2,2,2,2,2,2', '2,2,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,294,294,,294,,,294,,,,,,,,,294,,,,', ',,,,,325,325,,325,,,,,,,,,,,,325,,,,,,,,294,294,294,294,294,294,294', '294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294', '294,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325', '325,325,325,325,325,325,325,325,325,86,,,,,86,,,,,,,,,,,,,,,,,,,,378', ',,,,,,,,,,,,,,,,,,,,,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86', '86,86,86,86,86,86,86,86,86,378,378,378,378,378,378,378,378,378,378,378', '378,378,378,378,378,378,378,378,378,378,378,378,378,378,292,7,7,7,7', '7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,,,,,,96,,,,,,,,,,,,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,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96', '96,96,96,96,96,96,96,96,96,96,202,,,,,,,,,,,,,,,,,,,,,,,,,299,,,,,,', ',,,,,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202', '202,202,202,202,202,202,202,202,202,299,299,299,299,299,299,299,299', '299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299', '199,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92', '92,92,92,,,,,,,,,,,,199,199,199,199,199,199,199,199,199,199,199,199', '199,199,199,199,199,199,199,199,199,199,199,199,199,8,8,8,8,8,8,8,8', '8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,196,196,196,196,196,196,196,196,196', '196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,6,6', '6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5', '5,5,5,5,5,5,5,5,5,5,5,5,5,5,93,93,93,93,93,93,93,93,93,93,93,93,93,93', '93,93,93,93,93,93,93,93,93,93,93,69,69,69,69,69,69,69,69,69,69,69,69', '69,69,69,69,69,69,69,69,69,69,69,69,69' ] racc_action_check = arr = ::Array.new(3198, 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 = [ nil, 732, 2528, 716, 182, 3068, 3043, 2752, 2993, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 624, nil, 619, nil, 656, nil, 38, nil, 40, nil, nil, nil, nil, nil, nil, nil, nil, nil, 2499, nil, nil, nil, nil, nil, 510, nil, 78, nil, 37, 3, 322, nil, 680, -14, nil, nil, nil, nil, nil, nil, nil, nil, 20, 183, nil, 249, 3118, nil, 278, 429, 421, nil, 252, 344, 664, nil, 544, 1392, nil, 419, 285, nil, 1473, 2701, 266, 28, nil, nil, nil, 2932, 3093, 214, 193, 2819, nil, 138, 576, nil, 200, 654, 22, nil, nil, 12, nil, nil, 15, 1, nil, nil, nil, nil, nil, 137, 1959, nil, nil, 55, 2035, 2061, 2086, 2111, nil, nil, nil, nil, nil, nil, 568, nil, 306, 629, 495, 326, 318, 571, -20, 672, 673, 64, nil, nil, nil, 1235, 724, nil, 702, nil, 22, 682, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 672, 2431, 669, nil, 161, nil, nil, nil, nil, 702, 691, 685, 376, 635, 612, 546, 542, 2350, nil, nil, nil, 547, nil, 545, 281, nil, 507, nil, 684, nil, nil, nil, nil, 3018, 451, 447, 2968, nil, 440, 2881, nil, nil, nil, nil, 44, nil, 410, 2325, nil, 61, 2300, 343, 368, nil, 286, 381, nil, 348, 322, 147, 2173, 2249, 189, 160, 139, nil, nil, nil, 2224, nil, 2148, nil, nil, 1985, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 1904, 779, 1853, 1828, 1802, 1777, 1752, 1726, 1701, 1676, 1650, 1625, 1600, 1574, 1549, 1524, 1498, 1443, 1367, 223, nil, 300, nil, 1341, nil, 514, 385, 659, nil, nil, 1260, 2457, 1210, 619, 1132, 379, nil, nil, 45, nil, nil, nil, nil, 325, 2794, -1, 2604, nil, nil, 183, 1090, 2906, nil, nil, nil, nil, 107, nil, nil, nil, nil, 149, 1065, nil, nil, nil, nil, nil, 137, nil, 82, nil, nil, nil, 1034, nil, 68, 2629, 23, nil, 65, nil, 1009, nil, nil, 167, 186, nil, nil, nil, nil, 170, 131, 621, 567, 559, 557, 520, 503, 417, 423, 464, 334, 326, 350, 351, 14, nil, 984, 421, nil, nil, 754, nil, 129, 376, 256, 451, 908, 883, nil, nil, nil, 510, nil, 260, 520, nil, 539, 855, 2726, nil, 556, nil, nil, 807, 683, nil, nil, nil, nil, 1878, nil, nil, nil, 950, 180, 629, 631, 1286, nil, nil, nil, nil, 634, 653, 539, 1316, 1417, 2376, 687, nil, nil, nil, 689, nil, 693, nil, 649, nil, 318, nil, nil, nil, 622, nil, nil, 412, 323, 281, 128, 256, nil, nil, nil, nil, nil, 2406, 118, 666, 23, nil, -2, nil, nil, nil, nil, nil, nil ] racc_action_default = [ -215, -269, -1, -269, -269, -86, -88, -90, -92, -98, -99, -100, -101, -102, -103, -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -114, -115, -118, -121, -269, -139, -269, -163, -164, -165, -166, -167, -168, -169, -216, -217, -269, -219, -220, -223, -224, -225, -269, 447, -269, -94, -96, -269, -171, -173, -269, -180, -87, -112, -114, -89, -91, -93, -222, -221, -120, -269, -124, -138, -269, -142, -269, -155, -158, -218, -130, -132, -269, -85, -269, -269, -229, -269, -170, -172, -269, -269, -269, -181, -182, -184, -116, -269, -269, -112, -113, -269, -140, -269, -269, -159, -161, -269, -269, -129, -131, -269, -227, -95, -96, -2, -3, -4, -5, -6, -7, -8, -269, -10, -12, -25, -269, -269, -269, -269, -31, -32, -33, -34, -35, -36, -37, -39, -43, -46, -49, -54, -57, -59, -61, -63, -65, -67, -69, -97, -209, -269, -269, -265, -269, -82, -269, -269, -230, -231, -232, -233, -234, -235, -236, -237, -238, -239, -265, -269, -269, -243, -269, -245, -247, -248, -249, -269, -269, -269, -269, -269, -269, -269, -269, -269, -268, -37, -84, -269, -176, -269, -269, -179, -186, -188, -192, -193, -174, -183, -185, -269, -112, -113, -269, -122, -269, -269, -145, -144, -137, -141, -269, -146, -148, -269, -151, -269, -269, -269, -269, -226, -269, -269, -11, -269, -269, -195, -269, -269, -269, -269, -269, -19, -20, -26, -269, -27, -269, -29, -30, -269, -71, -72, -73, -74, -75, -76, -77, -78, -79, -80, -81, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -213, -269, -266, -269, -250, -269, -269, -269, -244, -246, -269, -269, -269, -269, -269, -269, -261, -262, -269, -263, -175, -177, -178, -269, -269, -197, -269, -190, -191, -198, -269, -269, -128, -127, -119, -123, -269, -133, -135, -136, -143, -269, -269, -149, -153, -160, -162, -152, -269, -156, -269, -228, -267, -9, -269, -196, -197, -269, -269, -14, -269, -23, -269, -17, -18, -269, -269, -70, -40, -41, -42, -44, -45, -47, -48, -50, -51, -52, -53, -55, -56, -58, -60, -62, -64, -66, -269, -210, -269, -269, -83, -240, -269, -242, -269, -269, -269, -269, -269, -269, -260, -264, -194, -269, -189, -199, -269, -205, -269, -269, -269, -201, -269, -117, -125, -269, -269, -147, -150, -154, -157, -269, -38, -13, -15, -269, -269, -28, -269, -269, -211, -214, -212, -241, -269, -269, -269, -269, -269, -269, -269, -200, -206, -203, -269, -207, -269, -202, -269, -134, -269, -24, -16, -68, -251, -253, -254, -269, -269, -269, -269, -269, -187, -204, -208, -126, -21, -269, -269, -269, -269, -256, -269, -258, -22, -252, -255, -257, -259 ] racc_goto_table = [ 51, 144, 145, 81, 183, 182, 184, 281, 186, 23, 267, 95, 208, 83, 206, 305, 303, 313, 328, 169, 25, 4, 199, 230, 57, 60, 61, 62, 75, 89, 40, 99, 168, 221, 198, 95, 296, 77, 95, 220, 373, 182, 232, 234, 235, 65, 96, 207, 23, 76, 304, 366, 343, 344, 345, 346, 75, 75, 90, 25, 4, 194, 214, 215, 66, 104, 105, 323, 145, 74, 202, 373, 196, 107, 68, 109, 94, 76, 76, 347, 348, 339, 340, 183, 182, 274, 341, 342, 98, 108, 195, 236, 187, 88, 209, 372, 353, 352, 75, 197, 94, 152, 286, 94, 169, 359, 39, 361, 351, 106, 350, 201, 98, 349, 2, 98, 303, 277, 167, 76, 206, 313, 225, 313, 394, 1, 299, nil, nil, 183, 182, 311, 183, 182, 314, 406, 407, nil, 198, nil, nil, 198, nil, nil, 95, 326, 329, 333, 109, 334, 336, 337, 338, 220, nil, 220, nil, nil, 335, nil, nil, nil, nil, nil, 293, nil, nil, nil, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 152, 295, 354, nil, nil, nil, 401, 358, nil, 324, nil, 306, 417, nil, 362, 363, 364, 197, nil, nil, 197, nil, nil, 94, nil, nil, 75, 319, 75, 201, nil, nil, 201, 367, 380, 98, nil, 385, 390, nil, nil, nil, nil, 183, 182, 386, nil, 76, 422, 76, 424, nil, nil, nil, nil, 198, 182, nil, nil, nil, nil, nil, nil, nil, nil, nil, 329, 418, 83, nil, nil, nil, nil, 439, nil, 441, nil, nil, nil, nil, nil, 293, 443, nil, 445, nil, 446, nil, nil, nil, nil, 399, 145, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 324, 412, 414, 152, 183, 182, 416, 209, 197, nil, nil, nil, nil, 145, nil, nil, nil, 419, 421, 182, 201, nil, nil, nil, nil, nil, nil, nil, nil, 425, 426, 428, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 423, 399, 145, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 306 ] racc_goto_check = [ 36, 37, 12, 72, 26, 13, 28, 73, 60, 38, 11, 39, 55, 59, 53, 49, 46, 57, 8, 29, 40, 30, 43, 15, 30, 30, 30, 30, 33, 58, 68, 56, 84, 10, 39, 39, 65, 48, 39, 6, 66, 13, 13, 13, 13, 42, 52, 54, 38, 9, 47, 75, 18, 18, 18, 18, 33, 33, 9, 40, 30, 58, 56, 56, 45, 48, 48, 65, 12, 68, 52, 66, 44, 36, 51, 36, 38, 9, 9, 19, 19, 16, 16, 26, 13, 28, 17, 17, 30, 35, 9, 27, 61, 62, 36, 64, 24, 23, 33, 38, 38, 30, 6, 38, 29, 73, 67, 73, 22, 71, 21, 30, 30, 20, 2, 30, 46, 84, 83, 9, 53, 57, 9, 57, 8, 1, 43, nil, nil, 26, 13, 28, 26, 13, 28, 75, 75, nil, 39, nil, nil, 39, nil, nil, 39, 6, 12, 10, 36, 10, 15, 15, 15, 6, nil, 6, nil, nil, 12, nil, nil, nil, nil, nil, 58, nil, nil, nil, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 30, 36, 6, nil, nil, nil, 73, 12, nil, 58, nil, 36, 49, nil, 6, 6, 6, 38, nil, nil, 38, nil, nil, 38, nil, nil, 33, 36, 33, 30, nil, nil, 30, 29, 12, 30, nil, 55, 15, nil, nil, nil, nil, 26, 13, 28, nil, 9, 73, 9, 73, nil, nil, nil, nil, 39, 13, nil, nil, nil, nil, nil, nil, nil, nil, nil, 12, 11, 59, nil, nil, nil, nil, 73, nil, 73, nil, nil, nil, nil, nil, 58, 73, nil, 73, nil, 73, nil, nil, nil, nil, 37, 12, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 58, 12, 60, 30, 26, 13, 28, 36, 38, nil, nil, nil, nil, 12, nil, nil, nil, 12, 26, 13, 30, nil, nil, nil, nil, nil, nil, nil, nil, 6, 6, 6, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 72, 37, 12, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 36 ] racc_goto_pointer = [ nil, 125, 114, nil, nil, nil, -78, nil, -206, 2, -84, -136, -78, -80, nil, -98, -170, -167, -203, -180, -148, -152, -155, -167, -169, nil, -81, -40, -79, -63, 19, nil, nil, -19, nil, 10, -4, -79, 7, -58, 18, nil, 18, -70, -19, 37, -183, -151, -10, -186, nil, 45, -23, -82, -51, -86, -40, -195, -27, -39, -78, 6, 37, nil, -197, -155, -253, 104, 28, nil, nil, 32, -48, -168, nil, -231, nil, nil, nil, nil, nil, nil, nil, 36, -50 ] racc_goto_default = [ nil, nil, nil, 119, 110, 116, 151, 120, nil, 7, nil, nil, 150, 131, 121, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, nil, nil, 44, 191, 49, 5, 6, 8, 50, 87, 268, 58, 24, 59, 27, nil, nil, nil, nil, 200, nil, 222, nil, 29, nil, nil, 97, nil, nil, nil, 100, 52, 53, 376, nil, nil, 189, 190, 374, 297, nil, nil, 42, 43, nil, 154, 170, 153, 155, 156, 157, 158, 159, 160, 161, 162, nil, nil ] racc_reduce_table = [ 0, 0, :racc_error, 1, 98, :_reduce_none, 1, 100, :_reduce_2, 1, 100, :_reduce_3, 1, 100, :_reduce_4, 1, 100, :_reduce_5, 1, 100, :_reduce_6, 1, 100, :_reduce_7, 1, 100, :_reduce_8, 3, 100, :_reduce_9, 1, 102, :_reduce_10, 2, 102, :_reduce_11, 1, 104, :_reduce_none, 4, 104, :_reduce_13, 3, 104, :_reduce_none, 4, 104, :_reduce_none, 5, 104, :_reduce_none, 3, 104, :_reduce_17, 3, 104, :_reduce_18, 2, 104, :_reduce_19, 2, 104, :_reduce_20, 6, 104, :_reduce_none, 7, 104, :_reduce_none, 1, 105, :_reduce_none, 3, 105, :_reduce_none, 1, 110, :_reduce_none, 2, 110, :_reduce_26, 2, 110, :_reduce_27, 4, 110, :_reduce_28, 2, 110, :_reduce_29, 2, 110, :_reduce_30, 1, 111, :_reduce_31, 1, 111, :_reduce_32, 1, 111, :_reduce_33, 1, 111, :_reduce_34, 1, 111, :_reduce_35, 1, 111, :_reduce_36, 1, 112, :_reduce_none, 4, 112, :_reduce_38, 1, 113, :_reduce_none, 3, 113, :_reduce_40, 3, 113, :_reduce_41, 3, 113, :_reduce_42, 1, 114, :_reduce_none, 3, 114, :_reduce_44, 3, 114, :_reduce_45, 1, 115, :_reduce_none, 3, 115, :_reduce_47, 3, 115, :_reduce_48, 1, 116, :_reduce_none, 3, 116, :_reduce_50, 3, 116, :_reduce_51, 3, 116, :_reduce_52, 3, 116, :_reduce_53, 1, 117, :_reduce_none, 3, 117, :_reduce_55, 3, 117, :_reduce_56, 1, 118, :_reduce_none, 3, 118, :_reduce_58, 1, 119, :_reduce_none, 3, 119, :_reduce_60, 1, 120, :_reduce_none, 3, 120, :_reduce_62, 1, 121, :_reduce_none, 3, 121, :_reduce_64, 1, 122, :_reduce_none, 3, 122, :_reduce_66, 1, 123, :_reduce_none, 5, 123, :_reduce_68, 1, 109, :_reduce_none, 3, 109, :_reduce_none, 1, 124, :_reduce_none, 1, 124, :_reduce_none, 1, 124, :_reduce_none, 1, 124, :_reduce_none, 1, 124, :_reduce_none, 1, 124, :_reduce_none, 1, 124, :_reduce_none, 1, 124, :_reduce_none, 1, 124, :_reduce_none, 1, 124, :_reduce_none, 1, 124, :_reduce_none, 1, 103, :_reduce_82, 3, 103, :_reduce_83, 1, 125, :_reduce_84, 3, 126, :_reduce_none, 1, 127, :_reduce_86, 2, 127, :_reduce_87, 1, 127, :_reduce_none, 2, 127, :_reduce_89, 1, 127, :_reduce_90, 2, 127, :_reduce_91, 1, 127, :_reduce_none, 2, 127, :_reduce_none, 1, 128, :_reduce_94, 3, 128, :_reduce_95, 1, 132, :_reduce_none, 3, 132, :_reduce_97, 1, 129, :_reduce_none, 1, 129, :_reduce_none, 1, 129, :_reduce_none, 1, 129, :_reduce_none, 1, 130, :_reduce_102, 1, 130, :_reduce_103, 1, 130, :_reduce_104, 1, 130, :_reduce_105, 1, 130, :_reduce_106, 1, 130, :_reduce_107, 1, 130, :_reduce_108, 1, 130, :_reduce_109, 1, 130, :_reduce_110, 1, 130, :_reduce_111, 1, 130, :_reduce_112, 1, 130, :_reduce_113, 1, 130, :_reduce_114, 1, 130, :_reduce_115, 0, 141, :_reduce_116, 6, 135, :_reduce_117, 0, 142, :_reduce_118, 5, 135, :_reduce_119, 2, 135, :_reduce_120, 1, 138, :_reduce_121, 1, 140, :_reduce_none, 2, 140, :_reduce_none, 1, 139, :_reduce_124, 3, 143, :_reduce_125, 5, 143, :_reduce_126, 2, 143, :_reduce_none, 2, 143, :_reduce_none, 2, 145, :_reduce_129, 1, 145, :_reduce_none, 2, 145, :_reduce_131, 1, 145, :_reduce_132, 1, 144, :_reduce_133, 3, 144, :_reduce_134, 1, 146, :_reduce_none, 5, 136, :_reduce_none, 4, 136, :_reduce_none, 2, 136, :_reduce_none, 1, 147, :_reduce_139, 1, 149, :_reduce_none, 2, 149, :_reduce_none, 1, 148, :_reduce_none, 3, 150, :_reduce_none, 2, 150, :_reduce_none, 2, 150, :_reduce_none, 1, 151, :_reduce_none, 3, 151, :_reduce_none, 1, 152, :_reduce_none, 2, 152, :_reduce_none, 3, 152, :_reduce_none, 4, 137, :_reduce_none, 5, 137, :_reduce_none, 5, 137, :_reduce_none, 6, 137, :_reduce_none, 2, 137, :_reduce_none, 5, 137, :_reduce_none, 6, 137, :_reduce_none, 2, 137, :_reduce_none, 1, 153, :_reduce_none, 3, 153, :_reduce_none, 1, 154, :_reduce_none, 3, 154, :_reduce_none, 1, 106, :_reduce_163, 1, 106, :_reduce_none, 1, 106, :_reduce_165, 1, 131, :_reduce_none, 1, 131, :_reduce_none, 1, 131, :_reduce_none, 1, 131, :_reduce_none, 2, 133, :_reduce_170, 1, 133, :_reduce_none, 2, 133, :_reduce_172, 1, 156, :_reduce_173, 3, 156, :_reduce_174, 4, 156, :_reduce_175, 3, 156, :_reduce_176, 4, 156, :_reduce_177, 4, 156, :_reduce_none, 3, 156, :_reduce_179, 1, 155, :_reduce_180, 2, 155, :_reduce_181, 2, 155, :_reduce_182, 3, 155, :_reduce_183, 1, 159, :_reduce_none, 2, 159, :_reduce_none, 1, 157, :_reduce_none, 5, 157, :_reduce_none, 1, 160, :_reduce_none, 3, 160, :_reduce_none, 2, 161, :_reduce_none, 2, 161, :_reduce_none, 1, 161, :_reduce_none, 1, 158, :_reduce_none, 3, 158, :_reduce_none, 1, 107, :_reduce_none, 2, 107, :_reduce_none, 1, 162, :_reduce_none, 1, 162, :_reduce_none, 2, 162, :_reduce_none, 3, 163, :_reduce_none, 2, 163, :_reduce_none, 3, 163, :_reduce_none, 3, 163, :_reduce_none, 4, 163, :_reduce_none, 2, 163, :_reduce_205, 3, 163, :_reduce_none, 3, 163, :_reduce_207, 4, 163, :_reduce_none, 1, 134, :_reduce_209, 3, 134, :_reduce_210, 4, 134, :_reduce_211, 4, 134, :_reduce_212, 1, 108, :_reduce_213, 3, 108, :_reduce_214, 0, 99, :_reduce_none, 2, 99, :_reduce_none, 1, 164, :_reduce_none, 2, 164, :_reduce_none, 1, 165, :_reduce_none, 1, 165, :_reduce_none, 2, 165, :_reduce_none, 2, 165, :_reduce_none, 1, 165, :_reduce_none, 1, 165, :_reduce_none, 1, 165, :_reduce_none, 4, 166, :_reduce_226, 1, 168, :_reduce_227, 3, 168, :_reduce_228, 3, 167, :_reduce_none, 1, 170, :_reduce_none, 1, 170, :_reduce_none, 1, 170, :_reduce_none, 1, 170, :_reduce_none, 1, 170, :_reduce_none, 1, 170, :_reduce_none, 1, 170, :_reduce_none, 1, 170, :_reduce_none, 1, 170, :_reduce_none, 1, 170, :_reduce_none, 3, 171, :_reduce_none, 4, 171, :_reduce_none, 3, 171, :_reduce_none, 2, 169, :_reduce_none, 3, 169, :_reduce_none, 1, 180, :_reduce_none, 2, 180, :_reduce_none, 1, 181, :_reduce_none, 1, 181, :_reduce_none, 1, 172, :_reduce_none, 2, 172, :_reduce_none, 5, 173, :_reduce_none, 7, 173, :_reduce_none, 5, 177, :_reduce_none, 5, 174, :_reduce_none, 7, 175, :_reduce_none, 6, 176, :_reduce_none, 7, 176, :_reduce_none, 6, 176, :_reduce_none, 7, 176, :_reduce_none, 3, 178, :_reduce_none, 2, 178, :_reduce_none, 2, 178, :_reduce_none, 2, 178, :_reduce_none, 3, 178, :_reduce_none, 1, 101, :_reduce_265, 2, 101, :_reduce_266, 3, 101, :_reduce_267, 1, 179, :_reduce_268 ] racc_reduce_n = 269 racc_shift_n = 447 racc_token_table = { false => 0, :error => 1, :INTEGER_CONSTANT => 2, :FLOATING_CONSTANT => 3, :OCTAL_CONSTANT => 4, :HEX_CONSTANT => 5, :CHARACTER_LITERAL => 6, "(" => 7, ")" => 8, :STRING_LITERAL => 9, "[" => 10, "]" => 11, "." => 12, :IDENTIFIER => 13, "->" => 14, "++" => 15, "--" => 16, "{" => 17, "}" => 18, "," => 19, :SIZEOF => 20, "&" => 21, "*" => 22, "+" => 23, "-" => 24, "~" => 25, "!" => 26, "/" => 27, "%" => 28, "<<" => 29, ">>" => 30, "<" => 31, ">" => 32, "<=" => 33, ">=" => 34, "==" => 35, "!=" => 36, "^" => 37, "|" => 38, "&&" => 39, "||" => 40, "?" => 41, ":" => 42, "=" => 43, "+=" => 44, "-=" => 45, "*=" => 46, "/=" => 47, "%=" => 48, "<<=" => 49, ">>=" => 50, "&=" => 51, "|=" => 52, "^=" => 53, ";" => 54, :EXTERN => 55, :STATIC => 56, :AUTO => 57, :REGISTER => 58, :VOID => 59, :CHAR => 60, :SHORT => 61, :INT => 62, :LONG => 63, :FLOAT => 64, :DOUBLE => 65, :SIGNED => 66, :UNSIGNED => 67, :BOOL => 68, :TYPE_NAME => 69, :STRUCT => 70, :UNION => 71, :ENUM => 72, :CONST => 73, :RESTRICT => 74, :VOLATILE => 75, :__INLINE__ => 76, :INLINE => 77, :__INLINE => 78, :CINLINE => 79, :C_EXP => 80, :EXTENSION => 81, :TYPEDEF => 82, :CASE => 83, :DEFAULT => 84, :IF => 85, :ELSE => 86, :SWITCH => 87, :WHILE => 88, :DO => 89, :FOR => 90, :GOTO => 91, :CONTINUE => 92, :BREAK => 93, :RETURN => 94, "::" => 95, :_ASM => 96 } racc_nt_base = 97 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", "INTEGER_CONSTANT", "FLOATING_CONSTANT", "OCTAL_CONSTANT", "HEX_CONSTANT", "CHARACTER_LITERAL", "\"(\"", "\")\"", "STRING_LITERAL", "\"[\"", "\"]\"", "\".\"", "IDENTIFIER", "\"->\"", "\"++\"", "\"--\"", "\"{\"", "\"}\"", "\",\"", "SIZEOF", "\"&\"", "\"*\"", "\"+\"", "\"-\"", "\"~\"", "\"!\"", "\"/\"", "\"%\"", "\"<<\"", "\">>\"", "\"<\"", "\">\"", "\"<=\"", "\">=\"", "\"==\"", "\"!=\"", "\"^\"", "\"|\"", "\"&&\"", "\"||\"", "\"?\"", "\":\"", "\"=\"", "\"+=\"", "\"-=\"", "\"*=\"", "\"/=\"", "\"%=\"", "\"<<=\"", "\">>=\"", "\"&=\"", "\"|=\"", "\"^=\"", "\";\"", "EXTERN", "STATIC", "AUTO", "REGISTER", "VOID", "CHAR", "SHORT", "INT", "LONG", "FLOAT", "DOUBLE", "SIGNED", "UNSIGNED", "BOOL", "TYPE_NAME", "STRUCT", "UNION", "ENUM", "CONST", "RESTRICT", "VOLATILE", "__INLINE__", "INLINE", "__INLINE", "CINLINE", "C_EXP", "EXTENSION", "TYPEDEF", "CASE", "DEFAULT", "IF", "ELSE", "SWITCH", "WHILE", "DO", "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "\"::\"", "_ASM", "$start", "all", "C_parser", "primary_expression", "namespace_identifier", "string_literal_list", "expression", "postfix_expression", "argument_expression_list", "type_qualifier", "type_name", "initializer_list", "assignment_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", "constant_expression", "declaration", "declaration_specifiers", "init_declarator_list", "storage_class_specifier", "type_specifier", "function_specifier", "init_declarator", "declarator", "initializer", "struct_specifier", "union_specifier", "enum_specifier", "struct_term", "struct_tag", "struct_declaration_list", "@1", "@2", "struct_declaration", "struct_declarator_list", "specifier_qualifier_list", "struct_declarator", "union_term", "union_tag", "union_declaration_list", "union_declaration", "union_declarator_list", "union_declarator", "enumerator_list", "enumerator", "pointer", "direct_declarator", "parameter_type_list", "identifier_list", "type_qualifier_list", "parameter_list", "parameter_declaration", "abstract_declarator", "direct_abstract_declarator", "extension_statement", "cdl_statement", "typedef", "func_def", "declarator_list", "compound_statement", "statement", "labeled_statement", "expression_statement", "ifstatement", "whilestatement", "dowhilestatement", "forstatement", "switchstatement", "jump_statement", "asm_statement", "block_item_list", "block_item" ] Racc_debug_parser = false ##### State transition tables end ##### # reduce 0 omitted # reduce 1 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 57) def _reduce_2(val, _values, result) result = [ :IDENTIFIER, val[0] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 65) def _reduce_3(val, _values, result) result = [ :INTEGER_CONSTANT, val[0] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 67) def _reduce_4(val, _values, result) result = [ :FLOATING_CONSTANT, val[0] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 69) def _reduce_5(val, _values, result) result = [ :OCTAL_CONSTANT, val[0] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 71) def _reduce_6(val, _values, result) result = [ :HEX_CONSTANT, val[0] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 73) def _reduce_7(val, _values, result) result = [ :CHARACTER_LITERAL, val[0] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 75) def _reduce_8(val, _values, result) result = [ :STRING_LITERAL_LIST, val[0] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 77) def _reduce_9(val, _values, result) result = [ :PARENTHESES, val[1].get_elements ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 81) def _reduce_10(val, _values, result) result = [val[0]] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 83) def _reduce_11(val, _values, result) result << val[1] result end .,., # reduce 12 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 89) def _reduce_13(val, _values, result) result = [ :OP_SUBSC, val[0], val[2] ] result end .,., # reduce 14 omitted # reduce 15 omitted # reduce 16 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 94) def _reduce_17(val, _values, result) result = [ :OP_DOT, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 96) def _reduce_18(val, _values, result) result = [ :OP_REF, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 97) def _reduce_19(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 98) def _reduce_20(val, _values, result) result = val[0] result end .,., # reduce 21 omitted # reduce 22 omitted # reduce 23 omitted # reduce 24 omitted # reduce 25 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 111) def _reduce_26(val, _values, result) result = [ val[0], val[1] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 113) def _reduce_27(val, _values, result) result = [ :OP_SIZEOF_EXPR, val[1] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 115) def _reduce_28(val, _values, result) result = [ :OP_SIZEOF_TYPE, val[1] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 116) def _reduce_29(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 117) def _reduce_30(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 120) def _reduce_31(val, _values, result) result = :OP_U_AMP result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 121) def _reduce_32(val, _values, result) result = :OP_U_ASTER result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 122) def _reduce_33(val, _values, result) result = :OP_U_PLUS result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 123) def _reduce_34(val, _values, result) result = :OP_U_MINUS result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 124) def _reduce_35(val, _values, result) result = :OP_U_TILDE result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 125) def _reduce_36(val, _values, result) result = :OP_U_EXCLAM result end .,., # reduce 37 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 130) def _reduce_38(val, _values, result) result = [ :CAST, val[1], val[3] ] result end .,., # reduce 39 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 135) def _reduce_40(val, _values, result) result = [ :OP_MULT, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 137) def _reduce_41(val, _values, result) result = [ :OP_DIV, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 139) def _reduce_42(val, _values, result) result = [ :OP_REMAIN, val[0], val[2] ] result end .,., # reduce 43 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 144) def _reduce_44(val, _values, result) result = [ :OP_ADD, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 146) def _reduce_45(val, _values, result) result = [ :OP_SUB, val[0], val[2] ] result end .,., # reduce 46 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 151) def _reduce_47(val, _values, result) result = [ :OP_LSFT, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 153) def _reduce_48(val, _values, result) result = [ :OP_RSFT, val[0], val[2] ] result end .,., # reduce 49 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 158) def _reduce_50(val, _values, result) result = [ :OP_LT, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 160) def _reduce_51(val, _values, result) result = [ :OP_GT, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 162) def _reduce_52(val, _values, result) result = [ :OP_LE, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 164) def _reduce_53(val, _values, result) result = [ :OP_GE, val[0], val[2] ] result end .,., # reduce 54 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 169) def _reduce_55(val, _values, result) result = [ :OP_EQ, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 171) def _reduce_56(val, _values, result) result = [ :OP_NE, val[0], val[2] ] result end .,., # reduce 57 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 176) def _reduce_58(val, _values, result) result = [ :OP_AND, val[0], val[2] ] result end .,., # reduce 59 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 181) def _reduce_60(val, _values, result) result = [ :OP_EOR, val[0], val[2] ] result end .,., # reduce 61 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 186) def _reduce_62(val, _values, result) result = [ :OP_OR, val[0], val[2] ] result end .,., # reduce 63 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 191) def _reduce_64(val, _values, result) result = [ :OP_LAND, val[0], val[2] ] result end .,., # reduce 65 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 196) def _reduce_66(val, _values, result) result = [ :OP_LOR, val[0], val[2] ] result end .,., # reduce 67 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 201) def _reduce_68(val, _values, result) result = [ :OP_CEX, val[0], val[2].get_elements, val[4] ] result end .,., # reduce 69 omitted # reduce 70 omitted # reduce 71 omitted # reduce 72 omitted # reduce 73 omitted # reduce 74 omitted # reduce 75 omitted # reduce 76 omitted # reduce 77 omitted # reduce 78 omitted # reduce 79 omitted # reduce 80 omitted # reduce 81 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 223) def _reduce_82(val, _values, result) result = Expression.new( val[0] ) # result.print result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 228) def _reduce_83(val, _values, result) result = Expression.new( val[2] ) # ',' の後ろを採用 result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 234) def _reduce_84(val, _values, result) result = Expression.new( val[0] ) # result.print # res = result.eval_const( nil ) # if res then # puts "val: #{res}" # else # puts "val: nil" # end result end .,., # reduce 85 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 261) def _reduce_86(val, _values, result) result = CIntType.new( -3 ) # storage class は無視 result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 265) def _reduce_87(val, _values, result) result = val[1] # storage class は無視 result end .,., # reduce 88 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 270) def _reduce_89(val, _values, result) result = val[1].merge val[0] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 274) def _reduce_90(val, _values, result) result = CIntType.new( -3 ) result.set_qualifier val[0] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 279) def _reduce_91(val, _values, result) val[1].set_qualifier val[0] result = val[1] result end .,., # reduce 92 omitted # reduce 93 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 287) def _reduce_94(val, _values, result) result = [val[0]] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 289) def _reduce_95(val, _values, result) result << val[2] result end .,., # reduce 96 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 294) def _reduce_97(val, _values, result) val[0].set_initializer( val[2] ) result end .,., # reduce 98 omitted # reduce 99 omitted # reduce 100 omitted # reduce 101 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 304) def _reduce_102(val, _values, result) set_no_type_name true; result = CVoidType.new result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 306) def _reduce_103(val, _values, result) set_no_type_name true; result = CIntType.new(-11 ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 308) def _reduce_104(val, _values, result) set_no_type_name true; result = CIntType.new( -2 ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 310) def _reduce_105(val, _values, result) set_no_type_name true; result = CIntType.new( -3 ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 312) def _reduce_106(val, _values, result) set_no_type_name true; result = CIntType.new( -4 ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 314) def _reduce_107(val, _values, result) set_no_type_name true; result = CFloatType.new(-32) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 316) def _reduce_108(val, _values, result) set_no_type_name true; result = CFloatType.new(-64) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 319) def _reduce_109(val, _values, result) set_no_type_name true result = CIntType.new( -3 ) result.set_sign :SIGNED result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 325) def _reduce_110(val, _values, result) set_no_type_name true result = CIntType.new( -3 ) result.set_sign :UNSIGNED result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 330) def _reduce_111(val, _values, result) set_no_type_name true; result = CBoolType.new result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 332) def _reduce_112(val, _values, result) set_no_type_name true; result = val[0] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 334) def _reduce_113(val, _values, result) set_no_type_name true; result = CVoidType.new result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 336) def _reduce_114(val, _values, result) set_no_type_name true; result = CVoidType.new result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 338) def _reduce_115(val, _values, result) set_no_type_name true; result = CDefinedType.new( val[0].val ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 344) def _reduce_116(val, _values, result) StructType.set_define( true ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 347) def _reduce_117(val, _values, result) StructType.end_of_parse result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 353) def _reduce_118(val, _values, result) result = CStructType.new() StructType.set_define( true ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 358) def _reduce_119(val, _values, result) StructType.end_of_parse result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 364) def _reduce_120(val, _values, result) StructType.set_define( false ) StructType.end_of_parse result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 370) def _reduce_121(val, _values, result) set_no_type_name true result end .,., # reduce 122 omitted # reduce 123 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 379) def _reduce_124(val, _values, result) result = CStructType.new( val[0].val ) set_no_type_name true result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 388) def _reduce_125(val, _values, result) val[1].each { |i| # i: Decl i.set_type( val[0] ) i.set_kind( :MEMBER ) i.check CStructType.new_member( i ) } result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 399) def _reduce_126(val, _values, result) val[1].each { |i| # i: Decl i.set_type( val[0] ) i.set_kind( :MEMBER ) i.check CStructType.new_member( i ) } result = val[1] result end .,., # reduce 127 omitted # reduce 128 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 417) def _reduce_129(val, _values, result) result = val[1].merge val[0] result end .,., # reduce 130 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 422) def _reduce_131(val, _values, result) val[1].set_qualifier val[0] result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 427) def _reduce_132(val, _values, result) result = CIntType.new( -3 ) result.set_qualifier val[0] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 433) def _reduce_133(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 435) def _reduce_134(val, _values, result) result << val[2] result end .,., # reduce 135 omitted # reduce 136 omitted # reduce 137 omitted # reduce 138 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 452) def _reduce_139(val, _values, result) set_no_type_name true result end .,., # reduce 140 omitted # reduce 141 omitted # reduce 142 omitted # reduce 143 omitted # reduce 144 omitted # reduce 145 omitted # reduce 146 omitted # reduce 147 omitted # reduce 148 omitted # reduce 149 omitted # reduce 150 omitted # reduce 151 omitted # reduce 152 omitted # reduce 153 omitted # reduce 154 omitted # reduce 155 omitted # reduce 156 omitted # reduce 157 omitted # reduce 158 omitted # reduce 159 omitted # reduce 160 omitted # reduce 161 omitted # reduce 162 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 495) def _reduce_163(val, _values, result) result = :CONST result end .,., # reduce 164 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 498) def _reduce_165(val, _values, result) result = :VOLATILE result end .,., # reduce 166 omitted # reduce 167 omitted # reduce 168 omitted # reduce 169 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 509) def _reduce_170(val, _values, result) val[1].set_type( val[0] ) result = val[1] result end .,., # reduce 171 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 515) def _reduce_172(val, _values, result) result = Decl.new( val[1].val ) result.set_type( val[0] ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 521) def _reduce_173(val, _values, result) result = Decl.new( val[0].val ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 523) def _reduce_174(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 526) def _reduce_175(val, _values, result) val[0].set_type( CArrayType.new( val[2] ) ) result = val[0] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 531) def _reduce_176(val, _values, result) val[0].set_type( CArrayType.new ) result = val[0] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 536) def _reduce_177(val, _values, result) # Generator.warning( "W6001 need 'void' for no parameter" ) val[0].set_type( CFuncType.new ) result = val[0] result end .,., # reduce 178 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 543) def _reduce_179(val, _values, result) # Generator.warning( "W6002 need 'void' for no parameter" ) val[0].set_type( CFuncType.new ) result = val[0] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 550) def _reduce_180(val, _values, result) result = CPtrType.new result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 553) def _reduce_181(val, _values, result) result = CPtrType.new result.set_qualifier( val[1] ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 558) def _reduce_182(val, _values, result) val[1].set_type(CPtrType.new) result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 563) def _reduce_183(val, _values, result) ptrtype = CPtrType.new ptrtype.set_qualifier( val[1] ) val[2].set_type( ptrtype ) result = val[2] result end .,., # reduce 184 omitted # reduce 185 omitted # reduce 186 omitted # reduce 187 omitted # reduce 188 omitted # reduce 189 omitted # reduce 190 omitted # reduce 191 omitted # reduce 192 omitted # reduce 193 omitted # reduce 194 omitted # reduce 195 omitted # reduce 196 omitted # reduce 197 omitted # reduce 198 omitted # reduce 199 omitted # reduce 200 omitted # reduce 201 omitted # reduce 202 omitted # reduce 203 omitted # reduce 204 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 630) def _reduce_205(val, _values, result) Generator.warning( "W6003 need 'void' for no parameter" ) result end .,., # reduce 206 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 635) def _reduce_207(val, _values, result) Generator.warning( "W6004 need 'void' for no parameter" ) result end .,., # reduce 208 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 642) def _reduce_209(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 644) def _reduce_210(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 646) def _reduce_211(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 648) def _reduce_212(val, _values, result) result = C_EXP.new( val[2] ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 653) def _reduce_213(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 657) def _reduce_214(val, _values, result) val[0] << val[2] result = val[0] result end .,., # reduce 215 omitted # reduce 216 omitted # reduce 217 omitted # reduce 218 omitted # reduce 219 omitted # reduce 220 omitted # reduce 221 omitted # reduce 222 omitted # reduce 223 omitted # reduce 224 omitted # reduce 225 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 685) def _reduce_226(val, _values, result) val[2].each{ |i| i.set_kind( :TYPEDEF ) } Typedef.new_decl_list( val[1], val[2] ) # val[1].show_tree 0 result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 694) def _reduce_227(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 696) def _reduce_228(val, _values, result) result << val[2] result end .,., # reduce 229 omitted # reduce 230 omitted # reduce 231 omitted # reduce 232 omitted # reduce 233 omitted # reduce 234 omitted # reduce 235 omitted # reduce 236 omitted # reduce 237 omitted # reduce 238 omitted # reduce 239 omitted # reduce 240 omitted # reduce 241 omitted # reduce 242 omitted # reduce 243 omitted # reduce 244 omitted # reduce 245 omitted # reduce 246 omitted # reduce 247 omitted # reduce 248 omitted # reduce 249 omitted # reduce 250 omitted # reduce 251 omitted # reduce 252 omitted # reduce 253 omitted # reduce 254 omitted # reduce 255 omitted # reduce 256 omitted # reduce 257 omitted # reduce 258 omitted # reduce 259 omitted # reduce 260 omitted # reduce 261 omitted # reduce 262 omitted # reduce 263 omitted # reduce 264 omitted module_eval(<<'.,.,', 'C_parser.y.rb', 761) def _reduce_265(val, _values, result) result = NamespacePath.new( val[0].val, false ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 762) def _reduce_266(val, _values, result) result = NamespacePath.new( val[1].val, true ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 764) def _reduce_267(val, _values, result) result = val[0].append!( val[2].val ) result end .,., module_eval(<<'.,.,', 'C_parser.y.rb', 768) def _reduce_268(val, _values, result) while true # ';' が表れるまで、トークンを読み飛ばす。 # gcc の構文拡張に対応すべきだが、単純な実装として、';' まで読み飛ばす。 # トークン単位で読み飛ばしているので、文字列やコメント内の ';' は対象にならない。 token = next_token if token[1].val == ";" break end # p "skip: #{token[1].val}" end result end .,., def _reduce_none(val, _values, result) val[0] end end # class C_parser