idris-1.0: Functional Programming Language with Dependent Types

Copyright | License : BSD3
Maintainer | The Idris Community.
Safe Haskell | None
Language | Haskell98

IRTS.CodegenCommon

Description

Synopsis

- data DbgLevel
  - = NONE
  - | DEBUG
  - | TRACE
- 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 DbgLevel #

Constructors

NONE |
DEBUG |
TRACE |

Instances

Eq DbgLevel # |
Methods (==) :: DbgLevel -> DbgLevel -> Bool # (/=) :: DbgLevel -> DbgLevel -> Bool #

data OutputType #

Constructors

Raw |
Object |
Executable |

Instances

Eq OutputType # |
Methods (==) :: OutputType -> OutputType -> Bool # (/=) :: OutputType -> OutputType -> Bool #
Show OutputType # |
Methods showsPrec :: Int -> OutputType -> ShowS # show :: OutputType -> String # showList :: [OutputType] -> ShowS #
Generic OutputType # |
Associated Types type Rep OutputType :: * -> * # Methods from :: OutputType -> Rep OutputType x # to :: Rep OutputType x -> OutputType #
type Rep OutputType # |
type Rep OutputType = D1 (MetaData "OutputType" "IRTS.CodegenCommon" "idris-1.0-AhzFHyMpjVK9jY0cFJjTN5" False) ((:+:) (C1 (MetaCons "Raw" PrefixI False) U1) ((:+:) (C1 (MetaCons "Object" PrefixI False) U1) (C1 (MetaCons "Executable" PrefixI False) U1)))

data CodegenInfo #

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 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 () #