-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Generate Graphviz documents from a Haskell representation.
--
@package dataflow
@version 0.6.0.0
-- | DataFlow.Graphviz provides a model corresponding to the Graphviz
-- language described at
-- http://www.graphviz.org/content/dot-language. All features in
-- the grammar are not supported.
module DataFlow.Graphviz
newtype ID
ID :: String -> ID
data Attr
Attr :: ID -> ID -> Attr
type AttrList = [Attr]
data Compass
N :: Compass
NE :: Compass
E :: Compass
SE :: Compass
S :: Compass
SW :: Compass
W :: Compass
NW :: Compass
C :: Compass
data Port
Port :: (Maybe ID) -> Compass -> Port
data NodeID
NodeID :: ID -> (Maybe Port) -> NodeID
data Subgraph
Subgraph :: ID -> StmtList -> Subgraph
data EdgeOperator
Arrow :: EdgeOperator
Line :: EdgeOperator
data EdgeOperand
IDOperand :: NodeID -> EdgeOperand
SubgraphOperand :: Subgraph -> EdgeOperand
data EdgeExpr
EdgeExpr :: EdgeOperand -> EdgeOperator -> EdgeOperand -> EdgeExpr
data AttrStmtType
Graph :: AttrStmtType
Node :: AttrStmtType
Edge :: AttrStmtType
data Stmt
NodeStmt :: ID -> AttrList -> Stmt
EdgeStmt :: EdgeExpr -> AttrList -> Stmt
AttrStmt :: AttrStmtType -> AttrList -> Stmt
EqualsStmt :: ID -> ID -> Stmt
SubgraphStmt :: Subgraph -> Stmt
type StmtList = [Stmt]
data Graph
Digraph :: ID -> StmtList -> Graph
instance Eq ID
instance Ord ID
instance Show Attr
instance Eq Attr
instance Show Compass
instance Eq Compass
instance Ord Compass
instance Show Port
instance Eq Port
instance Ord Port
instance Show NodeID
instance Eq NodeID
instance Ord NodeID
instance Show EdgeOperator
instance Eq EdgeOperator
instance Show AttrStmtType
instance Eq AttrStmtType
instance Show Stmt
instance Eq Stmt
instance Show EdgeExpr
instance Eq EdgeExpr
instance Show EdgeOperand
instance Eq EdgeOperand
instance Show Subgraph
instance Eq Subgraph
instance Show Graph
instance Eq Graph
instance Show ID
module DataFlow.Graphviz.EdgeNormalization
normalize :: Graph -> Graph
module DataFlow.Graphviz.Renderer
renderGraphviz :: Graph -> String
instance Renderable Graph
instance Renderable StmtList
instance Renderable Stmt
instance Renderable AttrStmtType
instance Renderable EdgeExpr
instance Renderable EdgeOperand
instance Renderable EdgeOperator
instance Renderable Subgraph
instance Renderable NodeID
instance Renderable Port
instance Renderable AttrList
instance Renderable Attr
instance Renderable ID
module DataFlow.Core
-- | An identifier corresponding to those in Graphviz.
type ID = String
-- | The name of a Diagram or Object.
type Name = String
-- | Operation heading.
type Operation = String
-- | Operation description.
type Description = String
-- | The top level diagram.
data Diagram
Diagram :: (Maybe Name) -> [Object] -> Diagram
-- | An object in a diagram.
data Object
-- | A Input or Output in DFD.
InputOutput :: ID -> Name -> Object
-- | Surrounds other objects, denoting a boundary.
TrustBoundary :: ID -> Name -> [Object] -> Object
-- | A "Function" in DFD.
Function :: ID -> Name -> Object
-- | A "Database" in DFD.
Database :: ID -> Name -> Object
-- | Describes the flow of data between two objects.
Flow :: ID -> ID -> Operation -> Description -> Object
instance Show Object
instance Eq Object
instance Eq Diagram
instance Show Diagram
module DataFlow.Reader
readDiagram :: String -> String -> Either ParseError Diagram
readDiagramFile :: FilePath -> IO (Either ParseError Diagram)
module DataFlow.DFD
type Step = Int
type DFD v = State Step v
incrStep :: DFD ()
-- | Get the next "step" number (the order of flow arrows in the diagram).
nextStep :: DFD Int
inQuotes :: String -> String
inAngleBrackets :: String -> String
label :: String -> Attr
bold :: String -> String
italic :: String -> String
small :: String -> String
color :: String -> String -> String
convertObject :: Object -> DFD StmtList
convertObjects :: [Object] -> DFD StmtList
defaultGraphStmts :: StmtList
convertDiagram :: Diagram -> DFD Graph
asDFD :: Diagram -> Graph