digraph pdf { entry [label="enter f()"]; entry -> {while; D}; while [label="while (X)"]; C [style="bold"] "if (Y)" "if (Z)" while -> {"if (Y)"} -> while; break2 break1 "if (Y)" -> {"if (Z)" C}; "if (Y)" -> break2 [constraint = false]; "if (Z)" -> {A break1 B}; {break1 "if (Z)"} -> break2 [color = lightgrey, style = dashed]; break1 -> B; break2 -> {C while}; {rank=same; A break1 B break2} {rank=same; "if (Z)" C} {rank=same; while D} {edge [style=invis]; A -> break1 -> B -> break2; } }