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.