| Copyright | (c) Kimiyuki Onaka 2020 |
|---|---|
| License | Apache License 2.0 |
| Maintainer | kimiyuki95@gmail.com |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Jikka.CPlusPlus.Language.Expr
Description
Expr module has the basic data types for C++ language.
The data types are intended to use for the code generation.
Documentation
Constructors
| TyAuto | |
| TyVoid | |
| TyBool | |
| TyInt | |
| TyInt32 | |
| TyInt64 | |
| TyTuple [Type] | |
| TyVector Type | |
| TyArray Type Integer | |
| TyString | |
| TyFunction Type [Type] | |
| TyConvexHullTrick | |
| TySegmentTree Monoid' | |
| TyIntValue Integer | for template parameters |
Constructors
| MonoidIntPlus | |
| MonoidIntMin | |
| MonoidIntMax |
Constructors
Constructors
| Add | |
| Sub | |
| Mul | |
| Div | |
| Mod | |
| BitAnd | |
| BitOr | |
| BitXor | |
| BitLeftShift | |
| BitRightShift | |
| And | |
| Or | |
| LessThan | |
| LessEqual | |
| GreaterThan | |
| GreaterEqual | |
| Equal | |
| NotEqual |
Constructors
| SimpleAssign | |
| AddAssign | |
| SubAssign | |
| MulAssign | |
| DivAssign | |
| ModAssign | |
| BitLeftShiftAssign | |
| BitRightShiftAssign | |
| BitAndAssign | |
| BitOrAssign | |
| BitXorAssign |
Constructors
| Var VarName | |
| Lit Literal | |
| UnOp UnaryOp Expr | |
| BinOp BinaryOp Expr Expr | |
| Cond Expr Expr Expr | |
| Lam [(Type, VarName)] Type [Statement] | |
| Call Function [Expr] | |
| CallExpr Expr [Expr] |
data AssignExpr Source #
Constructors
| AssignExpr AssignOp LeftExpr Expr | |
| AssignIncr LeftExpr | |
| AssignDecr LeftExpr |
Instances
| Eq AssignExpr Source # | |
Defined in Jikka.CPlusPlus.Language.Expr | |
| Ord AssignExpr Source # | |
Defined in Jikka.CPlusPlus.Language.Expr Methods compare :: AssignExpr -> AssignExpr -> Ordering # (<) :: AssignExpr -> AssignExpr -> Bool # (<=) :: AssignExpr -> AssignExpr -> Bool # (>) :: AssignExpr -> AssignExpr -> Bool # (>=) :: AssignExpr -> AssignExpr -> Bool # max :: AssignExpr -> AssignExpr -> AssignExpr # min :: AssignExpr -> AssignExpr -> AssignExpr # | |
| Read AssignExpr Source # | |
Defined in Jikka.CPlusPlus.Language.Expr Methods readsPrec :: Int -> ReadS AssignExpr # readList :: ReadS [AssignExpr] # readPrec :: ReadPrec AssignExpr # readListPrec :: ReadPrec [AssignExpr] # | |
| Show AssignExpr Source # | |
Defined in Jikka.CPlusPlus.Language.Expr Methods showsPrec :: Int -> AssignExpr -> ShowS # show :: AssignExpr -> String # showList :: [AssignExpr] -> ShowS # | |
data DeclareRight Source #
Constructors
| DeclareDefault | |
| DeclareCopy Expr | |
| DeclareInitialize [Expr] | This is only for better formatting. This should not be used while optimization phases. |
Instances
| Eq DeclareRight Source # | |
Defined in Jikka.CPlusPlus.Language.Expr | |
| Ord DeclareRight Source # | |
Defined in Jikka.CPlusPlus.Language.Expr Methods compare :: DeclareRight -> DeclareRight -> Ordering # (<) :: DeclareRight -> DeclareRight -> Bool # (<=) :: DeclareRight -> DeclareRight -> Bool # (>) :: DeclareRight -> DeclareRight -> Bool # (>=) :: DeclareRight -> DeclareRight -> Bool # max :: DeclareRight -> DeclareRight -> DeclareRight # min :: DeclareRight -> DeclareRight -> DeclareRight # | |
| Read DeclareRight Source # | |
Defined in Jikka.CPlusPlus.Language.Expr Methods readsPrec :: Int -> ReadS DeclareRight # readList :: ReadS [DeclareRight] # | |
| Show DeclareRight Source # | |
Defined in Jikka.CPlusPlus.Language.Expr Methods showsPrec :: Int -> DeclareRight -> ShowS # show :: DeclareRight -> String # showList :: [DeclareRight] -> ShowS # | |
Constructors
Instances
| Eq Statement Source # | |
| Ord Statement Source # | |
| Read Statement Source # | |
| Show Statement Source # | |
data ToplevelStatement Source #