Sha256: c7a56c55ec2dcb3d9d9a5ea0a19c02b1e7f09ec2f923b6de4ba47f8b644e406b

Contents?: true

Size: 652 Bytes

Versions: 12

Compression:

Stored size: 652 Bytes

Contents

module Nydp
  class Closure
    attr_accessor :ifn, :context

    def initialize ifn, context
      @ifn, @context = ifn, context
    end

    def invoke_1 vm
      ifn.invoke_1 vm, context
    end

    def invoke_2 vm, arg
      ifn.invoke_2 vm, context, arg
    end

    def invoke_3 vm, arg_0, arg_1
      ifn.invoke_3 vm, context, arg_0, arg_1
    end

    def invoke_4 vm, arg_0, arg_1, arg_2
      ifn.invoke_4 vm, context, arg_0, arg_1, arg_2
    end

    def invoke vm, arg_values
      ifn.invoke vm, context, arg_values
    end

    def nydp_type ; "fn" ; end
    def to_s
      "(closure #{context.inspect} : #{ifn.to_s})"
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
nydp-0.2.3 lib/nydp/closure.rb
nydp-0.2.2 lib/nydp/closure.rb
nydp-0.2.1 lib/nydp/closure.rb
nydp-0.2.0 lib/nydp/closure.rb
nydp-0.1.15 lib/nydp/closure.rb
nydp-0.1.14 lib/nydp/closure.rb
nydp-0.1.13.2 lib/nydp/closure.rb
nydp-0.1.13.1 lib/nydp/closure.rb
nydp-0.1.13 lib/nydp/closure.rb
nydp-0.1.12 lib/nydp/closure.rb
nydp-0.1.11 lib/nydp/closure.rb
nydp-0.1.10 lib/nydp/closure.rb