Mysterious Missing Edge
Steps to reproduce
Here is a JSON parser as a (Push-Down Automaton) PDA. I use dot -Tpdf <graph-name> > <graph-name>.pdf
to produce a graph of this PDA.
graph G {
graph [rankdir="TB"];
node [shape="rectangle"];
edge [dir="forward"];
reset [shape=none,label="",width=0,height=0];
ROOT_END [peripheries=2];
reset -- ROOT_START [label="pop:λ, read:λ, push:#"];
ROOT_START -- ARRAY [label="λ,'[', A"];
ROOT_START -- OBJECT [label="λ, '{', O"];
ROOT_START -- ROOT_END [label="λ, '\\0', O"];
ARRAY -- ARRAY [label="λ, '[', A"];
ARRAY -- COMMA [label="A, ']', λ"];
ARRAY -- FALSE [label="λ, 'f', V"];
ARRAY -- NULL [label="λ, 'n', V"];
ARRAY -- NUMBER [label="λ, [0-9], V"];
ARRAY -- OBJECT [label="λ, '{', O"];
ARRAY -- STRING [label="λ, ' '' ', V"];
ARRAY -- TRUE [label="λ, 't', V"];
COLON -- ARRAY [label="λ, '[', A"];
COLON -- FALSE [label="λ, 'f', V"];
COLON -- NULL [label="λ, 'n', V"];
COLON -- NUMBER [label="λ, [0-9], V"];
COLON -- OBJECT [label="λ, '{', O"];
COLON -- STRING [label="λ, ' '' ', V"];
COLON -- TRUE [label="λ, 't', V"];
COMMA -- ROOT_END [label="#, λ, λ"];
COMMA -- ARRAY [label="A, ',', A"];
COMMA -- OBJECT [label="O, ',', O"];
FALSE -- COMMA [label="V, 'alse', λ"];
NULL -- COMMA [label="V, 'ull', λ"];
NUMBER -- COMMA [label="V, [0-9]*, λ"];
OBJECT -- COMMA [label="O, '}', λ"];
OBJECT -- STRING [label="λ, ' '' ', N"];
STRING -- COLON [label="N, ∑*.' '' ', λ"];
STRING -- COMMA [label="V, ∑*.' '' ', λ"];
TRUE -- COMMA [label="V, 'rue', λ"];
}
Expected Behaviour
Observe the edge STRING -- COMMA [label="V, ∑*.' '' ', λ"];
Actual Behaviour
The edge is missing.
OS Version
macOS 14.0
Graphviz Version
dot - graphviz version 9.0.0 (20230911.1827)
Additional info
I am sorry that I have no clue why this error occurs.
I tried restricting all names and labels to [a-zA-Z]. I also tried changing to splines=line
to avoid missing edges in the curved mode. Finally, I tried to switch to digraph
. In all these cases, the edge is still missing.