Safe Haskell  None 

Language  Haskell2010 
Analyse a program file and create basic blocks.
Synopsis
 analyseBBlocks :: Data a => ProgramFile (Analysis a) > ProgramFile (Analysis a)
 genBBlockMap :: Data a => ProgramFile (Analysis a) > BBlockMap (Analysis a)
 showBBGr :: (Out a, Show a) => BBGr a > String
 showAnalysedBBGr :: (Out a, Show a) => BBGr (Analysis a) > String
 showBBlocks :: (Data a, Out a, Show a) => ProgramFile (Analysis a) > String
 bbgrToDOT :: BBGr a > String
 type BBlockMap a = Map ProgramUnitName (BBGr a)
 type ASTBlockNode = Int
 type ASTExprNode = Int
 genSuperBBGr :: forall a. Data a => BBlockMap (Analysis a) > SuperBBGr (Analysis a)
 data SuperBBGr a = SuperBBGr {
 superBBGrGraph :: BBGr a
 superBBGrClusters :: IntMap ProgramUnitName
 superBBGrEntries :: Map PUName SuperNode
 showSuperBBGr :: (Out a, Show a) => SuperBBGr (Analysis a) > String
 superBBGrToDOT :: SuperBBGr a > String
 findLabeledBBlock :: String > BBGr a > Maybe Node
 showBlock :: Block a > String
Documentation
analyseBBlocks :: Data a => ProgramFile (Analysis a) > ProgramFile (Analysis a) Source #
Insert basic block graphs into each program unit's analysis
genBBlockMap :: Data a => ProgramFile (Analysis a) > BBlockMap (Analysis a) Source #
Create a mapping of (nonmodule) program unit names to their associated bblock graph.
showBBGr :: (Out a, Show a) => BBGr a > String Source #
Show a basic block graph in a somewhat decent way.
showAnalysedBBGr :: (Out a, Show a) => BBGr (Analysis a) > String Source #
Show a basic block graph without the clutter
showBBlocks :: (Data a, Out a, Show a) => ProgramFile (Analysis a) > String Source #
Pick out and show the basic block graphs in the program file analysis.
type BBlockMap a = Map ProgramUnitName (BBGr a) Source #
A mapping of program unit names to bblock graphs.
type ASTBlockNode = Int Source #
type ASTExprNode = Int Source #
SuperBBGr  

showSuperBBGr :: (Out a, Show a) => SuperBBGr (Analysis a) > String Source #
Show a basic block supergraph
superBBGrToDOT :: SuperBBGr a > String Source #
Output a supergraph in the GraphViz DOT format