digraph { node [shape="point"] Call [label="Call",shape="oval"] NewEvalStack [color="green"] NewPhase [label="'init'",color="green",shape="oval"] NVariable [color="green"] mid [color="green",width=0] NameA [label="a",shape="oval"] Root -> UserRoot [label="username"] UserRoot -> Frame [label="'frame'"] Frame -> Call [label="'IP'",color="blue",style="dashed"] Frame -> Param2Value [label="'IP'",color="green",penwidth=4] Param2 -> Param2Value [label="'value'"] Frame -> Param2 [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] Param1 -> Param2 [label="'next_param'"] Param2 -> Param3 [label="'next_param'"] Param1 -> NameA [label="'name'"] OldEvalStack -> Call [label="'inst'",color="green",penwidth=4] OldEvalStack -> Param3 [label="'phase'",color="green",penwidth=4] Frame -> ReturnValue [label="'returnvalue'"] NewFrame -> NSymbols [label="'symbols'"] NewFrame -> Frame [label="'prev'"] NewFrame -> Call [label="'caller'"] NewFrame -> Body [label="'IP'"] Signature -> Body [label="'body'"] Signature -> Params [label="'params'"] NSymbols -> mid [arrowhead="none",color="green",penwidth=4] mid -> NVariable [color="green",penwidth=4] NVariable -> ReturnValue [color="green",label="'value'",penwidth=4] mid -> ParamA [color="green",penwidth=4] Params -> ParamA [label="a"] }