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 >
Wrap
Text File
|
2006-02-17
|
4KB
|
121 lines
PROGRAM IS
VAR
i: integer := 0;
x: real := 0.0;
b: boolean := FALSE;
PROCEDURE foo (a1: integer; a2: integer; a3: integer) IS
TYPE
MyRec1 IS RECORD f1: integer; f2: real; f3: boolean; f4: MyRec3; END;
MyRec2 IS RECORD h1: integer; h2: real; h3: boolean; END;
MyRec3 IS RECORD g1: integer; g2: real; g3: boolean; g4: MyRec2; END;
VAR
r: MyRec1 := NIL;
BEGIN
i := (i + 3);
r := r;
i := r.f1;
x := r.f2;
b := r.f3;
x := r.f4.g2;
x := r.f4.g4.h2;
r.f1 := i;
r.f2 := x;
r.f3 := b;
r.f4.g2 := x;
r.f4.g4.h2 := x;
RETURN;
END;
BEGIN
END;
maxLexicalLevel = 1
===== String List Follows =====
===== Float List Follows =====
float1: 0.0
===== Intermediate Code Follows =====
! MAIN...
mainEntry
! VAR INITIALIZATION...
i := 0
! VAR INITIALIZATION...
x := 0.0
! VAR INITIALIZATION...
b := 0
! MAIN EXIT...
mainExit
! PROCEDURE...
procEntry p1_foo,lexLevel=1,frameSize=200
formal 1,a1
formal 2,a2
formal 3,a3
! VAR INITIALIZATION...
r := 0
! ASSIGNMENT STMT...
t1 := i + 3 (integer)
i := t1
! ASSIGNMENT STMT...
r := r
! ASSIGNMENT STMT...
if r = 0 then goto runtimeError2 (integer)
t2 := *r
i := t2
! ASSIGNMENT STMT...
if r = 0 then goto runtimeError2 (integer)
t3 := r + 4 (integer)
t4 := *t3
x := t4
! ASSIGNMENT STMT...
if r = 0 then goto runtimeError2 (integer)
t5 := r + 8 (integer)
t6 := *t5
b := t6
! ASSIGNMENT STMT...
if r = 0 then goto runtimeError2 (integer)
t7 := r + 12 (integer)
t8 := *t7
if t8 = 0 then goto runtimeError2 (integer)
t9 := t8 + 4 (integer)
t10 := *t9
x := t10
! ASSIGNMENT STMT...
if r = 0 then goto runtimeError2 (integer)
t11 := r + 12 (integer)
t12 := *t11
if t12 = 0 then goto runtimeError2 (integer)
t13 := t12 + 12 (integer)
t14 := *t13
if t14 = 0 then goto runtimeError2 (integer)
t15 := t14 + 4 (integer)
t16 := *t15
x := t16
! ASSIGNMENT STMT...
if r = 0 then goto runtimeError2 (integer)
*r := i
! ASSIGNMENT STMT...
if r = 0 then goto runtimeError2 (integer)
t17 := r + 4 (integer)
*t17 := x
! ASSIGNMENT STMT...
if r = 0 then goto runtimeError2 (integer)
t18 := r + 8 (integer)
*t18 := b
! ASSIGNMENT STMT...
if r = 0 then goto runtimeError2 (integer)
t19 := r + 12 (integer)
t20 := *t19
if t20 = 0 then goto runtimeError2 (integer)
t21 := t20 + 4 (integer)
*t21 := x
! ASSIGNMENT STMT...
if r = 0 then goto runtimeError2 (integer)
t22 := r + 12 (integer)
t23 := *t22
if t23 = 0 then goto runtimeError2 (integer)
t24 := t23 + 12 (integer)
t25 := *t24
if t25 = 0 then goto runtimeError2 (integer)
t26 := t25 + 4 (integer)
*t26 := x
! RETURN...
returnVoid
=======================================