Skip to content

Commit

Permalink
Made semicolons optional on each statements.
Browse files Browse the repository at this point in the history
  • Loading branch information
nthnn committed Oct 23, 2024
1 parent aac44dc commit f474128
Showing 1 changed file with 21 additions and 7 deletions.
28 changes: 21 additions & 7 deletions src/zhivo/parser/Parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -904,7 +904,9 @@ std::unique_ptr<ASTNode> Parser::expression() {

std::unique_ptr<ASTNode> Parser::stmtBreak() {
Token address = this->consume("break");
this->consume(";");

if(this->isNext(";"))
this->consume(";");

return std::make_unique<BreakStatement>(
std::make_unique<Token>(address)
Expand All @@ -913,7 +915,9 @@ std::unique_ptr<ASTNode> Parser::stmtBreak() {

std::unique_ptr<ASTNode> Parser::stmtContinue() {
Token address = this->consume("continue");
this->consume(";");

if(this->isNext(";"))
this->consume(";");

return std::make_unique<ContinueStatement>(
std::make_unique<Token>(address)
Expand All @@ -924,7 +928,9 @@ std::unique_ptr<ASTNode> Parser::stmtRet() {
Token address = this->consume("ret");
std::unique_ptr<ASTNode> expression = this->expression();

this->consume(";");
if(this->isNext(";"))
this->consume(";");

return std::make_unique<ReturnStatement>(
std::make_unique<Token>(address),
std::move(expression)
Expand All @@ -935,7 +941,9 @@ std::unique_ptr<ASTNode> Parser::stmtThrow() {
Token address = this->consume("throw");
std::unique_ptr<ASTNode> expression = this->expression();

this->consume(";");
if(this->isNext(";"))
this->consume(";");

return std::make_unique<ThrowStatement>(
std::make_unique<Token>(address),
std::move(expression)
Expand All @@ -950,7 +958,9 @@ std::unique_ptr<ASTNode> Parser::stmtTest() {
this->consume(")");

std::unique_ptr<ASTNode> testBody = this->expression();
this->consume(";");

if(this->isNext(";"))
this->consume(";");

return std::make_unique<TestStatement>(
std::make_unique<Token>(address),
Expand All @@ -961,7 +971,9 @@ std::unique_ptr<ASTNode> Parser::stmtTest() {

std::unique_ptr<ASTNode> Parser::stmtWait() {
Token address = this->consume("wait");
this->consume(";");

if(this->isNext(";"))
this->consume(";");

return std::make_unique<WaitStatement>(
std::make_unique<Token>(address)
Expand All @@ -983,7 +995,9 @@ std::unique_ptr<ASTNode> Parser::statement() {
return this->stmtWait();

std::unique_ptr<ASTNode> expr = this->expression();
this->consume(";");

if(this->isNext(";"))
this->consume(";");

return expr;
}
Expand Down

0 comments on commit f474128

Please sign in to comment.