digraph { compound=true fontname="Inconsolata, Consolas" fontsize=10 margin="0,0" ranksep=0.3 penwidth=0.5 node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5] edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal] { node [shape=record, fontsize="8", margin="0.04", height=0.2, color=gray] json [label="\{|\"|p|r|o|j|e|c|t|\"|:|\"|l|e|p|t|j|s|o|n|\"|,|\"|s|t|a|r|s|\"|:|1|0|\}"] } subgraph cluster1 { margin="10,10" labeljust="left" label = "lept_value tree" style=filled fillcolor=gray95 node [shape=Mrecord, style=filled, colorscheme=spectral7] root [label="{object|}", fillcolor=3] { project [label="{key|\"project\"}", fillcolor=5] leptjson [label="{string|\"leptjson\"}", fillcolor=5] stars [label="{key|\"stars\"}", fillcolor=5] ten [label="{number|10}", fillcolor=6] } edge [arrowhead=vee] root -> { project; stars } edge [arrowhead="none"] project -> leptjson stars -> ten } json -> root [label=" lept_parse() ", lhead="cluster1"] root -> json [label=" lept_stringify() ", ltail="cluster1"] }