Copyright | (c) Kimiyuki Onaka 2020 |
---|---|
License | Apache License 2.0 |
Maintainer | kimiyuki95@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Expr
module has the basic data types for C++ language.
The data types are intended to use for the code generation.
Documentation
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 |
Add | |
Sub | |
Mul | |
Div | |
Mod | |
BitAnd | |
BitOr | |
BitXor | |
BitLeftShift | |
BitRightShift | |
And | |
Or | |
LessThan | |
LessEqual | |
GreaterThan | |
GreaterEqual | |
Equal | |
NotEqual |
SimpleAssign | |
AddAssign | |
SubAssign | |
MulAssign | |
DivAssign | |
ModAssign | |
BitLeftShiftAssign | |
BitRightShiftAssign | |
BitAndAssign | |
BitOrAssign | |
BitXorAssign |
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 #
Instances
Eq AssignExpr Source # | |
Defined in Jikka.CPlusPlus.Language.Expr (==) :: AssignExpr -> AssignExpr -> Bool # (/=) :: AssignExpr -> AssignExpr -> Bool # | |
Ord AssignExpr Source # | |
Defined in Jikka.CPlusPlus.Language.Expr 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 readsPrec :: Int -> ReadS AssignExpr # readList :: ReadS [AssignExpr] # readPrec :: ReadPrec AssignExpr # readListPrec :: ReadPrec [AssignExpr] # | |
Show AssignExpr Source # | |
Defined in Jikka.CPlusPlus.Language.Expr showsPrec :: Int -> AssignExpr -> ShowS # show :: AssignExpr -> String # showList :: [AssignExpr] -> ShowS # |
data DeclareRight Source #
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 (==) :: DeclareRight -> DeclareRight -> Bool # (/=) :: DeclareRight -> DeclareRight -> Bool # | |
Ord DeclareRight Source # | |
Defined in Jikka.CPlusPlus.Language.Expr 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 readsPrec :: Int -> ReadS DeclareRight # readList :: ReadS [DeclareRight] # | |
Show DeclareRight Source # | |
Defined in Jikka.CPlusPlus.Language.Expr showsPrec :: Int -> DeclareRight -> ShowS # show :: DeclareRight -> String # showList :: [DeclareRight] -> ShowS # |
data ToplevelStatement Source #
Instances
Eq ToplevelStatement Source # | |
Defined in Jikka.CPlusPlus.Language.Expr (==) :: ToplevelStatement -> ToplevelStatement -> Bool # (/=) :: ToplevelStatement -> ToplevelStatement -> Bool # | |
Ord ToplevelStatement Source # | |
Defined in Jikka.CPlusPlus.Language.Expr compare :: ToplevelStatement -> ToplevelStatement -> Ordering # (<) :: ToplevelStatement -> ToplevelStatement -> Bool # (<=) :: ToplevelStatement -> ToplevelStatement -> Bool # (>) :: ToplevelStatement -> ToplevelStatement -> Bool # (>=) :: ToplevelStatement -> ToplevelStatement -> Bool # max :: ToplevelStatement -> ToplevelStatement -> ToplevelStatement # min :: ToplevelStatement -> ToplevelStatement -> ToplevelStatement # | |
Read ToplevelStatement Source # | |
Defined in Jikka.CPlusPlus.Language.Expr | |
Show ToplevelStatement Source # | |
Defined in Jikka.CPlusPlus.Language.Expr showsPrec :: Int -> ToplevelStatement -> ShowS # show :: ToplevelStatement -> String # showList :: [ToplevelStatement] -> ShowS # |