kernel functions are not fixed to be Object functions

This commit is contained in:
Torsten Ruger
2014-05-31 16:19:44 +03:00
parent a6f02d6be3
commit cdfc1ac891
3 changed files with 4 additions and 3 deletions

View File

@ -8,6 +8,7 @@ module Ast
end
def compile context , into
params = args.collect{ |a| a.compile(context, into) }
#TOOD, this needs dynamic resolution
function = context.current_class.get_or_create_function(name)
raise "Forward declaration not implemented (#{name}) #{inspect}" if function == nil
call = Vm::CallSite.new( name , params , function)

View File

@ -38,7 +38,7 @@ module Core
context.object_space.add_object buffer # and save it (function local variable: a no no)
int = putint_function.args.first
moved_int = putint_function.new_local
utoa = context.current_class.get_or_create_function(:utoa)
utoa = context.object_space.get_or_create_class(:Object).get_or_create_function(:utoa)
b = putint_function.body
b.mov( moved_int , int ) #move arg up
#b.a buffer => int # string to write to