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
/
array2.out.bak
< prev
next >
Wrap
Text File
|
2006-02-17
|
11KB
|
318 lines
PROGRAM IS
TYPE
T1 IS ARRAY OF integer;
T2 IS ARRAY OF T1;
B1 IS ARRAY OF real;
VAR
a1: T1 := NIL;
a2: T1 := a1;
a3: T1 := a1;
a4: T1 := a1;
a5: T1 := a1;
b1: B1 := NIL;
c1: T2 := NIL;
x: real := 0.0;
i: integer := 0;
BEGIN
a1 := T1 {{ 11, 12, 13, 14, 15 }};
b1 := B1 {{ 1.1, 1.2, 1.3, 1.4, 1.5 }};
a2 := T1 {{ (i * 11), (i * 12), (i * 13), (i * 14), (i * 15) }};
a3 := T1 {{ 100 OF 11111, 200 OF 22222, 300 OF 33333, 400 OF 44444 }};
a3 := T1 {{ (100 * i) OF 11111, (200 * i) OF 22222, (300 * i) OF 33333 }};
a4 := T1 {{ 100 OF 11111, 22222, 33333, 400 OF 44444, 555555 }};
a5 := T1 {{ (i * 100) OF 111, 222, 333, (i * 400) OF 444, 555 }};
c1 := T2 {{ a1, a2, 100 OF a3, (200 * i) OF a4, a5 }};
END;
maxLexicalLevel = 0
===== String List Follows =====
===== Float List Follows =====
float6: 1.5
float5: 1.4
float4: 1.3
float3: 1.2
float2: 1.1
float1: 0.0
===== Intermediate Code Follows =====
! MAIN...
mainEntry
! VAR INITIALIZATION...
a1 := 0
! VAR INITIALIZATION...
a2 := a1
! VAR INITIALIZATION...
a3 := a1
! VAR INITIALIZATION...
a4 := a1
! VAR INITIALIZATION...
a5 := a1
! VAR INITIALIZATION...
b1 := 0
! VAR INITIALIZATION...
c1 := 0
! VAR INITIALIZATION...
x := 0.0
! VAR INITIALIZATION...
i := 0
! ASSIGNMENT STMT...
t1 := 0
t1 := t1 + 1 (integer)
t1 := t1 + 1 (integer)
t1 := t1 + 1 (integer)
t1 := t1 + 1 (integer)
t1 := t1 + 1 (integer)
t2 := t1 * 4 (integer)
t2 := t2 + 4 (integer)
t2 := alloc (t2)
if t2 = 0 then goto runtimeError1 (integer)
t3 := t2
*t2 := t1
t2 := t2 + 4 (integer)
*t2 := 11
t2 := t2 + 4 (integer)
*t2 := 12
t2 := t2 + 4 (integer)
*t2 := 13
t2 := t2 + 4 (integer)
*t2 := 14
t2 := t2 + 4 (integer)
*t2 := 15
a1 := t3
! ASSIGNMENT STMT...
t5 := 0
t5 := t5 + 1 (integer)
t5 := t5 + 1 (integer)
t5 := t5 + 1 (integer)
t5 := t5 + 1 (integer)
t5 := t5 + 1 (integer)
t6 := t5 * 4 (integer)
t6 := t6 + 4 (integer)
t6 := alloc (t6)
if t6 = 0 then goto runtimeError1 (integer)
t7 := t6
*t6 := t5
t6 := t6 + 4 (integer)
*t6 := 1.1
t6 := t6 + 4 (integer)
*t6 := 1.2
t6 := t6 + 4 (integer)
*t6 := 1.3
t6 := t6 + 4 (integer)
*t6 := 1.4
t6 := t6 + 4 (integer)
*t6 := 1.5
b1 := t7
! ASSIGNMENT STMT...
t9 := 0
t9 := t9 + 1 (integer)
t10 := i * 11 (integer)
t9 := t9 + 1 (integer)
t11 := i * 12 (integer)
t9 := t9 + 1 (integer)
t12 := i * 13 (integer)
t9 := t9 + 1 (integer)
t13 := i * 14 (integer)
t9 := t9 + 1 (integer)
t14 := i * 15 (integer)
t15 := t9 * 4 (integer)
t15 := t15 + 4 (integer)
t15 := alloc (t15)
if t15 = 0 then goto runtimeError1 (integer)
t16 := t15
*t15 := t9
t15 := t15 + 4 (integer)
*t15 := t10
t15 := t15 + 4 (integer)
*t15 := t11
t15 := t15 + 4 (integer)
*t15 := t12
t15 := t15 + 4 (integer)
*t15 := t13
t15 := t15 + 4 (integer)
*t15 := t14
a2 := t16
! ASSIGNMENT STMT...
t18 := 0
if 100 <= 0 then goto runtimeError5 (integer)
t18 := t18 + 100 (integer)
if 200 <= 0 then goto runtimeError5 (integer)
t18 := t18 + 200 (integer)
if 300 <= 0 then goto runtimeError5 (integer)
t18 := t18 + 300 (integer)
if 400 <= 0 then goto runtimeError5 (integer)
t18 := t18 + 400 (integer)
t19 := t18 * 4 (integer)
t19 := t19 + 4 (integer)
t19 := alloc (t19)
if t19 = 0 then goto runtimeError1 (integer)
t20 := t19
*t19 := t18
t21 := 100
Label_1:
t19 := t19 + 4 (integer)
*t19 := 11111
t21 := t21 - 1 (integer)
if t21 > 0 then goto Label_1 (integer)
t21 := 200
Label_2:
t19 := t19 + 4 (integer)
*t19 := 22222
t21 := t21 - 1 (integer)
if t21 > 0 then goto Label_2 (integer)
t21 := 300
Label_3:
t19 := t19 + 4 (integer)
*t19 := 33333
t21 := t21 - 1 (integer)
if t21 > 0 then goto Label_3 (integer)
t21 := 400
Label_4:
t19 := t19 + 4 (integer)
*t19 := 44444
t21 := t21 - 1 (integer)
if t21 > 0 then goto Label_4 (integer)
a3 := t20
! ASSIGNMENT STMT...
t22 := 0
t23 := 100 * i (integer)
if t23 <= 0 then goto runtimeError5 (integer)
t22 := t22 + t23 (integer)
t24 := 200 * i (integer)
if t24 <= 0 then goto runtimeError5 (integer)
t22 := t22 + t24 (integer)
t25 := 300 * i (integer)
if t25 <= 0 then goto runtimeError5 (integer)
t22 := t22 + t25 (integer)
t26 := t22 * 4 (integer)
t26 := t26 + 4 (integer)
t26 := alloc (t26)
if t26 = 0 then goto runtimeError1 (integer)
t27 := t26
*t26 := t22
t28 := t23
Label_5:
t26 := t26 + 4 (integer)
*t26 := 11111
t28 := t28 - 1 (integer)
if t28 > 0 then goto Label_5 (integer)
t28 := t24
Label_6:
t26 := t26 + 4 (integer)
*t26 := 22222
t28 := t28 - 1 (integer)
if t28 > 0 then goto Label_6 (integer)
t28 := t25
Label_7:
t26 := t26 + 4 (integer)
*t26 := 33333
t28 := t28 - 1 (integer)
if t28 > 0 then goto Label_7 (integer)
a3 := t27
! ASSIGNMENT STMT...
t29 := 0
if 100 <= 0 then goto runtimeError5 (integer)
t29 := t29 + 100 (integer)
t29 := t29 + 1 (integer)
t29 := t29 + 1 (integer)
if 400 <= 0 then goto runtimeError5 (integer)
t29 := t29 + 400 (integer)
t29 := t29 + 1 (integer)
t30 := t29 * 4 (integer)
t30 := t30 + 4 (integer)
t30 := alloc (t30)
if t30 = 0 then goto runtimeError1 (integer)
t31 := t30
*t30 := t29
t32 := 100
Label_8:
t30 := t30 + 4 (integer)
*t30 := 11111
t32 := t32 - 1 (integer)
if t32 > 0 then goto Label_8 (integer)
t30 := t30 + 4 (integer)
*t30 := 22222
t30 := t30 + 4 (integer)
*t30 := 33333
t32 := 400
Label_9:
t30 := t30 + 4 (integer)
*t30 := 44444
t32 := t32 - 1 (integer)
if t32 > 0 then goto Label_9 (integer)
t30 := t30 + 4 (integer)
*t30 := 555555
a4 := t31
! ASSIGNMENT STMT...
t33 := 0
t34 := i * 100 (integer)
if t34 <= 0 then goto runtimeError5 (integer)
t33 := t33 + t34 (integer)
t33 := t33 + 1 (integer)
t33 := t33 + 1 (integer)
t35 := i * 400 (integer)
if t35 <= 0 then goto runtimeError5 (integer)
t33 := t33 + t35 (integer)
t33 := t33 + 1 (integer)
t36 := t33 * 4 (integer)
t36 := t36 + 4 (integer)
t36 := alloc (t36)
if t36 = 0 then goto runtimeError1 (integer)
t37 := t36
*t36 := t33
t38 := t34
Label_10:
t36 := t36 + 4 (integer)
*t36 := 111
t38 := t38 - 1 (integer)
if t38 > 0 then goto Label_10 (integer)
t36 := t36 + 4 (integer)
*t36 := 222
t36 := t36 + 4 (integer)
*t36 := 333
t38 := t35
Label_11:
t36 := t36 + 4 (integer)
*t36 := 444
t38 := t38 - 1 (integer)
if t38 > 0 then goto Label_11 (integer)
t36 := t36 + 4 (integer)
*t36 := 555
a5 := t37
! ASSIGNMENT STMT...
t39 := 0
t39 := t39 + 1 (integer)
t39 := t39 + 1 (integer)
if 100 <= 0 then goto runtimeError5 (integer)
t39 := t39 + 100 (integer)
t40 := 200 * i (integer)
if t40 <= 0 then goto runtimeError5 (integer)
t39 := t39 + t40 (integer)
t39 := t39 + 1 (integer)
t41 := t39 * 4 (integer)
t41 := t41 + 4 (integer)
t41 := alloc (t41)
if t41 = 0 then goto runtimeError1 (integer)
t42 := t41
*t41 := t39
t41 := t41 + 4 (integer)
*t41 := a1
t41 := t41 + 4 (integer)
*t41 := a2
t43 := 100
Label_12:
t41 := t41 + 4 (integer)
*t41 := a3
t43 := t43 - 1 (integer)
if t43 > 0 then goto Label_12 (integer)
t43 := t40
Label_13:
t41 := t41 + 4 (integer)
*t41 := a4
t43 := t43 - 1 (integer)
if t43 > 0 then goto Label_13 (integer)
t41 := t41 + 4 (integer)
*t41 := a5
c1 := t42
! MAIN EXIT...
mainExit
=======================================