3 #include <isl/printer.h>
4 #include <isl/stream.h>
5 #include <isl/options.h>
7 struct isl_arg_choice cat_format
[] = {
8 {"isl", ISL_FORMAT_ISL
},
9 {"omega", ISL_FORMAT_OMEGA
},
10 {"polylib", ISL_FORMAT_POLYLIB
},
11 {"ext-polylib", ISL_FORMAT_EXT_POLYLIB
},
12 {"latex", ISL_FORMAT_LATEX
},
17 struct isl_arg_choice cat_yaml_style
[] = {
18 { "block", ISL_YAML_STYLE_BLOCK
},
19 { "flow", ISL_YAML_STYLE_FLOW
},
24 struct isl_options
*isl
;
29 ISL_ARGS_START(struct cat_options
, cat_options_args
)
30 ISL_ARG_CHILD(struct cat_options
, isl
, "isl", &isl_options_args
, "isl options")
31 ISL_ARG_CHOICE(struct cat_options
, format
, 0, "format", \
32 cat_format
, ISL_FORMAT_ISL
, "output format")
33 ISL_ARG_CHOICE(struct cat_options
, yaml_style
, 0, "yaml-style", \
34 cat_yaml_style
, ISL_YAML_STYLE_BLOCK
, "output YAML style")
37 ISL_ARG_DEF(cat_options
, struct cat_options
, cat_options_args
)
39 int main(int argc
, char **argv
)
44 struct cat_options
*options
;
47 options
= cat_options_new_with_defaults();
49 argc
= cat_options_parse(options
, argc
, argv
, ISL_ARG_ALL
);
51 ctx
= isl_ctx_alloc_with_options(&cat_options_args
, options
);
53 s
= isl_stream_new_file(ctx
, stdin
);
54 obj
= isl_stream_read_obj(s
);
57 p
= isl_printer_to_file(ctx
, stdout
);
58 p
= isl_printer_set_output_format(p
, options
->format
);
59 p
= isl_printer_set_yaml_style(p
, options
->yaml_style
);
60 p
= obj
.type
->print(p
, obj
.v
);
61 p
= isl_printer_end_line(p
);
64 obj
.type
->free(obj
.v
);