digraph CFG { node [fontname="Helvetica"]; n31 [label="START", shape=circle]; n31 -> n59; n59 [label="f(2,3)", shape=box]; n59 -> n33; n33 [label="f(['x', 'y', 'z']) { y = 2; z = 3; let g(['x']) { x = 7; if ((y > 0)) then { g(y) } else { x = 8 }; x } in (g(x) + x) }", shape=box]; n33 -> n35; n35 [label="2", shape=box]; n35 -> n36; n36 [label="y = 2", shape=box]; n36 -> n37; n37 [label="3", shape=box]; n37 -> n38; n38 [label="z = 3", shape=box]; n38 -> n55; n55 [label="g(x)", shape=box]; n55 -> n39; n39 [label="g(['x']) { x = 7; if ((y > 0)) then { g(y) } else { x = 8 }; x }", shape=box]; n39 -> n41; n41 [label="7", shape=box]; n41 -> n42; n42 [label="x = 7", shape=box]; n42 -> n43; n43 [label="y", shape=box]; n43 -> n44; n44 [label="0", shape=box]; n44 -> n45; n45 [label="(y > 0)", shape=box]; n45 -> n46; n46 [label="(y > 0)", shape=diamond]; n46 -> n47; n47 [label="", shape=box]; n47 -> n50; n50 [label="g(y)", shape=box]; n50 -> n39; n46 -> n48; n48 [label="", shape=box]; n48 -> n52; n52 [label="8", shape=box]; n52 -> n53; n53 [label="x = 8", shape=box]; n53 -> n49; n49 [label="", shape=box]; n49 -> n54; n54 [label="x", shape=box]; n54 -> n40; n40 [label="g(['x']) { x = 7; if ((y > 0)) then { g(y) } else { x = 8 }; x }", shape=box]; n40 -> n51; n51 [label="", shape=box]; n51 -> n49; n40 -> n56; n56 [label="", shape=box]; n56 -> n57; n57 [label="x", shape=box]; n57 -> n58; n58 [label="(g(x) + x)", shape=box]; n58 -> n34; n34 [label="f(['x', 'y', 'z']) { y = 2; z = 3; let g(['x']) { x = 7; if ((y > 0)) then { g(y) } else { x = 8 }; x } in (g(x) + x) }", shape=box]; n34 -> n60; n60 [label="", shape=box]; n60 -> n32; n32 [label="END", shape=doublecircle]; }