There is a base class (class
, which allocates one cell for the
object pointer) plus seven other words: to define a method, a variable,
a class; to end a class, to resolve binding, to allocate an object and
to compile a class method.
object
( – a-addr ) mini-oof “object”
object is the base class of all objects.
method
( m v "name" – m’ v ) mini-oof “method”
Define a selector.
var
( m v size "name" – m v’ ) mini-oof “var”
Define a variable with size bytes.
class
( class – class selectors vars ) mini-oof “class”
Start the definition of a class.
end-class
( class selectors vars "name" – ) mini-oof “end-class”
End the definition of a class.
defines
( xt class "name" – ) mini-oof “defines”
Bind xt to the selector name in class class.
new
( class – o ) mini-oof “new”
Create a new incarnation of the class class.
::
( class "name" – ) mini-oof “colon-colon”
Compile the method for the selector name of the class class (not immediate!).