-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Thanks for this library, beats auduchinok/DotParser which has many missing feature bugs; the only other .net GraphVis dot file parser that does not rely on compiled GraphVis C binaries in a .dll.
In some cases the Attributes are located in NodeStatements inside EdgeStatementSyntax rather than in the EdgeStatementSyntax itself.
A -> B [label=mobile]
EdgeStatementSynax
Right=NodeStatementSyntax A
Left=NodeStatementSyntax B [label=mobile]
A -> {B, C} [label=mobile]
EdgeStatementSynax [label=mobile]
Right=NodeStatementSyntax A
Left=SubgraphStatementSyntax
[0] NodeStatementSyntax B
[1] NodeStatementSyntax ,
[2] NodeStatementSyntax C
A -> B -> C [label=mobile]
EdgeStatementSynax
Right=NodeStatementSyntax A
Left=EdgeStatementSyntax
Left=NodeStatementSyntax B
Right=NodeStatementSyntax C [label=mobile]
A -> {B, C} -> D [label=mobile]
EdgeStatementSynax
Right=NodeStatementSyntax A
Left=EdgeStatementSyntax
Left=SubgraphStatementSyntax
[0] NodeStatementSyntax B
[1] NodeStatementSyntax ,
[2] NodeStatementSyntax C
Right=NodeStatementSyntax D [label=mobile]
FYI the attributes apply to all edges in the list of edges in the statement.
digraph { A -> B -> C [label=mobile] } is
It would ideal if the Attributes were set in the top level EdgeStatementSyntax or even copied to each EdgeStatementSyntax.
I am very busy so can not fork and fix this myself. If I have time I shall augment the README.md with a basic introduction, I had to look in the tests to get started with SyntaxTree tree = new Parser(str).Parse();.
You could add a mention to this project on https://graphviz.org/resources It may be a page under https://gitlab.com/graphviz/graphviz .