summaryrefslogtreecommitdiff
path: root/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/parse.c b/parse.c
index 1e29129..8c11bb5 100644
--- a/parse.c
+++ b/parse.c
@@ -2400,6 +2400,13 @@ static Status parse_stmt(Parser *p, Statement *s, bool *was_a_statement) {
}
goto success;
}
+ case KW_USE: {
+ ++t->token;
+ s->kind = STMT_USE;
+ if (!parse_expr(p, &s->use, expr_find_end(p, 0)))
+ return false;
+ goto success;
+ }
default: break;
}
} else if (t->token->kind == TOKEN_DIRECT) {
@@ -2888,6 +2895,10 @@ static void fprint_stmt(FILE *out, Statement *s) {
fprintf(out, "defer ");
fprint_stmt(out, s->defer);
break;
+ case STMT_USE:
+ fprintf(out, "use ");
+ fprint_expr(out, &s->use);
+ break;
}
}