module Pione::Lang::Callable
Public Instance Methods
call_pione_method(env, name, args)
click to toggle source
Call the pione method.
# File lib/pione/lang/expr.rb, line 51 def call_pione_method(env, name, args) # check arguments raise ArgumentError.new(args) unless args.is_a?(Array) if pione_method = pione_type(env).find_method(env, name, self, args) # evaluate arguments if the method type is immediate if pione_method.method_type == :immediate args = args.map {|arg| arg.eval(env)} end # call it pione_method.call(env, self, args) else raise MethodNotFound.new(env, name, self, args) end end