mirror of
https://review.haiku-os.org/buildtools
synced 2024-11-23 07:18:49 +01:00
e7f96e19a4
gcc currently requires 0.15 or later for graphite
53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
#ifndef ISL_PRINTER_PRIVATE_H
|
|
#define ISL_PRINTER_PRIVATE_H
|
|
|
|
#include <isl/printer.h>
|
|
#include <isl_yaml.h>
|
|
#include <isl/id_to_id.h>
|
|
|
|
struct isl_printer_ops;
|
|
|
|
/* A printer to a file or a string.
|
|
*
|
|
* "dump" is set if the printing is performed from an isl_*_dump function.
|
|
*
|
|
* yaml_style is the YAML style in which the next elements should
|
|
* be printed and may be either ISL_YAML_STYLE_BLOCK or ISL_YAML_STYLE_FLOW,
|
|
* with ISL_YAML_STYLE_FLOW being the default.
|
|
* yaml_state keeps track of the currently active YAML elements.
|
|
* yaml_size is the size of this arrays, while yaml_depth
|
|
* is the number of elements currently in use.
|
|
* yaml_state may be NULL if no YAML printing is being performed.
|
|
*
|
|
* notes keeps track of arbitrary notes as a mapping between
|
|
* name identifiers and note identifiers. It may be NULL
|
|
* if there are no notes yet.
|
|
*/
|
|
struct isl_printer {
|
|
struct isl_ctx *ctx;
|
|
struct isl_printer_ops *ops;
|
|
FILE *file;
|
|
int buf_n;
|
|
int buf_size;
|
|
char *buf;
|
|
int indent;
|
|
int output_format;
|
|
int dump;
|
|
char *indent_prefix;
|
|
char *prefix;
|
|
char *suffix;
|
|
int width;
|
|
|
|
int yaml_style;
|
|
int yaml_depth;
|
|
int yaml_size;
|
|
enum isl_yaml_state *yaml_state;
|
|
|
|
isl_id_to_id *notes;
|
|
};
|
|
|
|
__isl_give isl_printer *isl_printer_set_dump(__isl_take isl_printer *p,
|
|
int dump);
|
|
|
|
#endif
|