synterr2.pl5 898 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. (*$C+ *)
  2. VAR m : array1;
  3. n : array0; (* VAR fehlt *)
  4. VAR o = array1; (* '=' anstelle von ':' *)
  5. CONST CALL = 33;
  6. PROCEDURE read (* ';' fehlt *)
  7. VAR i : INTEGER;
  8. VAR x = array0; (* '=' anstelle von ':' *)
  9. BEGIN
  10. i := 1;
  11. WHILE i <= 7 DO
  12. ?x[i];
  13. i := i + 1
  14. END WHILE; (* WHILE anstelle von DO *)
  15. m[2] := x
  16. END;
  17. TYPE array1 = ARRAY 3 OF array0;
  18. PROCEDURE writeReverse;
  19. VAR x : array0;
  20. VAR i : INTEGER;
  21. BEGIN
  22. ;;;;;;;;;;;;;;;;;;;;;
  23. ;; x := m[2]; ;;
  24. ;; i := 7; ;;
  25. ;; WHILE i >= 1 DO ;;
  26. ;; !x[i]; ;;
  27. ;; i := i - 1 ;;
  28. ;; END ;; (* DO fehlt *)
  29. ;;;;;;;;;;;;;;;;;;;;;
  30. END;
  31. TYPE array0 = ARRAY 7 OF INTEGER;
  32. BEGIN
  33. !CALL;
  34. read;
  35. IF NOT ODD m[2 [1] THEN (* ']' fehlt *)
  36. writeReverse
  37. ELSE
  38. !m[2][ ] (* Indexausdruck fehlt *)
  39. END FI (* FI anstelle von IF *)
  40. END.