summaryrefslogtreecommitdiff
path: root/include/simplifier.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/simplifier.hpp')
-rw-r--r--include/simplifier.hpp36
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);