MADARA  3.2.3
madara::expression::CompositeModulusNode Class Reference

A composite node that divides a left expression by a right expression and returns the remainder of the division. More...

#include <CompositeModulusNode.h>

Inheritance diagram for madara::expression::CompositeModulusNode:
madara::expression::CompositeBinaryNode madara::expression::CompositeUnaryNode madara::expression::ComponentNode

Public Member Functions

 CompositeModulusNode (logger::Logger &logger, ComponentNode *left, ComponentNode *right)
 Constructor. More...
 
virtual ~CompositeModulusNode (void)
 Destructor. More...
 
virtual void accept (Visitor &visitor) const
 Accepts a visitor subclassed from the Visitor class. More...
 
virtual madara::knowledge::KnowledgeRecord evaluate (const madara::knowledge::KnowledgeUpdateSettings &settings)
 Evaluates the expression tree. More...
 
virtual madara::knowledge::KnowledgeRecord item (void) const
 Returns the printable character of the node. More...
 
virtual ComponentNodeleft (void) const
 Returns the left expression. More...
 
virtual madara::knowledge::KnowledgeRecord prune (bool &can_change)
 Prunes the expression tree of unnecessary nodes. More...
 
virtual ComponentNoderight (void) const
 Returns the right expression. More...
 
void set_logger (logger::Logger &logger)
 Sets the logger for printing errors and debugging info. More...
 

Protected Attributes

ComponentNodeleft_
 left expression More...
 
logger::Loggerlogger_
 handle the context More...
 
ComponentNoderight_
 Right expression. More...
 

Detailed Description

A composite node that divides a left expression by a right expression and returns the remainder of the division.

Definition at line 22 of file CompositeModulusNode.h.

Constructor & Destructor Documentation

madara::expression::CompositeModulusNode::CompositeModulusNode ( logger::Logger logger,
ComponentNode left,
ComponentNode right 
)

Constructor.

Parameters
loggerthe logger to use for printing
leftleft expression
rightright expression

Definition at line 15 of file CompositeModulusNode.cpp.

madara::expression::CompositeModulusNode::~CompositeModulusNode ( void  )
virtual

Destructor.

Definition at line 22 of file CompositeModulusNode.cpp.

Member Function Documentation

void madara::expression::CompositeModulusNode::accept ( Visitor visitor) const
virtual

Accepts a visitor subclassed from the Visitor class.

Parameters
visitorvisitor instance to use

Reimplemented from madara::expression::ComponentNode.

Definition at line 114 of file CompositeModulusNode.cpp.

madara::knowledge::KnowledgeRecord madara::expression::CompositeModulusNode::evaluate ( const madara::knowledge::KnowledgeUpdateSettings settings)
virtual

Evaluates the expression tree.

Evaluates the node and its children.

Parameters
settingssettings for evaluating the node
Returns
remainder of left expression divided by right expression. If right expression is zero, then a compile error is logged and the process exits.

This does not prune any of the expression tree, and is much faster than the prune function

Implements madara::expression::ComponentNode.

Definition at line 105 of file CompositeModulusNode.cpp.

madara::knowledge::KnowledgeRecord madara::expression::CompositeModulusNode::item ( void  ) const
virtual

Returns the printable character of the node.

Returns
value of the node

Reimplemented from madara::expression::ComponentNode.

Definition at line 27 of file CompositeModulusNode.cpp.

madara::expression::ComponentNode * madara::expression::CompositeBinaryNode::left ( void  ) const
virtualinherited

Returns the left expression.

Returns
a pointer to the left expression

Reimplemented from madara::expression::ComponentNode.

Definition at line 27 of file CompositeBinaryNode.cpp.

madara::knowledge::KnowledgeRecord madara::expression::CompositeModulusNode::prune ( bool &  can_change)
virtual

Prunes the expression tree of unnecessary nodes.

Prune the tree of unnecessary nodes.

Parameters
can_changeset to true if variable nodes are contained
Returns
remainder of left expression divided by right expression. If right expression is zero, then a compile error is logged and the process exits.

Returns evaluation of the node and sets can_change appropriately. if this node can be changed, that means it shouldn't be pruned.

Implements madara::expression::ComponentNode.

Definition at line 39 of file CompositeModulusNode.cpp.

madara::expression::ComponentNode * madara::expression::CompositeUnaryNode::right ( void  ) const
virtualinherited

Returns the right expression.

Returns
a pointer to the right expression

Reimplemented from madara::expression::ComponentNode.

Definition at line 24 of file CompositeUnaryNode.cpp.

void madara::expression::ComponentNode::set_logger ( logger::Logger logger)
inherited

Sets the logger for printing errors and debugging info.

Parameters
loggerthe logger to use

Definition at line 53 of file ComponentNode.cpp.

Member Data Documentation

ComponentNode* madara::expression::CompositeBinaryNode::left_
protectedinherited

left expression

Definition at line 47 of file CompositeBinaryNode.h.

logger::Logger* madara::expression::ComponentNode::logger_
protectedinherited

handle the context

Definition at line 97 of file ComponentNode.h.

ComponentNode* madara::expression::CompositeUnaryNode::right_
protectedinherited

Right expression.

Definition at line 43 of file CompositeUnaryNode.h.


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