(prog 1 (subpDef 3 void false false int> multiply> // multiply subpDef (labeldSt 5 void (list 6 ) (block 8 void (block 9 void line 3 (assign 10 int line 4 //a := x; ) (assign 13 int line 4 //b := y; ) (assign 16 int line 4 //c := 0; ) (while 19 void line 5 //while b > 0 do (labeldSt 20 bool (list 21 ) //// _lab4: loopBackLabel (expStmt 23 bool // b > 0 (cmpGt 24 bool ))) (labeldSt 27 void (list 28 ) (block 30 void line 6 (if 31 void line 7 //if odd b then (cmpEq 32 bool //// b and 1 == (and 33 int ) ) (labeldSt 37 int (list 38 ) (assign 40 int line 7 //c := c + a; (add 42 int ))) (labeldSt 45 void (list 46 ) ) (labeldSt 48 void (list 49 ) )) (assign 51 int line 8 //a := 2 * a; (mult 53 int )) (assign 56 int line 8 //b := b / 2; (div 58 int )) (labeldSt 61 void (list 62 ) //// _lab5: continue target ))) (expStmt 64 int ) (labeldSt 65 void (list 66 ) //// _lab6: break target )) (return 68 int line 10 //return c; ))))) (subpDef 70 void false false int> main> // main subpDef (labeldSt 72 void (list 73 ) (block 75 void (block 76 void line 16 (assign 77 int line 17 //x := m; // const m=7 ) (assign 80 int line 17 //y := n; // const n=85 ) (expStmt 83 int line 18 //write x; (call 84 int //// call printf("%d", x); (addr 85 > true false int>> > true false int> printf>) (list 87 (decay 88 "%d">) ))) (expStmt 91 int line 18 //write y; (call 92 int //// call printf("%d", y); (addr 93 > true false int>> > true false int> printf>) (list 95 (decay 96 "%d">) ))) (expStmt 99 int line 18 //writeln; (call 100 int //// call printf("´n"); (addr 101 > true false int>> > true false int> printf>) (list 103 (decay 104 "´n">)))) (expStmt 106 int line 18 //write multiply(x, y); (call 107 int //// call printf("%d", (addr 108 > true false int>> > true false int> printf>) (list 110 (decay 111 "%d">) (call 113 int //call multiply(x, y) ); (addr 114 false false int>> false false int> multiply>) (list 116 ))))) (expStmt 119 int line 18 //writeln; (call 120 int //// call printf("´n"); (addr 121 > true false int>> > true false int> printf>) (list 123 (decay 124 "´n">))))))))) // end of main SymTable Root type int (flags 3 12) size 4 type offset (flags 3 12) size 4 type void (flags 3 12) size 1 type bool (flags 3 12) size 4 org int type char (flags 3 12) size 1 org int type short (flags 3 12) size 2 type long (flags 3 12) size 4 type long_long (flags 3 12) size 8 type u_char (flags 3 12) size 1 type u_short (flags 3 12) size 2 type u_int (flags 3 12) size 4 type u_long (flags 3 12) size 4 type u_long_long (flags 3 12) size 8 type address (flags 3 12) size 4 org u_long type float (flags 3 12) size 4 type double (flags 3 12) size 8 type long_double (flags 3 12) size 8 type sizeExp elemCount lowerBound 0 tag _tag1 (flags 2) type (flags 11) subp printf > true false int> extern type size 4 param _param1 3 int in printf (flags 2) private auto type > true false int> type size 3 elemCount 3 lowerBound 0 type size 2 elemCount 2 lowerBound 0 subp main false false int> callList list 0 public type > true false int>> size 4 type false false int>> size 4 SymTable main parent SymTable Root subp main type false false int> subp multiply false false int> in main param1 x private var x 1 int in main private auto var y 2 int in main private auto label _lab10 kind 1 (flags 2) label _lab11 kind 15 (flags 2) SymTable multiply parent SymTable main subp multiply param x 2 int in multiply private auto param y 4 int in multiply private auto type false false int> var a 1 int in multiply private auto var b 3 int in multiply private auto var c 5 int in multiply private auto label _lab1 kind 2 (flags 2) label _lab2 kind 3 (flags 2) label _lab3 kind 20 (flags 2) label _lab4 kind 6 (flags 2) label _lab5 kind 8 (flags 2) label _lab6 kind 21 (flags 2) label _lab7 kind 7 (flags 2) label _lab8 kind 1 (flags 2) label _lab9 kind 15 (flags 2) SymTable Constant intC 4 int intC 1 int intC 2 int intC 8 int intC 0 int boolC true bool (flags 3) value 1 boolC false bool (flags 3) value 0 intC 00L long floatC 0.0F float floatC 0.0 double stringC "%d" length 3 intC 3 int stringC "\n" length 2 intC 7 int namedC m 7 unique:m intC 85 int namedC n 85 unique:n