36 std::ostringstream stream{};
49 stream << std::setw(indent) <<
"" <<
"void\n";
78 stream << std::setw(indent) <<
"" <<
value() <<
'\n';
89 :
node_impl{}, identifier_{std::move(identifier)}
101 stream << std::setw(indent) <<
"" <<
identifier() <<
'\n';
118 :
node_impl{}, identifier_{identifier}, value_{value}
179 :
node_impl{}, left_{left}, right_{right}
214 stream << std::setw(indent) <<
"" <<
"-\n";
232 stream << std::setw(indent) <<
"" <<
"+\n";
251 stream << std::setw(indent) <<
"" <<
"-\n";
270 stream << std::setw(indent) <<
"" <<
"*\n";
289 stream << std::setw(indent) <<
"" <<
"/\n";
virtual double evaluate_node() const override
node_number(double value)
double evaluate_right() const
std::string evaluate_string() const override
virtual std::string evaluate_string() const
virtual void print_node(std::ostream &stream, int indent) const override
virtual double evaluate_node() const =0
virtual void print_node(std::ostream &stream, int indent) const override
virtual void print_node(std::ostream &stream, int indent) const override
double evaluate_left() const
node_identifier(std::string identifier)
virtual void print_node(std::ostream &stream, int indent) const override
void set_variable(std::string name, double value)
node_binary(node left, node right)
virtual double evaluate_node() const override
virtual double evaluate_node() const override
void print_node(std::ostream &stream, int indent) const override
virtual std::string evaluate_string() const override
double evaluate_node() const override
void print(std::ostream &stream, int indent) const
node_assign(node identifier, node value)
void print_node(std::ostream &stream, int indent) const override
double evaluate_operand() const
std::string get_identifier() const
node_multiply(node left, node right)
double evaluate_value() const
void print(std::ostream &stream, int indent=0) const
virtual void print_node(std::ostream &stream, int indent) const override
virtual void print_node(std::ostream &stream, int indent) const =0
virtual double evaluate_node() const override
node_subtract(node left, node right)
double evaluate_node() const override
virtual void print_node(std::ostream &stream, int indent) const override
std::string to_string() const
virtual double evaluate_node() const override
std::string to_string() const
node_negate(node operand)
double get_variable(std::string const &name)
virtual void print_node(std::ostream &stream, int indent) const override
virtual double evaluate_node() const override
node_divide(node left, node right)
node_add(node left, node right)
virtual double evaluate_node() const override
std::string const & identifier() const