| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- Listing:
- 1 MODULE Showcase3;
- 2
- 3 (* Step-10 tour: module BEGIN bodies run at startup in declaration order,
- 4 cross-module reads, and calls to the module's own procedures
- 5 (plain and M.-qualified) from inside its init body. *)
- 6
- 7 MODULE A EXPORT x;
- 8 VAR x : INTEGER;
- 9 BEGIN
- 10 x := 1
- 11 END A;
- 12
- 13 MODULE B EXPORT y;
- 14 VAR y : INTEGER;
- 15 BEGIN
- 16 y := A.x + 10
- 17 END B;
- 18
- 19 MODULE C EXPORT cnt, Inc;
- 20 VAR cnt : INTEGER;
- 21 PROCEDURE Inc;
- 22 BEGIN
- 23 cnt := cnt + 5
- 24 END Inc;
- 25 BEGIN
- 26 Inc();
- 27 C.Inc()
- 28 END C;
- 29
- 30 MODULE D EXPORT val;
- 31 VAR val : INTEGER;
- 32 BEGIN
- 33 val := 42
- 34 END D;
- 35
- 36 VAR total : INTEGER;
- 37 VAR ExitCode : INTEGER;
- 38
- 39 BEGIN
- 40 total := 0;
- 41 WriteString("show3");
- 42 C.Inc();
- 43 total := A.x * 100 + B.y + C.cnt + D.val;
- 44 WriteInt(total);
- 45 ExitCode := total
- 46 END Showcase3.
- 0 errors
|