diff options
Diffstat (limited to 'src/parser.c')
| -rw-r--r-- | src/parser.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/parser.c b/src/parser.c index a0ec7a1..0cd0e5f 100644 --- a/src/parser.c +++ b/src/parser.c @@ -507,6 +507,10 @@ Node *parse_statement(Lexer *lexer) node->loop.body = parse_statement(lexer); } else if (token.type == TOKEN_OPEN_BRACE) { node = parse_block(lexer); + } else if (token.type == TOKEN_DEFER) { + Lexer_next(lexer); + node = Node_new(AST_DEFER); + node->unary_expr = parse_statement(lexer); } else { // Default to trying to handle it as an expression node = parse_expression(lexer); |