X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fbset.h;fp=include%2Fbset.h;h=8c9966c7ca0ee85d5270af2c018620b022cf13cd;hb=769e5c9b42bf87531296013fac0af819af9228ee;hp=0000000000000000000000000000000000000000;hpb=c0e2fc3945dfd829a689f7da49e172c34511b0d0;p=idzebra-moved-to-github.git diff --git a/include/bset.h b/include/bset.h new file mode 100644 index 0000000..8c9966c --- /dev/null +++ b/include/bset.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 1994, Index Data I/S + * All rights reserved. + * Sebastian Hammer, Adam Dickmeiss + * + * $Log: bset.h,v $ + * Revision 1.1 1994-09-26 10:17:42 adam + * Dfa-module header files. + * + */ +#ifndef BSET_H +#define BSET_H + +typedef unsigned short BSetWord; +typedef BSetWord *BSet; + +typedef struct BSetHandle_ { + unsigned size; /* size of set in members */ + unsigned wsize; /* size of individual set (in BSetWord)*/ + unsigned offset; /* offset in current set block */ + unsigned chunk; /* chunk, i.e. size of each block */ + struct BSetHandle_ *setchain; + BSetWord setarray[1]; +} BSetHandle; + +BSetHandle *mk_BSetHandle (int size, int chunk); +void rm_BSetHandle (BSetHandle **shp); +int inf_BSetHandle (BSetHandle *sh, long *used, long *alloc); +BSet cp_BSet (BSetHandle *sh, BSet dst, BSet src); +void add_BSet (BSetHandle *sh, BSet dst, unsigned member); +void union_BSet (BSetHandle *sh, BSet dst, BSet src); +BSet mk_BSet (BSetHandle **shp); +void rm_BSet (BSetHandle **shp); +void res_BSet (BSetHandle *sh, BSet dst); +void com_BSet (BSetHandle *sh, BSet dst); +void pr_BSet (BSetHandle *sh, BSet src); +unsigned test_BSet (BSetHandle *sh, BSet src, unsigned member); +int trav_BSet (BSetHandle *sh, BSet src, unsigned member); +int travi_BSet (BSetHandle *sh, BSet src, unsigned member); +unsigned hash_BSet (BSetHandle *sh, BSet src); +int eq_BSet (BSetHandle *sh, BSet dst, BSet src); +void pr_charBSet (BSetHandle *sh, BSet src, void (*f)(int)); + +#endif