home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.pdx.edu / 2014.02.ftp.ee.pdx.edu.tar / ftp.ee.pdx.edu / pub / users / Harry / compilers / p10 / tst / recArray.pcat < prev    next >
Text File  |  2006-02-17  |  2KB  |  65 lines

  1. program is
  2.   type T1 is array of T2;
  3.        T2 is record
  4.                f1: integer;
  5.                f2: T1;
  6.                f3: T2;
  7.                f4: boolean;
  8.              end;
  9.   var x1, x2, x3: T1 := T1 {{ 5 of T2 { f1:=123; f2:=nil; f3:=nil; f4:=false } }};
  10.       y1, y2, y3: T2 := T2 { f1:=123; f2:= T1 {{ 6 of nil }}; f3:=nil; f4:=false };
  11.       i: integer := 0;
  12.       b: boolean := false;
  13.  
  14.   begin
  15.     x1 := T1 {{ 100 of nil}};
  16.     y1 := T2 { f1:=123; f2:=x1; f3:=nil; f4:=false };
  17.     x2 := T1 {{ 200 of y1 }};
  18.     y2 := T2 { f1:=321; f2:=x2; f3:=y1; f4:=true };
  19.     y3 := x1[57];
  20.     x1[68] := y2;
  21.     i := y1.f1;
  22.     y1.f1 := 456;
  23.     x3 := y1.f2;
  24.     y1.f2 := x2;
  25.     y3 := y1.f3;
  26.     y1.f3 := y2;
  27.     b := y1.f4;
  28.     y1.f4 := true;
  29.     i := x2[42].f1;
  30.     x2[42].f1 := 135;
  31.     x3 := x2[42].f2;
  32.     x2[42].f2 := x2;
  33.     y1 := x2[42].f3;
  34.     x2[42].f3 := y2;
  35.     b := x2[42].f4;
  36.     x2[42].f4 := true;
  37.     y2.f2[33] := y2.f2[44];
  38.     y2.f3.f2[55] := y2.f3.f2[66];
  39.     y2.f3.f3.f2[66].f3.f2[77].f3 := y2.f3.f3.f2[66].f3.f2[77].f3;
  40.     x1 := T1 {{ 5 of
  41.                  T2 { f1:=123;
  42.                       f2:=T1 {{ 6 of T2 { f1:=246;
  43.                                           f2:= T1 {{ 7 of y3 }};
  44.                                           f3:=y2;
  45.                                           f4:=false } }};
  46.                       f3:=T2 { f1:=357;
  47.                                f2:= T1 {{ 8 of y1 }};
  48.                                f3:=y2;
  49.                                f4:=false };
  50.                       f4:=true
  51.                     }
  52.              }};
  53.     y1 := T2 { f1:=431;
  54.                f2:= T1 {{ 9 of T2 { f1:=987; 
  55.                                     f2:= T1 {{ 10 of y3 }}; 
  56.                                     f3:=y1;
  57.                                     f4:=false } }};
  58.                f3:=T2 { f1:=789; 
  59.                         f2:= T1 {{ 11 of y2 }}; 
  60.                         f3:=y1;
  61.                         f4:=true };
  62.                f4:=true };
  63.  
  64.   end;
  65.