53 lines · c
1#ifndef ISL_PRINTER_PRIVATE_H2#define ISL_PRINTER_PRIVATE_H3 4#include <isl/printer.h>5#include <isl_yaml.h>6#include <isl/id_to_id.h>7 8struct 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 should15 * 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_depth19 * 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 between23 * name identifiers and note identifiers. It may be NULL24 * if there are no notes yet.25 */26struct 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#endif53