Field access codegen works, properly converts to arrows

This commit is contained in:
Krzosa Karol
2022-06-10 21:46:14 +02:00
parent db7303a2c1
commit 2db6722406
4 changed files with 15 additions and 17 deletions

View File

@@ -116,29 +116,20 @@ gen_expr(Ast_Expr *ast){
}
CASE(BINARY, Binary){
// if(node->op == TK_Dot){
// Sym *sym = resolved_get(node->left);
// gen_expr(node->left);
// if(sym->type->kind == TYPE_POINTER) gen("->");
// else gen(".");
// gen_expr(node->right);
// }
// else if(node->op == TK_ColonAssign){
if(node->op == TK_Dot){
gen_expr(node->left);
if(node->type->kind == TYPE_POINTER) gen("->");
else gen(".");
gen_expr(node->right);
return;
}
// Sym *sym = resolved_get(node);
// Ast_Atom *atom = (Ast_Atom *)node->left;
// assert(is_atom(atom));
// gen_simple_decl(sym->type, atom->intern_val);
// if(node->right){
// gen(" = ");
// gen_expr(node->right);
// }
// }
if(!token_is_assign(node->op)) gen("(");
gen_expr(node->left);
gen("%s", name(node->op));
gen_expr(node->right);
if(!token_is_assign(node->op)) gen(")");
BREAK();
}