package libsail

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Libsail.InterpreterSource

Sourcetype gstate = {
  1. registers : Value.value Ast_util.Bindings.t;
  2. allow_registers : bool;
  3. primops : (Value.value list -> Value.value) Value.StringMap.t;
  4. letbinds : Type_check.tannot Ast.letbind list;
  5. fundefs : Type_check.tannot Ast.fundef Ast_util.Bindings.t;
  6. typecheck_env : Type_check.Env.t;
}
Sourcetype lstate = {
  1. locals : Value.value Ast_util.Bindings.t;
}
Sourcetype state = lstate * gstate
Sourcetype return_value =
  1. | Return_ok of Value.value
  2. | Return_exception of Value.value
Sourcemodule Monad : sig ... end
Sourcetype frame =
  1. | Done of state * Value.value
  2. | Step of string Lazy.t * state * Type_check.tannot Ast.exp Monad.t * (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) list
  3. | Break of frame
  4. | Effect_request of string Lazy.t * state * (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) list * effect_request
  5. | Fail of string Lazy.t * state * Type_check.tannot Ast.exp Monad.t * (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) list * string
Sourceand effect_request =
  1. | Read_reg of string * Value.value -> state -> frame
  2. | Write_reg of string * Value.value * unit -> state -> frame
  3. | Outcome of Ast.id * Value.value list * return_value -> Type_check.tannot Ast.exp Monad.t
Sourceval stack_string : (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) -> string Lazy.t
Sourceval eval_frame : frame -> frame
Sourceval default_effect_interp : string Lazy.t -> state -> (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) list -> effect_request -> frame
Sourceval effect_interp : (string Lazy.t -> state -> (string Lazy.t * lstate * (return_value -> Type_check.tannot Ast.exp Monad.t)) list -> effect_request -> frame) ref
Sourceval initial_state : ?registers:bool -> ?undef_registers:bool -> Type_check.typed_ast -> Type_check.env -> (Value.value list -> Value.value) Value.StringMap.t -> state
OCaml

Innovation. Community. Security.