interp_al
Ctx.Make
builtin
dangling
dynamic
dynamic_al
dynamic_pl
dynamic_runner
dynamic_sl
error_runtime
inst
instr
interp_common
interp_pl
interp_sl
p4
p4spectec.backend_boot
p4spectec.backend_sim
p4spectec.backend_splice
p4spectec.backend_testgen_neg
p4spectec.cache
p4spectec.coverage
p4spectec.domain
p4spectec.frontend
p4spectec.interface
p4spectec.interp
p4spectec.lang
p4spectec.pass
p4spectec.runner
p4spectec.runtime
p4spectec.stf
p4spectec.util
prose
sim
spectec
static
testgen_neg
type
value
type cursor =
| Global
| Local
val is_det : bool Stdlib.ref
type global = {
tdtbl : Runtime.Dynamic_Al.Envs.TDTbl.t;
rtbl : Runtime.Dynamic_Al.Envs.RTbl.t;
ftbl : Runtime.Dynamic_Al.Envs.FTbl.t;
}
type local = {
tdenv : Runtime.Dynamic_Al.Envs.TDEnv.t;
fenv : Runtime.Dynamic_Al.Envs.FEnv.t;
venv : Runtime.Dynamic_Al.Envs.VEnv.t;
type t = {
global : global;
local : local;
val global : global
val add_typdef_global : Domain.Lib.TId.t -> Typdef.t -> unit
val add_rel_global : Domain.Lib.RId.t -> Runtime.Dynamic_Al.Rel.t -> unit
val add_func_global : Domain.Lib.FId.t -> Runtime.Dynamic_Al.Func.t -> unit
val load_def : Lang.Al.def -> unit
val init : det:bool -> Lang.Al.spec -> unit
val empty_local : unit -> local
val empty : t
val find_value_opt : t -> Runtime.Dynamic_Al.Var.t -> Value.t option
val find_value : t -> Runtime.Dynamic_Al.Var.t -> Value.t
val bound_value : t -> Runtime.Dynamic_Al.Var.t -> bool
val find_typdef_opt : t -> Domain.Lib.TId.t -> Typdef.t option
val find_typdef : t -> Domain.Lib.TId.t -> Typdef.t
val find_defined_typdef : t -> Domain.Lib.TId.t -> Lang.Al.tparam list * Lang.Al.deftyp
val bound_typdef : t -> Domain.Lib.TId.t -> bool
val find_rel_opt : t -> Domain.Lib.RId.t -> Runtime.Dynamic_Al.Rel.t option
val find_rel : t -> Domain.Lib.RId.t -> Runtime.Dynamic_Al.Rel.t
val find_rel_signature_opt : t -> Domain.Lib.RId.t -> (Lang.Al.nottyp * Lang.Hints.Input.t) option
val find_rel_signature : t -> Domain.Lib.RId.t -> Lang.Al.nottyp * Lang.Hints.Input.t
val bound_rel : t -> Domain.Lib.RId.t -> bool
val find_func_opt : t -> Domain.Lib.FId.t -> (cursor * Runtime.Dynamic_Al.Func.t) option
val find_func : t -> Domain.Lib.FId.t -> cursor * Runtime.Dynamic_Al.Func.t
val find_func_signature_opt : t -> Domain.Lib.FId.t -> (Lang.Al.tparam list * Lang.Al.typ list * Lang.Al.typ) option
val find_func_signature : t -> Domain.Lib.FId.t -> Lang.Al.tparam list * Lang.Al.typ list * Lang.Al.typ
val bound_func : t -> Domain.Lib.FId.t -> bool
val add_value : t -> Runtime.Dynamic_Al.Var.t -> Value.t -> t
val add_typdef : t -> Domain.Lib.TId.t -> Typdef.t -> t
val add_func : t -> Domain.Lib.FId.t -> Runtime.Dynamic_Al.Func.t -> t
val localize : t -> t
val transpose : Lang.Al.value list list -> Lang.Al.value list list Backtrack.backtrack
val sub_opt : t -> Lang.Al.var list -> t option Backtrack.backtrack
val sub_list : t -> Lang.Al.var list -> t list Backtrack.backtrack