DEADSOFTWARE

Исправлены опережающие объявления локальных типов-записей, добавлены модули Oberon...
[dsw-obn.git] / Test.obn
index 3c869eab01977277c2f1c68f2cbc88b4f80319ea..ecfde58b9f0e5fadb5eb6a9a884a62ede7a56351 100644 (file)
--- a/Test.obn
+++ b/Test.obn
@@ -1,19 +1,21 @@
 MODULE Test;
 
-IMPORT SYSTEM, Out;
+TYPE
+  A = POINTER TO RECORD B : B; END;
+
+  B = POINTER TO RECORD x : A END;
 
 VAR
-  i, j : INTEGER;
+  a : A;
 
+PROCEDURE Do;
+  TYPE
+    ListPtr = POINTER TO ListNode;
+    ListNode = RECORD next: ListPtr END;
 BEGIN
-  i := 1;
-  j := -32;
-  Out.Int(SYSTEM.ROT(i, -1), 0); Out.String(" = "); Out.Int(SYSTEM.ROT(1, -1), 0); Out.Ln;
-  Out.Int(SYSTEM.ROT(i, 1), 0); Out.String(" = "); Out.Int(SYSTEM.ROT(1, 1), 0); Out.Ln;
-  Out.Int(SYSTEM.ROT(j, -1), 0); Out.String(" = "); Out.Int(SYSTEM.ROT(-32, -1), 0); Out.Ln;
-  Out.Int(SYSTEM.ROT(j, 1), 0); Out.String(" = "); Out.Int(SYSTEM.ROT(-32, 1), 0); Out.Ln;
-
-  ASSERT(SYSTEM.ROT(i, -1) = SYSTEM.ROT(1, -1));
+END Do;
 
-  ASSERT(SYSTEM.ROT(i,  1) = SYSTEM.ROT(1,  1));
+BEGIN
+  NEW(a);
+  a.B := NIL;
 END Test.