1 #ifndef ISL_PRINTER_PRIVATE_H 2 #define ISL_PRINTER_PRIVATE_H 3 4 #include <isl/printer.h> 5 #include <isl_yaml.h> 6 #include <isl/id_to_id.h> 7 8 struct isl_printer_ops; 9 10 /* A printer to a file or a string. 11 * 12 * "dump" is set if the printing is performed from an isl_*_dump function. 13 * 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. 21 * 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. 25 */ 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; 40 41 int yaml_style; 42 int yaml_depth; 43 int yaml_size; 44 enum isl_yaml_state *yaml_state; 45 46 isl_id_to_id *notes; 47 }; 48 49 __isl_give isl_printer *isl_printer_set_dump(__isl_take isl_printer *p, 50 int dump); 51 52 #endif 53