From 2d20aacc893c0677f3ac831d0ed8fba356f93fe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Mon, 12 Nov 2018 10:20:13 +0100 Subject: [PATCH] [poincare/parser] Parser::IsReservedName --- poincare/src/parsing/parser.cpp | 7 +++++++ poincare/src/parsing/parser.h | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/poincare/src/parsing/parser.cpp b/poincare/src/parsing/parser.cpp index f30d1bee5..efb6895fc 100644 --- a/poincare/src/parsing/parser.cpp +++ b/poincare/src/parsing/parser.cpp @@ -13,6 +13,13 @@ Expression Parser::parse() { return Expression(); } +bool Parser::IsReservedName(const char * name, size_t nameLength, const Expression::FunctionHelper * const * * functionHelper) { + return IsReservedFunctionName(name, nameLength, functionHelper) + || IsSpecialIdentifierName(name, nameLength); +} + +// Private + bool Parser::IsReservedFunctionName(const char * name, size_t nameLength, const Expression::FunctionHelper * const * * functionHelper) { const Expression::FunctionHelper * const * reservedFunction = &s_reservedFunctions[0]; assert(reservedFunction < s_reservedFunctionsUpperBound); diff --git a/poincare/src/parsing/parser.h b/poincare/src/parsing/parser.h index 529e42ec4..3c0f3cdf9 100644 --- a/poincare/src/parsing/parser.h +++ b/poincare/src/parsing/parser.h @@ -30,10 +30,12 @@ public: Expression parse(); Status getStatus() const { return m_status; } + static bool IsReservedName(const char * name, size_t nameLength, const Expression::FunctionHelper * const * * functionHelper = nullptr); + +private: static bool IsReservedFunctionName(const char * name, size_t nameLength, const Expression::FunctionHelper * const * * functionHelper = nullptr); static bool IsSpecialIdentifierName(const char * name, size_t nameLength); -private: Expression parseUntil(Token::Type stoppingType); // Methods on Tokens