License | BSD3 |
---|---|
Maintainer | The Idris Community. |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
IRTS.CodegenCommon
Description
Synopsis
- data DbgLevel
- data OutputType
- = Raw
- | Object
- | Executable
- data CodegenInfo = CodegenInfo {
- outputFile :: String
- outputType :: OutputType
- targetTriple :: String
- targetCPU :: String
- includes :: [FilePath]
- importDirs :: [FilePath]
- compileObjs :: [String]
- compileLibs :: [String]
- compilerFlags :: [String]
- debugLevel :: DbgLevel
- simpleDecls :: [(Name, SDecl)]
- defunDecls :: [(Name, DDecl)]
- liftDecls :: [(Name, LDecl)]
- interfaces :: Bool
- exportDecls :: [ExportIFace]
- ttDecls :: [(Name, TTDecl)]
- type CodeGenerator = CodegenInfo -> IO ()
Documentation
data OutputType Source #
Constructors
Raw | |
Object | |
Executable |
Instances
Generic OutputType Source # | |
Defined in IRTS.CodegenCommon Associated Types type Rep OutputType :: Type -> Type | |
Show OutputType Source # | |
Defined in IRTS.CodegenCommon Methods showsPrec :: Int -> OutputType -> ShowS show :: OutputType -> String showList :: [OutputType] -> ShowS | |
NFData OutputType | |
Defined in Idris.DeepSeq Methods rnf :: OutputType -> () | |
Eq OutputType Source # | |
Defined in IRTS.CodegenCommon | |
type Rep OutputType Source # | |
Defined in IRTS.CodegenCommon type Rep OutputType = D1 ('MetaData "OutputType" "IRTS.CodegenCommon" "idris-1.3.4-3WzTclJnDGuF9nqMis99Gw" 'False) (C1 ('MetaCons "Raw" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Object" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Executable" 'PrefixI 'False) (U1 :: Type -> Type))) |
data CodegenInfo Source #
Everything which might be needed in a code generator.
A CG can choose which level of Decls to generate code from (simplified, defunctionalised or merely lambda lifted) and has access to the list of object files, libraries, etc.
Constructors
CodegenInfo | |
Fields
|
Instances
ToJSON CodegenInfo | |
Defined in IRTS.Portable Methods toJSON :: CodegenInfo -> Value toEncoding :: CodegenInfo -> Encoding toJSONList :: [CodegenInfo] -> Value toEncodingList :: [CodegenInfo] -> Encoding |
type CodeGenerator = CodegenInfo -> IO () Source #