Up
module
Clambda
:
sig
#
type
function_label = string
#
type
ustructured_constant =
#
| Uconst_float
of
float
#
| Uconst_int32
of
int32
#
| Uconst_int64
of
int64
#
| Uconst_nativeint
of
nativeint
#
| Uconst_block
of
int *
uconstant
list
#
| Uconst_float_array
of
float list
#
| Uconst_string
of
string
#
type
uconstant =
#
| Uconst_ref
of
string *
ustructured_constant
#
| Uconst_int
of
int
#
| Uconst_ptr
of
int
#
type
ulambda =
#
| Uvar
of
Ident
.
t
#
| Uconst
of
uconstant
#
| Udirect_apply
of
function_label
*
ulambda
list *
Debuginfo
.
t
#
| Ugeneric_apply
of
ulambda
*
ulambda
list *
Debuginfo
.
t
#
| Uclosure
of
ufunction
list *
ulambda
list
#
| Uoffset
of
ulambda
* int
#
| Ulet
of
Ident
.
t
*
ulambda
*
ulambda
#
| Uletrec
of
(
Ident
.
t
*
ulambda
) list *
ulambda
#
| Uprim
of
Lambda
.
primitive
*
ulambda
list *
Debuginfo
.
t
#
| Uswitch
of
ulambda
*
ulambda_switch
#
| Ustringswitch
of
ulambda
* (string *
ulambda
) list *
ulambda
option
#
| Ustaticfail
of
int *
ulambda
list
#
| Ucatch
of
int *
Ident
.
t
list *
ulambda
*
ulambda
#
| Utrywith
of
ulambda
*
Ident
.
t
*
ulambda
#
| Uifthenelse
of
ulambda
*
ulambda
*
ulambda
#
| Usequence
of
ulambda
*
ulambda
#
| Uwhile
of
ulambda
*
ulambda
#
| Ufor
of
Ident
.
t
*
ulambda
*
ulambda
*
Asttypes
.
direction_flag
*
ulambda
#
| Uassign
of
Ident
.
t
*
ulambda
#
| Usend
of
Lambda
.
meth_kind
*
ulambda
*
ulambda
*
ulambda
list *
Debuginfo
.
t
#
type
ufunction = {
#
label
:
function_label
;
#
arity
: int
;
#
params
:
Ident
.
t
list
;
#
body
:
ulambda
;
#
dbg
:
Debuginfo
.
t
;
}
#
type
ulambda_switch = {
#
us_index_consts
: int array
;
#
us_actions_consts
:
ulambda
array
;
#
us_index_blocks
: int array
;
#
us_actions_blocks
:
ulambda
array
;
}
#
type
function_description = {
#
fun_label
:
function_label
;
#
fun_arity
: int
;
#
mutable
fun_closed
: bool
;
#
mutable
fun_inline
: (
Ident
.
t
list *
ulambda
) option
;
#
mutable
fun_float_const_prop
: bool
;
}
#
type
value_approximation =
#
| Value_closure
of
function_description
*
value_approximation
#
| Value_tuple
of
value_approximation
array
#
| Value_unknown
#
| Value_const
of
uconstant
#
| Value_global_field
of
string * int
#
val
compare_structured_constants :
ustructured_constant
->
ustructured_constant
->
int
#
val
compare_constants :
uconstant
->
uconstant
->
int
end