Copyright | (c) 2011 - 2015 Björn Peemöller |
---|---|
License | BSD-3-clause |
Maintainer | bjp@informatik.uni-kiel.de |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
This module defines the compilation environment for a single module, containing the information needed throughout the compilation process.
Synopsis
- type CompEnv a = (CompilerEnv, a)
- data CompilerEnv = CompilerEnv {
- moduleIdent :: ModuleIdent
- filePath :: FilePath
- extensions :: [KnownExtension]
- tokens :: [(Span, Token)]
- interfaceEnv :: InterfaceEnv
- aliasEnv :: AliasEnv
- tyConsEnv :: TCEnv
- classEnv :: ClassEnv
- instEnv :: InstEnv
- valueEnv :: ValueEnv
- opPrecEnv :: OpPrecEnv
- initCompilerEnv :: ModuleIdent -> CompilerEnv
- showCompilerEnv :: CompilerEnv -> Bool -> Bool -> String
- ppMap :: (Show a, Pretty a, Show b, Pretty b) => Bool -> Map a b -> Doc
- ppMapShow :: (Show a, Show b) => Map a b -> Doc
- ppMapPretty :: (Pretty a, Pretty b) => Map a b -> Doc
- ppAL :: (Show a, Pretty a, Show b, Pretty b) => Bool -> [(a, b)] -> Doc
- ppALShow :: (Show a, Show b) => [(a, b)] -> Doc
- ppALPretty :: (Pretty a, Pretty b) => [(a, b)] -> Doc
Documentation
type CompEnv a = (CompilerEnv, a) Source #
data CompilerEnv Source #
A compiler environment contains information about the module currently compiled. The information is updated during the different stages of compilation.
CompilerEnv | |
|
initCompilerEnv :: ModuleIdent -> CompilerEnv Source #
Initial CompilerEnv
showCompilerEnv :: CompilerEnv -> Bool -> Bool -> String Source #
Show the CompilerEnv