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 / record.pcat < prev    next >
Text File  |  2006-02-17  |  1KB  |  45 lines

  1. (*  This program tests whether offsets are being assigned in records. *)
  2.  
  3. program is
  4.   var i: integer := 0;
  5.       x: real := 0.0;
  6.       b: boolean := false;
  7.   procedure foo (a1,a2,a3: integer) is
  8.     var r: MyRec1 := nil;
  9.     type MyRec1 is record
  10.                      f1: integer;
  11.                      f2: real;
  12.                      f3: boolean;
  13.                      f4: MyRec3;
  14.                    end;
  15.          MyRec2 is record
  16.                      h1: integer;
  17.                      h2: real;
  18.                      h3: boolean;
  19.                    end;
  20.          MyRec3 is record
  21.                      g1: integer;
  22.                      g2: real;
  23.                      g3: boolean;
  24.                      g4: MyRec2;
  25.                    end;
  26.     begin
  27.       i := i + 3;
  28.       r := r;
  29.  
  30.       i := r.f1;
  31.       x := r.f2;
  32.       b := r.f3;
  33.       x := r.f4.g2;
  34.       x := r.f4.g4.h2;
  35.  
  36.       r.f1 := i;
  37.       r.f2 := x;
  38.       r.f3 := b;
  39.       r.f4.g2 := x;
  40.       r.f4.g4.h2 := x;
  41.  
  42.       return;
  43.     end;
  44. begin end;
  45.