view regexParser/transition.cc @ 188:109d22faf7b5 pairPro

remove errors and warnings
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Fri, 25 Dec 2015 02:57:21 +0900
parents ef798db705e9
children 3e8e5780ad4a
line wrap: on
line source

#include <stdlib.h>
#include "transition.h"

node::StatePtr searchState(node::StatePtr stateArray, node::StatePtr state) {
    while(stateArray) {
        if (stateArray->bitState.bitContainer == state->bitState.bitContainer) {
            return stateArray;
        }
        if (stateArray->next == NULL) {
            node::StatePtr s = createState(state->bitState);
            stateArray = appendState(stateArray,s);
            return stateArray;
        }
        stateArray = stateArray->next;
    }
    return stateArray;
}

node::StatePtr createState(BitVector bi) {
    node::StatePtr state = NEW(node::State);
    state->bitState = bi;
    state->node = NEW(Node);
    return state;
}

node::StatePtr appendState(node::StatePtr x,node::StatePtr y) {
    node::StatePtr x0 = createState(x->bitState);
    node::StatePtr x1 = x0;
    for(;;) {
        if (x->next == NULL) {
            x1->next = y;
            return x0;
        }
        x = x->next;
        x1->next = createState(x->bitState);
        x1 = x1->next;
    }
    return x0;
}