An implementation of term graphs used by the ICurry interpreter.
Author: Michael Hanus, Sascha Ecks
Version: May 2023
viewDot
:: Maybe String -> Int -> DotGraph -> IO ()
Views a dot graph as PDF. |
nodeLabel
:: Node -> String
|
nodeChildren
:: Node -> [Int]
|
addPartialArg
:: Node -> Int -> Node
|
emptyGraph
:: Graph
|
lookupNode
:: Int -> Graph -> Node
|
graphRoot
:: Graph -> Int
|
maxNodeID
:: Graph -> Int
|
addNode
:: Node -> Graph -> (Graph,Int)
|
updateNode
:: Graph -> Int -> Node -> Graph
|
replaceNode
:: Graph -> Int -> Int -> Graph
|
showGraphExp
:: Graph -> Int -> String
|
graphToDot
:: Graph -> [(Int,[(String,String)])] -> Bool -> Bool -> DotGraph
|
fullGraphToDot
:: Graph -> [(Int,[(String,String)])] -> Bool -> DotGraph
|
reachableGraph
:: Graph -> [Int] -> Graph
|
Type synonym: NodeID = Int
Type synonym: ChoiceID = Int
Constructors:
PartFuncCall
:: Int -> PartCall
PartConsCall
:: Int -> PartCall
Constructors:
FuncNode
:: String -> [NodeID] -> Node
ConsNode
:: String -> [NodeID] -> Node
PartNode
:: String -> PartCall -> [NodeID] -> Node
ChoiceNode
:: ChoiceID -> NodeID -> NodeID -> Node
FreeNode
:: Node
Constructors:
Views a dot graph as PDF.
If the first argument is |
|
|
|
|
|
|
|
|
|
|