5ce7b6c7c9
The constants were bad enough, but they were also at the wrong level Now register level is defining mappings from symbol names to indexes, by using the layout
38 lines
971 B
Ruby
38 lines
971 B
Ruby
module Virtual
|
|
|
|
# The next Message is one of four objects the virtual machine knows
|
|
#
|
|
# Slots represent instance variables of objects, so NextMessageSlots
|
|
# represent instance variables of NextMessage objects.
|
|
# The Message has a layout as per the constant above
|
|
|
|
class NextMessageSlot < Slot
|
|
def initialize type = Unknown, value = nil
|
|
super( type , value )
|
|
end
|
|
end
|
|
|
|
# named classes exist for slots that often accessed
|
|
|
|
# NextReturn is the return of NextMessageSlot
|
|
class NextReturn < NextMessageSlot
|
|
def initialize type = Unknown, value = nil
|
|
super( type , value )
|
|
end
|
|
end
|
|
|
|
# NextSelf is the self of NextMessageSlot
|
|
class NextSelf < NextMessageSlot
|
|
def initialize type = Unknown, value = nil
|
|
super( type , value )
|
|
end
|
|
end
|
|
|
|
# NextMessageName of the next message
|
|
class NextMessageName < NextMessageSlot
|
|
def initialize type = Unknown, value = nil
|
|
super( type , value )
|
|
end
|
|
end
|
|
end
|