Js_of_ocaml_compiler.Code
module Addr : sig ... end
module DebugAddr : sig ... end
module Var : sig ... end
module Native_string : sig ... end
type constant =
| String of string
| NativeString of Native_string.t
| Float of float
| Float_array of float array
| Int64 of int64
| Tuple of int * constant array * array_or_not
| Int of int32
val noloc : loc
val location_of_pc : int -> loc
module Print : sig ... end
fold_closures p f init
folds f
over all closures in the program p
, starting from the initial value init
. For each closure, f
is called with the following arguments: the closure name (enclosed in Stdlib.Some
), its parameter list, the address and parameter instantiation of its first block, and the current accumulator. In addition, f
is called on the initial block p.start
, with None
as the closure name. All closures in all blocks of p
are included in the fold, not only the ones reachable from p.start
.
val fold_closures_innermost_first :
program ->
(Var.t option -> Var.t list -> cont -> 'd -> 'd) ->
'd ->
'd
Similar to fold_closures
, but applies the fold function to the innermost closures first. Unlike with fold_closures
, only the closures reachable from p.start
are considered.
val fold_children : 'c fold_blocs
val traverse :
fold_blocs_poly ->
(Addr.t -> 'c -> 'c) ->
Addr.t ->
block Addr.Map.t ->
'c ->
'c
val preorder_traverse :
fold_blocs_poly ->
(Addr.t -> 'c -> 'c) ->
Addr.t ->
block Addr.Map.t ->
'c ->
'c
val empty : program
val is_empty : program -> bool
val invariant : program -> unit