void assert_type (Ast_Node* node, Ast_Node_Type type) { if (node->type == type) return; char *wanted, *got, *message; wanted = Ast_Node_Type_to_string(type); got = Ast_Node_Type_to_string(node->type); asprintf(&message, "Type assertion failed:\n\t" "Wanted: %s\n\t" "Got : %s\n", wanted, got); panic(message); }