libTriton  version 0.6 build 1388
Public Member Functions | Protected Attributes | List of all members
triton::ast::AbstractNode Class Referenceabstract

Abstract node. More...

#include <ast.hpp>

Inheritance diagram for triton::ast::AbstractNode:

Public Member Functions

TRITON_EXPORT AbstractNode (enum kind_e kind, AstContext &ctxt)
 Constructor.
 
TRITON_EXPORT AbstractNode (const AbstractNode &other, AstContext &ctxt)
 Constructor by copy.
 
virtual TRITON_EXPORT ~AbstractNode ()
 Destructor.
 
TRITON_EXPORT AstContextgetContext (void) const
 Access to its context.
 
TRITON_EXPORT enum kind_e getKind (void) const
 Returns the kind of the node.
 
TRITON_EXPORT triton::uint32 getBitvectorSize (void) const
 Returns the size of the node.
 
TRITON_EXPORT triton::uint512 getBitvectorMask (void) const
 Returns the vector mask according the size of the node.
 
TRITON_EXPORT bool isSigned (void) const
 According to the size of the expression, returns true if the MSB is 1.
 
TRITON_EXPORT bool isSymbolized (void) const
 Returns true if the tree contains a symbolic variable.
 
TRITON_EXPORT bool isLogical (void) const
 Returns true if it's a logical node.
 
TRITON_EXPORT bool equalTo (const SharedAbstractNode &) const
 Returns true if the current tree is equal to the second one.
 
virtual TRITON_EXPORT triton::uint512 evaluate (void) const
 Evaluates the tree.
 
void initParents (void)
 Initializes parents.
 
TRITON_EXPORT std::vector< SharedAbstractNode > & getChildren (void)
 Returns the children of the node.
 
TRITON_EXPORT std::vector< SharedAbstractNodegetParents (void)
 Returns the parents of node or an empty set if there is still no parent defined.
 
TRITON_EXPORT void removeParent (AbstractNode *p)
 Removes a parent node.
 
TRITON_EXPORT void setParent (AbstractNode *p)
 Sets a parent node.
 
TRITON_EXPORT void setParent (std::set< AbstractNode *> &p)
 Sets the parent nodes.
 
TRITON_EXPORT void setBitvectorSize (triton::uint32 size)
 Sets the size of the node.
 
TRITON_EXPORT void addChild (const SharedAbstractNode &child)
 Adds a child.
 
TRITON_EXPORT void setChild (triton::uint32 index, const SharedAbstractNode &child)
 Sets a child at an index.
 
TRITON_EXPORT std::string str (void) const
 Returns the string representation of the node.
 
virtual TRITON_EXPORT void init (void)=0
 Init stuffs like size and eval.
 
virtual TRITON_EXPORT triton::uint512 hash (triton::uint32 deep) const =0
 Returns the has of the tree. The hash is computed recursively on the whole tree.
 

Protected Attributes

enum kind_e kind
 The kind of the node.
 
std::vector< SharedAbstractNodechildren
 The children of the node.
 
std::map< AbstractNode *, std::pair< triton::uint32, WeakAbstractNode > > parents
 
triton::uint32 size
 The size of the node.
 
triton::uint512 eval
 The value of the tree from this root node.
 
bool symbolized
 True if the tree contains a symbolic variable.
 
bool logical
 True if it's a logical node.
 
AstContextctxt
 Contect use to create this node.
 

Detailed Description

Abstract node.

Definition at line 63 of file ast.hpp.


The documentation for this class was generated from the following files: