X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=cat.c;h=631314205923f2c71a0975dfa3dcbbb2d31780db;hb=15722159fca2f13bda8b45082ba81fbbb5bf6b33;hp=a7375085cdd8243b83ccb2efd416fbf4b8cfeac5;hpb=8802f71a0535d5fa3319b09d92178d0298bcc4aa;p=platform%2Fupstream%2Fisl.git diff --git a/cat.c b/cat.c index a737508..6313142 100644 --- a/cat.c +++ b/cat.c @@ -1,9 +1,14 @@ -#include +#include +#include +#include +#include +#include struct isl_arg_choice cat_format[] = { {"isl", ISL_FORMAT_ISL}, {"omega", ISL_FORMAT_OMEGA}, {"polylib", ISL_FORMAT_POLYLIB}, + {"ext-polylib", ISL_FORMAT_EXT_POLYLIB}, {"latex", ISL_FORMAT_LATEX}, {0} }; @@ -13,36 +18,41 @@ struct cat_options { unsigned format; }; -struct isl_arg cat_options_arg[] = { -ISL_ARG_CHILD(struct cat_options, isl, "isl", isl_options_arg) +ISL_ARGS_START(struct cat_options, cat_options_args) +ISL_ARG_CHILD(struct cat_options, isl, "isl", &isl_options_args, "isl options") ISL_ARG_CHOICE(struct cat_options, format, 0, "format", \ - cat_format, ISL_FORMAT_ISL) -ISL_ARG_END -}; + cat_format, ISL_FORMAT_ISL, "output format") +ISL_ARGS_END -ISL_ARG_DEF(cat_options, struct cat_options, cat_options_arg) +ISL_ARG_DEF(cat_options, struct cat_options, cat_options_args) int main(int argc, char **argv) { struct isl_ctx *ctx; - struct isl_map *map; + struct isl_stream *s; + struct isl_obj obj; struct cat_options *options; + isl_printer *p; options = cat_options_new_with_defaults(); assert(options); argc = cat_options_parse(options, argc, argv, ISL_ARG_ALL); - ctx = isl_ctx_alloc_with_options(options->isl); - options->isl = NULL; + ctx = isl_ctx_alloc_with_options(&cat_options_args, options); + + s = isl_stream_new_file(ctx, stdin); + obj = isl_stream_read_obj(s); + isl_stream_free(s); + + p = isl_printer_to_file(ctx, stdout); + p = isl_printer_set_output_format(p, options->format); + p = obj.type->print(p, obj.v); + p = isl_printer_end_line(p); + isl_printer_free(p); - map = isl_map_read_from_file(ctx, stdin, -1); - isl_map_print(map, stdout, 0, options->format); - if (options->format == ISL_FORMAT_ISL) - printf("\n"); - isl_map_free(map); + obj.type->free(obj.v); isl_ctx_free(ctx); - free(options); return 0; }