pub trait AbstractAnalyzer<State: Lattice + VarState + Clone> {
fn init_state(&self) -> State { ... }
fn process_branch(
&self,
_irmap: &IRMap,
in_state: &State,
succ_addrs: &Vec<u64>,
_addr: &u64
) -> Vec<(u64, State)> { ... }
fn aexec_unop(
&self,
in_state: &mut State,
_opcode: &Unopcode,
dst: &Value,
_src: &Value,
_loc_idx: &LocIdx
) { ... }
fn aexec_binop(
&self,
in_state: &mut State,
opcode: &Binopcode,
dst: &Value,
_src1: &Value,
_src2: &Value,
_loc_idx: &LocIdx
) { ... }
fn aexec(&self, in_state: &mut State, ir_instr: &Stmt, loc_idx: &LocIdx) { ... }
fn analyze_block(&self, state: &State, irblock: &IRBlock) -> State { ... }
}