27 lines
614 B
Plaintext
27 lines
614 B
Plaintext
MODULE Varargs EXPORTS Main;
|
|
|
|
IMPORT IO, Fmt;
|
|
|
|
VAR
|
|
strings := NEW(REF TEXT);
|
|
ints := NEW(REF INTEGER);
|
|
reals := NEW(REF REAL);
|
|
refarr := ARRAY [1..3] OF REFANY {strings, ints, reals};
|
|
|
|
PROCEDURE Variable(VAR arr: ARRAY OF REFANY) =
|
|
BEGIN
|
|
FOR i := FIRST(arr) TO LAST(arr) DO
|
|
TYPECASE arr[i] OF
|
|
| REF TEXT(n) => IO.Put(n^ & "\n");
|
|
| REF INTEGER(n) => IO.Put(Fmt.Int(n^) & "\n");
|
|
| REF REAL(n) => IO.Put(Fmt.Real(n^) & "\n");
|
|
ELSE (* skip *)
|
|
END;
|
|
END;
|
|
END Variable;
|
|
|
|
BEGIN
|
|
strings^ := "Rosetta"; ints^ := 1; reals^ := 3.1415;
|
|
Variable(refarr);
|
|
END Varargs.
|