MODULE Deep; IMPORT Out; CONST N = 10; Neg = -5; Pi = 3.14159; Hello = 'hi'; TYPE IntArr = ARRAY 10 OF INTEGER; Matrix = ARRAY 2, 3 OF INTEGER; Point = RECORD x, y: INTEGER END; PInt = POINTER TO RECORD v: INTEGER END; Node = POINTER TO NodeDesc; NodeDesc = RECORD key: INTEGER; left, right: Node END; VAR i, j: INTEGER; ch: CHAR; b: BOOLEAN; r: REAL; a: IntArr; pt: Point; p: PInt; t: Node; PROCEDURE Sum(a, b: INTEGER): INTEGER; BEGIN RETURN a + b END Sum; PROCEDURE Fill(VAR a: IntArr; val: INTEGER); VAR k: INTEGER; BEGIN FOR k := 1 TO N DO a[k] := val END END Fill; PROCEDURE (t: Node) Insert(key: INTEGER); BEGIN t.key := key END Insert; BEGIN FOR i := 1 TO N DO a[i] := i END; WHILE i < N DO i := i + 1 END; REPEAT CASE i OF 1: Out.Int(1, 0) | 2, 3: Out.Int(2, 0) ELSE Out.Int(9, 0) END UNTIL i > N; LOOP IF i > N THEN EXIT END; i := i + 1 END; pt.x := Sum(1, 2); NEW(p); p.v := 1; NEW(t); t.Insert(5); WITH p: PInt DO p.v := 2 END; r := 1.5E-3; b := (i = 1) & (j # 2) OR ~b; Fill(a, 0); Out.String('done'); Out.Ln END Deep.