120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
# File 'lib/hivemind/vm.rb', line 120
def run(env)
if !@function.is_a?(Attribute)
function = @function.run(env)
env.current_self.call(function, @args.map { |arg| arg.run(env) }, env)
elsif @function.label.value != :new
obj = @function.object.run(env)
function = obj.klass.dispatch_method(@function.label.value)
obj.call(function, @args.map { |arg| arg.run(env) }, env)
else
obj = @function.object.run(env)
function == obj.dispatch_method(:init)
obj.call(function, @args.map { |arg| arg.run(env) }, env)
end
end
|