Rewriting function calls to have named parameters, default values

This commit is contained in:
Krzosa Karol
2022-05-30 11:00:30 +02:00
parent 54e3cb5261
commit 9e24a608cb
7 changed files with 129 additions and 32 deletions

View File

@@ -29,7 +29,8 @@ gen_simple_decl_prefix(Ast_Resolved_Type *ast){
case TYPE_ARRAY: gen_simple_decl_prefix(ast->base); break;
case TYPE_LAMBDA:break;
case TYPE_STRUCT: {
auto name = ast->sym->name;
auto constant = (Ast_Const *)ast->ast->parent;
auto name = constant->name;
gen("%s ", name.str);
}break;
invalid_default_case;
@@ -165,6 +166,7 @@ gen_expr(Ast_Expr *ast){
gen("(");
For(node->exprs){
gen_expr(it[0]->item);
if(!node->exprs.is_last(it)) gen(", ");
}
gen(")");
}
@@ -294,7 +296,7 @@ gen_ast(Ast *ast){
}
else if(sym->type == type_type){
if(sym->type_val->kind == TYPE_STRUCT){
Ast_Struct *agg = const_get_struct(sym->type_val->sym->ast);
Ast_Struct *agg = (Ast_Struct *)sym->type_val->ast;
if(node->value->kind == AST_STRUCT){
gen("struct %s{", node->name.str);
global_indent++;