summaryrefslogtreecommitdiffstats
path: root/source/code/preproc.h
blob: b9d2685fc67f90d22f05c7cc39749ef0b00dbebe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef PREPROC_H
#define PREPROC_H

typedef struct Module Module;
struct Module {
 TokenTree *tree;
 String8    name;
 Module    *next;
 Module    *prev;
};

typedef struct ModuleList ModuleList;
struct ModuleList {
 Module *current;
u64 count;
};

ReadOnly Module nil_module = {
 &nil_token_tree,
 {},
 &nil_module,

};

internal Token      *consume_token_from_buffer(MemArena *arena, String8 *buffer);
internal ModuleList *scan_buffer_and_handle_modules(MemArena *arena, String8 *buffer, String8 context_directory, b32 import_chasing);

#endif // PREPROC_H