diff options
author | Bad Diode <bd@badd10de.dev> | 2024-06-25 10:46:09 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2024-06-25 10:46:09 +0200 |
commit | f39149eaac8a7e6400aca1edea4bf47e3941a3fc (patch) | |
tree | ac51b3d0b7158c836129589c6b86ca9d072f7425 /src/parser.c | |
parent | bcc40682a0d699e8c36df62975c12cdea491d167 (diff) | |
download | bdl-f39149eaac8a7e6400aca1edea4bf47e3941a3fc.tar.gz bdl-f39149eaac8a7e6400aca1edea4bf47e3941a3fc.zip |
Remove parenthesis requirement from match, while, if
Diffstat (limited to 'src/parser.c')
-rw-r--r-- | src/parser.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/src/parser.c b/src/parser.c index b08c82a..a6d9f83 100644 --- a/src/parser.c +++ b/src/parser.c | |||
@@ -587,12 +587,8 @@ parse_keyword(Parser *parser) { | |||
587 | case TOK_IF: { | 587 | case TOK_IF: { |
588 | node = node_alloc(parser, NODE_IF, prev); | 588 | node = node_alloc(parser, NODE_IF, prev); |
589 | if (!node) return; | 589 | if (!node) return; |
590 | parse_consume(parser, TOK_LPAREN, | ||
591 | cstr("expected '(' on if expression")); | ||
592 | parse_expr(parser, PREC_LOW); | 590 | parse_expr(parser, PREC_LOW); |
593 | node->cond_if = array_pop(parser->nodes); | 591 | node->cond_if = array_pop(parser->nodes); |
594 | parse_consume(parser, TOK_RPAREN, | ||
595 | cstr("expected ')' on if expression")); | ||
596 | parse_expr(parser, PREC_LOW); | 592 | parse_expr(parser, PREC_LOW); |
597 | node->cond_expr = array_pop(parser->nodes); | 593 | node->cond_expr = array_pop(parser->nodes); |
598 | if (parse_match(parser, TOK_ELSE)) { | 594 | if (parse_match(parser, TOK_ELSE)) { |
@@ -603,12 +599,8 @@ parse_keyword(Parser *parser) { | |||
603 | case TOK_MATCH: { | 599 | case TOK_MATCH: { |
604 | node = node_alloc(parser, NODE_MATCH, prev); | 600 | node = node_alloc(parser, NODE_MATCH, prev); |
605 | if (!node) return; | 601 | if (!node) return; |
606 | parse_consume(parser, TOK_LPAREN, | ||
607 | cstr("expected '(' on if expression")); | ||
608 | parse_expr(parser, PREC_LOW); | 602 | parse_expr(parser, PREC_LOW); |
609 | node->match_expr = array_pop(parser->nodes); | 603 | node->match_expr = array_pop(parser->nodes); |
610 | parse_consume(parser, TOK_RPAREN, | ||
611 | cstr("expected ')' on if expression")); | ||
612 | parse_consume(parser, TOK_LCURLY, | 604 | parse_consume(parser, TOK_LCURLY, |
613 | cstr("expected block of match cases")); | 605 | cstr("expected block of match cases")); |
614 | while (!parse_match(parser, TOK_RCURLY) && !parser->panic) { | 606 | while (!parse_match(parser, TOK_RCURLY) && !parser->panic) { |
@@ -698,12 +690,8 @@ parse_keyword(Parser *parser) { | |||
698 | case TOK_WHILE: { | 690 | case TOK_WHILE: { |
699 | node = node_alloc(parser, NODE_WHILE, prev); | 691 | node = node_alloc(parser, NODE_WHILE, prev); |
700 | if (!node) return; | 692 | if (!node) return; |
701 | parse_consume(parser, TOK_LPAREN, | ||
702 | cstr("expected '(' on while expression")); | ||
703 | parse_expr(parser, PREC_LOW); | 693 | parse_expr(parser, PREC_LOW); |
704 | node->while_cond = array_pop(parser->nodes); | 694 | node->while_cond = array_pop(parser->nodes); |
705 | parse_consume(parser, TOK_RPAREN, | ||
706 | cstr("expected ')' on while expression")); | ||
707 | parse_expr(parser, PREC_LOW); | 695 | parse_expr(parser, PREC_LOW); |
708 | node->while_expr = array_pop(parser->nodes); | 696 | node->while_expr = array_pop(parser->nodes); |
709 | } break; | 697 | } break; |