diff options
Diffstat (limited to 'include/simplifier.hpp')
-rw-r--r-- | include/simplifier.hpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/include/simplifier.hpp b/include/simplifier.hpp index dcc3225..e08f951 100644 --- a/include/simplifier.hpp +++ b/include/simplifier.hpp @@ -8,25 +8,25 @@ class Simplifier { private: - void simplifyChildren(Expression *root, Expression *left, Expression *right); - Expression *ruleEval(Expression *expr); - Expression *ruleMultiplyByOne(MultiplicationExpression *expr); - Expression *ruleDivideByOne(DivisionExpression *expr); - Expression *ruleMultiplyByZero(MultiplicationExpression *expr); - Expression *ruleZeroDivision(DivisionExpression *expr); - Expression *ruleOnePower(PowerExpression *expr); - Expression *ruleZeroPower(PowerExpression *expr); - Expression *addZero(AddExpression *expr); + void simplifyChildren(Expression *root, Expression **left, Expression **right) const; + Expression *ruleEval(Expression *expr) const; + Expression *ruleMultiplyByOne(MultiplicationExpression *expr) const; + Expression *ruleDivideByOne(DivisionExpression *expr) const; + Expression *ruleMultiplyByZero(MultiplicationExpression *expr) const; + Expression *ruleZeroDivision(DivisionExpression *expr) const; + Expression *ruleOnePower(PowerExpression *expr) const; + Expression *ruleZeroPower(PowerExpression *expr) const; + Expression *addSubstractZero(Expression *expr) const; public: - Expression *visit(Variable *expr); - Expression *visit(Literal *expr); - Expression *visit(Function *expr); - Expression *visit(NegationExpression *expr); - Expression *visit(AddExpression *expr); - Expression *visit(SubExpression *expr); - Expression *visit(MultiplicationExpression *expr); - Expression *visit(DivisionExpression *expr); - Expression *visit(PowerExpression *expr); + Expression *visit(Variable *expr) const; + Expression *visit(Literal *expr) const; + Expression *visit(Function *expr) const; + Expression *visit(NegationExpression *expr) const; + Expression *visit(AddExpression *expr) const; + Expression *visit(SubExpression *expr) const; + Expression *visit(MultiplicationExpression *expr) const; + Expression *visit(DivisionExpression *expr) const; + Expression *visit(PowerExpression *expr) const; }; Expression *simplify(Expression *to_simplify); |