| |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
| 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 | |||||||||||||||||||||||||||||||||||||||||