| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- MODULE Showcase3;
- (* Step-10 tour: module BEGIN bodies run at startup in declaration order,
- cross-module reads, and calls to the module's own procedures
- (plain and M.-qualified) from inside its init body. *)
- MODULE A EXPORT x;
- VAR x : INTEGER;
- BEGIN
- x := 1
- END A;
- MODULE B EXPORT y;
- VAR y : INTEGER;
- BEGIN
- y := A.x + 10
- END B;
- MODULE C EXPORT cnt, Inc;
- VAR cnt : INTEGER;
- PROCEDURE Inc;
- BEGIN
- cnt := cnt + 5
- END Inc;
- BEGIN
- Inc();
- C.Inc()
- END C;
- MODULE D EXPORT val;
- VAR val : INTEGER;
- BEGIN
- val := 42
- END D;
- VAR total : INTEGER;
- VAR ExitCode : INTEGER;
- BEGIN
- total := 0;
- WriteString("show3");
- C.Inc();
- total := A.x * 100 + B.y + C.cnt + D.val;
- WriteInt(total);
- ExitCode := total
- END Showcase3.
|