diff --git a/apps/sequence/sequence.h b/apps/sequence/sequence.h index db28a2db6..97b5354d9 100644 --- a/apps/sequence/sequence.h +++ b/apps/sequence/sequence.h @@ -27,7 +27,6 @@ public: Function(record), m_nameLayout() {} CodePoint symbol() const override { return 'n'; } - CodePoint unknownSymbol() const override { return UCodePointUnknownX; } void tidy() override; // MetaData getters Type type() const; diff --git a/apps/shared/cartesian_function.h b/apps/shared/cartesian_function.h index f9d769a40..a671667f4 100644 --- a/apps/shared/cartesian_function.h +++ b/apps/shared/cartesian_function.h @@ -15,7 +15,6 @@ public: Function(record) {} CodePoint symbol() const override { return 'x'; } - CodePoint unknownSymbol() const override { return UCodePointUnknownX; } // Evaluation float evaluateAtAbscissa(float x, Poincare::Context * context) const override { diff --git a/apps/shared/expression_model.cpp b/apps/shared/expression_model.cpp index fe3794b75..13219378c 100644 --- a/apps/shared/expression_model.cpp +++ b/apps/shared/expression_model.cpp @@ -20,13 +20,13 @@ ExpressionModel::ExpressionModel() : { } -void ExpressionModel::text(const Storage::Record * record, char * buffer, size_t bufferSize, CodePoint symbol, CodePoint unknownSymbol) const { +void ExpressionModel::text(const Storage::Record * record, char * buffer, size_t bufferSize, CodePoint symbol) const { Expression e = expressionClone(record); if (e.isUninitialized() && bufferSize > 0) { buffer[0] = 0; } else { if (symbol != 0 && !e.isUninitialized()) { - e = e.replaceUnknown(Symbol::Builder(unknownSymbol), Symbol::Builder(symbol)); + e = e.replaceUnknown(Symbol::Builder(UCodePointUnknownX), Symbol::Builder(symbol)); } e.serialize(buffer, bufferSize); } @@ -58,11 +58,11 @@ Expression ExpressionModel::expressionClone(const Storage::Record * record) cons return Expression::ExpressionFromAddress(expressionAddress(record), expressionSize(record)); } -Layout ExpressionModel::layout(const Storage::Record * record, CodePoint symbol, CodePoint unknownSymbol) const { +Layout ExpressionModel::layout(const Storage::Record * record, CodePoint symbol) const { if (m_layout.isUninitialized()) { Expression clone = expressionClone(record); if (!clone.isUninitialized() && symbol != 0) { - clone = clone.replaceUnknown(Symbol::Builder(unknownSymbol), Symbol::Builder(symbol)); + clone = clone.replaceUnknown(Symbol::Builder(UCodePointUnknownX), Symbol::Builder(symbol)); } m_layout = PoincareHelpers::CreateLayout(clone); if (m_layout.isUninitialized()) { @@ -72,8 +72,8 @@ Layout ExpressionModel::layout(const Storage::Record * record, CodePoint symbol, return m_layout; } -Ion::Storage::Record::ErrorStatus ExpressionModel::setContent(Ion::Storage::Record * record, const char * c, CodePoint symbol, CodePoint unknownSymbol) { - Expression e = ExpressionModel::BuildExpressionFromText(c, symbol, unknownSymbol); +Ion::Storage::Record::ErrorStatus ExpressionModel::setContent(Ion::Storage::Record * record, const char * c, CodePoint symbol) { + Expression e = ExpressionModel::BuildExpressionFromText(c, symbol); return setExpressionContent(record, e); } @@ -122,14 +122,14 @@ void ExpressionModel::tidy() const { m_circular = 0; } -Poincare::Expression ExpressionModel::BuildExpressionFromText(const char * c, char symbol, char unknownSymbol) { +Poincare::Expression ExpressionModel::BuildExpressionFromText(const char * c, char symbol) { Expression expressionToStore; // if c = "", we want to reinit the Expression if (c && *c != 0) { // Compute the expression to store, without replacing symbols expressionToStore = Expression::Parse(c); if (!expressionToStore.isUninitialized() && symbol != 0) { - expressionToStore = expressionToStore.replaceUnknown(Symbol::Builder(symbol), Symbol::Builder(unknownSymbol)); + expressionToStore = expressionToStore.replaceUnknown(Symbol::Builder(symbol), Symbol::Builder(UCodePointUnknownX)); } } return expressionToStore; diff --git a/apps/shared/expression_model.h b/apps/shared/expression_model.h index cc2412f30..c04e7f297 100644 --- a/apps/shared/expression_model.h +++ b/apps/shared/expression_model.h @@ -12,13 +12,13 @@ public: ExpressionModel(); // Getters - void text(const Ion::Storage::Record * record, char * buffer, size_t bufferSize, CodePoint symbol = 0, CodePoint unknownSymbol = 0) const; + void text(const Ion::Storage::Record * record, char * buffer, size_t bufferSize, CodePoint symbol = 0) const; Poincare::Expression expressionReduced(const Ion::Storage::Record * record, Poincare::Context * context) const; Poincare::Expression expressionClone(const Ion::Storage::Record * record) const; - Poincare::Layout layout(const Ion::Storage::Record * record, CodePoint symbol = 0, CodePoint unknownSymbol = 0) const; + Poincare::Layout layout(const Ion::Storage::Record * record, CodePoint symbol = 0) const; // Setters - Ion::Storage::Record::ErrorStatus setContent(Ion::Storage::Record * record, const char * c, CodePoint symbol = 0, CodePoint unknownSymbol = 0); + Ion::Storage::Record::ErrorStatus setContent(Ion::Storage::Record * record, const char * c, CodePoint symbol = 0); Ion::Storage::Record::ErrorStatus setExpressionContent(Ion::Storage::Record * record, Poincare::Expression & e); // Property @@ -28,7 +28,7 @@ public: virtual void tidy() const; protected: // Setters helper - static Poincare::Expression BuildExpressionFromText(const char * c, char symbol = 0, char unknownSymbol = 0); + static Poincare::Expression BuildExpressionFromText(const char * c, char symbol = 0); mutable Poincare::Expression m_expression; mutable Poincare::Layout m_layout; private: diff --git a/apps/shared/expression_model_handle.h b/apps/shared/expression_model_handle.h index 298f4f74e..4284b0be3 100644 --- a/apps/shared/expression_model_handle.h +++ b/apps/shared/expression_model_handle.h @@ -11,13 +11,12 @@ class ExpressionModelHandle : public Ion::Storage::Record { public: ExpressionModelHandle(Ion::Storage::Record record = Ion::Storage::Record()); virtual CodePoint symbol() const { return 0; } - virtual CodePoint unknownSymbol() const { return 0; } // Property - void text(char * buffer, size_t bufferSize) const { return model()->text(this, buffer, bufferSize, symbol(), unknownSymbol()); } + void text(char * buffer, size_t bufferSize) const { return model()->text(this, buffer, bufferSize, symbol()); } Poincare::Expression expressionReduced(Poincare::Context * context) const { return model()->expressionReduced(this, context); } Poincare::Expression expressionClone() const { return model()->expressionClone(this); } - Poincare::Layout layout() { return model()->layout(this, symbol(), unknownSymbol()); } + Poincare::Layout layout() { return model()->layout(this, symbol()); } /* Here, isDefined is the exact contrary of isEmpty. However, for Sequence * inheriting from ExpressionModelHandle, isEmpty and isDefined have not exactly * opposite meaning. For instance, u(n+1)=u(n) & u(0) = ... is not empty and @@ -31,7 +30,7 @@ public: * behaviour but it is not true for its child classes (for example, in * Sequence). */ virtual void tidy() { model()->tidy(); } - Ion::Storage::Record::ErrorStatus setContent(const char * c) { return editableModel()->setContent(this, c, symbol(), unknownSymbol()); } + Ion::Storage::Record::ErrorStatus setContent(const char * c) { return editableModel()->setContent(this, c, symbol()); } Ion::Storage::Record::ErrorStatus setExpressionContent(Poincare::Expression & e) { return editableModel()->setExpressionContent(this, e); } protected: bool isCircularlyDefined(Poincare::Context * context) const { return model()->isCircularlyDefined(this, context); }