17 namespace representations {
97 stream <<
"(assert " << node->
getChildren()[0] <<
")";
153 stream <<
"(bvneg " << node->
getChildren()[0] <<
")";
167 stream <<
"(bvnot " << node->
getChildren()[0] <<
")";
321 std::vector<triton::ast::SharedAbstractNode> children = node->
getChildren();
325 stream << children[index] << std::endl;
326 stream << children[size-1];
334 std::vector<triton::ast::SharedAbstractNode> children = node->
getChildren();
342 stream <<
" " << children[index];
353 if (var->getAlias().empty())
354 stream <<
"(declare-fun " << var->getName() <<
" () (_ BitVec " << var->getSize() <<
"))";
356 stream <<
"(declare-fun " << var->getAlias() <<
" () (_ BitVec " << var->getSize() <<
"))";
361 const auto& size = array->getChildren()[0];
362 stream <<
"(define-fun " << node->
getChildren()[0] <<
" () (Array (_ BitVec " << size <<
") (_ BitVec 8)) ";
363 stream <<
"((as const (Array (_ BitVec " << size <<
") (_ BitVec 8))) (_ bv0 8)))";
398 stream <<
"(forall (";
401 if (var->getAlias().empty()) stream <<
"(" << var->getName() <<
" (_ BitVec " << var->getSize() <<
"))";
402 else stream <<
"(" << var->getAlias() <<
" (_ BitVec " << var->getSize() <<
"))";
403 if (i + 1 != size) stream <<
" ";
405 stream <<
") " << node->
getChildren()[size] <<
")";
420 stream << node->getInteger();
454 stream <<
"(not " << node->
getChildren()[0] <<
")";
487 stream << node->getSymbolicExpression()->getFormattedId();
508 stream << node->getString();
522 if (node->getSymbolicVariable()->getAlias().empty())
523 stream << node->getSymbolicVariable()->getName();
525 stream << node->getSymbolicVariable()->getAlias();
TRITON_EXPORT triton::uint32 getBitvectorSize(void) const
Returns the size of the node.
TRITON_EXPORT std::vector< SharedAbstractNode > & getChildren(void)
Returns the children of the node.
TRITON_EXPORT triton::ast::ast_e getType(void) const
Returns the type of the node.
(Array (_ BitVec indexSize) (_ BitVec 8)) node
(_ bv<value> <size>) node
(bvadd <expr1> <expr2>) node
(bvand <expr1> <expr2>) node
(bvashr <expr1> <expr2>) node
(bvlshr <expr1> <expr2>) node
(bvmul <expr1> <expr2>) node
(bvnand <expr1> <expr2>) node
(bvnor <expr1> <expr2>) node
(bvor <expr1> <expr2>) node
((_ rotate_left rot) <expr>) node
((_ rotate_right rot) <expr>) node
(bvsdiv <expr1> <expr2>) node
(bvsge <expr1> <expr2>) node
(bvsgt <expr1> <expr2>) node
(bvshl <expr1> <expr2>) node
(bvsle <expr1> <expr2>) node
(bvslt <expr1> <expr2>) node
(bvsmod <expr1> <expr2>) node
(bvsrem <expr1> <expr2>) node
(bvsub <expr1> <expr2>) node
(bvudiv <expr1> <expr2>) node
(bvuge <expr1> <expr2>) node
(bvugt <expr1> <expr2>) node
(bvule <expr1> <expr2>) node
(bvult <expr1> <expr2>) node
(bvurem <expr1> <expr2>) node
(bvxnor <expr1> <expr2>) node
(bvxor <expr1> <expr2>) node
[<expr1> <expr2> <expr3> ...] node
(concat <expr1> <expr2> ...) node
(declare-fun <var_name> () (_ BitVec <var_size>)) node
(distinct <expr1> <expr2> ...) node
(= <expr1> <expr2> ...) node
(forall ((x (_ BitVec <size>)), ...) body)
(ite <ifExpr> <thenExpr> <elseExpr>)
(let ((<alias> <expr2>)) <expr3>)
((_ sign_extend sizeExt) <expr>) node
((_ zero_extend sizeExt) <expr>) node
TRITON_EXPORT AstSmtRepresentation()
Constructor.
TRITON_EXPORT std::ostream & print(std::ostream &stream, triton::ast::AbstractNode *node)
Displays the node according to the representation mode.
The exception class used by all AST node representations.
std::shared_ptr< triton::engines::symbolic::SymbolicVariable > SharedSymbolicVariable
Shared Symbolic variable.
std::size_t usize
unsigned MAX_INT 32 or 64 bits according to the CPU.
std::uint32_t uint32
unisgned 32-bits