#if !defined(_RELEXPR_H_) #define _RELEXPR_H_ // RELATIONAL EXPRESSIONS #include "expression.h" class equal_expression: public binary_operator_expression { public: equal_expression(expression*, expression*); double evaluate(double*) const; expression* clone() const; void print(ostream&) const; expression* simplify() const; }; class not_equal_expression: public binary_operator_expression { public: not_equal_expression(expression*, expression*); double evaluate(double*) const; expression* clone() const; void print(ostream&) const; expression* simplify() const; }; class less_expression: public binary_operator_expression { public: less_expression(expression*, expression*); double evaluate(double*) const; expression* clone() const; void print(ostream&) const; expression* simplify() const; }; class less_or_equal_expression: public binary_operator_expression { public: less_or_equal_expression(expression*, expression*); double evaluate(double*) const; expression* clone() const; void print(ostream&) const; expression* simplify() const; }; class greater_expression: public binary_operator_expression { public: greater_expression(expression*, expression*); double evaluate(double*) const; expression* clone() const; void print(ostream&) const; expression* simplify() const; }; class greater_or_equal_expression: public binary_operator_expression { public: greater_or_equal_expression(expression*, expression*); double evaluate(double*) const; expression* clone() const; void print(ostream&) const; expression* simplify() const; }; class negation : public unary_operator_expression { public: negation(expression*); double evaluate(double*) const; expression* clone() const; void print(ostream&) const; expression* simplify() const; }; #endif