Updated WIN32 code specific sections. Changed header.
[idzebra-moved-to-github.git] / include / set.h
1 /*
2  * Copyright (C) 1994-1999, Index Data
3  * All rights reserved.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: set.h,v $
7  * Revision 1.3  1999-02-02 14:50:44  adam
8  * Updated WIN32 code specific sections. Changed header.
9  *
10  * Revision 1.2  1997/09/05 15:30:05  adam
11  * Changed prototype for chr_map_input - added const.
12  * Added support for C++, headers uses extern "C" for public definitions.
13  *
14  * Revision 1.1  1994/09/26 10:17:44  adam
15  * Dfa-module header files.
16  *
17  */
18 #ifndef SET_H
19 #define SET_H
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 typedef struct SetElement_  {
26     struct SetElement_ *next;
27     int value;
28 } SetElement, *Set;
29
30 typedef struct {
31     Set  alloclist;
32     Set  freelist;
33     long used;
34     int  chunk;
35 } *SetType;
36
37 SetType  mk_SetType   (int chunk);
38 int      inf_SetType  (SetType st, long *used, long *allocated);
39 SetType  rm_SetType   (SetType st);
40 Set      mk_Set       (SetType st);
41 Set      add_Set      (SetType st, Set s, int value);
42 Set      merge_Set    (SetType st, Set s1, Set s2);
43 Set      union_Set    (SetType st, Set s1, Set s2);
44 Set      rm_Set       (SetType st, Set s);
45 Set      cp_Set       (SetType st, Set s);
46 void     pr_Set       (SetType st, Set s);
47 unsigned hash_Set     (SetType st, Set s);
48 int      eq_Set       (SetType s, Set s1, Set s2);
49
50 #ifdef __cplusplus
51 }
52 #endif
53
54 #endif
55