summaryrefslogtreecommitdiff
path: root/Userland/Shell
diff options
context:
space:
mode:
authorAli Mohammad Pur <ali.mpfard@gmail.com>2023-04-19 12:20:36 +0330
committerAli Mohammad Pur <Ali.mpfard@gmail.com>2023-05-05 09:35:24 +0330
commit0d8b90aec6eae8b6b00addb0217f663a3146a09e (patch)
tree16398c268ec2db941cfd1a8a0760bb8a1097b4e3 /Userland/Shell
parentfca5a34ad30cdcdf53669b4923e56d324f45aaed (diff)
downloadserenity-0d8b90aec6eae8b6b00addb0217f663a3146a09e.zip
Shell: Allow newlines before `do` in POSIX for loops
Diffstat (limited to 'Userland/Shell')
-rw-r--r--Userland/Shell/PosixParser.cpp5
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())),