Next: , Previous: , Up: Object-oriented Forth   [Contents][Index]


6.24.6 Mini-OOF2

Mini-OOF2 は多くの点で Mini-OOF とよく似ていますが、 いくつかの点で大きく異なります。 特に、 Mini-OOF2 には現在のオブジェクト変数(current object variable)を持ち、 プリミティブの >oo> を使用してそのオブジェクト・スタックを操作します。 すべてのメソッド呼び出しとインスタンス変数へのアクセスは、 現在のオブジェクト(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 が使用され、 :: は必要ありません。