Full graph
digraph test {
"node_0" [label="foo2()" shape=box];
"node_1" [label="foo3()" shape=box style=dashed];
"node_2" [label="foo1()" shape=box];
"node_3" [label="bar1()" shape=box];
"node_4" [label="rec()" shape=box];
"node_5" [label="main()" shape=box];
"node_0" -> "node_1" [label="1"];
"node_2" -> "node_0" [label="1"];
"node_2" -> "node_3" [label="1"];
"node_4" -> "node_4" [label="1"];
"node_5" -> "node_2" [label="2"];
"node_5" -> "node_3" [label="1"];
"node_5" -> "node_4" [label="1"];
}

Function graph
digraph test {
"node_0" [label="foo1()" shape=box];
"node_1" [label="foo2()" shape=box style=filled];
"node_2" [label="bar1()" shape=box];
"node_0" -> "node_1" [label="1"];
"node_0" -> "node_2" [label="1"];
}

Function graph full
digraph test {
"node_0" [label="foo1()" shape=box];
"node_1" [label="foo2()" shape=box];
"node_2" [label="bar1()" shape=box];
"node_3" [label="foo3()" shape=box style=dashed];
"node_0" -> "node_1" [label="1"];
"node_0" -> "node_2" [label="1"];
"node_1" -> "node_3" [label="1"];
}

Function graph full
digraph test {
"node_0" [label="foo1()" shape=box];
"node_1" [label="foo2()" shape=box];
"node_2" [label="bar1()" shape=box];
"node_3" [label="foo3()" shape=box style=dashed];
"node_0" -> "node_1" [label="1"];
"node_0" -> "node_2" [label="1"];
"node_1" -> "node_3" [label="1"];
}

Full graph leaf nodes: foo3(),bar1()
Function graph leaf nodes: foo2(),bar1()
Function graph leaf nodes with implementation: foo2()