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