1 #ifndef ISL_PRINTER_H 2 #define ISL_PRINTER_H 3 4 #include <stdio.h> 5 #include <isl/ctx.h> 6 #include <isl/printer_type.h> 7 #include <isl/id_type.h> 8 9 #if defined(__cplusplus) 10 extern "C" { 11 #endif 12 13 __isl_give isl_printer *isl_printer_to_file(isl_ctx *ctx, FILE *file); 14 __isl_give isl_printer *isl_printer_to_str(isl_ctx *ctx); 15 __isl_null isl_printer *isl_printer_free(__isl_take isl_printer *printer); 16 17 isl_ctx *isl_printer_get_ctx(__isl_keep isl_printer *printer); 18 FILE *isl_printer_get_file(__isl_keep isl_printer *printer); 19 20 __isl_give char *isl_printer_get_str(__isl_keep isl_printer *printer); 21 22 __isl_give isl_printer *isl_printer_set_indent(__isl_take isl_printer *p, 23 int indent); 24 __isl_give isl_printer *isl_printer_indent(__isl_take isl_printer *p, 25 int indent); 26 27 #define ISL_FORMAT_ISL 0 28 #define ISL_FORMAT_POLYLIB 1 29 #define ISL_FORMAT_POLYLIB_CONSTRAINTS 2 30 #define ISL_FORMAT_OMEGA 3 31 #define ISL_FORMAT_C 4 32 #define ISL_FORMAT_LATEX 5 33 #define ISL_FORMAT_EXT_POLYLIB 6 34 __isl_give isl_printer *isl_printer_set_output_format(__isl_take isl_printer *p, 35 int output_format); 36 int isl_printer_get_output_format(__isl_keep isl_printer *p); 37 38 #define ISL_YAML_STYLE_BLOCK 0 39 #define ISL_YAML_STYLE_FLOW 1 40 __isl_give isl_printer *isl_printer_set_yaml_style(__isl_take isl_printer *p, 41 int yaml_style); 42 int isl_printer_get_yaml_style(__isl_keep isl_printer *p); 43 44 __isl_give isl_printer *isl_printer_set_indent_prefix(__isl_take isl_printer *p, 45 const char *prefix); 46 __isl_give isl_printer *isl_printer_set_prefix(__isl_take isl_printer *p, 47 const char *prefix); 48 __isl_give isl_printer *isl_printer_set_suffix(__isl_take isl_printer *p, 49 const char *suffix); 50 __isl_give isl_printer *isl_printer_set_isl_int_width(__isl_take isl_printer *p, 51 int width); 52 53 isl_bool isl_printer_has_note(__isl_keep isl_printer *p, 54 __isl_keep isl_id *id); 55 __isl_give isl_id *isl_printer_get_note(__isl_keep isl_printer *p, 56 __isl_take isl_id *id); 57 __isl_give isl_printer *isl_printer_set_note(__isl_take isl_printer *p, 58 __isl_take isl_id *id, __isl_take isl_id *note); 59 60 __isl_give isl_printer *isl_printer_start_line(__isl_take isl_printer *p); 61 __isl_give isl_printer *isl_printer_end_line(__isl_take isl_printer *p); 62 __isl_give isl_printer *isl_printer_print_double(__isl_take isl_printer *p, 63 double d); 64 __isl_give isl_printer *isl_printer_print_int(__isl_take isl_printer *p, int i); 65 __isl_give isl_printer *isl_printer_print_str(__isl_take isl_printer *p, 66 const char *s); 67 68 __isl_give isl_printer *isl_printer_yaml_start_mapping( 69 __isl_take isl_printer *p); 70 __isl_give isl_printer *isl_printer_yaml_end_mapping( 71 __isl_take isl_printer *p); 72 __isl_give isl_printer *isl_printer_yaml_start_sequence( 73 __isl_take isl_printer *p); 74 __isl_give isl_printer *isl_printer_yaml_end_sequence( 75 __isl_take isl_printer *p); 76 __isl_give isl_printer *isl_printer_yaml_next(__isl_take isl_printer *p); 77 78 __isl_give isl_printer *isl_printer_flush(__isl_take isl_printer *p); 79 80 #if defined(__cplusplus) 81 } 82 #endif 83 84 #endif 85