Mini-OOF2 は多くの点で Mini-OOF とよく似ていますが、 いくつかの点で大きく異なります。 特に、 Mini-OOF2
には現在のオブジェクト変数(current object variable)を持ち、 プリミティブの >o
と o>
を使用してそのオブジェクト・スタックを操作します。 すべてのメソッド呼び出しとインスタンス変数へのアクセスは、 現在のオブジェクト(current
object)を参照します。
>o
( c-addr – r:c-old ) new “to-o”
現在のオブジェクト(current object)を c_addr に設定し、 以前の現在のオブジェクトをリターン・スタックにプッシュします。
o>
( r:c-addr – ) new “o-restore”
リターン・スタックから以前の現在のオブジェクト(current object)を復元します
メソッド呼び出しまたはインスタンス変数アクセスへのオブジェクト・ポインターの受け渡しを容易にするために、 追加の認識器(recognizer)
rec-moof2
がアクティブ化されます。
rec-moof2
( addr u – xt translate-moof2 | notfound ) mini-oof2 “rec-moof2”
この認識器は非常に単純なドット・パーサ(dot-parser)で、 .SELECTOR
や .IVAR
を >o
SELECTOR o>
や >o IVAR o>
に変換します。
セレクターにメソッドを割り当てるには、 xt class is
selector を使用するため、
defines
は必要ありません。 メソッドの早期結び付け(early binding)には、 [
class
] defers
selector が使用され、 ::
は必要ありません。