Copyright | Copyright (c) 2016 the Hakaru team |
---|---|
License | BSD3 |
Maintainer | zsulliva@indiana.edu |
Stability | experimental |
Portability | GHC-only |
Safe Haskell | None |
Language | Haskell2010 |
Provides tools for building C Types from Hakaru types
Synopsis
- buildDeclaration :: CTypeSpec -> Ident -> CDecl
- buildDeclaration' :: [CTypeSpec] -> Ident -> CDecl
- buildPtrDeclaration :: CTypeSpec -> Ident -> CDecl
- typeDeclaration :: Sing (a :: Hakaru) -> Ident -> CDecl
- typePtrDeclaration :: Sing (a :: Hakaru) -> Ident -> CDecl
- typeName :: Sing (a :: Hakaru) -> String
- arrayDeclaration :: Sing (a :: Hakaru) -> Ident -> CDecl
- arrayStruct :: Sing (a :: Hakaru) -> CExtDecl
- arraySize :: CExpr -> CExpr
- arrayData :: CExpr -> CExpr
- arrayPtrSize :: CExpr -> CExpr
- arrayPtrData :: CExpr -> CExpr
- mdataDeclaration :: Sing (a :: Hakaru) -> Ident -> CDecl
- mdataPtrDeclaration :: Sing (a :: Hakaru) -> Ident -> CDecl
- mdataStruct :: Sing (a :: Hakaru) -> CExtDecl
- mdataStruct' :: Sing (a :: Hakaru) -> CTypeSpec
- mdataWeight :: CExpr -> CExpr
- mdataSample :: CExpr -> CExpr
- mdataPtrWeight :: CExpr -> CExpr
- mdataPtrSample :: CExpr -> CExpr
- datumDeclaration :: Sing (HData' t) -> Ident -> CDecl
- datumStruct :: Sing (HData' t) -> CExtDecl
- datumSum :: Sing (HData' t) -> Sing (a :: [[HakaruFun]]) -> Ident -> CDecl
- datumProd :: Sing (HData' t) -> Sing (a :: [HakaruFun]) -> Ident -> Maybe CDecl
- datumFst :: CExpr -> CExpr
- datumSnd :: CExpr -> CExpr
- datumIndex :: CExpr -> CExpr
- functionDef :: Sing (a :: Hakaru) -> Ident -> [CDecl] -> [CDecl] -> [CStat] -> CFunDef
- closureStructure :: forall (a :: Hakaru) xs. [SomeVariable (KindOf a)] -> List1 Variable (xs :: [Hakaru]) -> Ident -> Sing a -> CExtDecl
- buildType :: Sing (a :: Hakaru) -> [CTypeSpec]
- castTo :: [CTypeSpec] -> CExpr -> CExpr
- castToPtrOf :: [CTypeSpec] -> CExpr -> CExpr
- callStruct :: String -> CTypeSpec
- buildStruct :: Maybe Ident -> [CDecl] -> CTypeSpec
- buildUnion :: [CDecl] -> CTypeSpec
- binaryOp :: NaryOp a -> CExpr -> CExpr -> CExpr
Documentation
arrayPtrSize :: CExpr -> CExpr Source #
arrayPtrData :: CExpr -> CExpr Source #
mdataWeight :: CExpr -> CExpr Source #
mdataSample :: CExpr -> CExpr Source #
mdataPtrWeight :: CExpr -> CExpr Source #
mdataPtrSample :: CExpr -> CExpr Source #
datumIndex :: CExpr -> CExpr Source #
buildType :: Sing (a :: Hakaru) -> [CTypeSpec] Source #
buildType function do the work of describing how the Hakaru type will be stored in memory. Arrays needed their own declaration function for their arity
callStruct :: String -> CTypeSpec Source #
callStruct will give the type spec calling a struct we have already declared externally
buildUnion :: [CDecl] -> CTypeSpec Source #