issue with declaration statement
variable declaration statement allows to refer to the same (not yet initialized) variable
MODULE Test3;
VAR a := 100, b := 200: INTEGER;
PROCEDURE A;
VAR a := a + 1: INTEGER; (*! forbidden *)
BEGIN
TRACE(a);
END A;
PROCEDURE B;
BEGIN
VAR b := b + 1: INTEGER; (*! compiled *)
TRACE(b);
END B;
END Test3.