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