Move operator infos to Core_Ctx

This commit is contained in:
Krzosa Karol
2023-01-01 16:14:47 +01:00
parent 34928e3977
commit d441abcddb
5 changed files with 153 additions and 172 deletions

View File

@@ -2,6 +2,7 @@
/*
@! Separate out the codegen stage cause that can change
@! Change type of Stage allocator
@! Look into String_Builders in Core_Ctx
@! Look into stage allocator and perhaps
use it more often to reduce scenarios
with 2 allocators, and simplify stuff
@@ -96,40 +97,48 @@ struct Core_Ctx{
Token same_scope_token;
Token null_token;
/*#import meta
for i in meta.keywords: print(f'Intern_String keyword_{i.lower()};')
for i in meta.interns: print(f'Intern_String intern_{i.lower()};')
*/
Intern_String keyword_struct;
Intern_String keyword_union;
Intern_String keyword_true;
Intern_String keyword_default;
Intern_String keyword_break;
Intern_String keyword_false;
Intern_String keyword_return;
Intern_String keyword_switch;
Intern_String keyword_assert;
Intern_String keyword_if;
Intern_String keyword_elif;
Intern_String keyword_pass;
Intern_String keyword_else;
Intern_String keyword_for;
Intern_String keyword_enum;
Intern_String intern_typeof;
Intern_String intern_sizeof;
Intern_String intern_len;
Intern_String intern_alignof;
Intern_String intern_foreign;
Intern_String intern_strict;
Intern_String intern_void;
Intern_String intern_flag;
Intern_String intern_it;
Intern_String intern_load;
Intern_String intern_import;
Intern_String intern_link;
/*END*/
/*#import meta
for i in meta.keywords: print(f'Intern_String keyword_{i.lower()};')
for i in meta.interns: print(f'Intern_String intern_{i.lower()};')
*/
Intern_String keyword_struct;
Intern_String keyword_union;
Intern_String keyword_true;
Intern_String keyword_default;
Intern_String keyword_break;
Intern_String keyword_false;
Intern_String keyword_return;
Intern_String keyword_switch;
Intern_String keyword_assert;
Intern_String keyword_if;
Intern_String keyword_elif;
Intern_String keyword_pass;
Intern_String keyword_else;
Intern_String keyword_for;
Intern_String keyword_enum;
Intern_String intern_typeof;
Intern_String intern_sizeof;
Intern_String intern_len;
Intern_String intern_alignof;
Intern_String intern_foreign;
Intern_String intern_strict;
Intern_String intern_void;
Intern_String intern_flag;
Intern_String intern_it;
Intern_String intern_load;
Intern_String intern_import;
Intern_String intern_link;
/*END*/
size = 0
for i in meta.token_simple_expr:
if i[1] != "SPECIAL":
size += 1
print(f" Ast_Operator_Info op_info_table[{size}];")
*/
Ast_Operator_Info op_info_table[20];
/*END*/
Intern_String intern(String string){
assert(string.len > 0);
return intern_string(&interns, string);