summaryrefslogtreecommitdiff
path: root/package.c
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2020-01-27 11:12:16 -0500
committerLeo Tenenbaum <pommicket@gmail.com>2020-01-27 11:12:16 -0500
commit730469c7a96a26ecba362db39c67e97bd07bf157 (patch)
tree65603b6d164132d0e7dc125ebbb3a93989b9a94f /package.c
parentabfea518adf24b5f2a6245ba37e068bfe97152ce (diff)
#include
Diffstat (limited to 'package.c')
-rw-r--r--package.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/package.c b/package.c
index 4483e45..a102a47 100644
--- a/package.c
+++ b/package.c
@@ -1053,6 +1053,17 @@ static bool export_stmt(Exporter *ex, Statement *s) {
if (!export_expr(ex, &s->ret.expr))
return false;
} break;
+ case STMT_INCLUDE:
+ if (s->flags & STMT_TYPED) {
+ export_len(ex, arr_len(s->inc.stmts));
+ arr_foreach(s->inc.stmts, Statement, sub)
+ if (!export_stmt(ex, sub))
+ return false;
+ } else {
+ if (!export_expr(ex, &s->inc.filename))
+ return false;
+ }
+ break;
}
return true;
}
@@ -1068,6 +1079,15 @@ static void import_stmt(Importer *im, Statement *s) {
case STMT_DECL:
import_decl(im, &s->decl);
break;
+ case STMT_INCLUDE:
+ if (s->flags & STMT_TYPED) {
+ import_arr(im, &s->inc.stmts);
+ arr_foreach(s->inc.stmts, Statement, sub)
+ import_stmt(im, sub);
+ } else {
+ import_expr(im, &s->inc.filename);
+ }
+ break;
case STMT_RET:
s->ret.flags = import_u8(im);
if (s->ret.flags & RET_HAS_EXPR)