3 #ifndef _MADARA_KNOWLEDGE_EXPRESSION_TREE_H_
4 #define _MADARA_KNOWLEDGE_EXPRESSION_TREE_H_
6 #ifndef _MADARA_NO_KARL_
21 class ExpressionTreeIterator;
22 class ExpressionTreeConstIterator;
An abstract base class defines a simple abstract implementation of an expression tree node.
Constant iterator over an expression tree.
Non-const iterator for traversing an expression tree.
Encapsulates a MADARA KaRL expression into an evaluatable tree.
ExpressionTree(logger::Logger &logger= *logger::global_logger.get())
Constructor.
ExpressionTree left(void)
Returns the left expression of this tree.
madara::knowledge::KnowledgeRecord evaluate(const madara::knowledge::KnowledgeUpdateSettings &settings=knowledge::KnowledgeUpdateSettings())
Evaluates the expression tree.
iterator begin(const std::string &traversal_order)
Returns an iterator to the beginning of the expression tree.
bool is_null(void) const
Checks if root pointer is null.
ExpressionTree right(void)
Returns the right expression of this tree.
ComponentNode * get_root(void)
Returns the root node of the expression tree.
~ExpressionTree(void)
Destructor.
iterator end(const std::string &traversal_order)
Returns an iterator to the end of the expression tree.
ExpressionTreeIterator iterator
madara::knowledge::KnowledgeRecord value_type
logger::Logger * logger_
handle for logging information
void operator=(const ExpressionTree &tree)
Non-deep copies an expression tree into this instance.
madara::knowledge::KnowledgeRecord prune(void)
Prunes the expression tree of unnecessary nodes.
madara::utility::Refcounter< ComponentNode > root_
root of the expression tree
ExpressionTreeConstIterator const_iterator
madara::knowledge::KnowledgeRecord item(void) const
Returns value of tree.
void accept(Visitor &visitor) const
Accepts a visitor subclassed from the Visitor class.
Abstract base class for all visitors to all classes that derive from ComponentNode.
This class encapsulates an entry in a KnowledgeBase.
Settings for applying knowledge updates.
A multi-threaded logger for logging to one or more destinations.
This template class provides transparent reference counting of its template parameter T.
T get(const KnowledgeRecord &kr)
Get the value of a KnowlegeRecord.
Provides knowledge logging services to files and terminals.
MADARA_EXPORT utility::Refcounter< logger::Logger > global_logger
Copyright(c) 2020 Galois.