mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-30 13:19:47 +00:00
LibJS: Parse while statements
This commit is contained in:
committed by
Andreas Kling
parent
7e01e38cf4
commit
038051d205
@@ -249,6 +249,8 @@ NonnullRefPtr<Statement> Parser::parse_statement()
|
||||
return parse_switch_statement();
|
||||
case TokenType::Do:
|
||||
return parse_do_while_statement();
|
||||
case TokenType::While:
|
||||
return parse_while_statement();
|
||||
default:
|
||||
if (match_expression()) {
|
||||
auto expr = parse_expression(0);
|
||||
@@ -847,6 +849,20 @@ NonnullRefPtr<DoWhileStatement> Parser::parse_do_while_statement()
|
||||
return create_ast_node<DoWhileStatement>(move(test), move(body));
|
||||
}
|
||||
|
||||
NonnullRefPtr<WhileStatement> Parser::parse_while_statement()
|
||||
{
|
||||
consume(TokenType::While);
|
||||
consume(TokenType::ParenOpen);
|
||||
|
||||
auto test = parse_expression(0);
|
||||
|
||||
consume(TokenType::ParenClose);
|
||||
|
||||
auto body = parse_statement();
|
||||
|
||||
return create_ast_node<WhileStatement>(move(test), move(body));
|
||||
}
|
||||
|
||||
NonnullRefPtr<SwitchStatement> Parser::parse_switch_statement()
|
||||
{
|
||||
consume(TokenType::Switch);
|
||||
|
||||
Reference in New Issue
Block a user