]> granicus.if.org Git - graphviz/commit
Another try at fixing the bug involving the parser and edges involving subgraphs.
authorStephen North <north@pome.client.research.att.com>
Thu, 22 Aug 2013 18:33:12 +0000 (14:33 -0400)
committerStephen North <north@pome.client.research.att.com>
Thu, 22 Aug 2013 18:33:12 +0000 (14:33 -0400)
commiteb2ac0456819ada78e83b5bdbb719ab4cba8704d
tree1db334bbf67467d1619e95a247952f7e4902b085
parente6ab1efb7c850a43fc8e0e4b0822ba041c364233
Another try at fixing the bug involving the parser and edges involving subgraphs.
For example consider
digraph G { a -> b -> {c d} }
digraph G { {rank=same; X Y}  a -> X -> Y}
digraph G { a -> b -> {rank=same; X -> Y [color=red]} [color=blue]; }
In the last example the parser has to keep the anonymous subgraph around
as part of the edgelist being constructed, but when [color=blue] is parsed
it is no longer the "current subgraph".  There are Details. One idea is
that if this continues to be a source of errors, we could overhaul the
parser a bit more aggressively to make better use of the parser's own
stack and employ appropriate types for nodelist, subgraph, edgelist, attrlist
etc. rather than rely on the explicit stack gstack_t *S. Something to consider.
lib/cgraph/grammar.y