Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: markup/graphical/dot/palies/extracted
Source used for this grammar: Jean Paliès, DOT 1.0, DOT.ecore
, 2005/06/30 [Atlantic]
Boolean
, Integer
, String
, Label
, SimpleLabel
, ComplexLabel
, Compartment
, VerticalCompartment
, HorizontalCompartment
, SimpleCompartment
, Anchor
, GraphElement
, Graph
, Layer
, Nodelike
, SubGraph
, Node
, Arc
, DirectedArc
, UndirectedArc
, Shape
, NodeShape
, SimpleNodeShape
, PointNodeShape
, ComplexNodeShape
, PolygonNodeShape
, MNodeShape
, RecordNodeShape
, ArrowShape
), 0 root (—), 1 top (GraphElement
), 1 bottom (Double
3).[content]
2, [compartments]
3, [complexLabel]
2, [anchor]
2, [name]
, [source]
, [type]
, [rankDir]
, [labeljust]
, [labelloc]
2, [concentrate]
, [nodes]
3, [boundingBox]
, [compound]
, [layers]
2, [nodeSeparation]
, [ordering]
, [size]
2, [ratio]
, [center]
, [arcs]
, [graph]
, [layerSeparator]
, [fixedSize]
, [fontname]
, [fontsize]
, [height]
, [width]
, [shape]
, [arrowHead]
, [headlabel]
, [taillabel]
, [arrowTail]
, [tail_lp]
, [head_lp]
, [fromNode]
, [toNode]
, [constraint]
, [group]
, [minlen]
, [sameHead]
, [sameTail]
, [lhead]
, [ltail]
, [decorate]
, [sides]
, [skew]
, [distortion]
, [isRegular]
, [orientation]
, [toplabel]
, [bottomlabel]
, [clipping]
, [isPlain]
.Boolean ::= "true" "false"
Integer ::= integer
String ::= string
Label ::= SimpleLabel
Label ::= ComplexLabel
SimpleLabel ::= [content]::String
ComplexLabel ::=
[compartments]::Compartment
Compartment ::= VerticalCompartment
Compartment ::= HorizontalCompartment
Compartment ::= SimpleCompartment
VerticalCompartment ::= [complexLabel]::ComplexLabel [compartments]::Compartment [anchor]::Anchor
HorizontalCompartment ::= [complexLabel]::ComplexLabel [compartments]::Compartment [anchor]::Anchor
SimpleCompartment ::= [content]::String
Anchor ::= [name]::String [source]::Compartment
GraphElement ::= Graph
GraphElement ::= Layer
GraphElement ::= Nodelike
GraphElement ::= Arc
GraphElement ::= Shape
Graph ::= [type]::String [rankDir]::String [labeljust]::String [labelloc]::String [concentrate]::Boolean [nodes]::Nodelike[boundingBox]::String [compound]::Boolean [layers]::Layer [nodeSeparation]::Double [ordering]::String [size]::String [ratio]::String [center]::Boolean
Layer ::= [nodes]::Nodelike[arcs]::Arc [graph]::Graph [layerSeparator]::String
Nodelike ::= SubGraph
Nodelike ::= Node
SubGraph ::=
[nodes]::Nodelike
[labelloc]::StringNode ::= [fixedSize]::Boolean [fontname]::String [fontsize]::Integer [height]::Integer [width]::Integer [shape]::NodeShape
Arc ::= DirectedArc
Arc ::= UndirectedArc
DirectedArc ::= [arrowHead]::ArrowShape [headlabel]::Label [taillabel]::Label [arrowTail]::ArrowShape [tail_lp]::Double [head_lp]::Double
UndirectedArc ::=
[fromNode]::Nodelike [toNode]::Nodelike [layers]::Layer
[constraint]::Boolean [group]::String [minlen]::Integer [sameHead]::String [sameTail]::String [lhead]::Nodelike [ltail]::Nodelike [decorate]::BooleanShape ::= NodeShape
Shape ::= ArrowShape
NodeShape ::= SimpleNodeShape
NodeShape ::= PointNodeShape
NodeShape ::= ComplexNodeShape
SimpleNodeShape ::= ε
PointNodeShape ::= ε
ComplexNodeShape ::= PolygonNodeShape
ComplexNodeShape ::= MNodeShape
ComplexNodeShape ::= RecordNodeShape
PolygonNodeShape ::= [sides]::Integer [skew]::Integer [distortion]::Integer [isRegular]::Boolean [orientation]::Integer
MNodeShape ::= [toplabel]::Label [bottomlabel]::Label
RecordNodeShape ::= ε
ArrowShape ::= [clipping]::String [isPlain]::Boolean [size]::Integer