t_lower2.mod 477 B

123456789101112131415161718192021
  1. MODULE TLower2;
  2. (* Lower L2: control flow -- IF/ELSIF/ELSE, WHILE, REPEAT, LOOP/EXIT,
  3. FOR (no BY), HALT. Exit 6. *)
  4. VAR i, s : INTEGER;
  5. VAR ExitCode : INTEGER;
  6. BEGIN
  7. s := 0;
  8. IF s < 0 THEN s := 1
  9. ELSIF s = 0 THEN s := 2
  10. ELSE s := 3 END;
  11. i := 0;
  12. WHILE i < 3 DO i := i + 1 END;
  13. REPEAT i := i - 1 UNTIL i <= 0;
  14. LOOP
  15. i := i + 1;
  16. IF i > 2 THEN EXIT END
  17. END;
  18. FOR i := 1 TO 3 DO s := s + i END;
  19. IF s > 1000 THEN HALT END;
  20. ExitCode := s
  21. END TLower2.