40 lines · c
1#define xCAT(A,B) A ## B2#define CAT(A,B) xCAT(A,B)3#undef TYPE4#define TYPE CAT(isl_,BASE)5#define xFN(TYPE,NAME) TYPE ## _ ## NAME6#define FN(TYPE,NAME) xFN(TYPE,NAME)7 8void FN(TYPE,dump)(__isl_keep TYPE *obj)9{10 isl_printer *p;11 12 if (!obj)13 return;14 15 p = isl_printer_to_file(FN(TYPE,get_ctx)(obj), stderr);16 p = isl_printer_set_yaml_style(p, ISL_YAML_STYLE_BLOCK);17 p = FN(isl_printer_print,BASE)(p, obj);18 isl_printer_free(p);19}20 21/* Return a string representation of "obj".22 * Print the object in flow format.23 */24__isl_give char *FN(TYPE,to_str)(__isl_keep TYPE *obj)25{26 isl_printer *p;27 char *s;28 29 if (!obj)30 return NULL;31 32 p = isl_printer_to_str(FN(TYPE,get_ctx)(obj));33 p = isl_printer_set_yaml_style(p, ISL_YAML_STYLE_FLOW);34 p = FN(isl_printer_print,BASE)(p, obj);35 s = isl_printer_get_str(p);36 isl_printer_free(p);37 38 return s;39}40