0 | module Graphics.DOT.AST
32 | data DOTID : Type where
33 | StringID : (id_ : String) -> DOTID
34 | NameID : (name : String) -> DOTID
35 | Numeral : (num : String) -> DOTID
36 | HTML : (htmlStr : String) -> DOTID
40 | data Port : Type where
43 | IDPort : (id_ : DOTID) -> Maybe CompassPoint -> Port
47 | PlainPort : CompassPoint -> Port
51 | data NodeID : Type where
52 | MkNodeID : (id_ : DOTID) -> (mPort : Maybe Port) -> NodeID
57 | data Assign : Type where
58 | MkAssign : (lhs : DOTID)
64 | data EdgeOp : Type where
72 | data EdgeRHS : Type where
73 | MkEdgeRHS : (op : EdgeOp)
74 | -> Either NodeID Subgraph
79 | data Subgraph : Type where
80 | MkSubgraph : Maybe (Keyword, Maybe DOTID)
81 | -> (stmtList : List Stmt)
86 | data Stmt : Type where
88 | NodeStmt : (nodeID : NodeID) -> (attrList : List (List Assign)) -> Stmt
90 | EdgeStmt : Either NodeID Subgraph
91 | -> (rhs : List1 EdgeRHS)
92 | -> (attrList : List (List Assign))
97 | AttrStmt : (kw : Keyword)
98 | -> (attrList : List (List Assign))
101 | AssignStmt : (a : Assign) -> Stmt
103 | SubgraphStmt : (subGr : Subgraph) -> Stmt
107 | data Graph : Type where
110 | MkGraph : (strict : Maybe Keyword)
111 | -> (graphTy : Keyword)
112 | -> (mID_ : Maybe DOTID)
113 | -> (stmtList : List Stmt)