From 4ef46b4fdb94917e44619abbaf1000ba49ffe804 Mon Sep 17 00:00:00 2001 From: Ruben Dashyan Date: Wed, 30 Oct 2019 16:40:21 +0100 Subject: [PATCH] [poincare/parser] IsReservedFunctionName returns a pointer and is hence renamed GetReservedFunction --- poincare/src/parsing/parser.cpp | 13 +++++++------ poincare/src/parsing/parser.h | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/poincare/src/parsing/parser.cpp b/poincare/src/parsing/parser.cpp index 79948c3c5..6b8ac7a98 100644 --- a/poincare/src/parsing/parser.cpp +++ b/poincare/src/parsing/parser.cpp @@ -18,13 +18,13 @@ Expression Parser::parse() { } bool Parser::IsReservedName(const char * name, size_t nameLength) { - return IsReservedFunctionName(name, nameLength) + return GetReservedFunction(name, nameLength) != nullptr || IsSpecialIdentifierName(name, nameLength); } // Private -bool Parser::IsReservedFunctionName(const char * name, size_t nameLength, const Expression::FunctionHelper * const * * functionHelper) { +const Expression::FunctionHelper * const * Parser::GetReservedFunction(const char * name, size_t nameLength) { const Expression::FunctionHelper * const * reservedFunction = &s_reservedFunctions[0]; assert(reservedFunction < s_reservedFunctionsUpperBound); int nameDifference = Token::CompareNonNullTerminatedName(name, nameLength, (**reservedFunction).name()); @@ -32,10 +32,10 @@ bool Parser::IsReservedFunctionName(const char * name, size_t nameLength, const reservedFunction++; nameDifference = Token::CompareNonNullTerminatedName(name, nameLength, (**reservedFunction).name()); } - if (functionHelper != nullptr) { - *functionHelper = reservedFunction; + if (reservedFunction < s_reservedFunctionsUpperBound && nameDifference == 0) { + return reservedFunction; } - return (reservedFunction < s_reservedFunctionsUpperBound && nameDifference == 0); + return nullptr; } bool Parser::IsSpecialIdentifierName(const char * name, size_t nameLength) { @@ -327,7 +327,8 @@ void Parser::parseBang(Expression & leftHandSide, Token::Type stoppingType) { } bool Parser::currentTokenIsReservedFunction(const Expression::FunctionHelper * const * * functionHelper) const { - return IsReservedFunctionName(m_currentToken.text(), m_currentToken.length(), functionHelper); + *functionHelper = GetReservedFunction(m_currentToken.text(), m_currentToken.length()); + return *functionHelper != nullptr; } bool Parser::currentTokenIsSpecialIdentifier() const { diff --git a/poincare/src/parsing/parser.h b/poincare/src/parsing/parser.h index 3366cc4a7..d7df5bb7c 100644 --- a/poincare/src/parsing/parser.h +++ b/poincare/src/parsing/parser.h @@ -33,7 +33,7 @@ public: static bool IsReservedName(const char * name, size_t nameLength); private: - static bool IsReservedFunctionName(const char * name, size_t nameLength, const Expression::FunctionHelper * const * * functionHelper = nullptr); + static const Expression::FunctionHelper * const * GetReservedFunction(const char * name, size_t nameLength); static bool IsSpecialIdentifierName(const char * name, size_t nameLength); Expression parseUntil(Token::Type stoppingType);