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
},
16 struct isl_arg_choice cat_yaml_style
[] = {
17 { "block", ISL_YAML_STYLE_BLOCK
},
18 { "flow", ISL_YAML_STYLE_FLOW
},
23 struct isl_options
*isl
;
28 ISL_ARGS_START(struct cat_options
, cat_options_args
)
29 ISL_ARG_CHILD(struct cat_options
, isl
, "isl", &isl_options_args
, "isl options")
30 ISL_ARG_CHOICE(struct cat_options
, format
, 0, "format", \
31 cat_format
, ISL_FORMAT_ISL
, "output format")
32 ISL_ARG_CHOICE(struct cat_options
, yaml_style
, 0, "yaml-style", \
33 cat_yaml_style
, ISL_YAML_STYLE_BLOCK
, "output YAML style")
36 ISL_ARG_DEF(cat_options
, struct cat_options
, cat_options_args
)
38 int main(int argc
, char **argv
)
43 struct cat_options
*options
;
46 options
= cat_options_new_with_defaults();
48 argc
= cat_options_parse(options
, argc
, argv
, ISL_ARG_ALL
);
50 ctx
= isl_ctx_alloc_with_options(&cat_options_args
, options
);
52 s
= isl_stream_new_file(ctx
, stdin
);
53 obj
= isl_stream_read_obj(s
);
56 p
= isl_printer_to_file(ctx
, stdout
);
57 p
= isl_printer_set_output_format(p
, options
->format
);
58 p
= isl_printer_set_yaml_style(p
, options
->yaml_style
);
59 p
= obj
.type
->print(p
, obj
.v
);
60 p
= isl_printer_end_line(p
);
63 obj
.type
->free(obj
.v
);