rename locals from type to role in message
This commit is contained in:
@ -115,7 +115,7 @@ module Register
|
||||
def type_names
|
||||
{ :Word => {:char_length => :Integer} ,
|
||||
:List => {:indexed_length => :Integer} ,
|
||||
:Message => { :next_message => :Message, :receiver => :Object, :named_list => :NamedList ,
|
||||
:Message => { :next_message => :Message, :receiver => :Object, :locals => :NamedList ,
|
||||
:return_address => :Integer, :return_value => :Integer,
|
||||
:caller => :Message , :name => :Word , :indexed_length => :Integer },
|
||||
:MetaClass => {:object => :Object},
|
||||
|
@ -99,7 +99,7 @@ module Register
|
||||
|
||||
# if a symbol is given, it may be one of the four objects that the vm knows.
|
||||
# These are mapped to register references.
|
||||
# The valid symbols (:message, :self,:named_list,:new_message) are the same that are returned
|
||||
# The valid symbols (:message, :self,:locals,:new_message) are the same that are returned
|
||||
# by the slots. All data (at any time) is in one of the instance variables of these four
|
||||
# objects. Register defines module methods with the same names (and _reg)
|
||||
def self.resolve_to_register reference
|
||||
|
@ -24,7 +24,7 @@ module Typed
|
||||
return nil unless index
|
||||
# TODO, check type @method.locals[index].type
|
||||
named_list = use_reg(:NamedList)
|
||||
add_code Register.get_slot(statement , :message , :named_list , named_list )
|
||||
add_code Register.get_slot(statement , :message , :locals , named_list )
|
||||
return Register.set_slot(statement , value , named_list , index )
|
||||
end
|
||||
end
|
||||
|
@ -27,7 +27,7 @@ module Typed
|
||||
index = @method.has_local( statement.name )
|
||||
raise "must define variable '#{statement.name}' before using it" unless index
|
||||
named_list = use_reg :NamedList
|
||||
add_code Register.get_slot(statement , :message , :named_list , named_list )
|
||||
add_code Register.get_slot(statement , :message , :locals , named_list )
|
||||
ret = use_reg @method.locals_type( index )
|
||||
add_code Register.get_slot(statement , named_list , index, ret )
|
||||
return ret
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
module Parfait
|
||||
class Message < Object
|
||||
attributes [:next_message , :receiver , :named_list , :return_address ]
|
||||
attributes [:next_message , :receiver , :locals , :return_address ]
|
||||
attributes [:return_value, :caller , :name ]
|
||||
|
||||
include Indexed
|
||||
@ -17,7 +17,7 @@ module Parfait
|
||||
|
||||
def initialize next_m
|
||||
self.next_message = next_m
|
||||
self.named_list = NamedList.new()
|
||||
self.locals = NamedList.new()
|
||||
self.caller = nil
|
||||
super()
|
||||
end
|
||||
|
Reference in New Issue
Block a user