1digraph { 2 compound=true 3 fontname="Inconsolata, Consolas" 4 fontsize=10 5 margin="0,0" 6 ranksep=0.2 7 penwidth=0.5 8 9 node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5] 10 edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal] 11 12 { 13 node [shape=record, fontsize="8", margin="0.04", height=0.2, color=gray] 14 normaljson [label="\{|\"|m|s|g|\"|:|\"|H|e|l|l|o|\\|n|W|o|r|l|d|!|\"|,|\"|\\|u|0|0|7|3|t|a|r|s\"|:|1|0|\}"] 15 16 { 17 rank = same 18 msgstring [label="m|s|g|\\0"] 19 helloworldstring [label="H|e|l|l|o|\\n|W|o|r|l|d|!|\\0"] 20 starsstring [label="s|t|a|r|s\\0"] 21 } 22 } 23 24 subgraph cluster1 { 25 margin="10,10" 26 labeljust="left" 27 label = "Document by Normal Parsing" 28 style=filled 29 fillcolor=gray95 30 node [shape=Mrecord, style=filled, colorscheme=spectral7] 31 32 root [label="{object|}", fillcolor=3] 33 34 { 35 msg [label="{string|<a>}", fillcolor=5] 36 helloworld [label="{string|<a>}", fillcolor=5] 37 stars [label="{string|<a>}", fillcolor=5] 38 ten [label="{number|10}", fillcolor=6] 39 } 40 } 41 42 normaljson -> root [label=" Parse()" lhead="cluster1"] 43 edge [arrowhead=vee] 44 root -> { msg; stars } 45 46 edge [arrowhead="none"] 47 msg -> helloworld 48 stars -> ten 49 50 edge [arrowhead=vee, arrowtail=dot, arrowsize=0.5, dir=both, tailclip=false] 51 msg:a:c -> msgstring:w 52 helloworld:a:c -> helloworldstring:w 53 stars:a:c -> starsstring:w 54 55 msgstring -> helloworldstring -> starsstring [style=invis] 56}