Move interns into Core_Ctx
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
|
||||
CORE_Static void
|
||||
core_init_compiler(Core_Ctx *ctx, Allocator *allocator) {
|
||||
ctx->init_ctx_time_begin = os_time();
|
||||
pctx = ctx;
|
||||
|
||||
ctx->emit_type_info = true;
|
||||
ctx->emit_line_directives = true;
|
||||
ctx->color_codes_enabled = true;
|
||||
ctx->same_scope_token = { SAME_SCOPE };
|
||||
|
||||
ctx->init_ctx_time_begin = os_time();
|
||||
pctx = ctx;
|
||||
ctx->perm_push_only = make_push_arena(allocator);
|
||||
ctx->perm = &ctx->perm_push_only;
|
||||
ctx->scratch = allocate_scratch_arena(ctx->perm, mib(1));
|
||||
@@ -24,49 +25,49 @@ core_init_compiler(Core_Ctx *ctx, Allocator *allocator) {
|
||||
|
||||
/*#import meta
|
||||
for i in meta.keywords:
|
||||
print(f'keyword_{i.lower()} = ctx->intern("{i}"_s);')
|
||||
print(f'ctx->interns.first_keyword = keyword_{meta.keywords[0].lower()}.str;')
|
||||
print(f'ctx->interns.last_keyword = keyword_{meta.keywords[-1].lower()}.str;')
|
||||
print(f'pctx->keyword_{i.lower()} = pctx->intern("{i}"_s);')
|
||||
print(f'pctx->interns.first_keyword = keyword_{meta.keywords[0].lower()}.str;')
|
||||
print(f'pctx->interns.last_keyword = keyword_{meta.keywords[-1].lower()}.str;')
|
||||
|
||||
for i in meta.interns:
|
||||
print(f'intern_{i.lower()} = ctx->intern("{i}"_s);')
|
||||
print(f'pctx->intern_{i.lower()} = pctx->intern("{i}"_s);')
|
||||
|
||||
index = 0
|
||||
for i in meta.token_simple_expr:
|
||||
if i[1] != "SPECIAL":
|
||||
print(f'op_info_table[{index}].op = ctx->intern("{i[1]}"_s);')
|
||||
index += 1
|
||||
if i[1] != "SPECIAL":
|
||||
print(f'op_info_table[{index}].op = pctx->intern("{i[1]}"_s);')
|
||||
index += 1
|
||||
|
||||
*/
|
||||
keyword_struct = ctx->intern("struct"_s);
|
||||
keyword_union = ctx->intern("union"_s);
|
||||
keyword_true = ctx->intern("true"_s);
|
||||
keyword_default = ctx->intern("default"_s);
|
||||
keyword_break = ctx->intern("break"_s);
|
||||
keyword_false = ctx->intern("false"_s);
|
||||
keyword_return = ctx->intern("return"_s);
|
||||
keyword_switch = ctx->intern("switch"_s);
|
||||
keyword_assert = ctx->intern("Assert"_s);
|
||||
keyword_if = ctx->intern("if"_s);
|
||||
keyword_elif = ctx->intern("elif"_s);
|
||||
keyword_pass = ctx->intern("pass"_s);
|
||||
keyword_else = ctx->intern("else"_s);
|
||||
keyword_for = ctx->intern("for"_s);
|
||||
keyword_enum = ctx->intern("enum"_s);
|
||||
ctx->interns.first_keyword = keyword_struct.str;
|
||||
ctx->interns.last_keyword = keyword_enum.str;
|
||||
intern_typeof = ctx->intern("TypeOf"_s);
|
||||
intern_sizeof = ctx->intern("SizeOf"_s);
|
||||
intern_len = ctx->intern("Len"_s);
|
||||
intern_alignof = ctx->intern("AlignOf"_s);
|
||||
intern_foreign = ctx->intern("foreign"_s);
|
||||
intern_strict = ctx->intern("strict"_s);
|
||||
intern_void = ctx->intern("void"_s);
|
||||
intern_flag = ctx->intern("flag"_s);
|
||||
intern_it = ctx->intern("it"_s);
|
||||
intern_load = ctx->intern("load"_s);
|
||||
intern_import = ctx->intern("import"_s);
|
||||
intern_link = ctx->intern("link"_s);
|
||||
pctx->keyword_struct = ctx->intern("struct"_s);
|
||||
pctx->keyword_union = ctx->intern("union"_s);
|
||||
pctx->keyword_true = ctx->intern("true"_s);
|
||||
pctx->keyword_default = ctx->intern("default"_s);
|
||||
pctx->keyword_break = ctx->intern("break"_s);
|
||||
pctx->keyword_false = ctx->intern("false"_s);
|
||||
pctx->keyword_return = ctx->intern("return"_s);
|
||||
pctx->keyword_switch = ctx->intern("switch"_s);
|
||||
pctx->keyword_assert = ctx->intern("Assert"_s);
|
||||
pctx->keyword_if = ctx->intern("if"_s);
|
||||
pctx->keyword_elif = ctx->intern("elif"_s);
|
||||
pctx->keyword_pass = ctx->intern("pass"_s);
|
||||
pctx->keyword_else = ctx->intern("else"_s);
|
||||
pctx->keyword_for = ctx->intern("for"_s);
|
||||
pctx->keyword_enum = ctx->intern("enum"_s);
|
||||
pctx->interns.first_keyword = pctx->keyword_struct.str;
|
||||
pctx->interns.last_keyword = pctx->keyword_enum.str;
|
||||
pctx->intern_typeof = ctx->intern("TypeOf"_s);
|
||||
pctx->intern_sizeof = ctx->intern("SizeOf"_s);
|
||||
pctx->intern_len = ctx->intern("Len"_s);
|
||||
pctx->intern_alignof = ctx->intern("AlignOf"_s);
|
||||
pctx->intern_foreign = ctx->intern("foreign"_s);
|
||||
pctx->intern_strict = ctx->intern("strict"_s);
|
||||
pctx->intern_void = ctx->intern("void"_s);
|
||||
pctx->intern_flag = ctx->intern("flag"_s);
|
||||
pctx->intern_it = ctx->intern("it"_s);
|
||||
pctx->intern_load = ctx->intern("load"_s);
|
||||
pctx->intern_import = ctx->intern("import"_s);
|
||||
pctx->intern_link = ctx->intern("link"_s);
|
||||
op_info_table[0].op = ctx->intern("*"_s);
|
||||
op_info_table[1].op = ctx->intern("/"_s);
|
||||
op_info_table[2].op = ctx->intern("%"_s);
|
||||
|
||||
Reference in New Issue
Block a user