Ignore:
Timestamp:
Jul 3, 2020, 7:19:17 PM (4 years ago)
Author:
coas-nagasima
Message:

ASP3, TINET, mbed を更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.tab.rb

    r321 r429  
    11#
    22# DO NOT MODIFY!!!!
    3 # This file is automatically generated by Racc 1.4.12
     3# This file is automatically generated by Racc 1.4.9
    44# from Racc grammer file "".
    55#
     
    88class C_parser < Racc::Parser
    99
    10 module_eval(<<'...end C_parser.y.rb/module_eval...', 'C_parser.y.rb', 715)
    11 
    12   RESERVED = {
    13     # keyword
    14     'typedef' => :TYPEDEF,
    15     'struct' => :STRUCT,
    16     'union' => :UNION,
    17     'sizeof' => :SIZEOF,
    18     'throw' => :THROW,
    19 
    20     # specifier
    21     # types
    22     'void'    => :VOID,
    23     'char'    => :CHAR,
    24     'short'   => :SHORT,
    25 
    26     'volatile'=> :VOLATILE,
    27     'const'   => :CONST,
    28     'extern'   => :EXTERN,
    29 
    30     'long'    => :LONG,
    31     'float'   => :FLOAT,
    32     'double'  => :DOUBLE,
    33     'signed'  => :SIGNED,
    34     'unsigned'=> :UNSIGNED,
    35 
    36     'int'     => :INT,
    37     'enum'    => :ENUM,
    38 
    39     'if'      => :IF,
    40     'else'    => :ELSE,
    41     'while'   => :WHILE,
    42     'do'      => :DO,
    43     'for'     => :FOR,
    44     'case'    => :CASE,
    45     'default' => :DEFAULT,
    46     'goto'    => :GOTO,
    47     'continue' => :CONTINUE,
    48     'break'   => :BREAK,
    49     'return'  => :RETURN,
    50     '__inline__'  => :__INLINE__,
    51     'inline'  => :INLINE,
    52     '__inline'  => :__INLINE,
    53     'Inline'  => :CINLINE,        # inline starting with Capital letter
    54     'static'  => :STATIC,
    55     'register' => :REGISTER,
    56     'auto'    => :AUTO,
    57     '__extension__'    => :EXTENSION,
    58 
    59   }
    60 
    61   @@generator_nest = -1
    62   @@generator_stack = []
    63   @@current_locale = []
    64 
    65   def finalize
    66 
    67     # mikan Namespace.pop
    68     Celltype.pop
    69     Cell.pop
    70     CompositeCelltype.pop
    71     Region.pop
    72 
    73   end
    74 
    75   def set_plugin( plugin )
    76     @plugin = plugin
    77   end
    78 
    79   def self.get_plugin
    80     @@generator_stack[@@generator_nest].get_plugin
    81   end
    82 
    83   def get_plugin
    84     @plugin
    85   end
    86 
    87   def parse(files)
    88 
    89     # mikan Namespace.push
    90     Celltype.push
    91     Cell.push
    92     CompositeCelltype.push
    93     Region.push
    94 
    95     @@generator_nest += 1
    96     @@generator_stack[@@generator_nest] = self
    97     @b_no_type_name = false
    98 
    99    begin
    100 
    101     @q = []
    102     comment = false
    103 
    104     # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
    105     TECS_LANG::set_kcode_binary
    106 
    107     # 800U, 0xffLL など (整数リテラルに共通の修飾子)
    108     integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
    109 
    110     files.each {|file|
    111       lineno = 1
    112      begin
    113 #2.0       IO.foreach(file) {|line|
    114        TECSIO.foreach(file) {|line|
    115         col = 1
    116         line.rstrip!
    117 
    118         until line.empty?
    119 
    120           if comment
    121             case line
    122             # コメント終了
    123             when /\A\*\//
    124               comment = false
    125             when /\A./
    126               ;
    127             end
    128           else
    129             case line
    130             # 空白、プリプロセスディレクティブ
    131             when /\A\s+/
    132               ;
    133             # 識別子
    134             when /\A[a-zA-Z_]\w*/
    135               word = $&
    136               @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
    137             # 16 進数定数
    138             when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
    139               @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
    140             # 8 進数定数
    141             when /\A0[0-7]+#{integer_qualifier}/
    142               @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
    143             # 浮動小数定数
    144             when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
    145               @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
    146             # 整数定数
    147             when /\A\d+#{integer_qualifier}/
    148             # when /\A\d+/
    149               @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
    150             # 文字
    151             when /\A'(?:[^'\\]|\\.)'/
    152               @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
    153             # 文字列
    154 #              "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
    155 #            when /\A"(?:[^"\\]+|\\.)*"/
    156             when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
    157               @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
    158             # 行コメント
    159             when /\A\/\/.*$/
    160               # 読み飛ばすだけ
    161             # コメント開始
    162             when /\A\/\*/
    163               comment = true
    164             when /\A>>=/, /\A<<=/, /\A>>/,  /\A<</
    165               @q << [$&, Token.new($&, file, lineno, col)]
    166             when /\A\+=/, /\A\-=/, /\A\*=/, /\A\/=/, /\A%=/, /\A&=/, /\A\|=/, /\A\^=/
    167               @q << [$&, Token.new($&, file, lineno, col)]
    168             when /\A::/, /\A==/, /\A!=/, /\A>=/, /\A<=/, /\A\->/, /\A\+\+/, /\A\-\-/
    169               @q << [$&, Token.new($&, file, lineno, col)]
    170             when /\A./
    171               @q << [$&, Token.new($&, file, lineno, col)]
    172             else
    173               raise
    174             end
    175           end
    176 
    177           line = $'
    178           col += $&.length
    179         end
    180 
    181         lineno += 1
    182       }
    183 
    184      rescue => evar
    185        Generator.error( "B1002 while open or reading \'$1\'" , file )
    186        print_exception( evar )
    187      end
    188     }
    189 
    190     # 終了の印
    191     @q << nil
    192 
    193     @yydebug = true
    194     do_parse
    195 
    196    ensure
    197     @@generator_nest -= 1
    198     TECS_LANG::reset_kcode
    199    end
    200 
    201   end
    202 
    203 
    204   def next_token
    205     token = @q.shift
    206 
    207     if token then
    208       @@current_locale[@@generator_nest] = token[1].locale
    209 
    210       case token[1].val
    211       when ";", ":", ",", "(", ")", "{", "}"
    212         set_no_type_name false
    213       when ".", "->"
    214         set_no_type_name true
    215       end
    216 
    217       # TYPE_NAME トークンへ置き換え
    218       if @b_no_type_name == false
    219         if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
    220           token[0] = :TYPE_NAME
    221         end
    222       end
    223 
    224       if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生)
    225         locale = @@current_locale[@@generator_nest]
    226         if token then
    227           print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" )
    228         else
    229           print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
    230         end
    231       end
    232     end
    233 
    234     token
    235   end
    236 
    237   def on_error(t, v, vstack)
    238     if v == "$" then
    239      Generator.error( "B1003 Unexpected EOF"  )
    240     else
    241      Generator.error( "B1004 syntax error near \'$1\'" , v.val )
    242     end
    243 
    244   end
    245 
    246   def self.current_locale
    247     @@current_locale[ @@generator_nest ]
    248   end
    249 
    250   @@n_error = 0
    251   @@n_warning = 0
    252 
    253   # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切)
    254   def self.error( msg )
    255     @@n_error += 1
    256     locale = @@current_locale[ @@generator_nest ]
    257 
    258     if locale then
    259       Console.puts "error: #{locale[0]}: line #{locale[1]} #{msg}"
    260     else
    261       Console.puts "error: #{msg}"
    262     end
    263   end
    264 
    265   # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切)
    266   def self.warning( msg )
    267     @@n_warning += 1
    268     locale = @@current_locale[ @@generator_nest ]
    269     Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}"
    270   end
    271 
    272   def self.get_n_error
    273     @@n_error
    274   end
    275 
    276   def self.get_n_warning
    277     @@n_warning
    278   end
    279 
    280   def self.get_nest
    281     @@generator_nest
    282   end
    283 
    284   def set_no_type_name b_no_type_name
    285     # print "b_no_type_name=#{b_no_type_name}\n"
    286     @b_no_type_name = b_no_type_name
    287   end
     10module_eval(<<'...end C_parser.y.rb/module_eval...', 'C_parser.y.rb', 784)
     11
     12        RESERVED = {
     13                # keyword
     14                'typedef' => :TYPEDEF,
     15                'struct' => :STRUCT,
     16                'union' => :UNION,
     17                'sizeof' => :SIZEOF,
     18                'throw' => :THROW,
     19
     20                # specifier
     21                # types
     22                'void'    => :VOID,
     23                'char'    => :CHAR,
     24                'short'   => :SHORT,
     25
     26                'volatile'=> :VOLATILE,
     27                'restrict'=> :RESTRICT,
     28                'const'   => :CONST,
     29                'extern'   => :EXTERN,
     30
     31                'long'    => :LONG,
     32                'float'   => :FLOAT,
     33                'double'  => :DOUBLE,
     34                'signed'  => :SIGNED,
     35                'unsigned'=> :UNSIGNED,
     36
     37                'int'     => :INT,
     38                'enum'    => :ENUM,
     39
     40                'if'      => :IF,
     41                'else'    => :ELSE,
     42                'while'   => :WHILE,
     43                'do'      => :DO,
     44                'for'     => :FOR,
     45                'switch'  => :SWITCH,
     46                'case'    => :CASE,
     47                'default' => :DEFAULT,
     48                'goto'    => :GOTO,
     49                'continue' => :CONTINUE,
     50                'break'   => :BREAK,
     51                'return'  => :RETURN,
     52                '__inline__'  => :__INLINE__,
     53                'inline'  => :INLINE,
     54                '__inline'  => :__INLINE,
     55                'Inline'  => :CINLINE,        # inline starting with Capital letter
     56                'static'  => :STATIC,
     57                'register' => :REGISTER,
     58                'auto'    => :AUTO,
     59                '__extension__'    => :EXTENSION,
     60                '__asm__' => :_ASM,
     61                'asm' =>     :_ASM
     62
     63        }
     64
     65        @@generator_nest = -1
     66        @@generator_stack = []
     67        @@current_locale = []
     68
     69        def finalize
     70
     71                # mikan Namespace.pop
     72                Celltype.pop
     73                Cell.pop
     74                CompositeCelltype.pop
     75                Region.pop
     76
     77        end
     78
     79        def set_plugin( plugin )
     80                @plugin = plugin
     81        end
     82
     83        def self.get_plugin
     84                @@generator_stack[@@generator_nest].get_plugin
     85        end
     86
     87        def get_plugin
     88                @plugin
     89        end
     90
     91        def parse(files)
     92
     93                # mikan Namespace.push
     94                Celltype.push
     95                Cell.push
     96                CompositeCelltype.push
     97                Region.push
     98
     99                @@generator_nest += 1
     100                @@generator_stack[@@generator_nest] = self
     101                @b_no_type_name = false
     102
     103        begin
     104
     105                @q = []
     106                comment = false
     107#               b_asm   = false
     108
     109                # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
     110                TECS_LANG::set_kcode_binary
     111
     112                # 800U, 0xffLL など (整数リテラルに共通の修飾子)
     113                integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
     114
     115                files.each {|file|
     116                        lineno = 1
     117                begin
     118#2.0            IO.foreach(file) {|line|
     119                        TECSIO.foreach(file) {|line|
     120                        col = 1
     121                        line.rstrip!
     122
     123                        until line.empty?
     124
     125                                if comment
     126                                        case line
     127                                        # コメント終了
     128                                        when /\A\*\//
     129                                                comment = false
     130                                        when /\A./
     131                                                ;
     132                                        end
     133                                else
     134                                        case line
     135                                        # 空白、プリプロセスディレクティブ
     136                                        when /\A\s+/
     137                                                ;
     138                                        # 識別子
     139                                        when /\A[a-zA-Z_]\w*/
     140                                                word = $&
     141                                                @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
     142                                        # 16 進数定数
     143                                        when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
     144                                                @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
     145                                        # 8 進数定数
     146                                        when /\A0[0-7]+#{integer_qualifier}/
     147                                                @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
     148                                        # 浮動小数定数
     149                                        when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
     150                                                @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
     151                                        # 整数定数
     152                                        when /\A\d+#{integer_qualifier}/
     153                                        # when /\A\d+/
     154                                                @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
     155                                        # 文字
     156                                        when /\A'(?:[^'\\]|\\.)'/
     157                                                @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
     158                                        # 文字列
     159#                                       "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
     160#                                       when /\A"(?:[^"\\]+|\\.)*"/
     161                                        when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
     162                                                @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
     163                                        # 行コメント
     164                                        when /\A\/\/.*$/
     165                                                # 読み飛ばすだけ
     166                                        # コメント開始
     167                                        when /\A\/\*/
     168                                                comment = true
     169                                        when /\A>>=/, /\A<<=/, /\A>>/,  /\A<</
     170                                                @q << [$&, Token.new($&, file, lineno, col)]
     171                                        when /\A\+=/, /\A\-=/, /\A\*=/, /\A\/=/, /\A%=/, /\A&=/, /\A\|=/, /\A\^=/
     172                                                @q << [$&, Token.new($&, file, lineno, col)]
     173                                        when /\A::/, /\A==/, /\A!=/, /\A>=/, /\A<=/, /\A\->/, /\A\+\+/, /\A\-\-/
     174                                                @q << [$&, Token.new($&, file, lineno, col)]
     175                                        when /\A\|\|/, /\A\&\&/
     176                                                @q << [$&, Token.new($&, file, lineno, col)]
     177                                        when /\A./
     178                                                @q << [$&, Token.new($&, file, lineno, col)]
     179                                        else
     180                                                raise
     181                                        end
     182                                end
     183
     184                                line = $'
     185                                col += $&.length
     186                        end
     187
     188                        lineno += 1
     189                }
     190
     191                rescue => evar
     192                        Generator.error( "B1002 while open or reading \'$1\'" , file )
     193                        print_exception( evar )
     194                end
     195        }
     196
     197        # 終了の印
     198        @q << nil
     199
     200        @yydebug = true
     201        do_parse
     202
     203                ensure
     204                        @@generator_nest -= 1
     205                        TECS_LANG::reset_kcode
     206                end
     207
     208        end
     209
     210
     211        def next_token
     212                token = @q.shift
     213
     214                if token then
     215                        @@current_locale[@@generator_nest] = token[1].locale
     216
     217                        case token[1].val
     218                        when ";", ":", ",", "(", ")", "{", "}"
     219                        set_no_type_name false
     220                        when ".", "->"
     221                        set_no_type_name true
     222                        end
     223
     224                        # TYPE_NAME トークンへ置き換え
     225                        if @b_no_type_name == false
     226                                if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
     227                                        token[0] = :TYPE_NAME
     228                                        locale = @@current_locale[@@generator_nest]
     229#print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}: type_name'\n" )
     230                                end
     231                        end
     232
     233                        if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生)
     234                                locale = @@current_locale[@@generator_nest]
     235                                if token then
     236                                        print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" )
     237                                else
     238                                        print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
     239                                end
     240                        end
     241                end
     242
     243                token
     244        end
     245
     246        def on_error(t, v, vstack)
     247                if v == "$" then
     248                        Generator.error( "B1003 Unexpected EOF"  )
     249                else
     250                        Generator.error( "B1004 syntax error near \'$1\'" , v.val )
     251                end
     252
     253        end
     254
     255        def self.current_locale
     256                @@current_locale[ @@generator_nest ]
     257        end
     258
     259        @@n_error = 0
     260        @@n_warning = 0
     261        @@n_info = 0
     262
     263        # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切)
     264        def self.error( msg )
     265                @@n_error += 1
     266                locale = @@current_locale[ @@generator_nest ]
     267
     268                if locale then
     269                        Console.puts "#{locale[0]}:#{locale[1]}: error: #{msg}"
     270                else
     271                        Console.puts "error: #{msg}"
     272                end
     273        end
     274
     275        # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切)
     276        def self.warning( msg )
     277                @@n_warning += 1
     278                locale = @@current_locale[ @@generator_nest ]
     279                Console.puts "#{locale[0]}:#{locale[1]}: warning: #{msg}"
     280        end
     281
     282        # このメソッドは構文解析、意味解析からのみ呼出し可
     283        def self.info( msg )
     284                @@n_info += 1
     285                locale = @@current_locale[ @@generator_nest ]
     286                Console.puts "#{locale[0]}:#{locale[1]}: info: #{msg}"
     287        end
     288
     289        def self.get_n_error
     290                @@n_error
     291        end
     292
     293        def self.get_n_warning
     294                @@n_warning
     295        end
     296
     297        def self.get_nest
     298                @@generator_nest
     299        end
     300
     301        def set_no_type_name b_no_type_name
     302                locale = @@current_locale[ @@generator_nest ]
     303#print "b_no_type_name=#{b_no_type_name} #{locale[0]}: line #{locale[1]}\n"
     304                @b_no_type_name = b_no_type_name
     305        end
    288306
    289307...end C_parser.y.rb/module_eval...
     
    291309
    292310clist = [
    293 '104,105,106,107,108,110,68,111,66,179,300,141,53,116,117,206,115,118',
    294 '119,120,121,122,123,104,105,106,107,108,110,168,111,203,204,207,141',
    295 '74,116,117,168,115,118,119,120,121,122,123,303,208,67,299,65,26,27,104',
    296 '105,106,107,108,110,73,111,26,27,75,141,348,116,117,167,115,118,119',
    297 '120,121,122,123,77,265,195,196,160,304,305,306,307,308,309,310,311,312',
    298 '313,262,351,142,8,9,10,11,15,16,17,18,19,20,21,22,53,192,23,25,26,27',
    299 '193,194,343,261,142,104,105,106,107,108,110,344,111,172,340,151,141',
    300 '272,116,117,251,115,118,119,120,121,122,123,104,105,106,107,108,110',
    301 '142,111,355,171,339,141,81,116,117,80,115,118,119,120,121,122,123,104',
    302 '105,106,107,108,110,52,111,195,196,3,141,51,116,117,359,115,118,119',
    303 '120,121,122,123,104,105,106,107,108,110,373,111,96,335,361,141,334,116',
    304 '117,344,115,118,119,120,121,122,123,79,142,247,335,272,251,334,251,51',
    305 '104,105,106,107,108,110,81,111,53,80,362,234,363,116,117,142,115,118',
    306 '119,120,121,122,123,247,52,364,251,197,198,51,51,197,198,79,197,198',
    307 '53,53,142,228,365,8,9,10,11,15,16,17,18,19,20,21,22,77,192,23,25,26',
    308 '27,193,194,142,229,95,230,231,232,233,87,235,236,238,239,240,241,192',
    309 '199,200,201,202,193,194,197,198,370,37,38,39,40,41,42,43,44,142,104',
    310 '105,106,107,108,110,86,111,203,204,85,141,375,116,117,376,115,118,119',
    311 '120,121,122,123,104,105,106,107,108,110,377,111,195,196,378,141,379',
    312 '116,117,380,115,118,119,120,121,122,123,104,105,106,107,108,110,382',
    313 '111,383,35,384,141,63,116,117,60,115,118,119,120,121,122,123,104,105',
    314 '106,107,108,110,389,111,209,210,390,141,391,116,117,392,115,118,119',
    315 '120,121,122,123,59,142,394,34,396,8,9,10,11,15,16,17,18,19,20,21,22',
    316 '52,278,23,25,26,27,51,142,36,52,52,52,35,53,52,51,51,51,197,198,51,45',
    317 '53,53,53,277,275,53,269,268,142,267,37,38,39,40,41,42,43,44,181,95,182',
    318 '254,183,184,185,199,200,201,202,253,34,142,8,9,10,11,15,16,17,18,19',
    319 '20,21,22,245,244,23,25,26,27,243,30,36,104,105,106,107,108,110,214,111',
    320 '213,208,207,141,206,116,117,205,115,118,119,120,121,122,123,37,38,39',
    321 '40,41,42,43,44,301,104,105,106,107,108,110,314,111,315,317,318,234,319',
    322 '116,117,321,115,118,119,120,121,122,123,52,52,52,322,52,323,51,51,51',
    323 '324,51,327,174,53,53,53,228,53,8,9,10,11,15,16,17,18,19,20,21,22,77',
    324 '173,23,25,26,27,75,95,142,229,169,230,231,232,233,161,235,236,238,239',
    325 '240,241,199,200,201,202,346,347,205,,,,37,38,39,40,41,42,43,44,142,104',
    326 '105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
    327 ',,104,105,106,107,108,110,,111,,,,234,,116,117,,115,118,119,120,121',
    328 '122,123,,,,,,,,,,,,,,,,,228,,8,9,10,11,15,16,17,18,19,20,21,22,77,,23',
    329 '25,26,27,,,,229,,230,231,232,233,142,235,236,238,239,240,241,,,,,,,',
    330 ',,,37,38,39,40,41,42,43,44,142,104,105,106,107,108,110,,111,,,,234,',
    331 '116,117,,115,118,119,120,121,122,123,,,,,,,,,,,,,,,,,228,,8,9,10,11',
    332 '15,16,17,18,19,20,21,22,77,,23,25,26,27,,,,229,,230,231,232,233,,235',
    333 '236,238,239,240,241,,,,,,,,,,,37,38,39,40,41,42,43,44,142,104,105,106',
    334 '107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,104,105',
    335 '106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,104',
    336 '105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
    337 '104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122',
    338 '123,,142,,,,,,,,104,105,106,107,108,110,,111,,,,141,,116,117,142,115',
    339 '118,119,120,121,122,123,104,105,106,107,108,110,,111,,366,,141,,116',
    340 '117,142,115,118,119,120,121,122,123,,,,,,,,104,105,106,107,108,110,',
    341 '111,142,,,234,,116,117,,115,118,119,120,121,122,123,,,,,,,,,,,,,,,,',
    342 '228,142,8,9,10,11,15,16,17,18,19,20,21,22,77,,23,25,26,27,,,,229,142',
    343 '230,231,232,233,,235,236,238,239,240,241,,,,,,,,,,,37,38,39,40,41,42',
    344 '43,44,142,104,105,106,107,108,110,,111,,,,234,,116,117,,115,118,119',
    345 '120,121,122,123,,,,,,,,,,,,,,,,,228,,8,9,10,11,15,16,17,18,19,20,21',
    346 '22,77,,23,25,26,27,,,,229,,230,231,232,233,,235,236,238,239,240,241',
    347 ',,,,,,,,,,37,38,39,40,41,42,43,44,142,104,105,106,107,108,110,,111,',
    348 ',,234,,116,117,,115,118,119,120,121,122,123,,,,,,,,,,,,,,,,,228,,8,9',
    349 '10,11,15,16,17,18,19,20,21,22,77,,23,25,26,27,,,,229,,230,231,232,233',
    350 ',235,236,238,239,240,241,,,,,,,,,,,37,38,39,40,41,42,43,44,142,104,105',
    351 '106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,104',
    352 '105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
    353 '104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122',
    354 '123,104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121',
    355 '122,123,,142,,,,,,139,,,,,,140,104,105,106,107,108,110,,111,,145,142',
    356 '141,,116,117,,115,118,119,120,121,122,123,104,105,106,107,108,110,,111',
    357 ',,142,141,,116,117,,115,118,119,120,121,122,123,104,105,106,107,108',
    358 '110,,111,,,142,141,,116,117,,115,118,119,120,121,122,123,104,105,106',
    359 '107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,,142,',
    360 ',,,,,,104,105,106,107,108,110,,111,,,,141,,116,117,142,115,118,119,120',
    361 '121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,142,115,118',
    362 '119,120,121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,142',
    363 '115,118,119,120,121,122,123,104,105,106,107,108,110,,111,,,,141,,116',
    364 '117,,115,118,119,120,121,122,123,,142,,,,,,139,349,,,,,140,104,105,106',
    365 '107,108,110,,111,,,142,141,,116,117,,115,118,119,120,121,122,123,104',
    366 '105,106,107,108,110,,111,,,142,141,,116,117,,115,118,119,120,121,122',
    367 '123,104,105,106,107,108,110,,111,,,142,141,,116,117,,115,118,119,120',
    368 '121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119',
    369 '120,121,122,123,,142,,,,,,,,104,105,106,107,108,110,,111,,,,141,,116',
    370 '117,142,115,118,119,120,121,122,123,104,105,106,107,108,110,,111,,,',
    371 '141,,116,117,142,115,118,119,120,121,122,123,104,105,106,107,108,110',
    372 ',111,,,,141,,116,117,142,115,118,119,120,121,122,123,,,,,,,,,,104,105',
    373 '106,107,108,110,,111,,,,234,,116,117,142,115,118,119,120,121,122,123',
    374 ',,,,,,,,,,,,,,,142,228,,8,9,10,11,15,16,17,18,19,20,21,22,77,237,23',
    375 '25,26,27,,,142,229,,230,231,232,233,,235,236,238,239,240,241,,,,,,,',
    376 ',,,37,38,39,40,41,42,43,44,142,104,105,106,107,108,110,,111,,336,,141',
    377 ',116,117,,115,118,119,120,121,122,123,104,105,106,107,108,110,,111,',
    378 ',,141,,116,117,,115,118,119,120,121,122,123,8,9,10,11,15,16,17,18,19',
    379 '20,21,22,,,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26',
    380 '27,,104,105,106,107,108,110,,111,,,142,141,,116,117,,115,118,119,120',
    381 '121,122,123,104,105,106,107,108,110,,111,,,142,141,,116,117,,115,118',
    382 '119,120,121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,,115',
    383 '118,119,120,121,122,123,104,105,106,107,108,187,,111,,,,141,,116,117',
    384 ',115,118,119,120,121,122,123,,142,,,,,,,,104,105,106,107,108,189,,111',
    385 ',,,141,,116,117,142,115,118,119,120,121,122,123,104,105,106,107,108',
    386 '189,,111,,,,141,,116,117,142,115,118,119,120,121,122,123,104,105,106',
    387 '107,108,110,,111,,,,141,,116,117,142,115,118,119,120,121,122,123,104',
    388 '105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
    389 ',142,,,,,,139,,,,,,140,272,332,326,251,104,105,106,107,108,110,142,111',
    390 ',53,,141,,116,117,,115,118,119,120,121,122,123,,,,,,,142,,,8,9,10,11',
    391 '15,16,17,18,19,20,21,22,,,23,25,26,27,,,142,104,105,106,107,108,110',
    392 ',111,,,,234,,116,117,,115,118,119,120,121,122,123,37,38,39,40,41,42',
    393 '43,44,,,,,,,,,228,142,8,9,10,11,15,16,17,18,19,20,21,22,77,,23,25,26',
    394 '27,,,,229,,230,231,232,233,,235,236,238,239,240,241,368,,,,,,,,,,37',
    395 '38,39,40,41,42,43,44,142,247,332,,251,,,51,,,,,,,53,,,8,9,10,11,15,16',
    396 '17,18,19,20,21,22,,,23,25,26,27,,,8,9,10,11,15,16,17,18,19,20,21,22',
    397 ',,23,25,26,27,147,,,,,,37,38,39,40,41,42,43,44,,,,,,,,,328,,,,37,38',
    398 '39,40,41,42,43,44,,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,8',
    399 '9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37,38,39,40,41',
    400 '42,43,44,,,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19',
    401 '20,21,22,,,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,338,23,25',
    402 '26,27,,,,,,,,,37,38,39,40,41,42,43,44,,,,,,,,,,,37,38,39,40,41,42,43',
    403 '44,8,9,10,11,15,16,17,18,19,20,21,22,,162,23,25,26,27,8,9,10,11,15,16',
    404 '17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37,38,39,40,41,42,43,44,,,,',
    405 ',,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19,20,21,22,,,23',
    406 '25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37',
    407 '38,39,40,41,42,43,44,,,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15',
    408 '16,17,18,19,20,21,22,,255,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21',
    409 '22,,,23,25,26,27,,,,,,,,,37,38,39,40,41,42,43,44,,,,,,,,,,,37,38,39',
    410 '40,41,42,43,44,8,9,10,11,15,16,17,18,19,20,21,22,,260,23,25,26,27,8',
    411 '9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37,38,39,40,41',
    412 '42,43,44,,,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19',
    413 '20,21,22,,,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26',
    414 '27,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19,20,21,22',
    415 ',,23,25,26,27' ]
    416         racc_action_table = arr = ::Array.new(2877, nil)
     311'111,112,113,114,115,117,294,118,56,298,55,163,54,123,124,82,54,262,122',
     312'125,126,127,128,129,130,111,112,113,114,115,117,217,118,271,391,101',
     313'163,91,123,124,82,271,271,122,125,126,127,128,129,130,56,70,171,72,82',
     314'69,397,71,80,32,33,34,224,309,271,223,216,226,84,227,228,229,84,392',
     315'101,325,272,171,298,312,80,164,165,172,393,173,174,175,176,177,178,179',
     316'180,149,181,101,218,79,308,369,388,32,33,34,265,266,164,165,172,73,173',
     317'174,175,176,177,178,179,180,149,181,111,112,113,114,115,117,384,118',
     318'32,33,34,163,78,123,124,82,440,402,122,125,126,127,128,129,130,55,219',
     319'271,271,383,101,54,332,248,325,387,55,298,249,250,56,382,54,111,112',
     320'113,114,115,117,56,118,56,171,331,163,395,123,124,82,276,210,122,125',
     321'126,127,128,129,130,420,55,378,210,248,377,396,54,330,249,250,393,92',
     322'164,165,172,56,173,174,175,176,177,178,179,180,149,181,171,9,10,11,12',
     323'13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,355,356',
     324'213,164,165,172,204,173,174,175,176,177,178,179,180,149,181,111,112',
     325'113,114,115,117,404,118,93,378,203,163,377,123,124,82,193,271,122,125',
     326'126,127,128,129,130,111,112,113,114,115,117,290,118,101,86,55,163,85',
     327'123,124,82,54,291,122,125,126,127,128,129,130,56,357,171,13,14,15,16',
     328'17,18,19,20,21,22,26,28,30,31,32,33,34,248,86,322,438,85,249,250,171',
     329'434,435,370,164,165,172,271,173,174,175,176,177,178,179,180,149,181',
     330'259,260,261,321,255,256,257,258,315,316,262,164,165,172,271,173,174',
     331'175,176,177,178,179,180,149,181,111,112,113,114,115,117,403,118,317',
     332'318,263,163,264,123,124,82,320,271,122,125,126,127,128,129,130,13,14',
     333'15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,437,111,112,113,114,115',
     334'117,360,118,400,171,271,163,368,123,124,82,166,103,122,125,126,127,128',
     335'129,130,102,55,255,256,257,258,310,54,255,256,257,258,405,164,165,172',
     336'56,173,174,175,176,177,178,179,180,149,181,171,9,10,11,12,13,14,15,16',
     337'17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,259,260,301,164,165',
     338'172,300,173,174,175,176,177,178,179,180,149,181,111,112,113,114,115',
     339'117,408,118,253,254,292,163,409,123,124,82,253,254,122,125,126,127,128',
     340'129,130,111,112,113,114,115,117,410,118,253,254,55,163,289,123,124,82',
     341'54,288,122,125,126,127,128,129,130,56,415,171,13,14,15,16,17,18,19,20',
     342'21,22,26,28,30,31,32,33,34,253,254,253,254,251,252,261,171,211,212,285',
     343'164,165,172,284,173,174,175,176,177,178,179,180,149,181,237,238,239',
     344'240,241,242,243,244,245,246,247,164,165,172,283,173,174,175,176,177',
     345'178,179,180,149,181,111,112,113,114,115,117,282,118,251,252,389,163',
     346'389,123,124,82,251,252,122,125,126,127,128,129,130,111,112,113,114,115',
     347'117,101,118,67,82,55,163,64,123,124,82,54,63,122,125,126,127,128,129',
     348'130,56,55,171,55,55,294,280,54,298,54,54,54,279,430,431,432,56,433,56',
     349'56,56,365,436,278,263,275,264,171,273,270,48,164,165,172,444,173,174',
     350'175,176,177,178,179,180,149,181,269,3,,,,,,,,,,164,165,172,,173,174',
     351'175,176,177,178,179,180,149,181,111,112,113,114,115,117,,118,,,,163',
     352',123,124,82,,,122,125,126,127,128,129,130,111,112,113,114,115,117,,118',
     353',,,148,,123,124,,,,122,125,126,127,128,129,130,,,171,111,112,113,114',
     354'115,117,,118,,,,148,,123,124,,,,122,125,126,127,128,129,130,,,,164,165',
     355'172,,173,174,175,176,177,178,179,180,149,181,,,,,,,111,112,113,114,115',
     356'117,,118,,411,,148,,123,124,,,149,122,125,126,127,128,129,130,,,,111',
     357'112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129',
     358'130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127',
     359'128,129,130,,,171,,,,,,,,,,,,,149,,111,112,113,114,115,117,,118,,,171',
     360'148,,123,124,,,,122,125,126,127,128,129,130,,149,,,,,,,,111,112,113',
     361'114,115,117,,118,,,,148,,123,124,146,398,149,122,125,126,127,128,129',
     362'130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127',
     363'128,129,130,111,112,113,114,115,117,,118,,149,,148,,123,124,389,,,122',
     364'125,126,127,128,129,130,,,,147,,,111,112,113,114,115,117,,118,,,,148',
     365'149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,',
     366'118,,379,,148,149,123,124,,,,122,125,126,127,128,129,130,,,,,,,,,,,',
     367',149,,,,,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126',
     368'127,128,129,130,,149,,,,,,,,,,,,,,,,,,,,,,,,,149,171,9,10,11,12,13,14',
     369'15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,111,112,113',
     370'114,115,117,,118,,,,148,,123,124,149,,,122,125,126,127,128,129,130,111',
     371'112,113,114,115,117,,118,,,,148,,123,124,146,,,122,125,126,127,128,129',
     372'130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127',
     373'128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122',
     374'125,126,127,128,129,130,,,147,,,111,112,113,114,115,117,,118,,,,148',
     375'149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,',
     376'118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113,114',
     377'115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,111,112',
     378'113,114,115,117,,118,,,,148,,123,124,146,,149,122,125,126,127,128,129',
     379'130,111,112,113,114,115,117,427,118,,,,148,,123,124,,,149,122,125,126',
     380'127,128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149',
     381'122,125,126,127,128,129,130,,,147,,,111,112,113,114,115,117,,118,,185',
     382',148,149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115',
     383'117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112',
     384'113,114,115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130',
     385'111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128',
     386'129,130,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126',
     387'127,128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149',
     388'122,125,126,127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123',
     389'124,,,149,122,125,126,127,128,129,130,111,112,113,114,115,117,,118,',
     390',,148,,123,124,,,149,122,125,126,127,128,129,130,,111,112,113,114,115',
     391'117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113',
     392'114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111',
     393'112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129',
     394'130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126',
     395'127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122',
     396'125,126,127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123,124',
     397',,149,122,125,126,127,128,129,130,,111,112,113,114,115,117,,118,,,,148',
     398',123,124,,,149,122,125,126,127,128,129,130,111,112,113,114,115,117,',
     399'118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113,114',
     400'115,117,,118,,,,148,,123,124,146,,149,122,125,126,127,128,129,130,,111',
     401'112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129',
     402'130,,,,,,,,,,,,,,,,,,149,,,,,,,,,,147,,,111,112,113,114,115,117,,118',
     403',,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113,114,115',
     404'117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,,,,,,13',
     405'14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114,115',
     406'117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,,111,112',
     407'113,114,115,231,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130',
     408'111,112,113,114,115,233,,118,,,,148,,123,124,,,,122,125,126,127,128',
     409'129,130,111,112,113,114,115,233,,118,,,,148,,123,124,,,149,122,125,126',
     410'127,128,129,130,,,,,,,,,,,,,111,112,113,114,115,117,149,118,,,,148,',
     411'123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,149,118',
     412',,,148,,123,124,,,,122,125,126,127,128,129,130,,,,,,,149,13,14,15,16',
     413'17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114,115,117,,118',
     414',,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113,114,115',
     415'117,327,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,,,,,,',
     416',13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114',
     417'115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112',
     418'113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130',
     419'111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127,128',
     420'129,130,,111,112,113,114,115,117,429,118,,,,148,,123,124,,,149,122,125',
     421'126,127,128,129,130,,287,,,,111,112,113,114,115,117,,118,,,,148,149',
     422'123,124,146,442,,122,125,126,127,128,129,130,111,112,113,114,115,117',
     423',118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113',
     424'114,115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,',
     425',147,,,,,,,,,,,,,,46,149,,,,,,,,,,,,,,,,,,,,,,,,,149,,,46,,,,,,,,,,',
     426',,,,,,,,,,,,149,45,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30',
     427'31,32,33,34,35,36,37,38,,,47,45,9,10,11,12,13,14,15,16,17,18,19,20,21',
     428'22,26,28,30,31,32,33,34,35,36,37,38,,41,47,294,375,,298,,,54,,,,,,,',
     429',56,,,,,,,,,,325,375,,298,,,,,,,,,,,,56,,,,,,,,9,10,11,12,13,14,15,16',
     430'17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14',
     431'15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,188,,,,,192',
     432',,,,,,,,,,,,,,,,,,,413,,,,,,,,,,,,,,,,,,,,,,9,10,11,12,13,14,15,16,17',
     433'18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15',
     434'16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,371,9,10,11,12',
     435'13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,,,,,',
     436'205,,,,,,,,,,,,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31',
     437'32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28',
     438'30,31,32,33,34,35,36,37,38,307,,,,,,,,,,,,,,,,,,,,,,,,,381,,,,,,,,,',
     439',,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36',
     440'37,38,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34',
     441'35,36,37,38,302,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31',
     442'32,33,34,35,36,37,38,,,,,,,,,,,,9,10,11,12,13,14,15,16,17,18,19,20,21',
     443'22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17,18,19',
     444'20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17',
     445'18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15',
     446'16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13',
     447'14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11',
     448'12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9',
     449'10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37',
     450'38' ]
     451        racc_action_table = arr = ::Array.new(3198, nil)
    417452        idx = 0
    418453        clist.each do |str|
     
    424459
    425460clist = [
    426 '208,208,208,208,208,208,24,208,23,112,211,208,53,208,208,295,208,208',
    427 '208,208,208,208,208,209,209,209,209,209,209,93,209,130,130,296,209,46',
    428 '209,209,170,209,209,209,209,209,209,209,215,297,24,211,23,53,53,187',
    429 '187,187,187,187,187,46,187,112,112,48,187,298,187,187,93,187,187,187',
    430 '187,187,187,187,48,170,285,285,88,215,215,215,215,215,215,215,215,215',
    431 '215,164,301,208,187,187,187,187,187,187,187,187,187,187,187,187,83,283',
    432 '187,187,187,187,283,283,273,164,209,392,392,392,392,392,392,273,392',
    433 '99,257,82,392,271,392,392,271,392,392,392,392,392,392,392,179,179,179',
    434 '179,179,179,187,179,316,99,257,179,50,179,179,50,179,179,179,179,179',
    435 '179,179,192,192,192,192,192,192,49,192,286,286,1,192,49,192,192,320',
    436 '192,192,192,192,192,192,192,193,193,193,193,193,193,345,193,68,250,322',
    437 '193,250,193,193,345,193,193,193,193,193,193,193,49,392,246,330,178,246',
    438 '330,178,246,390,390,390,390,390,390,78,390,178,78,325,390,328,390,390',
    439 '179,390,390,390,390,390,390,390,150,158,331,150,287,287,150,158,288',
    440 '288,246,289,289,150,158,192,390,333,390,390,390,390,390,390,390,390',
    441 '390,390,390,390,390,284,390,390,390,390,284,284,193,390,67,390,390,390',
    442 '390,64,390,390,390,390,390,390,126,129,129,129,129,126,126,290,290,337',
    443 '390,390,390,390,390,390,390,390,390,379,379,379,379,379,379,62,379,293',
    444 '293,61,379,352,379,379,353,379,379,379,379,379,379,379,378,378,378,378',
    445 '378,378,354,378,127,127,355,378,356,378,378,357,378,378,378,378,378',
    446 '378,378,194,194,194,194,194,194,363,194,367,30,369,194,22,194,194,14',
    447 '194,194,194,194,194,194,194,195,195,195,195,195,195,380,195,135,135',
    448 '385,195,387,195,195,388,195,195,195,195,195,195,195,12,379,391,30,395',
    449 '30,30,30,30,30,30,30,30,30,30,30,30,92,183,30,30,30,30,92,378,30,262',
    450 '74,4,2,92,72,262,74,4,128,128,72,3,262,74,4,182,180,72,176,175,194,173',
    451 '30,30,30,30,30,30,30,30,113,168,113,155,113,113,113,291,291,291,291',
    452 '154,2,195,2,2,2,2,2,2,2,2,2,2,2,2,148,146,2,2,2,2,144,2,2,196,196,196',
    453 '196,196,196,142,196,140,134,133,196,132,196,196,131,196,196,196,196',
    454 '196,196,196,2,2,2,2,2,2,2,2,213,377,377,377,377,377,377,229,377,230',
    455 '232,233,377,234,377,377,236,377,377,377,377,377,377,377,340,216,172',
    456 '238,52,239,340,216,172,240,52,242,109,340,216,172,377,52,377,377,377',
    457 '377,377,377,377,377,377,377,377,377,377,103,377,377,377,377,102,96,196',
    458 '377,95,377,377,377,377,89,377,377,377,377,377,377,292,292,292,292,276',
    459 '279,294,,,,377,377,377,377,377,377,377,377,377,169,169,169,169,169,169',
    460 ',169,,,,169,,169,169,,169,169,169,169,169,169,169,,,376,376,376,376',
    461 '376,376,,376,,,,376,,376,376,,376,376,376,376,376,376,376,,,,,,,,,,',
    462 ',,,,,,376,,376,376,376,376,376,376,376,376,376,376,376,376,376,,376',
    463 '376,376,376,,,,376,,376,376,376,376,169,376,376,376,376,376,376,,,,',
    464 ',,,,,,376,376,376,376,376,376,376,376,376,359,359,359,359,359,359,,359',
    465 ',,,359,,359,359,,359,359,359,359,359,359,359,,,,,,,,,,,,,,,,,359,,359',
    466 '359,359,359,359,359,359,359,359,359,359,359,359,,359,359,359,359,,,',
    467 '359,,359,359,359,359,,359,359,359,359,359,359,,,,,,,,,,,359,359,359',
    468 '359,359,359,359,359,359,197,197,197,197,197,197,,197,,,,197,,197,197',
    469 ',197,197,197,197,197,197,197,348,348,348,348,348,348,,348,,,,348,,348',
    470 '348,,348,348,348,348,348,348,348,344,344,344,344,344,344,,344,,,,344',
    471 ',344,344,,344,344,344,344,344,344,344,189,189,189,189,189,189,,189,',
    472 ',,189,,189,189,,189,189,189,189,189,189,189,,197,,,,,,,,198,198,198',
    473 '198,198,198,,198,,,,198,,198,198,348,198,198,198,198,198,198,198,334',
    474 '334,334,334,334,334,,334,,334,,334,,334,334,344,334,334,334,334,334',
    475 '334,334,,,,,,,,321,321,321,321,321,321,,321,189,,,321,,321,321,,321',
    476 '321,321,321,321,321,321,,,,,,,,,,,,,,,,,321,198,321,321,321,321,321',
    477 '321,321,321,321,321,321,321,321,,321,321,321,321,,,,321,334,321,321',
    478 '321,321,,321,321,321,321,321,321,,,,,,,,,,,321,321,321,321,321,321,321',
    479 '321,321,319,319,319,319,319,319,,319,,,,319,,319,319,,319,319,319,319',
    480 '319,319,319,,,,,,,,,,,,,,,,,319,,319,319,319,319,319,319,319,319,319',
    481 '319,319,319,319,,319,319,319,319,,,,319,,319,319,319,319,,319,319,319',
    482 '319,319,319,,,,,,,,,,,319,319,319,319,319,319,319,319,319,396,396,396',
    483 '396,396,396,,396,,,,396,,396,396,,396,396,396,396,396,396,396,,,,,,',
    484 ',,,,,,,,,,396,,396,396,396,396,396,396,396,396,396,396,396,396,396,',
    485 '396,396,396,396,,,,396,,396,396,396,396,,396,396,396,396,396,396,,,',
    486 ',,,,,,,396,396,396,396,396,396,396,396,396,318,318,318,318,318,318,',
    487 '318,,,,318,,318,318,,318,318,318,318,318,318,318,317,317,317,317,317',
    488 '317,,317,,,,317,,317,317,,317,317,317,317,317,317,317,75,75,75,75,75',
    489 '75,,75,,,,75,,75,75,,75,75,75,75,75,75,75,315,315,315,315,315,315,,315',
    490 ',,,315,,315,315,,315,315,315,315,315,315,315,,318,,,,,,75,,,,,,75,80',
    491 '80,80,80,80,80,,80,,80,317,80,,80,80,,80,80,80,80,80,80,80,181,181,181',
    492 '181,181,181,,181,,,75,181,,181,181,,181,181,181,181,181,181,181,314',
    493 '314,314,314,314,314,,314,,,315,314,,314,314,,314,314,314,314,314,314',
    494 '314,302,302,302,302,302,302,,302,,,,302,,302,302,,302,302,302,302,302',
    495 '302,302,,80,,,,,,,,199,199,199,199,199,199,,199,,,,199,,199,199,181',
    496 '199,199,199,199,199,199,199,200,200,200,200,200,200,,200,,,,200,,200',
    497 '200,314,200,200,200,200,200,200,200,300,300,300,300,300,300,,300,,,',
    498 '300,,300,300,302,300,300,300,300,300,300,300,275,275,275,275,275,275',
    499 ',275,,,,275,,275,275,,275,275,275,275,275,275,275,,199,,,,,,300,300',
    500 ',,,,300,201,201,201,201,201,201,,201,,,200,201,,201,201,,201,201,201',
    501 '201,201,201,201,207,207,207,207,207,207,,207,,,300,207,,207,207,,207',
    502 '207,207,207,207,207,207,210,210,210,210,210,210,,210,,,275,210,,210',
    503 '210,,210,210,210,210,210,210,210,202,202,202,202,202,202,,202,,,,202',
    504 ',202,202,,202,202,202,202,202,202,202,,201,,,,,,,,269,269,269,269,269',
    505 '269,,269,,,,269,,269,269,207,269,269,269,269,269,269,269,203,203,203',
    506 '203,203,203,,203,,,,203,,203,203,210,203,203,203,203,203,203,203,204',
    507 '204,204,204,204,204,,204,,,,204,,204,204,202,204,204,204,204,204,204',
    508 '204,,,,,,,,,,143,143,143,143,143,143,,143,,,,143,,143,143,269,143,143',
    509 '143,143,143,143,143,,,,,,,,,,,,,,,,203,143,,143,143,143,143,143,143',
    510 '143,143,143,143,143,143,143,143,143,143,143,143,,,204,143,,143,143,143',
    511 '143,,143,143,143,143,143,143,,,,,,,,,,,143,143,143,143,143,143,143,143',
    512 '143,251,251,251,251,251,251,,251,,251,,251,,251,251,,251,251,251,251',
    513 '251,251,251,110,110,110,110,110,110,,110,,,,110,,110,110,,110,110,110',
    514 '110,110,110,110,70,70,70,70,70,70,70,70,70,70,70,70,,,70,70,70,70,110',
    515 '110,110,110,110,110,110,110,110,110,110,110,,,110,110,110,110,,205,205',
    516 '205,205,205,205,,205,,,251,205,,205,205,,205,205,205,205,205,205,205',
    517 '206,206,206,206,206,206,,206,,,110,206,,206,206,,206,206,206,206,206',
    518 '206,206,114,114,114,114,114,114,,114,,,,114,,114,114,,114,114,114,114',
    519 '114,114,114,115,115,115,115,115,115,,115,,,,115,,115,115,,115,115,115',
    520 '115,115,115,115,,205,,,,,,,,116,116,116,116,116,116,,116,,,,116,,116',
    521 '116,206,116,116,116,116,116,116,116,117,117,117,117,117,117,,117,,,',
    522 '117,,117,117,114,117,117,117,117,117,117,117,139,139,139,139,139,139',
    523 ',139,,,,139,,139,139,115,139,139,139,139,139,139,139,241,241,241,241',
    524 '241,241,,241,,,,241,,241,241,,241,241,241,241,241,241,241,,116,,,,,',
    525 '139,,,,,,139,272,272,241,272,235,235,235,235,235,235,117,235,,272,,235',
    526 ',235,235,,235,235,235,235,235,235,235,,,,,,,139,,,272,272,272,272,272',
    527 '272,272,272,272,272,272,272,,,272,272,272,272,,,241,231,231,231,231',
    528 '231,231,,231,,,,231,,231,231,,231,231,231,231,231,231,231,272,272,272',
    529 '272,272,272,272,272,,,,,,,,,231,235,231,231,231,231,231,231,231,231',
    530 '231,231,231,231,231,,231,231,231,231,,,,231,,231,231,231,231,,231,231',
    531 '231,231,231,231,335,,,,,,,,,,231,231,231,231,231,231,231,231,231,247',
    532 '247,,247,,,247,,,,,,,247,,,335,335,335,335,335,335,335,335,335,335,335',
    533 '335,,,335,335,335,335,,,247,247,247,247,247,247,247,247,247,247,247',
    534 '247,,,247,247,247,247,81,,,,,,335,335,335,335,335,335,335,335,,,,,,',
    535 ',,245,,,,247,247,247,247,247,247,247,247,,81,81,81,81,81,81,81,81,81',
    536 '81,81,81,,,81,81,81,81,245,245,245,245,245,245,245,245,245,245,245,245',
    537 ',,245,245,245,245,,,,,,,,,81,81,81,81,81,81,81,81,,,,,,,,,,,245,245',
    538 '245,245,245,245,245,245,5,5,5,5,5,5,5,5,5,5,5,5,,,5,5,5,5,252,252,252',
    539 '252,252,252,252,252,252,252,252,252,,252,252,252,252,252,,,,,,,,,5,5',
    540 '5,5,5,5,5,5,,,,,,,,,,,252,252,252,252,252,252,252,252,90,90,90,90,90',
    541 '90,90,90,90,90,90,90,,90,90,90,90,90,153,153,153,153,153,153,153,153',
    542 '153,153,153,153,,,153,153,153,153,,,,,,,,,90,90,90,90,90,90,90,90,,',
    543 ',,,,,,,,153,153,153,153,153,153,153,153,87,87,87,87,87,87,87,87,87,87',
    544 '87,87,,,87,87,87,87,86,86,86,86,86,86,86,86,86,86,86,86,,,86,86,86,86',
    545 ',,,,,,,,87,87,87,87,87,87,87,87,,,,,,,,,,,86,86,86,86,86,86,86,86,156',
    546 '156,156,156,156,156,156,156,156,156,156,156,,156,156,156,156,156,65',
    547 '65,65,65,65,65,65,65,65,65,65,65,,,65,65,65,65,,,,,,,,,156,156,156,156',
    548 '156,156,156,156,,,,,,,,,,,65,65,65,65,65,65,65,65,159,159,159,159,159',
    549 '159,159,159,159,159,159,159,,159,159,159,159,159,7,7,7,7,7,7,7,7,7,7',
    550 '7,7,,,7,7,7,7,,,,,,,,,159,159,159,159,159,159,159,159,,,,,,,,,,,7,7',
    551 '7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,,,6,6,6,6,36,36,36,36,36,36,36,36',
    552 '36,36,36,36,,,36,36,36,36,,,,,,,,,6,6,6,6,6,6,6,6,71,71,71,71,71,71',
    553 '71,71,71,71,71,71,,,71,71,71,71' ]
    554         racc_action_check = arr = ::Array.new(2877, nil)
     461'440,440,440,440,440,440,293,440,56,293,52,440,293,440,440,440,52,139',
     462'440,440,440,440,440,440,440,438,438,438,438,438,438,106,438,354,326',
     463'103,438,65,438,438,438,151,326,438,438,438,438,438,438,438,88,29,440',
     464'31,51,29,354,31,109,56,56,56,120,207,286,120,106,120,293,120,120,120',
     465'52,328,212,324,151,438,324,212,51,440,440,440,328,440,440,440,440,440',
     466'440,440,440,440,440,318,110,49,207,286,318,88,88,88,142,142,438,438',
     467'438,31,438,438,438,438,438,438,438,438,438,438,436,436,436,436,436,436',
     468'304,436,120,120,120,436,49,436,436,436,428,362,436,436,436,436,436,436',
     469'436,98,116,428,362,304,316,98,227,340,222,316,309,222,340,340,98,304',
     470'309,167,167,167,167,167,167,222,167,309,436,226,167,333,167,167,167',
     471'167,98,167,167,167,167,167,167,167,394,4,297,309,339,297,334,4,225,339',
     472'339,394,66,436,436,436,4,436,436,436,436,436,436,436,436,436,436,167',
     473'167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167',
     474'167,167,167,167,167,167,167,167,267,267,101,167,167,167,95,167,167,167',
     475'167,167,167,167,167,167,167,429,429,429,429,429,429,364,429,68,373,94',
     476'429,373,429,429,429,87,364,429,429,429,429,429,429,429,427,427,427,427',
     477'427,427,187,427,71,83,217,427,83,427,427,427,217,187,427,427,427,427',
     478'427,427,427,217,269,429,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75',
     479'75,75,133,53,221,426,53,133,133,427,418,418,291,429,429,429,426,429',
     480'429,429,429,429,429,429,429,429,429,137,137,350,220,136,136,136,136',
     481'214,214,351,427,427,427,220,427,427,427,427,427,427,427,427,427,427',
     482'175,175,175,175,175,175,363,175,215,215,352,175,353,175,175,175,218',
     483'363,175,175,175,175,175,175,175,76,76,76,76,76,76,76,76,76,76,76,76',
     484'76,76,76,76,76,425,82,82,82,82,82,82,274,82,357,175,425,82,283,82,82',
     485'82,82,73,82,82,82,82,82,82,82,72,201,347,347,347,347,209,201,348,348',
     486'348,348,365,175,175,175,201,175,175,175,175,175,175,175,175,175,175',
     487'82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82',
     488'82,82,82,349,349,198,82,82,82,197,82,82,82,82,82,82,82,82,82,82,273',
     489'273,273,273,273,273,371,273,135,135,189,273,374,273,273,273,346,346',
     490'273,273,273,273,273,273,273,404,404,404,404,404,404,376,404,345,345',
     491'79,404,186,404,404,404,79,184,404,404,404,404,404,404,404,79,380,273',
     492'47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,344,344,343,343,342',
     493'342,138,404,99,99,179,273,273,273,178,273,273,273,273,273,273,273,273',
     494'273,273,131,131,131,131,131,131,131,131,131,131,131,404,404,404,177',
     495'404,404,404,404,404,404,404,404,404,404,402,402,402,402,402,402,176',
     496'402,341,341,395,402,396,402,402,402,134,134,402,402,402,402,402,402',
     497'402,275,275,275,275,275,275,102,275,27,403,77,275,25,275,275,275,77',
     498'23,275,275,275,275,275,275,275,77,55,402,152,384,191,174,55,191,152',
     499'384,191,173,408,412,414,55,416,152,384,191,281,422,172,140,165,141,275',
     500'163,149,3,402,402,402,437,402,402,402,402,402,402,402,402,402,402,147',
     501'1,,,,,,,,,,275,275,275,,275,275,275,275,275,275,275,275,275,275,360',
     502'360,360,360,360,360,,360,,,,360,,360,360,360,,,360,360,360,360,360,360',
     503'360,249,249,249,249,249,249,,249,,,,249,,249,249,,,,249,249,249,249',
     504'249,249,249,,,360,383,383,383,383,383,383,,383,,,,383,,383,383,,,,383',
     505'383,383,383,383,383,383,,,,360,360,360,,360,360,360,360,360,360,360',
     506'360,360,360,,,,,,,377,377,377,377,377,377,,377,,377,,377,,377,377,,',
     507'249,377,377,377,377,377,377,377,,,,367,367,367,367,367,367,,367,,,,367',
     508',367,367,,,383,367,367,367,367,367,367,367,366,366,366,366,366,366,',
     509'366,,,,366,,366,366,,,,366,366,366,366,366,366,366,,,367,,,,,,,,,,,',
     510',377,,393,393,393,393,393,393,,393,,,366,393,,393,393,,,,393,393,393',
     511'393,393,393,393,,367,,,,,,,,356,356,356,356,356,356,,356,,,,356,,356',
     512'356,356,356,366,356,356,356,356,356,356,356,330,330,330,330,330,330',
     513',330,,,,330,,330,330,,,,330,330,330,330,330,330,330,322,322,322,322',
     514'322,322,,322,,393,,322,,322,322,322,,,322,322,322,322,322,322,322,,',
     515',356,,,310,310,310,310,310,310,,310,,,,310,356,310,310,,,,310,310,310',
     516'310,310,310,310,298,298,298,298,298,298,,298,,298,,298,330,298,298,',
     517',,298,298,298,298,298,298,298,,,,,,,,,,,,,322,,,,,282,282,282,282,282',
     518'282,,282,,,,282,,282,282,,,,282,282,282,282,282,282,282,,310,,,,,,,',
     519',,,,,,,,,,,,,,,,,298,282,282,282,282,282,282,282,282,282,282,282,282',
     520'282,282,282,282,282,282,282,282,282,282,282,282,282,282,280,280,280',
     521'280,280,280,,280,,,,280,,280,280,282,,,280,280,280,280,280,280,280,146',
     522'146,146,146,146,146,,146,,,,146,,146,146,146,,,146,146,146,146,146,146',
     523'146,278,278,278,278,278,278,,278,,,,278,,278,278,,,,278,278,278,278',
     524'278,278,278,,397,397,397,397,397,397,,397,,,,397,,397,397,,,280,397',
     525'397,397,397,397,397,397,,,146,,,405,405,405,405,405,405,,405,,,,405',
     526'146,405,405,,,,405,405,405,405,405,405,405,271,271,271,271,271,271,',
     527'271,,,,271,278,271,271,,,,271,271,271,271,271,271,271,,266,266,266,266',
     528'266,266,,266,,,,266,397,266,266,,,,266,266,266,266,266,266,266,80,80',
     529'80,80,80,80,,80,,,,80,,80,80,80,,405,80,80,80,80,80,80,80,406,406,406',
     530'406,406,406,406,406,,,,406,,406,406,,,271,406,406,406,406,406,406,406',
     531',265,265,265,265,265,265,,265,,,,265,,265,265,,,266,265,265,265,265',
     532'265,265,265,,,80,,,85,85,85,85,85,85,,85,,85,,85,80,85,85,,,,85,85,85',
     533'85,85,85,85,264,264,264,264,264,264,,264,,,,264,406,264,264,,,,264,264',
     534'264,264,264,264,264,,263,263,263,263,263,263,,263,,,,263,265,263,263',
     535',,,263,263,263,263,263,263,263,262,262,262,262,262,262,,262,,,,262,',
     536'262,262,,,85,262,262,262,262,262,262,262,261,261,261,261,261,261,,261',
     537',,,261,,261,261,,,264,261,261,261,261,261,261,261,,260,260,260,260,260',
     538'260,,260,,,,260,,260,260,,,263,260,260,260,260,260,260,260,259,259,259',
     539'259,259,259,,259,,,,259,,259,259,,,262,259,259,259,259,259,259,259,258',
     540'258,258,258,258,258,,258,,,,258,,258,258,,,261,258,258,258,258,258,258',
     541'258,,257,257,257,257,257,257,,257,,,,257,,257,257,,,260,257,257,257',
     542'257,257,257,257,256,256,256,256,256,256,,256,,,,256,,256,256,,,259,256',
     543'256,256,256,256,256,256,255,255,255,255,255,255,,255,,,,255,,255,255',
     544',,258,255,255,255,255,255,255,255,,254,254,254,254,254,254,,254,,,,254',
     545',254,254,,,257,254,254,254,254,254,254,254,253,253,253,253,253,253,',
     546'253,,,,253,,253,253,,,256,253,253,253,253,253,253,253,252,252,252,252',
     547'252,252,,252,,,,252,,252,252,,,255,252,252,252,252,252,252,252,,251',
     548'251,251,251,251,251,,251,,,,251,,251,251,,,254,251,251,251,251,251,251',
     549'251,250,250,250,250,250,250,,250,,,,250,,250,250,,,253,250,250,250,250',
     550'250,250,250,389,389,389,389,389,389,,389,,,,389,,389,389,389,,252,389',
     551'389,389,389,389,389,389,,248,248,248,248,248,248,,248,,,,248,,248,248',
     552',,251,248,248,248,248,248,248,248,,,,,,,,,,,,,,,,,,250,,,,,,,,,,389',
     553',,117,117,117,117,117,117,,117,,,,117,389,117,117,,,,117,117,117,117',
     554'117,117,117,,236,236,236,236,236,236,,236,,,,236,248,236,236,,,,236',
     555'236,236,236,236,236,236,,,,,,,117,117,117,117,117,117,117,117,117,117',
     556'117,117,117,117,117,117,117,,,121,121,121,121,121,121,,121,,,,121,,121',
     557'121,,,117,121,121,121,121,121,121,121,,122,122,122,122,122,122,,122',
     558',,,122,,122,122,,,236,122,122,122,122,122,122,122,123,123,123,123,123',
     559'123,,123,,,,123,,123,123,,,,123,123,123,123,123,123,123,124,124,124',
     560'124,124,124,,124,,,,124,,124,124,,,121,124,124,124,124,124,124,124,',
     561',,,,,,,,,,,233,233,233,233,233,233,122,233,,,,233,,233,233,,,,233,233',
     562'233,233,233,233,233,223,223,223,223,223,223,123,223,,,,223,,223,223',
     563',,,223,223,223,223,223,223,223,,,,,,,124,233,233,233,233,233,233,233',
     564'233,233,233,233,233,233,233,233,233,233,,,231,231,231,231,231,231,,231',
     565',,,231,,231,231,,,233,231,231,231,231,231,231,231,224,224,224,224,224',
     566'224,224,224,,,,224,,224,224,,,223,224,224,224,224,224,224,224,,,,,,',
     567',231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231',
     568',,213,213,213,213,213,213,,213,,,,213,,213,213,,,231,213,213,213,213',
     569'213,213,213,210,210,210,210,210,210,,210,,,,210,,210,210,,,224,210,210',
     570'210,210,210,210,210,180,180,180,180,180,180,,180,,,,180,,180,180,,,',
     571'180,180,180,180,180,180,180,,407,407,407,407,407,407,407,407,,,,407',
     572',407,407,,,213,407,407,407,407,407,407,407,,180,,,,435,435,435,435,435',
     573'435,,435,,,,435,210,435,435,435,435,,435,435,435,435,435,435,435,164',
     574'164,164,164,164,164,,164,,,,164,180,164,164,,,,164,164,164,164,164,164',
     575'164,,279,279,279,279,279,279,,279,,,,279,407,279,279,,,,279,279,279',
     576'279,279,279,279,,,435,,,,,,,,,,,,,,41,435,,,,,,,,,,,,,,,,,,,,,,,,,164',
     577',,2,,,,,,,,,,,,,,,,,,,,,,,279,41,41,41,41,41,41,41,41,41,41,41,41,41',
     578'41,41,41,41,41,41,41,41,41,41,41,41,41,,,41,2,2,2,2,2,2,2,2,2,2,2,2',
     579'2,2,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,294,294,,294,,,294,,,,,,,,,294,,,,',
     580',,,,,325,325,,325,,,,,,,,,,,,325,,,,,,,,294,294,294,294,294,294,294',
     581'294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294',
     582'294,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325',
     583'325,325,325,325,325,325,325,325,325,86,,,,,86,,,,,,,,,,,,,,,,,,,,378',
     584',,,,,,,,,,,,,,,,,,,,,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86',
     585'86,86,86,86,86,86,86,86,86,378,378,378,378,378,378,378,378,378,378,378',
     586'378,378,378,378,378,378,378,378,378,378,378,378,378,378,292,7,7,7,7',
     587'7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,,,,,,96,,,,,,,,,,,,292,292',
     588'292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292',
     589'292,292,292,292,292,292,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96',
     590'96,96,96,96,96,96,96,96,96,96,202,,,,,,,,,,,,,,,,,,,,,,,,,299,,,,,,',
     591',,,,,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202',
     592'202,202,202,202,202,202,202,202,202,299,299,299,299,299,299,299,299',
     593'299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299',
     594'199,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92',
     595'92,92,92,,,,,,,,,,,,199,199,199,199,199,199,199,199,199,199,199,199',
     596'199,199,199,199,199,199,199,199,199,199,199,199,199,8,8,8,8,8,8,8,8',
     597'8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,196,196,196,196,196,196,196,196,196',
     598'196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,6,6',
     599'6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5',
     600'5,5,5,5,5,5,5,5,5,5,5,5,5,5,93,93,93,93,93,93,93,93,93,93,93,93,93,93',
     601'93,93,93,93,93,93,93,93,93,93,93,69,69,69,69,69,69,69,69,69,69,69,69',
     602'69,69,69,69,69,69,69,69,69,69,69,69,69' ]
     603        racc_action_check = arr = ::Array.new(3198, nil)
    555604        idx = 0
    556605        clist.each do |str|
     
    562611
    563612racc_action_pointer = [
    564    nil,   173,   432,   442,   425,  2414,  2764,  2712,   nil,   nil,
    565    nil,   nil,   363,   nil,   332,   nil,   nil,   nil,   nil,   nil,
    566    nil,   nil,   357,    -5,    -7,   nil,   nil,   nil,   nil,   nil,
    567    366,   nil,   nil,   nil,   nil,   nil,  2782,   nil,   nil,   nil,
    568    nil,   nil,   nil,   nil,   nil,   nil,    18,   nil,    21,   162,
    569    145,   nil,   548,    -8,   nil,   nil,   nil,   nil,   nil,   nil,
    570    nil,   267,   263,   nil,   231,  2642,   nil,   268,   139,   nil,
    571   1860,  2816,   428,   nil,   424,  1315,   nil,   nil,   217,   nil,
    572   1375,  2344,   119,    86,   nil,   nil,  2572,  2554,    39,   555,
    573   2484,   nil,   414,    12,   nil,   549,   575,   nil,   nil,   108,
    574    nil,   nil,   545,   487,   nil,   nil,   nil,   nil,   nil,   554,
    575   1878,   nil,     2,   451,  1984,  2007,  2039,  2062,   nil,   nil,
    576    nil,   nil,   nil,   nil,   nil,   nil,   273,   322,   412,   265,
    577     -2,   492,   473,   470,   468,   351,   nil,   nil,   nil,  2085,
    578    497,   nil,   489,  1761,   482,   nil,   480,   nil,   470,   nil,
    579    234,   nil,   nil,  2502,   431,   423,  2624,   nil,   235,  2694,
    580    nil,   nil,   nil,   nil,    74,   nil,   nil,   nil,   449,   620,
    581     21,   nil,   546,   439,   nil,   442,   441,   nil,   206,   138,
    582    440,  1398,   433,   409,   nil,   nil,   nil,    51,   nil,   902,
    583    nil,   nil,   161,   184,   356,   379,   494,   833,   934,  1476,
    584   1499,  1582,  1651,  1706,  1729,  1938,  1961,  1605,    -2,    21,
    585   1628,    -7,   nil,   518,   nil,     4,   545,   nil,   nil,   nil,
    586    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   527,
    587    529,  2202,   530,   531,   500,  2149,   503,   nil,   541,   515,
    588    519,  2108,   521,   nil,   nil,  2362,   204,  2291,   nil,   nil,
    589    188,  1855,  2432,   nil,   nil,   nil,   nil,   109,   nil,   nil,
    590    nil,   nil,   423,   nil,   nil,   nil,   nil,   nil,   nil,  1683,
    591    nil,   122,  2140,   106,   nil,  1545,   596,   nil,   nil,   600,
    592    nil,   nil,   nil,    87,   252,    57,   150,   218,   222,   225,
    593    273,   439,   574,   287,   590,   -20,    -3,    10,    25,   nil,
    594   1522,    84,  1444,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    595    nil,   nil,   nil,   nil,  1421,  1338,    82,  1292,  1269,  1081,
    596    138,   987,   155,   nil,   nil,   187,   nil,   nil,   218,   nil,
    597    205,   235,   nil,   250,   957,  2271,   nil,   291,   nil,   nil,
    598    544,   nil,   nil,   nil,   879,   184,   nil,   nil,   856,   nil,
    599    nil,   nil,   283,   319,   333,   338,   306,   342,   nil,   739,
    600    nil,   nil,   nil,   352,   nil,   nil,   nil,   355,   nil,   360,
    601    nil,   nil,   nil,   nil,   nil,   nil,   645,   526,   333,   310,
    602    317,   nil,   nil,   nil,   nil,   326,   nil,   385,   355,   nil,
    603    216,   365,   115,   nil,   nil,   400,  1175,   nil ]
     613   nil,   732,  2528,   716,   182,  3068,  3043,  2752,  2993,   nil,
     614   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     615   nil,   nil,   nil,   624,   nil,   619,   nil,   656,   nil,    38,
     616   nil,    40,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     617   nil,  2499,   nil,   nil,   nil,   nil,   nil,   510,   nil,    78,
     618   nil,    37,     3,   322,   nil,   680,   -14,   nil,   nil,   nil,
     619   nil,   nil,   nil,   nil,   nil,    20,   183,   nil,   249,  3118,
     620   nil,   278,   429,   421,   nil,   252,   344,   664,   nil,   544,
     621  1392,   nil,   419,   285,   nil,  1473,  2701,   266,    28,   nil,
     622   nil,   nil,  2932,  3093,   214,   193,  2819,   nil,   138,   576,
     623   nil,   200,   654,    22,   nil,   nil,    12,   nil,   nil,    15,
     624     1,   nil,   nil,   nil,   nil,   nil,   137,  1959,   nil,   nil,
     625    55,  2035,  2061,  2086,  2111,   nil,   nil,   nil,   nil,   nil,
     626   nil,   568,   nil,   306,   629,   495,   326,   318,   571,   -20,
     627   672,   673,    64,   nil,   nil,   nil,  1235,   724,   nil,   702,
     628   nil,    22,   682,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     629   nil,   nil,   nil,   672,  2431,   669,   nil,   161,   nil,   nil,
     630   nil,   nil,   702,   691,   685,   376,   635,   612,   546,   542,
     631  2350,   nil,   nil,   nil,   547,   nil,   545,   281,   nil,   507,
     632   nil,   684,   nil,   nil,   nil,   nil,  3018,   451,   447,  2968,
     633   nil,   440,  2881,   nil,   nil,   nil,   nil,    44,   nil,   410,
     634  2325,   nil,    61,  2300,   343,   368,   nil,   286,   381,   nil,
     635   348,   322,   147,  2173,  2249,   189,   160,   139,   nil,   nil,
     636   nil,  2224,   nil,  2148,   nil,   nil,  1985,   nil,   nil,   nil,
     637   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1904,   779,
     638  1853,  1828,  1802,  1777,  1752,  1726,  1701,  1676,  1650,  1625,
     639  1600,  1574,  1549,  1524,  1498,  1443,  1367,   223,   nil,   300,
     640   nil,  1341,   nil,   514,   385,   659,   nil,   nil,  1260,  2457,
     641  1210,   619,  1132,   379,   nil,   nil,    45,   nil,   nil,   nil,
     642   nil,   325,  2794,    -1,  2604,   nil,   nil,   183,  1090,  2906,
     643   nil,   nil,   nil,   nil,   107,   nil,   nil,   nil,   nil,   149,
     644  1065,   nil,   nil,   nil,   nil,   nil,   137,   nil,    82,   nil,
     645   nil,   nil,  1034,   nil,    68,  2629,    23,   nil,    65,   nil,
     646  1009,   nil,   nil,   167,   186,   nil,   nil,   nil,   nil,   170,
     647   131,   621,   567,   559,   557,   520,   503,   417,   423,   464,
     648   334,   326,   350,   351,    14,   nil,   984,   421,   nil,   nil,
     649   754,   nil,   129,   376,   256,   451,   908,   883,   nil,   nil,
     650   nil,   510,   nil,   260,   520,   nil,   539,   855,  2726,   nil,
     651   556,   nil,   nil,   807,   683,   nil,   nil,   nil,   nil,  1878,
     652   nil,   nil,   nil,   950,   180,   629,   631,  1286,   nil,   nil,
     653   nil,   nil,   634,   653,   539,  1316,  1417,  2376,   687,   nil,
     654   nil,   nil,   689,   nil,   693,   nil,   649,   nil,   318,   nil,
     655   nil,   nil,   622,   nil,   nil,   412,   323,   281,   128,   256,
     656   nil,   nil,   nil,   nil,   nil,  2406,   118,   666,    23,   nil,
     657    -2,   nil,   nil,   nil,   nil,   nil,   nil ]
    604658
    605659racc_action_default = [
    606   -174,  -241,    -1,  -241,  -241,   -70,   -71,   -72,   -80,   -81,
    607    -82,   -83,   -84,   -85,   -86,   -87,   -88,   -89,   -90,   -91,
    608    -92,   -93,   -96,  -241,  -241,  -127,  -132,  -133,  -175,  -176,
    609   -241,  -178,  -179,  -182,  -183,  -184,  -241,  -230,  -231,  -232,
    610   -233,  -234,  -235,  -236,  -237,   398,  -241,   -76,   -78,  -241,
    611   -135,  -137,  -241,  -143,   -73,   -84,   -86,   -74,   -75,  -181,
    612   -180,   -98,  -241,  -101,  -114,  -241,  -117,  -241,  -126,  -177,
    613   -105,  -107,  -241,   -69,  -241,  -241,  -188,  -189,  -134,  -136,
    614   -241,  -241,  -241,  -144,  -145,   -94,  -241,  -241,   -84,   -85,
    615   -241,  -115,  -241,  -241,  -128,  -130,  -241,  -106,  -108,  -241,
    616   -186,   -77,   -78,    -2,    -3,    -4,    -5,    -6,    -7,    -8,
    617   -241,   -10,   -12,   -23,  -241,  -241,  -241,  -241,   -29,   -30,
    618    -31,   -32,   -33,   -34,   -35,   -37,   -41,   -44,   -47,   -52,
    619    -55,   -57,   -59,   -61,   -63,   -65,   -68,   -79,  -168,  -241,
    620   -241,  -238,  -241,  -241,  -241,  -140,  -241,  -142,  -147,  -149,
    621   -153,  -138,  -146,  -241,   -84,   -85,  -241,   -99,  -241,  -241,
    622   -120,  -119,  -113,  -116,  -241,  -121,  -123,  -124,  -241,  -241,
    623   -241,  -185,  -241,  -241,   -11,  -241,  -241,   -67,  -154,   -20,
    624   -241,  -241,  -241,  -241,   -18,   -19,   -24,  -241,   -25,  -241,
    625    -27,   -28,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,
    626   -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,
    627   -241,  -241,  -172,  -241,  -239,   -35,  -241,  -190,  -191,  -192,
    628   -193,  -194,  -195,  -196,  -197,  -198,  -199,  -200,  -201,  -241,
    629   -241,  -241,  -241,  -241,  -238,  -241,  -241,  -211,  -241,  -241,
    630   -241,  -241,  -241,  -139,  -141,  -241,  -156,  -241,  -151,  -152,
    631   -157,  -241,  -241,  -104,  -103,   -97,  -100,  -241,  -109,  -111,
    632   -112,  -118,  -241,  -129,  -131,  -125,  -187,  -240,    -9,  -241,
    633   -155,  -156,  -241,  -241,   -21,   -20,  -241,   -16,   -17,  -241,
    634    -38,   -39,   -40,   -42,   -43,   -45,   -46,   -48,   -49,   -50,
    635    -51,   -53,   -54,   -56,   -58,   -60,   -62,   -64,  -241,  -169,
    636   -241,  -241,  -241,  -219,  -220,  -221,  -222,  -223,  -224,  -225,
    637   -226,  -227,  -228,  -229,  -241,  -241,  -241,  -241,  -241,  -241,
    638   -241,  -241,  -241,  -213,  -214,  -241,  -216,  -217,  -241,  -150,
    639   -158,  -241,  -164,  -241,  -241,  -241,  -160,  -241,   -95,  -102,
    640   -241,  -122,   -36,   -13,  -241,  -241,   -15,   -26,  -241,  -170,
    641   -173,  -171,  -241,  -241,  -241,  -241,  -241,  -241,  -208,  -241,
    642   -210,  -212,  -215,  -241,  -159,  -165,  -162,  -241,  -166,  -241,
    643   -161,  -110,   -22,   -14,   -66,  -218,  -241,  -241,  -241,  -241,
    644   -241,  -209,  -148,  -163,  -167,  -202,  -204,  -241,  -241,  -207,
    645   -241,  -241,  -241,  -203,  -205,  -241,  -241,  -206 ]
     660  -215,  -269,    -1,  -269,  -269,   -86,   -88,   -90,   -92,   -98,
     661   -99,  -100,  -101,  -102,  -103,  -104,  -105,  -106,  -107,  -108,
     662  -109,  -110,  -111,  -112,  -113,  -114,  -115,  -118,  -121,  -269,
     663  -139,  -269,  -163,  -164,  -165,  -166,  -167,  -168,  -169,  -216,
     664  -217,  -269,  -219,  -220,  -223,  -224,  -225,  -269,   447,  -269,
     665   -94,   -96,  -269,  -171,  -173,  -269,  -180,   -87,  -112,  -114,
     666   -89,   -91,   -93,  -222,  -221,  -120,  -269,  -124,  -138,  -269,
     667  -142,  -269,  -155,  -158,  -218,  -130,  -132,  -269,   -85,  -269,
     668  -269,  -229,  -269,  -170,  -172,  -269,  -269,  -269,  -181,  -182,
     669  -184,  -116,  -269,  -269,  -112,  -113,  -269,  -140,  -269,  -269,
     670  -159,  -161,  -269,  -269,  -129,  -131,  -269,  -227,   -95,   -96,
     671    -2,    -3,    -4,    -5,    -6,    -7,    -8,  -269,   -10,   -12,
     672   -25,  -269,  -269,  -269,  -269,   -31,   -32,   -33,   -34,   -35,
     673   -36,   -37,   -39,   -43,   -46,   -49,   -54,   -57,   -59,   -61,
     674   -63,   -65,   -67,   -69,   -97,  -209,  -269,  -269,  -265,  -269,
     675   -82,  -269,  -269,  -230,  -231,  -232,  -233,  -234,  -235,  -236,
     676  -237,  -238,  -239,  -265,  -269,  -269,  -243,  -269,  -245,  -247,
     677  -248,  -249,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
     678  -269,  -268,   -37,   -84,  -269,  -176,  -269,  -269,  -179,  -186,
     679  -188,  -192,  -193,  -174,  -183,  -185,  -269,  -112,  -113,  -269,
     680  -122,  -269,  -269,  -145,  -144,  -137,  -141,  -269,  -146,  -148,
     681  -269,  -151,  -269,  -269,  -269,  -269,  -226,  -269,  -269,   -11,
     682  -269,  -269,  -195,  -269,  -269,  -269,  -269,  -269,   -19,   -20,
     683   -26,  -269,   -27,  -269,   -29,   -30,  -269,   -71,   -72,   -73,
     684   -74,   -75,   -76,   -77,   -78,   -79,   -80,   -81,  -269,  -269,
     685  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
     686  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -213,  -269,
     687  -266,  -269,  -250,  -269,  -269,  -269,  -244,  -246,  -269,  -269,
     688  -269,  -269,  -269,  -269,  -261,  -262,  -269,  -263,  -175,  -177,
     689  -178,  -269,  -269,  -197,  -269,  -190,  -191,  -198,  -269,  -269,
     690  -128,  -127,  -119,  -123,  -269,  -133,  -135,  -136,  -143,  -269,
     691  -269,  -149,  -153,  -160,  -162,  -152,  -269,  -156,  -269,  -228,
     692  -267,    -9,  -269,  -196,  -197,  -269,  -269,   -14,  -269,   -23,
     693  -269,   -17,   -18,  -269,  -269,   -70,   -40,   -41,   -42,   -44,
     694   -45,   -47,   -48,   -50,   -51,   -52,   -53,   -55,   -56,   -58,
     695   -60,   -62,   -64,   -66,  -269,  -210,  -269,  -269,   -83,  -240,
     696  -269,  -242,  -269,  -269,  -269,  -269,  -269,  -269,  -260,  -264,
     697  -194,  -269,  -189,  -199,  -269,  -205,  -269,  -269,  -269,  -201,
     698  -269,  -117,  -125,  -269,  -269,  -147,  -150,  -154,  -157,  -269,
     699   -38,   -13,   -15,  -269,  -269,   -28,  -269,  -269,  -211,  -214,
     700  -212,  -241,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -200,
     701  -206,  -203,  -269,  -207,  -269,  -202,  -269,  -134,  -269,   -24,
     702   -16,   -68,  -251,  -253,  -254,  -269,  -269,  -269,  -269,  -269,
     703  -187,  -204,  -208,  -126,   -21,  -269,  -269,  -269,  -269,  -256,
     704  -269,  -258,   -22,  -252,  -255,  -257,  -259 ]
    646705
    647706racc_goto_table = [
    648     48,     4,   144,   146,    54,    57,    58,   217,    84,    12,
    649    136,   137,    78,   175,   258,   136,   273,   165,   188,   190,
    650    191,   186,    72,    89,   256,    93,   176,   163,    70,     4,
    651     33,   156,   249,    29,   283,   284,   302,    12,   152,    14,
    652    330,     2,    71,   293,   155,    89,   215,    90,    89,   287,
    653    288,   289,   290,   294,   170,   295,    97,    98,    33,    83,
    654    270,    69,    70,    70,    92,   330,   296,    14,   100,   159,
    655    102,   297,    88,   101,   136,   212,    71,    71,   285,   286,
    656    150,    61,   274,   153,   276,   158,    92,    62,   166,    92,
    657    175,   264,   175,   154,    88,   316,   163,    88,   252,   280,
    658    281,   282,    70,   279,   136,   246,   291,   292,   257,    64,
    659    164,   155,   345,   298,   155,   263,    71,    89,   180,   329,
    660    256,   211,    28,    99,    76,   143,     1,   nil,   nil,   nil,
    661    nil,   nil,   nil,   271,   215,   nil,   nil,   nil,   nil,   nil,
    662    nil,   nil,   nil,   nil,   325,   nil,   248,   nil,   nil,   nil,
    663    nil,   nil,   158,   nil,   259,   158,   nil,   320,    92,   nil,
    664    154,   nil,   nil,   154,   nil,   nil,    88,   nil,   266,   nil,
    665    136,   nil,   nil,   337,   nil,   nil,   342,   nil,   274,    70,
    666    nil,   nil,   nil,   358,   nil,   360,   136,   341,   nil,   nil,
    667    nil,   nil,   nil,    71,   nil,   nil,   371,   nil,   nil,   nil,
    668    nil,   nil,   246,   nil,   nil,   352,   nil,   nil,   nil,    78,
    669    155,   nil,   102,   nil,   nil,   nil,   nil,   353,   354,   nil,
    670    356,   357,   215,   381,   215,   nil,   nil,   271,   nil,   nil,
    671    nil,   nil,   nil,   nil,   nil,   136,   350,   nil,   nil,   nil,
    672    385,   386,   nil,   nil,   150,   nil,   150,   372,   nil,   nil,
    673    nil,   158,   nil,   nil,   393,   nil,   367,   369,   166,   154,
    674    397,   nil,   215,   nil,   nil,   nil,   nil,   nil,   nil,   136,
    675    nil,   150,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   215,
    676    215,   387,   388,   374,   nil,   nil,   nil,   nil,   nil,   nil,
    677    nil,   nil,   nil,   215,   nil,   395,   nil,   nil,   nil,   215,
     707    51,   144,   145,    81,   183,   182,   184,   281,   186,    23,
     708   267,    95,   208,    83,   206,   305,   303,   313,   328,   169,
     709    25,     4,   199,   230,    57,    60,    61,    62,    75,    89,
     710    40,    99,   168,   221,   198,    95,   296,    77,    95,   220,
     711   373,   182,   232,   234,   235,    65,    96,   207,    23,    76,
     712   304,   366,   343,   344,   345,   346,    75,    75,    90,    25,
     713     4,   194,   214,   215,    66,   104,   105,   323,   145,    74,
     714   202,   373,   196,   107,    68,   109,    94,    76,    76,   347,
     715   348,   339,   340,   183,   182,   274,   341,   342,    98,   108,
     716   195,   236,   187,    88,   209,   372,   353,   352,    75,   197,
     717    94,   152,   286,    94,   169,   359,    39,   361,   351,   106,
     718   350,   201,    98,   349,     2,    98,   303,   277,   167,    76,
     719   206,   313,   225,   313,   394,     1,   299,   nil,   nil,   183,
     720   182,   311,   183,   182,   314,   406,   407,   nil,   198,   nil,
     721   nil,   198,   nil,   nil,    95,   326,   329,   333,   109,   334,
     722   336,   337,   338,   220,   nil,   220,   nil,   nil,   335,   nil,
     723   nil,   nil,   nil,   nil,   293,   nil,   nil,   nil,   182,   182,
     724   182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
     725   182,   182,   182,   182,   182,   182,   152,   295,   354,   nil,
     726   nil,   nil,   401,   358,   nil,   324,   nil,   306,   417,   nil,
     727   362,   363,   364,   197,   nil,   nil,   197,   nil,   nil,    94,
     728   nil,   nil,    75,   319,    75,   201,   nil,   nil,   201,   367,
     729   380,    98,   nil,   385,   390,   nil,   nil,   nil,   nil,   183,
     730   182,   386,   nil,    76,   422,    76,   424,   nil,   nil,   nil,
     731   nil,   198,   182,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     732   nil,   nil,   329,   418,    83,   nil,   nil,   nil,   nil,   439,
     733   nil,   441,   nil,   nil,   nil,   nil,   nil,   293,   443,   nil,
     734   445,   nil,   446,   nil,   nil,   nil,   nil,   399,   145,   nil,
     735   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     736   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   324,   412,
     737   414,   152,   183,   182,   416,   209,   197,   nil,   nil,   nil,
     738   nil,   145,   nil,   nil,   nil,   419,   421,   182,   201,   nil,
     739   nil,   nil,   nil,   nil,   nil,   nil,   nil,   425,   426,   428,
    678740   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    679741   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    680    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    681    nil,   nil,   nil,   nil,   150,   nil,   259 ]
    682 
    683 racc_goto_check = [
    684     32,    27,    25,    55,    27,    27,    27,    68,    53,    34,
    685     24,    33,    54,     6,    44,    24,     8,    49,    10,    10,
    686     10,    12,    43,    35,    41,    51,    13,    47,    30,    27,
    687     26,    38,    58,    62,    14,    14,    77,    34,    53,    36,
    688     59,     2,     9,    18,    35,    35,    10,    46,    35,    16,
    689     16,    16,    16,    19,    51,    20,    43,    43,    26,     9,
    690     58,    62,    30,    30,    27,    59,    21,    36,    32,    46,
    691     32,    22,    34,    31,    24,    33,     9,     9,    15,    15,
    692     27,    37,     6,    39,     6,    27,    27,    40,    32,    27,
    693      6,    25,     6,    34,    34,    68,    47,    34,    38,    12,
    694     12,    12,    30,    13,    24,    53,    17,    17,    42,    45,
    695     48,    35,     8,     6,    35,    52,     9,    35,     9,    57,
    696     41,    60,    61,    65,    66,    67,     1,   nil,   nil,   nil,
    697    nil,   nil,   nil,    53,    10,   nil,   nil,   nil,   nil,   nil,
    698    nil,   nil,   nil,   nil,     6,   nil,    32,   nil,   nil,   nil,
    699    nil,   nil,    27,   nil,    32,    27,   nil,    25,    27,   nil,
    700     34,   nil,   nil,    34,   nil,   nil,    34,   nil,    32,   nil,
    701     24,   nil,   nil,    25,   nil,   nil,    12,   nil,     6,    30,
    702    nil,   nil,   nil,    68,   nil,    68,    24,    49,   nil,   nil,
    703    nil,   nil,   nil,     9,   nil,   nil,    44,   nil,   nil,   nil,
    704    nil,   nil,    53,   nil,   nil,     6,   nil,   nil,   nil,    54,
    705     35,   nil,    32,   nil,   nil,   nil,   nil,     6,     6,   nil,
    706      6,     6,    10,    68,    10,   nil,   nil,    53,   nil,   nil,
    707    nil,   nil,   nil,   nil,   nil,    24,    33,   nil,   nil,   nil,
    708     68,    68,   nil,   nil,    27,   nil,    27,     6,   nil,   nil,
    709    nil,    27,   nil,   nil,    68,   nil,    25,    55,    32,    34,
    710     68,   nil,    10,   nil,   nil,   nil,   nil,   nil,   nil,    24,
    711    nil,    27,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    10,
    712     10,     6,     6,    24,   nil,   nil,   nil,   nil,   nil,   nil,
    713    nil,   nil,   nil,    10,   nil,     6,   nil,   nil,   nil,    10,
     742   nil,   nil,   nil,   nil,   nil,   423,   399,   145,   nil,   nil,
    714743   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    715744   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     745   306 ]
     746
     747racc_goto_check = [
     748    36,    37,    12,    72,    26,    13,    28,    73,    60,    38,
     749    11,    39,    55,    59,    53,    49,    46,    57,     8,    29,
     750    40,    30,    43,    15,    30,    30,    30,    30,    33,    58,
     751    68,    56,    84,    10,    39,    39,    65,    48,    39,     6,
     752    66,    13,    13,    13,    13,    42,    52,    54,    38,     9,
     753    47,    75,    18,    18,    18,    18,    33,    33,     9,    40,
     754    30,    58,    56,    56,    45,    48,    48,    65,    12,    68,
     755    52,    66,    44,    36,    51,    36,    38,     9,     9,    19,
     756    19,    16,    16,    26,    13,    28,    17,    17,    30,    35,
     757     9,    27,    61,    62,    36,    64,    24,    23,    33,    38,
     758    38,    30,     6,    38,    29,    73,    67,    73,    22,    71,
     759    21,    30,    30,    20,     2,    30,    46,    84,    83,     9,
     760    53,    57,     9,    57,     8,     1,    43,   nil,   nil,    26,
     761    13,    28,    26,    13,    28,    75,    75,   nil,    39,   nil,
     762   nil,    39,   nil,   nil,    39,     6,    12,    10,    36,    10,
     763    15,    15,    15,     6,   nil,     6,   nil,   nil,    12,   nil,
     764   nil,   nil,   nil,   nil,    58,   nil,   nil,   nil,    13,    13,
     765    13,    13,    13,    13,    13,    13,    13,    13,    13,    13,
     766    13,    13,    13,    13,    13,    13,    30,    36,     6,   nil,
     767   nil,   nil,    73,    12,   nil,    58,   nil,    36,    49,   nil,
     768     6,     6,     6,    38,   nil,   nil,    38,   nil,   nil,    38,
     769   nil,   nil,    33,    36,    33,    30,   nil,   nil,    30,    29,
     770    12,    30,   nil,    55,    15,   nil,   nil,   nil,   nil,    26,
     771    13,    28,   nil,     9,    73,     9,    73,   nil,   nil,   nil,
     772   nil,    39,    13,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     773   nil,   nil,    12,    11,    59,   nil,   nil,   nil,   nil,    73,
     774   nil,    73,   nil,   nil,   nil,   nil,   nil,    58,    73,   nil,
     775    73,   nil,    73,   nil,   nil,   nil,   nil,    37,    12,   nil,
    716776   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    717    nil,   nil,   nil,   nil,    27,   nil,    32 ]
     777   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    58,    12,
     778    60,    30,    26,    13,    28,    36,    38,   nil,   nil,   nil,
     779   nil,    12,   nil,   nil,   nil,    12,    26,    13,    30,   nil,
     780   nil,   nil,   nil,   nil,   nil,   nil,   nil,     6,     6,     6,
     781   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     782   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     783   nil,   nil,   nil,   nil,   nil,    72,    37,    12,   nil,   nil,
     784   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     785   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     786    36 ]
    718787
    719788racc_goto_pointer = [
    720    nil,   126,    41,   nil,   nil,   nil,   -97,   nil,  -163,     6,
    721    -97,   nil,   -93,   -84,  -161,  -119,  -150,   -97,  -162,  -153,
    722   -152,  -142,  -138,   nil,   -65,   -78,    28,    -1,   nil,   nil,
    723     -8,    -1,    -4,   -64,     7,   -42,    37,    59,   -55,    -2,
    724     65,  -132,   -50,   -14,  -144,    86,   -18,   -63,    18,   -75,
    725    nil,   -42,   -53,   -45,   -37,   -78,   nil,  -126,  -118,  -206,
    726    -18,   120,    31,   nil,   nil,    51,    76,    48,  -136,   nil,
    727    nil,   nil,   nil,   nil,   nil,   nil,   nil,  -179 ]
     789   nil,   125,   114,   nil,   nil,   nil,   -78,   nil,  -206,     2,
     790   -84,  -136,   -78,   -80,   nil,   -98,  -170,  -167,  -203,  -180,
     791  -148,  -152,  -155,  -167,  -169,   nil,   -81,   -40,   -79,   -63,
     792    19,   nil,   nil,   -19,   nil,    10,    -4,   -79,     7,   -58,
     793    18,   nil,    18,   -70,   -19,    37,  -183,  -151,   -10,  -186,
     794   nil,    45,   -23,   -82,   -51,   -86,   -40,  -195,   -27,   -39,
     795   -78,     6,    37,   nil,  -197,  -155,  -253,   104,    28,   nil,
     796   nil,    32,   -48,  -168,   nil,  -231,   nil,   nil,   nil,   nil,
     797   nil,   nil,   nil,    36,   -50 ]
    728798
    729799racc_goto_default = [
    730    nil,   nil,   nil,   112,   103,   109,   242,   113,   nil,     7,
    731    124,   114,   125,   nil,   126,   127,   128,   129,   130,   131,
    732    132,   133,   134,   135,   177,   138,   218,   216,    46,     5,
    733      6,    47,    82,   nil,    55,    13,    56,   nil,   nil,   nil,
    734    nil,   157,   nil,   178,   nil,   nil,   nil,    91,   nil,   nil,
    735     24,   nil,    94,    49,    50,   333,   148,   149,   331,   250,
    736    nil,   nil,   nil,    31,    32,   nil,   225,   nil,   nil,   219,
    737    220,   221,   222,   223,   224,   226,   227,   nil ]
     800   nil,   nil,   nil,   119,   110,   116,   151,   120,   nil,     7,
     801   nil,   nil,   150,   131,   121,   132,   133,   134,   135,   136,
     802   137,   138,   139,   140,   141,   142,   143,   nil,   nil,    44,
     803   191,    49,     5,     6,     8,    50,    87,   268,    58,    24,
     804    59,    27,   nil,   nil,   nil,   nil,   200,   nil,   222,   nil,
     805    29,   nil,   nil,    97,   nil,   nil,   nil,   100,    52,    53,
     806   376,   nil,   nil,   189,   190,   374,   297,   nil,   nil,    42,
     807    43,   nil,   154,   170,   153,   155,   156,   157,   158,   159,
     808   160,   161,   162,   nil,   nil ]
    738809
    739810racc_reduce_table = [
    740811  0, 0, :racc_error,
    741   1, 97, :_reduce_none,
    742   1, 99, :_reduce_2,
    743   1, 99, :_reduce_3,
    744   1, 99, :_reduce_4,
    745   1, 99, :_reduce_5,
    746   1, 99, :_reduce_6,
    747   1, 99, :_reduce_7,
    748   1, 99, :_reduce_8,
    749   3, 99, :_reduce_9,
    750   1, 101, :_reduce_10,
    751   2, 101, :_reduce_11,
    752   1, 103, :_reduce_none,
    753   4, 103, :_reduce_none,
    754   5, 103, :_reduce_none,
    755   4, 103, :_reduce_15,
    756   3, 103, :_reduce_16,
    757   3, 103, :_reduce_17,
    758   2, 103, :_reduce_18,
    759   2, 103, :_reduce_19,
    760   0, 104, :_reduce_none,
     812  1, 98, :_reduce_none,
     813  1, 100, :_reduce_2,
     814  1, 100, :_reduce_3,
     815  1, 100, :_reduce_4,
     816  1, 100, :_reduce_5,
     817  1, 100, :_reduce_6,
     818  1, 100, :_reduce_7,
     819  1, 100, :_reduce_8,
     820  3, 100, :_reduce_9,
     821  1, 102, :_reduce_10,
     822  2, 102, :_reduce_11,
    761823  1, 104, :_reduce_none,
     824  4, 104, :_reduce_13,
    762825  3, 104, :_reduce_none,
    763   1, 106, :_reduce_none,
    764   2, 106, :_reduce_24,
    765   2, 106, :_reduce_25,
    766   4, 106, :_reduce_26,
    767   2, 106, :_reduce_27,
    768   2, 106, :_reduce_28,
    769   1, 107, :_reduce_29,
    770   1, 107, :_reduce_30,
    771   1, 107, :_reduce_31,
    772   1, 107, :_reduce_32,
    773   1, 107, :_reduce_33,
    774   1, 107, :_reduce_34,
    775   1, 108, :_reduce_none,
    776   4, 108, :_reduce_36,
     826  4, 104, :_reduce_none,
     827  5, 104, :_reduce_none,
     828  3, 104, :_reduce_17,
     829  3, 104, :_reduce_18,
     830  2, 104, :_reduce_19,
     831  2, 104, :_reduce_20,
     832  6, 104, :_reduce_none,
     833  7, 104, :_reduce_none,
     834  1, 105, :_reduce_none,
     835  3, 105, :_reduce_none,
    777836  1, 110, :_reduce_none,
    778   3, 110, :_reduce_38,
    779   3, 110, :_reduce_39,
    780   3, 110, :_reduce_40,
    781   1, 111, :_reduce_none,
    782   3, 111, :_reduce_42,
    783   3, 111, :_reduce_43,
     837  2, 110, :_reduce_26,
     838  2, 110, :_reduce_27,
     839  4, 110, :_reduce_28,
     840  2, 110, :_reduce_29,
     841  2, 110, :_reduce_30,
     842  1, 111, :_reduce_31,
     843  1, 111, :_reduce_32,
     844  1, 111, :_reduce_33,
     845  1, 111, :_reduce_34,
     846  1, 111, :_reduce_35,
     847  1, 111, :_reduce_36,
    784848  1, 112, :_reduce_none,
    785   3, 112, :_reduce_45,
    786   3, 112, :_reduce_46,
     849  4, 112, :_reduce_38,
    787850  1, 113, :_reduce_none,
    788   3, 113, :_reduce_48,
    789   3, 113, :_reduce_49,
    790   3, 113, :_reduce_50,
    791   3, 113, :_reduce_51,
     851  3, 113, :_reduce_40,
     852  3, 113, :_reduce_41,
     853  3, 113, :_reduce_42,
    792854  1, 114, :_reduce_none,
    793   3, 114, :_reduce_53,
    794   3, 114, :_reduce_54,
     855  3, 114, :_reduce_44,
     856  3, 114, :_reduce_45,
    795857  1, 115, :_reduce_none,
    796   3, 115, :_reduce_56,
     858  3, 115, :_reduce_47,
     859  3, 115, :_reduce_48,
    797860  1, 116, :_reduce_none,
    798   3, 116, :_reduce_58,
     861  3, 116, :_reduce_50,
     862  3, 116, :_reduce_51,
     863  3, 116, :_reduce_52,
     864  3, 116, :_reduce_53,
    799865  1, 117, :_reduce_none,
    800   3, 117, :_reduce_60,
     866  3, 117, :_reduce_55,
     867  3, 117, :_reduce_56,
    801868  1, 118, :_reduce_none,
    802   3, 118, :_reduce_62,
     869  3, 118, :_reduce_58,
    803870  1, 119, :_reduce_none,
    804   3, 119, :_reduce_64,
     871  3, 119, :_reduce_60,
    805872  1, 120, :_reduce_none,
    806   5, 120, :_reduce_66,
    807   1, 102, :_reduce_67,
    808   1, 121, :_reduce_68,
    809   3, 122, :_reduce_none,
    810   1, 123, :_reduce_70,
     873  3, 120, :_reduce_62,
     874  1, 121, :_reduce_none,
     875  3, 121, :_reduce_64,
     876  1, 122, :_reduce_none,
     877  3, 122, :_reduce_66,
    811878  1, 123, :_reduce_none,
    812   1, 123, :_reduce_72,
    813   2, 123, :_reduce_73,
    814   2, 123, :_reduce_74,
    815   2, 123, :_reduce_75,
    816   1, 124, :_reduce_76,
    817   3, 124, :_reduce_77,
     879  5, 123, :_reduce_68,
     880  1, 109, :_reduce_none,
     881  3, 109, :_reduce_none,
     882  1, 124, :_reduce_none,
     883  1, 124, :_reduce_none,
     884  1, 124, :_reduce_none,
     885  1, 124, :_reduce_none,
     886  1, 124, :_reduce_none,
     887  1, 124, :_reduce_none,
     888  1, 124, :_reduce_none,
     889  1, 124, :_reduce_none,
     890  1, 124, :_reduce_none,
     891  1, 124, :_reduce_none,
     892  1, 124, :_reduce_none,
     893  1, 103, :_reduce_82,
     894  3, 103, :_reduce_83,
     895  1, 125, :_reduce_84,
     896  3, 126, :_reduce_none,
     897  1, 127, :_reduce_86,
     898  2, 127, :_reduce_87,
    818899  1, 127, :_reduce_none,
    819   3, 127, :_reduce_79,
    820   1, 126, :_reduce_80,
    821   1, 126, :_reduce_81,
    822   1, 126, :_reduce_82,
    823   1, 126, :_reduce_83,
    824   1, 126, :_reduce_84,
    825   1, 126, :_reduce_85,
    826   1, 126, :_reduce_86,
    827   1, 126, :_reduce_87,
    828   1, 126, :_reduce_88,
    829   1, 126, :_reduce_89,
    830   1, 126, :_reduce_90,
    831   1, 126, :_reduce_91,
    832   1, 126, :_reduce_92,
    833   1, 126, :_reduce_93,
    834   0, 135, :_reduce_94,
    835   6, 130, :_reduce_95,
    836   0, 136, :_reduce_96,
    837   5, 130, :_reduce_97,
    838   2, 130, :_reduce_98,
    839   1, 134, :_reduce_none,
    840   2, 134, :_reduce_none,
    841   1, 133, :_reduce_101,
    842   3, 137, :_reduce_102,
    843   2, 137, :_reduce_none,
    844   2, 137, :_reduce_none,
    845   1, 139, :_reduce_none,
    846   2, 139, :_reduce_106,
    847   1, 139, :_reduce_107,
    848   2, 139, :_reduce_108,
    849   1, 138, :_reduce_109,
    850   3, 138, :_reduce_110,
     900  2, 127, :_reduce_89,
     901  1, 127, :_reduce_90,
     902  2, 127, :_reduce_91,
     903  1, 127, :_reduce_none,
     904  2, 127, :_reduce_none,
     905  1, 128, :_reduce_94,
     906  3, 128, :_reduce_95,
     907  1, 132, :_reduce_none,
     908  3, 132, :_reduce_97,
     909  1, 129, :_reduce_none,
     910  1, 129, :_reduce_none,
     911  1, 129, :_reduce_none,
     912  1, 129, :_reduce_none,
     913  1, 130, :_reduce_102,
     914  1, 130, :_reduce_103,
     915  1, 130, :_reduce_104,
     916  1, 130, :_reduce_105,
     917  1, 130, :_reduce_106,
     918  1, 130, :_reduce_107,
     919  1, 130, :_reduce_108,
     920  1, 130, :_reduce_109,
     921  1, 130, :_reduce_110,
     922  1, 130, :_reduce_111,
     923  1, 130, :_reduce_112,
     924  1, 130, :_reduce_113,
     925  1, 130, :_reduce_114,
     926  1, 130, :_reduce_115,
     927  0, 141, :_reduce_116,
     928  6, 135, :_reduce_117,
     929  0, 142, :_reduce_118,
     930  5, 135, :_reduce_119,
     931  2, 135, :_reduce_120,
     932  1, 138, :_reduce_121,
    851933  1, 140, :_reduce_none,
    852   5, 131, :_reduce_none,
    853   4, 131, :_reduce_none,
    854   2, 131, :_reduce_none,
    855   1, 142, :_reduce_none,
    856   2, 142, :_reduce_none,
    857   1, 141, :_reduce_none,
    858   3, 143, :_reduce_none,
     934  2, 140, :_reduce_none,
     935  1, 139, :_reduce_124,
     936  3, 143, :_reduce_125,
     937  5, 143, :_reduce_126,
    859938  2, 143, :_reduce_none,
    860939  2, 143, :_reduce_none,
    861   1, 144, :_reduce_none,
    862   3, 144, :_reduce_none,
     940  2, 145, :_reduce_129,
    863941  1, 145, :_reduce_none,
    864   4, 132, :_reduce_none,
    865   5, 132, :_reduce_none,
    866   2, 132, :_reduce_none,
    867   1, 146, :_reduce_127,
    868   1, 147, :_reduce_none,
    869   3, 147, :_reduce_none,
     942  2, 145, :_reduce_131,
     943  1, 145, :_reduce_132,
     944  1, 144, :_reduce_133,
     945  3, 144, :_reduce_134,
     946  1, 146, :_reduce_none,
     947  5, 136, :_reduce_none,
     948  4, 136, :_reduce_none,
     949  2, 136, :_reduce_none,
     950  1, 147, :_reduce_139,
     951  1, 149, :_reduce_none,
     952  2, 149, :_reduce_none,
    870953  1, 148, :_reduce_none,
    871   3, 148, :_reduce_none,
    872   1, 105, :_reduce_132,
    873   1, 105, :_reduce_133,
    874   2, 128, :_reduce_134,
    875   1, 128, :_reduce_none,
    876   2, 128, :_reduce_136,
    877   1, 150, :_reduce_137,
    878   3, 150, :_reduce_138,
    879   4, 150, :_reduce_139,
    880   3, 150, :_reduce_140,
    881   4, 150, :_reduce_141,
    882   3, 150, :_reduce_142,
    883   1, 149, :_reduce_143,
    884   2, 149, :_reduce_144,
    885   2, 149, :_reduce_145,
    886   3, 149, :_reduce_146,
     954  3, 150, :_reduce_none,
     955  2, 150, :_reduce_none,
     956  2, 150, :_reduce_none,
    887957  1, 151, :_reduce_none,
    888   5, 151, :_reduce_none,
     958  3, 151, :_reduce_none,
    889959  1, 152, :_reduce_none,
     960  2, 152, :_reduce_none,
    890961  3, 152, :_reduce_none,
    891   2, 153, :_reduce_none,
    892   2, 153, :_reduce_none,
     962  4, 137, :_reduce_none,
     963  5, 137, :_reduce_none,
     964  5, 137, :_reduce_none,
     965  6, 137, :_reduce_none,
     966  2, 137, :_reduce_none,
     967  5, 137, :_reduce_none,
     968  6, 137, :_reduce_none,
     969  2, 137, :_reduce_none,
    893970  1, 153, :_reduce_none,
    894   1, 109, :_reduce_none,
    895   2, 109, :_reduce_none,
     971  3, 153, :_reduce_none,
    896972  1, 154, :_reduce_none,
    897   1, 154, :_reduce_none,
    898   2, 154, :_reduce_none,
    899   3, 155, :_reduce_none,
    900   2, 155, :_reduce_none,
    901   3, 155, :_reduce_none,
    902   3, 155, :_reduce_none,
    903   4, 155, :_reduce_none,
    904   2, 155, :_reduce_164,
    905   3, 155, :_reduce_none,
    906   3, 155, :_reduce_166,
    907   4, 155, :_reduce_none,
    908   1, 129, :_reduce_168,
    909   3, 129, :_reduce_169,
    910   4, 129, :_reduce_170,
    911   4, 129, :_reduce_171,
    912   1, 156, :_reduce_172,
    913   3, 156, :_reduce_173,
    914   0, 98, :_reduce_none,
    915   2, 98, :_reduce_none,
     973  3, 154, :_reduce_none,
     974  1, 106, :_reduce_163,
     975  1, 106, :_reduce_none,
     976  1, 106, :_reduce_165,
     977  1, 131, :_reduce_none,
     978  1, 131, :_reduce_none,
     979  1, 131, :_reduce_none,
     980  1, 131, :_reduce_none,
     981  2, 133, :_reduce_170,
     982  1, 133, :_reduce_none,
     983  2, 133, :_reduce_172,
     984  1, 156, :_reduce_173,
     985  3, 156, :_reduce_174,
     986  4, 156, :_reduce_175,
     987  3, 156, :_reduce_176,
     988  4, 156, :_reduce_177,
     989  4, 156, :_reduce_none,
     990  3, 156, :_reduce_179,
     991  1, 155, :_reduce_180,
     992  2, 155, :_reduce_181,
     993  2, 155, :_reduce_182,
     994  3, 155, :_reduce_183,
     995  1, 159, :_reduce_none,
     996  2, 159, :_reduce_none,
    916997  1, 157, :_reduce_none,
    917   2, 157, :_reduce_none,
     998  5, 157, :_reduce_none,
     999  1, 160, :_reduce_none,
     1000  3, 160, :_reduce_none,
     1001  2, 161, :_reduce_none,
     1002  2, 161, :_reduce_none,
     1003  1, 161, :_reduce_none,
    9181004  1, 158, :_reduce_none,
    919   1, 158, :_reduce_none,
    920   2, 158, :_reduce_none,
    921   2, 158, :_reduce_none,
    922   1, 158, :_reduce_none,
    923   1, 158, :_reduce_none,
    924   1, 158, :_reduce_none,
    925   4, 159, :_reduce_185,
    926   1, 161, :_reduce_186,
    927   3, 161, :_reduce_187,
    928   3, 160, :_reduce_none,
    929   0, 163, :_reduce_none,
     1005  3, 158, :_reduce_none,
     1006  1, 107, :_reduce_none,
     1007  2, 107, :_reduce_none,
     1008  1, 162, :_reduce_none,
     1009  1, 162, :_reduce_none,
     1010  2, 162, :_reduce_none,
     1011  3, 163, :_reduce_none,
    9301012  2, 163, :_reduce_none,
     1013  3, 163, :_reduce_none,
     1014  3, 163, :_reduce_none,
     1015  4, 163, :_reduce_none,
     1016  2, 163, :_reduce_205,
     1017  3, 163, :_reduce_none,
     1018  3, 163, :_reduce_207,
     1019  4, 163, :_reduce_none,
     1020  1, 134, :_reduce_209,
     1021  3, 134, :_reduce_210,
     1022  4, 134, :_reduce_211,
     1023  4, 134, :_reduce_212,
     1024  1, 108, :_reduce_213,
     1025  3, 108, :_reduce_214,
     1026  0, 99, :_reduce_none,
     1027  2, 99, :_reduce_none,
    9311028  1, 164, :_reduce_none,
    932   1, 164, :_reduce_none,
    933   1, 164, :_reduce_none,
    934   1, 164, :_reduce_none,
    935   1, 164, :_reduce_none,
    936   1, 164, :_reduce_none,
    937   1, 164, :_reduce_none,
    938   1, 164, :_reduce_none,
    939   1, 164, :_reduce_none,
    940   1, 164, :_reduce_none,
    941   1, 164, :_reduce_none,
    942   5, 165, :_reduce_none,
    943   7, 165, :_reduce_none,
    944   5, 166, :_reduce_none,
    945   7, 167, :_reduce_none,
    946   9, 168, :_reduce_none,
    947   5, 169, :_reduce_none,
    948   3, 170, :_reduce_none,
    949   4, 170, :_reduce_none,
    950   3, 170, :_reduce_none,
    951   3, 162, :_reduce_none,
     1029  2, 164, :_reduce_none,
     1030  1, 165, :_reduce_none,
     1031  1, 165, :_reduce_none,
     1032  2, 165, :_reduce_none,
     1033  2, 165, :_reduce_none,
     1034  1, 165, :_reduce_none,
     1035  1, 165, :_reduce_none,
     1036  1, 165, :_reduce_none,
     1037  4, 166, :_reduce_226,
     1038  1, 168, :_reduce_227,
     1039  3, 168, :_reduce_228,
     1040  3, 167, :_reduce_none,
     1041  1, 170, :_reduce_none,
     1042  1, 170, :_reduce_none,
     1043  1, 170, :_reduce_none,
     1044  1, 170, :_reduce_none,
     1045  1, 170, :_reduce_none,
     1046  1, 170, :_reduce_none,
     1047  1, 170, :_reduce_none,
     1048  1, 170, :_reduce_none,
     1049  1, 170, :_reduce_none,
     1050  1, 170, :_reduce_none,
    9521051  3, 171, :_reduce_none,
    953   2, 171, :_reduce_none,
    954   2, 171, :_reduce_none,
     1052  4, 171, :_reduce_none,
    9551053  3, 171, :_reduce_none,
    956   2, 171, :_reduce_none,
     1054  2, 169, :_reduce_none,
     1055  3, 169, :_reduce_none,
     1056  1, 180, :_reduce_none,
     1057  2, 180, :_reduce_none,
     1058  1, 181, :_reduce_none,
     1059  1, 181, :_reduce_none,
     1060  1, 172, :_reduce_none,
    9571061  2, 172, :_reduce_none,
    958   4, 172, :_reduce_none,
    959   1, 173, :_reduce_none,
    960   1, 173, :_reduce_none,
    961   1, 173, :_reduce_none,
    962   1, 173, :_reduce_none,
    963   1, 173, :_reduce_none,
    964   1, 173, :_reduce_none,
    965   1, 173, :_reduce_none,
    966   1, 173, :_reduce_none,
    967   1, 173, :_reduce_none,
    968   1, 173, :_reduce_none,
    969   1, 173, :_reduce_none,
    970   1, 125, :_reduce_none,
    971   1, 125, :_reduce_none,
    972   1, 125, :_reduce_none,
    973   1, 125, :_reduce_none,
    974   1, 125, :_reduce_none,
    975   1, 125, :_reduce_none,
    976   1, 125, :_reduce_none,
    977   1, 125, :_reduce_none,
    978   1, 100, :_reduce_238,
    979   2, 100, :_reduce_239,
    980   3, 100, :_reduce_240 ]
    981 
    982 racc_reduce_n = 241
    983 
    984 racc_shift_n = 398
     1062  5, 173, :_reduce_none,
     1063  7, 173, :_reduce_none,
     1064  5, 177, :_reduce_none,
     1065  5, 174, :_reduce_none,
     1066  7, 175, :_reduce_none,
     1067  6, 176, :_reduce_none,
     1068  7, 176, :_reduce_none,
     1069  6, 176, :_reduce_none,
     1070  7, 176, :_reduce_none,
     1071  3, 178, :_reduce_none,
     1072  2, 178, :_reduce_none,
     1073  2, 178, :_reduce_none,
     1074  2, 178, :_reduce_none,
     1075  3, 178, :_reduce_none,
     1076  1, 101, :_reduce_265,
     1077  2, 101, :_reduce_266,
     1078  3, 101, :_reduce_267,
     1079  1, 179, :_reduce_268 ]
     1080
     1081racc_reduce_n = 269
     1082
     1083racc_shift_n = 447
    9851084
    9861085racc_token_table = {
     
    10021101  "++" => 15,
    10031102  "--" => 16,
    1004   "," => 17,
    1005   :SIZEOF => 18,
    1006   "&" => 19,
    1007   "*" => 20,
    1008   "+" => 21,
    1009   "-" => 22,
    1010   "~" => 23,
    1011   "!" => 24,
    1012   "/" => 25,
    1013   "%" => 26,
    1014   "<<" => 27,
    1015   ">>" => 28,
    1016   "<" => 29,
    1017   ">" => 30,
    1018   "<=" => 31,
    1019   ">=" => 32,
    1020   "==" => 33,
    1021   "!=" => 34,
    1022   "^" => 35,
    1023   "|" => 36,
    1024   "&&" => 37,
    1025   "||" => 38,
    1026   "?" => 39,
    1027   ":" => 40,
    1028   ";" => 41,
    1029   "=" => 42,
    1030   :VOID => 43,
    1031   :FLOAT => 44,
    1032   :DOUBLE => 45,
    1033   :BOOL => 46,
    1034   :TYPE_NAME => 47,
    1035   :CHAR => 48,
    1036   :SHORT => 49,
    1037   :INT => 50,
    1038   :LONG => 51,
    1039   :SIGNED => 52,
    1040   :UNSIGNED => 53,
    1041   :STRUCT => 54,
    1042   "{" => 55,
    1043   "}" => 56,
    1044   :UNION => 57,
    1045   :ENUM => 58,
    1046   :CONST => 59,
    1047   :VOLATILE => 60,
    1048   :C_EXP => 61,
    1049   :EXTENSION => 62,
    1050   :TYPEDEF => 63,
    1051   :IF => 64,
    1052   :ELSE => 65,
    1053   :WHILE => 66,
    1054   :DO => 67,
    1055   :FOR => 68,
    1056   :SWITCH => 69,
    1057   :infunc_statment => 70,
    1058   :CASE => 71,
    1059   :DEFAULT => 72,
    1060   :GOTO => 73,
    1061   :CONTINUE => 74,
    1062   :BREAK => 75,
    1063   :RETURN => 76,
    1064   "+=" => 77,
    1065   "-=" => 78,
    1066   "*=" => 79,
    1067   "/=" => 80,
    1068   "%=" => 81,
    1069   "<<=" => 82,
    1070   ">>=" => 83,
    1071   "&=" => 84,
    1072   "|=" => 85,
    1073   "^=" => 86,
    1074   :__INLINE__ => 87,
    1075   :INLINE => 88,
    1076   :__INLINE => 89,
    1077   :CINLINE => 90,
    1078   :EXTERN => 91,
    1079   :STATIC => 92,
    1080   :AUTO => 93,
    1081   :REGISTER => 94,
    1082   "::" => 95 }
    1083 
    1084 racc_nt_base = 96
     1103  "{" => 17,
     1104  "}" => 18,
     1105  "," => 19,
     1106  :SIZEOF => 20,
     1107  "&" => 21,
     1108  "*" => 22,
     1109  "+" => 23,
     1110  "-" => 24,
     1111  "~" => 25,
     1112  "!" => 26,
     1113  "/" => 27,
     1114  "%" => 28,
     1115  "<<" => 29,
     1116  ">>" => 30,
     1117  "<" => 31,
     1118  ">" => 32,
     1119  "<=" => 33,
     1120  ">=" => 34,
     1121  "==" => 35,
     1122  "!=" => 36,
     1123  "^" => 37,
     1124  "|" => 38,
     1125  "&&" => 39,
     1126  "||" => 40,
     1127  "?" => 41,
     1128  ":" => 42,
     1129  "=" => 43,
     1130  "+=" => 44,
     1131  "-=" => 45,
     1132  "*=" => 46,
     1133  "/=" => 47,
     1134  "%=" => 48,
     1135  "<<=" => 49,
     1136  ">>=" => 50,
     1137  "&=" => 51,
     1138  "|=" => 52,
     1139  "^=" => 53,
     1140  ";" => 54,
     1141  :EXTERN => 55,
     1142  :STATIC => 56,
     1143  :AUTO => 57,
     1144  :REGISTER => 58,
     1145  :VOID => 59,
     1146  :CHAR => 60,
     1147  :SHORT => 61,
     1148  :INT => 62,
     1149  :LONG => 63,
     1150  :FLOAT => 64,
     1151  :DOUBLE => 65,
     1152  :SIGNED => 66,
     1153  :UNSIGNED => 67,
     1154  :BOOL => 68,
     1155  :TYPE_NAME => 69,
     1156  :STRUCT => 70,
     1157  :UNION => 71,
     1158  :ENUM => 72,
     1159  :CONST => 73,
     1160  :RESTRICT => 74,
     1161  :VOLATILE => 75,
     1162  :__INLINE__ => 76,
     1163  :INLINE => 77,
     1164  :__INLINE => 78,
     1165  :CINLINE => 79,
     1166  :C_EXP => 80,
     1167  :EXTENSION => 81,
     1168  :TYPEDEF => 82,
     1169  :CASE => 83,
     1170  :DEFAULT => 84,
     1171  :IF => 85,
     1172  :ELSE => 86,
     1173  :SWITCH => 87,
     1174  :WHILE => 88,
     1175  :DO => 89,
     1176  :FOR => 90,
     1177  :GOTO => 91,
     1178  :CONTINUE => 92,
     1179  :BREAK => 93,
     1180  :RETURN => 94,
     1181  "::" => 95,
     1182  :_ASM => 96 }
     1183
     1184racc_nt_base = 97
    10851185
    10861186racc_use_result_var = true
     
    11201220  "\"++\"",
    11211221  "\"--\"",
     1222  "\"{\"",
     1223  "\"}\"",
    11221224  "\",\"",
    11231225  "SIZEOF",
     
    11441246  "\"?\"",
    11451247  "\":\"",
    1146   "\";\"",
    11471248  "\"=\"",
    1148   "VOID",
    1149   "FLOAT",
    1150   "DOUBLE",
    1151   "BOOL",
    1152   "TYPE_NAME",
    1153   "CHAR",
    1154   "SHORT",
    1155   "INT",
    1156   "LONG",
    1157   "SIGNED",
    1158   "UNSIGNED",
    1159   "STRUCT",
    1160   "\"{\"",
    1161   "\"}\"",
    1162   "UNION",
    1163   "ENUM",
    1164   "CONST",
    1165   "VOLATILE",
    1166   "C_EXP",
    1167   "EXTENSION",
    1168   "TYPEDEF",
    1169   "IF",
    1170   "ELSE",
    1171   "WHILE",
    1172   "DO",
    1173   "FOR",
    1174   "SWITCH",
    1175   "infunc_statment",
    1176   "CASE",
    1177   "DEFAULT",
    1178   "GOTO",
    1179   "CONTINUE",
    1180   "BREAK",
    1181   "RETURN",
    11821249  "\"+=\"",
    11831250  "\"-=\"",
     
    11901257  "\"|=\"",
    11911258  "\"^=\"",
     1259  "\";\"",
     1260  "EXTERN",
     1261  "STATIC",
     1262  "AUTO",
     1263  "REGISTER",
     1264  "VOID",
     1265  "CHAR",
     1266  "SHORT",
     1267  "INT",
     1268  "LONG",
     1269  "FLOAT",
     1270  "DOUBLE",
     1271  "SIGNED",
     1272  "UNSIGNED",
     1273  "BOOL",
     1274  "TYPE_NAME",
     1275  "STRUCT",
     1276  "UNION",
     1277  "ENUM",
     1278  "CONST",
     1279  "RESTRICT",
     1280  "VOLATILE",
    11921281  "__INLINE__",
    11931282  "INLINE",
    11941283  "__INLINE",
    11951284  "CINLINE",
    1196   "EXTERN",
    1197   "STATIC",
    1198   "AUTO",
    1199   "REGISTER",
     1285  "C_EXP",
     1286  "EXTENSION",
     1287  "TYPEDEF",
     1288  "CASE",
     1289  "DEFAULT",
     1290  "IF",
     1291  "ELSE",
     1292  "SWITCH",
     1293  "WHILE",
     1294  "DO",
     1295  "FOR",
     1296  "GOTO",
     1297  "CONTINUE",
     1298  "BREAK",
     1299  "RETURN",
    12001300  "\"::\"",
     1301  "_ASM",
    12011302  "$start",
    12021303  "all",
     
    12071308  "expression",
    12081309  "postfix_expression",
    1209   "argument_list",
     1310  "argument_expression_list",
    12101311  "type_qualifier",
     1312  "type_name",
     1313  "initializer_list",
     1314  "assignment_expression",
    12111315  "unary_expression",
    12121316  "unary_operator",
    12131317  "cast_expression",
    1214   "type_name",
    12151318  "multiplicative_expression",
    12161319  "additive_expression",
     
    12241327  "logical_or_expression",
    12251328  "conditional_expression",
     1329  "assignment_operator",
    12261330  "constant_expression",
    12271331  "declaration",
    12281332  "declaration_specifiers",
    12291333  "init_declarator_list",
    1230   "storage_class",
     1334  "storage_class_specifier",
    12311335  "type_specifier",
     1336  "function_specifier",
    12321337  "init_declarator",
    12331338  "declarator",
     
    12361341  "union_specifier",
    12371342  "enum_specifier",
     1343  "struct_term",
    12381344  "struct_tag",
    12391345  "struct_declaration_list",
     
    12421348  "struct_declaration",
    12431349  "struct_declarator_list",
    1244   "type_specifier_qualifier_list",
     1350  "specifier_qualifier_list",
    12451351  "struct_declarator",
     1352  "union_term",
    12461353  "union_tag",
    12471354  "union_declaration_list",
     
    12491356  "union_declarator_list",
    12501357  "union_declarator",
    1251   "enum_type",
    12521358  "enumerator_list",
    12531359  "enumerator",
     
    12551361  "direct_declarator",
    12561362  "parameter_type_list",
     1363  "identifier_list",
     1364  "type_qualifier_list",
    12571365  "parameter_list",
    12581366  "parameter_declaration",
    12591367  "abstract_declarator",
    12601368  "direct_abstract_declarator",
    1261   "initializer_list",
    12621369  "extension_statement",
    1263   "statement",
     1370  "cdl_statement",
    12641371  "typedef",
    12651372  "func_def",
    12661373  "declarator_list",
    1267   "compoundstatement",
    1268   "infunc_statement_list",
    1269   "infunc_statement",
     1374  "compound_statement",
     1375  "statement",
     1376  "labeled_statement",
     1377  "expression_statement",
    12701378  "ifstatement",
    12711379  "whilestatement",
     
    12731381  "forstatement",
    12741382  "switchstatement",
    1275   "labelstatement",
    1276   "gotostatement",
    1277   "expressionstatement",
    1278   "assignment_operator" ]
     1383  "jump_statement",
     1384  "asm_statement",
     1385  "block_item_list",
     1386  "block_item" ]
    12791387
    12801388Racc_debug_parser = false
     
    12861394# reduce 1 omitted
    12871395
    1288 module_eval(<<'.,.,', 'C_parser.y.rb', 52)
     1396module_eval(<<'.,.,', 'C_parser.y.rb', 57)
    12891397  def _reduce_2(val, _values, result)
    12901398     result = [ :IDENTIFIER, val[0] ]
     
    12931401.,.,
    12941402
    1295 module_eval(<<'.,.,', 'C_parser.y.rb', 60)
     1403module_eval(<<'.,.,', 'C_parser.y.rb', 65)
    12961404  def _reduce_3(val, _values, result)
    12971405     result = [ :INTEGER_CONSTANT, val[0] ]
     
    13001408.,.,
    13011409
    1302 module_eval(<<'.,.,', 'C_parser.y.rb', 62)
     1410module_eval(<<'.,.,', 'C_parser.y.rb', 67)
    13031411  def _reduce_4(val, _values, result)
    13041412     result = [ :FLOATING_CONSTANT, val[0] ]
     
    13071415.,.,
    13081416
    1309 module_eval(<<'.,.,', 'C_parser.y.rb', 64)
     1417module_eval(<<'.,.,', 'C_parser.y.rb', 69)
    13101418  def _reduce_5(val, _values, result)
    13111419     result = [ :OCTAL_CONSTANT, val[0] ]
     
    13141422.,.,
    13151423
    1316 module_eval(<<'.,.,', 'C_parser.y.rb', 66)
     1424module_eval(<<'.,.,', 'C_parser.y.rb', 71)
    13171425  def _reduce_6(val, _values, result)
    13181426     result = [ :HEX_CONSTANT, val[0] ]
     
    13211429.,.,
    13221430
    1323 module_eval(<<'.,.,', 'C_parser.y.rb', 68)
     1431module_eval(<<'.,.,', 'C_parser.y.rb', 73)
    13241432  def _reduce_7(val, _values, result)
    13251433     result = [ :CHARACTER_LITERAL, val[0] ]
     
    13281436.,.,
    13291437
    1330 module_eval(<<'.,.,', 'C_parser.y.rb', 70)
     1438module_eval(<<'.,.,', 'C_parser.y.rb', 75)
    13311439  def _reduce_8(val, _values, result)
    13321440     result = [ :STRING_LITERAL_LIST, val[0] ]
     
    13351443.,.,
    13361444
    1337 module_eval(<<'.,.,', 'C_parser.y.rb', 72)
     1445module_eval(<<'.,.,', 'C_parser.y.rb', 77)
    13381446  def _reduce_9(val, _values, result)
    13391447     result = [ :PARENTHESES, val[1].get_elements ]
     
    13421450.,.,
    13431451
    1344 module_eval(<<'.,.,', 'C_parser.y.rb', 76)
     1452module_eval(<<'.,.,', 'C_parser.y.rb', 81)
    13451453  def _reduce_10(val, _values, result)
    13461454     result = [val[0]]
     
    13491457.,.,
    13501458
    1351 module_eval(<<'.,.,', 'C_parser.y.rb', 78)
     1459module_eval(<<'.,.,', 'C_parser.y.rb', 83)
    13521460  def _reduce_11(val, _values, result)
    13531461     result << val[1]
     
    13581466# reduce 12 omitted
    13591467
    1360 # reduce 13 omitted
     1468module_eval(<<'.,.,', 'C_parser.y.rb', 89)
     1469  def _reduce_13(val, _values, result)
     1470     result = [ :OP_SUBSC, val[0], val[2] ]
     1471    result
     1472  end
     1473.,.,
    13611474
    13621475# reduce 14 omitted
    13631476
    1364 module_eval(<<'.,.,', 'C_parser.y.rb', 86)
    1365   def _reduce_15(val, _values, result)
    1366      result = [ :OP_SUBSC, val[0], val[2] ]
    1367     result
    1368   end
    1369 .,.,
    1370 
    1371 module_eval(<<'.,.,', 'C_parser.y.rb', 88)
    1372   def _reduce_16(val, _values, result)
     1477# reduce 15 omitted
     1478
     1479# reduce 16 omitted
     1480
     1481module_eval(<<'.,.,', 'C_parser.y.rb', 94)
     1482  def _reduce_17(val, _values, result)
    13731483     result = [ :OP_DOT, val[0], val[2] ]
    13741484    result
     
    13761486.,.,
    13771487
    1378 module_eval(<<'.,.,', 'C_parser.y.rb', 90)
    1379   def _reduce_17(val, _values, result)
     1488module_eval(<<'.,.,', 'C_parser.y.rb', 96)
     1489  def _reduce_18(val, _values, result)
    13801490     result = [ :OP_REF, val[0], val[2] ]
    13811491    result
     
    13831493.,.,
    13841494
    1385 module_eval(<<'.,.,', 'C_parser.y.rb', 91)
    1386   def _reduce_18(val, _values, result)
    1387      result = val[0]
    1388     result
    1389   end
    1390 .,.,
    1391 
    1392 module_eval(<<'.,.,', 'C_parser.y.rb', 92)
     1495module_eval(<<'.,.,', 'C_parser.y.rb', 97)
    13931496  def _reduce_19(val, _values, result)
    13941497     result = val[0]
     
    13971500.,.,
    13981501
    1399 # reduce 20 omitted
     1502module_eval(<<'.,.,', 'C_parser.y.rb', 98)
     1503  def _reduce_20(val, _values, result)
     1504     result = val[0]
     1505    result
     1506  end
     1507.,.,
    14001508
    14011509# reduce 21 omitted
     
    14051513# reduce 23 omitted
    14061514
    1407 module_eval(<<'.,.,', 'C_parser.y.rb', 104)
    1408   def _reduce_24(val, _values, result)
     1515# reduce 24 omitted
     1516
     1517# reduce 25 omitted
     1518
     1519module_eval(<<'.,.,', 'C_parser.y.rb', 111)
     1520  def _reduce_26(val, _values, result)
    14091521     result = [ val[0], val[1] ]
    14101522    result
     
    14121524.,.,
    14131525
    1414 module_eval(<<'.,.,', 'C_parser.y.rb', 106)
    1415   def _reduce_25(val, _values, result)
     1526module_eval(<<'.,.,', 'C_parser.y.rb', 113)
     1527  def _reduce_27(val, _values, result)
    14161528     result = [ :OP_SIZEOF_EXPR, val[1] ]
    14171529    result
     
    14191531.,.,
    14201532
    1421 module_eval(<<'.,.,', 'C_parser.y.rb', 108)
    1422   def _reduce_26(val, _values, result)
     1533module_eval(<<'.,.,', 'C_parser.y.rb', 115)
     1534  def _reduce_28(val, _values, result)
    14231535     result = [ :OP_SIZEOF_TYPE, val[1] ]
    14241536    result
     
    14261538.,.,
    14271539
    1428 module_eval(<<'.,.,', 'C_parser.y.rb', 109)
    1429   def _reduce_27(val, _values, result)
     1540module_eval(<<'.,.,', 'C_parser.y.rb', 116)
     1541  def _reduce_29(val, _values, result)
    14301542     result = val[1]
    14311543    result
     
    14331545.,.,
    14341546
    1435 module_eval(<<'.,.,', 'C_parser.y.rb', 110)
    1436   def _reduce_28(val, _values, result)
     1547module_eval(<<'.,.,', 'C_parser.y.rb', 117)
     1548  def _reduce_30(val, _values, result)
    14371549     result = val[1]
    14381550    result
     
    14401552.,.,
    14411553
    1442 module_eval(<<'.,.,', 'C_parser.y.rb', 113)
    1443   def _reduce_29(val, _values, result)
     1554module_eval(<<'.,.,', 'C_parser.y.rb', 120)
     1555  def _reduce_31(val, _values, result)
    14441556     result = :OP_U_AMP
    14451557    result
     
    14471559.,.,
    14481560
    1449 module_eval(<<'.,.,', 'C_parser.y.rb', 114)
    1450   def _reduce_30(val, _values, result)
     1561module_eval(<<'.,.,', 'C_parser.y.rb', 121)
     1562  def _reduce_32(val, _values, result)
    14511563     result = :OP_U_ASTER
    14521564    result
     
    14541566.,.,
    14551567
    1456 module_eval(<<'.,.,', 'C_parser.y.rb', 115)
    1457   def _reduce_31(val, _values, result)
     1568module_eval(<<'.,.,', 'C_parser.y.rb', 122)
     1569  def _reduce_33(val, _values, result)
    14581570     result = :OP_U_PLUS
    14591571    result
     
    14611573.,.,
    14621574
    1463 module_eval(<<'.,.,', 'C_parser.y.rb', 116)
    1464   def _reduce_32(val, _values, result)
     1575module_eval(<<'.,.,', 'C_parser.y.rb', 123)
     1576  def _reduce_34(val, _values, result)
    14651577     result = :OP_U_MINUS
    14661578    result
     
    14681580.,.,
    14691581
    1470 module_eval(<<'.,.,', 'C_parser.y.rb', 117)
    1471   def _reduce_33(val, _values, result)
     1582module_eval(<<'.,.,', 'C_parser.y.rb', 124)
     1583  def _reduce_35(val, _values, result)
    14721584     result = :OP_U_TILDE
    14731585    result
     
    14751587.,.,
    14761588
    1477 module_eval(<<'.,.,', 'C_parser.y.rb', 118)
    1478   def _reduce_34(val, _values, result)
     1589module_eval(<<'.,.,', 'C_parser.y.rb', 125)
     1590  def _reduce_36(val, _values, result)
    14791591     result = :OP_U_EXCLAM
    14801592    result
     
    14821594.,.,
    14831595
    1484 # reduce 35 omitted
    1485 
    1486 module_eval(<<'.,.,', 'C_parser.y.rb', 123)
    1487   def _reduce_36(val, _values, result)
     1596# reduce 37 omitted
     1597
     1598module_eval(<<'.,.,', 'C_parser.y.rb', 130)
     1599  def _reduce_38(val, _values, result)
    14881600      result = [ :CAST, val[1], val[3] ]
    14891601    result
     
    14911603.,.,
    14921604
    1493 # reduce 37 omitted
    1494 
    1495 module_eval(<<'.,.,', 'C_parser.y.rb', 128)
    1496   def _reduce_38(val, _values, result)
     1605# reduce 39 omitted
     1606
     1607module_eval(<<'.,.,', 'C_parser.y.rb', 135)
     1608  def _reduce_40(val, _values, result)
    14971609     result = [ :OP_MULT, val[0], val[2] ] 
    14981610    result
     
    15001612.,.,
    15011613
    1502 module_eval(<<'.,.,', 'C_parser.y.rb', 130)
    1503   def _reduce_39(val, _values, result)
     1614module_eval(<<'.,.,', 'C_parser.y.rb', 137)
     1615  def _reduce_41(val, _values, result)
    15041616     result = [ :OP_DIV, val[0], val[2] ] 
    15051617    result
     
    15071619.,.,
    15081620
    1509 module_eval(<<'.,.,', 'C_parser.y.rb', 132)
    1510   def _reduce_40(val, _values, result)
     1621module_eval(<<'.,.,', 'C_parser.y.rb', 139)
     1622  def _reduce_42(val, _values, result)
    15111623     result = [ :OP_REMAIN, val[0], val[2] ] 
    15121624    result
     
    15141626.,.,
    15151627
    1516 # reduce 41 omitted
    1517 
    1518 module_eval(<<'.,.,', 'C_parser.y.rb', 137)
    1519   def _reduce_42(val, _values, result)
     1628# reduce 43 omitted
     1629
     1630module_eval(<<'.,.,', 'C_parser.y.rb', 144)
     1631  def _reduce_44(val, _values, result)
    15201632     result = [ :OP_ADD, val[0], val[2] ] 
    15211633    result
     
    15231635.,.,
    15241636
    1525 module_eval(<<'.,.,', 'C_parser.y.rb', 139)
    1526   def _reduce_43(val, _values, result)
     1637module_eval(<<'.,.,', 'C_parser.y.rb', 146)
     1638  def _reduce_45(val, _values, result)
    15271639     result = [ :OP_SUB, val[0], val[2] ] 
    15281640    result
     
    15301642.,.,
    15311643
    1532 # reduce 44 omitted
    1533 
    1534 module_eval(<<'.,.,', 'C_parser.y.rb', 144)
    1535   def _reduce_45(val, _values, result)
     1644# reduce 46 omitted
     1645
     1646module_eval(<<'.,.,', 'C_parser.y.rb', 151)
     1647  def _reduce_47(val, _values, result)
    15361648     result = [ :OP_LSFT, val[0], val[2] ] 
    15371649    result
     
    15391651.,.,
    15401652
    1541 module_eval(<<'.,.,', 'C_parser.y.rb', 146)
    1542   def _reduce_46(val, _values, result)
     1653module_eval(<<'.,.,', 'C_parser.y.rb', 153)
     1654  def _reduce_48(val, _values, result)
    15431655     result = [ :OP_RSFT, val[0], val[2] ] 
    15441656    result
     
    15461658.,.,
    15471659
    1548 # reduce 47 omitted
    1549 
    1550 module_eval(<<'.,.,', 'C_parser.y.rb', 151)
    1551   def _reduce_48(val, _values, result)
     1660# reduce 49 omitted
     1661
     1662module_eval(<<'.,.,', 'C_parser.y.rb', 158)
     1663  def _reduce_50(val, _values, result)
    15521664     result = [ :OP_LT, val[0], val[2] ] 
    15531665    result
     
    15551667.,.,
    15561668
    1557 module_eval(<<'.,.,', 'C_parser.y.rb', 153)
    1558   def _reduce_49(val, _values, result)
     1669module_eval(<<'.,.,', 'C_parser.y.rb', 160)
     1670  def _reduce_51(val, _values, result)
    15591671     result = [ :OP_GT, val[0], val[2] ] 
    15601672    result
     
    15621674.,.,
    15631675
    1564 module_eval(<<'.,.,', 'C_parser.y.rb', 155)
    1565   def _reduce_50(val, _values, result)
     1676module_eval(<<'.,.,', 'C_parser.y.rb', 162)
     1677  def _reduce_52(val, _values, result)
    15661678     result = [ :OP_LE, val[0], val[2] ] 
    15671679    result
     
    15691681.,.,
    15701682
    1571 module_eval(<<'.,.,', 'C_parser.y.rb', 157)
    1572   def _reduce_51(val, _values, result)
     1683module_eval(<<'.,.,', 'C_parser.y.rb', 164)
     1684  def _reduce_53(val, _values, result)
    15731685     result = [ :OP_GE, val[0], val[2] ] 
    15741686    result
     
    15761688.,.,
    15771689
    1578 # reduce 52 omitted
    1579 
    1580 module_eval(<<'.,.,', 'C_parser.y.rb', 162)
    1581   def _reduce_53(val, _values, result)
     1690# reduce 54 omitted
     1691
     1692module_eval(<<'.,.,', 'C_parser.y.rb', 169)
     1693  def _reduce_55(val, _values, result)
    15821694     result = [ :OP_EQ, val[0], val[2] ] 
    15831695    result
     
    15851697.,.,
    15861698
    1587 module_eval(<<'.,.,', 'C_parser.y.rb', 164)
    1588   def _reduce_54(val, _values, result)
     1699module_eval(<<'.,.,', 'C_parser.y.rb', 171)
     1700  def _reduce_56(val, _values, result)
    15891701     result = [ :OP_NE, val[0], val[2] ] 
    15901702    result
     
    15921704.,.,
    15931705
    1594 # reduce 55 omitted
    1595 
    1596 module_eval(<<'.,.,', 'C_parser.y.rb', 169)
    1597   def _reduce_56(val, _values, result)
     1706# reduce 57 omitted
     1707
     1708module_eval(<<'.,.,', 'C_parser.y.rb', 176)
     1709  def _reduce_58(val, _values, result)
    15981710     result = [ :OP_AND, val[0], val[2] ] 
    15991711    result
     
    16011713.,.,
    16021714
    1603 # reduce 57 omitted
    1604 
    1605 module_eval(<<'.,.,', 'C_parser.y.rb', 174)
    1606   def _reduce_58(val, _values, result)
     1715# reduce 59 omitted
     1716
     1717module_eval(<<'.,.,', 'C_parser.y.rb', 181)
     1718  def _reduce_60(val, _values, result)
    16071719     result = [ :OP_EOR, val[0], val[2] ] 
    16081720    result
     
    16101722.,.,
    16111723
    1612 # reduce 59 omitted
    1613 
    1614 module_eval(<<'.,.,', 'C_parser.y.rb', 179)
    1615   def _reduce_60(val, _values, result)
     1724# reduce 61 omitted
     1725
     1726module_eval(<<'.,.,', 'C_parser.y.rb', 186)
     1727  def _reduce_62(val, _values, result)
    16161728     result = [ :OP_OR, val[0], val[2] ] 
    16171729    result
     
    16191731.,.,
    16201732
    1621 # reduce 61 omitted
    1622 
    1623 module_eval(<<'.,.,', 'C_parser.y.rb', 184)
    1624   def _reduce_62(val, _values, result)
     1733# reduce 63 omitted
     1734
     1735module_eval(<<'.,.,', 'C_parser.y.rb', 191)
     1736  def _reduce_64(val, _values, result)
    16251737     result = [ :OP_LAND, val[0], val[2] ] 
    16261738    result
     
    16281740.,.,
    16291741
    1630 # reduce 63 omitted
    1631 
    1632 module_eval(<<'.,.,', 'C_parser.y.rb', 189)
    1633   def _reduce_64(val, _values, result)
     1742# reduce 65 omitted
     1743
     1744module_eval(<<'.,.,', 'C_parser.y.rb', 196)
     1745  def _reduce_66(val, _values, result)
    16341746     result = [ :OP_LOR, val[0], val[2] ] 
    16351747    result
     
    16371749.,.,
    16381750
    1639 # reduce 65 omitted
    1640 
    1641 module_eval(<<'.,.,', 'C_parser.y.rb', 194)
    1642   def _reduce_66(val, _values, result)
     1751# reduce 67 omitted
     1752
     1753module_eval(<<'.,.,', 'C_parser.y.rb', 201)
     1754  def _reduce_68(val, _values, result)
    16431755     result = [ :OP_CEX, val[0], val[2].get_elements, val[4] ] 
    16441756    result
     
    16461758.,.,
    16471759
    1648 module_eval(<<'.,.,', 'C_parser.y.rb', 201)
    1649   def _reduce_67(val, _values, result)
     1760# reduce 69 omitted
     1761
     1762# reduce 70 omitted
     1763
     1764# reduce 71 omitted
     1765
     1766# reduce 72 omitted
     1767
     1768# reduce 73 omitted
     1769
     1770# reduce 74 omitted
     1771
     1772# reduce 75 omitted
     1773
     1774# reduce 76 omitted
     1775
     1776# reduce 77 omitted
     1777
     1778# reduce 78 omitted
     1779
     1780# reduce 79 omitted
     1781
     1782# reduce 80 omitted
     1783
     1784# reduce 81 omitted
     1785
     1786module_eval(<<'.,.,', 'C_parser.y.rb', 223)
     1787  def _reduce_82(val, _values, result)
    16501788                        result = Expression.new( val[0] )
    16511789                        # result.print
     
    16551793.,.,
    16561794
    1657 module_eval(<<'.,.,', 'C_parser.y.rb', 208)
    1658   def _reduce_68(val, _values, result)
     1795module_eval(<<'.,.,', 'C_parser.y.rb', 228)
     1796  def _reduce_83(val, _values, result)
     1797                        result = Expression.new( val[2] )    # ',' の後ろを採用
     1798               
     1799    result
     1800  end
     1801.,.,
     1802
     1803module_eval(<<'.,.,', 'C_parser.y.rb', 234)
     1804  def _reduce_84(val, _values, result)
    16591805                        result = Expression.new( val[0] )
    16601806                        # result.print
     
    16711817.,.,
    16721818
    1673 # reduce 69 omitted
    1674 
    1675 module_eval(<<'.,.,', 'C_parser.y.rb', 237)
    1676   def _reduce_70(val, _values, result)
     1819# reduce 85 omitted
     1820
     1821module_eval(<<'.,.,', 'C_parser.y.rb', 261)
     1822  def _reduce_86(val, _values, result)
    16771823                        result = CIntType.new( -3 )    # storage class は無視
    16781824               
     
    16811827.,.,
    16821828
    1683 # reduce 71 omitted
    1684 
    1685 module_eval(<<'.,.,', 'C_parser.y.rb', 242)
    1686   def _reduce_72(val, _values, result)
     1829module_eval(<<'.,.,', 'C_parser.y.rb', 265)
     1830  def _reduce_87(val, _values, result)
     1831                        result = val[1]                # storage class は無視
     1832               
     1833    result
     1834  end
     1835.,.,
     1836
     1837# reduce 88 omitted
     1838
     1839module_eval(<<'.,.,', 'C_parser.y.rb', 270)
     1840  def _reduce_89(val, _values, result)
     1841                        result = val[1].merge val[0]
     1842               
     1843    result
     1844  end
     1845.,.,
     1846
     1847module_eval(<<'.,.,', 'C_parser.y.rb', 274)
     1848  def _reduce_90(val, _values, result)
    16871849                        result = CIntType.new( -3 )
    16881850                        result.set_qualifier val[0]
     
    16921854.,.,
    16931855
    1694 module_eval(<<'.,.,', 'C_parser.y.rb', 247)
    1695   def _reduce_73(val, _values, result)
    1696                         result = val[1]                # storage class は無視
    1697                
    1698     result
    1699   end
    1700 .,.,
    1701 
    1702 module_eval(<<'.,.,', 'C_parser.y.rb', 251)
    1703   def _reduce_74(val, _values, result)
    1704                         result = val[1].merge val[0]
    1705                
    1706     result
    1707   end
    1708 .,.,
    1709 
    1710 module_eval(<<'.,.,', 'C_parser.y.rb', 255)
    1711   def _reduce_75(val, _values, result)
     1856module_eval(<<'.,.,', 'C_parser.y.rb', 279)
     1857  def _reduce_91(val, _values, result)
    17121858                        val[1].set_qualifier val[0]
    1713                         result = val[1]
    1714                
    1715     result
    1716   end
    1717 .,.,
    1718 
    1719 module_eval(<<'.,.,', 'C_parser.y.rb', 262)
    1720   def _reduce_76(val, _values, result)
     1859                                                result = val[1]
     1860               
     1861    result
     1862  end
     1863.,.,
     1864
     1865# reduce 92 omitted
     1866
     1867# reduce 93 omitted
     1868
     1869module_eval(<<'.,.,', 'C_parser.y.rb', 287)
     1870  def _reduce_94(val, _values, result)
    17211871     result = [val[0]]
    17221872    result
     
    17241874.,.,
    17251875
    1726 module_eval(<<'.,.,', 'C_parser.y.rb', 264)
    1727   def _reduce_77(val, _values, result)
     1876module_eval(<<'.,.,', 'C_parser.y.rb', 289)
     1877  def _reduce_95(val, _values, result)
    17281878     result << val[2]
    17291879    result
     
    17311881.,.,
    17321882
    1733 # reduce 78 omitted
    1734 
    1735 module_eval(<<'.,.,', 'C_parser.y.rb', 269)
    1736   def _reduce_79(val, _values, result)
     1883# reduce 96 omitted
     1884
     1885module_eval(<<'.,.,', 'C_parser.y.rb', 294)
     1886  def _reduce_97(val, _values, result)
    17371887     val[0].set_initializer( val[2] )
    17381888    result
     
    17401890.,.,
    17411891
    1742 module_eval(<<'.,.,', 'C_parser.y.rb', 272)
    1743   def _reduce_80(val, _values, result)
     1892# reduce 98 omitted
     1893
     1894# reduce 99 omitted
     1895
     1896# reduce 100 omitted
     1897
     1898# reduce 101 omitted
     1899
     1900module_eval(<<'.,.,', 'C_parser.y.rb', 304)
     1901  def _reduce_102(val, _values, result)
    17441902     set_no_type_name true; result = CVoidType.new
    17451903    result
     
    17471905.,.,
    17481906
    1749 module_eval(<<'.,.,', 'C_parser.y.rb', 273)
    1750   def _reduce_81(val, _values, result)
     1907module_eval(<<'.,.,', 'C_parser.y.rb', 306)
     1908  def _reduce_103(val, _values, result)
     1909     set_no_type_name true; result = CIntType.new(-11 )
     1910    result
     1911  end
     1912.,.,
     1913
     1914module_eval(<<'.,.,', 'C_parser.y.rb', 308)
     1915  def _reduce_104(val, _values, result)
     1916     set_no_type_name true; result = CIntType.new( -2 )
     1917    result
     1918  end
     1919.,.,
     1920
     1921module_eval(<<'.,.,', 'C_parser.y.rb', 310)
     1922  def _reduce_105(val, _values, result)
     1923     set_no_type_name true; result = CIntType.new( -3 )
     1924    result
     1925  end
     1926.,.,
     1927
     1928module_eval(<<'.,.,', 'C_parser.y.rb', 312)
     1929  def _reduce_106(val, _values, result)
     1930     set_no_type_name true; result = CIntType.new( -4 )
     1931    result
     1932  end
     1933.,.,
     1934
     1935module_eval(<<'.,.,', 'C_parser.y.rb', 314)
     1936  def _reduce_107(val, _values, result)
    17511937     set_no_type_name true; result = CFloatType.new(-32)
    17521938    result
     
    17541940.,.,
    17551941
    1756 module_eval(<<'.,.,', 'C_parser.y.rb', 274)
    1757   def _reduce_82(val, _values, result)
     1942module_eval(<<'.,.,', 'C_parser.y.rb', 316)
     1943  def _reduce_108(val, _values, result)
    17581944     set_no_type_name true; result = CFloatType.new(-64)
    17591945    result
     
    17611947.,.,
    17621948
    1763 module_eval(<<'.,.,', 'C_parser.y.rb', 275)
    1764   def _reduce_83(val, _values, result)
    1765      set_no_type_name true; result = CBoolType.new
    1766     result
    1767   end
    1768 .,.,
    1769 
    1770 module_eval(<<'.,.,', 'C_parser.y.rb', 276)
    1771   def _reduce_84(val, _values, result)
    1772      set_no_type_name true; result = val[0]
    1773     result
    1774   end
    1775 .,.,
    1776 
    1777 module_eval(<<'.,.,', 'C_parser.y.rb', 277)
    1778   def _reduce_85(val, _values, result)
    1779      set_no_type_name true; result = CVoidType.new
    1780     result
    1781   end
    1782 .,.,
    1783 
    1784 module_eval(<<'.,.,', 'C_parser.y.rb', 278)
    1785   def _reduce_86(val, _values, result)
    1786      set_no_type_name true; result = CVoidType.new
    1787     result
    1788   end
    1789 .,.,
    1790 
    1791 module_eval(<<'.,.,', 'C_parser.y.rb', 279)
    1792   def _reduce_87(val, _values, result)
    1793      set_no_type_name true; result = CDefinedType.new( val[0].val )
    1794     result
    1795   end
    1796 .,.,
    1797 
    1798 module_eval(<<'.,.,', 'C_parser.y.rb', 281)
    1799   def _reduce_88(val, _values, result)
    1800      set_no_type_name true; result = CIntType.new(-11 )
    1801     result
    1802   end
    1803 .,.,
    1804 
    1805 module_eval(<<'.,.,', 'C_parser.y.rb', 282)
    1806   def _reduce_89(val, _values, result)
    1807      set_no_type_name true; result = CIntType.new( -2 )
    1808     result
    1809   end
    1810 .,.,
    1811 
    1812 module_eval(<<'.,.,', 'C_parser.y.rb', 283)
    1813   def _reduce_90(val, _values, result)
    1814      set_no_type_name true; result = CIntType.new( -3 )
    1815     result
    1816   end
    1817 .,.,
    1818 
    1819 module_eval(<<'.,.,', 'C_parser.y.rb', 284)
    1820   def _reduce_91(val, _values, result)
    1821      set_no_type_name true; result = CIntType.new( -4 )
    1822     result
    1823   end
    1824 .,.,
    1825 
    1826 module_eval(<<'.,.,', 'C_parser.y.rb', 287)
    1827   def _reduce_92(val, _values, result)
     1949module_eval(<<'.,.,', 'C_parser.y.rb', 319)
     1950  def _reduce_109(val, _values, result)
    18281951                        set_no_type_name true
    18291952                        result = CIntType.new( -3 )
     
    18341957.,.,
    18351958
    1836 module_eval(<<'.,.,', 'C_parser.y.rb', 293)
    1837   def _reduce_93(val, _values, result)
     1959module_eval(<<'.,.,', 'C_parser.y.rb', 325)
     1960  def _reduce_110(val, _values, result)
    18381961                        set_no_type_name true
    18391962                        result = CIntType.new( -3 )
     
    18441967.,.,
    18451968
    1846 module_eval(<<'.,.,', 'C_parser.y.rb', 301)
    1847   def _reduce_94(val, _values, result)
     1969module_eval(<<'.,.,', 'C_parser.y.rb', 330)
     1970  def _reduce_111(val, _values, result)
     1971     set_no_type_name true; result = CBoolType.new
     1972    result
     1973  end
     1974.,.,
     1975
     1976module_eval(<<'.,.,', 'C_parser.y.rb', 332)
     1977  def _reduce_112(val, _values, result)
     1978     set_no_type_name true; result = val[0]
     1979    result
     1980  end
     1981.,.,
     1982
     1983module_eval(<<'.,.,', 'C_parser.y.rb', 334)
     1984  def _reduce_113(val, _values, result)
     1985     set_no_type_name true; result = CVoidType.new
     1986    result
     1987  end
     1988.,.,
     1989
     1990module_eval(<<'.,.,', 'C_parser.y.rb', 336)
     1991  def _reduce_114(val, _values, result)
     1992     set_no_type_name true; result = CVoidType.new
     1993    result
     1994  end
     1995.,.,
     1996
     1997module_eval(<<'.,.,', 'C_parser.y.rb', 338)
     1998  def _reduce_115(val, _values, result)
     1999     set_no_type_name true; result = CDefinedType.new( val[0].val )
     2000    result
     2001  end
     2002.,.,
     2003
     2004module_eval(<<'.,.,', 'C_parser.y.rb', 344)
     2005  def _reduce_116(val, _values, result)
    18482006     StructType.set_define( true ) 
    18492007    result
     
    18512009.,.,
    18522010
    1853 module_eval(<<'.,.,', 'C_parser.y.rb', 304)
    1854   def _reduce_95(val, _values, result)
     2011module_eval(<<'.,.,', 'C_parser.y.rb', 347)
     2012  def _reduce_117(val, _values, result)
    18552013                        StructType.end_of_parse
    18562014                        result = val[1]
     
    18602018.,.,
    18612019
    1862 module_eval(<<'.,.,', 'C_parser.y.rb', 309)
    1863   def _reduce_96(val, _values, result)
     2020module_eval(<<'.,.,', 'C_parser.y.rb', 353)
     2021  def _reduce_118(val, _values, result)
    18642022                        result = CStructType.new()
    18652023                        StructType.set_define( true )
     
    18692027.,.,
    18702028
    1871 module_eval(<<'.,.,', 'C_parser.y.rb', 314)
    1872   def _reduce_97(val, _values, result)
     2029module_eval(<<'.,.,', 'C_parser.y.rb', 358)
     2030  def _reduce_119(val, _values, result)
    18732031                        StructType.end_of_parse
    18742032                        result = val[1]
     
    18782036.,.,
    18792037
    1880 module_eval(<<'.,.,', 'C_parser.y.rb', 319)
    1881   def _reduce_98(val, _values, result)
     2038module_eval(<<'.,.,', 'C_parser.y.rb', 364)
     2039  def _reduce_120(val, _values, result)
    18822040                        StructType.set_define( false )
    18832041                        StructType.end_of_parse
     
    18882046.,.,
    18892047
    1890 # reduce 99 omitted
    1891 
    1892 # reduce 100 omitted
    1893 
    1894 module_eval(<<'.,.,', 'C_parser.y.rb', 331)
    1895   def _reduce_101(val, _values, result)
     2048module_eval(<<'.,.,', 'C_parser.y.rb', 370)
     2049  def _reduce_121(val, _values, result)
     2050     set_no_type_name true
     2051    result
     2052  end
     2053.,.,
     2054
     2055# reduce 122 omitted
     2056
     2057# reduce 123 omitted
     2058
     2059module_eval(<<'.,.,', 'C_parser.y.rb', 379)
     2060  def _reduce_124(val, _values, result)
    18962061                        result = CStructType.new( val[0].val )
    18972062                        set_no_type_name true
     
    19012066.,.,
    19022067
    1903 module_eval(<<'.,.,', 'C_parser.y.rb', 340)
    1904   def _reduce_102(val, _values, result)
     2068module_eval(<<'.,.,', 'C_parser.y.rb', 388)
     2069  def _reduce_125(val, _values, result)
    19052070                        val[1].each { |i|       # i: Decl
    19062071                                i.set_type( val[0] )
     
    19152080.,.,
    19162081
    1917 # reduce 103 omitted
    1918 
    1919 # reduce 104 omitted
    1920 
    1921 # reduce 105 omitted
    1922 
    1923 module_eval(<<'.,.,', 'C_parser.y.rb', 359)
    1924   def _reduce_106(val, _values, result)
     2082module_eval(<<'.,.,', 'C_parser.y.rb', 399)
     2083  def _reduce_126(val, _values, result)
     2084                        val[1].each { |i|       # i: Decl
     2085                                i.set_type( val[0] )
     2086                                i.set_kind( :MEMBER )
     2087                                i.check
     2088                                CStructType.new_member( i )
     2089                        }
     2090                        result = val[1]
     2091               
     2092    result
     2093  end
     2094.,.,
     2095
     2096# reduce 127 omitted
     2097
     2098# reduce 128 omitted
     2099
     2100module_eval(<<'.,.,', 'C_parser.y.rb', 417)
     2101  def _reduce_129(val, _values, result)
    19252102                        result = val[1].merge val[0]
    19262103               
     
    19292106.,.,
    19302107
    1931 module_eval(<<'.,.,', 'C_parser.y.rb', 363)
    1932   def _reduce_107(val, _values, result)
     2108# reduce 130 omitted
     2109
     2110module_eval(<<'.,.,', 'C_parser.y.rb', 422)
     2111  def _reduce_131(val, _values, result)
     2112                        val[1].set_qualifier val[0]
     2113                                                result = val[1]
     2114               
     2115    result
     2116  end
     2117.,.,
     2118
     2119module_eval(<<'.,.,', 'C_parser.y.rb', 427)
     2120  def _reduce_132(val, _values, result)
    19332121                        result = CIntType.new( -3 )
    19342122                        result.set_qualifier val[0]
     
    19382126.,.,
    19392127
    1940 module_eval(<<'.,.,', 'C_parser.y.rb', 368)
    1941   def _reduce_108(val, _values, result)
    1942                         val[1].set_qualifier val[0]
    1943                         result = val[1]
    1944                
    1945     result
    1946   end
    1947 .,.,
    1948 
    1949 module_eval(<<'.,.,', 'C_parser.y.rb', 374)
    1950   def _reduce_109(val, _values, result)
     2128module_eval(<<'.,.,', 'C_parser.y.rb', 433)
     2129  def _reduce_133(val, _values, result)
    19512130     result = [ val[0] ]
    19522131    result
     
    19542133.,.,
    19552134
    1956 module_eval(<<'.,.,', 'C_parser.y.rb', 376)
    1957   def _reduce_110(val, _values, result)
     2135module_eval(<<'.,.,', 'C_parser.y.rb', 435)
     2136  def _reduce_134(val, _values, result)
    19582137     result << val[2]
    19592138    result
     
    19612140.,.,
    19622141
    1963 # reduce 111 omitted
    1964 
    1965 # reduce 112 omitted
    1966 
    1967 # reduce 113 omitted
    1968 
    1969 # reduce 114 omitted
    1970 
    1971 # reduce 115 omitted
    1972 
    1973 # reduce 116 omitted
    1974 
    1975 # reduce 117 omitted
    1976 
    1977 # reduce 118 omitted
    1978 
    1979 # reduce 119 omitted
    1980 
    1981 # reduce 120 omitted
    1982 
    1983 # reduce 121 omitted
    1984 
    1985 # reduce 122 omitted
    1986 
    1987 # reduce 123 omitted
    1988 
    1989 # reduce 124 omitted
    1990 
    1991 # reduce 125 omitted
    1992 
    1993 # reduce 126 omitted
    1994 
    1995 module_eval(<<'.,.,', 'C_parser.y.rb', 418)
    1996   def _reduce_127(val, _values, result)
    1997      result = CEnumType.new( -1 )
    1998     result
    1999   end
    2000 .,.,
    2001 
    2002 # reduce 128 omitted
    2003 
    2004 # reduce 129 omitted
    2005 
    2006 # reduce 130 omitted
    2007 
    2008 # reduce 131 omitted
    2009 
    2010 module_eval(<<'.,.,', 'C_parser.y.rb', 434)
    2011   def _reduce_132(val, _values, result)
     2142# reduce 135 omitted
     2143
     2144# reduce 136 omitted
     2145
     2146# reduce 137 omitted
     2147
     2148# reduce 138 omitted
     2149
     2150module_eval(<<'.,.,', 'C_parser.y.rb', 452)
     2151  def _reduce_139(val, _values, result)
     2152     set_no_type_name true
     2153    result
     2154  end
     2155.,.,
     2156
     2157# reduce 140 omitted
     2158
     2159# reduce 141 omitted
     2160
     2161# reduce 142 omitted
     2162
     2163# reduce 143 omitted
     2164
     2165# reduce 144 omitted
     2166
     2167# reduce 145 omitted
     2168
     2169# reduce 146 omitted
     2170
     2171# reduce 147 omitted
     2172
     2173# reduce 148 omitted
     2174
     2175# reduce 149 omitted
     2176
     2177# reduce 150 omitted
     2178
     2179# reduce 151 omitted
     2180
     2181# reduce 152 omitted
     2182
     2183# reduce 153 omitted
     2184
     2185# reduce 154 omitted
     2186
     2187# reduce 155 omitted
     2188
     2189# reduce 156 omitted
     2190
     2191# reduce 157 omitted
     2192
     2193# reduce 158 omitted
     2194
     2195# reduce 159 omitted
     2196
     2197# reduce 160 omitted
     2198
     2199# reduce 161 omitted
     2200
     2201# reduce 162 omitted
     2202
     2203module_eval(<<'.,.,', 'C_parser.y.rb', 495)
     2204  def _reduce_163(val, _values, result)
    20122205     result = :CONST
    20132206    result
     
    20152208.,.,
    20162209
    2017 module_eval(<<'.,.,', 'C_parser.y.rb', 435)
    2018   def _reduce_133(val, _values, result)
     2210# reduce 164 omitted
     2211
     2212module_eval(<<'.,.,', 'C_parser.y.rb', 498)
     2213  def _reduce_165(val, _values, result)
    20192214     result = :VOLATILE
    20202215    result
     
    20222217.,.,
    20232218
    2024 module_eval(<<'.,.,', 'C_parser.y.rb', 440)
    2025   def _reduce_134(val, _values, result)
     2219# reduce 166 omitted
     2220
     2221# reduce 167 omitted
     2222
     2223# reduce 168 omitted
     2224
     2225# reduce 169 omitted
     2226
     2227module_eval(<<'.,.,', 'C_parser.y.rb', 509)
     2228  def _reduce_170(val, _values, result)
    20262229                        val[1].set_type( val[0] )
    20272230                        result = val[1]
     
    20312234.,.,
    20322235
    2033 # reduce 135 omitted
    2034 
    2035 module_eval(<<'.,.,', 'C_parser.y.rb', 446)
    2036   def _reduce_136(val, _values, result)
     2236# reduce 171 omitted
     2237
     2238module_eval(<<'.,.,', 'C_parser.y.rb', 515)
     2239  def _reduce_172(val, _values, result)
    20372240                        result = Decl.new( val[1].val )
    20382241                        result.set_type( val[0] )
     
    20422245.,.,
    20432246
    2044 module_eval(<<'.,.,', 'C_parser.y.rb', 452)
    2045   def _reduce_137(val, _values, result)
     2247module_eval(<<'.,.,', 'C_parser.y.rb', 521)
     2248  def _reduce_173(val, _values, result)
    20462249     result = Decl.new( val[0].val )
    20472250    result
     
    20492252.,.,
    20502253
    2051 module_eval(<<'.,.,', 'C_parser.y.rb', 454)
    2052   def _reduce_138(val, _values, result)
     2254module_eval(<<'.,.,', 'C_parser.y.rb', 523)
     2255  def _reduce_174(val, _values, result)
    20532256     result = val[1]
    20542257    result
     
    20562259.,.,
    20572260
    2058 module_eval(<<'.,.,', 'C_parser.y.rb', 457)
    2059   def _reduce_139(val, _values, result)
     2261module_eval(<<'.,.,', 'C_parser.y.rb', 526)
     2262  def _reduce_175(val, _values, result)
    20602263                        val[0].set_type( CArrayType.new( val[2] ) )
    20612264                        result = val[0]
     
    20652268.,.,
    20662269
    2067 module_eval(<<'.,.,', 'C_parser.y.rb', 462)
    2068   def _reduce_140(val, _values, result)
     2270module_eval(<<'.,.,', 'C_parser.y.rb', 531)
     2271  def _reduce_176(val, _values, result)
    20692272                        val[0].set_type( CArrayType.new )
    20702273                        result = val[0]
     
    20742277.,.,
    20752278
    2076 module_eval(<<'.,.,', 'C_parser.y.rb', 467)
    2077   def _reduce_141(val, _values, result)
     2279module_eval(<<'.,.,', 'C_parser.y.rb', 536)
     2280  def _reduce_177(val, _values, result)
    20782281                #       Generator.warning( "W6001 need 'void' for no parameter"  )
    20792282                        val[0].set_type( CFuncType.new )
     
    20842287.,.,
    20852288
    2086 module_eval(<<'.,.,', 'C_parser.y.rb', 475)
    2087   def _reduce_142(val, _values, result)
     2289# reduce 178 omitted
     2290
     2291module_eval(<<'.,.,', 'C_parser.y.rb', 543)
     2292  def _reduce_179(val, _values, result)
    20882293                #       Generator.warning( "W6002 need 'void' for no parameter"  )
    20892294                        val[0].set_type( CFuncType.new )
     
    20942299.,.,
    20952300
    2096 module_eval(<<'.,.,', 'C_parser.y.rb', 482)
    2097   def _reduce_143(val, _values, result)
     2301module_eval(<<'.,.,', 'C_parser.y.rb', 550)
     2302  def _reduce_180(val, _values, result)
    20982303     result = CPtrType.new
    20992304    result
     
    21012306.,.,
    21022307
    2103 module_eval(<<'.,.,', 'C_parser.y.rb', 485)
    2104   def _reduce_144(val, _values, result)
     2308module_eval(<<'.,.,', 'C_parser.y.rb', 553)
     2309  def _reduce_181(val, _values, result)
    21052310                        result = CPtrType.new
    21062311                        result.set_qualifier( val[1] )
     
    21102315.,.,
    21112316
    2112 module_eval(<<'.,.,', 'C_parser.y.rb', 490)
    2113   def _reduce_145(val, _values, result)
     2317module_eval(<<'.,.,', 'C_parser.y.rb', 558)
     2318  def _reduce_182(val, _values, result)
    21142319                        val[1].set_type(CPtrType.new)
    21152320                        result = val[1]
     
    21192324.,.,
    21202325
    2121 module_eval(<<'.,.,', 'C_parser.y.rb', 495)
    2122   def _reduce_146(val, _values, result)
     2326module_eval(<<'.,.,', 'C_parser.y.rb', 563)
     2327  def _reduce_183(val, _values, result)
    21232328                        ptrtype = CPtrType.new
    21242329                        ptrtype.set_qualifier( val[1] )
     
    21302335.,.,
    21312336
    2132 # reduce 147 omitted
    2133 
    2134 # reduce 148 omitted
    2135 
    2136 # reduce 149 omitted
    2137 
    2138 # reduce 150 omitted
    2139 
    2140 # reduce 151 omitted
    2141 
    2142 # reduce 152 omitted
    2143 
    2144 # reduce 153 omitted
    2145 
    2146 # reduce 154 omitted
    2147 
    2148 # reduce 155 omitted
    2149 
    2150 # reduce 156 omitted
    2151 
    2152 # reduce 157 omitted
    2153 
    2154 # reduce 158 omitted
    2155 
    2156 # reduce 159 omitted
    2157 
    2158 # reduce 160 omitted
    2159 
    2160 # reduce 161 omitted
    2161 
    2162 # reduce 162 omitted
    2163 
    2164 # reduce 163 omitted
    2165 
    2166 module_eval(<<'.,.,', 'C_parser.y.rb', 559)
    2167   def _reduce_164(val, _values, result)
     2337# reduce 184 omitted
     2338
     2339# reduce 185 omitted
     2340
     2341# reduce 186 omitted
     2342
     2343# reduce 187 omitted
     2344
     2345# reduce 188 omitted
     2346
     2347# reduce 189 omitted
     2348
     2349# reduce 190 omitted
     2350
     2351# reduce 191 omitted
     2352
     2353# reduce 192 omitted
     2354
     2355# reduce 193 omitted
     2356
     2357# reduce 194 omitted
     2358
     2359# reduce 195 omitted
     2360
     2361# reduce 196 omitted
     2362
     2363# reduce 197 omitted
     2364
     2365# reduce 198 omitted
     2366
     2367# reduce 199 omitted
     2368
     2369# reduce 200 omitted
     2370
     2371# reduce 201 omitted
     2372
     2373# reduce 202 omitted
     2374
     2375# reduce 203 omitted
     2376
     2377# reduce 204 omitted
     2378
     2379module_eval(<<'.,.,', 'C_parser.y.rb', 630)
     2380  def _reduce_205(val, _values, result)
    21682381                        Generator.warning( "W6003 need 'void' for no parameter"  )
    21692382               
     
    21722385.,.,
    21732386
    2174 # reduce 165 omitted
    2175 
    2176 module_eval(<<'.,.,', 'C_parser.y.rb', 564)
    2177   def _reduce_166(val, _values, result)
     2387# reduce 206 omitted
     2388
     2389module_eval(<<'.,.,', 'C_parser.y.rb', 635)
     2390  def _reduce_207(val, _values, result)
    21782391                        Generator.warning( "W6004 need 'void' for no parameter"  )
    21792392               
     
    21822395.,.,
    21832396
    2184 # reduce 167 omitted
    2185 
    2186 module_eval(<<'.,.,', 'C_parser.y.rb', 571)
    2187   def _reduce_168(val, _values, result)
     2397# reduce 208 omitted
     2398
     2399module_eval(<<'.,.,', 'C_parser.y.rb', 642)
     2400  def _reduce_209(val, _values, result)
    21882401     result = val[0]
    21892402    result
     
    21912404.,.,
    21922405
    2193 module_eval(<<'.,.,', 'C_parser.y.rb', 573)
    2194   def _reduce_169(val, _values, result)
     2406module_eval(<<'.,.,', 'C_parser.y.rb', 644)
     2407  def _reduce_210(val, _values, result)
    21952408     result = val[1]
    21962409    result
     
    21982411.,.,
    21992412
    2200 module_eval(<<'.,.,', 'C_parser.y.rb', 575)
    2201   def _reduce_170(val, _values, result)
     2413module_eval(<<'.,.,', 'C_parser.y.rb', 646)
     2414  def _reduce_211(val, _values, result)
    22022415     result = val[1]
    22032416    result
     
    22052418.,.,
    22062419
    2207 module_eval(<<'.,.,', 'C_parser.y.rb', 577)
    2208   def _reduce_171(val, _values, result)
     2420module_eval(<<'.,.,', 'C_parser.y.rb', 648)
     2421  def _reduce_212(val, _values, result)
    22092422     result = C_EXP.new( val[2] )
    22102423    result
     
    22122425.,.,
    22132426
    2214 module_eval(<<'.,.,', 'C_parser.y.rb', 582)
    2215   def _reduce_172(val, _values, result)
     2427module_eval(<<'.,.,', 'C_parser.y.rb', 653)
     2428  def _reduce_213(val, _values, result)
    22162429                        result = [ val[0] ]
    22172430               
     
    22202433.,.,
    22212434
    2222 module_eval(<<'.,.,', 'C_parser.y.rb', 586)
    2223   def _reduce_173(val, _values, result)
     2435module_eval(<<'.,.,', 'C_parser.y.rb', 657)
     2436  def _reduce_214(val, _values, result)
    22242437                        val[0] << val[2]
    22252438                        result = val[0]
     
    22292442.,.,
    22302443
    2231 # reduce 174 omitted
    2232 
    2233 # reduce 175 omitted
    2234 
    2235 # reduce 176 omitted
    2236 
    2237 # reduce 177 omitted
    2238 
    2239 # reduce 178 omitted
    2240 
    2241 # reduce 179 omitted
    2242 
    2243 # reduce 180 omitted
    2244 
    2245 # reduce 181 omitted
    2246 
    2247 # reduce 182 omitted
    2248 
    2249 # reduce 183 omitted
    2250 
    2251 # reduce 184 omitted
    2252 
    2253 module_eval(<<'.,.,', 'C_parser.y.rb', 614)
    2254   def _reduce_185(val, _values, result)
     2444# reduce 215 omitted
     2445
     2446# reduce 216 omitted
     2447
     2448# reduce 217 omitted
     2449
     2450# reduce 218 omitted
     2451
     2452# reduce 219 omitted
     2453
     2454# reduce 220 omitted
     2455
     2456# reduce 221 omitted
     2457
     2458# reduce 222 omitted
     2459
     2460# reduce 223 omitted
     2461
     2462# reduce 224 omitted
     2463
     2464# reduce 225 omitted
     2465
     2466module_eval(<<'.,.,', 'C_parser.y.rb', 685)
     2467  def _reduce_226(val, _values, result)
    22552468                        val[2].each{ |i|
    22562469                           i.set_kind( :TYPEDEF )
     
    22632476.,.,
    22642477
    2265 module_eval(<<'.,.,', 'C_parser.y.rb', 623)
    2266   def _reduce_186(val, _values, result)
     2478module_eval(<<'.,.,', 'C_parser.y.rb', 694)
     2479  def _reduce_227(val, _values, result)
    22672480     result = [ val[0] ]
    22682481    result
     
    22702483.,.,
    22712484
    2272 module_eval(<<'.,.,', 'C_parser.y.rb', 625)
    2273   def _reduce_187(val, _values, result)
     2485module_eval(<<'.,.,', 'C_parser.y.rb', 696)
     2486  def _reduce_228(val, _values, result)
    22742487     result << val[2]
    22752488    result
     
    22772490.,.,
    22782491
    2279 # reduce 188 omitted
    2280 
    2281 # reduce 189 omitted
    2282 
    2283 # reduce 190 omitted
    2284 
    2285 # reduce 191 omitted
    2286 
    2287 # reduce 192 omitted
    2288 
    2289 # reduce 193 omitted
    2290 
    2291 # reduce 194 omitted
    2292 
    2293 # reduce 195 omitted
    2294 
    2295 # reduce 196 omitted
    2296 
    2297 # reduce 197 omitted
    2298 
    2299 # reduce 198 omitted
    2300 
    2301 # reduce 199 omitted
    2302 
    2303 # reduce 200 omitted
    2304 
    2305 # reduce 201 omitted
    2306 
    2307 # reduce 202 omitted
    2308 
    2309 # reduce 203 omitted
    2310 
    2311 # reduce 204 omitted
    2312 
    2313 # reduce 205 omitted
    2314 
    2315 # reduce 206 omitted
    2316 
    2317 # reduce 207 omitted
    2318 
    2319 # reduce 208 omitted
    2320 
    2321 # reduce 209 omitted
    2322 
    2323 # reduce 210 omitted
    2324 
    2325 # reduce 211 omitted
    2326 
    2327 # reduce 212 omitted
    2328 
    2329 # reduce 213 omitted
    2330 
    2331 # reduce 214 omitted
    2332 
    2333 # reduce 215 omitted
    2334 
    2335 # reduce 216 omitted
    2336 
    2337 # reduce 217 omitted
    2338 
    2339 # reduce 218 omitted
    2340 
    2341 # reduce 219 omitted
    2342 
    2343 # reduce 220 omitted
    2344 
    2345 # reduce 221 omitted
    2346 
    2347 # reduce 222 omitted
    2348 
    2349 # reduce 223 omitted
    2350 
    2351 # reduce 224 omitted
    2352 
    2353 # reduce 225 omitted
    2354 
    2355 # reduce 226 omitted
    2356 
    2357 # reduce 227 omitted
    2358 
    2359 # reduce 228 omitted
    2360 
    23612492# reduce 229 omitted
    23622493
     
    23772508# reduce 237 omitted
    23782509
    2379 module_eval(<<'.,.,', 'C_parser.y.rb', 706)
    2380   def _reduce_238(val, _values, result)
     2510# reduce 238 omitted
     2511
     2512# reduce 239 omitted
     2513
     2514# reduce 240 omitted
     2515
     2516# reduce 241 omitted
     2517
     2518# reduce 242 omitted
     2519
     2520# reduce 243 omitted
     2521
     2522# reduce 244 omitted
     2523
     2524# reduce 245 omitted
     2525
     2526# reduce 246 omitted
     2527
     2528# reduce 247 omitted
     2529
     2530# reduce 248 omitted
     2531
     2532# reduce 249 omitted
     2533
     2534# reduce 250 omitted
     2535
     2536# reduce 251 omitted
     2537
     2538# reduce 252 omitted
     2539
     2540# reduce 253 omitted
     2541
     2542# reduce 254 omitted
     2543
     2544# reduce 255 omitted
     2545
     2546# reduce 256 omitted
     2547
     2548# reduce 257 omitted
     2549
     2550# reduce 258 omitted
     2551
     2552# reduce 259 omitted
     2553
     2554# reduce 260 omitted
     2555
     2556# reduce 261 omitted
     2557
     2558# reduce 262 omitted
     2559
     2560# reduce 263 omitted
     2561
     2562# reduce 264 omitted
     2563
     2564module_eval(<<'.,.,', 'C_parser.y.rb', 761)
     2565  def _reduce_265(val, _values, result)
    23812566     result = NamespacePath.new( val[0].val, false )
    23822567    result
     
    23842569.,.,
    23852570
    2386 module_eval(<<'.,.,', 'C_parser.y.rb', 707)
    2387   def _reduce_239(val, _values, result)
     2571module_eval(<<'.,.,', 'C_parser.y.rb', 762)
     2572  def _reduce_266(val, _values, result)
    23882573     result = NamespacePath.new( val[1].val, true )
    23892574    result
     
    23912576.,.,
    23922577
    2393 module_eval(<<'.,.,', 'C_parser.y.rb', 709)
    2394   def _reduce_240(val, _values, result)
     2578module_eval(<<'.,.,', 'C_parser.y.rb', 764)
     2579  def _reduce_267(val, _values, result)
    23952580     result = val[0].append!( val[2].val )
     2581    result
     2582  end
     2583.,.,
     2584
     2585module_eval(<<'.,.,', 'C_parser.y.rb', 768)
     2586  def _reduce_268(val, _values, result)
     2587                while true
     2588                        # ';' が表れるまで、トークンを読み飛ばす。
     2589                        # gcc の構文拡張に対応すべきだが、単純な実装として、';' まで読み飛ばす。
     2590                        # トークン単位で読み飛ばしているので、文字列やコメント内の ';' は対象にならない。
     2591                        token = next_token
     2592                        if token[1].val == ";"
     2593                                break
     2594                        end
     2595                        # p "skip: #{token[1].val}"
     2596                end
     2597               
    23962598    result
    23972599  end
Note: See TracChangeset for help on using the changeset viewer.