Home | History | Annotate | Line # | Download | only in isl
      1 #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)
     10 extern "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 
     17 isl_ctx *isl_printer_get_ctx(__isl_keep isl_printer *printer);
     18 FILE *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);
     36 int 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);
     42 int 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 
     53 isl_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
     85