libTriton version 1.0 build 1592
|
#include <deque>
#include <memory>
#include <ostream>
#include <stdexcept>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <triton/astEnums.hpp>
#include <triton/coreUtils.hpp>
#include <triton/cpuSize.hpp>
#include <triton/dllexport.hpp>
#include <triton/exceptions.hpp>
#include <triton/tritonTypes.hpp>
Go to the source code of this file.
Classes | |
class | triton::ast::AbstractNode |
Abstract node. More... | |
class | triton::ast::ArrayNode |
(Array (_ BitVec indexSize) (_ BitVec 8)) node More... | |
class | triton::ast::AssertNode |
(assert <expr>) node More... | |
class | triton::ast::BswapNode |
(bswap <expr>) node More... | |
class | triton::ast::BvaddNode |
(bvadd <expr1> <expr2>) node More... | |
class | triton::ast::BvandNode |
(bvand <expr1> <expr2>) node More... | |
class | triton::ast::BvashrNode |
(bvashr <expr1> <expr2>) node More... | |
class | triton::ast::BvlshrNode |
(bvlshr <expr1> <expr2>) node More... | |
class | triton::ast::BvmulNode |
(bvmul <expr1> <expr2>) node More... | |
class | triton::ast::BvnandNode |
(bvnand <expr1> <expr2>) node More... | |
class | triton::ast::BvnegNode |
(bvneg <expr>) node More... | |
class | triton::ast::BvnorNode |
(bvnor <expr1> <expr2>) node More... | |
class | triton::ast::BvnotNode |
(bvnot <expr>) node More... | |
class | triton::ast::BvorNode |
(bvor <expr1> <expr2>) node More... | |
class | triton::ast::BvrolNode |
((_ rotate_left rot) <expr>) node More... | |
class | triton::ast::BvrorNode |
((_ rotate_right rot) <expr>) node More... | |
class | triton::ast::BvsdivNode |
(bvsdiv <expr1> <expr2>) node More... | |
class | triton::ast::BvsgeNode |
(bvsge <expr1> <expr2>) node More... | |
class | triton::ast::BvsgtNode |
(bvsgt <expr1> <expr2>) node More... | |
class | triton::ast::BvshlNode |
(bvshl <expr1> <expr2>) node More... | |
class | triton::ast::BvsleNode |
(bvsle <expr1> <expr2>) node More... | |
class | triton::ast::BvsltNode |
(bvslt <expr1> <expr2>) node More... | |
class | triton::ast::BvsmodNode |
(bvsmod <expr1> <expr2>) node More... | |
class | triton::ast::BvsremNode |
(bvsrem <expr1> <expr2>) node More... | |
class | triton::ast::BvsubNode |
(bvsub <expr1> <expr2>) node More... | |
class | triton::ast::BvudivNode |
(bvudiv <expr1> <expr2>) node More... | |
class | triton::ast::BvugeNode |
(bvuge <expr1> <expr2>) node More... | |
class | triton::ast::BvugtNode |
(bvugt <expr1> <expr2>) node More... | |
class | triton::ast::BvuleNode |
(bvule <expr1> <expr2>) node More... | |
class | triton::ast::BvultNode |
(bvult <expr1> <expr2>) node More... | |
class | triton::ast::BvuremNode |
(bvurem <expr1> <expr2>) node More... | |
class | triton::ast::BvxnorNode |
(bvxnor <expr1> <expr2>) node More... | |
class | triton::ast::BvxorNode |
(bvxor <expr1> <expr2>) node More... | |
class | triton::ast::BvNode |
(_ bv<value> <size>) node More... | |
class | triton::ast::CompoundNode |
[<expr1> <expr2> <expr3> ...] node More... | |
class | triton::ast::ConcatNode |
(concat <expr1> <expr2> ...) node More... | |
class | triton::ast::DeclareNode |
(declare-fun <var_name> () (_ BitVec <var_size>)) node More... | |
class | triton::ast::DistinctNode |
(distinct <expr1> <expr2> ...) node More... | |
class | triton::ast::EqualNode |
(= <expr1> <expr2> ...) node More... | |
class | triton::ast::ExtractNode |
((_ extract <high> <low>) <expr>) node More... | |
class | triton::ast::ForallNode |
(forall ((x (_ BitVec <size>)), ...) body) More... | |
class | triton::ast::IffNode |
(iff <expr1> <expr2>) More... | |
class | triton::ast::IntegerNode |
Integer node. More... | |
class | triton::ast::IteNode |
(ite <ifExpr> <thenExpr> <elseExpr>) More... | |
class | triton::ast::LandNode |
(and <expr1> <expr2>) More... | |
class | triton::ast::LetNode |
(let ((<alias> <expr2>)) <expr3>) More... | |
class | triton::ast::LnotNode |
(lnot <expr>) More... | |
class | triton::ast::LorNode |
(or <expr1> <expr2>) More... | |
class | triton::ast::LxorNode |
(xor <expr1> <expr2>) More... | |
class | triton::ast::ReferenceNode |
Reference node. More... | |
class | triton::ast::SelectNode |
(select array index) More... | |
class | triton::ast::StoreNode |
(store array index expr) More... | |
class | triton::ast::StringNode |
String node. More... | |
class | triton::ast::SxNode |
((_ sign_extend sizeExt) <expr>) node More... | |
class | triton::ast::VariableNode |
Variable node. More... | |
class | triton::ast::ZxNode |
((_ zero_extend sizeExt) <expr>) node More... | |
Namespaces | |
namespace | triton |
The Triton namespace. | |
namespace | triton::engines |
The Engines namespace. | |
namespace | triton::engines::symbolic |
The Symbolic Execution namespace. | |
namespace | triton::ast |
The AST namespace. | |
Typedefs | |
using | triton::engines::symbolic::SharedSymbolicExpression = std::shared_ptr<triton::engines::symbolic::SymbolicExpression> |
Shared Symbolic Expression. | |
using | triton::engines::symbolic::SharedSymbolicVariable = std::shared_ptr<triton::engines::symbolic::SymbolicVariable> |
Shared Symbolic variable. | |
using | triton::ast::SharedAbstractNode = std::shared_ptr<triton::ast::AbstractNode> |
Shared Abstract Node. | |
using | triton::ast::WeakAbstractNode = std::weak_ptr<triton::ast::AbstractNode> |
Weak Abstract Node. | |
using | triton::ast::SharedAstContext = std::shared_ptr<triton::ast::AstContext> |
Shared AST context. | |
Functions | |
triton::uint512 | triton::ast::hash2n (triton::uint512 hash, triton::uint32 n) |
Custom hash2n function for hash routine. | |
triton::uint512 | triton::ast::rotl (const triton::uint512 &value, triton::uint32 shift) |
Custom rotate left function for hash routine. | |
triton::sint512 | triton::ast::modularSignExtend (AbstractNode *node) |
Custom modular sign extend for bitwise operation. | |
std::ostream & | triton::ast::operator<< (std::ostream &stream, AbstractNode *node) |
Displays the node in ast representation. | |
SharedAbstractNode | triton::ast::newInstance (AbstractNode *node, bool unroll=false) |
AST C++ API - Duplicates the AST. | |
SharedAbstractNode | triton::ast::unroll (const SharedAbstractNode &node) |
AST C++ API - Unrolls the SSA form of a given AST. | |
std::vector< SharedAbstractNode > | triton::ast::childrenExtraction (const SharedAbstractNode &node, bool unroll, bool revert) |
Returns node and all its children of an AST sorted topologically. If unroll is true, references are unrolled. If revert is true, children are on top of list. | |
std::vector< SharedAbstractNode > | triton::ast::parentsExtraction (const SharedAbstractNode &node, bool revert) |
Returns node and all its parents of an AST sorted topologically. If revert is true, oldest parents are on top of list. | |
std::deque< SharedAbstractNode > | triton::ast::search (const SharedAbstractNode &node, triton::ast::ast_e match=ANY_NODE) |
Returns a deque of collected matched nodes via a depth-first pre order traversal. | |
SharedAbstractNode | triton::ast::dereference (const SharedAbstractNode &node) |
Returns the first non referene node encountered. | |
triton::uint32 | triton::ast::getIndexSize (const SharedAbstractNode &node) |
Gets the index size of an array. | |
template<typename T > | |
T | triton::ast::getInteger (const SharedAbstractNode &node) |
Gets the value of an integer node. | |
template<> | |
std::string | triton::ast::getInteger (const SharedAbstractNode &node) |
std::string specialization | |