package js_of_ocaml-compiler

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module Addr : sig ... end
module DebugAddr : sig ... end
module Var : sig ... end
type cont = Addr.t * Var.t list
type prim =
  1. | Vectlength
  2. | Array_get
  3. | Extern of string
  4. | Not
  5. | IsInt
  6. | Eq
  7. | Neq
  8. | Lt
  9. | Le
  10. | Ult
type array_or_not =
  1. | Array
  2. | NotArray
  3. | Unknown
type constant =
  1. | String of string
  2. | NativeString of string
  3. | Float of float
  4. | Float_array of float array
  5. | Int64 of int64
  6. | Tuple of int * constant array * array_or_not
  7. | Int of int32
val constant_equal : constant -> constant -> bool option
type prim_arg =
  1. | Pv of Var.t
  2. | Pc of constant
type expr =
  1. | Apply of Var.t * Var.t list * bool
  2. | Block of int * Var.t array * array_or_not
  3. | Field of Var.t * int
  4. | Closure of Var.t list * cont
  5. | Constant of constant
  6. | Prim of prim * prim_arg list
type instr =
  1. | Let of Var.t * expr
  2. | Set_field of Var.t * int * Var.t
  3. | Offset_ref of Var.t * int
  4. | Array_set of Var.t * Var.t * Var.t
type last =
  1. | Return of Var.t
  2. | Raise of Var.t * [ `Normal | `Notrace | `Reraise ]
  3. | Stop
  4. | Branch of cont
  5. | Cond of Var.t * cont * cont
  6. | Switch of Var.t * cont array * cont array
  7. | Pushtrap of cont * Var.t * cont * Addr.Set.t
  8. | Poptrap of cont * Addr.t
type block = {
  1. params : Var.t list;
  2. handler : (Var.t * cont) option;
  3. body : instr list;
  4. branch : last;
}
type program = {
  1. start : Addr.t;
  2. blocks : block Addr.Map.t;
  3. free_pc : Addr.t;
}
module Print : sig ... end
type 'c fold_blocs = block Addr.Map.t -> Addr.t -> (Addr.t -> 'c -> 'c) -> 'c -> 'c
type fold_blocs_poly = {
  1. fold : 'a. 'a fold_blocs;
}
val fold_closures : program -> (Var.t option -> Var.t list -> cont -> 'd -> 'd) -> 'd -> 'd
val fold_children : 'c fold_blocs
val traverse : fold_blocs_poly -> (Addr.t -> 'c -> 'c) -> Addr.t -> block Addr.Map.t -> 'c -> 'c
val prepend : program -> instr list -> program
val empty : program
val is_empty : program -> bool
val eq : program -> program -> bool
val invariant : program -> unit