From fb2d7b5379663e929ffabfbd8428de5b35ad67c4 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Tue, 11 Mar 2025 17:03:03 -0400 Subject: Add extern structs --- parse.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'parse.c') diff --git a/parse.c b/parse.c index ed8d041b..81b239a5 100644 --- a/parse.c +++ b/parse.c @@ -2111,12 +2111,14 @@ PARSER(parse_struct_def) { arg_ast_t *fields = parse_args(ctx, &pos); whitespace(&pos); - bool secret = false; + bool secret = false, external = false; if (match(&pos, ";")) { // Extra flags whitespace(&pos); for (;;) { if (match_word(&pos, "secret")) secret = true; + else if (match_word(&pos, "extern")) + external = true; else break; @@ -2139,7 +2141,8 @@ PARSER(parse_struct_def) { } if (!namespace) namespace = NewAST(ctx->file, pos, pos, Block, .statements=NULL); - return NewAST(ctx->file, start, pos, StructDef, .name=name, .fields=fields, .namespace=namespace, .secret=secret); + return NewAST(ctx->file, start, pos, StructDef, .name=name, .fields=fields, .namespace=namespace, + .secret=secret, .external=external); } PARSER(parse_enum_def) { -- cgit v1.2.3