Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: markup/graphical/graphml/doux/extracted
Source used for this grammar: Guillaume Doux, A metamodel for the GraphML format 1.0, GraphML.ecore
, 2009/03/16
LocatedElement
, Root
, Element
, Key
, Graph
, Edge
, HyperEdge
, Node
, Port
, EndPoint
, Data
, ElemType
, AttrType
, EdgeType
, Boolean
, Integer
, String
), 0 root (—), 3 top (LocatedElement
, Boolean
, Integer
), 0 bottom (—).[keys]
, [graphs]
, [id]
, [datas]
, [for]
, [attrName]
, [type]
, [defValue]
, [contents]
, [edgeDefault]
, [source]
, [target]
, [sourceport]
, [targetport]
, [endpoints]
, [subgraph]
, [ports]
, [name]
, [node]
2, [port]
, [key]
, [value]
, [edge]
, [graph]
, [double]
, [string]
, [integer]
, [boolean]
, [directed]
, [undirected]
.LocatedElement ::= Root
LocatedElement ::= Element
LocatedElement ::= Port
LocatedElement ::= EndPoint
LocatedElement ::= Data
Root ::= [keys]::Key[graphs]::Graph
Element ::= Key
Element ::= Graph
Element ::= Edge
Element ::= HyperEdge
Element ::= Node
Element ::=
[id]::String [datas]::Data
Key ::= [for]::ElemType [attrName]::String [type]::AttrType [defValue]::String
Graph ::=
[contents]::Element
[edgeDefault]::EdgeTypeEdge ::= [source]::Node [target]::Node [sourceport]::Port [targetport]::Port
HyperEdge ::=
[endpoints]::EndPoint
Node ::=
[subgraph]::Graph [ports]::Port
Port ::= [name]::String
EndPoint ::= [node]::Node [port]::Port
Data ::= [key]::String [value]::String
ElemType ::= [edge]::ε [node]::ε [graph]::ε
AttrType ::= [double]::ε [string]::ε [integer]::ε [boolean]::ε
EdgeType ::= [directed]::ε [undirected]::ε
Boolean ::= "true" "false"
Integer ::= integer
String ::= string