[poincare] Parser composes over Tokenizer instead of inherting from it

This commit is contained in:
Ruben Dashyan
2018-10-02 10:41:59 +02:00
committed by Émilie Feral
parent 06fda37e2b
commit 2e88df876b
2 changed files with 5 additions and 4 deletions

View File

@@ -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;

View File

@@ -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;
};