t_nested.mod 441 B

1234567891011121314151617181920
  1. MODULE TNested;
  2. // Wirth-style local module: EXPORT list, a BEGIN init body, and use
  3. // of an exported variable and procedure from the enclosing scope.
  4. // Exit 42.
  5. VAR ExitCode : INTEGER;
  6. MODULE Inner;
  7. EXPORT y, SetY;
  8. VAR y : INTEGER;
  9. PROCEDURE SetY (v : INTEGER);
  10. BEGIN y := v END SetY;
  11. BEGIN
  12. y := 2
  13. END Inner;
  14. BEGIN
  15. ExitCode := y; // 2 (Inner's init ran)
  16. SetY(40);
  17. ExitCode := ExitCode + y // 2 + 40 = 42
  18. END TNested.