Module Subst


module Subst: sig .. end
Deprecated.Carbon-20101201
Substitution of varinfos by exps.

type t 
Type of the substitution.
val empty : t
The empty substitution.
val add : Cil_types.varinfo -> Cil_types.exp -> t -> t
Add a new couple to the substitution.
val remove : Cil_types.varinfo -> t -> t
Do not substitute the varinfo anymore.
val expr : ?trans:bool -> Cil_types.exp -> t -> Cil_types.exp * bool
Apply the substitution to an expression. If trans, the substitution is transitively applied. Default is true. For example, with subst = { x -> &y; y -> b } and exp = x, the result is &b by default and &y if trans is false. The returned boolean flag is true is a substitution occured.
val lval : ?trans:bool -> Cil_types.lval -> t -> Cil_types.exp * bool
Apply the substitution to a lvalue.