libTriton version 1.0 build 1592
|
Topics | |
Representations | |
Namespaces | |
namespace | triton::ast::representations |
The Representations namespace. | |
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... | |
class | triton::ast::AstContext |
AST Context - Used as AST builder. More... | |
class | triton::ast::LLVMToTriton |
Converts a LLVM IR to a Triton AST. More... | |
class | triton::ast::TritonToBitwuzla |
Converts a Triton's AST to Bitwuzla's AST. More... | |
class | triton::ast::TritonToLLVM |
Converts a Triton's AST to LVM IR. More... | |
class | triton::ast::TritonToZ3 |
Converts a Triton's AST to Z3's AST. More... | |
class | triton::ast::Z3ToTriton |
Converts a Z3's AST to a Triton's AST. More... | |
Typedefs | |
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 | |
using triton::ast::SharedAbstractNode = std::shared_ptr<triton::ast::AbstractNode> |
typedef std::shared_ptr< triton::ast::AstContext > triton::ast::SharedAstContext = std::shared_ptr<triton::ast::AstContext> |
using triton::ast::WeakAbstractNode = std::weak_ptr<triton::ast::AbstractNode> |
enum triton::ast::ast_e |
Enumerates all types of node. Must be prime numbers.
Definition at line 29 of file astEnums.hpp.
TRITON_EXPORT std::vector< SharedAbstractNode > triton::ast::childrenExtraction | ( | const SharedAbstractNode & | node, |
bool | unroll, | ||
bool | revert ) |
TRITON_EXPORT SharedAbstractNode triton::ast::dereference | ( | const SharedAbstractNode & | node | ) |
triton::uint32 triton::ast::getIndexSize | ( | const SharedAbstractNode & | node | ) |
|
inline |
|
inline |
triton::uint512 triton::ast::hash2n | ( | triton::uint512 | hash, |
triton::uint32 | n ) |
triton::sint512 triton::ast::modularSignExtend | ( | AbstractNode * | node | ) |
TRITON_EXPORT SharedAbstractNode triton::ast::newInstance | ( | AbstractNode * | node, |
bool | unroll ) |
TRITON_EXPORT std::ostream & triton::ast::operator<< | ( | std::ostream & | stream, |
AbstractNode * | node ) |
TRITON_EXPORT std::vector< SharedAbstractNode > triton::ast::parentsExtraction | ( | const SharedAbstractNode & | node, |
bool | revert ) |
triton::uint512 triton::ast::rotl | ( | const triton::uint512 & | value, |
triton::uint32 | shift ) |
TRITON_EXPORT std::deque< SharedAbstractNode > triton::ast::search | ( | const SharedAbstractNode & | node, |
triton::ast::ast_e | match ) |
TRITON_EXPORT SharedAbstractNode triton::ast::unroll | ( | const triton::ast::SharedAbstractNode & | node | ) |