Basic statements logging

This commit is contained in:
Rafał Grodziński
2025-07-02 16:45:41 +09:00
parent 56e380b3ed
commit 7d45d398b4
4 changed files with 179 additions and 12 deletions

View File

@@ -339,9 +339,6 @@ shared_ptr<Statement> Parser::matchStatementExpression() {
else if (!expression->isValid())
return make_shared<StatementInvalid>(tokens.at(currentIndex), expression->toString(0));
// Consume new line
tryMatchingTokenKinds({TokenKind::NEW_LINE}, true, true);
return make_shared<StatementExpression>(expression);
}
@@ -578,6 +575,13 @@ shared_ptr<Expression> Parser::matchExpressionBlock(vector<TokenKind> terminalTo
if (statement == nullptr || !statement->isValid())
return matchExpressionInvalid("Expected statement");
statements.push_back(statement);
if (tryMatchingTokenKinds(terminalTokenKinds, false, false))
break;
// except new line
if (!tryMatchingTokenKinds({TokenKind::NEW_LINE}, true, true))
return matchExpressionInvalid("Expected new line");
}
return make_shared<ExpressionBlock>(statements);