Make a lot of one-liner functions inline
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2019-07-04 19:08:13 +02:00
parent bb0a6aba19
commit 32836c6c58
53 changed files with 428 additions and 424 deletions

View File

@@ -20,20 +20,20 @@ namespace Porygon::Parser {
return new ParsedScriptStatement(statements);
}
const IToken *Parser::Peek() {
inline const Token *Parser::Peek() {
return this->_tokens[_position];
}
const IToken *Parser::PeekAt(int offset) {
inline const Token *Parser::PeekAt(int offset) {
return this->_tokens[_position + offset];
}
const IToken *Parser::Next() {
inline const Token *Parser::Next() {
this->_position++;
return this->_tokens[_position - 1];
}
ParsedStatement *Parser::ParseStatement(const IToken *current) {
ParsedStatement *Parser::ParseStatement(const Token *current) {
auto currentKind = current->GetKind();
switch (currentKind) {
case TokenKind::LocalKeyword:
@@ -65,9 +65,9 @@ namespace Porygon::Parser {
return new ParsedExpressionStatement(expression);
}
ParsedStatement *Parser::ParseVariableAssignment(const IToken *current) {
ParsedStatement *Parser::ParseVariableAssignment(const Token *current) {
bool isLocal = false;
const IToken *identifier;
const Token *identifier;
if (current->GetKind() == TokenKind::LocalKeyword) {
isLocal = true;
identifier = this->Next();
@@ -125,7 +125,7 @@ namespace Porygon::Parser {
return new ParsedBlockStatement(statements);
}
ParsedStatement *Parser::ParseFunctionDeclaration(const IToken *current) {
ParsedStatement *Parser::ParseFunctionDeclaration(const Token *current) {
auto functionIdentifierToken = this->Next();
auto openParenthesis = this->Next();
vector<TypedVariableIdentifier *> parameters;
@@ -196,7 +196,7 @@ namespace Porygon::Parser {
block->GetEndPosition() - start);
}
ParsedStatement *Parser::ParseReturnStatement(const IToken *current) {
ParsedStatement *Parser::ParseReturnStatement(const Token *current) {
auto start = current->GetStartPosition();
auto startLine = this -> ScriptData -> Diagnostics ->GetLineFromPosition(start);
if (startLine != this -> ScriptData -> Diagnostics -> GetLineFromPosition(this -> Peek() -> GetStartPosition())){
@@ -206,7 +206,7 @@ namespace Porygon::Parser {
return new ParsedReturnStatement(expression, start, expression->GetEndPosition() - start);
}
ParsedStatement *Parser::ParseIfStatement(const IToken *current) {
ParsedStatement *Parser::ParseIfStatement(const Token *current) {
auto condition = this->ParseExpression(this->Next());
auto next = this->Next();
if (next->GetKind() != TokenKind::ThenKeyword) {
@@ -238,7 +238,7 @@ namespace Porygon::Parser {
}
}
ParsedStatement *Parser::ParseNumericForStatement(const IToken *current) {
ParsedStatement *Parser::ParseNumericForStatement(const Token *current) {
auto identifier = dynamic_cast<const IdentifierToken*>(current);
this->Next(); // consume assignment token
bool hasErrors = false;
@@ -270,7 +270,7 @@ namespace Porygon::Parser {
}
ParsedStatement *Parser::ParseGenericForStatement(const IToken *current) {
ParsedStatement *Parser::ParseGenericForStatement(const Token *current) {
auto keyIdentifier = dynamic_cast<const IdentifierToken*>(current)->GetValue();
const IdentifierToken* valueIdentifierToken = nullptr;
bool hasErrors = false;
@@ -314,7 +314,7 @@ namespace Porygon::Parser {
}
}
ParsedStatement *Parser::ParseWhileStatement(const IToken *current) {
ParsedStatement *Parser::ParseWhileStatement(const Token *current) {
auto condition = this -> ParseExpression(this -> Next());
auto doKeyword = this -> Next();
if (doKeyword -> GetKind() != TokenKind::DoKeyword){
@@ -331,7 +331,7 @@ namespace Porygon::Parser {
// Expressions //
/////////////////
ParsedExpression *Parser::ParseExpression(const IToken *current) {
ParsedExpression *Parser::ParseExpression(const Token *current) {
auto expression = this->ParseBinaryExpression(current, OperatorPrecedence::No);
auto peekKind = this->Peek()->GetKind();
while (peekKind == TokenKind::OpenParenthesis ||
@@ -447,7 +447,7 @@ namespace Porygon::Parser {
}
}
ParsedExpression *Parser::ParseBinaryExpression(const IToken *current, OperatorPrecedence parentPrecedence) {
ParsedExpression *Parser::ParseBinaryExpression(const Token *current, OperatorPrecedence parentPrecedence) {
OperatorPrecedence unaryPrecedence = GetUnaryPrecedence(current->GetKind());
ParsedExpression *left;
if (unaryPrecedence != OperatorPrecedence::No && unaryPrecedence >= parentPrecedence) {
@@ -474,7 +474,7 @@ namespace Porygon::Parser {
return left;
}
ParsedExpression *Parser::ParsePrimaryExpression(const IToken *current) {
ParsedExpression *Parser::ParsePrimaryExpression(const Token *current) {
switch (current->GetKind()) {
case TokenKind::Integer:
return new LiteralIntegerExpression(dynamic_cast<const IntegerToken*>(current));
@@ -502,7 +502,7 @@ namespace Porygon::Parser {
}
}
ParsedExpression *Parser::ParseParenthesizedExpression(const IToken *current) {
ParsedExpression *Parser::ParseParenthesizedExpression(const Token *current) {
auto next = this->Next();
auto expression = this->ParseExpression(next);
auto closeToken = this->Next();
@@ -571,7 +571,7 @@ namespace Porygon::Parser {
}
ParsedExpression *Parser::ParseTableExpression(const IToken *current) {
ParsedExpression *Parser::ParseTableExpression(const Token *current) {
if (this->Peek()->GetKind() == TokenKind::CloseCurlyBracket) {
this->Next();
auto start = current->GetStartPosition();