2Module : IRTS.CodegenCommon
3Description : Common data structures required for all code generators.
6Maintainer : The Idris Community.
8module IRTS.CodegenCommon where
12import IRTS.Defunctionalise
14data DbgLevel = NONE | DEBUG | TRACE deriving Eq
15data OutputType = Raw | Object | Executable deriving (Eq, Show)
17-- | Everything which might be needed in a code generator.
19-- A CG can choose which level of Decls to generate code from
20-- (simplified, defunctionalised or merely lambda lifted) and has
21-- access to the list of object files, libraries, etc.
23data CodegenInfo = CodegenInfo {
25 , outputType :: OutputType
26 , targetTriple :: String
28 , includes :: [FilePath]
29 , importDirs :: [FilePath]
30 , compileObjs :: [String]
31 , compileLibs :: [String]
32 , compilerFlags :: [String]
33 , debugLevel :: DbgLevel
34 , simpleDecls :: [(Name, SDecl)]
35 , defunDecls :: [(Name, DDecl)]
36 , liftDecls :: [(Name, LDecl)]
38 , exportDecls :: [ExportIFace]
41type CodeGenerator = CodegenInfo -> IO ()
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list