2 #ifndef _MADARA_TREE_ITERATOR_IMPL_H_ 3 #define _MADARA_TREE_ITERATOR_IMPL_H_ 23 class ExpressionTreeIterator;
102 bool end_iter =
false);
158 bool end_iter =
false);
214 bool end_iter =
false);
271 bool end_iter =
false);
This class encapsulates an entry in a KnowledgeBase.
::std::forward_iterator_tag iterator_category
madara::knowledge::KnowledgeRecord value_type
Encapsulates a MADARA KaRL expression into an evaluatable tree.
madara::knowledge::KnowledgeRecord value_type
madara::utility::LQueue< ExpressionTree > queue_
Our current position in the iteration.
madara::utility::LStack< ExpressionTree > stack_
Our current position in the iteration.
Iterates through an ExpressionTree in in-order.
madara::knowledge::KnowledgeRecord value_type
Non-const iterator for traversing an expression tree.
madara::utility::LStack< ExpressionTree > stack_
Our current position in the iteration.
madara::knowledge::KnowledgeRecord value_type
::std::forward_iterator_tag iterator_category
auto operator*(const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()*rhs.get())
madara::knowledge::KnowledgeRecord value_type
Iterates through an ExpressionTree in post-order.
madara::utility::LStack< ExpressionTree > stack_
Our current position in the iteration.
::std::forward_iterator_tag iterator_category
Iterates through an ExpressionTree in level-order.
auto operator==(const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()==rhs.get())
auto operator!=(const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()!=rhs.get())
Iterates through an ExpressionTree in level-order.
Provides utility functions and classes for common tasks and needs.
Defines a generic "last-in/first-out" (LIFO) Abstract Data Type (ADT) using a stack that's implemente...
Copyright (c) 2015 Carnegie Mellon University.
::std::forward_iterator_tag iterator_category
= Necessary traits
::std::forward_iterator_tag iterator_category
Implementation of the ExpressionTreeIterator pattern that is used to define the various iterations al...
Defines a generic "first-in/first-out" (FIFO) Abstract Data Type (ADT) using a circular linked list...
const ExpressionTree & tree_
The tree we are iterating over.
This template class provides transparent reference counting of its template parameter T...
auto operator++(Tracked< T > &lhs) -> decltype(++lhs.get_mut())