Moving more code to list

This commit is contained in:
Krzosa Karol
2022-09-30 09:52:54 +02:00
parent cf619c2ea3
commit 0a7fe8caad
5 changed files with 45 additions and 47 deletions

View File

@@ -757,9 +757,10 @@ typedef struct String{
)==");
// Generate struct forward decls
For(pctx->ordered_decls){
if(it->kind == AST_STRUCT){
genln("typedef struct %Q %Q;", it->name, it->name);
Iter(&pctx->ordered_decls){
auto i = it.item[0];
if(i->kind == AST_STRUCT){
genln("typedef struct %Q %Q;", i->name, i->name);
}
}
@@ -801,20 +802,20 @@ typedef struct String{
Ast_Decl *win_main = 0;
// Generate lambda forward decls
For(pctx->ordered_decls){
if(it->kind == AST_LAMBDA){
if(it->name == intern_main){
main = it;
it->unique_name = it->name;
Iter(&pctx->ordered_decls){
if(it.item[0]->kind == AST_LAMBDA){
if(it.item[0]->name == intern_main){
main = it.item[0];
it.item[0]->unique_name = it.item[0]->name;
}
if(it->name == intern_win_main){
win_main = it;
it->unique_name = it->name;
if(it.item[0]->name == intern_win_main){
win_main = it.item[0];
it.item[0]->unique_name = it.item[0]->name;
}
genln("");
gen_lambda(it->unique_name, it->lambda, false);
gen_lambda(it.item[0]->unique_name, it.item[0]->lambda, false);
}
}
@@ -824,7 +825,7 @@ typedef struct String{
// Generate language.kl
for(S32 i = 0; i < pctx->base_language_ordered_decl_len; i++){
Ast_Decl *it = pctx->ordered_decls[i];
Ast_Decl *it = get(&pctx->ordered_decls, i);
genln("");
gen_ast(it);
}
@@ -872,10 +873,11 @@ typedef struct String{
gen("};");
// Generate actual code
for(S32 i = pctx->base_language_ordered_decl_len; i < pctx->ordered_decls.len; i++){
Ast_Decl *it = pctx->ordered_decls[i];
genln("");
gen_ast(it);
Iter(&pctx->ordered_decls){
if(it.index >= pctx->base_language_ordered_decl_len){
genln("");
gen_ast(it.item[0]);
}
}
String string_result = string_flatten(pctx->perm, &pctx->gen);