| 123456789101112131415161718192021222324252627282930313233343536 |
- MODULE Showcase10;
- // Step 4.2 tour: nested procedures, static-link display,
- // siblings sharing parent state, nested recursion, up-level
- // writes, calls. Exit 86.
- VAR ExitCode : INTEGER;
- PROCEDURE Calc(base : INTEGER);
- VAR acc : INTEGER;
- PROCEDURE AddN(n : INTEGER);
- BEGIN
- acc := acc + n
- END AddN;
- PROCEDURE Run(k : INTEGER);
- VAR inner : INTEGER;
- PROCEDURE Down(m : INTEGER);
- BEGIN
- IF m <= 0 THEN RETURN END;
- inner := inner + m;
- Down(m - 1)
- END Down;
- BEGIN
- inner := 0;
- Down(k);
- acc := acc + inner
- END Run;
- BEGIN
- acc := base;
- AddN(10);
- Run(4);
- Run(3);
- ExitCode := acc
- END Calc;
- BEGIN
- Calc(60)
- END Showcase10.
|