printer.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #ifndef ISL_PRINTER_H
  2. #define ISL_PRINTER_H
  3. #include <stdio.h>
  4. #include <isl/ctx.h>
  5. #include <isl/printer_type.h>
  6. #include <isl/id_type.h>
  7. #if defined(__cplusplus)
  8. extern "C" {
  9. #endif
  10. __isl_give isl_printer *isl_printer_to_file(isl_ctx *ctx, FILE *file);
  11. __isl_give isl_printer *isl_printer_to_str(isl_ctx *ctx);
  12. __isl_null isl_printer *isl_printer_free(__isl_take isl_printer *printer);
  13. isl_ctx *isl_printer_get_ctx(__isl_keep isl_printer *printer);
  14. FILE *isl_printer_get_file(__isl_keep isl_printer *printer);
  15. __isl_give char *isl_printer_get_str(__isl_keep isl_printer *printer);
  16. __isl_give isl_printer *isl_printer_set_indent(__isl_take isl_printer *p,
  17. int indent);
  18. __isl_give isl_printer *isl_printer_indent(__isl_take isl_printer *p,
  19. int indent);
  20. #define ISL_FORMAT_ISL 0
  21. #define ISL_FORMAT_POLYLIB 1
  22. #define ISL_FORMAT_POLYLIB_CONSTRAINTS 2
  23. #define ISL_FORMAT_OMEGA 3
  24. #define ISL_FORMAT_C 4
  25. #define ISL_FORMAT_LATEX 5
  26. #define ISL_FORMAT_EXT_POLYLIB 6
  27. __isl_give isl_printer *isl_printer_set_output_format(__isl_take isl_printer *p,
  28. int output_format);
  29. int isl_printer_get_output_format(__isl_keep isl_printer *p);
  30. #define ISL_YAML_STYLE_BLOCK 0
  31. #define ISL_YAML_STYLE_FLOW 1
  32. __isl_give isl_printer *isl_printer_set_yaml_style(__isl_take isl_printer *p,
  33. int yaml_style);
  34. int isl_printer_get_yaml_style(__isl_keep isl_printer *p);
  35. __isl_give isl_printer *isl_printer_set_indent_prefix(__isl_take isl_printer *p,
  36. const char *prefix);
  37. __isl_give isl_printer *isl_printer_set_prefix(__isl_take isl_printer *p,
  38. const char *prefix);
  39. __isl_give isl_printer *isl_printer_set_suffix(__isl_take isl_printer *p,
  40. const char *suffix);
  41. __isl_give isl_printer *isl_printer_set_isl_int_width(__isl_take isl_printer *p,
  42. int width);
  43. isl_bool isl_printer_has_note(__isl_keep isl_printer *p,
  44. __isl_keep isl_id *id);
  45. __isl_give isl_id *isl_printer_get_note(__isl_keep isl_printer *p,
  46. __isl_take isl_id *id);
  47. __isl_give isl_printer *isl_printer_set_note(__isl_take isl_printer *p,
  48. __isl_take isl_id *id, __isl_take isl_id *note);
  49. __isl_give isl_printer *isl_printer_start_line(__isl_take isl_printer *p);
  50. __isl_give isl_printer *isl_printer_end_line(__isl_take isl_printer *p);
  51. __isl_give isl_printer *isl_printer_print_double(__isl_take isl_printer *p,
  52. double d);
  53. __isl_give isl_printer *isl_printer_print_int(__isl_take isl_printer *p, int i);
  54. __isl_give isl_printer *isl_printer_print_str(__isl_take isl_printer *p,
  55. const char *s);
  56. __isl_give isl_printer *isl_printer_yaml_start_mapping(
  57. __isl_take isl_printer *p);
  58. __isl_give isl_printer *isl_printer_yaml_end_mapping(
  59. __isl_take isl_printer *p);
  60. __isl_give isl_printer *isl_printer_yaml_start_sequence(
  61. __isl_take isl_printer *p);
  62. __isl_give isl_printer *isl_printer_yaml_end_sequence(
  63. __isl_take isl_printer *p);
  64. __isl_give isl_printer *isl_printer_yaml_next(__isl_take isl_printer *p);
  65. __isl_give isl_printer *isl_printer_flush(__isl_take isl_printer *p);
  66. #if defined(__cplusplus)
  67. }
  68. #endif
  69. #endif