package ocaml-base-compiler
type primitive =
| Pidentity
| Pbytes_to_string
| Pbytes_of_string
| Pignore
| Prevapply
| Pdirapply
| Ploc of loc_kind
| Pgetglobal of Ident.t
| Psetglobal of Ident.t
| Pmakeblock of int * Asttypes.mutable_flag * block_shape
| Pfield of int
| Psetfield of int * immediate_or_pointer * initialization_or_assignment
| Pfloatfield of int
| Psetfloatfield of int * initialization_or_assignment
| Pduprecord of Types.record_representation * int
| Plazyforce
| Pccall of Primitive.description
| Praise of raise_kind
| Psequand
| Psequor
| Pnot
| Pnegint
| Paddint
| Psubint
| Pmulint
| Pdivint of is_safe
| Pmodint of is_safe
| Pandint
| Porint
| Pxorint
| Plslint
| Plsrint
| Pasrint
| Pintcomp of comparison
| Poffsetint of int
| Poffsetref of int
| Pintoffloat
| Pfloatofint
| Pnegfloat
| Pabsfloat
| Paddfloat
| Psubfloat
| Pmulfloat
| Pdivfloat
| Pfloatcomp of comparison
| Pstringlength
| Pstringrefu
| Pstringrefs
| Pbyteslength
| Pbytesrefu
| Pbytessetu
| Pbytesrefs
| Pbytessets
| Pmakearray of array_kind * Asttypes.mutable_flag
| Pduparray of array_kind * Asttypes.mutable_flag
(*For
*)Pduparray
, the argument must be an immutable array. The arguments ofPduparray
give the kind and mutability of the array being *produced* by the duplication.| Parraylength of array_kind
| Parrayrefu of array_kind
| Parraysetu of array_kind
| Parrayrefs of array_kind
| Parraysets of array_kind
| Pisint
| Pisout
| Pbittest
| Pbintofint of boxed_integer
| Pintofbint of boxed_integer
| Pcvtbint of boxed_integer * boxed_integer
| Pnegbint of boxed_integer
| Paddbint of boxed_integer
| Psubbint of boxed_integer
| Pmulbint of boxed_integer
| Pdivbint of {
size : boxed_integer;
is_safe : is_safe;
}
| Pmodbint of {
size : boxed_integer;
is_safe : is_safe;
}
| Pandbint of boxed_integer
| Porbint of boxed_integer
| Pxorbint of boxed_integer
| Plslbint of boxed_integer
| Plsrbint of boxed_integer
| Pasrbint of boxed_integer
| Pbintcomp of boxed_integer * comparison
| Pbigarrayref of bool * int * bigarray_kind * bigarray_layout
| Pbigarrayset of bool * int * bigarray_kind * bigarray_layout
| Pbigarraydim of int
| Pstring_load_16 of bool
| Pstring_load_32 of bool
| Pstring_load_64 of bool
| Pstring_set_16 of bool
| Pstring_set_32 of bool
| Pstring_set_64 of bool
| Pbigstring_load_16 of bool
| Pbigstring_load_32 of bool
| Pbigstring_load_64 of bool
| Pbigstring_set_16 of bool
| Pbigstring_set_32 of bool
| Pbigstring_set_64 of bool
| Pctconst of compile_time_constant
| Pbswap16
| Pbbswap of boxed_integer
| Pint_as_pointer
| Popaque
and block_shape = value_kind list option
type structured_constant =
| Const_base of Asttypes.constant
| Const_pointer of int
| Const_block of int * structured_constant list
| Const_float_array of string list
| Const_immstring of string
type function_attribute = {
inline : inline_attribute;
specialise : specialise_attribute;
is_a_functor : bool;
}
type lambda =
| Lvar of Ident.t
| Lconst of structured_constant
| Lapply of lambda_apply
| Lfunction of lfunction
| Llet of let_kind * value_kind * Ident.t * lambda * lambda
| Lletrec of (Ident.t * lambda) list * lambda
| Lprim of primitive * lambda list * Location.t
| Lswitch of lambda * lambda_switch
| Lstringswitch of lambda * (string * lambda) list * lambda option * Location.t
| Lstaticraise of int * lambda list
| Lstaticcatch of lambda * int * Ident.t list * lambda
| Ltrywith of lambda * Ident.t * lambda
| Lifthenelse of lambda * lambda * lambda
| Lsequence of lambda * lambda
| Lwhile of lambda * lambda
| Lfor of Ident.t * lambda * lambda * Asttypes.direction_flag * lambda
| Lassign of Ident.t * lambda
| Lsend of meth_kind * lambda * lambda * lambda list * Location.t
| Levent of lambda * lambda_event
| Lifused of Ident.t * lambda
and lfunction = {
kind : function_kind;
params : Ident.t list;
body : lambda;
attr : function_attribute;
loc : Location.t;
}
and lambda_apply = {
ap_func : lambda;
ap_args : lambda list;
ap_loc : Location.t;
ap_should_be_tailcall : bool;
ap_inlined : inline_attribute;
ap_specialised : specialise_attribute;
}
and lambda_event = {
lev_loc : Location.t;
lev_kind : lambda_event_kind;
lev_repr : int Pervasives.ref option;
lev_env : Env.summary;
}
type program = {
module_ident : Ident.t;
main_module_block_size : int;
required_globals : Ident.Set.t;
code : lambda;
}
val const_unit : structured_constant
val lambda_unit : lambda
val free_variables : lambda -> IdentSet.t
val free_methods : lambda -> IdentSet.t
val transl_path : ?loc:Location.t -> Env.t -> Path.t -> lambda
val commute_comparison : comparison -> comparison
val negate_comparison : comparison -> comparison
val default_function_attribute : function_attribute
val staticfail : lambda
val is_guarded : lambda -> bool
val raise_kind : raise_kind -> string
val lam_of_loc : loc_kind -> Location.t -> lambda
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>