Shell: Allow newlines before do in POSIX for loops

This commit is contained in:
Ali Mohammad Pur 2023-04-19 12:20:36 +03:30 committed by Ali Mohammad Pur
parent fca5a34ad3
commit 0d8b90aec6
Notes: sideshowbarker 2024-07-17 09:49:33 +09:00

View File

@ -1365,12 +1365,15 @@ ErrorOr<RefPtr<AST::Node>> Parser::parse_for_clause()
iterated_expression = parse_word_list();
if (saw_in) {
if (peek().type == Token::Type::Semicolon)
if (peek().type == Token::Type::Semicolon || peek().type == Token::Type::Newline)
skip();
else
error(peek(), "Expected a semicolon, not {}", peek().type_name());
}
while (peek().type == Token::Type::Newline)
skip();
auto body = TRY(parse_do_group());
return AST::make_ref_counted<AST::ForLoop>(
start_position.with_end(peek().position.value_or(empty_position())),