summaryrefslogtreecommitdiff
path: root/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/parse.c b/parse.c
index 99489be..0235ace 100644
--- a/parse.c
+++ b/parse.c
@@ -1055,6 +1055,8 @@ static bool parse_expr(Parser *p, Expression *e, Token *end) {
}
case KW_NMS: {
Namespace *n = &e->nms;
+ idents_create(&n->idents);
+
e->kind = EXPR_NMS;
++t->token;
if (!parse_block(p, &n->body))
@@ -1064,6 +1066,10 @@ static bool parse_expr(Parser *p, Expression *e, Token *end) {
err_print(sub->where, "Only declarations can be in namespaces.");
return false;
}
+ Declaration *decl = &sub->decl;
+ arr_foreach(decl->idents, Identifier, i) {
+ *i = ident_translate_forced(*i, &n->idents);
+ }
}
goto success;
}