semerr4.pl5 845 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. VAR m : array1;
  2. VAR n : arrayx; (* arrayx ist nicht definiert*)
  3. CONST CALL = 33;
  4. PROCEDURE read;
  5. VAR i : INTEGER;
  6. VAR x : array0;
  7. BEGIN
  8. i := 1;
  9. WHILE i <= 7 DO
  10. ?x[i];
  11. i := i + 1
  12. END DO;
  13. m[2] := x
  14. END;
  15. TYPE array1 = ARRAY 3 OF array0;
  16. PROCEDURE writeReverse;
  17. VAR x : array0;
  18. VAR i : INTEGER;
  19. BEGIN
  20. ;;;;;;;;;;;;;;;;;;;;;
  21. ;; x := m[2]; ;;
  22. ;; i := 7; ;;
  23. ;; WHILE i >= 1 DO ;;
  24. ;; !x[i]; ;;
  25. ;; i := i - 1 ;;
  26. ;; END DO ;;
  27. ll;;;;;;;;;;;;;;;;;kk (* undeklarierte Prozeduren *)
  28. END;
  29. TYPE array0 = ARRAY 7 OF INTEGER;
  30. TYPE arrayO = ARRAY 7 OF BOOLEAN;
  31. VAR x : arrayO;
  32. BEGIN
  33. !CALL[3]; (* indizierte Konstante *)
  34. read;
  35. IF NOT ODD m[2][1] THEN
  36. writeReverse
  37. ELSE
  38. !m[TRUE][x[3]] (* beide Indices BOOLEAN *)
  39. END IF
  40. END.