Lines Matching full:bitset

43 static	void			antlr3BitsetORInPlace	(pANTLR3_BITSET bitset, pANTLR3_BITSET bitset2);
44 static ANTLR3_UINT32 antlr3BitsetSize (pANTLR3_BITSET bitset);
45 static void antlr3BitsetAdd (pANTLR3_BITSET bitset, ANTLR3_INT32 bit);
47 static ANTLR3_BOOLEAN antlr3BitsetMember (pANTLR3_BITSET bitset, ANTLR3_UINT32 bit);
48 static ANTLR3_UINT32 antlr3BitsetNumBits (pANTLR3_BITSET bitset);
49 static void antlr3BitsetRemove (pANTLR3_BITSET bitset, ANTLR3_UINT32 bit);
50 static ANTLR3_BOOLEAN antlr3BitsetIsNil (pANTLR3_BITSET bitset);
51 static pANTLR3_INT32 antlr3BitsetToIntList (pANTLR3_BITSET bitset);
55 static void growToInclude (pANTLR3_BITSET bitset, ANTLR3_INT32 bit);
56 static void grow (pANTLR3_BITSET bitset, ANTLR3_INT32 newSize);
60 static void antlr3BitsetFree (pANTLR3_BITSET bitset);
63 antlr3BitsetFree(pANTLR3_BITSET bitset) in antlr3BitsetFree() argument
65 if (bitset->blist.bits != NULL) in antlr3BitsetFree()
67 ANTLR3_FREE(bitset->blist.bits); in antlr3BitsetFree()
68 bitset->blist.bits = NULL; in antlr3BitsetFree()
70 ANTLR3_FREE(bitset); in antlr3BitsetFree()
78 pANTLR3_BITSET bitset; in antlr3BitsetNew() local
82 // Allocate memory for the bitset structure itself in antlr3BitsetNew()
84 bitset = (pANTLR3_BITSET) ANTLR3_MALLOC((size_t)sizeof(ANTLR3_BITSET)); in antlr3BitsetNew()
86 if (bitset == NULL) in antlr3BitsetNew()
103bitset->blist.bits = (pANTLR3_BITWORD) ANTLR3_MALLOC((size_t)(numelements * sizeof(ANTLR3_BITWO… in antlr3BitsetNew()
104 if (bitset->blist.bits == NULL) in antlr3BitsetNew()
106 ANTLR3_FREE(bitset); in antlr3BitsetNew()
109 memset(bitset->blist.bits, 0, (size_t)(numelements * sizeof(ANTLR3_BITWORD))); in antlr3BitsetNew()
110 bitset->blist.length = numelements; in antlr3BitsetNew()
112 antlr3BitsetSetAPI(bitset); in antlr3BitsetNew()
117 return bitset; in antlr3BitsetNew()
121 antlr3BitsetSetAPI(pANTLR3_BITSET bitset) in antlr3BitsetSetAPI() argument
123 bitset->clone = antlr3BitsetClone; in antlr3BitsetSetAPI()
124 bitset->bor = antlr3BitsetOR; in antlr3BitsetSetAPI()
125 bitset->borInPlace = antlr3BitsetORInPlace; in antlr3BitsetSetAPI()
126 bitset->size = antlr3BitsetSize; in antlr3BitsetSetAPI()
127 bitset->add = antlr3BitsetAdd; in antlr3BitsetSetAPI()
128 bitset->grow = grow; in antlr3BitsetSetAPI()
129 bitset->equals = antlr3BitsetEquals; in antlr3BitsetSetAPI()
130 bitset->isMember = antlr3BitsetMember; in antlr3BitsetSetAPI()
131 bitset->numBits = antlr3BitsetNumBits; in antlr3BitsetSetAPI()
132 bitset->remove = antlr3BitsetRemove; in antlr3BitsetSetAPI()
133 bitset->isNilNode = antlr3BitsetIsNil; in antlr3BitsetSetAPI()
134 bitset->toIntList = antlr3BitsetToIntList; in antlr3BitsetSetAPI()
136 bitset->free = antlr3BitsetFree; in antlr3BitsetSetAPI()
142 pANTLR3_BITSET bitset; in antlr3BitsetCopy() local
145 // Allocate memory for the bitset structure itself in antlr3BitsetCopy()
147 bitset = (pANTLR3_BITSET) ANTLR3_MALLOC((size_t)sizeof(ANTLR3_BITSET)); in antlr3BitsetCopy()
149 if (bitset == NULL) in antlr3BitsetCopy()
165 bitset->blist.length = numElements; in antlr3BitsetCopy()
167bitset->blist.bits = (pANTLR3_BITWORD)ANTLR3_MALLOC((size_t)(numElements * sizeof(ANTLR3_BITWOR… in antlr3BitsetCopy()
169 if (bitset->blist.bits == NULL) in antlr3BitsetCopy()
171 ANTLR3_FREE(bitset); in antlr3BitsetCopy()
175 …ANTLR3_MEMCPY(bitset->blist.bits, blist->bits, (ANTLR3_UINT64)(numElements * sizeof(ANTLR3_BITWORD… in antlr3BitsetCopy()
179 return bitset; in antlr3BitsetCopy()
185 pANTLR3_BITSET bitset; in antlr3BitsetClone() local
187 // Allocate memory for the bitset structure itself in antlr3BitsetClone()
189 bitset = antlr3BitsetNew(ANTLR3_BITSET_BITS * inSet->blist.length); in antlr3BitsetClone()
191 if (bitset == NULL) in antlr3BitsetClone()
198 …ANTLR3_MEMCPY(bitset->blist.bits, inSet->blist.bits, (ANTLR3_UINT64)(inSet->blist.length * sizeof(… in antlr3BitsetClone()
202 return bitset; in antlr3BitsetClone()
209 pANTLR3_BITSET bitSet; in antlr3BitsetList() local
215 // so create a default bitset and then just add stuff in antlr3BitsetList()
218 bitSet = antlr3BitsetNew(0); in antlr3BitsetList()
224 bitSet->add(bitSet, (ANTLR3_UINT32)bit); in antlr3BitsetList()
233 /// Creates a new bitset with at least one 64 bit bset of bits, but as
245 /// - pANTLR3_BITSET = antlrBitsetOf(-1); Create empty bitset
255 pANTLR3_BITSET bitset; in antlr3BitsetLoad() local
258 // Allocate memory for the bitset structure itself in antlr3BitsetLoad()
260 // to include in the bitset, so we need at at least in antlr3BitsetLoad()
266 bitset = antlr3BitsetNew(0); in antlr3BitsetLoad()
268 if (bitset == NULL) in antlr3BitsetLoad()
280 if (bitset->blist.length <= count) in antlr3BitsetLoad()
282 bitset->grow(bitset, count+1); in antlr3BitsetLoad()
285 bitset->blist.bits[count] = *((inBits->bits)+count); in antlr3BitsetLoad()
290 // return the new bitset in antlr3BitsetLoad()
292 return bitset; in antlr3BitsetLoad()
297 /// Creates a new bitset with at least one element, but as
308 /// - pANTLR3_BITSET = antlrBitsetOf(-1); Create empty bitset
318 pANTLR3_BITSET bitset; in antlr3BitsetOf() local
322 // Allocate memory for the bitset structure itself in antlr3BitsetOf()
324 // to include in the bitset, so we need at at least in antlr3BitsetOf()
330 bitset = antlr3BitsetNew(0); in antlr3BitsetOf()
332 if (bitset == NULL) in antlr3BitsetOf()
342 antlr3BitsetAdd(bitset, bit); in antlr3BitsetOf()
347 // return the new bitset in antlr3BitsetOf()
349 return bitset; in antlr3BitsetOf()
355 pANTLR3_BITSET bitset; in antlr3BitsetOR() local
367 // Allocate memory for the newly ordered bitset structure itself. in antlr3BitsetOR()
369 bitset = antlr3BitsetClone(bitset1); in antlr3BitsetOR()
371 antlr3BitsetORInPlace(bitset, bitset2); in antlr3BitsetOR()
373 return bitset; in antlr3BitsetOR()
378 antlr3BitsetAdd(pANTLR3_BITSET bitset, ANTLR3_INT32 bit) in antlr3BitsetAdd() argument
384 if (word >= bitset->blist.length) in antlr3BitsetAdd()
386 growToInclude(bitset, bit); in antlr3BitsetAdd()
389 bitset->blist.bits[word] |= bitMask(bit); in antlr3BitsetAdd()
394 grow(pANTLR3_BITSET bitset, ANTLR3_INT32 newSize) in grow() argument
398 // Space for newly sized bitset - TODO: come back to this and use realloc?, it may in grow()
402 if (bitset->blist.bits != NULL) in grow()
406 …ANTLR3_MEMCPY((void *)newBits, (const void *)bitset->blist.bits, (size_t)(bitset->blist.length * s… in grow()
410 ANTLR3_FREE(bitset->blist.bits); in grow()
415 bitset->blist.bits = newBits; in grow()
416 bitset->blist.length = newSize; in grow()
420 growToInclude(pANTLR3_BITSET bitset, ANTLR3_INT32 bit) in growToInclude() argument
425 bl = (bitset->blist.length << 1); in growToInclude()
430 bitset->grow(bitset, bl); in growToInclude()
434 bitset->grow(bitset, nw); in growToInclude()
439 antlr3BitsetORInPlace(pANTLR3_BITSET bitset, pANTLR3_BITSET bitset2) in antlr3BitsetORInPlace() argument
450 // First make sure that the target bitset is big enough in antlr3BitsetORInPlace()
453 if (bitset->blist.length < bitset2->blist.length) in antlr3BitsetORInPlace()
455 growToInclude(bitset, (bitset2->blist.length * sizeof(ANTLR3_BITWORD))); in antlr3BitsetORInPlace()
460 if (bitset->blist.length < bitset2->blist.length) in antlr3BitsetORInPlace()
462 minimum = bitset->blist.length; in antlr3BitsetORInPlace()
471 bitset->blist.bits[i-1] |= bitset2->blist.bits[i-1]; in antlr3BitsetORInPlace()
482 antlr3BitsetSize(pANTLR3_BITSET bitset) in antlr3BitsetSize() argument
494 for (i = bitset->blist.length - 1; i>= 0; i--) in antlr3BitsetSize()
496 if (bitset->blist.bits[i] != 0) in antlr3BitsetSize()
500 if ((bitset->blist.bits[i] & (((ANTLR3_BITWORD)1) << bit)) != 0) in antlr3BitsetSize()
570 antlr3BitsetMember(pANTLR3_BITSET bitset, ANTLR3_UINT32 bit) in antlr3BitsetMember() argument
576 if (wordNo >= bitset->blist.length) in antlr3BitsetMember()
581 if ((bitset->blist.bits[wordNo] & bitMask(bit)) == 0) in antlr3BitsetMember()
592 antlr3BitsetRemove(pANTLR3_BITSET bitset, ANTLR3_UINT32 bit) in antlr3BitsetRemove() argument
598 if (wordNo < bitset->blist.length) in antlr3BitsetRemove()
600 bitset->blist.bits[wordNo] &= ~(bitMask(bit)); in antlr3BitsetRemove()
604 antlr3BitsetIsNil(pANTLR3_BITSET bitset) in antlr3BitsetIsNil() argument
608 for (i = bitset->blist.length -1; i>= 0; i--) in antlr3BitsetIsNil()
610 if (bitset->blist.bits[i] != 0) in antlr3BitsetIsNil()
632 antlr3BitsetNumBits(pANTLR3_BITSET bitset) in antlr3BitsetNumBits() argument
634 return bitset->blist.length << ANTLR3_BITSET_LOG_BITS; in antlr3BitsetNumBits()
638 * in this bitset. Used for error processing in the main as the bitset
645 antlr3BitsetToIntList (pANTLR3_BITSET bitset) in antlr3BitsetToIntList() argument
654 numInts = bitset->size(bitset) + 1; in antlr3BitsetToIntList()
655 numBits = bitset->numBits(bitset); in antlr3BitsetToIntList()
670 if (bitset->isMember(bitset, i) == ANTLR3_TRUE) in antlr3BitsetToIntList()