class Sol::CallNode

Node of a method call or local variable access, can take any of these forms:

method # this form can also be a local variable
method(argument1, argument2)
receiver.method
receiver.method(argument1, argument2)

Public Instance Methods

eval(context) click to toggle source
# File lib/sol/interpreter.rb, line 97
def eval(context)

        if receiver.nil? && arguments.empty? && RuntimeModel::Runtime.locals[method]

                return context::Runtime.locals[method]

        else

                if receiver

                        value = receiver.eval(context)

                else

                        value = RuntimeModel::Runtime.current_self # I think this works

                end

                eval_arguments = arguments.map do |arg| 

                        arg.eval(context) 

                end

                value.call(method, eval_arguments)

        end

end