From 2e88df876bd780107f0bd2d47d0027628e4c297e Mon Sep 17 00:00:00 2001 From: Ruben Dashyan Date: Tue, 2 Oct 2018 10:41:59 +0200 Subject: [PATCH] [poincare] Parser composes over Tokenizer instead of inherting from it --- poincare/src/parsing/parser.cpp | 2 +- poincare/src/parsing/parser.h | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/poincare/src/parsing/parser.cpp b/poincare/src/parsing/parser.cpp index 086c4540e..9c6c2fd16 100644 --- a/poincare/src/parsing/parser.cpp +++ b/poincare/src/parsing/parser.cpp @@ -144,7 +144,7 @@ bool Parser::canPopToken(Token::Type stoppingType) { } if (comparePrecedence(m_nextToken.type(), stoppingType)) { m_currentToken = m_nextToken; - m_nextToken = popToken(); + m_nextToken = m_tokenizer.popToken(); return true; } return false; diff --git a/poincare/src/parsing/parser.h b/poincare/src/parsing/parser.h index a2564b0a3..7c44d6506 100644 --- a/poincare/src/parsing/parser.h +++ b/poincare/src/parsing/parser.h @@ -20,12 +20,12 @@ namespace Poincare { -class Parser : public Tokenizer { +class Parser { public: Parser(const char * input) : - Tokenizer(input), + m_tokenizer(input), m_currentToken(Token(Token::Type::Undefined)), - m_nextToken(popToken()) {} + m_nextToken(m_tokenizer.popToken()) {} Expression parse(); Expression parseNumber(Expression leftHandSide); @@ -43,6 +43,7 @@ private: Expression parseUntil(Token::Type stoppingType); bool canPopToken(Token::Type stoppingType); + Tokenizer m_tokenizer; Token m_currentToken; Token m_nextToken; };