diff --git a/src/Parser/Parser.cpp b/src/Parser/Parser.cpp index d54c143..8140dae 100644 --- a/src/Parser/Parser.cpp +++ b/src/Parser/Parser.cpp @@ -8,16 +8,19 @@ namespace Porygon::Parser { ParsedScriptStatement *Parser::Parse() { - vector statements; + vector statements(this->_tokens.size()); + size_t current = 0; while (this->_position < this->_tokens.size()) { auto next = this->Next(); if (next->GetKind() == TokenKind::EndOfFile) { break; } - statements.push_back(this->ParseStatement(next)); + statements[current] = this -> ParseStatement(next); + current++; } + statements.resize(current); auto end = 0; - if (statements.size() > 0){ + if (current > 0){ end = statements.back()->GetEndPosition(); } return new ParsedScriptStatement(statements, 0, end);