| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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.
|