view regexParser/subsetConstraction.h @ 180:d97bcab546e8 pairPro

implement getNext
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Thu, 24 Dec 2015 17:56:28 +0900
parents 3be0fbcd4b52
children 3c4db09b8581
line wrap: on
line source

#include "transition.h"
#define INIT_STATE_BIT 0
#define END_STATE_BIT 63
typedef struct stateStack {
    BitVector state;
    struct stateStack *next;
} StateStack, *StateStackPtr;

typedef struct transitionGenerator {
    long stateMax;
    StateStack stack;
    StatePtr state;
    StatePtr stateArray;
    StatePtr stateArrayLast;
    StatePtr currentState;
    StatePtr nextState;
} TransitionGenerator, *TransitionGeneratorPtr;

typedef struct tgValue {
    bool asterisk;
    TransitionGeneratorPtr tg;
} TGValue, *TGValuePtr;

enum charClassStackState {
    LEFT,
    SELF,
    RIGHT
}

typedef struct charClassStack {
    charClassStackState turn;
    CharClassPtr cc;
    struct charClassStack *next;
} CharClassStack, *CharClassStackPtr;

typedef struct charClassWalker {
    CharClassStackPtr stack;
    CharClassPtr next;
} CharClassWalker, *CharClassWalkerPtr;

CharClassPtr charClassMerge(CharClassPtr cc,unsigned long begin, unsigned long end, BitVector nextState);