Safe Haskell | None |
---|
- class Annotate e where
- data Structure = Structure {}
- (=*) :: (ToExpression x, ToExpression y) => x -> y -> Statement
- (&) :: (ToStatement a, ToStatement b) => a -> b -> Statement
- (*#) :: (ToExpression a, ToExpression a1) => a -> a1 -> Expression
- (+#) :: (ToExpression a, ToExpression a1) => a -> a1 -> Expression
- class ToExpression a where
- toExpression :: a -> Expression
- class ToStatement a where
- toStatement :: a -> Statement
- eq :: (ToExpression x, ToExpression y) => x -> y -> Expression
- basicStructure :: Structure
- anonStructType :: [Type] -> Type
- basicType :: String -> Type
- basicGCType :: String -> Type
- cast :: Type -> Expression -> Expression
- noAssign :: Expression -> Expression
- cif :: Expression -> Statement -> Statement -> Statement
- constant :: Constant -> Expression
- creturn :: Expression -> Statement
- dereference :: Expression -> Expression
- reference :: Expression -> Expression
- class Draw d where
- drawG :: Draw d => d -> Doc
- emptyExpression :: Expression
- enum :: Name -> Constant
- data Expression
- data Constant
- expressionRaw :: String -> Expression
- statementOOB :: Statement -> Statement
- indexArray :: Expression -> Expression -> Expression
- function :: Name -> Type -> [(Name, Type)] -> [FunctionOpts] -> Statement -> Function
- data Function
- functionCall :: Name -> [Expression] -> Expression
- indirectFunctionCall :: Expression -> [Expression] -> Expression
- data FunctionOpts
- generateC :: [Function] -> [Structure] -> (Doc, Doc)
- goto :: Name -> Statement
- subBlock :: Statement -> Statement
- isEmptyExpression :: Expression -> Bool
- label :: Name -> Statement
- localVariable :: Type -> Name -> Expression
- name :: String -> Name
- data Name
- newVar :: UniqueProducer m => Type -> m Expression
- newDeclVar :: UniqueProducer m => Type -> m (Statement, Expression)
- newAssignVar :: (Monad m, Draw d) => d -> Name -> Expression -> m Statement
- newTmpVar :: (UniqueProducer m, Draw d) => d -> Expression -> m (Statement, Expression)
- forLoop :: Expression -> Expression -> Expression -> Statement -> Statement
- nullPtr :: Expression
- number :: Integer -> Constant
- floating :: Double -> Constant
- operator :: (ToExpression a, ToExpression b) => String -> a -> b -> Expression
- project :: Name -> Expression -> Expression
- project' :: Name -> Expression -> Expression
- projectAnon :: Int -> Expression -> Expression
- ptrType :: Type -> Type
- funPtrType :: Type -> [Type] -> Type
- renderG :: Draw d => d -> String
- sizeof :: Type -> Expression
- data Statement
- string :: String -> Expression
- structAnon :: [(Expression, Type)] -> Expression
- structType :: Name -> Type
- switch' :: Expression -> [(Maybe Constant, Statement)] -> Statement
- character :: Char -> Constant
- toName :: [Char] -> Name
- data Type
- uoperator :: String -> Expression -> Expression
- variable :: Name -> Expression
- voidType :: Type
- voidStarType :: Type
Documentation
Structure | |
|
(=*) :: (ToExpression x, ToExpression y) => x -> y -> StatementSource
(&) :: (ToStatement a, ToStatement b) => a -> b -> StatementSource
(*#) :: (ToExpression a, ToExpression a1) => a -> a1 -> ExpressionSource
(+#) :: (ToExpression a, ToExpression a1) => a -> a1 -> ExpressionSource
class ToExpression a whereSource
toExpression :: a -> ExpressionSource
class ToStatement a whereSource
toStatement :: a -> StatementSource
eq :: (ToExpression x, ToExpression y) => x -> y -> ExpressionSource
anonStructType :: [Type] -> TypeSource
basicGCType :: String -> TypeSource
a basic type the garbage collector might want to follow, guarenteed to be the size of a pointer.
cast :: Type -> Expression -> ExpressionSource
constant :: Constant -> ExpressionSource
creturn :: Expression -> StatementSource
data Expression Source
indexArray :: Expression -> Expression -> ExpressionSource
functionCall :: Name -> [Expression] -> ExpressionSource
indirectFunctionCall :: Expression -> [Expression] -> ExpressionSource
localVariable :: Type -> Name -> ExpressionSource
newVar :: UniqueProducer m => Type -> m ExpressionSource
newDeclVar :: UniqueProducer m => Type -> m (Statement, Expression)Source
newAssignVar :: (Monad m, Draw d) => d -> Name -> Expression -> m StatementSource
newTmpVar :: (UniqueProducer m, Draw d) => d -> Expression -> m (Statement, Expression)Source
forLoop :: Expression -> Expression -> Expression -> Statement -> StatementSource
operator :: (ToExpression a, ToExpression b) => String -> a -> b -> ExpressionSource
project :: Name -> Expression -> ExpressionSource
project' :: Name -> Expression -> ExpressionSource
projectAnon :: Int -> Expression -> ExpressionSource
funPtrType :: Type -> [Type] -> TypeSource
sizeof :: Type -> ExpressionSource
string :: String -> ExpressionSource
structAnon :: [(Expression, Type)] -> ExpressionSource
structType :: Name -> TypeSource
uoperator :: String -> Expression -> ExpressionSource
variable :: Name -> ExpressionSource