Safe Haskell | None |
---|
- decl :: CDeclSpec -> CDeclr -> Maybe CExpr -> CDecl
- voidTy :: CDeclSpec
- floatTy :: CDeclSpec
- longTy :: CDeclSpec
- intTy :: CDeclSpec
- shortTy :: CDeclSpec
- charTy :: CDeclSpec
- doubleTy :: CDeclarationSpecifier NodeInfo
- ptr :: CDeclr -> CDeclr
- char :: CDeclr -> Maybe CExpr -> CDecl
- short :: CDeclr -> Maybe CExpr -> CDecl
- int :: CDeclr -> Maybe CExpr -> CDecl
- long :: CDeclr -> Maybe CExpr -> CDecl
- float :: CDeclr -> Maybe CExpr -> CDecl
- double :: CDeclr -> Maybe CExpr -> CDecl
- charPtr :: CDeclr -> Maybe CExpr -> CDecl
- shortPtr :: CDeclr -> Maybe CExpr -> CDecl
- intPtr :: CDeclr -> Maybe CExpr -> CDecl
- longPtr :: CDeclr -> Maybe CExpr -> CDecl
- floatPtr :: CDeclr -> Maybe CExpr -> CDecl
- doublePtr :: CDeclr -> Maybe CExpr -> CDecl
- (.=) :: (Maybe CExpr -> CDecl) -> CExpr -> CDecl
- uninit :: (Maybe CExpr -> CDecl) -> CDecl
- csu :: CStructTag -> String -> [(String, CTypeSpec)] -> CDecl
- struct :: String -> [(String, CTypeSpec)] -> CDecl
- union :: String -> [(String, CTypeSpec)] -> CDecl
- fun :: [CDeclSpec] -> String -> [Maybe CExpr -> CDecl] -> CStat -> CFunDef
- class External a where
- transUnit :: [CExtDecl] -> CTranslUnit
Documentation
:: CDeclSpec | The declaration specifier, usually this is a type |
-> CDeclr | Equivalent to the name of the object being declared. Often this will
make use of the overloaded string instance for |
-> Maybe CExpr | The optional init expression |
-> CDecl |
A low level way to declare something.
Modifies a declarator to be a pointer. For example
ptr someName
would be *x
in C.
char :: CDeclr -> Maybe CExpr -> CDeclSource
A short cut for declaring a char
.
char "x" .= 1 uninit $ char "y"
Would generate
char x = 1; char y;
(.=) :: (Maybe CExpr -> CDecl) -> CExpr -> CDeclSource
Supplies an initializer for an for a declaration. This
is meant to be used with the char
and friends short cuts
uninit :: (Maybe CExpr -> CDecl) -> CDeclSource
Leave a declaration uninitialized. This is meant to be used
with the char
and friends declaration
union :: String -> [(String, CTypeSpec)] -> CDeclSource
Equivalent to struct
but generates a C union instead.
fun :: [CDeclSpec] -> String -> [Maybe CExpr -> CDecl] -> CStat -> CFunDefSource
Defines a C function. For example
test = fun [intTy] "test"[int "a", int "b"] $ hblock [ creturn ("a" + "b") ]
Would be the equivalent of
int test(int a, int b) { return a + b; }
transUnit :: [CExtDecl] -> CTranslUnitSource
Exports a series of declarations to a translation unit.