digraph { rankdir=TB compound=true fontname="Inconsolata, Consolas" fontsize=10 margin="0,0" ranksep=0.3 nodesep=1 penwidth=0.5 node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5, colorscheme=spectral7] edge [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5] { node [shape=record, style=filled, margin=0.1, height=0.3] json [fillcolor=3, label="[|\"|a|b|c|\"|,|[|1|,|2|]|,|3|]|\\0"] stack [fillcolor=4, label="{string|s|len=3}|{array|e|size=2}| | | | |"] abc [fillcolor=3, label="a|b|c|\\0"] } { node [shape=plaintext, margin=0] cjson [label="c->json"] ctop [label="c->top"] desc [style=solid,label="\l1. lept_parse()\l 2. lept_parse_value()\l 3. lept_parse_array()\l"] } { node [shape=Mrecord,style=filled] n1 [fillcolor=7,label="{number|n=1}"] n2 [fillcolor=7,label="{number|n=2}"] } cjson -> json:j ctop -> stack:t json -> desc [style=invis] stack:s -> abc:h stack:e -> n1; stack:e -> n2 [style=invis] n1 -> n2 [style=dashed,constraint=false] }