| 1234567891011121314151617181920212223 |
- MODULE TGoto;
- (* GOTO/labels: backward loop, forward jump, and a procedure-local label.
- Exit 42. *)
- VAR ExitCode, i, s : INTEGER;
- PROCEDURE P () : INTEGER;
- VAR i, s : INTEGER;
- BEGIN
- i := 0; s := 0;
- top:
- IF i < 4 THEN s := s + i; INC(i); GOTO top END;
- RETURN s
- END P;
- BEGIN
- i := 0; s := 0;
- loop:
- IF i < 5 THEN s := s + i; INC(i); GOTO loop END;
- GOTO done;
- s := 999;
- done:
- IF (s = 10) AND (P() = 6) THEN ExitCode := 42 ELSE ExitCode := s + P() END
- END TGoto.
|