digraph { node [shape="point"] Phase [label="'value'",shape="oval",color="blue"] Inst [label="Assign",shape="oval"] NewEvalStack [color="green"] StackPhase [label="'assign'",shape="oval",color="green"] NewPhase [label="'init'",shape="oval",color="green"] Root -> UserRoot [label="username"] UserRoot -> Frame [label="'frame'"] Frame -> Phase [label="'phase'",color="blue",style="dashed"] Frame -> NewPhase [label="'phase'",color="green",penwidth=4] Frame -> NewEvalStack [label="'evalstack'",color="green",penwidth=4] Frame -> OldEvalStack [label="'evalstack'",color="blue",style="dashed"] NewEvalStack -> OldEvalStack [label="'prev'",color="green",penwidth=4] Frame -> Inst [label="'IP'",color="blue",style="dashed"] Inst -> Cond [label="'value'"] OldEvalStack -> Inst [label="'inst'",color="green",penwidth=4] OldEvalStack -> StackPhase [label="'phase'",color="green",penwidth=4] Frame -> Cond [label="'IP'",color="green",penwidth=4] Frame -> Returnvalue [label="'returnvalue'"] Frame -> Returnvalue [label="'variable'",color="green",penwidth=4] }