Field access codegen works, properly converts to arrows
This commit is contained in:
25
ccodegen.cpp
25
ccodegen.cpp
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user