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
/
p9
/
tst
/
loops.out.bak
< prev
next >
Wrap
Text File
|
2006-02-07
|
8KB
|
333 lines
PROGRAM IS
VAR
b: boolean := FALSE;
c: boolean := b;
i: integer := 0;
BEGIN
WHILE TRUE DO
i := 123;
END;
WHILE b DO
i := 123;
END;
WHILE (b AND c) DO
i := 123;
END;
WHILE (b OR c) DO
i := 123;
END;
WHILE (((b OR c) OR NOT b) AND NOT (NOT b AND c)) DO
i := 123;
END;
WHILE b DO
i := 111;
IF b THEN
EXIT;
END;
i := 222;
END;
LOOP
i := 111;
LOOP
i := 222;
IF b THEN
EXIT;
END;
LOOP
i := 333;
IF b THEN
EXIT;
END;
i := 444;
END;
IF b THEN
EXIT;
END;
i := 555;
END;
i := 666;
IF b THEN
EXIT;
END;
i := 777;
END;
i := 888;
FOR i := (100 * i) TO (200 * i) BY (3 * i) DO
i := 1010101;
END;
FOR i := 3000 TO 4000 DO
i := 1111;
IF b THEN
i := 2222;
EXIT;
END;
i := 3333;
END;
i := 4444;
END;
maxLexicalLevel = 0
===== Intermediate Code Follows =====
! MAIN...
mainEntry
! VAR INITIALIZATION...
t1 := 0
b := t1
! VAR INITIALIZATION...
c := b
! VAR INITIALIZATION...
t2 := 0
i := t2
! WHILE...
Label_1:
goto Label_2
Label_2:
! ASSIGNMENT STMT...
t3 := &i
t4 := 123
*t3 := t4
! END WHILE...
goto Label_1
Label_3:
! WHILE...
Label_4:
if b = 0 then goto Label_6 (integer)
goto Label_5
Label_5:
! ASSIGNMENT STMT...
t5 := &i
t6 := 123
*t5 := t6
! END WHILE...
goto Label_4
Label_6:
! WHILE...
Label_7:
if b = 0 then goto Label_9 (integer)
goto Label_10
Label_10:
if c = 0 then goto Label_9 (integer)
goto Label_8
Label_8:
! ASSIGNMENT STMT...
t7 := &i
t8 := 123
*t7 := t8
! END WHILE...
goto Label_7
Label_9:
! WHILE...
Label_11:
if b = 0 then goto Label_14 (integer)
goto Label_12
Label_14:
if c = 0 then goto Label_13 (integer)
goto Label_12
Label_12:
! ASSIGNMENT STMT...
t9 := &i
t10 := 123
*t9 := t10
! END WHILE...
goto Label_11
Label_13:
! WHILE...
Label_15:
if b = 0 then goto Label_20 (integer)
goto Label_18
Label_20:
if c = 0 then goto Label_19 (integer)
goto Label_18
Label_19:
if b = 0 then goto Label_18 (integer)
goto Label_17
Label_18:
if b = 0 then goto Label_21 (integer)
goto Label_16
Label_21:
if c = 0 then goto Label_16 (integer)
goto Label_17
Label_16:
! ASSIGNMENT STMT...
t11 := &i
t12 := 123
*t11 := t12
! END WHILE...
goto Label_15
Label_17:
! WHILE...
Label_22:
if b = 0 then goto Label_24 (integer)
goto Label_23
Label_23:
! ASSIGNMENT STMT...
t13 := &i
t14 := 111
*t13 := t14
! IF...
if b = 0 then goto Label_26 (integer)
goto Label_25
Label_25:
! THEN...
! EXIT...
goto Label_24
! END IF...
Label_26:
! ASSIGNMENT STMT...
t15 := &i
t16 := 222
*t15 := t16
! END WHILE...
goto Label_22
Label_24:
! LOOP...
Label_27:
! ASSIGNMENT STMT...
t17 := &i
t18 := 111
*t17 := t18
! LOOP...
Label_29:
! ASSIGNMENT STMT...
t19 := &i
t20 := 222
*t19 := t20
! IF...
if b = 0 then goto Label_32 (integer)
goto Label_31
Label_31:
! THEN...
! EXIT...
goto Label_30
! END IF...
Label_32:
! LOOP...
Label_33:
! ASSIGNMENT STMT...
t21 := &i
t22 := 333
*t21 := t22
! IF...
if b = 0 then goto Label_36 (integer)
goto Label_35
Label_35:
! THEN...
! EXIT...
goto Label_34
! END IF...
Label_36:
! ASSIGNMENT STMT...
t23 := &i
t24 := 444
*t23 := t24
! END LOOP...
goto Label_33
Label_34:
! IF...
if b = 0 then goto Label_38 (integer)
goto Label_37
Label_37:
! THEN...
! EXIT...
goto Label_30
! END IF...
Label_38:
! ASSIGNMENT STMT...
t25 := &i
t26 := 555
*t25 := t26
! END LOOP...
goto Label_29
Label_30:
! ASSIGNMENT STMT...
t27 := &i
t28 := 666
*t27 := t28
! IF...
if b = 0 then goto Label_40 (integer)
goto Label_39
Label_39:
! THEN...
! EXIT...
goto Label_28
! END IF...
Label_40:
! ASSIGNMENT STMT...
t29 := &i
t30 := 777
*t29 := t30
! END LOOP...
goto Label_27
Label_28:
! ASSIGNMENT STMT...
t31 := &i
t32 := 888
*t31 := t32
! FOR...
t36 := &i
t37 := 100
t38 := t37 * i (integer)
t33 := t38
t39 := 200
t40 := t39 * i (integer)
t34 := t40
t41 := 3
t42 := t41 * i (integer)
t35 := t42
*t36 := t33
Label_41:
if t33 > t34 then goto Label_42 (integer)
! ASSIGNMENT STMT...
t43 := &i
t44 := 1010101
*t43 := t44
! END FOR...
t33 := *t36
t33 := t33 + t35 (integer)
*t36 := t33
goto Label_41
Label_42:
! FOR...
t48 := &i
t49 := 3000
t45 := t49
t50 := 4000
t46 := t50
t47 := 1
*t48 := t45
Label_43:
if t45 > t46 then goto Label_44 (integer)
! ASSIGNMENT STMT...
t51 := &i
t52 := 1111
*t51 := t52
! IF...
if b = 0 then goto Label_46 (integer)
goto Label_45
Label_45:
! THEN...
! ASSIGNMENT STMT...
t53 := &i
t54 := 2222
*t53 := t54
! EXIT...
goto Label_44
! END IF...
Label_46:
! ASSIGNMENT STMT...
t55 := &i
t56 := 3333
*t55 := t56
! END FOR...
t45 := *t48
t45 := t45 + t47 (integer)
*t48 := t45
goto Label_43
Label_44:
! ASSIGNMENT STMT...
t57 := &i
t58 := 4444
*t57 := t58
! MAIN EXIT...
mainExit
=======================================