Mini-OOF2 is very similar to Mini-OOF in many respects, but differs
significantly in a few aspects. In particular, Mini-OOF2 has a current
object variable, and uses the primitives >o and o> to
manipulate that object stack. All method invocations and instance
variable accesses refer to the current object.
Set the current object to c_addr, the previous current object is pushed to the return stack
Restore the previous current object from the return stack
To ease passing an object pointer to method invocation or instance
variable accesses, the additional recognizer rec-moof2 is
activated.
This recognizer recognizes .word (if word is
visible) and the translation is equivalent to >o word
o>.
To assign methods to selectors, use xt class is
selector, so no defines necessary. For early binding of
methods, instead of :: you use defers:
Instead of writing
you can also use the syntactic sugar
define a noname that is assigned to the deferred word name
in class at ;.