From ac29d1e9aa3c7cd4d08227ed1b418909e6af296c Mon Sep 17 00:00:00 2001 From: Felix Raimundo Date: Mon, 4 Apr 2016 17:45:08 +0200 Subject: [PATCH] Add the isCommutative method to expression. Change-Id: I657df96c5e24168ecd04470252549ed84eb2cfe3 --- poincare/include/poincare/commutative_operation.h | 1 + poincare/include/poincare/expression.h | 1 + poincare/src/commutative_operation.cpp | 5 +++++ poincare/src/expression.cpp | 4 ++++ 4 files changed, 11 insertions(+) diff --git a/poincare/include/poincare/commutative_operation.h b/poincare/include/poincare/commutative_operation.h index e7e01f8d1..d38a6103d 100644 --- a/poincare/include/poincare/commutative_operation.h +++ b/poincare/include/poincare/commutative_operation.h @@ -11,6 +11,7 @@ class CommutativeOperation : public Expression { int numberOfOperands() override; float approximate(Context& context) override; ExpressionLayout * createLayout() override; + bool isCommutative() override; protected: virtual float operateApproximatevelyOn(float a, float b) = 0; virtual char operatorChar() = 0; diff --git a/poincare/include/poincare/expression.h b/poincare/include/poincare/expression.h index e24680b3c..9a08d7cf8 100644 --- a/poincare/include/poincare/expression.h +++ b/poincare/include/poincare/expression.h @@ -40,6 +40,7 @@ class Expression { Expression * simplify(); virtual Type type() = 0; + virtual bool isCommutative(); virtual float approximate(Context& context) = 0; }; diff --git a/poincare/src/commutative_operation.cpp b/poincare/src/commutative_operation.cpp index f96c76f90..8ce561859 100644 --- a/poincare/src/commutative_operation.cpp +++ b/poincare/src/commutative_operation.cpp @@ -57,3 +57,8 @@ ExpressionLayout * CommutativeOperation::createLayout() { } return new HorizontalLayout(children_layouts, number_of_children); } + +bool CommutativeOperation::isCommutative() { + return true; +} + diff --git a/poincare/src/expression.cpp b/poincare/src/expression.cpp index cb7f19f94..0b24d46b1 100644 --- a/poincare/src/expression.cpp +++ b/poincare/src/expression.cpp @@ -63,3 +63,7 @@ bool Expression::valueEquals(Expression * e) { * -riden. */ return true; } + +bool Expression::isCommutative() { + return false; +}