just moving code around
This commit is contained in:
@ -6,7 +6,7 @@ module Boot
|
||||
# set/get instance variable use it.
|
||||
# This is just a placeholder, as we code this in ruby, but the instance methods need the definition before.
|
||||
def index_of context , name = Vm::Integer
|
||||
index_function = Vm::Function.new(:index_of , Vm::Integer , [Vm::Integer] , Vm::Integer )
|
||||
index_function = Vm::Function.new(:index_of , Vm::Reference , [Vm::Reference] , Vm::Integer )
|
||||
return index_function
|
||||
end
|
||||
|
||||
@ -21,26 +21,29 @@ module Boot
|
||||
# i = self.index_of(var)
|
||||
# return at_index(i)
|
||||
# end
|
||||
# The at_index is just "below" the api, somehting we need but don't want to expose, so we can't code the above in ruby
|
||||
# The at_index is just "below" the api, something we need but don't want to expose, so we can't code the above in ruby
|
||||
def _get_instance_variable context , name = Vm::Integer
|
||||
get_function = Vm::Function.new(:_get_instance_variable , Vm::Integer , [ Vm::Integer ] , Vm::Integer )
|
||||
get_function = Vm::Function.new(:_get_instance_variable , Vm::Reference , [ Vm::Reference ] , Vm::Mystery )
|
||||
me = get_function.receiver
|
||||
var_name = get_function.args.first
|
||||
return_to = get_function.return_type
|
||||
|
||||
index_function = context.object_space.get_or_create_class(:Object).resolve_function(:index_of)
|
||||
get_function.push( [me] )
|
||||
get_function.call( index_function )
|
||||
after_body = get_function.new_block("after_index")
|
||||
index = get_function.call( index_function )
|
||||
|
||||
after_body = get_function.new_block("after_index")
|
||||
get_function.insert_at after_body
|
||||
|
||||
get_function.pop([me])
|
||||
return_to.at_index( get_function , me , return_to )
|
||||
|
||||
get_function.set_return return_to
|
||||
return get_function
|
||||
end
|
||||
|
||||
def _set_instance_variable(context , name = Vm::Integer , value = Vm::Integer )
|
||||
set_function = Vm::Function.new(:_set_instance_variable , Vm::Integer , [ Vm::Integer , Vm::Integer] , Vm::Integer )
|
||||
set_function = Vm::Function.new(:_set_instance_variable , Vm::Reference ,[Vm::Reference ,Vm::Reference], Vm::Mystery )
|
||||
me = set_function.receiver
|
||||
var_name = set_function.args.first
|
||||
return_to = set_function.return_type
|
||||
|
Reference in New Issue
Block a user