diff options
| author | Jason Kercher <JKercher@JSM.lcl> | 2022-03-09 17:17:40 -0500 |
|---|---|---|
| committer | Jason Kercher <JKercher@JSM.lcl> | 2022-03-09 17:17:40 -0500 |
| commit | d2bc41a2df1612f8b3eb8300413be8b3f8bff895 (patch) | |
| tree | 8987434f10036be298ce8cb93726b6a43f372dbf /src/parser.hpp | |
| parent | bea2f3644325454e7fe0e12313528359d0782843 (diff) | |
| parent | dc8d28c383a404d01dcbcb65ba84ff814da9424e (diff) | |
Merge remote-tracking branch 'upstream/master' into fix_odin_test
Diffstat (limited to 'src/parser.hpp')
| -rw-r--r-- | src/parser.hpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/parser.hpp b/src/parser.hpp index 9e93f4b26..c33d1520b 100644 --- a/src/parser.hpp +++ b/src/parser.hpp @@ -46,6 +46,7 @@ enum ParseFileError { ParseFile_InvalidToken, ParseFile_GeneralError, ParseFile_FileTooLarge, + ParseFile_DirectoryAlreadyExists, ParseFile_Count, }; @@ -97,8 +98,6 @@ struct AstFile { AstPackage * pkg; Scope * scope; - Arena arena; - Ast * pkg_decl; String fullpath; Tokenizer tokenizer; @@ -300,6 +299,7 @@ enum FieldFlag : u32 { FieldFlag_auto_cast = 1<<4, FieldFlag_const = 1<<5, FieldFlag_any_int = 1<<6, + FieldFlag_subtype = 1<<7, // Internal use by the parser only FieldFlag_Tags = 1<<10, @@ -307,7 +307,7 @@ enum FieldFlag : u32 { // Parameter List Restrictions FieldFlag_Signature = FieldFlag_ellipsis|FieldFlag_using|FieldFlag_no_alias|FieldFlag_c_vararg|FieldFlag_auto_cast|FieldFlag_const|FieldFlag_any_int, - FieldFlag_Struct = FieldFlag_using|FieldFlag_Tags, + FieldFlag_Struct = FieldFlag_using|FieldFlag_subtype|FieldFlag_Tags, }; enum StmtAllowFlag { @@ -800,10 +800,10 @@ gb_inline bool is_ast_when_stmt(Ast *node) { return node->kind == Ast_WhenStmt; } -gb_global gb_thread_local Arena global_ast_arena = {}; +gb_global gb_thread_local Arena global_thread_local_ast_arena = {}; gbAllocator ast_allocator(AstFile *f) { - Arena *arena = f ? &f->arena : &global_ast_arena; + Arena *arena = &global_thread_local_ast_arena; return arena_allocator(arena); } |