Module IR.Instrs
type reversed
type not_reversed
type _ t
type not_reversed_t
= not_reversed t
defined for convenience: we can write
Instrs.not_reversed_t
in other modules instead ofInstrs.not_reversed Instrs.t
val empty : _ t
val singleton : Sil.instr -> _ t
val append_list : not_reversed t -> Sil.instr list -> not_reversed t
val of_list : Sil.instr list -> not_reversed t
val filter_map : not_reversed t -> f:(Sil.instr -> Sil.instr option) -> not_reversed t
val map : not_reversed t -> f:(Sil.instr -> Sil.instr) -> not_reversed t
replace every instruction
instr
withf instr
. Preserve physical equality. *
val map_and_fold : not_reversed t -> f:('a -> Sil.instr -> 'a * Sil.instr) -> init:'a -> not_reversed t
replace every instruction
instr
withsnd (f context instr)
. The context is computed by foldingf
oninit
and previous instructions (beforeinstr
) in the collection. Preserve physical equality. *
val concat_map : not_reversed t -> f:(Sil.instr -> Sil.instr array) -> not_reversed t
replace every instruction
instr
with the listf instr
. Preserve physical equality. *
val reverse_order : not_reversed t -> reversed t
val is_empty : _ t -> bool
val count : _ t -> int
val exists : _ t -> f:(Sil.instr -> bool) -> bool
val for_all : _ t -> f:(Sil.instr -> bool) -> bool
val nth_exists : _ t -> int -> bool
val nth_exn : _ t -> int -> Sil.instr
val last : _ t -> Sil.instr option
val find_map : _ t -> f:(Sil.instr -> 'a option) -> 'a option
val pp : IStdlib.Pp.env -> Stdlib.Format.formatter -> _ t -> unit
val fold : (_ t, Sil.instr, 'a) IStdlib.IStd.Container.fold
val iter : (_ t, Sil.instr) IStdlib.IStd.Container.iter
val get_underlying_not_reversed : not_reversed t -> Sil.instr array