1 #ifndef _TREE_ITERATOR_CPP
2 #define _TREE_ITERATOR_CPP
4 #ifndef _MADARA_NO_KARL_
76 return *impl_ == *rhs.
impl_;
84 return !(*
this == rhs);
135 return impl_->operator==(*rhs.
impl_);
143 return !(*
this == rhs);
Constant iterator over an expression tree.
bool operator==(const ExpressionTreeConstIterator &rhs)
Equality operator.
bool operator!=(const ExpressionTreeConstIterator &rhs)
Nonequality operator.
ExpressionTreeConstIterator & operator++(void)
Preincrement operator.
madara::utility::Refcounter< ExpressionTreeIteratorImpl > impl_
Pointer to actual implementation, i.e., the "bridge", which is reference counted to automate memory m...
const ExpressionTree operator*(void) const
Returns a const reference to the item contained at the current position.
ExpressionTreeConstIterator(const ExpressionTreeConstIterator &ts)
Copy ctor - needed for reference counting.
Implementation of the ExpressionTreeIterator pattern that is used to define the various iterations al...
Non-const iterator for traversing an expression tree.
bool operator==(const ExpressionTreeIterator &rhs)
Equality operator.
madara::utility::Refcounter< ExpressionTreeIteratorImpl > impl_
ExpressionTreeIterator & operator++(void)
Preincrement operator.
bool operator!=(const ExpressionTreeIterator &rhs)
In-equality operator.
ExpressionTree operator*(void)
Dereference operator returns a reference to the item contained at the current position.
ExpressionTreeIterator(const ExpressionTreeIterator &ts)
Copy ctor - needed for reference counting.
Encapsulates a MADARA KaRL expression into an evaluatable tree.