array.ob 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. MODULE m;
  2. CONST arraySize = 10;
  3. TYPE
  4. T1 = ARRAY arraySize OF INTEGER;
  5. T2 = ARRAY 5 OF T1;
  6. T3 = ARRAY 3 OF ARRAY 7 OF BOOLEAN;
  7. T4 = ARRAY 3, 4 OF BOOLEAN;
  8. VAR
  9. a1, a11: T1;
  10. a2: T2;
  11. a3: ARRAY 5 OF BOOLEAN;
  12. a4: T4;
  13. a5: ARRAY 3 OF RECORD END;
  14. PROCEDURE p;
  15. VAR a3: ARRAY 1 OF INTEGER;
  16. BEGIN
  17. a3[0] := 1
  18. END p;
  19. PROCEDURE p1(a: T1);
  20. END p1;
  21. PROCEDURE p2(VAR a: T1);
  22. BEGIN
  23. p1(a)
  24. END p2;
  25. PROCEDURE testAssign();
  26. TYPE
  27. T = RECORD
  28. END;
  29. VAR
  30. aInts1, aInts2: ARRAY 3 OF INTEGER;
  31. aRecords1, aRecords2: ARRAY 3 OF T;
  32. aPointers1, aPointers2: ARRAY 3 OF POINTER TO T;
  33. arrayOfArray1, arrayOfArray2: ARRAY 3, 5 OF BOOLEAN;
  34. BEGIN
  35. aInts2 := aInts1;
  36. aRecords2 := aRecords1;
  37. aPointers2 := aPointers1;
  38. arrayOfArray2 := arrayOfArray1;
  39. END testAssign;
  40. PROCEDURE testPassOpenArray(a: ARRAY OF INTEGER);
  41. END testPassOpenArray;
  42. BEGIN
  43. a1[0] := 1;
  44. a3[1] := TRUE;
  45. a4[1][2] := TRUE;
  46. a4[1, 2] := TRUE;
  47. p1(a1);
  48. p2(a1);
  49. a1 := a11;
  50. testPassOpenArray(a1);
  51. END m.