| 123456789101112131415161718192021 |
- MODULE TConstFold;
- // Named CONST folding in bounds, subranges and expressions. Exit 42.
- CONST
- Base = 4;
- N = Base * 2 - 1; // folds to 7
- Top = N - 2; // folds to 5
- TYPE
- Vec = ARRAY [0 .. N] OF INTEGER;
- Sub = [Base .. Top];
- VAR ExitCode : INTEGER;
- VAR v : Vec;
- VAR s : Sub;
- VAR i, sum : INTEGER;
- BEGIN
- sum := 0;
- FOR i := 0 TO N DO v[i] := i; sum := sum + v[i] END; // 28
- sum := sum + v[Base] + v[Top]; // 4 + 5 = 9
- s := Base + 1; // 5
- sum := sum + s;
- ExitCode := sum // 42
- END TConstFold.
|