Parameter Make.Lifter

Parameters

module V : Engine.Verifier.S with type annot = PC.Annot.t

Signature

type t

The lifter's state

type memory_error = SMemory.err_t
type tl_ast = PC.tl_ast
type init_data = ID.t
type pc_err = PC.err
type memory = SMemory.t
type annot = PC.Annot.t
type Stdlib.Effect.t +=
  1. | Step : (Logging.Report_id.t option * Gil_syntax.Branch_case.t option * Gil_syntax.Branch_case.path) -> cmd_report Debugger_lifter__.Lifter_intf.Types.executed_cmd_data Stdlib.Effect.t
val init : proc_name:string -> all_procs:string list -> tl_ast option -> (annot, int) Gil_syntax.Prog.t -> (t * (unit -> Logging.Report_id.t * Debugger.Utils.stop_reason)) option

Given a proc name, a tl_ast, and the data from the first executed GIL command, initialise the lifter's state and handle the first command.

Returns None if lifting is unsupported (i.e. if tl_ast is None).

val init_exn : proc_name:string -> all_procs:string list -> tl_ast option -> (annot, int) Gil_syntax.Prog.t -> t * (unit -> Logging.Report_id.t * Debugger.Utils.stop_reason)

Exception-raising version of init.

val dump : t -> Yojson.Safe.t

Gives a JSON representation of the lifter's state.

Used for debugging problems with the lifter.

Gets the non-lifted execution map of GIL commands.

In most cases, it's recommended to use a Gil_fallback_lifter, and just defer this call to the GIL lifter.

val get_lifted_map : t -> Debugger_utils.Exec_map.Packaged.t option

Gets the lifted execution map.

Returns None if lifting is not supported.

val get_lifted_map_exn : t -> Debugger_utils.Exec_map.Packaged.t

Exception-raising version of get_lifted_map.

val get_matches_at_id : Logging.Report_id.t -> t -> Debugger.Utils.Exec_map.matching list

Gives a list of matches that occurred at the specified command.

val memory_error_to_exception_info : (memory_error, annot, tl_ast) Debugger_lifter__.Lifter_intf.Types.memory_error_info -> Debugger.Utils.exception_info
val add_variables : store:(string * Gil_syntax.Expr.t) list -> memory:memory -> is_gil_file:bool -> get_new_scope_id:(unit -> int) -> Debugger.Utils.Variable.ts -> Debugger.Utils.Variable.scope list
val parse_and_compile_files : entrypoint:string -> string list -> ((annot, tl_ast, init_data) ParserAndCompiler.compiled_progs * string, pc_err) Stdlib.result