| |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Description | |||||||||||||||||||||||||||||||||||||||||
Synopsis | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Representation | |||||||||||||||||||||||||||||||||||||||||
type CallGraph = LRel CGNode CGNode CGEdgeType | |||||||||||||||||||||||||||||||||||||||||
The type of conditional call graphs. | |||||||||||||||||||||||||||||||||||||||||
data CGNode | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
type CGEdgeType = String | |||||||||||||||||||||||||||||||||||||||||
The type of edges types in call graphs. | |||||||||||||||||||||||||||||||||||||||||
emptyCG :: CallGraph | |||||||||||||||||||||||||||||||||||||||||
Empty call graph. | |||||||||||||||||||||||||||||||||||||||||
appendCG :: CallGraph -> CallGraph -> CallGraph | |||||||||||||||||||||||||||||||||||||||||
Append two call graphs to form a new one. | |||||||||||||||||||||||||||||||||||||||||
addEdgeToCG :: CGNode -> CGNode -> CGEdgeType -> CallGraph -> CallGraph | |||||||||||||||||||||||||||||||||||||||||
Add an edge of given type to a call graph. | |||||||||||||||||||||||||||||||||||||||||
addCallEdge :: CGNode -> CGNode -> CallGraph -> CallGraph | |||||||||||||||||||||||||||||||||||||||||
Add a call edge to a call graph. | |||||||||||||||||||||||||||||||||||||||||
addNestEdge :: CGNode -> CGNode -> CallGraph -> CallGraph | |||||||||||||||||||||||||||||||||||||||||
Add a nesting edge to a call graph. | |||||||||||||||||||||||||||||||||||||||||
doit :: IO () | |||||||||||||||||||||||||||||||||||||||||
API | |||||||||||||||||||||||||||||||||||||||||
java2ccg :: (Term a, MonadPlus m) => CGNode -> Declarations -> a -> m CallGraph | |||||||||||||||||||||||||||||||||||||||||
Main conversion function | |||||||||||||||||||||||||||||||||||||||||
args2str :: [Maybe TypeName] -> [TypeName] | |||||||||||||||||||||||||||||||||||||||||
projectCG :: Rel CGNode CGNode -> CallGraph -> CallGraph | |||||||||||||||||||||||||||||||||||||||||
Given a relation, compute the sub graph of a package graph that holds only edges that occur in the relation. | |||||||||||||||||||||||||||||||||||||||||
Helpers for dot generation | |||||||||||||||||||||||||||||||||||||||||
cg2dot :: String -> CallGraph -> String | |||||||||||||||||||||||||||||||||||||||||
Print a call graph to dot file content. | |||||||||||||||||||||||||||||||||||||||||
lrel2dot | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
printEdge :: ((CGNode, CGNode), CGEdgeType) -> DotStatement | |||||||||||||||||||||||||||||||||||||||||
Print edge as dot statement | |||||||||||||||||||||||||||||||||||||||||
printNode :: CGNode -> DotStatement | |||||||||||||||||||||||||||||||||||||||||
Print node as a dot statement. | |||||||||||||||||||||||||||||||||||||||||
edge2str :: (CGNode, CGNode) -> (ClassName, ClassName) | |||||||||||||||||||||||||||||||||||||||||
Create tuple of string representations for edge. | |||||||||||||||||||||||||||||||||||||||||
cgnode2str :: CGNode -> ClassName | |||||||||||||||||||||||||||||||||||||||||
Create string representation of node. | |||||||||||||||||||||||||||||||||||||||||
isInvalid :: CGNode -> Bool | |||||||||||||||||||||||||||||||||||||||||
Test whether the node has any unresolved parts. | |||||||||||||||||||||||||||||||||||||||||
Produced by Haddock version 0.6 |