BitVecMatches
Description
Match bitvector against pattern with wildcards. Wildcards allow flexible pattern matching where some positions can be “any bit”.
Parameters
| Name | Direction | Description |
|---|---|---|
bv |
in | Bitvector to match against |
pattern |
in | Pattern bitvector to match |
wildcard |
in | Wildcard bitvector (1 = wildcard position, 0 = exact match required) |
Usage example (from documentation)
bool matches = BitVecMatches(&data, &pattern, &wildcard);Success
true if pattern matches with wildcards
Failure
false if lengths disagree or any non-wildcard bit differs.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
BitVec.c:1802:
}
bool BitVecMatches(BitVec *bv, BitVec *pattern, BitVec *wildcard) {
ValidateBitVec(bv);
ValidateBitVec(pattern); DefaultAllocator alloc = DefaultAllocatorInit();
WriteFmt("Testing BitVecMatches basic functionality\n");
BitVec source = BitVecInit(ALLOCATOR_OF(&alloc)); BitVecPush(&wildcard, false);
result = result && BitVecMatches(&source, &pattern, &wildcard);
BitVecDeinit(&source); DefaultAllocator alloc = DefaultAllocatorInit();
WriteFmt("Testing BitVecMatches(NULL, pattern, wildcard) - should fatal\n");
BitVec pattern = BitVecInit(ALLOCATOR_OF(&alloc));
BitVec wildcard = BitVecInit(ALLOCATOR_OF(&alloc)); BitVecPush(&pattern, true);
BitVecPush(&wildcard, false);
BitVecMatches(NULL, &pattern, &wildcard);
BitVecDeinit(&pattern);
BitVecDeinit(&wildcard);
Last updated on