diff options
author | Ali Mohammad Pur <ali.mpfard@gmail.com> | 2023-04-19 12:20:36 +0330 |
---|---|---|
committer | Ali Mohammad Pur <Ali.mpfard@gmail.com> | 2023-05-05 09:35:24 +0330 |
commit | 0d8b90aec6eae8b6b00addb0217f663a3146a09e (patch) | |
tree | 16398c268ec2db941cfd1a8a0760bb8a1097b4e3 /Userland/Shell | |
parent | fca5a34ad30cdcdf53669b4923e56d324f45aaed (diff) | |
download | serenity-0d8b90aec6eae8b6b00addb0217f663a3146a09e.zip |
Shell: Allow newlines before `do` in POSIX for loops
Diffstat (limited to 'Userland/Shell')
-rw-r--r-- | Userland/Shell/PosixParser.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Userland/Shell/PosixParser.cpp b/Userland/Shell/PosixParser.cpp index 67b07e2670..59923fb4e7 100644 --- a/Userland/Shell/PosixParser.cpp +++ b/Userland/Shell/PosixParser.cpp @@ -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())), |