From 730469c7a96a26ecba362db39c67e97bd07bf157 Mon Sep 17 00:00:00 2001 From: Leo Tenenbaum Date: Mon, 27 Jan 2020 11:12:16 -0500 Subject: #include --- package.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'package.c') 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) -- cgit v1.2.3