diff options
| author | gingerBill <bill@gingerbill.org> | 2021-11-14 15:12:37 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-11-14 15:12:37 +0000 |
| commit | 3f038428a7f282468011415db76da4bf08ddb67c (patch) | |
| tree | 70712155e0f94b43754fd8a28bf40939b8228d0f /src/parser.hpp | |
| parent | b9701340b8faff107fe6a515d5de429141508f48 (diff) | |
Begin minimizing `Ast` size
Diffstat (limited to 'src/parser.hpp')
| -rw-r--r-- | src/parser.hpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/parser.hpp b/src/parser.hpp index 418d035c4..76ae33b21 100644 --- a/src/parser.hpp +++ b/src/parser.hpp @@ -255,14 +255,14 @@ ProcCallingConvention default_calling_convention(void) { return ProcCC_Odin; } -enum StateFlag : u16 { +enum StateFlag : u8 { StateFlag_bounds_check = 1<<0, StateFlag_no_bounds_check = 1<<1, - StateFlag_BeenHandled = 1<<15, + StateFlag_BeenHandled = 1<<7, }; -enum ViralStateFlag : u16 { +enum ViralStateFlag : u8 { ViralStateFlag_ContainsDeferredProcedure = 1<<0, }; @@ -666,7 +666,7 @@ AST_KIND(_TypeBegin, "", bool) \ }) \ AST_KIND(_TypeEnd, "", bool) -enum AstKind { +enum AstKind : u16 { Ast_Invalid, #define AST_KIND(_kind_name_, ...) GB_JOIN2(Ast_, _kind_name_), AST_KINDS @@ -696,18 +696,18 @@ isize const ast_variant_sizes[] = { struct AstCommonStuff { AstKind kind; - u16 state_flags; - u16 viral_state_flags; - AstFile * file; + u8 state_flags; + u8 viral_state_flags; + i32 file_id; Scope * scope; TypeAndValue tav; // TODO(bill): Make this a pointer to minimize pointer size }; struct Ast { AstKind kind; - u16 state_flags; - u16 viral_state_flags; - AstFile * file; + u8 state_flags; + u8 viral_state_flags; + i32 file_id; Scope * scope; TypeAndValue tav; // TODO(bill): Make this a pointer to minimize pointer size @@ -717,6 +717,13 @@ struct Ast { AST_KINDS #undef AST_KIND }; + + + // NOTE(bill): I know I dislike methods but this is hopefully a temporary thing + // for refactoring purposes + AstFile *file() const { + return get_ast_file_from_id(this->file_id); + } }; |