2 #ifndef _MADARA_TREE_ITERATOR_H_
3 #define _MADARA_TREE_ITERATOR_H_
15 class ExpressionTreeCommandFactory;
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...
std::forward_iterator_tag iterator_category
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.
std::forward_iterator_tag iterator_category
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.
This template class provides transparent reference counting of its template parameter T.
Copyright(c) 2020 Galois.