view c/regexParser/bitVector.cc @ 137:c292c67b3100 pairPro

add generateTransitionList function
author masa
date Fri, 04 Dec 2015 20:32:09 +0900
parents 166136236891
children ea2810db8d87
line wrap: on
line source

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "bitVector.h"
const BitVectorPtr allocateBitVector();

BitVectorListPtr createBitVector(NodePtr n) {
    BitVectorListPtr nextBvl = allocateBitVectorList();
    nextBvl->bi = bitSet(nextBvl,n->nodeNumber);
    return nextBvl;
}

const BitVectorPtr allocateBitVector() {
    BitVectorPtr bi = (BitVectorPtr)malloc(sizeof(BitVector));
    bi->bitContainer = 0;
    return bi;
}

void bitSet(BitVectorPtr bi, int bitSetPosition) {
    unsigned long tmp = 1 << (bitSetPosition % BITBLOCK);
    bi->bitContainer = bi->bitContainer | tmp;
    return;
}

void bitPrint(BitVectorPtr bi) {
    unsigned long vec = bi->bitContainer;
    for (int j = 0; j < BITBLOCK; j++) {
        putchar((vec & 1)?'1:'0');
        vec >>= 1;
    }
    printf("\n");
}