From ec2419bc7d974e99bea0953c127f29d9706c17d9 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sun, 9 Jun 2019 12:48:14 +0200 Subject: [PATCH] Minor cleanup of Parser --- src/Parser/Parser.cpp | 9 ++++----- src/Parser/Parser.hpp | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Parser/Parser.cpp b/src/Parser/Parser.cpp index 146803a..0f69275 100644 --- a/src/Parser/Parser.cpp +++ b/src/Parser/Parser.cpp @@ -38,7 +38,7 @@ ParsedStatement* Parser::ParseStatement(IToken* current){ case TokenKind ::LocalKeyword: return this -> ParseAssignment(current); case TokenKind ::FunctionKeyword: return this -> ParseFunctionDeclaration(current); case TokenKind ::ReturnKeyword: return this->ParseReturnStatement(current); - case TokenKind ::IfKeyword: return this -> ParseIfStatement(current, false); + case TokenKind ::IfKeyword: return this -> ParseIfStatement(current); default: break; } if (this->Peek()->GetKind() == TokenKind::AssignmentToken){ @@ -87,7 +87,7 @@ ParsedStatement *Parser::ParseBlock(const vector& endTokens) { } statements.push_back(this -> ParseStatement(next)); } - if (statements.size() == 0){ + if (statements.empty()){ return new ParsedBlockStatement(statements,start); } return new ParsedBlockStatement(statements); @@ -162,7 +162,7 @@ ParsedStatement* Parser::ParseReturnStatement(IToken* current){ return new ParsedReturnStatement(expression, start, expression->GetEndPosition() - start); } -ParsedStatement* Parser::ParseIfStatement(IToken* current, bool isElseIf){ +ParsedStatement* Parser::ParseIfStatement(IToken* current){ auto condition = this->ParseExpression(this->Next()); auto next = this -> Next(); if (next->GetKind() != TokenKind::ThenKeyword){ @@ -173,7 +173,7 @@ ParsedStatement* Parser::ParseIfStatement(IToken* current, bool isElseIf){ auto closeToken = this->PeekAt(-1); auto start = current->GetStartPosition(); if (closeToken->GetKind() == TokenKind::ElseIfKeyword){ - auto elseIfStatement = this -> ParseIfStatement(closeToken, true); + auto elseIfStatement = this -> ParseIfStatement(closeToken); return new ParsedConditionalStatement(condition, block, elseIfStatement, start, elseIfStatement->GetEndPosition() - start); } else if (closeToken->GetKind() == TokenKind::ElseKeyword){ auto elseStatement = this -> ParseBlock({TokenKind ::EndKeyword}); @@ -263,7 +263,6 @@ OperatorPrecedence GetBinaryPrecedence(TokenKind kind){ case TokenKind ::Greater: return OperatorPrecedence ::Equality; case TokenKind ::GreaterEquals: return OperatorPrecedence ::Equality; - // Logical case TokenKind::AndKeyword: return OperatorPrecedence ::LogicalAnd; case TokenKind::OrKeyword: return OperatorPrecedence ::LogicalOr; diff --git a/src/Parser/Parser.hpp b/src/Parser/Parser.hpp index abf0daf..618cda3 100644 --- a/src/Parser/Parser.hpp +++ b/src/Parser/Parser.hpp @@ -30,7 +30,7 @@ class Parser { ParsedStatement *ParseBlock(const vector& endTokens); ParsedStatement* ParseFunctionDeclaration(IToken* current); ParsedStatement *ParseReturnStatement(IToken *current); - ParsedStatement *ParseIfStatement(IToken *current, bool isElseIf); + ParsedStatement *ParseIfStatement(IToken *current); ParsedExpression* ParseExpression(IToken* current); ParsedExpression* ParseBinaryExpression(IToken* current, OperatorPrecedence parentPrecedence);