DEADSOFTWARE

Исправлены опережающие объявления локальных типов-записей, добавлены модули Oberon...
[dsw-obn.git] / Test.obn
index 3c862c1d5917486426e84aa32439b268bb8baf88..ecfde58b9f0e5fadb5eb6a9a884a62ede7a56351 100644 (file)
--- a/Test.obn
+++ b/Test.obn
@@ -1,28 +1,21 @@
 MODULE Test;
 
 TYPE
-  Object = RECORD
-    mth : PROCEDURE;
-  END;
+  A = POINTER TO RECORD B : B; END;
 
-VAR
-  p : PROCEDURE;
-  o, a : Object;
+  B = POINTER TO RECORD x : A END;
 
-PROCEDURE X;
-END X;
+VAR
+  a : A;
 
-PROCEDURE Z(VAR g : Object);
+PROCEDURE Do;
+  TYPE
+    ListPtr = POINTER TO ListNode;
+    ListNode = RECORD next: ListPtr END;
 BEGIN
-  g.mth;
-END Z;
+END Do;
 
 BEGIN
-  p := X;
-  ASSERT(p # NIL);
-  o.mth := X;
-  ASSERT(o.mth # NIL);
-  a := o;
-  ASSERT(a.mth # NIL);
-  Z(a);
+  NEW(a);
+  a.B := NIL;
 END Test.