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.out.bak < prev    next >
Text File  |  2006-02-17  |  4KB  |  121 lines

  1. PROGRAM IS
  2.     VAR
  3.         i: integer := 0;
  4.         x: real := 0.0;
  5.         b: boolean := FALSE;
  6.     PROCEDURE foo (a1: integer; a2: integer; a3: integer) IS
  7.         TYPE
  8.             MyRec1 IS RECORD f1: integer; f2: real; f3: boolean; f4: MyRec3; END;
  9.             MyRec2 IS RECORD h1: integer; h2: real; h3: boolean; END;
  10.             MyRec3 IS RECORD g1: integer; g2: real; g3: boolean; g4: MyRec2; END;
  11.         VAR
  12.             r: MyRec1 := NIL;
  13.         BEGIN
  14.             i := (i + 3);
  15.             r := r;
  16.             i := r.f1;
  17.             x := r.f2;
  18.             b := r.f3;
  19.             x := r.f4.g2;
  20.             x := r.f4.g4.h2;
  21.             r.f1 := i;
  22.             r.f2 := x;
  23.             r.f3 := b;
  24.             r.f4.g2 := x;
  25.             r.f4.g4.h2 := x;
  26.             RETURN;
  27.         END;
  28.     BEGIN
  29.     END;
  30. maxLexicalLevel = 1
  31. =====  String List Follows  =====
  32. =====  Float List Follows  =====
  33.    float1:  0.0
  34. =====  Intermediate Code Follows  =====
  35. ! MAIN...
  36.                 mainEntry
  37. ! VAR INITIALIZATION...
  38.                 i := 0
  39. ! VAR INITIALIZATION...
  40.                 x := 0.0
  41. ! VAR INITIALIZATION...
  42.                 b := 0
  43. ! MAIN EXIT...
  44.                 mainExit
  45. ! PROCEDURE...
  46.                 procEntry p1_foo,lexLevel=1,frameSize=200
  47.                 formal 1,a1
  48.                 formal 2,a2
  49.                 formal 3,a3
  50. ! VAR INITIALIZATION...
  51.                 r := 0
  52. ! ASSIGNMENT STMT...
  53.                 t1 := i + 3        (integer)
  54.                 i := t1
  55. ! ASSIGNMENT STMT...
  56.                 r := r
  57. ! ASSIGNMENT STMT...
  58.                 if r = 0 then goto runtimeError2        (integer)
  59.                 t2 := *r
  60.                 i := t2
  61. ! ASSIGNMENT STMT...
  62.                 if r = 0 then goto runtimeError2        (integer)
  63.                 t3 := r + 4        (integer)
  64.                 t4 := *t3
  65.                 x := t4
  66. ! ASSIGNMENT STMT...
  67.                 if r = 0 then goto runtimeError2        (integer)
  68.                 t5 := r + 8        (integer)
  69.                 t6 := *t5
  70.                 b := t6
  71. ! ASSIGNMENT STMT...
  72.                 if r = 0 then goto runtimeError2        (integer)
  73.                 t7 := r + 12        (integer)
  74.                 t8 := *t7
  75.                 if t8 = 0 then goto runtimeError2        (integer)
  76.                 t9 := t8 + 4        (integer)
  77.                 t10 := *t9
  78.                 x := t10
  79. ! ASSIGNMENT STMT...
  80.                 if r = 0 then goto runtimeError2        (integer)
  81.                 t11 := r + 12        (integer)
  82.                 t12 := *t11
  83.                 if t12 = 0 then goto runtimeError2        (integer)
  84.                 t13 := t12 + 12        (integer)
  85.                 t14 := *t13
  86.                 if t14 = 0 then goto runtimeError2        (integer)
  87.                 t15 := t14 + 4        (integer)
  88.                 t16 := *t15
  89.                 x := t16
  90. ! ASSIGNMENT STMT...
  91.                 if r = 0 then goto runtimeError2        (integer)
  92.                 *r := i
  93. ! ASSIGNMENT STMT...
  94.                 if r = 0 then goto runtimeError2        (integer)
  95.                 t17 := r + 4        (integer)
  96.                 *t17 := x
  97. ! ASSIGNMENT STMT...
  98.                 if r = 0 then goto runtimeError2        (integer)
  99.                 t18 := r + 8        (integer)
  100.                 *t18 := b
  101. ! ASSIGNMENT STMT...
  102.                 if r = 0 then goto runtimeError2        (integer)
  103.                 t19 := r + 12        (integer)
  104.                 t20 := *t19
  105.                 if t20 = 0 then goto runtimeError2        (integer)
  106.                 t21 := t20 + 4        (integer)
  107.                 *t21 := x
  108. ! ASSIGNMENT STMT...
  109.                 if r = 0 then goto runtimeError2        (integer)
  110.                 t22 := r + 12        (integer)
  111.                 t23 := *t22
  112.                 if t23 = 0 then goto runtimeError2        (integer)
  113.                 t24 := t23 + 12        (integer)
  114.                 t25 := *t24
  115.                 if t25 = 0 then goto runtimeError2        (integer)
  116.                 t26 := t25 + 4        (integer)
  117.                 *t26 := x
  118. ! RETURN...
  119.                 returnVoid 
  120. =======================================
  121.