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 >
Text File  |  2006-02-07  |  8KB  |  333 lines

  1. PROGRAM IS
  2.     VAR
  3.         b: boolean := FALSE;
  4.         c: boolean := b;
  5.         i: integer := 0;
  6.     BEGIN
  7.         WHILE TRUE DO
  8.             i := 123;
  9.         END;
  10.         WHILE b DO
  11.             i := 123;
  12.         END;
  13.         WHILE (b AND c) DO
  14.             i := 123;
  15.         END;
  16.         WHILE (b OR c) DO
  17.             i := 123;
  18.         END;
  19.         WHILE (((b OR c) OR NOT b) AND NOT (NOT b AND c)) DO
  20.             i := 123;
  21.         END;
  22.         WHILE b DO
  23.             i := 111;
  24.             IF b THEN
  25.                 EXIT;
  26.             END;
  27.             i := 222;
  28.         END;
  29.         LOOP
  30.             i := 111;
  31.             LOOP
  32.                 i := 222;
  33.                 IF b THEN
  34.                     EXIT;
  35.                 END;
  36.                 LOOP
  37.                     i := 333;
  38.                     IF b THEN
  39.                         EXIT;
  40.                     END;
  41.                     i := 444;
  42.                 END;
  43.                 IF b THEN
  44.                     EXIT;
  45.                 END;
  46.                 i := 555;
  47.             END;
  48.             i := 666;
  49.             IF b THEN
  50.                 EXIT;
  51.             END;
  52.             i := 777;
  53.         END;
  54.         i := 888;
  55.         FOR i := (100 * i) TO (200 * i) BY (3 * i) DO
  56.             i := 1010101;
  57.         END;
  58.         FOR i := 3000 TO 4000 DO
  59.             i := 1111;
  60.             IF b THEN
  61.                 i := 2222;
  62.                 EXIT;
  63.             END;
  64.             i := 3333;
  65.         END;
  66.         i := 4444;
  67.     END;
  68. maxLexicalLevel = 0
  69. =====  Intermediate Code Follows  =====
  70. ! MAIN...
  71.                 mainEntry
  72. ! VAR INITIALIZATION...
  73.                 t1 := 0
  74.                 b := t1
  75. ! VAR INITIALIZATION...
  76.                 c := b
  77. ! VAR INITIALIZATION...
  78.                 t2 := 0
  79.                 i := t2
  80. ! WHILE...
  81.         Label_1:
  82.                 goto Label_2
  83.         Label_2:
  84. ! ASSIGNMENT STMT...
  85.                 t3 := &i
  86.                 t4 := 123
  87.                 *t3 := t4
  88. ! END WHILE...
  89.                 goto Label_1
  90.         Label_3:
  91. ! WHILE...
  92.         Label_4:
  93.                 if b = 0 then goto Label_6        (integer)
  94.                 goto Label_5
  95.         Label_5:
  96. ! ASSIGNMENT STMT...
  97.                 t5 := &i
  98.                 t6 := 123
  99.                 *t5 := t6
  100. ! END WHILE...
  101.                 goto Label_4
  102.         Label_6:
  103. ! WHILE...
  104.         Label_7:
  105.                 if b = 0 then goto Label_9        (integer)
  106.                 goto Label_10
  107.         Label_10:
  108.                 if c = 0 then goto Label_9        (integer)
  109.                 goto Label_8
  110.         Label_8:
  111. ! ASSIGNMENT STMT...
  112.                 t7 := &i
  113.                 t8 := 123
  114.                 *t7 := t8
  115. ! END WHILE...
  116.                 goto Label_7
  117.         Label_9:
  118. ! WHILE...
  119.         Label_11:
  120.                 if b = 0 then goto Label_14        (integer)
  121.                 goto Label_12
  122.         Label_14:
  123.                 if c = 0 then goto Label_13        (integer)
  124.                 goto Label_12
  125.         Label_12:
  126. ! ASSIGNMENT STMT...
  127.                 t9 := &i
  128.                 t10 := 123
  129.                 *t9 := t10
  130. ! END WHILE...
  131.                 goto Label_11
  132.         Label_13:
  133. ! WHILE...
  134.         Label_15:
  135.                 if b = 0 then goto Label_20        (integer)
  136.                 goto Label_18
  137.         Label_20:
  138.                 if c = 0 then goto Label_19        (integer)
  139.                 goto Label_18
  140.         Label_19:
  141.                 if b = 0 then goto Label_18        (integer)
  142.                 goto Label_17
  143.         Label_18:
  144.                 if b = 0 then goto Label_21        (integer)
  145.                 goto Label_16
  146.         Label_21:
  147.                 if c = 0 then goto Label_16        (integer)
  148.                 goto Label_17
  149.         Label_16:
  150. ! ASSIGNMENT STMT...
  151.                 t11 := &i
  152.                 t12 := 123
  153.                 *t11 := t12
  154. ! END WHILE...
  155.                 goto Label_15
  156.         Label_17:
  157. ! WHILE...
  158.         Label_22:
  159.                 if b = 0 then goto Label_24        (integer)
  160.                 goto Label_23
  161.         Label_23:
  162. ! ASSIGNMENT STMT...
  163.                 t13 := &i
  164.                 t14 := 111
  165.                 *t13 := t14
  166. ! IF...
  167.                 if b = 0 then goto Label_26        (integer)
  168.                 goto Label_25
  169.         Label_25:
  170. ! THEN...
  171. ! EXIT...
  172.                 goto Label_24
  173. ! END IF...
  174.         Label_26:
  175. ! ASSIGNMENT STMT...
  176.                 t15 := &i
  177.                 t16 := 222
  178.                 *t15 := t16
  179. ! END WHILE...
  180.                 goto Label_22
  181.         Label_24:
  182. ! LOOP...
  183.         Label_27:
  184. ! ASSIGNMENT STMT...
  185.                 t17 := &i
  186.                 t18 := 111
  187.                 *t17 := t18
  188. ! LOOP...
  189.         Label_29:
  190. ! ASSIGNMENT STMT...
  191.                 t19 := &i
  192.                 t20 := 222
  193.                 *t19 := t20
  194. ! IF...
  195.                 if b = 0 then goto Label_32        (integer)
  196.                 goto Label_31
  197.         Label_31:
  198. ! THEN...
  199. ! EXIT...
  200.                 goto Label_30
  201. ! END IF...
  202.         Label_32:
  203. ! LOOP...
  204.         Label_33:
  205. ! ASSIGNMENT STMT...
  206.                 t21 := &i
  207.                 t22 := 333
  208.                 *t21 := t22
  209. ! IF...
  210.                 if b = 0 then goto Label_36        (integer)
  211.                 goto Label_35
  212.         Label_35:
  213. ! THEN...
  214. ! EXIT...
  215.                 goto Label_34
  216. ! END IF...
  217.         Label_36:
  218. ! ASSIGNMENT STMT...
  219.                 t23 := &i
  220.                 t24 := 444
  221.                 *t23 := t24
  222. ! END LOOP...
  223.                 goto Label_33
  224.         Label_34:
  225. ! IF...
  226.                 if b = 0 then goto Label_38        (integer)
  227.                 goto Label_37
  228.         Label_37:
  229. ! THEN...
  230. ! EXIT...
  231.                 goto Label_30
  232. ! END IF...
  233.         Label_38:
  234. ! ASSIGNMENT STMT...
  235.                 t25 := &i
  236.                 t26 := 555
  237.                 *t25 := t26
  238. ! END LOOP...
  239.                 goto Label_29
  240.         Label_30:
  241. ! ASSIGNMENT STMT...
  242.                 t27 := &i
  243.                 t28 := 666
  244.                 *t27 := t28
  245. ! IF...
  246.                 if b = 0 then goto Label_40        (integer)
  247.                 goto Label_39
  248.         Label_39:
  249. ! THEN...
  250. ! EXIT...
  251.                 goto Label_28
  252. ! END IF...
  253.         Label_40:
  254. ! ASSIGNMENT STMT...
  255.                 t29 := &i
  256.                 t30 := 777
  257.                 *t29 := t30
  258. ! END LOOP...
  259.                 goto Label_27
  260.         Label_28:
  261. ! ASSIGNMENT STMT...
  262.                 t31 := &i
  263.                 t32 := 888
  264.                 *t31 := t32
  265. ! FOR...
  266.                 t36 := &i
  267.                 t37 := 100
  268.                 t38 := t37 * i        (integer)
  269.                 t33 := t38
  270.                 t39 := 200
  271.                 t40 := t39 * i        (integer)
  272.                 t34 := t40
  273.                 t41 := 3
  274.                 t42 := t41 * i        (integer)
  275.                 t35 := t42
  276.                 *t36 := t33
  277.         Label_41:
  278.                 if t33 > t34 then goto Label_42        (integer)
  279. ! ASSIGNMENT STMT...
  280.                 t43 := &i
  281.                 t44 := 1010101
  282.                 *t43 := t44
  283. ! END FOR...
  284.                 t33 := *t36
  285.                 t33 := t33 + t35        (integer)
  286.                 *t36 := t33
  287.                 goto Label_41
  288.         Label_42:
  289. ! FOR...
  290.                 t48 := &i
  291.                 t49 := 3000
  292.                 t45 := t49
  293.                 t50 := 4000
  294.                 t46 := t50
  295.                 t47 := 1
  296.                 *t48 := t45
  297.         Label_43:
  298.                 if t45 > t46 then goto Label_44        (integer)
  299. ! ASSIGNMENT STMT...
  300.                 t51 := &i
  301.                 t52 := 1111
  302.                 *t51 := t52
  303. ! IF...
  304.                 if b = 0 then goto Label_46        (integer)
  305.                 goto Label_45
  306.         Label_45:
  307. ! THEN...
  308. ! ASSIGNMENT STMT...
  309.                 t53 := &i
  310.                 t54 := 2222
  311.                 *t53 := t54
  312. ! EXIT...
  313.                 goto Label_44
  314. ! END IF...
  315.         Label_46:
  316. ! ASSIGNMENT STMT...
  317.                 t55 := &i
  318.                 t56 := 3333
  319.                 *t55 := t56
  320. ! END FOR...
  321.                 t45 := *t48
  322.                 t45 := t45 + t47        (integer)
  323.                 *t48 := t45
  324.                 goto Label_43
  325.         Label_44:
  326. ! ASSIGNMENT STMT...
  327.                 t57 := &i
  328.                 t58 := 4444
  329.                 *t57 := t58
  330. ! MAIN EXIT...
  331.                 mainExit
  332. =======================================
  333.