reindent
[libfirm] / ir / adt / iterator.c
1 #ifdef HAVE_CONFIG_H
2 # include "config.h"
3 #endif
4
5 #include <string.h>
6
7 #include "pset.h"
8 #include "list.h"
9 #include "iterator.h"
10
11
12 static void *it_pset_start(void *collection)
13 {
14         return pset_first(collection);
15 }
16
17 static void *it_pset_next(void *collection, void *curr)
18 {
19         return pset_next(collection);
20 }
21
22 static void it_pset_finish(void *collection, void *curr)
23 {
24 }
25
26 static const iterator_t iterator_pset = {
27         ITERATOR_MAGIC,
28         it_pset_start,
29         it_pset_next,
30         it_pset_finish
31 };
32
33 const iterator_t *pset_iterator = &iterator_pset;
34
35
36 static void *it_list_next(void *coll, void *it)
37 {
38         struct list_head *head = coll;
39         struct list_head *curr = it;
40         return curr->next != head ? curr->next : NULL;
41 }
42
43 static void *it_list_start(void *coll)
44 {
45         return it_list_next(coll, coll);
46 }
47
48 static void it_list_finish(void *coll, void *curr)
49 {
50 }
51
52 static const iterator_t iterator_list = {
53         ITERATOR_MAGIC,
54         it_list_start,
55         it_list_next,
56         it_list_finish
57 };
58
59 const iterator_t *list_iterator = &iterator_list;