X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=Test.obn;h=3c862c1d5917486426e84aa32439b268bb8baf88;hb=8620d81a0d78c987b250a7a471d76d96af461846;hp=e0445949bf94c9233425839d2dfd602e22e70243;hpb=f4aa48e4c1e3b81ccbe3da5c33fdaba3a46081dd;p=dsw-obn.git diff --git a/Test.obn b/Test.obn index e044594..3c862c1 100644 --- a/Test.obn +++ b/Test.obn @@ -1,23 +1,28 @@ MODULE Test; -IMPORT Out; - TYPE - P1 = POINTER TO R1; - P2 = POINTER TO R2; - P3 = POINTER TO R3; - - R1 = RECORD END; - R2 = RECORD (R1) END; - R3 = RECORD (R2) END; + Object = RECORD + mth : PROCEDURE; + END; VAR - r : P1; + p : PROCEDURE; + o, a : Object; + +PROCEDURE X; +END X; +PROCEDURE Z(VAR g : Object); BEGIN - NEW(r); - Out.Open; - WITH r : P1 DO - Out.String("R1"); Out.Ln; - END; + g.mth; +END Z; + +BEGIN + p := X; + ASSERT(p # NIL); + o.mth := X; + ASSERT(o.mth # NIL); + a := o; + ASSERT(a.mth # NIL); + Z(a); END Test.