diff --git a/poincare/Makefile b/poincare/Makefile index 6047d7b6a..190844c66 100644 --- a/poincare/Makefile +++ b/poincare/Makefile @@ -34,6 +34,7 @@ objs += $(addprefix poincare/src/simplify/,\ simplify_product_zero.o\ expression_selector.o\ expression_builder.o\ + simplification.o\ ) tests += $(addprefix poincare/test/,\ addition.cpp\ diff --git a/poincare/src/simplify/expression_selector.h b/poincare/src/simplify/expression_selector.h index 8b3c055db..f9bad9ad6 100644 --- a/poincare/src/simplify/expression_selector.h +++ b/poincare/src/simplify/expression_selector.h @@ -41,13 +41,4 @@ public: uint8_t m_numberOfChildren; }; -/* -{ - my_tree_selector, my_expression_builder; - if (my_tree_selector->match(my_expression)) { - my_expression_builder->build(my_expression, *matchedData); - } -} -*/ - #endif diff --git a/poincare/src/simplify/simplification.cpp b/poincare/src/simplify/simplification.cpp new file mode 100644 index 000000000..3c578bfe7 --- /dev/null +++ b/poincare/src/simplify/simplification.cpp @@ -0,0 +1,10 @@ +#include "simplification.h" + +Expression * Simplification::simplify(Expression * expression) const { + Expression * matches[255]; //FIXME: The sized ca be given by our compiler + if (m_selector->match(expression, matches)) { + return m_builder->build(matches); + } else { + return nullptr; + } +} diff --git a/poincare/src/simplify/simplification.h b/poincare/src/simplify/simplification.h new file mode 100644 index 000000000..7e89dbc0d --- /dev/null +++ b/poincare/src/simplify/simplification.h @@ -0,0 +1,15 @@ +#ifndef POINCARE_SIMPLIFY_SIMPLIFICATION_H +#define POINCARE_SIMPLIFY_SIMPLIFICATION_H + +#include +#include "expression_selector.h" +#include "expression_builder.h" + +class Simplification { +public: + ExpressionSelector * m_selector; + ExpressionBuilder * m_builder; + Expression * simplify(Expression * expression) const; +}; + +#endif