aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser.c
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2024-06-25 10:46:09 +0200
committerBad Diode <bd@badd10de.dev>2024-06-25 10:46:09 +0200
commitf39149eaac8a7e6400aca1edea4bf47e3941a3fc (patch)
treeac51b3d0b7158c836129589c6b86ca9d072f7425 /src/parser.c
parentbcc40682a0d699e8c36df62975c12cdea491d167 (diff)
downloadbdl-f39149eaac8a7e6400aca1edea4bf47e3941a3fc.tar.gz
bdl-f39149eaac8a7e6400aca1edea4bf47e3941a3fc.zip
Remove parenthesis requirement from match, while, if
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c12
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;