17 namespace representations {
97 stream <<
"assert(" << 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];
343 if (index+1 < size) {
357 if (var->getAlias().empty())
358 stream << var->getName() <<
" = " <<
"input()";
360 stream << var->getAlias() <<
" = " <<
"input()";
394 stream << std::dec <<
"extract(" << high <<
", " << low <<
", " << node->
getChildren()[2] <<
")";
404 stream <<
"forall([";
407 if (var->getAlias().empty()) stream << var->getName();
408 else stream << var->getAlias();
409 if (i + 1 != size) stream <<
", ";
411 stream <<
"], " << node->
getChildren()[size] <<
")";
426 stream << std::hex <<
"0x" << node->getInteger() << std::dec;
483 stream <<
") != bool(" << node->
getChildren()[index];
495 stream << node->getSymbolicExpression()->getFormattedId();
517 stream << node->getString();
537 if (node->getSymbolicVariable()->getAlias().empty())
538 stream << node->getSymbolicVariable()->getName();
540 stream << node->getSymbolicVariable()->getAlias();
TRITON_EXPORT bool isArray(void) const
Returns true if it's an array node.
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 std::ostream & print(std::ostream &stream, triton::ast::AbstractNode *node)
Displays the node according to the representation mode.
TRITON_EXPORT AstPcodeRepresentation()
Constructor.
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