(* Test: nested procedures and variables *) MODULE Main; <*FATAL ANY*> EXCEPTION E (INTEGER); VAR i: INTEGER; PROCEDURE P (pArg: INTEGER) RAISES ANY = VAR p: INTEGER; PROCEDURE Q (qArg: INTEGER) RAISES ANY = VAR q, x: INTEGER; PROCEDURE R () RAISES ANY = VAR r: INTEGER; BEGIN i := p + qArg + q + r END R; BEGIN x := q + qArg + p; WITH x = x+3 DO qArg := x; END; TRY q := 4; EXCEPT E(x) => q := x; END; R (); END Q; BEGIN Q (pArg); END P; BEGIN P (i); END Main.