An implementation of term graphs used by the ICurry interpreter.
Author: Michael Hanus
Version: January 2021
viewDot
:: Maybe String -> Int -> DotGraph -> IO () Views a dot graph as PDF. |
nodeLabel
:: Node -> String |
addPartialArg
:: Node -> Int -> Node |
emptyGraph
:: Graph |
lookupNode
:: Int -> Graph -> Node |
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 |
|
|
|
|
|
|
|
|
|