racc (1.4.5-1) packages/racc/test/tab/echk

Summary

 packages/racc/test/tab/echk |  719 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 719 insertions(+)

    
download this patch

Patch contents

--- racc-1.4.5.orig/packages/racc/test/tab/echk
+++ racc-1.4.5/packages/racc/test/tab/echk
@@ -0,0 +1,719 @@
+#
+# DO NOT MODIFY!!!!
+# This file is automatically generated by racc 1.4.5
+# from racc grammer file "echk.y".
+#
+#
+# tab/echk: generated by racc (runtime embedded)
+#
+###### racc/parser.rb begin
+unless $".index 'racc/parser.rb'
+$".push 'racc/parser.rb'
+
+self.class.module_eval <<'..end racc/parser.rb modeval..id5db150e8b4', 'racc/parser.rb', 1
+#
+# $Id: parser.rb,v 1.7 2005/11/20 17:31:32 aamine Exp $
+#
+# Copyright (c) 1999-2005 Minero Aoki
+#
+# This program is free software.
+# You can distribute/modify this program under the same terms of ruby.
+#
+# As a special exception, when this code is copied by Racc
+# into a Racc output file, you may use that output file
+# without restriction.
+#
+
+unless defined?(NotImplementedError)
+  NotImplementedError = NotImplementError
+end
+
+module Racc
+  class ParseError < StandardError; end
+end
+unless defined?(::ParseError)
+  ParseError = Racc::ParseError
+end
+
+module Racc
+
+  unless defined?(Racc_No_Extentions)
+    Racc_No_Extentions = false
+  end
+
+  class Parser
+
+    Racc_Runtime_Version = '1.4.5'
+    Racc_Runtime_Revision = '$Revision: 1.7 $'.split[1]
+
+    Racc_Runtime_Core_Version_R = '1.4.5'
+    Racc_Runtime_Core_Revision_R = '$Revision: 1.7 $'.split[1]
+    begin
+      require 'racc/cparse'
+    # Racc_Runtime_Core_Version_C  = (defined in extention)
+      Racc_Runtime_Core_Revision_C = Racc_Runtime_Core_Id_C.split[2]
+      unless new.respond_to?(:_racc_do_parse_c, true)
+        raise LoadError, 'old cparse.so'
+      end
+      if Racc_No_Extentions
+        raise LoadError, 'selecting ruby version of racc runtime core'
+      end
+
+      Racc_Main_Parsing_Routine    = :_racc_do_parse_c
+      Racc_YY_Parse_Method         = :_racc_yyparse_c
+      Racc_Runtime_Core_Version    = Racc_Runtime_Core_Version_C
+      Racc_Runtime_Core_Revision   = Racc_Runtime_Core_Revision_C
+      Racc_Runtime_Type            = 'c'
+    rescue LoadError
+      Racc_Main_Parsing_Routine    = :_racc_do_parse_rb
+      Racc_YY_Parse_Method         = :_racc_yyparse_rb
+      Racc_Runtime_Core_Version    = Racc_Runtime_Core_Version_R
+      Racc_Runtime_Core_Revision   = Racc_Runtime_Core_Revision_R
+      Racc_Runtime_Type            = 'ruby'
+    end
+
+    def Parser.racc_runtime_type
+      Racc_Runtime_Type
+    end
+
+    private
+
+    def _racc_setup
+      @yydebug = false unless self.class::Racc_debug_parser
+      @yydebug = false unless defined?(@yydebug)
+      if @yydebug
+        @racc_debug_out = $stderr unless defined?(@racc_debug_out)
+        @racc_debug_out ||= $stderr
+      end
+      arg = self.class::Racc_arg
+      arg[13] = true if arg.size < 14
+      arg
+    end
+
+    def _racc_init_sysvars
+      @racc_state  = [0]
+      @racc_tstack = []
+      @racc_vstack = []
+
+      @racc_t = nil
+      @racc_val = nil
+
+      @racc_read_next = true
+
+      @racc_user_yyerror = false
+      @racc_error_status = 0
+    end
+
+    ###
+    ### do_parse
+    ###
+
+    def do_parse
+      __send__(Racc_Main_Parsing_Routine, _racc_setup(), false)
+    end
+
+    def next_token
+      raise NotImplementedError, "#{self.class}\#next_token is not defined"
+    end
+
+    def _racc_do_parse_rb(arg, in_debug)
+      action_table, action_check, action_default, action_pointer,
+      goto_table,   goto_check,   goto_default,   goto_pointer,
+      nt_base,      reduce_table, token_table,    shift_n,
+      reduce_n,     use_result,   * = arg
+
+      _racc_init_sysvars
+      tok = act = i = nil
+      nerr = 0
+
+      catch(:racc_end_parse) {
+        while true
+          if i = action_pointer[@racc_state[-1]]
+            if @racc_read_next
+              if @racc_t != 0   # not EOF
+                tok, @racc_val = next_token()
+                unless tok      # EOF
+                  @racc_t = 0
+                else
+                  @racc_t = (token_table[tok] or 1)   # error token
+                end
+                racc_read_token(@racc_t, tok, @racc_val) if @yydebug
+                @racc_read_next = false
+              end
+            end
+            i += @racc_t
+            unless i >= 0 and
+                   act = action_table[i] and
+                   action_check[i] == @racc_state[-1]
+              act = action_default[@racc_state[-1]]
+            end
+          else
+            act = action_default[@racc_state[-1]]
+          end
+          while act = _racc_evalact(act, arg)
+            ;
+          end
+        end
+      }
+    end
+
+    ###
+    ### yyparse
+    ###
+
+    def yyparse(recv, mid)
+      __send__(Racc_YY_Parse_Method, recv, mid, _racc_setup(), true)
+    end
+
+    def _racc_yyparse_rb(recv, mid, arg, c_debug)
+      action_table, action_check, action_default, action_pointer,
+      goto_table,   goto_check,   goto_default,   goto_pointer,
+      nt_base,      reduce_table, token_table,    shift_n,
+      reduce_n,     use_result,   * = arg
+
+      _racc_init_sysvars
+      tok = nil
+      act = nil
+      i = nil
+      nerr = 0
+
+      catch(:racc_end_parse) {
+        until i = action_pointer[@racc_state[-1]]
+          while act = _racc_evalact(action_default[@racc_state[-1]], arg)
+            ;
+          end
+        end
+        recv.__send__(mid) do |tok, val|
+          unless tok
+            @racc_t = 0
+          else
+            @racc_t = (token_table[tok] or 1)   # error token
+          end
+          @racc_val = val
+          @racc_read_next = false
+
+          i += @racc_t
+          unless i >= 0 and
+                 act = action_table[i] and
+                 action_check[i] == @racc_state[-1]
+            act = action_default[@racc_state[-1]]
+          end
+          while act = _racc_evalact(act, arg)
+            ;
+          end
+
+          while not (i = action_pointer[@racc_state[-1]]) or
+                not @racc_read_next or
+                @racc_t == 0   # $
+            unless i and i += @racc_t and
+                   i >= 0 and
+                   act = action_table[i] and
+                   action_check[i] == @racc_state[-1]
+              act = action_default[@racc_state[-1]]
+            end
+            while act = _racc_evalact(act, arg)
+              ;
+            end
+          end
+        end
+      }
+    end
+
+    ###
+    ### common
+    ###
+
+    def _racc_evalact(act, arg)
+      action_table, action_check, action_default, action_pointer,
+      goto_table,   goto_check,   goto_default,   goto_pointer,
+      nt_base,      reduce_table, token_table,    shift_n,
+      reduce_n,     use_result,   * = arg
+      nerr = 0   # tmp
+
+      if act > 0 and act < shift_n
+        #
+        # shift
+        #
+        if @racc_error_status > 0
+          @racc_error_status -= 1 unless @racc_t == 1   # error token
+        end
+        @racc_vstack.push @racc_val
+        @racc_state.push act
+        @racc_read_next = true
+        if @yydebug
+          @racc_tstack.push @racc_t
+          racc_shift @racc_t, @racc_tstack, @racc_vstack
+        end
+
+      elsif act < 0 and act > -reduce_n
+        #
+        # reduce
+        #
+        code = catch(:racc_jump) {
+          @racc_state.push _racc_do_reduce(arg, act)
+          false
+        }
+        if code
+          case code
+          when 1 # yyerror
+            @racc_user_yyerror = true   # user_yyerror
+            return -reduce_n
+          when 2 # yyaccept
+            return shift_n
+          else
+            raise '[Racc Bug] unknown jump code'
+          end
+        end
+
+      elsif act == shift_n
+        #
+        # accept
+        #
+        racc_accept if @yydebug
+        throw :racc_end_parse, @racc_vstack[0]
+
+      elsif act == -reduce_n
+        #
+        # error
+        #
+        case @racc_error_status
+        when 0
+          unless arg[21]    # user_yyerror
+            nerr += 1
+            on_error @racc_t, @racc_val, @racc_vstack
+          end
+        when 3
+          if @racc_t == 0   # is $
+            throw :racc_end_parse, nil
+          end
+          @racc_read_next = true
+        end
+        @racc_user_yyerror = false
+        @racc_error_status = 3
+        while true
+          if i = action_pointer[@racc_state[-1]]
+            i += 1   # error token
+            if  i >= 0 and
+                (act = action_table[i]) and
+                action_check[i] == @racc_state[-1]
+              break
+            end
+          end
+          throw :racc_end_parse, nil if @racc_state.size <= 1
+          @racc_state.pop
+          @racc_vstack.pop
+          if @yydebug
+            @racc_tstack.pop
+            racc_e_pop @racc_state, @racc_tstack, @racc_vstack
+          end
+        end
+        return act
+
+      else
+        raise "[Racc Bug] unknown action #{act.inspect}"
+      end
+
+      racc_next_state(@racc_state[-1], @racc_state) if @yydebug
+
+      nil
+    end
+
+    def _racc_do_reduce(arg, act)
+      action_table, action_check, action_default, action_pointer,
+      goto_table,   goto_check,   goto_default,   goto_pointer,
+      nt_base,      reduce_table, token_table,    shift_n,
+      reduce_n,     use_result,   * = arg
+      state = @racc_state
+      vstack = @racc_vstack
+      tstack = @racc_tstack
+
+      i = act * -3
+      len       = reduce_table[i]
+      reduce_to = reduce_table[i+1]
+      method_id = reduce_table[i+2]
+      void_array = []
+
+      tmp_t = tstack[-len, len] if @yydebug
+      tmp_v = vstack[-len, len]
+      tstack[-len, len] = void_array if @yydebug
+      vstack[-len, len] = void_array
+      state[-len, len]  = void_array
+
+      # tstack must be updated AFTER method call
+      if use_result
+        vstack.push __send__(method_id, tmp_v, vstack, tmp_v[0])
+      else
+        vstack.push __send__(method_id, tmp_v, vstack)
+      end
+      tstack.push reduce_to
+
+      racc_reduce(tmp_t, reduce_to, tstack, vstack) if @yydebug
+
+      k1 = reduce_to - nt_base
+      if i = goto_pointer[k1]
+        i += state[-1]
+        if i >= 0 and (curstate = goto_table[i]) and goto_check[i] == k1
+          return curstate
+        end
+      end
+      goto_default[k1]
+    end
+
+    def on_error(t, val, vstack)
+      raise ParseError, sprintf("\nparse error on value %s (%s)",
+                                val.inspect, token_to_str(t) || '?')
+    end
+
+    def yyerror
+      throw :racc_jump, 1
+    end
+
+    def yyaccept
+      throw :racc_jump, 2
+    end
+
+    def yyerrok
+      @racc_error_status = 0
+    end
+
+    #
+    # for debugging output
+    #
+
+    def racc_read_token(t, tok, val)
+      @racc_debug_out.print 'read    '
+      @racc_debug_out.print tok.inspect, '(', racc_token2str(t), ') '
+      @racc_debug_out.puts val.inspect
+      @racc_debug_out.puts
+    end
+
+    def racc_shift(tok, tstack, vstack)
+      @racc_debug_out.puts "shift   #{racc_token2str tok}"
+      racc_print_stacks tstack, vstack
+      @racc_debug_out.puts
+    end
+
+    def racc_reduce(toks, sim, tstack, vstack)
+      out = @racc_debug_out
+      out.print 'reduce '
+      if toks.empty?
+        out.print ' <none>'
+      else
+        toks.each {|t| out.print ' ', racc_token2str(t) }
+      end
+      out.puts " --> #{racc_token2str(sim)}"
+          
+      racc_print_stacks tstack, vstack
+      @racc_debug_out.puts
+    end
+
+    def racc_accept
+      @racc_debug_out.puts 'accept'
+      @racc_debug_out.puts
+    end
+
+    def racc_e_pop(state, tstack, vstack)
+      @racc_debug_out.puts 'error recovering mode: pop token'
+      racc_print_states state
+      racc_print_stacks tstack, vstack
+      @racc_debug_out.puts
+    end
+
+    def racc_next_state(curstate, state)
+      @racc_debug_out.puts  "goto    #{curstate}"
+      racc_print_states state
+      @racc_debug_out.puts
+    end
+
+    def racc_print_stacks(t, v)
+      out = @racc_debug_out
+      out.print '        ['
+      t.each_index do |i|
+        out.print ' (', racc_token2str(t[i]), ' ', v[i].inspect, ')'
+      end
+      out.puts ' ]'
+    end
+
+    def racc_print_states(s)
+      out = @racc_debug_out
+      out.print '        ['
+      s.each {|st| out.print ' ', st }
+      out.puts ' ]'
+    end
+
+    def racc_token2str(tok)
+      self.class::Racc_token_to_s_table[tok] or
+          raise "[Racc Bug] can't convert token #{tok} to string"
+    end
+
+    def token_to_str(t)
+      self.class::Racc_token_to_s_table[t]
+    end
+
+  end
+
+end
+..end racc/parser.rb modeval..id5db150e8b4
+end
+###### racc/parser.rb end
+
+
+
+class Number ; end
+
+
+class Calcp < Racc::Parser
+
+module_eval <<'..end echk.y modeval..ide00d859563', 'echk.y', 40
+
+  def parse( src )
+    @src = src
+    do_parse
+  end
+
+  def next_token
+    @src.shift
+  end
+
+  def initialize
+    @yydebug = true
+  end
+
+..end echk.y modeval..ide00d859563
+
+##### racc 1.4.5 generates ###
+
+racc_reduce_table = [
+ 0, 0, :racc_error,
+ 1, 10, :_reduce_none,
+ 0, 10, :_reduce_2,
+ 3, 11, :_reduce_3,
+ 3, 11, :_reduce_4,
+ 3, 11, :_reduce_5,
+ 3, 11, :_reduce_6,
+ 0, 12, :_reduce_7,
+ 4, 11, :_reduce_8,
+ 2, 11, :_reduce_9,
+ 1, 11, :_reduce_none ]
+
+racc_reduce_n = 11
+
+racc_shift_n = 20
+
+racc_action_table = [
+     6,     7,     8,     9,     6,     7,    19,     6,     7,     8,
+     9,     2,     3,     4,     2,     3,     4,     2,     3,     4,
+     2,     3,     4,     2,     3,     4,     2,     3,     4,     6,
+     7,    10,    18,    12 ]
+
+racc_action_check = [
+    17,    17,    17,    17,    15,    15,    17,     1,     1,     1,
+     1,     8,     8,     8,     0,     0,     0,     6,     6,     6,
+     7,     7,     7,     9,     9,     9,    11,    11,    11,    16,
+    16,     2,    12,     5 ]
+
+racc_action_pointer = [
+     9,     5,    25,   nil,   nil,    33,    12,    15,     6,    18,
+   nil,    21,    32,   nil,   nil,     2,    27,    -2,   nil,   nil ]
+
+racc_action_default = [
+    -2,    -1,   -11,   -10,    -7,   -11,   -11,   -11,   -11,   -11,
+    -9,   -11,   -11,    -5,    -6,    -3,    -4,   -11,    20,    -8 ]
+
+racc_goto_table = [
+     1,     5,    11,   nil,   nil,   nil,    13,    14,    15,    16,
+   nil,    17 ]
+
+racc_goto_check = [
+     2,     1,     3,   nil,   nil,   nil,     2,     2,     2,     2,
+   nil,     2 ]
+
+racc_goto_pointer = [
+   nil,     1,     0,    -2 ]
+
+racc_goto_default = [
+   nil,   nil,   nil,   nil ]
+
+racc_token_table = {
+ false => 0,
+ Object.new => 1,
+ "*" => 2,
+ "/" => 3,
+ "+" => 4,
+ "-" => 5,
+ Number => 6,
+ "(" => 7,
+ ")" => 8 }
+
+racc_use_result_var = true
+
+racc_nt_base = 9
+
+Racc_arg = [
+ racc_action_table,
+ racc_action_check,
+ racc_action_default,
+ racc_action_pointer,
+ racc_goto_table,
+ racc_goto_check,
+ racc_goto_default,
+ racc_goto_pointer,
+ racc_nt_base,
+ racc_reduce_table,
+ racc_token_table,
+ racc_shift_n,
+ racc_reduce_n,
+ racc_use_result_var ]
+
+Racc_token_to_s_table = [
+'$end',
+'error',
+'"*"',
+'"/"',
+'"+"',
+'"-"',
+'NUMBER',
+'"("',
+'")"',
+'$start',
+'target',
+'exp',
+'@1']
+
+Racc_debug_parser = false
+
+##### racc system variables end #####
+
+ # reduce 0 omitted
+
+ # reduce 1 omitted
+
+module_eval <<'.,.,', 'echk.y', 17
+  def _reduce_2( val, _values, result )
+ result = 0
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'echk.y', 19
+  def _reduce_3( val, _values, result )
+ result += val[2]; a = 'plus'
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'echk.y', 20
+  def _reduce_4( val, _values, result )
+ result -= val[2]; "string test"
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'echk.y', 21
+  def _reduce_5( val, _values, result )
+ result *= val[2]
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'echk.y', 22
+  def _reduce_6( val, _values, result )
+ result /= val[2]
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'echk.y', 23
+  def _reduce_7( val, _values, result )
+ $emb = true
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'echk.y', 28
+  def _reduce_8( val, _values, result )
+               raise 'must not happen' unless $emb
+               result = val[2]
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'echk.y', 28
+  def _reduce_9( val, _values, result )
+ result = -val[1]
+   result
+  end
+.,.,
+
+ # reduce 10 omitted
+
+ def _reduce_none( val, _values, result )
+  result
+ end
+
+end   # class Calcp
+
+
+$parser = Calcp.new
+$tidx = 1
+
+def chk( src, ans )
+  ret = $parser.parse( src )
+  unless ret == ans then
+    bug! "test #{$tidx} fail"
+  end
+  $tidx += 1
+end
+
+chk(
+  [ [Number, 9],
+    [false, false],
+    [false, false] ], 9
+)
+
+chk(
+  [ [Number, 5],
+    ['*', nil],
+    [Number, 1],
+    ['-', nil],
+    [Number, 1],
+    ['*', nil],
+    [Number, 8],
+    [false, false],
+    [false, false] ], -3
+)
+
+chk(
+  [ [Number, 5],
+    ['+', nil],
+    [Number, 2],
+    ['-', nil],
+    [Number, 5],
+    ['+', nil],
+    [Number, 2],
+    ['-', nil],
+    [Number, 5],
+    [false, false],
+    [false, false] ], -1
+)
+
+chk(
+  [ ['-', nil],
+    [Number, 4],
+    [false, false],
+    [false, false] ], -4
+)
+
+chk(
+  [ [Number, 7],
+    ['*', nil],
+    ['(', nil],
+    [Number, 4],
+    ['+', nil],
+    [Number, 3],
+    [')', nil],
+    ['-', nil],
+    [Number, 9],
+    [false, false],
+    [false, false] ], 40
+)