digraph { node [shape="point"] Call [label="Call",shape="oval"] Phase [label="'call'",shape="oval",color="blue"] NewPhase [label="'finish'",shape="oval",color="green"] Param [color="red"] NPhase [label="'init'",shape="oval",color="green"] NEvalStack [color="green"] NSymbols [color="green"] NewFrame [color="green"] NewReturnValue [color="green"] Root -> UserRoot [label="username"] UserRoot -> Frame [label="'frame'",color="blue",style="dashed"] UserRoot -> NewFrame [label="'frame'",color="green",penwidth=4] Frame -> Call [label="'IP'"] Frame -> Phase [label="'phase'",color="blue",style="dashed"] Frame -> NewPhase [label="'phase'",color="green",penwidth=4] Call -> Param [label="'last_param'",color="red",style="dotted"] Frame -> ReturnValue [label="'returnvalue'"] ReturnValue -> Body [label="'body'"] NewFrame -> NEvalStack [label="'evalstack'",color="green",penwidth=4] NewFrame -> NSymbols [label="'symbols'",color="green",penwidth=4] NewFrame -> NPhase [label="'phase'",color="green",penwidth=4] NewFrame -> Frame [label="'prev'",color="green",penwidth=4] NewFrame -> Call [label="'caller'",color="green",penwidth=4] NewFrame -> Body [label="'IP'", color="green",penwidth=4] NewFrame -> NewReturnValue [label="'returnvalue'",color="green",penwidth=4] }