1/*
2 * Copyright 2013 Ecole Normale Superieure
3 *
4 * Use of this software is governed by the MIT license
5 *
6 * Written by Sven Verdoolaege,
7 * Ecole Normale Superieure, 45 rue d'Ulm, 75230 Paris, France
8 */
9
10#include <isl/stream.h>
11
12#include <isl_list_macro.h>
13
14/* Read a sequence of EL objects and return them as a list.
15 */
16static __isl_give LIST(EL) *FN(isl_stream_yaml_read,LIST(EL_BASE))(
17 isl_stream *s)
18{
19 isl_ctx *ctx;
20 LIST(EL) *list;
21 isl_bool more;
22
23 ctx = isl_stream_get_ctx(s);
24
25 if (isl_stream_yaml_read_start_sequence(s) < 0)
26 return NULL;
27
28 list = FN(LIST(EL),alloc)(ctx, n: 0);
29 while ((more = isl_stream_yaml_next(s)) == isl_bool_true) {
30 EL *el;
31
32 el = FN(isl_stream_read,EL_BASE)(s);
33 list = FN(LIST(EL),add)(list, el);
34 }
35
36 if (more < 0 || isl_stream_yaml_read_end_sequence(s) < 0)
37 return FN(LIST(EL),free)(list);
38
39 return list;
40}
41

source code of polly/lib/External/isl/isl_list_read_yaml_templ.c