Browse Source

Shell: Allow newlines before `do` in POSIX for loops

Ali Mohammad Pur 2 năm trước cách đây
mục cha
commit
0d8b90aec6
1 tập tin đã thay đổi với 4 bổ sung1 xóa
  1. 4 1
      Userland/Shell/PosixParser.cpp

+ 4 - 1
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())),