blob: c31595462853a6233138af4ddd73b5e9de2eb08c [file] [log] [blame]
Yi Kong83283012023-12-13 12:57:00 +09001#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)
10extern "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
17isl_ctx *isl_printer_get_ctx(__isl_keep isl_printer *printer);
18FILE *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);
36int 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);
42int 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
53isl_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