summaryrefslogtreecommitdiff
path: root/types.h
diff options
context:
space:
mode:
Diffstat (limited to 'types.h')
-rw-r--r--types.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/types.h b/types.h
index 17184ea..e9a2a6e 100644
--- a/types.h
+++ b/types.h
@@ -898,14 +898,19 @@ typedef struct Evaluator {
} Evaluator;
typedef struct Package {
- char *name; /* package name, not file name */
+ char *name;
+ const char *filename;
Identifiers idents;
Statement *stmts;
struct {
- char *prefix; /* prefix for C things (not incl. __) */
+ char *prefix; /* prefix for C things (not including __) */
} c;
} Package;
+typedef struct PackageManager {
+ StrHashTable pkgs;
+} PackageManager;
+
typedef struct Typer {
Allocator *allocr;
Evaluator *evalr;
@@ -920,8 +925,8 @@ typedef struct Typer {
ErrCtx *err_ctx;
/* for checking for problematic struct circular dependencies */
bool *is_reference_stack;
- Package *pkgs; /* all packages which have been imported */
ParsedFile *parsed_file;
+ PackageManager pkgmgr;
} Typer;
typedef struct Exporter {
@@ -949,8 +954,10 @@ typedef struct Importer {
Location import_location;
StructDef *structs;
FnExpr *fns;
+ PackageManager *pkgmgr;
} Importer;
+
typedef struct CGenerator {
Allocator *allocr;
FILE *outc;