t_open2d_adr.mod 475 B

12345678910111213141516171819
  1. MODULE TOpen2DAdr;
  2. (* M4: ADR of a multi-dimensional view/row is its first payload byte. *)
  3. FROM SYSTEM IMPORT ADDRESS, ADR;
  4. TYPE Mat = ARRAY [0..1] OF ARRAY [0..2] OF CHAR;
  5. VAR ExitCode : INTEGER;
  6. m : Mat;
  7. PROCEDURE Check (VAR a : ARRAY OF ARRAY OF CHAR) : BOOLEAN;
  8. VAR p, q, r : ADDRESS;
  9. BEGIN
  10. p := ADR(a);
  11. q := ADR(a[0]);
  12. r := ADR(a[0][0]);
  13. RETURN (p = q) AND (q = r)
  14. END Check;
  15. BEGIN
  16. IF Check(m) THEN ExitCode := 42 ELSE ExitCode := 1 END
  17. END TOpen2DAdr.