Module Pulselib.PulseDecompiler

module F = Stdlib.Format
module AbstractValue = PulseAbstractValue
module Access = PulseAccess
module CallEvent = PulseCallEvent
module DecompilerExpr = PulseDecompilerExpr
module ValueHistory = PulseValueHistory

Describe abstract values in terms of source code elements

type key = AbstractValue.t
type t
val pp : F.formatter -> t -> unit
val empty : t
val invalid : t
val add_var_source : key -> IR.Var.t -> t -> t
val add_block_source : key -> string -> t -> t
val add_call_source : key -> CallEvent.t -> ((AbstractValue.t * ValueHistory.t) * IR.Typ.t) list -> t -> t
val add_access_source : key -> Access.t -> src:key -> t -> t