Moving more code to list
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user