digraph { node [shape="point"] Call [label="Call",shape="oval"] CallString [label="'call'",shape="oval",color="green"] NewEvalStack [color="green"] NPhase [label="'init'",shape="oval",color="green"] NEvalStack [color="green"] NSymbols [color="green"] NewFrame [color="green"] NewPhase [label="'init'",color="green",shape="oval"] NReturnValue [color="green"] Root -> UserRoot [label="username"] UserRoot -> Frame [label="'frame'"] Frame -> Call [label="'IP'",color="blue",style="dashed"] Frame -> ParamValue [label="'IP'",color="green",penwidth=4] Param -> ParamValue [label="'value'"] Frame -> Param [label="'phase'",color="blue",style="dashed"] Frame -> NewPhase [label="'phase'",color="green",penwidth=4] 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 -> Param [label="'params'"] Call -> Param [label="'last_param'"] OldEvalStack -> Call [label="'inst'",color="green",penwidth=4] OldEvalStack -> CallString [label="'phase'",color="green",penwidth=4] Frame -> ReturnValue [label="'returnvalue'"] ReturnValue -> Body [label="'body'"] ReturnValue -> Params [label="'params'"] 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 -> NReturnValue [label="'returnvalue'", color="green",penwidth=4] }