Changed prototype for chr_map_input - added const.
[idzebra-moved-to-github.git] / include / bset.h
1 /*
2  * Copyright (C) 1994-1997, Index Data I/S 
3  * All rights reserved.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: bset.h,v $
7  * Revision 1.2  1997-09-05 15:29:59  adam
8  * Changed prototype for chr_map_input - added const.
9  * Added support for C++, headers uses extern "C" for public definitions.
10  *
11  * Revision 1.1  1994/09/26 10:17:42  adam
12  * Dfa-module header files.
13  *
14  */
15 #ifndef BSET_H
16 #define BSET_H
17
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21
22 typedef unsigned short BSetWord;
23 typedef BSetWord *BSet;
24
25 typedef struct BSetHandle_ {
26     unsigned size;        /* size of set in members */
27     unsigned wsize;       /* size of individual set (in BSetWord)*/
28     unsigned offset;      /* offset in current set block */
29     unsigned chunk;       /* chunk, i.e. size of each block */
30     struct BSetHandle_ *setchain;
31     BSetWord setarray[1];
32 } BSetHandle;
33
34 BSetHandle *mk_BSetHandle (int size, int chunk);
35 void       rm_BSetHandle  (BSetHandle **shp);
36 int        inf_BSetHandle (BSetHandle *sh, long *used, long *alloc);
37 BSet       cp_BSet        (BSetHandle *sh, BSet dst, BSet src);
38 void       add_BSet       (BSetHandle *sh, BSet dst, unsigned member);
39 void       union_BSet     (BSetHandle *sh, BSet dst, BSet src);
40 BSet       mk_BSet        (BSetHandle **shp);
41 void       rm_BSet        (BSetHandle **shp);
42 void       res_BSet       (BSetHandle *sh, BSet dst);
43 void       com_BSet       (BSetHandle *sh, BSet dst);
44 void       pr_BSet        (BSetHandle *sh, BSet src);
45 unsigned   test_BSet      (BSetHandle *sh, BSet src, unsigned member);
46 int        trav_BSet      (BSetHandle *sh, BSet src, unsigned member);
47 int        travi_BSet     (BSetHandle *sh, BSet src, unsigned member);
48 unsigned   hash_BSet      (BSetHandle *sh, BSet src);
49 int        eq_BSet        (BSetHandle *sh, BSet dst, BSet src);
50 void       pr_charBSet    (BSetHandle *sh, BSet src, void (*f)(int));
51
52 #ifdef __cplusplus
53 }
54 #endif
55
56 #endif