package asli

  1. Overview
  2. Docs

Environment representing both global and local state of the system

type t
val empty : t
val nestTop : (t -> 'a) -> t -> 'a
val nest : (t -> 'a) -> t -> 'a
val addLocalVar : LibASL.Value.AST.l -> t -> AST.ident -> Value.value -> unit
val addLocalConst : LibASL.Value.AST.l -> t -> AST.ident -> Value.value -> unit
val addGlobalConst : t -> AST.ident -> Value.value -> unit
val getGlobalConst : t -> AST.ident -> Value.value
val addEnum : t -> AST.ident -> Value.value list -> unit
val getEnum : t -> AST.ident -> Value.value list option
val isEnumEq : t -> AST.ident -> bool
val isEnumNeq : t -> AST.ident -> bool
val addRecord : t -> AST.ident -> (LibASL.Value.AST.ty * AST.ident) list -> unit
val getRecord : t -> AST.ident -> (LibASL.Value.AST.ty * AST.ident) list option
val addTypedef : t -> AST.ident -> LibASL.Value.AST.ty -> unit
val getTypedef : t -> AST.ident -> LibASL.Value.AST.ty option
val addGlobalVar : t -> AST.ident -> Value.value -> unit
val setVar : LibASL.Value.AST.l -> t -> AST.ident -> Value.value -> unit
val getFun : LibASL.Value.AST.l -> t -> AST.ident -> AST.ident list * AST.ident list * LibASL.Value.AST.l * AST.stmt list
val addFun : LibASL.Value.AST.l -> t -> AST.ident -> (AST.ident list * AST.ident list * LibASL.Value.AST.l * AST.stmt list) -> unit
val getInstruction : LibASL.Value.AST.l -> t -> AST.ident -> AST.encoding * AST.stmt list option * bool * AST.stmt list
val addInstruction : LibASL.Value.AST.l -> t -> AST.ident -> (AST.encoding * AST.stmt list option * bool * AST.stmt list) -> unit
val getDecoder : t -> AST.ident -> AST.decode_case
val addDecoder : t -> AST.ident -> AST.decode_case -> unit
val setImpdef : t -> string -> Value.value -> unit
val getImpdef : LibASL.Value.AST.l -> t -> string -> Value.value