Calculator
Step 3
|
#include <node_impl.hpp>
Public Member Functions | |
node_impl () | |
virtual | ~node_impl () |
void | print (std::ostream &stream, int indent) const |
double | evaluate () const |
std::string | to_string () const |
Private Member Functions | |
node_impl (node_impl const &n)=delete | |
node_impl & | operator= (node_impl const &n)=delete |
virtual void | print_node (std::ostream &stream, int indent) const =0 |
virtual double | evaluate_node () const =0 |
virtual std::string | evaluate_string () const |
Base class for all parse tree nodes. The node classes all derive from node_impl. Each derived class overrides print_node(), for debugging and evalute_node() to evaluate the node. A few classes also override evaluate_string(), but most classes can inherit the node_impl::evaluate_string implementation, which prints the result of calling evaluate().
Definition at line 17 of file node_impl.hpp.
node_impl::node_impl | ( | ) |
Definition at line 9 of file node_impl.cpp.
|
virtual |
Definition at line 12 of file node_impl.cpp.
|
privatedelete |
double node_impl::evaluate | ( | ) | const |
Definition at line 21 of file node_impl.cpp.
References evaluate_node().
Referenced by evaluate_string().
|
privatepure virtual |
Implemented in node_divide, node_multiply, node_subtract, node_add, node_negate, node_binary, node_unary, node_assign, node_identifier, node_number, and node_void.
Referenced by evaluate().
|
privatevirtual |
Reimplemented in node_identifier, and node_void.
Definition at line 33 of file node_impl.cpp.
References evaluate().
Referenced by to_string().
void node_impl::print | ( | std::ostream & | stream, |
int | indent | ||
) | const |
Definition at line 15 of file node_impl.cpp.
References print_node().
|
privatepure virtual |
Implemented in node_divide, node_multiply, node_subtract, node_add, node_negate, node_binary, node_unary, node_assign, node_identifier, node_number, and node_void.
Referenced by print().
std::string node_impl::to_string | ( | ) | const |