Merge branch 'maint'
[platform/upstream/isl.git] / include / isl / printer.h
1 #ifndef ISL_PRINTER_H
2 #define ISL_PRINTER_H
3
4 #include <stdio.h>
5 #include <isl/ctx.h>
6
7 #if defined(__cplusplus)
8 extern "C" {
9 #endif
10
11 struct isl_printer;
12 typedef struct isl_printer isl_printer;
13
14 __isl_give isl_printer *isl_printer_to_file(isl_ctx *ctx, FILE *file);
15 __isl_give isl_printer *isl_printer_to_str(isl_ctx *ctx);
16 void isl_printer_free(__isl_take isl_printer *printer);
17
18 __isl_give char *isl_printer_get_str(__isl_keep isl_printer *printer);
19
20 __isl_give isl_printer *isl_printer_set_indent(__isl_take isl_printer *p,
21         int indent);
22 __isl_give isl_printer *isl_printer_indent(__isl_take isl_printer *p,
23         int indent);
24
25 #define ISL_FORMAT_ISL                  0
26 #define ISL_FORMAT_POLYLIB              1
27 #define ISL_FORMAT_POLYLIB_CONSTRAINTS  2
28 #define ISL_FORMAT_OMEGA                3
29 #define ISL_FORMAT_C                    4
30 #define ISL_FORMAT_LATEX                5
31 #define ISL_FORMAT_EXT_POLYLIB          6
32 __isl_give isl_printer *isl_printer_set_output_format(__isl_take isl_printer *p,
33         int output_format);
34
35 __isl_give isl_printer *isl_printer_set_prefix(__isl_take isl_printer *p,
36         const char *prefix);
37 __isl_give isl_printer *isl_printer_set_suffix(__isl_take isl_printer *p,
38         const char *suffix);
39 __isl_give isl_printer *isl_printer_set_isl_int_width(__isl_take isl_printer *p,
40         int width);
41
42 __isl_give isl_printer *isl_printer_start_line(__isl_take isl_printer *p);
43 __isl_give isl_printer *isl_printer_end_line(__isl_take isl_printer *p);
44 __isl_give isl_printer *isl_printer_print_int(__isl_take isl_printer *p, int i);
45 __isl_give isl_printer *isl_printer_print_isl_int(__isl_take isl_printer *p,
46         isl_int i);
47 __isl_give isl_printer *isl_printer_print_str(__isl_take isl_printer *p,
48         const char *s);
49
50 __isl_give isl_printer *isl_printer_flush(__isl_take isl_printer *p);
51
52 #if defined(__cplusplus)
53 }
54 #endif
55
56 #endif