
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: markup/graphical/dot/rascal/abstract/extracted
Source used for this grammar: Bert Lisser, lang::dot::Dot, 2012 [GitHub]
Id, DotGraph, Stms, NodeId, PortId, CompassPt, Stm, Attr, Attrs, Outline, Dotline), 0 root (—), 1 top (Dotline), 0 bottom (—).[id] 5, [stmts] 2, [graph] 2, [digraph], [N] 5, [NE], [E] 19, [SE], [S] 3, [SW], [W], [NW], [C], [_], [attrs] 14, [nid] 2, [from] 6, [to] 6, [nfrom] 6, [sfrom] 6, [nto] 6, [sto] 6, [stms] 2, [prop] 2, [val] 2, [A], [GRAPH], [NODE], [EDGE], [key], [args], [outline].Id ::= string
DotGraph ::= [graph]::[id]::Id [stmts]::Stms [digraph]::[id]::Id [stmts]::Stms
Stms ::=
StmNodeId ::= Id PortId
PortId ::= Id CompassPt
CompassPt ::= [N]::ε [NE]::ε [E]::ε [SE]::ε [S]::ε [SW]::ε [W]::ε [NW]::ε [C]::ε [_]::ε
Stm ::= [N]::[id]::Id [attrs]::Attrs [N]::[id]::Id [N]::[nid]::NodeId [attrs]::Attrs [N]::[nid]::NodeId [E]::[from]::Id [to]::Id [attrs]::Attrs [E]::[from]::Id [to]::Id [E]::[nfrom]::NodeId [to]::Id [attrs]::Attrs [E]::[nfrom]::NodeId [to]::Id [E]::[sfrom]::Stm [to]::Id [attrs]::Attrs [E]::[sfrom]::Stm [to]::Id [E]::[from]::Id [nto]::NodeId [attrs]::Attrs [E]::[from]::Id [nto]::NodeId [E]::[nfrom]::NodeId [nto]::NodeId [attrs]::Attrs [E]::[nfrom]::NodeId [nto]::NodeId [E]::[sfrom]::Stm [nto]::NodeId [attrs]::Attrs [E]::[sfrom]::Stm [nto]::NodeId [E]::[from]::Id [sto]::Stm [attrs]::Attrs [E]::[from]::Id [sto]::Stm [E]::[nfrom]::NodeId [sto]::Stm [attrs]::Attrs [E]::[nfrom]::NodeId [sto]::Stm [E]::[sfrom]::Stm [sto]::Stm [attrs]::Attrs [E]::[sfrom]::Stm [sto]::Stm [S]::[id]::Id [stms]::Stms [S]::[stms]::Stms [A]::[prop]::Id [val]::Id [GRAPH]::[attrs]::Attrs [NODE]::[attrs]::Attrs [EDGE]::[attrs]::Attrs
Attr ::= [prop]::string [val]::Id
Attrs ::=
AttrOutline ::= [key]::integer [args]::string
Dotline ::= [graph]::DotGraph [outline]::Outline