Language.CIL.Types
- type Name = String
- data Type
- = Void
- | Array Int Type
- | Ptr Type
- | Volatile Type
- | Typedef Type
- | Struct [(Name, Type)]
- | Union [(Name, Type)]
- | Enum [(Name, Int)]
- | BitField Type [(Name, Int)]
- | StructRef Name
- | UnionRef Name
- | EnumRef Name
- | TypedefRef Name
- | Function Type [Type]
- | Int8
- | Int16
- | Int32
- | Word8
- | Word16
- | Word32
- | Float
- | Double
- data Expr
- = ConstInt Int Position
- | ConstFloat Double Position
- | ConstChar Char Position
- | ConstString String Position
- | Var Name Position
- | Mul Expr Expr Position
- | Div Expr Expr Position
- | Rmd Expr Expr Position
- | Add Expr Expr Position
- | Sub Expr Expr Position
- | Shl Expr Expr Position
- | Shr Expr Expr Position
- | Lt Expr Expr Position
- | Gt Expr Expr Position
- | Le Expr Expr Position
- | Ge Expr Expr Position
- | Eq Expr Expr Position
- | Neq Expr Expr Position
- | And Expr Expr Position
- | Xor Expr Expr Position
- | Or Expr Expr Position
- | Adr Expr Position
- | Ind Expr Position
- | Minus Expr Position
- | Comp Expr Position
- | Neg Expr Position
- | Cast Type Expr Position
- | Index Expr Expr Position
- | Mem Expr Name Position
- | MemInd Expr Name Position
- | SizeT Type Position
- | SizeE Expr Position
- data Init
- data Apply = Apply Expr [Expr]
Documentation
Types.
Constructors
| Void | |
| Array Int Type | |
| Ptr Type | |
| Volatile Type | A volatile qualified type. |
| Typedef Type | |
| Struct [(Name, Type)] | |
| Union [(Name, Type)] | |
| Enum [(Name, Int)] | |
| BitField Type [(Name, Int)] | |
| StructRef Name | Reference to a struct type. |
| UnionRef Name | Reference to a union type. |
| EnumRef Name | Reference to an enum type. |
| TypedefRef Name | Reference to a previously defined typedef. |
| Function Type [Type] | |
| Int8 | |
| Int16 | |
| Int32 | |
| Word8 | |
| Word16 | |
| Word32 | |
| Float | |
| Double |
Expressions.
Constructors
| ConstInt Int Position | |
| ConstFloat Double Position | |
| ConstChar Char Position | |
| ConstString String Position | |
| Var Name Position | Variable reference. |
| Mul Expr Expr Position | a * b |
| Div Expr Expr Position | a / b |
| Rmd Expr Expr Position | a % b |
| Add Expr Expr Position | a + b |
| Sub Expr Expr Position | a - b |
| Shl Expr Expr Position | a << b |
| Shr Expr Expr Position | a >> b |
| Lt Expr Expr Position | a < b |
| Gt Expr Expr Position | a > b |
| Le Expr Expr Position | a <= b |
| Ge Expr Expr Position | a >= b |
| Eq Expr Expr Position | a == b |
| Neq Expr Expr Position | a != b |
| And Expr Expr Position | a & b |
| Xor Expr Expr Position | a ^ b |
| Or Expr Expr Position | a | b |
| Adr Expr Position | &a |
| Ind Expr Position | *a |
| Minus Expr Position | -a |
| Comp Expr Position | ~a |
| Neg Expr Position | !a |
| Cast Type Expr Position | (...) a |
| Index Expr Expr Position | a[b] |
| Mem Expr Name Position | a.name |
| MemInd Expr Name Position | a->name |
| SizeT Type Position | sizeof(type) |
| SizeE Expr Position | sizeof(expr) |
Initialization expressions.