module Ctt_abstree: sig end
type identifier = string
type location = string * int
type properties = {
}
type global_storage_class =
| |
Extern |
| |
ModuleStatic |
| |
Inline |
type local_storage_class =
| |
Auto |
| |
Register |
| |
LocalStatic |
| |
FuncArgs |
type union_flag = C_abstree.union_flag
=
type program = global_declaration list
type global_declaration = global_declaration_desc
type ctt_initializer =
type global_declaration_desc =
type variable_declaration = local_storage_class * c_type *
identifier * ctt_initializer option
type builtin_type = C_types.builtin_type
=
| |
Tchar |
| |
Tschar |
| |
Tuchar |
| |
Tshort |
| |
Tushort |
| |
Tint |
| |
Tuint |
| |
Tlong |
| |
Tulong |
| |
Tlonglong |
| |
Tulonglong |
| |
Tfloat |
| |
Tdouble |
| |
Tlongdouble |
type c_type_desc =
type c_type = {
|
ct_const_p : bool ; |
|
ct_volatile_p : bool ; |
|
ct_ty : c_type_desc ; |
}
type struct_id = int
type statement_desc =
type statement = {
}
type expr = {
}
type binop =
| |
CTTbinTimes |
| |
CTTbinDiv |
| |
CTTbinPlusVV |
| |
CTTbinMinusVV |
| |
CTTbinPostPlusVV |
| |
CTTbinPostMinusVV |
| |
CTTbinPlusPV |
| |
CTTbinMinusPP |
| |
CTTbinMinusPV |
| |
CTTbinPostPlusPV |
| |
CTTbinPostMinusPV |
| |
CTTbinModulo |
| |
CTTbinLshift |
| |
CTTbinRshift |
| |
CTTbinLogAnd |
| |
CTTbinLogOr |
| |
CTTbinIntAnd |
| |
CTTbinIntOr |
| |
CTTbinIntXor |
| |
CTTbinLessThan |
| |
CTTbinLessEqual |
| |
CTTbinGtrThan |
| |
CTTbinGtrEqual |
| |
CTTbinEqual |
| |
CTTbinNotEqual |
type unaryop = C_abstree.unaryop
=
| |
UnaryPlus |
| |
UnaryMinus |
| |
LogNot |
| |
IntNot |
type expr_desc =
type c_constants =
| |
CTTconstNull |
| |
CTTconstInteger of Big_int.big_int |
| |
CTTconstFloat of float |
| |
CTTconstString of string |
val make_c_type : ?const:bool ->
?volatile:bool -> c_type_desc -> c_type
val make_c_type_ql : C_types.type_qualifier list -> c_type_desc -> c_type
val type_char : c_type
val type_signed_char : c_type
val type_unsigned_char : c_type
val type_short : c_type
val type_unsigned_short : c_type
val type_int : c_type
val type_unsigned_int : c_type
val type_long : c_type
val type_unsigned_long : c_type
val type_long_long : c_type
val type_unsigned_long_long : c_type
val type_float : c_type
val type_double : c_type
val type_long_double : c_type
val type_void : c_type
val type_boolean : c_type
val type_ptrdiff_t : c_type
val type_size_t : c_type
val type_char_array : int -> c_type
val make_expr : expr_desc ->
c_type -> loc:location -> expr
type struct_field_normal = {
}
type struct_field_bitfields = {
|
s_bf_size : Big_int.big_int ; |
|
s_bf_fields : (identifier option * c_type * int * (int * int)) list ; |
}
type struct_field =
type struct_desc = {
|
str_union_p : union_flag ; |
|
str_size : Big_int.big_int option ; |
|
str_align : Big_int.big_int option ; |
|
str_fields : (Big_int.big_int * struct_field) list ; |
}
val size_of_builtin_type : builtin_type -> int
val align_of_builtin_type : builtin_type -> int
val get_max_value_of_type : c_type -> Big_int.big_int
type variableType =
| |
EnumVal of Big_int.big_int |
| |
Var of c_type |
| |
TypeDefName of c_type |
type local_binding = {
}
type local_bind_frame = (identifier * local_binding) list
type global_binding = {
}
type struct_name_entry =
type environment = {
}