| 1234567891011121314151617181920212223242526272829303132333435 |
- MODULE TFwdVar;
- // Forward module-level variables: a procedure body may reference a
- // global declared further down the module. Exit 42.
- VAR ExitCode : INTEGER;
- PROCEDURE Bump;
- BEGIN
- counter := counter + 1;
- IF counter >= 3 THEN ready := TRUE END
- END Bump;
- PROCEDURE Twice;
- BEGIN
- Bump; Bump
- END Twice;
- VAR counter : INTEGER;
- VAR ready : BOOLEAN;
- VAR label : ARRAY [0..15] OF CHAR;
- PROCEDURE SetLabel;
- BEGIN
- label[0] := "o"; label[1] := "k"; label[2] := CHR(0)
- END SetLabel;
- BEGIN
- Twice; (* counter = 2 *)
- Bump; (* counter = 3, ready = TRUE *)
- SetLabel;
- IF ready AND (counter = 3) AND (label[0] = "o") THEN
- ExitCode := 42
- ELSE
- ExitCode := 1
- END
- END TFwdVar.
|