Introductory parseThat commit. - - - - - - - - - - - - - - - - - - - - -
[dyninst.git] / parseThat / src / strlist.h
1 #ifndef __STRLIST_H__
2 #define __STRLIST_H__
3
4 struct strlist_elm {
5     char *data;
6     strlist_elm *next;
7 };
8
9 struct strlist {
10     strlist_elm *head, *tail;
11     unsigned count;
12 };
13
14 #define STRLIST_INITIALIZER { NULL, NULL, 0 }
15
16 strlist *strlist_alloc();
17 void strlist_clear(strlist *);
18
19 // Alpha-numeric sorted insert.
20 bool strlist_insert(strlist *, const char *);
21
22 // Queue/Stack implementation.
23 bool strlist_push_front(strlist *, const char *);
24 bool strlist_pop_front(strlist *);
25 bool strlist_push_back(strlist *, const char *);
26 bool strlist_pop_back(strlist *);
27
28 // Data Retrieval
29 char *strlist_get(strlist *, unsigned);
30
31 bool strlist_cmp(strlist *, strlist *);
32 strlist char2strlist(char *);
33 char *strlist2char(strlist *, char *);
34
35 #endif