diff options
author | Bad Diode <bd@badd10de.dev> | 2024-06-21 15:59:32 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2024-06-21 15:59:32 +0200 |
commit | 59b9c661cbdf125b0a17f8f955158a1f77f163f8 (patch) | |
tree | 36c5b0abe4bb8202f6b23c30759706cd1c0f8a49 /src/parser.c | |
parent | d336498c7cf397de496fa46fccc31883480ecb1d (diff) | |
download | bdl-59b9c661cbdf125b0a17f8f955158a1f77f163f8.tar.gz bdl-59b9c661cbdf125b0a17f8f955158a1f77f163f8.zip |
Add semantic checking for enum constructs
Diffstat (limited to 'src/parser.c')
-rw-r--r-- | src/parser.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/parser.c b/src/parser.c index 04692b3..67fc739 100644 --- a/src/parser.c +++ b/src/parser.c | |||
@@ -192,7 +192,7 @@ typedef struct Node { | |||
192 | }; | 192 | }; |
193 | }; | 193 | }; |
194 | bool is_ptr; | 194 | bool is_ptr; |
195 | struct Scope* scope; | 195 | struct Scope *scope; |
196 | } Node; | 196 | } Node; |
197 | 197 | ||
198 | // | 198 | // |
@@ -651,6 +651,9 @@ parse_keyword(Parser *parser) { | |||
651 | } | 651 | } |
652 | array_push(node->struct_field, field, parser->storage); | 652 | array_push(node->struct_field, field, parser->storage); |
653 | } | 653 | } |
654 | if (array_size(node->struct_field) == 0) { | ||
655 | parse_emit_err(parser, prev, cstr("empty enum declaration")); | ||
656 | } | ||
654 | } break; | 657 | } break; |
655 | case TOK_COND: { | 658 | case TOK_COND: { |
656 | node = node_alloc(parser, NODE_COND, prev); | 659 | node = node_alloc(parser, NODE_COND, prev); |