ddc-core-salt-0.4.3.1: Disciplined Disciple Compiler C code generator.

Safe HaskellSafe
LanguageHaskell98

DDC.Core.Salt.Compounds

Contents

Synopsis

Types

Values

Literals

xBool :: a -> Bool -> Exp a Name Source #

xNat :: a -> Integer -> Exp a Name Source #

xInt :: a -> Integer -> Exp a Name Source #

xSize :: a -> Integer -> Exp a Name Source #

xWord :: a -> Integer -> Int -> Exp a Name Source #

xFloat :: a -> Double -> Int -> Exp a Name Source #

xTag :: a -> Integer -> Exp a Name Source #

xChar :: a -> Char -> Exp a Name Source #

A Character literal.

xTextLit :: a -> Text -> Exp a Name Source #

A Text literal.

Primitive arithmetic operators.

xNeg :: a -> Type Name -> Exp a Name -> Exp a Name Source #

xAdd :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xSub :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xMul :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xDiv :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xMod :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xRem :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xEq :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xNeq :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xLt :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xGt :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xLe :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xGe :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xAnd :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xOr :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xShl :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xShr :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xBAnd :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xBOr :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

xBXOr :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

Primitive cast operators.

xConvert :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name Source #

Convert a value to a similarly sized type.

xPromote :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name Source #

Promote a value to a wider type.

xTruncate :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name Source #

Truncate a value to a narrower type.

Primitive control operators.

xFail :: a -> Type Name -> Exp a Name Source #

Fail with an internal error.

xReturn :: a -> Type Name -> Exp a Name -> Exp a Name Source #

Return a value.

Primitive store operators.

xStoreSize :: a -> Type Name -> Exp a Name Source #

Take the number of bytes needed to store a value of a primitive type.

xStoreSize2 :: a -> Type Name -> Exp a Name Source #

Log2 of the number of bytes needed to store a value of primitive type.

xCreate :: a -> Exp a Name -> Exp a Name Source #

Create the heap.

xRead :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

Read a value from an address plus offset.

xWrite :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

Write a value to an address plus offset.

xPeek :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

Peek a value from a buffer pointer plus offset.

xPeekBounded :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

Peek a value from a buffer pointer plus offset.

xPoke :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

Poke a value from a buffer pointer plus offset.

xPokeBounded :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name Source #

Poke a value from a buffer pointer plus offset.

xCastPtr :: a -> Type Name -> Type Name -> Type Name -> Exp a Name -> Exp a Name Source #

Cast a pointer to a different element ype.