# # DO NOT MODIFY!!!! # This file is automatically generated by Racc 1.4.12 # from Racc grammer file "". # require 'racc/parser.rb' class Generator < Racc::Parser module_eval(<<'...end bnf.y.rb/module_eval...', 'bnf.y.rb', 1504) RESERVED = { # keyword 'namespace' => :NAMESPACE, 'signature' => :SIGNATURE, 'celltype' => :CELLTYPE, 'cell' => :CELL, 'attr' => :ATTRIBUTE, 'var' => :VAR, 'call' => :CALL, 'entry' => :ENTRY, 'composite' => :COMPOSITE, 'require' => :REQUIRE, 'factory' => :FACTORY, 'FACTORY' => :CTFACTORY, 'typedef' => :TYPEDEF, 'struct' => :STRUCT, 'region' => :REGION, 'import' => :IMPORT, 'import_C' => :IMPORT_C, 'generate' => :GENERATE, # types 'void' => :VOID, 'volatile'=> :VOLATILE, 'const' => :CONST, 'signed' => :SIGNED, 'unsigned'=> :UNSIGNED, 'int8_t' => :INT8_T, 'int16_t' => :INT16_T, 'int32_t' => :INT32_T, 'int64_t' => :INT64_T, 'int128_t' => :INT128_T, 'uint8_t' => :UINT8_T, 'uint16_t' => :UINT16_T, 'uint32_t' => :UINT32_T, 'uint64_t' => :UINT64_T, 'uint128_t' => :UINT128_T, 'float32_t' => :FLOAT32_T, 'double64_t' => :DOUBLE64_T, 'bool_t' => :BOOL_T, 'char_t' => :CHAR_T, 'schar_t' => :SCHAR_T, 'uchar_t' => :UCHAR_T, # unrecommened types 'int' => :INT, # 'intptr' => :INTPTR, 'short' => :SHORT, 'long' => :LONG, # obsolete types 'char' => :CHAR, # 'int8' => :INT8, # 'int16' => :INT16, # 'int32' => :INT32, # 'int64' => :INT64, # 'int128' => :INT128, # 'float' => :FLOAT, # 'double' => :DOUBLE, # 'bool' => :BOOL, 'enum' => :ENUM, 'enum8' => :ENUM8, 'enum16' => :ENUM16, 'enum32' => :ENUM32, 'enum64' => :ENUM64, 'true' => :TRUE, 'false' => :FALSE, 'C_EXP' => :C_EXP, 'Descriptor' => :DESCRIPTOR, # location information for TECSCDE '__location_information__' => :__LOCATION_INFORMATION__, '__cell__' => :__CELL__, '__join__' => :__JOIN__, } # 指定子 '[]' 内でのみ使用できるキーワード RESERVED2 = { # specifier 'id' => :ID, # signature 'callback' => :CALLBACK, 'context' => :CONTEXT, 'deviate' => :DEVIATE, # celltype 'singleton' => :SINGLETON, 'idx_is_id' => :IDX_IS_ID, 'active' => :ACTIVE, # port (entry) 'inline' => :INLINE, 'ref_desc' => :REF_DESC, # call も可 # port (call) 'optional' => :OPTIONAL, 'dynamic' => :DYNAMIC, # port (call), attribute 'omit' => :OMIT, # attribute 'choice' => :CHOICE, # cell 'allocator' => :ALLOCATOR, 'prototype' => :PROTOTYPE, 'restrict' => :RESTRICT, # FuncType 'oneway' => :ONEWAY, # parameter (basic) 'in' => :IN, 'out' => :OUT, 'inout' => :INOUT, 'send' => :SEND, 'receive' => :RECEIVE, # parameter 'size_is' => :SIZE_IS, 'count_is' => :COUNT_IS, 'string' => :STRING, 'nullable' => :NULLABLE, 'through' => :THROUGH, 'in_through' => :IN_THROUGH, 'out_through' => :OUT_THROUGH, 'to_through' => :TO_THROUGH, 'node' => :NODE, 'linkunit' => :LINKUNIT , 'domain' => :DOMAIN, 'class' => :CLASS, } # 再帰的なパーサのためのスタック @@generator_nest = -1 @@generator_stack = [] @@current_locale = [] # import_C 中である @@import_C = false # すべての構文解析が完了した @@b_end_all_parse = false def self.parse( file_name, plugin = nil, b_reuse = false ) # パーサインスタンスを生成(別パーサで読み込む) parser = Generator.new # plugin から import されている場合の plugin 設定 parser.set_plugin plugin # reuse フラグを設定 parser.set_reuse b_reuse # cdl をパース parser.parse( [file_name] ) # 終期化 パーサスタックを戻す parser.finalize end def finalize # mikan Namespace.pop Namespace.pop Signature.pop Celltype.pop Cell.pop CompositeCelltype.pop end def set_plugin( plugin ) @plugin = plugin end def self.get_plugin if @@generator_stack[@@generator_nest] then # tecsgen 引数の cdl が import される場合は nil return @@generator_stack[@@generator_nest].get_plugin else return nil end end def get_plugin @plugin end def set_reuse( b_reuse ) @b_reuse = b_reuse end def self.is_reuse? if @@generator_stack[@@generator_nest] then # tecsgen 引数の cdl が import される場合は nil return @@generator_stack[@@generator_nest].is_reuse? else return false end end def is_reuse? @b_reuse end def parse(files) # mikan Namespace.push Namespace.push Signature.push Celltype.push Cell.push CompositeCelltype.push @@generator_nest += 1 @@generator_stack[@@generator_nest] = self @in_specifier = false begin @q = [] b_in_comment = false b_in_string = false # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策 TECS_LANG::set_kcode_binary files.each {|file| lineno = 1 begin string = "" #2.0 IO.foreach(file) {|line| TECSIO.foreach(file) {|line| col = 1 # line.rstrip! 改行含む文字列を扱うようになったので、ここで空白を取り除けなくなった until line.empty? if b_in_comment case line # コメント終了 when /\A\*\// b_in_comment = false when /\A./ ; when /\s+/ # line.rstrip! を止めたため \n などの空白文字とまっちするルールが必要になった ; end elsif b_in_string if line =~ /\A(?:[^"\\]|\\.)*"/ string = "#{string}#{$&}" @q << [:STRING_LITERAL, Token.new(string, file, lineno, col)] b_in_string = false elsif line =~ /\A.*\\\n/ # 改行 \n は '.' にマッチしない string += $& elsif line =~ /\A.*\n/ # 改行 \n は '.' にマッチしない string += line # この位置では error メソッドは使えない (token 読出し前) puts "error: #{file} line #{lineno}: string literal has newline without escape" @@n_error += 1 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]+/ @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)] # 8 進数定数 when /\A0[0-7]+/ @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+/ @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"(?:[^"\\]|\\.)*\\\n$/ string = $& b_in_string = true # 文字列 (改行あり, escape なし) when /\A("(?:[^"\\]|\e\.)*)\n$/ string = $1 + "\\\n" b_in_string = true # この位置では error メソッドは使えない (token 読出し前) # mikan cdl_error ではない puts "error: #{file} line #{lineno}: string literal has newline without escape" @@n_error += 1 # 山括弧で囲まれた文字列 when /\A<[0-9A-Za-z_\. \/]+>/ # AB: angle bracke @q << [:AB_STRING_LITERAL, Token.new($&, file, lineno, col)] # 行コメント when /\A\/\/.*$/ # 読み飛ばすだけ # コメント開始 when /\A\/\*/ b_in_comment = true # '>>', '<<' など when /\A>>/, /\A</, /\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( "G1014 while open or reading \'$1\'" , file ) if $debug then p puts( evar ) pp $@ end 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 if token[0] == :IDENTIFIER then # TYPE_NAME トークンへ置換え if Namespace.is_typename?( token[1].val ) then token[0] = :TYPE_NAME elsif @in_specifier && RESERVED2[ token[1].val.to_s ] then # 指定子キーワード( '[', ']' 内でのみ有効) token[0] = RESERVED2[ token[1].val.to_s ] 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 else token = [ false, false ] end token end def on_error(t, v, vstack) # p t, token_to_str(t), vstack if token_to_str(t) == "$end" then Generator.error( "G1015 Unexpected EOF" ) else Generator.error( "G1016 syntax error near \'$1\'" , v.val ) end end def self.current_locale @@current_locale[ @@generator_nest ] end @@n_error = 0 @@n_warning = 0 # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切) def self.error( msg, *arg ) locale = nil self.error2( locale, msg, *arg ) end def self.error2( locale, msg, *arg ) @@n_error += 1 msg = TECSMsg.get_error_message( msg ) # $1, $2, ... を arg で置換 count = 1 arg.each{ |a| str = TECSIO.str_code_convert( msg, a.to_s ) msg.sub!( /\$#{count}/, str ) count += 1 } # import_C の中でのエラー? if @@import_C then C_parser.error( msg ) else # Node の記憶する 位置 (locale) を使用した場合、変更以前に比べ、 # 問題発生箇所と異なる位置にエラーが出るため、構文解析中のエラー # は、解析中の位置を出力する.(new_XXX で owner が子要素のチェッ # クをすると owner の行番号が出てしまう点で、ずれが生じている) if @@b_end_all_parse == false || locale == nil then locale = @@current_locale[ @@generator_nest ] end if locale then Console.puts "error: #{locale[0]}: line #{locale[1]} #{msg}" else Console.puts "error: #{msg}" end end end # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切) def self.warning( msg, *arg ) locale = nil self.warning2( locale, msg, *arg ) end def self.warning2( locale, msg, *arg ) @@n_warning += 1 msg = TECSMsg.get_warning_message( msg ) # $1, $2, ... を arg で置換 count = 1 arg.each{ |a| str = TECSIO.str_code_convert( msg, a.to_s ) msg.sub!( /\$#{count}/, str ) count += 1 } # import_C の中でのウォーニング? if @@import_C then C_parser.warning( msg ) else if @@b_end_all_parse == false || locale == nil then locale = @@current_locale[ @@generator_nest ] end if locale then Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}" else Console.puts "warning: #{msg}" end end end def self.get_n_error @@n_error end def self.get_n_warning @@n_warning end def self.get_nest @@generator_nest end #=== '[' specifier 始め def set_in_specifier # p "set_in_specifier" @in_specifier = true end #=== ']' specifier 終わり def unset_in_specifier # p "unset_in_specifier" @in_specifier = false end # statement_specifier は構文解釈途中で参照したいため @@statement_specifier_stack = [] def self.add_statement_specifier( ss ) if( @@statement_specifier_stack[ @@generator_nest ] == nil )then @@statement_specifier_stack[ @@generator_nest ] = [ ss ] else @@statement_specifier_stack[ @@generator_nest ] << ss end end def self.get_statement_specifier spec_list = @@statement_specifier_stack[ @@generator_nest ] @@statement_specifier_stack[ @@generator_nest ] = nil return spec_list end #=== すべての構文解析が完了したことを報告 def self.end_all_parse @@b_end_all_parse = true end ...end bnf.y.rb/module_eval... ##### State transition tables begin ### clist = [ '65,566,323,779,733,806,77,346,347,323,77,77,77,160,194,195,196,197,198', '199,200,202,174,203,664,133,860,133,99,207,208,209,210,211,212,213,663', '244,831,551,394,512,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25', '26,27,28,29,30,31,32,33,34,35,38,678,395,459,309,696,42,43,44,45,46', '47,48,49,858,98,654,827,440,133,133,826,133,133,133,133,133,65,186,186', '186,186,69,67,68,308,70,71,77,72,323,73,299,300,319,819,133,175,133', '134,320,134,322,186,74,74,74,75,76,76,76,133,86,186,186,186,186,78,85', '5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32', '33,34,35,38,77,420,186,358,359,42,43,44,45,46,47,48,49,186,134,134,134', '65,134,134,134,134,134,133,133,87,571,77,77,570,323,69,67,68,325,70', '71,133,72,799,73,530,134,341,134,299,300,319,342,343,397,798,682,320', '74,322,75,134,76,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26', '27,28,29,30,31,32,33,34,35,38,444,48,49,352,353,42,43,44,45,46,47,48', '49,328,329,509,510,65,299,300,301,186,302,303,305,306,683,606,77,134', '134,69,67,68,856,70,71,272,72,607,73,77,177,134,643,299,300,319,77,77', '636,203,780,320,74,322,75,684,76,5,6,7,10,13,14,15,16,17,18,19,20,21', '22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,795,160,610,676,855,42', '43,44,45,46,47,48,49,160,637,403,470,86,160,471,633,426,781,85,793,470', '87,87,471,502,705,69,67,68,758,70,71,397,72,396,73,159,625,402,194,195', '196,197,198,199,200,202,614,203,74,792,75,133,76,207,208,209,210,211', '212,213,299,300,301,160,302,303,305,306,194,195,196,197,198,199,200', '202,160,203,624,609,283,133,626,207,208,209,210,211,212,213,867,742', '809,194,195,196,197,198,199,200,202,335,203,336,159,337,133,229,207', '208,209,210,211,212,213,194,195,196,197,198,199,200,202,810,203,251', '160,230,133,409,207,208,209,210,211,212,213,229,649,707,666,400,837', '79,134,496,277,676,251,571,704,846,570,160,539,845,393,230,848,596,408', '818,229,748,147,619,630,146,706,648,684,667,401,838,134,761,495,278', '675,250,705,167,230,620,229,86,847,760,86,817,86,85,177,618,85,87,85', '341,87,134,87,270,342,343,230,632,177,194,195,196,197,198,199,200,202', '173,203,614,744,869,133,134,207,208,209,210,211,212,213,194,195,196', '197,198,199,200,202,147,203,650,146,651,133,172,207,208,209,210,211', '212,213,194,195,196,197,198,199,200,202,171,203,388,389,390,133,170', '207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,169,203', '388,389,390,133,659,207,208,209,210,211,212,213,348,349,350,351,194', '195,196,197,198,199,200,202,168,203,583,330,660,133,134,207,208,209', '210,211,212,213,194,195,196,197,198,199,200,202,661,203,344,345,165', '133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202', '164,203,282,283,665,133,134,207,208,209,210,211,212,213,194,195,196', '197,198,199,200,202,668,203,352,353,670,133,134,207,208,209,210,211', '212,213,348,349,350,351,194,195,196,197,198,199,200,202,431,203,346', '347,671,133,134,207,208,209,210,211,212,213,672,448,673,376,377,378', '430,432,433,434,435,431,346,347,134,371,372,373,374,375,379,229,450', '451,452,449,348,349,350,351,674,430,432,433,434,435,134,341,142,143', '677,230,342,343,194,195,196,197,198,199,200,202,163,203,346,347,203', '133,134,207,208,209,210,211,212,213,346,347,344,345,194,195,196,197', '198,199,200,202,680,203,344,345,162,133,134,207,208,209,210,211,212', '213,194,195,196,197,198,199,200,202,161,203,398,330,689,133,160,207', '208,209,210,211,212,213,194,195,196,197,198,199,200,202,691,203,719', '510,692,133,693,207,208,209,210,211,212,213,194,195,196,197,198,199', '200,202,160,203,376,377,378,133,134,207,208,209,210,211,212,213,371', '372,373,374,375,379,102,103,104,105,106,107,108,109,110,111,112,695', '134,697,698,699,700,703,708,229,20,21,22,23,24,25,26,27,28,29,30,31', '32,33,134,711,562,74,714,230,715,716,194,195,196,197,198,199,200,202', '717,203,157,744,720,133,134,207,208,209,210,211,212,213,194,195,196', '197,198,199,200,202,721,203,722,599,724,133,134,207,208,209,210,211', '212,213,194,195,196,197,198,199,200,202,725,203,726,728,614,133,731', '207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,732,203', '156,153,736,133,152,207,208,209,210,211,212,213,739,743,751,752,194', '195,196,197,198,199,200,202,144,203,754,576,755,133,134,207,208,209', '210,211,212,213,194,195,196,197,198,199,200,202,757,203,759,762,763', '133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202', '764,203,767,768,769,133,134,207,208,209,210,211,212,213,194,195,196', '197,198,199,200,202,770,203,643,232,703,133,134,207,208,209,210,211', '212,213,86,86,86,229,177,775,85,85,85,86,87,87,87,776,86,85,777,778', '134,87,85,141,711,230,87,786,194,195,196,197,198,199,200,202,140,203', '788,138,132,133,134,207,208,209,210,211,212,213,194,195,196,197,198', '199,200,202,791,203,130,796,128,133,134,207,208,209,210,211,212,213', '194,195,196,197,198,199,200,202,800,203,801,-383,802,133,134,207,208', '209,210,211,212,213,194,195,196,197,198,199,200,202,803,203,804,124', '123,133,807,207,208,209,210,211,212,213,767,203,813,816,194,195,196', '197,198,199,200,202,821,203,822,94,824,133,134,207,208,209,210,211,212', '213,194,195,196,197,198,199,200,202,828,203,829,830,90,133,134,207,208', '209,210,211,212,213,194,195,196,197,198,199,200,202,833,203,834,89,836', '133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202', '798,203,839,840,323,133,134,207,208,209,210,211,212,213,842,843,844', '849,194,195,196,197,198,199,200,202,850,203,851,88,857,133,134,207,208', '209,210,211,212,213,194,195,196,197,198,199,200,202,357,203,356,362', '363,133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200', '202,365,203,366,122,861,133,134,207,208,209,210,211,212,213,194,195', '196,197,198,199,200,202,3,203,156,355,399,133,134,207,208,209,210,211', '212,213,404,140,406,407,194,195,196,197,198,199,200,202,410,203,411', '412,413,133,134,207,208,209,210,211,212,213,194,195,196,197,198,199', '200,202,414,203,415,354,862,133,134,207,208,209,210,211,212,213,194', '195,196,197,198,199,200,202,438,203,439,442,453,133,134,207,208,209', '210,211,212,213,194,195,196,197,198,199,200,202,330,203,456,457,186', '133,134,207,208,209,210,211,212,213,464,465,466,473,194,195,196,197', '198,199,200,202,474,203,307,285,284,133,134,207,208,209,210,211,212', '213,194,195,196,197,198,199,200,202,281,203,280,279,276,133,134,207', '208,209,210,211,212,213,194,195,196,197,198,199,200,202,275,203,274', '267,177,133,134,207,208,209,210,211,212,213,194,195,196,197,198,199', '200,202,265,203,203,259,203,133,134,207,208,209,210,211,212,213,156', '503,504,505,194,195,196,197,198,199,200,202,506,203,507,863,513,133', '134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,514', '203,515,259,517,133,134,207,208,209,210,211,212,213,86,86,86,86,252', '265,85,85,85,85,87,87,87,87,134,299,300,301,520,302,303,305,306,521', '194,195,196,197,198,199,200,202,203,203,524,203,134,133,203,207,208', '209,210,211,212,213,177,528,194,195,196,197,198,199,200,202,529,203', '532,533,534,133,134,207,208,209,210,211,212,213,115,116,117,118,119', '120,121,115,116,117,118,119,120,121,134,536,537,540,186,5,6,7,10,13', '14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38', '265,865,550,554,160,42,43,44,45,46,47,48,49,134,194,195,196,197,198', '199,200,202,556,203,866,186,560,133,562,207,208,209,210,211,212,213', '323,134,565,87,242,190,578,579,354,355,356,357,580,189,188,186,185,184', '183,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31', '32,33,34,35,38,182,181,596,597,599,42,43,44,45,46,47,48,49,194,195,196', '197,198,199,200,202,600,203,330,601,603,133,604,207,208,209,210,211', '212,213,605,,134,194,195,196,197,198,199,200,339,,203,,,,133,,207,208', '209,210,211,212,213,194,195,196,197,198,199,200,202,,203,,685,,133,', '207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,,203,,,', '133,,207,208,209,210,211,212,213,,194,195,196,197,198,199,200,202,,203', ',576,,133,134,207,208,209,210,211,212,213,,,,194,195,196,197,198,199', '200,202,,203,,655,,133,134,207,208,209,210,211,212,213,194,195,196,197', '198,199,200,202,,203,,,,133,134,207,208,209,210,211,212,213,194,195', '196,197,198,199,200,202,,203,,,,133,134,207,208,209,210,211,212,213', ',194,195,196,197,198,199,200,202,,203,,,,133,134,207,208,209,210,211', '212,213,,,,194,195,196,197,198,199,200,202,,203,,,,133,134,207,208,209', '210,211,212,213,194,195,196,197,198,199,200,202,,203,,,,133,134,207', '208,209,210,211,212,213,194,195,196,197,198,199,200,202,,203,,,,133', '134,207,208,209,210,211,212,213,,194,195,196,197,198,199,200,202,,203', ',,,133,134,207,208,209,210,211,212,213,,,,194,195,196,197,198,199,200', '202,,203,,,,133,134,207,208,209,210,211,212,213,102,103,104,105,106', '107,108,109,110,111,112,,,,134,,,,,,,,,,,,,,,,,,,,,,134,,115,116,117', '118,119,120,121,,,229,581,,,470,574,,573,,,,,134,,87,,,,,,230,,,,,,', ',,,,,,,,,,134,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27', '28,29,30,31,32,33,34,35,38,236,,77,,,42,43,44,45,46,47,48,49,,,,,,,', ',,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28', '29,30,31,32,33,34,35,38,657,,77,,,42,43,44,45,46,47,48,49,,,,,,,,,,', ',,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29', '30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,', ',,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31', '32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,498,,,,,,,,,,,,,,,,,,5', '6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33', '34,35,38,126,381,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7', '10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34', '35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14', '15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,77', ',,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17', '18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,77,,,,,42,43', '44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20', '21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,77,422,,,,42,43,44,45', '46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22', '23,24,25,26,27,28,29,30,31,32,33,34,35,38,77,508,,,,42,43,44,45,46,47', '48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24', '25,26,27,28,29,30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,', ',,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26', '27,28,29,30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,', ',,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28', '29,30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,', ',,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30', '31,32,33,34,35,38,77,621,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,', ',,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31', '32,33,34,35,38,77,627,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5', '6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33', '34,35,38,,646,,,,42,43,44,45,46,47,48,49,102,103,104,105,106,107,108', '109,110,111,112,,,,,,,,,,,,,,,,,,,,,,,,,,,,115,116,117,118,119,120,121', '5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32', '33,34,35,38,,,,,,42,43,44,45,46,47,48,49,5,6,7,10,13,14,15,16,17,18', '19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,,,,,,42,43,44', '45,46,47,48,49,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27', '28,29,30,31,32,33,34,35,38,,,,,,42,43,44,45,46,47,48,49,5,6,7,10,13', '14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38', ',,,,,42,43,44,45,46,47,48,49,5,6,7,10,13,14,15,16,17,18,19,20,21,22', '23,24,25,26,27,28,29,30,31,32,33,34,35,38,,,,,,42,43,44,45,46,47,48', '49,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31', '32,33,34,35,38,,,,,,42,43,44,45,46,47,48,49,5,6,7,10,13,14,15,16,17', '18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,,,,,,42,43', '44,45,46,47,48,49,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26', '27,28,29,30,31,32,33,34,35,38,,,,,,42,43,44,45,46,47' ] racc_action_table = arr = ::Array.new(3597, 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 = [ '2,463,803,749,688,787,189,218,218,189,602,2,324,386,714,714,714,714', '714,714,714,714,123,714,586,754,854,714,41,714,714,714,714,714,714,714', '585,151,815,441,257,386,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,602,257,324,187,631,2,2,2,2,2,2,2,2,854,41,567,810,303,298', '550,810,90,620,328,74,320,286,749,688,787,463,2,2,2,187,2,2,286,2,555', '2,189,189,189,803,799,123,504,754,189,714,189,586,602,2,324,2,602,2', '324,503,83,815,441,585,151,2,83,286,286,286,286,286,286,286,286,286', '286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286', '286,286,184,286,631,225,225,286,286,286,286,286,286,286,286,567,303', '298,550,158,90,620,328,74,320,281,706,87,469,310,158,469,310,286,286', '286,191,286,286,464,286,776,286,416,799,480,504,555,555,555,480,480', '614,776,614,555,286,555,286,503,286,158,158,158,158,158,158,158,158', '158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158', '158,158,158,310,87,87,220,220,158,158,158,158,158,158,158,158,191,191', '383,383,182,184,184,184,416,184,184,184,184,615,528,182,281,706,158', '158,158,852,158,158,169,158,529,158,553,169,464,553,310,310,310,289', '750,552,530,750,310,158,310,158,615,158,182,182,182,182,182,182,182', '182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182', '182,182,182,182,772,369,535,723,852,182,182,182,182,182,182,182,182', '100,553,264,334,125,536,334,552,289,750,125,765,468,334,125,468,369', '772,182,182,182,723,182,182,259,182,259,182,100,545,264,705,705,705', '705,705,705,705,705,540,705,182,765,182,705,182,705,705,705,705,705', '705,705,289,289,289,701,289,289,289,289,761,761,761,761,761,761,761', '761,564,761,545,531,531,761,545,761,761,761,761,761,761,761,865,701', '794,760,760,760,760,760,760,760,760,205,760,205,564,205,760,705,760', '760,760,760,760,760,760,720,720,720,720,720,720,720,720,794,720,253', '428,705,720,273,720,720,720,720,720,720,720,761,559,645,588,262,825', '3,705,360,173,598,154,569,642,838,569,113,428,838,253,761,839,728,273', '801,760,705,145,541,549,145,642,559,645,588,262,825,761,728,360,173', '598,154,642,113,760,541,720,681,839,728,510,801,283,681,124,541,510', '681,283,479,510,760,283,168,479,479,720,551,168,704,704,704,704,704', '704,704,704,122,704,556,704,868,704,720,704,704,704,704,704,704,704', '699,699,699,699,699,699,699,699,84,699,561,84,563,699,121,699,699,699', '699,699,699,699,695,695,695,695,695,695,695,695,120,695,512,512,512', '695,117,695,695,695,695,695,695,695,691,691,691,691,691,691,691,691', '116,691,249,249,249,691,572,691,691,691,691,691,691,691,219,219,219', '219,667,667,667,667,667,667,667,667,115,667,497,497,575,667,704,667', '667,667,667,667,667,667,285,285,285,285,285,285,285,285,577,285,217', '217,112,285,699,285,285,285,285,285,285,285,252,252,252,252,252,252', '252,252,108,252,178,178,587,252,695,252,252,252,252,252,252,252,229', '229,229,229,229,229,229,229,589,229,489,489,593,229,691,229,229,229', '229,229,229,229,488,488,488,488,861,861,861,861,861,861,861,861,539', '861,486,486,594,861,667,861,861,861,861,861,861,861,595,313,596,241', '241,241,539,539,539,539,539,292,485,485,285,241,241,241,241,241,241', '229,313,313,313,313,487,487,487,487,597,292,292,292,292,292,252,216', '80,80,600,229,216,216,848,848,848,848,848,848,848,848,106,848,484,484', '605,848,229,848,848,848,848,848,848,848,483,483,482,482,821,821,821', '821,821,821,821,821,608,821,481,481,104,821,861,821,821,821,821,821', '821,821,818,818,818,818,818,818,818,818,102,818,260,260,621,818,623', '818,818,818,818,818,818,818,807,807,807,807,807,807,807,807,625,807', '669,669,626,807,627,807,807,807,807,807,807,807,798,798,798,798,798', '798,798,798,629,798,502,502,502,798,848,798,798,798,798,798,798,798', '502,502,502,502,502,502,159,159,159,159,159,159,159,159,159,159,159', '630,821,632,633,635,637,640,646,807,36,36,36,36,36,36,36,36,36,36,36', '36,36,36,818,650,651,652,653,807,654,656,795,795,795,795,795,795,795', '795,658,795,99,795,673,795,807,795,795,795,795,795,795,795,786,786,786', '786,786,786,786,786,674,786,676,677,678,786,798,786,786,786,786,786', '786,786,775,775,775,775,775,775,775,775,679,775,680,682,684,775,685', '775,775,775,775,775,775,775,770,770,770,770,770,770,770,770,686,770', '98,93,692,770,92,770,770,770,770,770,770,770,696,703,710,712,471,471', '471,471,471,471,471,471,82,471,715,471,718,471,795,471,471,471,471,471', '471,471,144,144,144,144,144,144,144,144,721,144,727,732,733,144,786', '144,144,144,144,144,144,144,466,466,466,466,466,466,466,466,735,466', '736,738,739,466,775,466,466,466,466,466,466,466,146,146,146,146,146', '146,146,146,740,146,741,146,742,146,770,146,146,146,146,146,146,146', '240,86,4,144,743,744,240,86,4,591,240,86,4,745,418,591,747,748,471,591', '418,78,752,144,418,753,867,867,867,867,867,867,867,867,76,867,757,75', '73,867,144,867,867,867,867,867,867,867,397,397,397,397,397,397,397,397', '763,397,72,774,71,397,466,397,397,397,397,397,397,397,359,359,359,359', '359,359,359,359,778,359,779,780,781,359,146,359,359,359,359,359,359', '359,358,358,358,358,358,358,358,358,784,358,785,69,68,358,788,358,358', '358,358,358,358,358,793,796,797,800,357,357,357,357,357,357,357,357', '805,357,806,38,809,357,867,357,357,357,357,357,357,357,163,163,163,163', '163,163,163,163,811,163,812,814,16,163,397,163,163,163,163,163,163,163', '356,356,356,356,356,356,356,356,819,356,820,9,822,356,359,356,356,356', '356,356,356,356,355,355,355,355,355,355,355,355,828,355,831,832,833', '355,358,355,355,355,355,355,355,355,835,836,837,840,354,354,354,354', '354,354,354,354,841,354,842,8,853,354,357,354,354,354,354,354,354,354', '353,353,353,353,353,353,353,353,224,353,223,230,231,353,163,353,353', '353,353,353,353,353,352,352,352,352,352,352,352,352,235,352,237,67,856', '352,356,352,352,352,352,352,352,352,351,351,351,351,351,351,351,351', '1,351,251,222,261,351,355,351,351,351,351,351,351,351,266,267,269,271', '350,350,350,350,350,350,350,350,275,350,276,277,278,350,354,350,350', '350,350,350,350,350,349,349,349,349,349,349,349,349,279,349,280,221', '857,349,353,349,349,349,349,349,349,349,348,348,348,348,348,348,348', '348,301,348,302,304,319,348,352,348,348,348,348,348,348,348,347,347', '347,347,347,347,347,347,201,347,321,322,193,347,351,347,347,347,347', '347,347,347,329,331,332,336,346,346,346,346,346,346,346,346,337,346', '186,181,180,346,350,346,346,346,346,346,346,346,345,345,345,345,345', '345,345,345,176,345,175,174,172,345,349,345,345,345,345,345,345,345', '344,344,344,344,344,344,344,344,171,344,170,166,165,344,348,344,344', '344,344,344,344,344,343,343,343,343,343,343,343,343,164,343,162,161', '362,343,347,343,343,343,343,343,343,343,157,374,375,376,342,342,342', '342,342,342,342,342,377,342,378,860,388,342,346,342,342,342,342,342', '342,342,341,341,341,341,341,341,341,341,389,341,390,395,396,341,345', '341,341,341,341,341,341,341,424,367,248,143,156,401,424,367,248,143', '424,367,248,143,344,538,538,538,402,538,538,538,538,403,335,335,335', '335,335,335,335,335,404,335,405,406,343,335,407,335,335,335,335,335', '335,335,408,410,339,339,339,339,339,339,339,339,413,339,419,420,422', '339,342,339,339,339,339,339,339,339,255,255,255,255,255,255,255,167', '167,167,167,167,167,167,341,425,426,431,436,339,339,339,339,339,339', '339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339', '339,339,339,339,339,437,863,440,444,446,339,339,339,339,339,339,339', '339,335,202,202,202,202,202,202,202,202,448,202,864,454,455,202,456', '202,202,202,202,202,202,202,457,339,459,149,148,139,472,475,490,491', '492,493,494,137,136,135,134,131,129,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', '202,202,202,127,126,517,518,520,202,202,202,202,202,202,202,202,206', '206,206,206,206,206,206,206,521,206,522,523,525,206,526,206,206,206', '206,206,206,206,527,,202,207,207,207,207,207,207,207,207,,207,,,,207', ',207,207,207,207,207,207,207,619,619,619,619,619,619,619,619,,619,,619', ',619,,619,619,619,619,619,619,619,580,580,580,580,580,580,580,580,,580', ',,,580,,580,580,580,580,580,580,580,,573,573,573,573,573,573,573,573', ',573,,573,,573,206,573,573,573,573,573,573,573,,,,570,570,570,570,570', '570,570,570,,570,,570,,570,207,570,570,570,570,570,570,570,566,566,566', '566,566,566,566,566,,566,,,,566,619,566,566,566,566,566,566,566,515', '515,515,515,515,515,515,515,,515,,,,515,580,515,515,515,515,515,515', '515,,514,514,514,514,514,514,514,514,,514,,,,514,573,514,514,514,514', '514,514,514,,,,513,513,513,513,513,513,513,513,,513,,,,513,570,513,513', '513,513,513,513,513,507,507,507,507,507,507,507,507,,507,,,,507,566', '507,507,507,507,507,507,507,506,506,506,506,506,506,506,506,,506,,,', '506,515,506,506,506,506,506,506,506,,505,505,505,505,505,505,505,505', ',505,,,,505,514,505,505,505,505,505,505,505,,,,496,496,496,496,496,496', '496,496,,496,,,,496,513,496,496,496,496,496,496,496,458,458,458,458', '458,458,458,458,458,458,458,,,,507,,,,,,,,,,,,,,,,,,,,,,506,,458,458', '458,458,458,458,458,,,496,496,,,470,470,,470,,,,,505,,470,,,,,,496,', ',,,,,,,,,,,,,,,496,470,470,470,470,470,470,470,470,470,470,470,470,470', '470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,147,,147', ',,470,470,470,470,470,470,470,470,,,,,,,,,,,,,,,,,,,,,147,147,147,147', '147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147', '147,147,147,147,147,147,147,571,,571,,,147,147,147,147,147,147,147,147', ',,,,,,,,,,,,,,,,,,,,571,571,571,571,571,571,571,571,571,571,571,571', '571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,366', ',,,,571,571,571,571,571,571,571,571,,,,,,,,,,,,,,,,,,,366,366,366,366', '366,366,366,366,366,366,366,366,366,366,366,366,366,366,366,366,366', '366,366,366,366,366,366,366,246,,,,,366,366,366,366,366,366,366,366', '366,,,,,,,,,,,,,,,,,,246,246,246,246,246,246,246,246,246,246,246,246', '246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,70,246', ',,,246,246,246,246,246,246,246,246,,,,,,,,,,,,,,,,,,,70,70,70,70,70', '70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70', '153,,,,,70,70,70,70,70,70,70,70,,,,,,,,,,,,,,,,,,,153,153,153,153,153', '153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153', '153,153,153,153,153,153,245,,,,,153,153,153,153,153,153,153,153,,,,', ',,,,,,,,,,,,,,245,245,245,245,245,245,245,245,245,245,245,245,245,245', '245,245,245,245,245,245,245,245,245,245,245,245,245,245,288,,,,,245', '245,245,245,245,245,245,245,,,,,,,,,,,,,,,,,,,288,288,288,288,288,288', '288,288,288,288,288,288,288,288,288,288,288,288,288,288,288,288,288', '288,288,288,288,288,380,288,,,,288,288,288,288,288,288,288,288,,,,,', ',,,,,,,,,,,,,380,380,380,380,380,380,380,380,380,380,380,380,380,380', '380,380,380,380,380,380,380,380,380,380,380,380,380,380,438,380,,,,380', '380,380,380,380,380,380,380,,,,,,,,,,,,,,,,,,,438,438,438,438,438,438', '438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438', '438,438,438,438,438,439,,,,,438,438,438,438,438,438,438,438,,,,,,,,', ',,,,,,,,,,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439', '439,439,439,439,439,439,439,439,439,439,439,439,439,453,,,,,439,439', '439,439,439,439,439,439,,,,,,,,,,,,,,,,,,,453,453,453,453,453,453,453', '453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453', '453,453,453,453,542,,,,,453,453,453,453,453,453,453,453,,,,,,,,,,,,', ',,,,,,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542', '542,542,542,542,542,542,542,542,542,542,542,542,546,542,,,,542,542,542', '542,542,542,542,542,,,,,,,,,,,,,,,,,,,546,546,546,546,546,546,546,546', '546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546', '546,546,546,557,546,,,,546,546,546,546,546,546,546,546,,,,,,,,,,,,,', ',,,,,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557', '557,557,557,557,557,557,557,557,557,557,557,557,,557,,,,557,557,557', '557,557,557,557,557,53,53,53,53,53,53,53,53,53,53,53,,,,,,,,,,,,,,,', ',,,,,,,,,,,,53,53,53,53,53,53,53,694,694,694,694,694,694,694,694,694', '694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694', '694,694,,,,,,694,694,694,694,694,694,694,694,690,690,690,690,690,690', '690,690,690,690,690,690,690,690,690,690,690,690,690,690,690,690,690', '690,690,690,690,690,,,,,,690,690,690,690,690,690,690,690,239,239,239', '239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239', '239,239,239,239,239,239,239,239,,,,,,239,239,239,239,239,239,239,239', '40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40', '40,40,40,40,40,,,,,,40,40,40,40,40,40,40,40,284,284,284,284,284,284', '284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284', '284,284,284,284,284,,,,,,284,284,284,284,284,284,284,284,511,511,511', '511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511', '511,511,511,511,511,511,511,511,,,,,,511,511,511,511,511,511,511,511', '611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,611', '611,611,611,611,611,611,611,611,611,611,611,,,,,,611,611,611,611,611', '611,611,611,234,234,234,234,234,234,234,234,234,234,234,234,234,234', '234,234,234,234,234,234,234,234,234,234,234,234,234,234,,,,,,234,234', '234,234,234,234' ] racc_action_check = arr = ::Array.new(3597, 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, 1429, -1, 489, 1138, nil, nil, nil, 1326, 1278, nil, nil, nil, nil, nil, nil, 1288, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 889, nil, 1259, nil, 3351, 13, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 3134, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 1401, 1240, 1239, 2552, 1190, 1188, 1168, 79, 1167, 1164, nil, 1095, nil, 757, nil, 1023, 122, 574, nil, 1137, 172, nil, nil, 76, nil, 974, 971, nil, nil, nil, nil, 1026, 904, 340, nil, 850, nil, 832, nil, 802, nil, 688, nil, nil, nil, 670, 486, nil, 644, 618, 602, nil, nil, 596, 580, 550, 11, 523, 348, 1803, 1804, nil, 1775, nil, 1774, nil, nil, 1829, 1735, 1827, 1770, nil, 1762, nil, nil, nil, 1669, 1077, 501, 1121, 2314, 1822, 1812, nil, 27, nil, 2611, 453, nil, 1637, 1612, 182, 831, nil, 1601, 1604, 1283, 1598, 1580, 1465, 1622, 537, 280, 1578, 1576, 1558, 482, 1562, 1561, 1528, nil, 659, nil, 1538, 1541, 269, nil, 154, nil, 1534, 33, nil, -6, nil, 128, nil, 1417, nil, nil, nil, nil, nil, nil, nil, 1510, 1804, nil, nil, 435, 1886, 1911, nil, nil, nil, nil, nil, nil, nil, nil, 777, 657, -19, 613, 224, 1462, 1398, 1352, 1349, 132, nil, nil, nil, 709, 1379, 1376, nil, nil, 3515, 1397, nil, 1368, nil, 3310, 1136, 689, nil, nil, nil, 2670, 2493, nil, 1668, 556, nil, 1416, 687, 430, nil, 1615, nil, 30, nil, 365, 851, 1423, 477, nil, 341, nil, 1402, 1429, nil, 1404, nil, 1405, nil, 465, nil, 1414, 1447, 1418, 1448, 1437, 1439, 174, nil, 527, 3392, 665, 95, nil, 2729, 289, nil, nil, 678, nil, nil, nil, nil, nil, 73, nil, nil, 1428, 1430, 72, 1431, nil, nil, nil, nil, nil, 181, nil, nil, 668, nil, nil, nil, nil, nil, 1432, 80, 1395, 1510, nil, 0, nil, nil, nil, 78, 1526, nil, 1526, 1527, nil, 347, 1697, 1523, 1532, nil, 1721, nil, 1651, 1629, 1603, 1581, 1559, 1537, 1511, 1489, 1467, 1445, 1419, 1397, 1375, 1353, 1327, 1305, 1261, 1235, 1213, 450, nil, 1606, nil, nil, nil, 2434, 1667, nil, 328, nil, nil, nil, nil, 1619, 1620, 1621, 1630, 1632, nil, 2788, nil, nil, 228, nil, nil, 0, nil, 1634, 1652, 1654, nil, nil, nil, nil, 1649, 1650, 1191, nil, nil, nil, 1665, 1622, 1683, 1696, 1638, 1699, 1702, 1706, nil, 1711, nil, nil, 1721, nil, nil, 166, nil, 1150, 1723, 1694, nil, 1695, nil, 1666, 1650, 1721, nil, 459, nil, nil, 1753, nil, nil, nil, nil, 1655, 1777, 2847, 2906, 1752, 25, nil, nil, 1755, nil, 1783, nil, 1805, nil, nil, nil, nil, 2965, 1709, 1803, 1805, 1813, 2119, 1790, nil, nil, nil, -8, 188, nil, 1099, nil, 356, 183, 2253, 1055, 1821, nil, nil, 1825, nil, nil, nil, 524, 190, 819, 807, 799, 787, 745, 721, 757, 705, 689, 1818, 1803, 1803, 1803, 1801, nil, 2187, 645, nil, nil, nil, nil, 832, 115, 102, 2162, 2139, 2117, nil, nil, 525, 3433, 534, 2095, 2070, 2047, nil, 1863, 1865, nil, 1864, 1854, 1887, 1889, nil, 1890, 1892, 1869, 270, 252, 293, 385, nil, nil, nil, 302, 345, nil, 1573, 653, 377, 499, 3024, nil, nil, 308, 3083, nil, nil, 438, 74, 536, 288, 282, nil, 94, 548, 3142, nil, 444, nil, 571, nil, 459, 409, nil, 2025, 71, nil, 486, 2003, 2375, 623, 1978, nil, 647, nil, 662, nil, nil, 1955, nil, nil, nil, nil, 26, 14, 691, 476, 709, nil, 1145, nil, 713, 739, 749, 746, 775, 452, nil, 728, nil, -2, nil, nil, 804, nil, nil, 827, nil, nil, 3474, nil, nil, 204, 269, nil, nil, nil, 1933, 77, 823, nil, 852, nil, 872, 843, 847, nil, 890, 925, 60, 896, 897, nil, 929, nil, 899, nil, nil, 814, nil, 484, nil, nil, 475, 901, nil, nil, nil, 943, 944, 835, 920, 948, nil, 951, nil, 963, nil, nil, nil, nil, nil, nil, nil, nil, 643, nil, 843, nil, nil, nil, 935, 980, nil, 982, 983, 959, 1007, 979, 522, 1005, nil, 1006, 983, 1026, nil, -10, nil, 3269, 617, 972, nil, 3228, 595, 1038, nil, nil, 573, nil, 396, nil, 1045, 551, 382, 175, nil, nil, nil, 1015, nil, 1042, nil, 12, 939, nil, nil, 1059, nil, 459, 1073, nil, 302, nil, nil, nil, 1049, 491, nil, nil, nil, 1050, 1076, nil, 1099, 1100, nil, 1102, 1073, 1090, 1118, 1009, 1134, 1108, 1145, nil, 1121, 1148, -11, 290, nil, 1152, 1129, 10, nil, nil, 1166, nil, nil, 437, 412, nil, 1161, nil, 323, nil, nil, nil, nil, 1029, nil, 328, nil, 1163, 1007, 175, nil, 1208, 1210, 1098, 1187, nil, nil, 1117, 1207, 985, -9, 1209, nil, nil, nil, nil, 1248, 428, 963, 1249, 1221, 893, 100, 1222, 495, nil, -13, nil, 1230, 1258, 871, nil, 1235, 75, 1280, 1285, nil, 1256, 24, nil, nil, 849, 1301, 1277, 827, 1309, nil, nil, 478, nil, nil, 1295, nil, nil, 1324, 1327, 1326, nil, 1341, 1281, 1313, 486, 492, 1314, 1323, 1294, nil, nil, nil, nil, nil, 801, nil, nil, nil, 272, 1354, 11, nil, 1402, 1441, nil, nil, 1633, 735, nil, 1778, 1806, 395, nil, 1169, 555, nil ] racc_action_default = [ -194, -418, -1, -418, -418, -69, -70, -71, -72, -73, -74, -75, -76, -77, -78, -79, -418, -81, -82, -83, -84, -85, -86, -87, -88, -89, -90, -91, -92, -93, -94, -95, -96, -97, -98, -99, -418, -101, -104, -118, -418, -418, -126, -127, -128, -129, -130, -131, -136, -137, -192, -193, -195, -418, -197, -198, -199, -200, -201, -202, -203, -206, -207, -208, -209, -210, -234, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -405, -418, 870, -418, -65, -67, -418, -139, -140, -418, -146, -205, -204, -418, -100, -106, -418, -109, -72, -73, -119, -418, -125, -418, -211, -418, -214, -418, -216, -418, -218, -418, -220, -221, -222, -418, -418, -386, -418, -418, -418, -394, -395, -418, -418, -418, -418, -418, -418, -418, -418, -247, -418, -254, -418, -260, -250, -418, -327, -418, -418, -350, -418, -398, -410, -62, -418, -418, -138, -418, -418, -418, -147, -148, -418, -102, -418, -418, -132, -134, -418, -418, -418, -406, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -337, -418, -244, -418, -242, -418, -255, -418, -251, -418, -418, -328, -418, -399, -418, -66, -2, -3, -4, -5, -6, -7, -8, -9, -10, -418, -12, -14, -18, -418, -418, -22, -23, -24, -25, -26, -27, -28, -30, -34, -37, -40, -45, -48, -50, -52, -54, -56, -58, -61, -68, -186, -418, -418, -418, -143, -63, -418, -418, -145, -150, -152, -418, -156, -418, -141, -149, -80, -418, -418, -107, -418, -418, -123, -418, -418, -418, -196, -418, -212, -418, -224, -418, -418, -418, -418, -228, -418, -291, -418, -418, -387, -418, -389, -418, -391, -418, -404, -418, -418, -418, -418, -418, -418, -418, -240, -418, -418, -418, -418, -248, -418, -418, -261, -263, -418, -265, -266, -267, -268, -269, -418, -288, -289, -418, -418, -418, -418, -313, -314, -252, -324, -326, -418, -351, -353, -418, -355, -356, -357, -358, -365, -418, -418, -418, -418, -381, -418, -407, -408, -409, -418, -418, -13, -418, -418, -60, -172, -418, -418, -418, -19, -418, -20, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -418, -190, -418, -142, -64, -144, -418, -157, -155, -418, -159, -161, -162, -163, -418, -418, -166, -418, -418, -171, -418, -105, -108, -418, -120, -122, -418, -112, -114, -418, -418, -133, -135, -124, -213, -418, -418, -418, -215, -217, -219, -418, -418, -418, -418, -418, -418, -418, -418, -393, -418, -397, -235, -418, -237, -238, -418, -245, -418, -418, -418, -249, -418, -256, -418, -418, -418, -262, -418, -270, -272, -418, -274, -275, -276, -277, -290, -418, -418, -418, -250, -418, -315, -329, -418, -352, -418, -359, -418, -361, -362, -363, -364, -418, -372, -418, -418, -418, -418, -418, -400, -401, -402, -418, -418, -11, -418, -173, -174, -175, -418, -418, -418, -16, -17, -418, -31, -32, -33, -35, -36, -38, -39, -41, -42, -43, -44, -46, -47, -49, -51, -53, -55, -57, -418, -187, -418, -418, -151, -153, -154, -158, -418, -418, -418, -418, -418, -418, -103, -110, -418, -418, -418, -418, -418, -418, -225, -418, -418, -229, -418, -418, -338, -418, -399, -418, -418, -418, -418, -418, -418, -418, -243, -246, -253, -418, -418, -259, -418, -418, -418, -418, -418, -294, -296, -418, -418, -305, -307, -418, -418, -418, -418, -418, -349, -418, -418, -418, -367, -418, -373, -418, -382, -418, -418, -385, -418, -418, -29, -176, -418, -418, -418, -405, -182, -418, -178, -418, -15, -21, -418, -188, -191, -189, -160, -418, -418, -418, -418, -418, -121, -418, -113, -418, -418, -418, -418, -418, -418, -232, -418, -223, -418, -388, -390, -418, -396, -236, -418, -241, -257, -418, -264, -271, -418, -418, -278, -279, -284, -418, -418, -418, -295, -418, -298, -418, -418, -418, -306, -418, -418, -418, -418, -418, -316, -418, -319, -418, -330, -331, -418, -333, -418, -343, -354, -418, -418, -368, -369, -371, -418, -418, -418, -418, -418, -180, -418, -184, -418, -177, -183, -179, -59, -164, -165, -167, -168, -418, -170, -418, -115, -116, -117, -418, -418, -230, -418, -418, -418, -418, -418, -418, -418, -273, -418, -418, -418, -292, -418, -293, -418, -418, -418, -304, -418, -418, -418, -310, -312, -418, -325, -418, -335, -418, -418, -418, -418, -360, -366, -374, -418, -383, -418, -403, -418, -418, -181, -185, -418, -111, -418, -418, -233, -418, -384, -392, -239, -418, -418, -280, -281, -285, -418, -418, -297, -418, -418, -308, -418, -418, -418, -418, -418, -418, -418, -418, -348, -418, -418, -418, -418, -379, -418, -418, -418, -169, -226, -418, -231, -258, -418, -418, -286, -418, -299, -418, -302, -303, -309, -311, -418, -332, -418, -334, -418, -418, -418, -341, -418, -418, -343, -418, -375, -376, -418, -418, -418, -418, -418, -282, -283, -287, -300, -418, -418, -418, -418, -418, -418, -418, -418, -418, -370, -418, -380, -418, -418, -418, -301, -418, -418, -418, -418, -339, -418, -418, -342, -344, -418, -418, -418, -418, -418, -227, -317, -418, -320, -322, -418, -336, -340, -418, -418, -418, -378, -418, -418, -418, -418, -418, -418, -418, -418, -417, -318, -321, -323, -346, -418, -345, -377, -413, -418, -418, -418, -415, -418, -418, -411, -412, -418, -418, -347, -418, -418, -418, -416, -418, -418, -414 ] racc_goto_table = [ 53, 135, 82, 227, 260, 176, 149, 333, 231, 233, 158, 258, 100, 150, 97, 318, 235, 151, 563, 383, 462, 178, 50, 166, 324, 261, 523, 461, 525, 526, 387, 370, 9, 8, 338, 429, 263, 638, 561, 81, 139, 598, 311, 382, 125, 467, 266, 332, 547, 269, 271, 702, 290, 246, 154, 543, 745, 615, 766, 642, 710, 483, 484, 485, 486, 137, 234, 487, 488, 310, 558, 544, 548, 645, 644, 243, 479, 480, 481, 482, 446, 447, 557, 455, 148, 559, 544, 750, 361, 709, 333, 783, 268, 273, 191, 326, 364, 327, 854, 859, 1, 233, 852, 2, 340, 489, 490, 491, 492, 493, 80, 367, 91, 253, 392, 808, 92, 245, 93, 386, 590, 391, 419, 179, 145, 499, 369, 248, 569, 360, 51, 254, 256, 257, 262, 541, 318, 180, 127, 286, 333, 82, 129, 288, 333, 380, 423, 811, 131, 289, 612, 249, 608, 773, 428, 628, 255, 427, 234, 622, 784, 729, 785, 445, 333, 437, 686, 542, 623, 476, 477, 478, 472, 765, 647, 544, 334, 382, 192, 548, 53, 572, 292, 546, 475, 629, 552, 313, 9, 8, 544, 634, 635, 825, 136, 187, 494, 553, 723, 443, 639, 701, 287, 771, 497, nil, nil, nil, 416, nil, nil, nil, 9, 8, nil, nil, nil, nil, nil, 248, 248, nil, nil, nil, nil, 436, nil, 679, 233, nil, 441, 405, nil, 712, 782, nil, nil, nil, 368, nil, nil, nil, nil, 249, 249, 516, 522, 454, 522, 522, nil, nil, nil, nil, nil, 463, nil, nil, 418, 518, 468, nil, 424, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 519, nil, nil, nil, nil, nil, 501, nil, 417, 613, nil, 53, 234, 425, 292, nil, 527, nil, nil, 584, 592, 568, nil, 511, nil, 462, nil, nil, nil, nil, nil, nil, 461, 421, nil, 313, nil, 333, 333, 333, 334, 531, nil, 9, 8, 333, 333, 333, nil, 458, 734, nil, nil, nil, 737, nil, nil, nil, nil, 233, 577, nil, nil, nil, nil, 538, 575, nil, nil, 587, 588, 589, nil, nil, nil, 713, nil, 593, 594, 595, nil, 248, 582, 555, nil, 602, nil, nil, nil, 669, nil, 820, 500, nil, nil, nil, nil, nil, nil, 522, nil, nil, nil, nil, nil, 249, nil, nil, 318, nil, nil, nil, 662, nil, nil, nil, 234, nil, 567, nil, nil, 841, nil, 468, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 179, 564, 812, nil, nil, nil, 535, nil, nil, nil, nil, nil, 653, nil, 585, 586, 656, 233, nil, 577, 545, 549, nil, nil, 658, nil, nil, nil, nil, nil, 611, 522, nil, nil, nil, 545, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 652, nil, nil, 631, nil, nil, nil, 687, nil, nil, nil, 591, nil, nil, nil, nil, 234, nil, nil, nil, nil, nil, 333, nil, nil, nil, 333, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 735, 718, nil, nil, 738, 690, 730, nil, nil, nil, nil, 694, 545, nil, nil, nil, 549, nil, nil, 688, nil, nil, nil, 640, nil, nil, nil, 545, nil, nil, nil, nil, nil, 740, nil, nil, 747, nil, 746, nil, nil, nil, nil, nil, nil, nil, nil, nil, 753, nil, nil, 756, 333, nil, nil, nil, nil, 681, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 458, nil, nil, 333, nil, nil, nil, nil, nil, nil, nil, 741, 797, nil, nil, nil, nil, nil, nil, 789, 790, nil, nil, 333, 774, nil, nil, nil, nil, nil, nil, nil, 794, 749, nil, 814, nil, nil, 522, nil, nil, nil, nil, nil, nil, nil, nil, nil, 805, nil, nil, nil, nil, 333, nil, 832, nil, 746, nil, nil, nil, nil, nil, nil, nil, nil, 823, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 727, nil, 787, nil, 835, nil, 853, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 864, nil, nil, 815, nil, nil, 868, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 640 ] racc_goto_check = [ 45, 4, 31, 32, 5, 82, 29, 22, 23, 28, 47, 84, 67, 53, 25, 100, 55, 4, 152, 44, 73, 88, 64, 47, 156, 23, 83, 75, 83, 83, 48, 60, 34, 33, 10, 105, 85, 128, 153, 30, 155, 87, 137, 43, 25, 61, 82, 11, 117, 82, 82, 132, 97, 40, 51, 112, 134, 106, 115, 133, 151, 14, 14, 14, 14, 135, 29, 15, 15, 136, 112, 24, 24, 106, 138, 53, 12, 12, 13, 13, 139, 144, 145, 146, 31, 147, 24, 148, 32, 149, 22, 150, 157, 158, 160, 161, 28, 162, 163, 164, 1, 28, 165, 2, 8, 16, 17, 18, 19, 20, 26, 27, 37, 51, 23, 115, 39, 41, 42, 46, 49, 52, 6, 31, 54, 57, 59, 25, 62, 63, 65, 66, 79, 80, 81, 86, 100, 89, 90, 91, 22, 31, 92, 93, 22, 40, 94, 134, 95, 96, 98, 45, 83, 132, 99, 117, 45, 97, 29, 112, 151, 107, 151, 137, 22, 109, 110, 111, 113, 10, 10, 10, 6, 114, 112, 24, 25, 43, 30, 24, 45, 61, 45, 116, 11, 118, 120, 45, 34, 33, 24, 121, 122, 123, 124, 125, 6, 126, 87, 127, 129, 130, 64, 131, 5, nil, nil, nil, 4, nil, nil, nil, 34, 33, nil, nil, nil, nil, nil, 25, 25, nil, nil, nil, nil, 4, nil, 83, 28, nil, 4, 155, nil, 153, 128, nil, nil, nil, 31, nil, nil, nil, nil, 45, 45, 84, 5, 4, 5, 5, nil, nil, nil, nil, nil, 4, nil, nil, 25, 23, 53, nil, 25, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 85, nil, nil, nil, nil, nil, 47, nil, 31, 105, nil, 45, 29, 45, 45, nil, 82, nil, nil, 60, 48, 10, nil, 47, nil, 73, nil, nil, nil, nil, nil, nil, 75, 64, nil, 45, nil, 22, 22, 22, 25, 88, nil, 34, 33, 22, 22, 22, nil, 45, 24, nil, nil, nil, 24, nil, nil, nil, nil, 28, 23, nil, nil, nil, nil, 47, 55, nil, nil, 6, 6, 6, nil, nil, nil, 73, nil, 6, 6, 6, nil, 25, 32, 47, nil, 156, nil, nil, nil, 44, nil, 152, 31, nil, nil, nil, nil, nil, nil, 5, nil, nil, nil, nil, nil, 45, nil, nil, 100, nil, nil, nil, 22, nil, nil, nil, 29, nil, 4, nil, nil, 152, nil, 53, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 31, 67, 83, nil, nil, nil, 31, nil, nil, nil, nil, nil, 23, nil, 4, 4, 23, 28, nil, 23, 45, 45, nil, nil, 55, nil, nil, nil, nil, nil, 47, 5, nil, nil, nil, 45, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 47, nil, nil, 4, nil, nil, nil, 23, nil, nil, nil, 25, nil, nil, nil, nil, 29, nil, nil, nil, nil, nil, 22, nil, nil, nil, 22, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 6, 23, nil, nil, 6, 47, 84, nil, nil, nil, nil, 47, 45, nil, nil, nil, 45, nil, nil, 4, nil, nil, nil, 45, nil, nil, nil, 45, nil, nil, nil, nil, nil, 23, nil, nil, 32, nil, 23, nil, nil, nil, nil, nil, nil, nil, nil, nil, 23, nil, nil, 32, 22, nil, nil, nil, nil, 25, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 45, nil, nil, 22, nil, nil, nil, nil, nil, nil, nil, 47, 6, nil, nil, nil, nil, nil, nil, 32, 32, nil, nil, 22, 82, nil, nil, nil, nil, nil, nil, nil, 23, 4, nil, 6, nil, nil, 5, nil, nil, nil, nil, nil, nil, nil, nil, nil, 23, nil, nil, nil, nil, 22, nil, 6, nil, 23, nil, nil, nil, nil, nil, nil, nil, nil, 32, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 31, nil, 4, nil, 23, nil, 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, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 23, nil, nil, 4, nil, nil, 23, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 45 ] racc_goto_pointer = [ nil, 100, 103, nil, -73, -158, -163, nil, -103, nil, -172, -155, -268, -268, -287, -285, -249, -249, -249, -249, -249, nil, -195, -138, -367, -26, 106, -128, -138, -81, 35, -2, -141, 31, 30, nil, nil, 76, nil, 78, -100, -35, 80, -203, -229, -2, -130, -90, -219, -390, nil, -44, -130, -74, 41, -131, nil, -241, nil, -115, -210, -289, -340, -100, 20, 128, -27, -41, nil, nil, nil, nil, nil, -304, nil, -297, nil, nil, nil, -27, -28, -30, -119, -378, -150, -128, -302, -479, -104, 11, 67, -43, 70, -40, -142, 75, -35, -132, -388, -138, -174, nil, nil, nil, nil, -257, -483, -523, nil, -133, -453, -271, -383, -377, -563, -678, -256, -391, -364, nil, -256, -361, -360, -617, 120, 59, -246, -109, -516, -353, -439, -538, -589, -494, -648, -10, -120, -147, -481, -233, nil, nil, nil, nil, -232, -371, -237, -370, -622, -559, -659, -590, -439, -418, nil, -36, -166, -75, -77, nil, -47, -96, -94, -753, -755, -741 ] racc_goto_default = [ nil, nil, nil, 204, 193, 201, 331, 205, 214, 206, 215, nil, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 66, 4, nil, 240, 39, 40, nil, 385, nil, 95, 96, 11, 12, 37, 36, nil, nil, nil, nil, 247, nil, 241, nil, nil, nil, 384, 41, nil, 155, 83, 84, nil, 237, 238, 239, nil, nil, nil, 469, nil, nil, nil, 52, nil, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 101, nil, nil, nil, nil, 617, nil, 264, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 291, nil, 293, 294, 295, 296, 297, nil, nil, 616, 298, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 304, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 641, nil, 772, nil, nil, nil, nil, 312, nil, 314, 315, 316, 317, nil, nil, nil, nil, nil, nil, nil, nil, 321, nil, 113, nil, nil, 114, nil, 460, nil, nil, nil, nil, nil, nil ] racc_reduce_table = [ 0, 0, :racc_error, 1, 141, :_reduce_none, 1, 143, :_reduce_2, 1, 143, :_reduce_3, 1, 143, :_reduce_4, 1, 143, :_reduce_5, 1, 143, :_reduce_6, 1, 143, :_reduce_7, 1, 143, :_reduce_8, 1, 143, :_reduce_9, 1, 143, :_reduce_10, 3, 143, :_reduce_11, 1, 145, :_reduce_none, 2, 145, :_reduce_13, 1, 147, :_reduce_none, 4, 147, :_reduce_15, 3, 147, :_reduce_16, 3, 147, :_reduce_17, 1, 148, :_reduce_none, 2, 148, :_reduce_19, 2, 148, :_reduce_20, 4, 148, :_reduce_21, 1, 149, :_reduce_22, 1, 149, :_reduce_23, 1, 149, :_reduce_24, 1, 149, :_reduce_25, 1, 149, :_reduce_26, 1, 149, :_reduce_27, 1, 150, :_reduce_none, 4, 150, :_reduce_29, 1, 152, :_reduce_none, 3, 152, :_reduce_31, 3, 152, :_reduce_32, 3, 152, :_reduce_33, 1, 153, :_reduce_none, 3, 153, :_reduce_35, 3, 153, :_reduce_36, 1, 154, :_reduce_none, 3, 154, :_reduce_38, 3, 154, :_reduce_39, 1, 155, :_reduce_none, 3, 155, :_reduce_41, 3, 155, :_reduce_42, 3, 155, :_reduce_43, 3, 155, :_reduce_44, 1, 156, :_reduce_none, 3, 156, :_reduce_46, 3, 156, :_reduce_47, 1, 157, :_reduce_none, 3, 157, :_reduce_49, 1, 158, :_reduce_none, 3, 158, :_reduce_51, 1, 159, :_reduce_none, 3, 159, :_reduce_53, 1, 160, :_reduce_none, 3, 160, :_reduce_55, 1, 161, :_reduce_none, 3, 161, :_reduce_57, 1, 162, :_reduce_none, 5, 162, :_reduce_59, 1, 146, :_reduce_60, 1, 163, :_reduce_61, 3, 164, :_reduce_62, 1, 167, :_reduce_none, 2, 167, :_reduce_64, 1, 166, :_reduce_65, 3, 166, :_reduce_66, 1, 170, :_reduce_none, 3, 170, :_reduce_68, 1, 168, :_reduce_69, 1, 168, :_reduce_70, 1, 168, :_reduce_71, 1, 168, :_reduce_none, 1, 168, :_reduce_none, 1, 168, :_reduce_74, 1, 168, :_reduce_none, 1, 168, :_reduce_none, 1, 168, :_reduce_77, 1, 168, :_reduce_78, 1, 168, :_reduce_79, 4, 168, :_reduce_80, 1, 176, :_reduce_81, 1, 176, :_reduce_82, 1, 176, :_reduce_83, 1, 177, :_reduce_84, 1, 177, :_reduce_85, 1, 177, :_reduce_86, 1, 177, :_reduce_87, 1, 177, :_reduce_88, 1, 177, :_reduce_89, 1, 177, :_reduce_90, 1, 177, :_reduce_91, 1, 177, :_reduce_92, 1, 177, :_reduce_93, 1, 177, :_reduce_94, 1, 177, :_reduce_95, 1, 177, :_reduce_96, 1, 177, :_reduce_97, 1, 178, :_reduce_98, 1, 178, :_reduce_99, 2, 175, :_reduce_100, 1, 175, :_reduce_none, 0, 181, :_reduce_102, 6, 173, :_reduce_103, 0, 182, :_reduce_104, 5, 173, :_reduce_105, 2, 173, :_reduce_106, 1, 180, :_reduce_none, 2, 180, :_reduce_none, 1, 179, :_reduce_109, 3, 183, :_reduce_110, 6, 183, :_reduce_111, 1, 186, :_reduce_112, 3, 186, :_reduce_113, 1, 188, :_reduce_114, 4, 188, :_reduce_115, 4, 188, :_reduce_116, 4, 188, :_reduce_117, 1, 165, :_reduce_none, 2, 165, :_reduce_119, 1, 184, :_reduce_120, 3, 184, :_reduce_121, 1, 189, :_reduce_none, 4, 174, :_reduce_none, 5, 174, :_reduce_none, 2, 174, :_reduce_none, 1, 190, :_reduce_126, 1, 190, :_reduce_127, 1, 190, :_reduce_128, 1, 190, :_reduce_129, 1, 190, :_reduce_130, 1, 190, :_reduce_131, 1, 191, :_reduce_none, 3, 191, :_reduce_none, 1, 192, :_reduce_none, 3, 192, :_reduce_none, 1, 169, :_reduce_136, 1, 169, :_reduce_137, 2, 171, :_reduce_138, 1, 171, :_reduce_none, 1, 194, :_reduce_140, 3, 194, :_reduce_141, 4, 194, :_reduce_142, 3, 194, :_reduce_143, 4, 194, :_reduce_144, 3, 194, :_reduce_145, 1, 193, :_reduce_146, 2, 193, :_reduce_147, 2, 193, :_reduce_148, 3, 193, :_reduce_149, 1, 195, :_reduce_none, 3, 195, :_reduce_none, 1, 196, :_reduce_152, 3, 196, :_reduce_153, 3, 197, :_reduce_154, 2, 197, :_reduce_155, 1, 197, :_reduce_156, 2, 197, :_reduce_157, 3, 198, :_reduce_158, 1, 199, :_reduce_159, 3, 199, :_reduce_160, 1, 200, :_reduce_161, 1, 200, :_reduce_162, 1, 200, :_reduce_163, 4, 200, :_reduce_164, 4, 200, :_reduce_165, 1, 200, :_reduce_166, 4, 200, :_reduce_167, 4, 200, :_reduce_168, 6, 200, :_reduce_169, 4, 200, :_reduce_170, 1, 200, :_reduce_171, 1, 151, :_reduce_none, 2, 151, :_reduce_173, 1, 201, :_reduce_none, 1, 201, :_reduce_none, 2, 201, :_reduce_none, 3, 202, :_reduce_177, 2, 202, :_reduce_178, 3, 202, :_reduce_179, 3, 202, :_reduce_180, 4, 202, :_reduce_181, 2, 202, :_reduce_182, 3, 202, :_reduce_none, 3, 202, :_reduce_184, 4, 202, :_reduce_185, 1, 172, :_reduce_186, 3, 172, :_reduce_187, 4, 172, :_reduce_188, 4, 172, :_reduce_189, 1, 203, :_reduce_190, 3, 203, :_reduce_191, 2, 142, :_reduce_none, 2, 142, :_reduce_none, 0, 142, :_reduce_none, 1, 204, :_reduce_none, 4, 204, :_reduce_196, 1, 206, :_reduce_none, 1, 206, :_reduce_none, 1, 206, :_reduce_none, 1, 206, :_reduce_none, 1, 206, :_reduce_none, 1, 206, :_reduce_none, 1, 206, :_reduce_none, 2, 206, :_reduce_none, 2, 206, :_reduce_none, 1, 206, :_reduce_none, 1, 206, :_reduce_none, 1, 206, :_reduce_none, 1, 206, :_reduce_none, 1, 206, :_reduce_none, 1, 207, :_reduce_211, 3, 207, :_reduce_212, 4, 219, :_reduce_213, 1, 219, :_reduce_214, 4, 219, :_reduce_215, 1, 219, :_reduce_216, 4, 219, :_reduce_217, 1, 219, :_reduce_218, 4, 219, :_reduce_219, 1, 219, :_reduce_220, 1, 219, :_reduce_221, 1, 219, :_reduce_222, 6, 219, :_reduce_223, 1, 220, :_reduce_224, 3, 220, :_reduce_225, 7, 224, :_reduce_226, 10, 224, :_reduce_227, 1, 221, :_reduce_228, 3, 221, :_reduce_229, 5, 225, :_reduce_230, 7, 225, :_reduce_231, 1, 227, :_reduce_232, 3, 227, :_reduce_233, 1, 209, :_reduce_234, 5, 217, :_reduce_235, 7, 217, :_reduce_236, 5, 216, :_reduce_237, 5, 216, :_reduce_238, 9, 218, :_reduce_239, 4, 208, :_reduce_240, 7, 208, :_reduce_241, 1, 229, :_reduce_none, 4, 229, :_reduce_none, 1, 228, :_reduce_244, 3, 228, :_reduce_245, 6, 210, :_reduce_246, 1, 230, :_reduce_247, 1, 231, :_reduce_none, 2, 231, :_reduce_none, 1, 144, :_reduce_250, 2, 144, :_reduce_251, 3, 144, :_reduce_252, 6, 211, :_reduce_253, 1, 232, :_reduce_254, 0, 233, :_reduce_255, 2, 233, :_reduce_256, 3, 234, :_reduce_257, 6, 234, :_reduce_258, 6, 212, :_reduce_259, 1, 235, :_reduce_260, 1, 236, :_reduce_none, 2, 236, :_reduce_none, 1, 237, :_reduce_263, 4, 237, :_reduce_264, 1, 238, :_reduce_none, 1, 238, :_reduce_none, 1, 238, :_reduce_none, 1, 238, :_reduce_none, 1, 238, :_reduce_none, 1, 239, :_reduce_270, 3, 239, :_reduce_271, 1, 245, :_reduce_272, 4, 245, :_reduce_273, 1, 245, :_reduce_274, 1, 245, :_reduce_275, 1, 245, :_reduce_276, 1, 245, :_reduce_277, 1, 246, :_reduce_278, 1, 246, :_reduce_279, 3, 246, :_reduce_280, 3, 246, :_reduce_281, 5, 247, :_reduce_282, 5, 247, :_reduce_283, 4, 240, :_reduce_284, 6, 240, :_reduce_285, 7, 240, :_reduce_286, 8, 240, :_reduce_287, 1, 248, :_reduce_288, 1, 248, :_reduce_289, 1, 249, :_reduce_290, 1, 226, :_reduce_none, 1, 250, :_reduce_none, 5, 241, :_reduce_293, 1, 251, :_reduce_294, 2, 251, :_reduce_295, 1, 252, :_reduce_296, 4, 252, :_reduce_297, 1, 253, :_reduce_298, 4, 253, :_reduce_299, 5, 253, :_reduce_300, 3, 254, :_reduce_301, 1, 254, :_reduce_302, 1, 255, :_reduce_none, 5, 242, :_reduce_304, 1, 256, :_reduce_305, 2, 256, :_reduce_306, 1, 257, :_reduce_307, 4, 257, :_reduce_308, 4, 258, :_reduce_309, 5, 243, :_reduce_310, 7, 243, :_reduce_311, 5, 244, :_reduce_none, 1, 259, :_reduce_313, 1, 259, :_reduce_314, 0, 260, :_reduce_none, 2, 260, :_reduce_none, 7, 261, :_reduce_317, 9, 261, :_reduce_318, 1, 262, :_reduce_none, 1, 263, :_reduce_320, 3, 263, :_reduce_321, 1, 263, :_reduce_322, 3, 263, :_reduce_323, 0, 267, :_reduce_324, 8, 213, :_reduce_325, 4, 213, :_reduce_326, 1, 264, :_reduce_327, 1, 265, :_reduce_328, 0, 266, :_reduce_none, 2, 266, :_reduce_none, 2, 266, :_reduce_none, 4, 268, :_reduce_332, 1, 268, :_reduce_333, 3, 270, :_reduce_334, 1, 270, :_reduce_335, 6, 272, :_reduce_336, 1, 222, :_reduce_337, 1, 223, :_reduce_none, 6, 271, :_reduce_339, 7, 271, :_reduce_340, 4, 271, :_reduce_341, 6, 271, :_reduce_342, 1, 273, :_reduce_none, 6, 269, :_reduce_344, 9, 269, :_reduce_345, 9, 269, :_reduce_346, 12, 269, :_reduce_347, 1, 274, :_reduce_none, 6, 214, :_reduce_349, 1, 275, :_reduce_350, 1, 276, :_reduce_none, 2, 276, :_reduce_none, 1, 277, :_reduce_353, 4, 277, :_reduce_354, 1, 278, :_reduce_none, 1, 278, :_reduce_none, 1, 278, :_reduce_none, 1, 278, :_reduce_none, 1, 279, :_reduce_359, 4, 284, :_reduce_360, 1, 284, :_reduce_361, 1, 284, :_reduce_362, 1, 284, :_reduce_363, 1, 284, :_reduce_364, 1, 280, :_reduce_365, 5, 281, :_reduce_366, 1, 285, :_reduce_367, 2, 285, :_reduce_368, 0, 289, :_reduce_369, 8, 282, :_reduce_370, 4, 282, :_reduce_371, 1, 286, :_reduce_372, 1, 287, :_reduce_373, 0, 288, :_reduce_none, 2, 288, :_reduce_none, 2, 288, :_reduce_none, 6, 290, :_reduce_377, 4, 290, :_reduce_378, 6, 283, :_reduce_379, 8, 283, :_reduce_380, 1, 292, :_reduce_none, 1, 293, :_reduce_none, 1, 291, :_reduce_none, 9, 215, :_reduce_384, 6, 215, :_reduce_385, 1, 294, :_reduce_none, 3, 294, :_reduce_none, 6, 297, :_reduce_388, 3, 297, :_reduce_389, 6, 297, :_reduce_390, 3, 297, :_reduce_391, 8, 297, :_reduce_392, 4, 297, :_reduce_393, 1, 297, :_reduce_394, 1, 297, :_reduce_395, 6, 297, :_reduce_396, 4, 297, :_reduce_397, 1, 295, :_reduce_398, 0, 296, :_reduce_none, 2, 296, :_reduce_none, 2, 296, :_reduce_none, 1, 299, :_reduce_none, 4, 299, :_reduce_403, 1, 298, :_reduce_404, 1, 185, :_reduce_405, 1, 187, :_reduce_406, 4, 205, :_reduce_none, 2, 300, :_reduce_none, 2, 300, :_reduce_none, 0, 300, :_reduce_none, 14, 301, :_reduce_411, 2, 303, :_reduce_412, 0, 303, :_reduce_413, 6, 304, :_reduce_414, 13, 302, :_reduce_415, 5, 305, :_reduce_416, 0, 305, :_reduce_417 ] racc_reduce_n = 418 racc_shift_n = 870 racc_token_table = { false => 0, :error => 1, :TRUE => 2, :FALSE => 3, :INTEGER_CONSTANT => 4, :FLOATING_CONSTANT => 5, :OCTAL_CONSTANT => 6, :HEX_CONSTANT => 7, :CHARACTER_LITERAL => 8, "(" => 9, ")" => 10, :STRING_LITERAL => 11, "[" => 12, "]" => 13, "." => 14, :IDENTIFIER => 15, "->" => 16, :SIZEOF => 17, "&" => 18, "*" => 19, "+" => 20, "-" => 21, "~" => 22, "!" => 23, "/" => 24, "%" => 25, "<<" => 26, ">>" => 27, "<" => 28, ">" => 29, "<=" => 30, ">=" => 31, "==" => 32, "!=" => 33, "^" => 34, "|" => 35, "&&" => 36, "||" => 37, "?" => 38, ":" => 39, ";" => 40, "," => 41, "=" => 42, :VOID => 43, :FLOAT32_T => 44, :DOUBLE64_T => 45, :TYPE_NAME => 46, :BOOL_T => 47, :FLOAT => 48, :DOUBLE => 49, :DESCRIPTOR => 50, :CHAR_T => 51, :SCHAR_T => 52, :UCHAR_T => 53, :CHAR => 54, :SHORT => 55, :INT => 56, :LONG => 57, :INT8_T => 58, :INT16_T => 59, :INT32_T => 60, :INT64_T => 61, :INT128_T => 62, :UINT8_T => 63, :UINT16_T => 64, :UINT32_T => 65, :UINT64_T => 66, :UINT128_T => 67, :SIGNED => 68, :UNSIGNED => 69, :STRUCT => 70, "{" => 71, "}" => 72, :STRING => 73, :SIZE_IS => 74, :COUNT_IS => 75, :ENUM => 76, :ENUM8 => 77, :ENUM16 => 78, :ENUM32 => 79, :ENUM64 => 80, :ENUM128 => 81, :CONST => 82, :VOLATILE => 83, "..." => 84, :IN => 85, :OUT => 86, :INOUT => 87, :SEND => 88, :RECEIVE => 89, :NULLABLE => 90, :C_EXP => 91, :ALLOCATOR => 92, :CALLBACK => 93, :CONTEXT => 94, :DEVIATE => 95, :ID => 96, :PROTOTYPE => 97, :RESTRICT => 98, :SINGLETON => 99, :IDX_IS_ID => 100, :ACTIVE => 101, :GENERATE => 102, :IMPORT_C => 103, :IMPORT => 104, :AB_STRING_LITERAL => 105, :TYPEDEF => 106, :NAMESPACE => 107, "::" => 108, :SIGNATURE => 109, :ONEWAY => 110, :CELLTYPE => 111, :INLINE => 112, :OPTIONAL => 113, :REF_DESC => 114, :DYNAMIC => 115, :OMIT => 116, :CALL => 117, :ENTRY => 118, :ATTRIBUTE => 119, :CHOICE => 120, :VAR => 121, :REQUIRE => 122, :FACTORY => 123, :CTFACTORY => 124, :CELL => 125, :THROUGH => 126, :COMPOSITE => 127, "=>" => 128, :REGION => 129, :IN_THROUGH => 130, :OUT_THROUGH => 131, :TO_THROUGH => 132, :NODE => 133, :LINKUNIT => 134, :DOMAIN => 135, :CLASS => 136, :__LOCATION_INFORMATION__ => 137, :__CELL__ => 138, :__JOIN__ => 139 } racc_nt_base = 140 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", "TRUE", "FALSE", "INTEGER_CONSTANT", "FLOATING_CONSTANT", "OCTAL_CONSTANT", "HEX_CONSTANT", "CHARACTER_LITERAL", "\"(\"", "\")\"", "STRING_LITERAL", "\"[\"", "\"]\"", "\".\"", "IDENTIFIER", "\"->\"", "SIZEOF", "\"&\"", "\"*\"", "\"+\"", "\"-\"", "\"~\"", "\"!\"", "\"/\"", "\"%\"", "\"<<\"", "\">>\"", "\"<\"", "\">\"", "\"<=\"", "\">=\"", "\"==\"", "\"!=\"", "\"^\"", "\"|\"", "\"&&\"", "\"||\"", "\"?\"", "\":\"", "\";\"", "\",\"", "\"=\"", "VOID", "FLOAT32_T", "DOUBLE64_T", "TYPE_NAME", "BOOL_T", "FLOAT", "DOUBLE", "DESCRIPTOR", "CHAR_T", "SCHAR_T", "UCHAR_T", "CHAR", "SHORT", "INT", "LONG", "INT8_T", "INT16_T", "INT32_T", "INT64_T", "INT128_T", "UINT8_T", "UINT16_T", "UINT32_T", "UINT64_T", "UINT128_T", "SIGNED", "UNSIGNED", "STRUCT", "\"{\"", "\"}\"", "STRING", "SIZE_IS", "COUNT_IS", "ENUM", "ENUM8", "ENUM16", "ENUM32", "ENUM64", "ENUM128", "CONST", "VOLATILE", "\"...\"", "IN", "OUT", "INOUT", "SEND", "RECEIVE", "NULLABLE", "C_EXP", "ALLOCATOR", "CALLBACK", "CONTEXT", "DEVIATE", "ID", "PROTOTYPE", "RESTRICT", "SINGLETON", "IDX_IS_ID", "ACTIVE", "GENERATE", "IMPORT_C", "IMPORT", "AB_STRING_LITERAL", "TYPEDEF", "NAMESPACE", "\"::\"", "SIGNATURE", "ONEWAY", "CELLTYPE", "INLINE", "OPTIONAL", "REF_DESC", "DYNAMIC", "OMIT", "CALL", "ENTRY", "ATTRIBUTE", "CHOICE", "VAR", "REQUIRE", "FACTORY", "CTFACTORY", "CELL", "THROUGH", "COMPOSITE", "\"=>\"", "REGION", "IN_THROUGH", "OUT_THROUGH", "TO_THROUGH", "NODE", "LINKUNIT", "DOMAIN", "CLASS", "__LOCATION_INFORMATION__", "__CELL__", "__JOIN__", "$start", "all", "component_description", "primary_expression", "namespace_identifier", "string_literal_list", "expression", "postfix_expression", "unary_expression", "unary_operator", "cast_expression", "type_name", "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", "constant_expression", "declaration", "type_specifier_qualifier_list", "init_declarator_list", "declaration_specifiers", "type_specifier", "type_qualifier", "init_declarator", "declarator", "initializer", "struct_specifier", "enum_specifier", "sign_int_type", "char_type", "int_type", "sign", "struct_tag", "struct_declaration_list", "@1", "@2", "struct_declaration", "struct_declarator_list", "spec_L", "pointer_specifier_list", "spec_R", "pointer_specifier", "struct_declarator", "enum_type", "enumerator_list", "enumerator", "pointer", "direct_declarator", "parameter_type_list", "parameter_list", "parameter_declaration", "parameter_specifier_list_bracket", "parameter_specifier_list", "parameter_specifier", "abstract_declarator", "direct_abstract_declarator", "initializer_list", "specified_statement", "location_information", "statement", "statement_specifier_list", "typedef", "const_statement", "namespace", "signature", "celltype", "cell", "composite_celltype", "region", "import", "import_C", "signature_plugin", "statement_specifier", "alloc_list", "restrict_list", "plugin_name", "plugin_arg", "alloc", "restrict", "port_name", "region_name_list", "declarator_list", "typedef_specifier", "namespace_name", "statement_list", "signature_name", "function_head_list", "function_head", "celltype_name", "celltype_statement_list", "specified_celltype_statement", "celltype_statement", "celltype_statement_specifier_list", "port", "attribute", "var", "require", "factory", "celltype_statement_specifier", "alloc_list2", "alloc2", "port_type", "namespace_signature_name", "array_size", "attribute_declaration_list", "attribute_declaration", "attribute_specifier", "choice_list", "choice_element", "var_declaration_list", "var_declaration", "var_specifier", "factory_head", "factory_function_list", "factory_function", "factory_function_name", "arg_list", "namespace_celltype_name", "cell_name", "join_list", "@3", "specified_join", "reverse_join", "join_specifier_list", "join", "join_specifier", "cae_name", "array_index", "composite_celltype_name", "composite_celltype_statement_list", "specified_composite_celltype_statement", "composite_celltype_statement", "composite_celltype_statement_specifier_list", "composite_port", "composite_attribute", "internal_cell", "export_join", "composite_celltype_statement_specifier", "composite_attribute_declaration_list", "internal_namespace_celltype_name", "internal_cell_name", "internal_join_list", "@4", "external_join", "internal_cell_elem_name", "export_name", "internal_ref_cell_name", "region_specifier_list", "region_name", "region_statement", "region_specifier", "namespace_region_name", "region_cell", "cell_location_join_location_list", "cell_location", "join_location", "port_location_list", "port_location", "bar_list" ] Racc_debug_parser = false ##### State transition tables end ##### # reduce 0 omitted # reduce 1 omitted module_eval(<<'.,.,', 'bnf.y.rb', 52) def _reduce_2(val, _values, result) result = [ :IDENTIFIER, val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 54) def _reduce_3(val, _values, result) result = [ :BOOL_CONSTANT, true ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 56) def _reduce_4(val, _values, result) result = [ :BOOL_CONSTANT, false ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 58) def _reduce_5(val, _values, result) result = [ :INTEGER_CONSTANT, val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 60) def _reduce_6(val, _values, result) result = [ :FLOATING_CONSTANT, val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 62) def _reduce_7(val, _values, result) result = [ :OCTAL_CONSTANT, val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 64) def _reduce_8(val, _values, result) result = [ :HEX_CONSTANT, val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 66) def _reduce_9(val, _values, result) result = [ :CHARACTER_LITERAL, val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 68) def _reduce_10(val, _values, result) result = [ :STRING_LITERAL_LIST, val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 70) def _reduce_11(val, _values, result) result = [ :PARENTHESES, val[1].get_elements ] result end .,., # reduce 12 omitted module_eval(<<'.,.,', 'bnf.y.rb', 76) def _reduce_13(val, _values, result) # 連接した文字列を1つの文字列にまとめる str = "\"" + val[0].val.gsub( /\"(.*)\"/, "\\1" ) + val[1].val.gsub( /\"(.*)\"/, "\\1" ) + "\"" result = Token.new( str, val[0].file, val[0].lineno, val[0].col ) result end .,., # reduce 14 omitted module_eval(<<'.,.,', 'bnf.y.rb', 85) def _reduce_15(val, _values, result) result = [ :OP_SUBSC, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 87) def _reduce_16(val, _values, result) result = [ :OP_DOT, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 89) def _reduce_17(val, _values, result) result = [ :OP_REF, val[0], val[2] ] result end .,., # reduce 18 omitted module_eval(<<'.,.,', 'bnf.y.rb', 95) def _reduce_19(val, _values, result) result = [ val[0], val[1] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 97) def _reduce_20(val, _values, result) result = [ :OP_SIZEOF_EXPR, val[1] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 99) def _reduce_21(val, _values, result) result = [ :OP_SIZEOF_TYPE, val[1] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 102) def _reduce_22(val, _values, result) result = :OP_U_AMP result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 103) def _reduce_23(val, _values, result) result = :OP_U_ASTER result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 104) def _reduce_24(val, _values, result) result = :OP_U_PLUS result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 105) def _reduce_25(val, _values, result) result = :OP_U_MINUS result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 106) def _reduce_26(val, _values, result) result = :OP_U_TILDE result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 107) def _reduce_27(val, _values, result) result = :OP_U_EXCLAM result end .,., # reduce 28 omitted module_eval(<<'.,.,', 'bnf.y.rb', 112) def _reduce_29(val, _values, result) result = [ :CAST, val[1], val[3] ] result end .,., # reduce 30 omitted module_eval(<<'.,.,', 'bnf.y.rb', 117) def _reduce_31(val, _values, result) result = [ :OP_MULT, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 119) def _reduce_32(val, _values, result) result = [ :OP_DIV, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 121) def _reduce_33(val, _values, result) result = [ :OP_REMAIN, val[0], val[2] ] result end .,., # reduce 34 omitted module_eval(<<'.,.,', 'bnf.y.rb', 126) def _reduce_35(val, _values, result) result = [ :OP_ADD, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 128) def _reduce_36(val, _values, result) result = [ :OP_SUB, val[0], val[2] ] result end .,., # reduce 37 omitted module_eval(<<'.,.,', 'bnf.y.rb', 133) def _reduce_38(val, _values, result) result = [ :OP_LSFT, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 135) def _reduce_39(val, _values, result) result = [ :OP_RSFT, val[0], val[2] ] result end .,., # reduce 40 omitted module_eval(<<'.,.,', 'bnf.y.rb', 140) def _reduce_41(val, _values, result) result = [ :OP_LT, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 142) def _reduce_42(val, _values, result) result = [ :OP_GT, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 144) def _reduce_43(val, _values, result) result = [ :OP_LE, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 146) def _reduce_44(val, _values, result) result = [ :OP_GE, val[0], val[2] ] result end .,., # reduce 45 omitted module_eval(<<'.,.,', 'bnf.y.rb', 151) def _reduce_46(val, _values, result) result = [ :OP_EQ, val[0], val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 153) def _reduce_47(val, _values, result) result = [ :OP_NE, val[0], val[2] ] result end .,., # reduce 48 omitted module_eval(<<'.,.,', 'bnf.y.rb', 158) def _reduce_49(val, _values, result) result = [ :OP_AND, val[0], val[2] ] result end .,., # reduce 50 omitted module_eval(<<'.,.,', 'bnf.y.rb', 163) def _reduce_51(val, _values, result) result = [ :OP_EOR, val[0], val[2] ] result end .,., # reduce 52 omitted module_eval(<<'.,.,', 'bnf.y.rb', 168) def _reduce_53(val, _values, result) result = [ :OP_OR, val[0], val[2] ] result end .,., # reduce 54 omitted module_eval(<<'.,.,', 'bnf.y.rb', 173) def _reduce_55(val, _values, result) result = [ :OP_LAND, val[0], val[2] ] result end .,., # reduce 56 omitted module_eval(<<'.,.,', 'bnf.y.rb', 178) def _reduce_57(val, _values, result) result = [ :OP_LOR, val[0], val[2] ] result end .,., # reduce 58 omitted module_eval(<<'.,.,', 'bnf.y.rb', 183) def _reduce_59(val, _values, result) result = [ :OP_CEX, val[0], val[2].get_elements, val[4] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 190) def _reduce_60(val, _values, result) result = Expression.new( val[0] ) # result.print result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 197) def _reduce_61(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 .,., module_eval(<<'.,.,', 'bnf.y.rb', 219) def _reduce_62(val, _values, result) val[1].each { |i| # i: Decl i.set_type( val[0] ) } result = val[1] result end .,., # reduce 63 omitted module_eval(<<'.,.,', 'bnf.y.rb', 235) def _reduce_64(val, _values, result) val[1].set_qualifier( val[0] ) result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 241) def _reduce_65(val, _values, result) result = [val[0]] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 243) def _reduce_66(val, _values, result) result << val[2] result end .,., # reduce 67 omitted module_eval(<<'.,.,', 'bnf.y.rb', 248) def _reduce_68(val, _values, result) val[0].set_initializer( val[2] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 254) def _reduce_69(val, _values, result) result = VoidType.new result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 255) def _reduce_70(val, _values, result) result = FloatType.new(32) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 256) def _reduce_71(val, _values, result) result = FloatType.new(64) result end .,., # reduce 72 omitted # reduce 73 omitted module_eval(<<'.,.,', 'bnf.y.rb', 259) def _reduce_74(val, _values, result) result = DefinedType.new( val[0].val ) result end .,., # reduce 75 omitted # reduce 76 omitted module_eval(<<'.,.,', 'bnf.y.rb', 263) def _reduce_77(val, _values, result) result = BoolType.new result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 269) def _reduce_78(val, _values, result) Generator.warning( "W5002 float: obsolete type. use float32_t" ) result = FloatType.new(32) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 273) def _reduce_79(val, _values, result) Generator.warning( "W5003 double: obsolete type. use double64_t" ) result = FloatType.new(64) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 276) def _reduce_80(val, _values, result) # namespace_identifier: signature name result = DescriptorType.new( val[2] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 281) def _reduce_81(val, _values, result) result = IntType.new( -1 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 284) def _reduce_82(val, _values, result) result = IntType.new( -1 ) result.set_sign( :SIGNED, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 289) def _reduce_83(val, _values, result) result = IntType.new( -1 ) result.set_sign( :UNSIGNED, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 295) def _reduce_84(val, _values, result) # Generator.warning( "W5004 char: obsolete type. use char_t" ) result = IntType.new( -11 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 298) def _reduce_85(val, _values, result) result = IntType.new( -2 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 299) def _reduce_86(val, _values, result) result = IntType.new( -3 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 300) def _reduce_87(val, _values, result) result = IntType.new( -4 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 324) def _reduce_88(val, _values, result) result = IntType.new( 8 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 325) def _reduce_89(val, _values, result) result = IntType.new( 16 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 326) def _reduce_90(val, _values, result) result = IntType.new( 32 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 327) def _reduce_91(val, _values, result) result = IntType.new( 64 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 328) def _reduce_92(val, _values, result) result = IntType.new( 128 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 331) def _reduce_93(val, _values, result) result = IntType.new( 8 ) result.set_sign( :UNSIGNED, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 336) def _reduce_94(val, _values, result) result = IntType.new( 16 ) result.set_sign( :UNSIGNED, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 341) def _reduce_95(val, _values, result) result = IntType.new( 32 ) result.set_sign( :UNSIGNED, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 346) def _reduce_96(val, _values, result) result = IntType.new( 64 ) result.set_sign( :UNSIGNED, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 351) def _reduce_97(val, _values, result) result = IntType.new( 128 ) result.set_sign( :UNSIGNED, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 356) def _reduce_98(val, _values, result) result = :SIGNED result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 357) def _reduce_99(val, _values, result) result = :UNSIGNED result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 363) def _reduce_100(val, _values, result) val[1].set_sign( val[0] ) result = val[1] result end .,., # reduce 101 omitted module_eval(<<'.,.,', 'bnf.y.rb', 371) def _reduce_102(val, _values, result) StructType.set_define( true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 374) def _reduce_103(val, _values, result) StructType.end_of_parse result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 379) def _reduce_104(val, _values, result) result = StructType.new() StructType.set_define( true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 384) def _reduce_105(val, _values, result) StructType.end_of_parse result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 389) def _reduce_106(val, _values, result) StructType.set_define( false ) StructType.end_of_parse result = val[1] result end .,., # reduce 107 omitted # reduce 108 omitted module_eval(<<'.,.,', 'bnf.y.rb', 400) def _reduce_109(val, _values, result) result = StructType.new( val[0].val ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 406) def _reduce_110(val, _values, result) val[1].each { |i| # i: Decl i.set_type( val[0] ) i.set_kind( :MEMBER ) i.check StructType.new_member( i ) } result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 416) def _reduce_111(val, _values, result) val[4].each { |i| # i: Decl i.set_type( val[3] ) i.set_kind( :MEMBER ) i.set_specifier_list val[1] i.check StructType.new_member( i ) } result = val[4] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 427) def _reduce_112(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 428) def _reduce_113(val, _values, result) result << val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 431) def _reduce_114(val, _values, result) result = [:STRING,-1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 432) def _reduce_115(val, _values, result) result = [:STRING,val[2]] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 433) def _reduce_116(val, _values, result) result = [:SIZE_IS,val[2]] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 434) def _reduce_117(val, _values, result) result = [:COUNT_IS,val[2]] result end .,., # reduce 118 omitted module_eval(<<'.,.,', 'bnf.y.rb', 445) def _reduce_119(val, _values, result) val[1].set_qualifier( val[0] ) result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 454) def _reduce_120(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 456) def _reduce_121(val, _values, result) result << val[2] result end .,., # reduce 122 omitted # reduce 123 omitted # reduce 124 omitted # reduce 125 omitted module_eval(<<'.,.,', 'bnf.y.rb', 469) def _reduce_126(val, _values, result) result = EnumType.new( -1 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 470) def _reduce_127(val, _values, result) result = EnumType.new( 8 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 471) def _reduce_128(val, _values, result) result = EnumType.new( 16 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 472) def _reduce_129(val, _values, result) result = EnumType.new( 32 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 473) def _reduce_130(val, _values, result) result = EnumType.new( 64 ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 474) def _reduce_131(val, _values, result) result = EnumType.new( 128 ) result end .,., # reduce 132 omitted # reduce 133 omitted # reduce 134 omitted # reduce 135 omitted module_eval(<<'.,.,', 'bnf.y.rb', 485) def _reduce_136(val, _values, result) result = :CONST result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 486) def _reduce_137(val, _values, result) result = :VOLATILE result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 491) def _reduce_138(val, _values, result) val[1].set_type( val[0] ) result = val[1] result end .,., # reduce 139 omitted module_eval(<<'.,.,', 'bnf.y.rb', 498) def _reduce_140(val, _values, result) result = Decl.new( val[0].val ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 500) def _reduce_141(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 503) def _reduce_142(val, _values, result) val[0].set_type( ArrayType.new( val[2] ) ) result = val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 508) def _reduce_143(val, _values, result) val[0].set_type( ArrayType.new ) result = val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 513) def _reduce_144(val, _values, result) val[0].set_type( FuncType.new( val[2] ) ) result = val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 519) def _reduce_145(val, _values, result) Generator.warning( "W5010 need 'void' for no parameter" ) val[0].set_type( FuncType.new ) result = val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 526) def _reduce_146(val, _values, result) result = PtrType.new result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 529) def _reduce_147(val, _values, result) result = PtrType.new result.set_qualifier( val[1] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 534) def _reduce_148(val, _values, result) val[1].set_type(PtrType.new) result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 539) def _reduce_149(val, _values, result) ptrtype = PtrType.new ptrtype.set_qualifier( val[1] ) val[2].set_type( ptrtype ) result = val[2] result end .,., # reduce 150 omitted # reduce 151 omitted module_eval(<<'.,.,', 'bnf.y.rb', 553) def _reduce_152(val, _values, result) result = ParamList.new( val[0] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 556) def _reduce_153(val, _values, result) val[0].add_param( val[2] ) # result = val[0] 不要 result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 566) def _reduce_154(val, _values, result) val[2].set_kind( :PARAMETER ) paramdecl = ParamDecl.new( val[2], val[1], val[0] ) val[2].check result = paramdecl result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 575) def _reduce_155(val, _values, result) Generator.error( "G1001 need specifier for \'$1\'" , val[1].get_name ) result = nil result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 580) def _reduce_156(val, _values, result) unless val[0].instance_of?( VoidType ) then Generator.error( "G1002 need parameter name" ) end result = nil result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 588) def _reduce_157(val, _values, result) unless val[1].instance_of?( VoidType ) then Generator.error( "G1003 need parameter name" ) end result = nil result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 595) def _reduce_158(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 599) def _reduce_159(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 601) def _reduce_160(val, _values, result) result = result + val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 604) def _reduce_161(val, _values, result) result = [ [:IN] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 605) def _reduce_162(val, _values, result) result = [ [:OUT] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 606) def _reduce_163(val, _values, result) result = [ [:INOUT] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 607) def _reduce_164(val, _values, result) result = [ [:SEND, val[2]] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 608) def _reduce_165(val, _values, result) result = [ [:RECEIVE,val[2]] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 609) def _reduce_166(val, _values, result) result = [ [:STRING,nil] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 610) def _reduce_167(val, _values, result) result = [ [:STRING, val[2]] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 611) def _reduce_168(val, _values, result) result = [ [:SIZE_IS, val[2]] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 614) def _reduce_169(val, _values, result) result = [ [:SIZE_IS,val[2]], [:MAX_IS, val[4]] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 616) def _reduce_170(val, _values, result) result = [ [:COUNT_IS,val[2]] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 617) def _reduce_171(val, _values, result) result = [ [:NULLABLE] ] result end .,., # reduce 172 omitted module_eval(<<'.,.,', 'bnf.y.rb', 623) def _reduce_173(val, _values, result) if val[1] then val[1].set_type( val[0] ) result = val[1] else # エラー:仮で val[0] を返す result = val[0] end result end .,., # reduce 174 omitted # reduce 175 omitted # reduce 176 omitted module_eval(<<'.,.,', 'bnf.y.rb', 640) def _reduce_177(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 643) def _reduce_178(val, _values, result) Generator.error( "G1004 impossible array type" ) result = nil result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 648) def _reduce_179(val, _values, result) Generator.error( "G1005 impossible array type" ) result = nil result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 653) def _reduce_180(val, _values, result) Generator.error( "G1006 impossible array type" ) result = nil result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 658) def _reduce_181(val, _values, result) Generator.error( "G1007 impossible array type" ) result = nil result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 663) def _reduce_182(val, _values, result) Generator.error( "G1008 impossible function type" ) result = nil result end .,., # reduce 183 omitted module_eval(<<'.,.,', 'bnf.y.rb', 669) def _reduce_184(val, _values, result) Generator.warning( "W5011 need 'void' for no parameter" ) val[0].set_type( FuncType.new ) result = val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 675) def _reduce_185(val, _values, result) val[0].set_type( FuncType.new( val[2] ) ) result = val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 682) def _reduce_186(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 684) def _reduce_187(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 686) def _reduce_188(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 689) def _reduce_189(val, _values, result) result = C_EXP.new( val[2] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 694) def _reduce_190(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 698) def _reduce_191(val, _values, result) val[0] << val[2] result = val[0] result end .,., # reduce 192 omitted # reduce 193 omitted # reduce 194 omitted # reduce 195 omitted module_eval(<<'.,.,', 'bnf.y.rb', 716) def _reduce_196(val, _values, result) obj = val[3] if obj.kind_of?( Cell ) || obj.kind_of?( Signature ) || obj.kind_of?( Celltype ) || obj.kind_of?( CompositeCelltype )then # cell, signature 以外は、指定子を置けない else Generator.get_statement_specifier # クリア Generator.error( "G1009 unexpected specifier" ) end result end .,., # reduce 197 omitted # reduce 198 omitted # reduce 199 omitted # reduce 200 omitted # reduce 201 omitted # reduce 202 omitted # reduce 203 omitted # reduce 204 omitted # reduce 205 omitted # reduce 206 omitted # reduce 207 omitted # reduce 208 omitted # reduce 209 omitted # reduce 210 omitted module_eval(<<'.,.,', 'bnf.y.rb', 745) def _reduce_211(val, _values, result) Generator.add_statement_specifier val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 747) def _reduce_212(val, _values, result) Generator.add_statement_specifier val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 751) def _reduce_213(val, _values, result) result = [ :ALLOCATOR, val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 753) def _reduce_214(val, _values, result) result = [ :CALLBACK ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 755) def _reduce_215(val, _values, result) result = [ :CONTEXT, val[2].val ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 757) def _reduce_216(val, _values, result) result = [ :DEVIATE ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 759) def _reduce_217(val, _values, result) result = [ :ID, val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 761) def _reduce_218(val, _values, result) result = [ :PROTOTYPE ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 763) def _reduce_219(val, _values, result) result = [ :RESTRICT, val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 764) def _reduce_220(val, _values, result) result = [:SINGLETON] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 765) def _reduce_221(val, _values, result) result = [:IDX_IS_ID] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 766) def _reduce_222(val, _values, result) result = [:ACTIVE] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 768) def _reduce_223(val, _values, result) result = [:GENERATE, val[2].val, val[4].val] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 771) def _reduce_224(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 772) def _reduce_225(val, _values, result) result << val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 776) def _reduce_226(val, _values, result) result = [ :NORMAL_ALLOC, val[0], nil, val[2], val[4], val[6] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 778) def _reduce_227(val, _values, result) result = [ :NORMAL_ALLOC, val[0], val[2], val[5], val[7], val[9] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 787) def _reduce_228(val, _values, result) result = [val[0]] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 789) def _reduce_229(val, _values, result) result << val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 793) def _reduce_230(val, _values, result) result = [ val[0].val, nil, val[3] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 795) def _reduce_231(val, _values, result) result = [ val[0].val, val[2].val, val[5] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 799) def _reduce_232(val, _values, result) result = [val[0].val] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 801) def _reduce_233(val, _values, result) result << val[2].val result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 806) def _reduce_234(val, _values, result) val[0].each { |decl| decl.set_kind( :CONSTANT ) Namespace.new_const_decl( decl ) decl.check } result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 816) def _reduce_235(val, _values, result) @@import_C = true Import_C.new( val[2] ) @@import_C = false result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 822) def _reduce_236(val, _values, result) @@import_C = true Import_C.new( val[2], val[4] ) @@import_C = false result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 829) def _reduce_237(val, _values, result) Import.new( val[2] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 831) def _reduce_238(val, _values, result) Import.new( val[2], true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 836) def _reduce_239(val, _values, result) Generate.new( val[2].val, val[4], val[6] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 841) def _reduce_240(val, _values, result) val[2].each{ |i| # i:Decl i.set_kind( :TYPEDEF ) } Typedef.new_decl_list( val[1], val[2] ) val[2].each{ |i| # i:Decl i.check } result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 851) def _reduce_241(val, _values, result) val[5].each{ |i| # i:Decl i.set_kind( :TYPEDEF ) } Typedef.new_decl_list( val[4], val[5] ) val[5].each{ |i| # i:Decl i.check } result end .,., # reduce 242 omitted # reduce 243 omitted module_eval(<<'.,.,', 'bnf.y.rb', 868) def _reduce_244(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 870) def _reduce_245(val, _values, result) result << val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 874) def _reduce_246(val, _values, result) val[1].end_of_parse result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 878) def _reduce_247(val, _values, result) result = Namespace.new(val[0].val) result end .,., # reduce 248 omitted # reduce 249 omitted module_eval(<<'.,.,', 'bnf.y.rb', 886) def _reduce_250(val, _values, result) result = NamespacePath.new( val[0].val, false ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 887) def _reduce_251(val, _values, result) result = NamespacePath.new( val[1].val, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 889) def _reduce_252(val, _values, result) result = val[0].append!( val[2].val ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 894) def _reduce_253(val, _values, result) result = val[1].end_of_parse( val[3] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 898) def _reduce_254(val, _values, result) result = Signature.new( val[0].val ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 904) def _reduce_255(val, _values, result) result = NamedList.new( nil, "function" ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 906) def _reduce_256(val, _values, result) result = val[0].add_item( val[1] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 911) def _reduce_257(val, _values, result) # val[1]: Decl if val[1].is_function? then result = FuncHead.new( val[1], val[0], false ) val[1].set_kind :FUNCHEAD val[1].check else # mikan 関数の配列も以下のメッセージになる Generator.error( "G1010 Not function" ) result = nil end result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 924) def _reduce_258(val, _values, result) if val[4].is_function? then result = FuncHead.new( val[4], val[3], true ) else Generator.error( "G1011 Not function" ) result = nil end result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 937) def _reduce_259(val, _values, result) val[1].end_of_parse result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 943) def _reduce_260(val, _values, result) result = Celltype.new(val[0].val) result end .,., # reduce 261 omitted # reduce 262 omitted module_eval(<<'.,.,', 'bnf.y.rb', 952) def _reduce_263(val, _values, result) if val[0].kind_of? Port then Celltype.new_port( val[0] ) end result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 958) def _reduce_264(val, _values, result) if val[3].kind_of? Port then val[3].set_specifier val[1] # 設定順序あり Celltype.new_port( val[3] ) else # Port 以外では指定子はエラー Generator.error( "G1012 $1 : cannot put specifier here" , val[1] ) end result end .,., # reduce 265 omitted # reduce 266 omitted # reduce 267 omitted # reduce 268 omitted # reduce 269 omitted module_eval(<<'.,.,', 'bnf.y.rb', 977) def _reduce_270(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 979) def _reduce_271(val, _values, result) result << val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 982) def _reduce_272(val, _values, result) result = [ :INLINE ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 983) def _reduce_273(val, _values, result) result = [ :ALLOCATOR, val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 984) def _reduce_274(val, _values, result) result = [ :OPTIONAL ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 985) def _reduce_275(val, _values, result) result = [ :REF_DESC ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 986) def _reduce_276(val, _values, result) result = [ :DYNAMIC ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 987) def _reduce_277(val, _values, result) result = [ :OMIT ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 990) def _reduce_278(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 991) def _reduce_279(val, _values, result) result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 992) def _reduce_280(val, _values, result) result << val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 993) def _reduce_281(val, _values, result) result << val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 997) def _reduce_282(val, _values, result) result = [ :INTERNAL_ALLOC, val[0].val, val[2].val, val[4] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 999) def _reduce_283(val, _values, result) result = [ :RELAY_ALLOC, val[0].val, val[2].val, val[4] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1005) def _reduce_284(val, _values, result) result = Port.new( val[2].val, val[1], val[0] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1007) def _reduce_285(val, _values, result) result = Port.new( val[2].val, val[1], val[0], "[]" ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1009) def _reduce_286(val, _values, result) result = Port.new(val[2].val, val[1], val[0], val[4]) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1011) def _reduce_287(val, _values, result) result = Port.new( val[2].val, val[1], val[0], nil, val[4], val[ 6 ].val ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1014) def _reduce_288(val, _values, result) result = :CALL result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1015) def _reduce_289(val, _values, result) result = :ENTRY result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1019) def _reduce_290(val, _values, result) result = val[0] result end .,., # reduce 291 omitted # reduce 292 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1031) def _reduce_293(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1035) def _reduce_294(val, _values, result) Celltype.new_attribute( val[0] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1037) def _reduce_295(val, _values, result) Celltype.new_attribute( val[1] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1043) def _reduce_296(val, _values, result) val[0].each{ |i| # i:Decl i.set_kind( :ATTRIBUTE ) i.check } result = val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1051) def _reduce_297(val, _values, result) val[3].each{ |i| # i:Decl i.set_kind( :ATTRIBUTE ) # 設定順序あり i.set_specifier_list( [val[1]] ) i.check } result = val[3] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1060) def _reduce_298(val, _values, result) result = [:OMIT] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1061) def _reduce_299(val, _values, result) result = [:SIZE_IS,val[2]] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1062) def _reduce_300(val, _values, result) result = [:CHOICE,val[3]] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1065) def _reduce_301(val, _values, result) result << val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1066) def _reduce_302(val, _values, result) result = [ val[0] ] result end .,., # reduce 303 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1074) def _reduce_304(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1078) def _reduce_305(val, _values, result) Celltype.new_var( val[0] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1080) def _reduce_306(val, _values, result) Celltype.new_var( val[1] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1085) def _reduce_307(val, _values, result) val[0].each{ |i| # i:Decl i.set_kind( :VAR ) i.check } result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1092) def _reduce_308(val, _values, result) val[3].each{ |i| # i:Decl i.set_kind( :VAR ) # 設定順序あり i.set_specifier_list( [val[1]] ) i.check } result = val[3] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1101) def _reduce_309(val, _values, result) result = [:SIZE_IS,val[2]] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1107) def _reduce_310(val, _values, result) Celltype.new_require( val[1], val[3] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1111) def _reduce_311(val, _values, result) Celltype.new_require( val[3], val[5], val[1].val ) result end .,., # reduce 312 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1119) def _reduce_313(val, _values, result) Factory.set_f_celltype( false ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1120) def _reduce_314(val, _values, result) Factory.set_f_celltype( true ) result end .,., # reduce 315 omitted # reduce 316 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1128) def _reduce_317(val, _values, result) Factory.new( val[0].val, val[2], val[4], nil ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1130) def _reduce_318(val, _values, result) Factory.new( val[0].val, val[2], val[4], val[6] ) result end .,., # reduce 319 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1137) def _reduce_320(val, _values, result) result = [ [ :IDENTIFIER, val[0].val ] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1139) def _reduce_321(val, _values, result) result << [ :IDENTIFIER, val[2].val ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1141) def _reduce_322(val, _values, result) result = [ [ :STRING_LITERAL, val[0].val ] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1143) def _reduce_323(val, _values, result) result << [ :STRING_LITERAL, val[2].val ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1148) def _reduce_324(val, _values, result) Cell.new_def result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1150) def _reduce_325(val, _values, result) result = Cell.end_of_parse true result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1152) def _reduce_326(val, _values, result) result = Cell.end_of_parse false result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1156) def _reduce_327(val, _values, result) result = Cell.new(val[0]) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1160) def _reduce_328(val, _values, result) result = Cell.set_name(val[0].val) result end .,., # reduce 329 omitted # reduce 330 omitted # reduce 331 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1169) def _reduce_332(val, _values, result) val[3].set_specifier_list( val[1] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1171) def _reduce_333(val, _values, result) val[0].set_specifier_list( [] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1175) def _reduce_334(val, _values, result) result << val[2] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1177) def _reduce_335(val, _values, result) result = [val[0]] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1181) def _reduce_336(val, _values, result) result = [ :THROUGH, val[2], val[4] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1184) def _reduce_337(val, _values, result) result = val[0] result end .,., # reduce 338 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1198) def _reduce_339(val, _values, result) result = Join.new( val[0].val, -1, val[4] ) Cell.new_join( result, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1203) def _reduce_340(val, _values, result) result = Join.new( val[0].val, val[2], val[5] ) Cell.new_join( result, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1208) def _reduce_341(val, _values, result) result = Join.new( val[0].val, nil, val[2] ) Cell.new_join( result, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1213) def _reduce_342(val, _values, result) result = Join.new( val[0].val, nil, [ :COMPOSITE, val[4] ] ) Cell.new_join( result, true ) result end .,., # reduce 343 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1224) def _reduce_344(val, _values, result) rj = ReverseJoin.new( val[0].val, nil, val[2], val[4].val ) Cell.new_reverse_join( rj ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1230) def _reduce_345(val, _values, result) rj = ReverseJoin.new( val[0].val, nil, val[2], val[4].val, val[6] ) Cell.new_reverse_join( rj ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1236) def _reduce_346(val, _values, result) rj = ReverseJoin.new( val[0].val, val[2], val[5], val[7].val ) Cell.new_reverse_join( rj ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1242) def _reduce_347(val, _values, result) rj = ReverseJoin.new( val[0].val, val[2], val[5], val[7].val, val[9] ) Cell.new_reverse_join( rj ) result end .,., # reduce 348 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1254) def _reduce_349(val, _values, result) CompositeCelltype.end_of_parse result = val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1260) def _reduce_350(val, _values, result) result = CompositeCelltype.new(val[0].val) result end .,., # reduce 351 omitted # reduce 352 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1269) def _reduce_353(val, _values, result) if val[0].kind_of?( Port ) then CompositeCelltype.new_port( val[0] ) # 遅延して登録 end result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1275) def _reduce_354(val, _values, result) if val[3].kind_of?( Port ) then # port 以外 val[3] に有効な値が入っていないので、以下のメソッドを適用できない # 現状 port, cell 以外は指定子を受け付けない # (しかし将来他の文も指定子を受け付ける可能性があるので、この位置に記述する) val[3].set_specifier( Generator.get_statement_specifier ) CompositeCelltype.new_port( val[3] ) # 遅延して登録 (set_specifier 後) elsif val[3].kind_of?( Cell ) then # Cell.end_of_parse にて設定 else Generator.get_statement_specifier # クリア Generator.error( "G1013 unexpected specifier" ) end result end .,., # reduce 355 omitted # reduce 356 omitted # reduce 357 omitted # reduce 358 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1299) def _reduce_359(val, _values, result) Generator.add_statement_specifier val[0] result = [ val[0] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1304) def _reduce_360(val, _values, result) result = [ :ALLOCATOR, val[2] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1305) def _reduce_361(val, _values, result) result = [ :OMIT ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1306) def _reduce_362(val, _values, result) result = [ :OPTIONAL ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1307) def _reduce_363(val, _values, result) result = [ :REF_DESC ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1308) def _reduce_364(val, _values, result) result = [ :DYNAMIC ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1313) def _reduce_365(val, _values, result) # CompositeCelltype.new_port( val[0] ) result = val[0] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1320) def _reduce_366(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1324) def _reduce_367(val, _values, result) CompositeCelltype.new_attribute( val[0] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1326) def _reduce_368(val, _values, result) CompositeCelltype.new_attribute( val[1] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1331) def _reduce_369(val, _values, result) Cell.new_def result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1333) def _reduce_370(val, _values, result) result = Cell.end_of_parse true result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1335) def _reduce_371(val, _values, result) result = Cell.end_of_parse false result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1340) def _reduce_372(val, _values, result) Cell.new(val[0],true) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1344) def _reduce_373(val, _values, result) Cell.set_name(val[0].val) result end .,., # reduce 374 omitted # reduce 375 omitted # reduce 376 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1354) def _reduce_377(val, _values, result) Cell.external_join( val[0].val, val[4].val, true ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1356) def _reduce_378(val, _values, result) Cell.external_join( val[0].val, val[2].val, false ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1363) def _reduce_379(val, _values, result) CompositeCelltype.new_join( val[0].val, val[2].val, val[4].val, :ENTRY ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1368) def _reduce_380(val, _values, result) CompositeCelltype.new_join( val[2].val, val[4].val, val[6].val, :ENTRY ) result end .,., # reduce 381 omitted # reduce 382 omitted # reduce 383 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1384) def _reduce_384(val, _values, result) Region.end_of_parse result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1386) def _reduce_385(val, _values, result) Region.end_of_parse result end .,., # reduce 386 omitted # reduce 387 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1395) def _reduce_388(val, _values, result) Region.new_in_through( val[2].val, val[4].val ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1397) def _reduce_389(val, _values, result) Region.new_in_through result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1399) def _reduce_390(val, _values, result) Region.new_out_through( val[2].val, val[4].val ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1401) def _reduce_391(val, _values, result) Region.new_out_through() result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1403) def _reduce_392(val, _values, result) Region.new_to_through( val[2], val[4].val, val[6].val ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1405) def _reduce_393(val, _values, result) Region.new_to_through( val[2], nil, nil ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1407) def _reduce_394(val, _values, result) Region.set_type( :NODE ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1409) def _reduce_395(val, _values, result) Region.set_type( :LINKUNIT ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1411) def _reduce_396(val, _values, result) Region.set_domain( val[2].val, val[4] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1413) def _reduce_397(val, _values, result) Region.set_type( :CLASS, val[2].val ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1417) def _reduce_398(val, _values, result) result = Region.new( val[0].val ) result end .,., # reduce 399 omitted # reduce 400 omitted # reduce 401 omitted # reduce 402 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1428) def _reduce_403(val, _values, result) obj = val[3] if obj.kind_of?( Cell ) then else Generator.get_statement_specifier # クリア Generator.error( "G9999 unexpected specifier" ) end result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1450) def _reduce_404(val, _values, result) result = [ val[0].val ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1455) def _reduce_405(val, _values, result) set_in_specifier result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1457) def _reduce_406(val, _values, result) unset_in_specifier result end .,., # reduce 407 omitted # reduce 408 omitted # reduce 409 omitted # reduce 410 omitted module_eval(<<'.,.,', 'bnf.y.rb', 1471) def _reduce_411(val, _values, result) TECSGEN::Cell_location.new( val[1], val[3], val[5], val[7], val[9], val[12] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1477) def _reduce_412(val, _values, result) result = val[0] << val[1] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1480) def _reduce_413(val, _values, result) result = [] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1484) def _reduce_414(val, _values, result) result = [ val[0], val[2], val[3] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1489) def _reduce_415(val, _values, result) TECSGEN::Join_location.new( val[2], val[4], val[6], val[8], val[11] ) result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1495) def _reduce_416(val, _values, result) result = val[0] << [ val[1], val[3] ] result end .,., module_eval(<<'.,.,', 'bnf.y.rb', 1497) def _reduce_417(val, _values, result) result = [] result end .,., def _reduce_none(val, _values, result) val[0] end end # class Generator # ファイル => INCLUDE("header")の配列 Include = Hash.new {|hash, key| hash[key] = []} class Token attr_accessor :val, :file, :lineno, :col def initialize(val, file, lineno, col) @val = val @file = file @lineno = lineno @col = col end def to_s @val.to_s end def to_sym @val.to_sym end def get_name @val end def locale [@file, @lineno, @col] end def eql?(other) if other.is_a? Symbol @val == other elsif other.is_a? Token @val == other.val elsif other.is_a? String @val.to_s == other else raise ArgumentError end end alias == eql? def show_tree( indent ) indent.times { print " " } print "#{@val}\n" end end #= TECSIO # Ruby2.0(1.9) 対応に伴い導入したクラス # SJIS 以外では、ASCII-8BIT として入力する class TECSIO def self.foreach(file) # ブロック引数 { |line| } pr = Proc.new # このメソッドのブロック引数を pr に代入 if $b_no_kcode then msg = "E".encode $Ruby19_File_Encode if( $Ruby19_File_Encode == "Shift_JIS" ) # Shift JIS は、いったん Windows-31J として読み込ませ、Shift_JIS に変換させる. # コメント等に含まれる SJIS に不適切な文字コードは '?' または REPLACEMENT CHARACTER に変換される. # EUC や UTF-8 で記述された CDL が混在していても、Ruby 例外が発生することなく処理を進めることができる. # 文字コード指定が SJIS であって、文字列リテラルの中に、文字コードがSJIS 以外の非 ASCII が含まれている場合、 # Ruby 1.8 の tecsgen では文字コード指定に影響なく処理されたものが、Ruby 1.9 以降では '?' に置き換わる可能性がある. mode = "r:Windows-31J" else mode = "r:#{$Ruby19_File_Encode}" end # mode = "r" else msg = "E" mode = "r" end f = File.open( file, mode ) begin f.each{ |line| # dbgPrint line line = str_code_convert( msg, line ) pr.call( line ) } ensure f.close end end #=== 文字コードが相違する場合一致させる # msg と str の文字コードが相違する場合、str を msg の文字コードに変換する # 変換不可の文字コードは '?' (utf-8 の場合 U+FFFD (REPLACEMENT CHARACTER )) に変換 # # このメソッドは、エラーメッセージ出力でも使用されていることに注意. # #msg_enc::Encode | String def self.str_code_convert( msg, str ) if $b_no_kcode == false then return str # Ruby V1.8 まで end if msg.encoding != str.encoding then option = { :invalid => :replace, :undef => :replace } # 例外を発生させず、'?' に変換する(utf-8 は 0xfffd) # return str.encode( msg.encoding, option ) str = str.encode( "utf-8", option ) return str.encode( msg.encoding, option ) else return str end end end