Files
Construction-of-Compilers/Project-02-03-04/example_cfg.dot
Jan-Niclas Loosen c66222050b first running version
2026-01-22 00:18:15 +01:00

63 lines
1.7 KiB
Plaintext

digraph CFG {
node [fontname="Helvetica"];
n36 [label="2", shape=box];
n36 -> n37;
n37 [label="CALL f(2, 3)", shape=box, style=filled, color=orange];
n37 -> n4;
n4 [label="START f(x, y, z)", shape=box, style=filled, color=green];
n4 -> n6;
n6 [label="2", shape=box];
n6 -> n7;
n7 [label="y = 2", shape=box];
n7 -> n8;
n8 [label="3", shape=box];
n8 -> n9;
n9 [label="z = 3", shape=box];
n9 -> n29;
n29 [label="x", shape=box];
n29 -> n30;
n30 [label="CALL g(x)", shape=box, style=filled, color=orange];
n30 -> n11;
n11 [label="START g(x)", shape=box, style=filled, color=green];
n11 -> n13;
n13 [label="7", shape=box];
n13 -> n14;
n14 [label="x = 7", shape=box];
n14 -> n15;
n15 [label="y", shape=box];
n15 -> n16;
n16 [label="0", shape=box];
n16 -> n17;
n17 [label="(y > 0)", shape=box];
n17 -> n18;
n18 [label="<>", shape=diamond];
n18 -> n22 [label="T"];
n22 [label="y", shape=box];
n22 -> n23;
n23 [label="CALL g(y)", shape=box, style=filled, color=orange];
n23 -> n11;
n23 -> n25;
n25 [label="RET g(y)", shape=box, style=filled, color=orange];
n28 [label="x", shape=box];
n28 -> n12;
n12 [label="END g(x)", shape=box, style=filled, color=green];
n12 -> n25;
n12 -> n32;
n32 [label="RET g(x)", shape=box, style=filled, color=orange];
n32 -> n33;
n33 [label="x", shape=box];
n33 -> n34;
n34 [label="(g(x) + x)", shape=box];
n34 -> n5;
n5 [label="END f(x, y, z)", shape=box, style=filled, color=green];
n5 -> n39;
n39 [label="RET f(2, 3)", shape=box, style=filled, color=orange];
n34 -> n5;
n18 -> n26 [label="F"];
n26 [label="8", shape=box];
n26 -> n27;
n27 [label="x = 8", shape=box];
n27 -> n28;
n30 -> n32;
n37 -> n39;
}