Safe Haskell | None |
---|---|
Language | Haskell98 |
- main :: IO ()
- fullUsageInfo :: String
- type Options = [Flag]
- data Flag
- solverType :: [Flag] -> Solver
- literalsBehaviour :: [Flag] -> AssumeLiterals
- getExcludes :: [Flag] -> [Char]
- options :: [OptDescr Flag]
- compilerOpts :: [String] -> IO ([Flag], [String])
- outputNotRequired :: [[Char]]
- functionality :: [(String, (FileOrDir -> [Filename] -> FileOrDir -> Options -> IO (), String))]
- refactorings :: [(String, (FileOrDir -> [Filename] -> FileOrDir -> Options -> IO (), String))]
- analyses :: [(String, (FileOrDir -> [Filename] -> FileOrDir -> Options -> IO (), String))]
- version :: Double
- introMessage :: [Char]
- usage :: [Char]
- menu :: [Char]
- typeStructuring :: FileOrDir -> [Filename] -> FileOrDir -> t -> IO ()
- ast :: [Char] -> t -> [Char] -> t1 -> IO ()
- asts :: FileOrDir -> [Filename] -> t -> t1 -> IO ()
- countVarDecls :: FileOrDir -> [Filename] -> t -> t1 -> IO ()
- loops :: FileOrDir -> [Filename] -> t -> t1 -> IO ()
- lvaA :: FileOrDir -> [Filename] -> t -> t1 -> IO ()
- dead :: FileOrDir -> [Filename] -> FileOrDir -> t -> IO ()
- commonToArgs :: Directory -> [Filename] -> FileOrDir -> t -> IO ()
- common :: Directory -> [Filename] -> FileOrDir -> t -> IO ()
- equivalences :: FileOrDir -> [Filename] -> FileOrDir -> t -> IO ()
- units :: FileOrDir -> [Filename] -> FileOrDir -> [Flag] -> IO ()
- unitCriticals :: FileOrDir -> [Filename] -> t -> [Flag] -> IO ()
- doAnalysis :: (Program A -> Program Annotation) -> FileOrDir -> [Filename] -> IO ()
- doAnalysisSummary :: (Monoid s, Show s) => (Program A -> s) -> FileOrDir -> [Filename] -> IO ()
- doAnalysisReport :: ([(Filename, Program A)] -> (String, t1)) -> FileOrDir -> [Filename] -> t -> IO ()
- doAnalysisReport' :: ([(Filename, Program A)] -> (String, t1)) -> FileOrDir -> [Filename] -> t -> IO ()
- doRefactor :: ([(Filename, Program A)] -> (String, [(Filename, Program Annotation)])) -> FileOrDir -> [Filename] -> FileOrDir -> IO ()
- doRefactor' :: ([(Filename, Program A)] -> (String, [(Filename, Program Annotation)])) -> FileOrDir -> [Filename] -> FileOrDir -> IO ()
- getDir :: String -> String
- readParseSrcDir :: FileOrDir -> [Filename] -> IO [(Filename, SourceText, Program A)]
- rGetDirContents :: FileOrDir -> IO [String]
- isFortran :: [Char] -> Bool
- readParseSrcFile :: Filename -> IO (Filename, SourceText, Program A)
- checkDir :: [Char] -> IO ()
- isDirectory :: FileOrDir -> IO Bool
- outputFiles :: FileOrDir -> FileOrDir -> [(Filename, SourceText, Program Annotation)] -> IO ()
- outputFiles' :: FileOrDir -> FileOrDir -> [(Filename, SourceText)] -> IO ()
- changeDir :: Eq a => [a] -> [a] -> [a] -> [a]
- outputAnalysisFiles :: FileOrDir -> [Program Annotation] -> [Filename] -> IO ()
- parse :: Filename -> IO (Program ())
- fileExt :: [Char] -> [Char]
- fooTrans :: Data from => from -> from
- doFooTrans :: FilePath -> IO (String, [ProgUnit Annotation])
The main entry point to CamFort
The entry point to CamFort. Displays user information, and handlers which functionality is being requested
Options for CamFort and information on the different modes
solverType :: [Flag] -> Solver Source
literalsBehaviour :: [Flag] -> AssumeLiterals Source
getExcludes :: [Flag] -> [Char] Source
Which modes do not require an output
outputNotRequired :: [[Char]] Source
functionality :: [(String, (FileOrDir -> [Filename] -> FileOrDir -> Options -> IO (), String))] Source
refactorings :: [(String, (FileOrDir -> [Filename] -> FileOrDir -> Options -> IO (), String))] Source
List of refactorings provided in CamFort
analyses :: [(String, (FileOrDir -> [Filename] -> FileOrDir -> Options -> IO (), String))] Source
List of analses provided by CamFort
Usage and about information
introMessage :: [Char] Source
Wrappers on all of the features
countVarDecls :: FileOrDir -> [Filename] -> t -> t1 -> IO () Source
Builders for analysers and refactorings
doAnalysis :: (Program A -> Program Annotation) -> FileOrDir -> [Filename] -> IO () Source
Performs an analysis provided by its first parameter on the directory of its second, excluding files listed by its third
doAnalysisSummary :: (Monoid s, Show s) => (Program A -> s) -> FileOrDir -> [Filename] -> IO () Source
Performs an analysis provided by its first parameter which generates information s
, which is then combined
together (via a monoid)
doAnalysisReport :: ([(Filename, Program A)] -> (String, t1)) -> FileOrDir -> [Filename] -> t -> IO () Source
Performs an analysis which reports to the user, but does not output any files
doAnalysisReport' :: ([(Filename, Program A)] -> (String, t1)) -> FileOrDir -> [Filename] -> t -> IO () Source
doRefactor :: ([(Filename, Program A)] -> (String, [(Filename, Program Annotation)])) -> FileOrDir -> [Filename] -> FileOrDir -> IO () Source
Performs a refactoring provided by its first parameter, on the directory of the second, excluding files listed by third, output to the directory specified by the fourth parameter
doRefactor' :: ([(Filename, Program A)] -> (String, [(Filename, Program Annotation)])) -> FileOrDir -> [Filename] -> FileOrDir -> IO () Source
Source directory and file handling
readParseSrcDir :: FileOrDir -> [Filename] -> IO [(Filename, SourceText, Program A)] Source
Read files from a direcotry, excluding those listed by the second parameter
rGetDirContents :: FileOrDir -> IO [String] Source
readParseSrcFile :: Filename -> IO (Filename, SourceText, Program A) Source
Read a specific file, and parse it
isDirectory :: FileOrDir -> IO Bool Source
outputFiles :: FileOrDir -> FileOrDir -> [(Filename, SourceText, Program Annotation)] -> IO () Source
Given a directory and list of triples of filenames, with their source text (if it exists) and their AST, write these to the director
outputFiles' :: FileOrDir -> FileOrDir -> [(Filename, SourceText)] -> IO () Source
changeDir :: Eq a => [a] -> [a] -> [a] -> [a] Source
changeDir is used to change the directory of a filename string. If the filename string has no directory then this is an identity
outputAnalysisFiles :: FileOrDir -> [Program Annotation] -> [Filename] -> IO () Source
output pre-analysis ASTs into the directory with the given file names (the list of ASTs should match the list of filenames)
Simple example
fooTrans :: Data from => from -> from Source
A simple, sample transformation using the transformBi
function
doFooTrans :: FilePath -> IO (String, [ProgUnit Annotation]) Source
Parse a file and apply the fooTrans
transformation, outputting to the filename + .out