| 123456789101112131415161718192021 |
- MODULE TOpenRowTo1D;
- (* M3: a row subview of an open 2-D array passed to a 1-D open VAR
- formal; writes must reach the original row. *)
- TYPE Mat = ARRAY [0..1], [0..2] OF INTEGER;
- VAR ExitCode : INTEGER;
- m : Mat;
- PROCEDURE SetRow (VAR r : ARRAY OF INTEGER);
- BEGIN
- r[2] := 42
- END SetRow;
- PROCEDURE Outer (VAR a : ARRAY OF ARRAY OF INTEGER);
- BEGIN
- SetRow(a[0])
- END Outer;
- BEGIN
- Outer(m);
- IF m[0, 2] = 42 THEN ExitCode := 42 ELSE ExitCode := 1 END
- END TOpenRowTo1D.
|