pub enum Exp {
Show 45 variants
Var(Sym),
Bits(Vec<bool>),
Bits64(B64),
Enum(EnumMember),
Bool(bool),
Eq(Box<Exp>, Box<Exp>),
Neq(Box<Exp>, Box<Exp>),
And(Box<Exp>, Box<Exp>),
Or(Box<Exp>, Box<Exp>),
Not(Box<Exp>),
Bvnot(Box<Exp>),
Bvand(Box<Exp>, Box<Exp>),
Bvor(Box<Exp>, Box<Exp>),
Bvxor(Box<Exp>, Box<Exp>),
Bvnand(Box<Exp>, Box<Exp>),
Bvnor(Box<Exp>, Box<Exp>),
Bvxnor(Box<Exp>, Box<Exp>),
Bvneg(Box<Exp>),
Bvadd(Box<Exp>, Box<Exp>),
Bvsub(Box<Exp>, Box<Exp>),
Bvmul(Box<Exp>, Box<Exp>),
Bvudiv(Box<Exp>, Box<Exp>),
Bvsdiv(Box<Exp>, Box<Exp>),
Bvurem(Box<Exp>, Box<Exp>),
Bvsrem(Box<Exp>, Box<Exp>),
Bvsmod(Box<Exp>, Box<Exp>),
Bvult(Box<Exp>, Box<Exp>),
Bvslt(Box<Exp>, Box<Exp>),
Bvule(Box<Exp>, Box<Exp>),
Bvsle(Box<Exp>, Box<Exp>),
Bvuge(Box<Exp>, Box<Exp>),
Bvsge(Box<Exp>, Box<Exp>),
Bvugt(Box<Exp>, Box<Exp>),
Bvsgt(Box<Exp>, Box<Exp>),
Extract(u32, u32, Box<Exp>),
ZeroExtend(u32, Box<Exp>),
SignExtend(u32, Box<Exp>),
Bvshl(Box<Exp>, Box<Exp>),
Bvlshr(Box<Exp>, Box<Exp>),
Bvashr(Box<Exp>, Box<Exp>),
Concat(Box<Exp>, Box<Exp>),
Ite(Box<Exp>, Box<Exp>, Box<Exp>),
App(Sym, Vec<Exp>),
Select(Box<Exp>, Box<Exp>),
Store(Box<Exp>, Box<Exp>, Box<Exp>),
}
Variants§
Var(Sym)
Bits(Vec<bool>)
Bits64(B64)
Enum(EnumMember)
Bool(bool)
Eq(Box<Exp>, Box<Exp>)
Neq(Box<Exp>, Box<Exp>)
And(Box<Exp>, Box<Exp>)
Or(Box<Exp>, Box<Exp>)
Not(Box<Exp>)
Bvnot(Box<Exp>)
Bvand(Box<Exp>, Box<Exp>)
Bvor(Box<Exp>, Box<Exp>)
Bvxor(Box<Exp>, Box<Exp>)
Bvnand(Box<Exp>, Box<Exp>)
Bvnor(Box<Exp>, Box<Exp>)
Bvxnor(Box<Exp>, Box<Exp>)
Bvneg(Box<Exp>)
Bvadd(Box<Exp>, Box<Exp>)
Bvsub(Box<Exp>, Box<Exp>)
Bvmul(Box<Exp>, Box<Exp>)
Bvudiv(Box<Exp>, Box<Exp>)
Bvsdiv(Box<Exp>, Box<Exp>)
Bvurem(Box<Exp>, Box<Exp>)
Bvsrem(Box<Exp>, Box<Exp>)
Bvsmod(Box<Exp>, Box<Exp>)
Bvult(Box<Exp>, Box<Exp>)
Bvslt(Box<Exp>, Box<Exp>)
Bvule(Box<Exp>, Box<Exp>)
Bvsle(Box<Exp>, Box<Exp>)
Bvuge(Box<Exp>, Box<Exp>)
Bvsge(Box<Exp>, Box<Exp>)
Bvugt(Box<Exp>, Box<Exp>)
Bvsgt(Box<Exp>, Box<Exp>)
Extract(u32, u32, Box<Exp>)
ZeroExtend(u32, Box<Exp>)
SignExtend(u32, Box<Exp>)
Bvshl(Box<Exp>, Box<Exp>)
Bvlshr(Box<Exp>, Box<Exp>)
Bvashr(Box<Exp>, Box<Exp>)
Concat(Box<Exp>, Box<Exp>)
Ite(Box<Exp>, Box<Exp>, Box<Exp>)
App(Sym, Vec<Exp>)
Select(Box<Exp>, Box<Exp>)
Store(Box<Exp>, Box<Exp>, Box<Exp>)
Implementations§
Source§impl Exp
impl Exp
pub fn eval(self) -> Self
Sourcepub fn modify<F>(&mut self, f: &F)
pub fn modify<F>(&mut self, f: &F)
Recursivly apply the supplied function to each sub-expression in a bottom-up order
Sourcepub fn modify_top_down<F>(&mut self, f: &F)
pub fn modify_top_down<F>(&mut self, f: &F)
Recursivly apply the supplied function to each sub-expression in a top down order
pub fn commute_extract(&mut self)
pub fn subst_once_in_place(&mut self, substs: &mut HashMap<Sym, Option<Exp>>)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Exp
impl RefUnwindSafe for Exp
impl Send for Exp
impl Sync for Exp
impl Unpin for Exp
impl UnwindSafe for Exp
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more