Module CASS.Registry

This module collects all analyses in the analysis system.

Each analysis available in the analysis system must be registered in the top part of this module.

Author: Heiko Hoffmann, Michael Hanus

Version: July 2024

Summary of exported operations:

registeredAnalysisNames :: [String]  Non-deterministic 
Names of all registered analyses.
registeredAnalysisInfos :: [(String,String)]  Non-deterministic 
Names and titles of all registered analyses.
functionAnalysisInfos :: [(String,String)]  Non-deterministic 
Names and titles of all registered function analyses.
lookupRegAnaWorker :: String -> CConfig -> [String] -> IO ()  Non-deterministic 
runAnalysisWithWorkers :: CConfig -> String -> OutputFormat -> AOutFormat -> Bool -> [Handle] -> String -> IO (Either (ProgInfo String) String)  Non-deterministic 
analyzeMain :: (Read a, Show a, ReadWrite a) => CConfig -> Analysis a -> String -> [Handle] -> Bool -> Bool -> IO (Either (ProgInfo a) String)  Non-deterministic 
Generic operation to analyze a module.

Exported operations:

registeredAnalysisNames :: [String]  Non-deterministic 

Names of all registered analyses.

registeredAnalysisInfos :: [(String,String)]  Non-deterministic 

Names and titles of all registered analyses.

functionAnalysisInfos :: [(String,String)]  Non-deterministic 

Names and titles of all registered function analyses.

lookupRegAnaWorker :: String -> CConfig -> [String] -> IO ()  Non-deterministic 

runAnalysisWithWorkers :: CConfig -> String -> OutputFormat -> AOutFormat -> Bool -> [Handle] -> String -> IO (Either (ProgInfo String) String)  Non-deterministic 

analyzeMain :: (Read a, Show a, ReadWrite a) => CConfig -> Analysis a -> String -> [Handle] -> Bool -> Bool -> IO (Either (ProgInfo a) String)  Non-deterministic 

Generic operation to analyze a module. The parameters are the analysis, the name of the main module to be analyzed, the handles for the workers, a flag indicating whether the (re-)analysis should be enforced, and a flag indicating whether the analysis results should be loaded and returned (if the flag is false, the result contains the empty program information). An error occurred during the analysis is returned as (Right ...).