Safe Haskell | None |
---|---|
Language | Haskell2010 |
Translate Copilot Core expressions and operators to C99.
Synopsis
- transexpr :: Expr a -> State FunEnv Expr
- transop1 :: Op1 a b -> Expr -> Expr
- transop2 :: Op2 a b c -> Expr -> Expr -> Expr
- transop3 :: Op3 a b c d -> Expr -> Expr -> Expr -> Expr
- constty :: Type a -> a -> Expr
- explicitty :: Type a -> Expr -> Expr
- transtype :: Type a -> Type
- transtypename :: Type a -> TypeName
Documentation
transexpr :: Expr a -> State FunEnv Expr Source #
Translates a Copilot Core expression into a C99 expression.
transop1 :: Op1 a b -> Expr -> Expr Source #
Translates a Copilot unary operator and its argument into a C99 expression.
transop2 :: Op2 a b c -> Expr -> Expr -> Expr Source #
Translates a Copilot binary operator and its arguments into a C99 expression.
transop3 :: Op3 a b c d -> Expr -> Expr -> Expr -> Expr Source #
Translates a Copilot ternary operator and its arguments into a C99 expression.
constty :: Type a -> a -> Expr Source #
Transform a Copilot Core literal, based on its value and type, into a C99 literal.
transtypename :: Type a -> TypeName Source #
Translate a Copilot type intro a C typename