Move operator infos to Core_Ctx
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user