diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-07-29 06:09:06 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-08-15 10:04:35 +0900 |
| commit | f91a10ae153f41c46729605ecf0023d11ada07b8 (patch) | |
| tree | 0bf858a43490f88e20fd4006543e069cfa54b43d /parse.c | |
| parent | bd5bbdebf116bb03da335d0e18a55a5597b55548 (diff) | |
| download | ducc-f91a10ae153f41c46729605ecf0023d11ada07b8.tar.gz ducc-f91a10ae153f41c46729605ecf0023d11ada07b8.tar.zst ducc-f91a10ae153f41c46729605ecf0023d11ada07b8.zip | |
feat: implement empty statements (only semicolon)
Diffstat (limited to 'parse.c')
| -rw-r--r-- | parse.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -703,6 +703,11 @@ AstNode* parse_block_stmt(Parser* p) { return list; } +AstNode* parse_empty_stmt(Parser* p) { + next_token(p); + return ast_new(AstNodeKind_nop); +} + AstNode* parse_stmt(Parser* p) { Token* t = peek_token(p); if (t->kind == TokenKind_keyword_return) { @@ -721,6 +726,8 @@ AstNode* parse_stmt(Parser* p) { return parse_continue_stmt(p); } else if (t->kind == TokenKind_brace_l) { return parse_block_stmt(p); + } else if (t->kind == TokenKind_semicolon) { + return parse_empty_stmt(p); } else if (is_type_token(p, t)) { return parse_var_decl(p); } else { |
