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]
graphs.zip
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 .
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.
graphs.zip
FYI the attributes apply to all edges in the list of edges in the statement.

digraph { A -> B -> C [label=mobile] }isIt 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 .