UNSAFE MODULE Main; IMPORT Text; TYPE Array = ARRAY [0..4] OF INTEGER; Record = RECORD x, y: INTEGER END; PROCEDURE T_Int (name: TEXT; x: INTEGER) = BEGIN EVAL name; EVAL x; END T_Int; PROCEDURE T_Refany (name: TEXT; READONLY x: REFANY) = BEGIN EVAL name; EVAL x; END T_Refany; PROCEDURE T_Text (name: TEXT; READONLY x: TEXT) = BEGIN EVAL name; EVAL x; END T_Text; PROCEDURE T_Array (name: TEXT; VAR x: Array) = BEGIN EVAL name; EVAL x[0]; END T_Array; PROCEDURE T_Record (name: TEXT; READONLY x: Record) = BEGIN EVAL name; EVAL x.x; END T_Record; PROCEDURE Proc (formal: INTEGER <*TRACE T_Int*>) = VAR i: INTEGER <*TRACE T_Int*>; VAR r: REFANY <*TRACE T_Refany*>; VAR a: Array <*TRACE T_Array*>; VAR z: Record <*TRACE T_Record*>; VAR j: INTEGER; PROCEDURE Nested (VAR z: INTEGER <*TRACE T_Int*>) = BEGIN INC (z); INC (i); INC (formal); END Nested; BEGIN <*TRACE INC(j) *> INC (formal); FOR j <*TRACE T_Int*> := 0 TO 9 DO i := j; END; WITH x <*TRACE T_Int*> = i DO x := 22; i := 33; END; TYPECASE r OF | NULL (n) => EVAL n; | TEXT (t <*TRACE T_Text*>) => EVAL t; ELSE END; TRY i := 5; EXCEPT Error (f <*TRACE T_Int*>) => EVAL f; END; LOOPHOLE (i, ADDRESS) := NIL; a[i] := 5; SUBARRAY (a, 0, 2) := SUBARRAY (a, 1, 3); z.x := 5; z.y := z.x; EVAL BITSIZE (Record); EVAL Text.Length ("foo"); EVAL Nested; END Proc; VAR i: INTEGER <*TRACE T_Int*>; VAR r: REFANY <*TRACE T_Refany*>; VAR a: Array <*TRACE T_Array*>; VAR z: Record <*TRACE T_Record*>; VAR j: INTEGER; EXCEPTION Error (INTEGER); BEGIN <*TRACE INC(j) *> FOR j <*TRACE T_Int*> := 0 TO 9 DO i := j; END; WITH x <*TRACE T_Int*> = i DO x := 22; i := 33; END; TYPECASE r OF | NULL (n) => EVAL n; | TEXT (t <*TRACE T_Text*>) => EVAL t; ELSE END; TRY i := 5; EXCEPT Error (f <*TRACE T_Int*>) => EVAL f; END; LOOPHOLE (i, ADDRESS) := NIL; a[i] := 5; SUBARRAY (a, 0, 2) := SUBARRAY (a, 1, 3); z.x := 5; z.y := z.x; EVAL BITSIZE (Record); EVAL Text.Length ("foo"); EVAL Proc; END Main.