# HG changeset patch # User Masataka Kohagura # Date 1451118205 -32400 # Node ID 35608dc85e833a48322ad94e605cf4b5012383de # Parent 9f96223f54aa707425110dc842214bf2c5d50b7d add test diff -r 9f96223f54aa -r 35608dc85e83 regexParser/Makefile --- a/regexParser/Makefile Sat Dec 26 13:51:11 2015 +0900 +++ b/regexParser/Makefile Sat Dec 26 17:23:25 2015 +0900 @@ -25,6 +25,7 @@ test: ./$(TARGET) -regex 'a' ./$(TARGET) -regex 'ab' + ./$(TARGET) -regex 'a*b' ./$(TARGET) -regex 'ab*' ./$(TARGET) -regex '(ab)*' ./$(TARGET) -regex '(ab)*c' diff -r 9f96223f54aa -r 35608dc85e83 regexParser/subsetConstraction.cc --- a/regexParser/subsetConstraction.cc Sat Dec 26 13:51:11 2015 +0900 +++ b/regexParser/subsetConstraction.cc Sat Dec 26 17:23:25 2015 +0900 @@ -229,6 +229,7 @@ TGValue stateAllocate(NodePtr n,TGValue tgv) { if (n->tokenType == '+') { TGValue tgvLeft = stateAllocate(n->left,tgv); + n->left->state = createState(tgvLeft,n->left); if (tgvLeft.asterisk) { TGValue tgvRight = tgvLeft; tgvRight.asterisk = false; @@ -339,9 +340,12 @@ printf("state : %lx\n",state->bitState.bitContainer); long nodeNumber = 0; if (state->node) { - printf("node : %c %lx -> %d\n",state->node->tokenType,state->bitState.bitContainer,state->node->nextStateNum); + if (state->node->nextState) { + printf("node : %c %lx -> %lx\n",state->node->tokenType, + state->bitState.bitContainer,state->node->nextState->bitState.bitContainer); if (state->node->state) nodeNumber = state->node->state->bitState.bitContainer; + } } if (state->cc) { printCharacterClass(state->cc,nodeNumber,4);