Make a lot of one-liner functions inline
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user