digraph { node [shape="point"] Call [label="Call",shape="oval"] CallString [label="'call'",shape="oval",color="green"] Phase [label="'init'",shape="oval"] NewEvalStack [color="green"] Param [color="red"] Root -> UserRoot [label="username"] UserRoot -> Frame [label="'frame'"] Frame -> Call [label="'IP'",color="blue",style="dashed"] Frame -> Phase [label="'phase'"] Frame -> OldEvalStack [label="'evalstack'",color="blue",style="dashed"] Frame -> NewEvalStack [label="'evalstack'",color="green",penwidth=4] NewEvalStack -> OldEvalStack [label="'prev'",color="green",penwidth=4] Call -> Func [label="'func'"] Call -> Param [label="'params'",color="red",style="dotted"] Frame -> Func [label="'IP'",color="green",penwidth=4] OldEvalStack -> Call [label="'inst'",color="green",penwidth=4] OldEvalStack -> CallString [label="'phase'",color="green",penwidth=4] }