class EleetScript::CallNode
Public Instance Methods
eval(context)
click to toggle source
# File lib/lang/interpreter.rb, line 308 def eval(context) value = if receiver receiver.eval(context) else context.current_self end evaled_args = arguments.map { |a| a.eval(context) } evaled_args << lambda.eval(context) if lambda value.call(method_name, evaled_args) end
to_s(level = 0)
click to toggle source
# File lib/lang/nodes.rb, line 77 def to_s(level = 0) tabs = spaces(level) str = "#{tabs}<EleetScript::CallNode\n" if receiver.nil? str += "#{tabs} @receiver=nil\n" else str += "#{tabs} @receiver=#{receiver.to_s[0..-2]}\n" end str += "#{tabs} @method_name=#{method_name}\n" if arguments.empty? str += "#{tabs} @arguemtns=empty\n" else str += "#{tabs} @arguments=(\n" arguments.each do |arg| str += arg.to_s(level + 2) end str += "#{tabs} )\n" end if lambda.nil? str + "#{tabs} @lambda=nil\n>\n" else str += "#{tabs} @lambda=(\n" str += lambda.to_s(level + 2) end str + "#{tabs}>\n" end