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_ctx *isl_printer_get_ctx(__isl_keep isl_printer *printer);
19 FILE *isl_printer_get_file(__isl_keep isl_printer *printer);
20 
21 __isl_give char *isl_printer_get_str(__isl_keep isl_printer *printer);
22 
23 __isl_give isl_printer *isl_printer_set_indent(__isl_take isl_printer *p,
24 	int indent);
25 __isl_give isl_printer *isl_printer_indent(__isl_take isl_printer *p,
26 	int indent);
27 
28 #define ISL_FORMAT_ISL			0
29 #define ISL_FORMAT_POLYLIB		1
30 #define ISL_FORMAT_POLYLIB_CONSTRAINTS	2
31 #define ISL_FORMAT_OMEGA		3
32 #define ISL_FORMAT_C			4
33 #define ISL_FORMAT_LATEX		5
34 #define ISL_FORMAT_EXT_POLYLIB		6
35 __isl_give isl_printer *isl_printer_set_output_format(__isl_take isl_printer *p,
36 	int output_format);
37 int isl_printer_get_output_format(__isl_keep isl_printer *p);
38 
39 __isl_give isl_printer *isl_printer_set_prefix(__isl_take isl_printer *p,
40 	const char *prefix);
41 __isl_give isl_printer *isl_printer_set_suffix(__isl_take isl_printer *p,
42 	const char *suffix);
43 __isl_give isl_printer *isl_printer_set_isl_int_width(__isl_take isl_printer *p,
44 	int width);
45 
46 __isl_give isl_printer *isl_printer_start_line(__isl_take isl_printer *p);
47 __isl_give isl_printer *isl_printer_end_line(__isl_take isl_printer *p);
48 __isl_give isl_printer *isl_printer_print_double(__isl_take isl_printer *p,
49 	double d);
50 __isl_give isl_printer *isl_printer_print_int(__isl_take isl_printer *p, int i);
51 __isl_give isl_printer *isl_printer_print_isl_int(__isl_take isl_printer *p,
52 	isl_int i);
53 __isl_give isl_printer *isl_printer_print_str(__isl_take isl_printer *p,
54 	const char *s);
55 
56 __isl_give isl_printer *isl_printer_flush(__isl_take isl_printer *p);
57 
58 #if defined(__cplusplus)
59 }
60 #endif
61 
62 #endif
63