Support break statements
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2019-06-27 15:55:46 +02:00
parent 46197e0a6e
commit 3367e60ae5
8 changed files with 80 additions and 9 deletions

View File

@@ -45,7 +45,9 @@ namespace Porygon::Parser {
case TokenKind::IfKeyword:
return this->ParseIfStatement(current);
case TokenKind ::ForKeyword:
return this->ParseForStatement(current);
return this->ParseForStatement();
case TokenKind ::BreakKeyword:
return new ParsedBreakStatement(current->GetStartPosition(), current -> GetLength());
default:
break;
}
@@ -225,7 +227,7 @@ namespace Porygon::Parser {
return new ParsedConditionalStatement(condition, block, start, block->GetEndPosition() - start);
}
ParsedStatement *Parser::ParseForStatement(const IToken *current) {
ParsedStatement *Parser::ParseForStatement() {
auto identifier = this -> Next();
if (this -> Peek()->GetKind() == TokenKind::AssignmentToken){
return ParseNumericForStatement(identifier);