DEADSOFTWARE

Исправлено приведение типа long -> char; Исправлено копирование полей базы расширяемо...
[dsw-obn.git] / Test.obn
index 3c869eab01977277c2f1c68f2cbc88b4f80319ea..3c862c1d5917486426e84aa32439b268bb8baf88 100644 (file)
--- a/Test.obn
+++ b/Test.obn
@@ -1,19 +1,28 @@
 MODULE Test;
 
-IMPORT SYSTEM, Out;
+TYPE
+  Object = RECORD
+    mth : PROCEDURE;
+  END;
 
 VAR
-  i, j : INTEGER;
+  p : PROCEDURE;
+  o, a : Object;
 
-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;
+PROCEDURE X;
+END X;
 
-  ASSERT(SYSTEM.ROT(i, -1) = SYSTEM.ROT(1, -1));
+PROCEDURE Z(VAR g : Object);
+BEGIN
+  g.mth;
+END Z;
 
-  ASSERT(SYSTEM.ROT(i,  1) = SYSTEM.ROT(1,  1));
+BEGIN
+  p := X;
+  ASSERT(p # NIL);
+  o.mth := X;
+  ASSERT(o.mth # NIL);
+  a := o;
+  ASSERT(a.mth # NIL);
+  Z(a);
 END Test.