isl 0.27
[isl.git] / isl_printer_private.h
blob6b852e8bc47cd9b6ff58b5b2ac8c16f8cad6bcfa
1 #ifndef ISL_PRINTER_PRIVATE_H
2 #define ISL_PRINTER_PRIVATE_H
4 #include <isl/printer.h>
5 #include <isl_yaml.h>
6 #include <isl/id_to_id.h>
8 struct isl_printer_ops;
10 /* A printer to a file or a string.
12 * "dump" is set if the printing is performed from an isl_*_dump function.
14 * yaml_style is the YAML style in which the next elements should
15 * be printed and may be either ISL_YAML_STYLE_BLOCK or ISL_YAML_STYLE_FLOW,
16 * with ISL_YAML_STYLE_FLOW being the default.
17 * yaml_state keeps track of the currently active YAML elements.
18 * yaml_size is the size of this arrays, while yaml_depth
19 * is the number of elements currently in use.
20 * yaml_state may be NULL if no YAML printing is being performed.
22 * notes keeps track of arbitrary notes as a mapping between
23 * name identifiers and note identifiers. It may be NULL
24 * if there are no notes yet.
26 struct isl_printer {
27 struct isl_ctx *ctx;
28 struct isl_printer_ops *ops;
29 FILE *file;
30 int buf_n;
31 int buf_size;
32 char *buf;
33 int indent;
34 int output_format;
35 int dump;
36 char *indent_prefix;
37 char *prefix;
38 char *suffix;
39 int width;
41 int yaml_style;
42 int yaml_depth;
43 int yaml_size;
44 enum isl_yaml_state *yaml_state;
46 isl_id_to_id *notes;
49 __isl_give isl_printer *isl_printer_set_dump(__isl_take isl_printer *p,
50 int dump);
52 #endif