aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser.c
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2024-06-21 15:59:32 +0200
committerBad Diode <bd@badd10de.dev>2024-06-21 15:59:32 +0200
commit59b9c661cbdf125b0a17f8f955158a1f77f163f8 (patch)
tree36c5b0abe4bb8202f6b23c30759706cd1c0f8a49 /src/parser.c
parentd336498c7cf397de496fa46fccc31883480ecb1d (diff)
downloadbdl-59b9c661cbdf125b0a17f8f955158a1f77f163f8.tar.gz
bdl-59b9c661cbdf125b0a17f8f955158a1f77f163f8.zip
Add semantic checking for enum constructs
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c5
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);