void TritonToZ3Ast::operator()(triton::ast::BvNode& e) { Z3Result value = this->eval(*e.getChilds()[0]); Z3Result size = this->eval(*e.getChilds()[1]); triton::uint32 bvsize = static_cast<triton::uint32>(size.getUintValue()); z3::expr newexpr = this->result.getContext().bv_val(value.getStringValue().c_str(), bvsize); this->result.setExpr(newexpr); }
uint512 AnalysisProcessor::evaluateAST(smt2lib::smtAstAbstractNode *node) { Z3ast z3ast{}; Z3Result result = z3ast.eval(*node); uint512 nbResult{result.getStringValue()}; return nbResult; }