return (ast_expression*)ast_ifthen_new(parser_ctx(parser), cond, on_true, on_false);
} else if (ast_istype(*side, ast_label)) {
ast_goto *gt = ast_goto_new(parser_ctx(parser), ((ast_label*)*side)->name);
ast_goto_set_label(gt, ((ast_label*)*side));
return (ast_expression*)ast_ifthen_new(parser_ctx(parser), cond, on_true, on_false);
} else if (ast_istype(*side, ast_label)) {
ast_goto *gt = ast_goto_new(parser_ctx(parser), ((ast_label*)*side)->name);
ast_goto_set_label(gt, ((ast_label*)*side));