Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Include
- includeDef :: Include -> Definition
- type Includes = [Include]
- type Sources = [Definition]
- data CompileUnits = CompileUnits {}
- newtype CompileM a = Compile {
- unCompile :: WriterT CompileUnits Id a
- type Compile = CompileM ()
- runResult :: CompileM a -> CompileUnits
- putSrc :: Definition -> Compile
- putSrcInc :: Include -> Compile
- putHdrSrc :: Definition -> Compile
- putHdrInc :: Include -> Compile
Documentation
SysInclude FilePath | #include foo.h |
LocalInclude FilePath | #include "foo.h" |
includeDef :: Include -> Definition Source #
type Sources = [Definition] Source #
data CompileUnits Source #
runResult :: CompileM a -> CompileUnits Source #
Run the monad and nub the lists. (We have lists here rather than sets since we do not want to reorder headers. Sometimes a user wants headers to be included in exactly the correct order, since in some (bad!) build environments, includes depend on previous includes and aren't self-sufficient.
putSrc :: Definition -> Compile Source #
putHdrSrc :: Definition -> Compile Source #