X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=dfa%2Fbset.c;h=016c0bd0946f3b0ec8b1b123831e82eab0537127;hb=04fba3ff986bf55dcaca1ef958f2b118e9a6832d;hp=db028324cfa80b3af25ec9f3f36630809f19f45b;hpb=ead74d0c3b9d76204494553c61854812eb69bbc7;p=idzebra-moved-to-github.git diff --git a/dfa/bset.c b/dfa/bset.c index db02832..016c0bd 100644 --- a/dfa/bset.c +++ b/dfa/bset.c @@ -4,7 +4,17 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: bset.c,v $ - * Revision 1.1 1994-09-26 10:16:53 adam + * Revision 1.4 1996-10-29 13:57:20 adam + * Include of zebrautl.h instead of alexutil.h. + * + * Revision 1.3 1995/09/04 12:33:25 adam + * Various cleanup. YAZ util used instead. + * + * Revision 1.2 1995/01/24 16:00:21 adam + * Added -ansi to CFLAGS. + * Some changes to the dfa module. + * + * Revision 1.1 1994/09/26 10:16:53 adam * First version of dfa module in alex. This version uses yacc to parse * regular expressions. This should be hand-made instead. * @@ -15,7 +25,7 @@ #include #include -#include +#include #include #include "imalloc.h" @@ -27,10 +37,10 @@ BSetHandle *mk_BSetHandle (int size, int chunk) int wsize = 1+size/(sizeof(BSetWord)*8); BSetHandle *sh; - if( chunk <= 1 ) + if (chunk <= 1) chunk = 32; - sh = (BSetHandle *) imalloc( sizeof(BSetHandle) + - chunk*sizeof(BSetWord)*wsize ); + sh = (BSetHandle *) imalloc (sizeof(BSetHandle) + + chunk*sizeof(BSetWord)*wsize); sh->size = size; sh->wsize = wsize; @@ -44,13 +54,13 @@ void rm_BSetHandle (BSetHandle **shp) { BSetHandle *sh, *sh1; - assert( shp ); + assert (shp); sh = *shp; - assert( sh ); - while( sh ) + assert (sh); + while (sh) { sh1 = sh->setchain; - ifree( sh ); + ifree (sh); sh = sh1; } } @@ -59,7 +69,7 @@ int inf_BSetHandle (BSetHandle *sh, long *used, long *allocated) { int wsize; - assert( sh ); + assert (sh); *used = 0; *allocated = 0; wsize = sh->wsize; @@ -67,7 +77,7 @@ int inf_BSetHandle (BSetHandle *sh, long *used, long *allocated) { *used += sh->offset; *allocated += sh->chunk; - } while( (sh = sh->setchain) ); + } while ((sh = sh->setchain)); return wsize; } @@ -75,15 +85,15 @@ BSet mk_BSet (BSetHandle **shp) { BSetHandle *sh, *sh1; unsigned off; - assert( shp ); + assert (shp); sh = *shp; - assert( sh ); + assert (sh); off = sh->offset; - if( (off + sh->wsize) > sh->chunk ) + if ((off + sh->wsize) > sh->chunk) { - sh1 = (BSetHandle *) imalloc( sizeof(BSetHandle ) + - sh->chunk*sizeof(BSetWord) ); + sh1 = (BSetHandle *) imalloc (sizeof(BSetHandle) + + sh->chunk*sizeof(BSetWord)); sh1->size = sh->size; sh1->wsize = sh->wsize; sh1->chunk = sh->chunk; @@ -97,42 +107,42 @@ BSet mk_BSet (BSetHandle **shp) void add_BSet (BSetHandle *sh, BSet dst, unsigned member) { - assert( dst ); - assert( sh ); - assert( member <= sh->size ); + assert (dst); + assert (sh); + assert (member <= sh->size); SET_BIT(dst, member); } unsigned test_BSet (BSetHandle *sh, BSet src, unsigned member) { - assert( src ); - assert( sh ); - assert( member <= sh->size ); - return GET_BIT( src , member) != 0; + assert (src); + assert (sh); + assert (member <= sh->size); + return GET_BIT (src , member) != 0; } BSet cp_BSet (BSetHandle *sh, BSet dst, BSet src) { - assert( sh ); - assert( dst ); - assert( src ); - memcpy( dst, src, sh->wsize * sizeof(BSetWord)); + assert (sh); + assert (dst); + assert (src); + memcpy (dst, src, sh->wsize * sizeof(BSetWord)); return dst; } void res_BSet (BSetHandle *sh, BSet dst) { - assert( dst ); - memset( dst, 0, sh->wsize * sizeof(BSetWord)); + assert (dst); + memset (dst, 0, sh->wsize * sizeof(BSetWord)); } void union_BSet (BSetHandle *sh, BSet dst, BSet src) { int i; - assert( sh ); - assert( dst ); - assert( src ); - for( i=sh->wsize; --i >= 0; ) + assert (sh); + assert (dst); + assert (src); + for (i=sh->wsize; --i >= 0;) *dst++ |= *src++; } @@ -140,9 +150,9 @@ unsigned hash_BSet (BSetHandle *sh, BSet src) { int i; unsigned s = 0; - assert( sh ); - assert( src ); - for( i=sh->wsize; --i >= 0; ) + assert (sh); + assert (src); + for (i=sh->wsize; --i >= 0;) s += *src++; return s; } @@ -150,20 +160,20 @@ unsigned hash_BSet (BSetHandle *sh, BSet src) void com_BSet (BSetHandle *sh, BSet dst) { int i; - assert( sh ); - assert( dst ); - for( i=sh->wsize; --i >= 0; dst++ ) + assert (sh); + assert (dst); + for (i=sh->wsize; --i >= 0; dst++) *dst = ~*dst; } int eq_BSet (BSetHandle *sh, BSet dst, BSet src) { int i; - assert( sh ); - assert( dst ); - assert( src ); - for( i=sh->wsize; --i >= 0; ) - if( *dst++ != *src++ ) + assert (sh); + assert (dst); + assert (src); + for (i=sh->wsize; --i >= 0;) + if (*dst++ != *src++) return 0; return 1; } @@ -174,19 +184,19 @@ int trav_BSet (BSetHandle *sh, BSet src, unsigned member) BSetWord *sw = src+member/(sizeof(BSetWord)*8); unsigned b = member & (sizeof(BSetWord)*8-1); while(i >= 0) - if( b == 0 && *sw == 0 ) + if (b == 0 && *sw == 0) { member += sizeof(BSetWord)*8; ++sw; i -= sizeof(BSetWord)*8; } - else if( *sw & (1<= 0) - if( b == 0 && *sw == (BSetWord) ~ 0 ) + if (b == 0 && *sw == (BSetWord) ~ 0) { member += sizeof(BSetWord)*8; ++sw; i -= sizeof(BSetWord)*8; } - else if( (*sw & (1<