# HG changeset patch # User Masataka Kohagura # Date 1453524693 -32400 # Node ID e60dd2fa34099ea820dfe7e785fb67ac4151a8cd # Parent 9493800265a81c25f3eff3ac856345f6dc3d5659 remove SCValue diff -r 9493800265a8 -r e60dd2fa3409 regexParser/subsetConstruction.cc --- a/regexParser/subsetConstruction.cc Sat Jan 23 12:34:50 2016 +0900 +++ b/regexParser/subsetConstruction.cc Sat Jan 23 13:51:33 2016 +0900 @@ -198,6 +198,18 @@ bitvector を index とした配列に BitVectorPtr を格納 state に対応する NodePtr を */ +StatePtr createState(TransitionGeneratorPtr tg,BitVector bi) { + StatePtr s = NEW(State); + s->stateNum = tg->totalStateCount++; + s->next = NULL; + tg->stateEnd->next = s; + tg->stateEnd = s; + s->bitState = bi; + s->cc = NULL; + s->node = NULL; + return s; +} + StatePtr createState(TGValue tgv,NodePtr n) { BitVector bi = createBitVector(tgv.tg->totalStateCount); StatePtr s = createState(tgv.tg,bi); @@ -211,18 +223,6 @@ return s; } -SCValue createState(TransitionGeneratorPtr tg,BitVector bi) { - StatePtr s = NEW(State); - s->stateNum = tg->totalStateCount++; - s->next = NULL; - tg->stateEnd->next = s; - tg->stateEnd = s; - s->bitState = bi; - s->cc = NULL; - s->node = NULL; - return scv; -} - /** pass 1 : 正規表現に必要な状態を探して、それぞれに番号を割り振る 前が * でない + は新しく状態を作る @@ -352,17 +352,6 @@ } } -SCValue createSCValue(TGValue tgv) { - SCValue scv; - scv.tg = tgv.tg; - scv.stateTop = tgv.tg->stateList; - scv.stateEnd = scv.stateTop; - while (scv.stateEnd->next) { - scv.stateEnd = scv.stateEnd->next; - } - return scv; -} - /** 現在のステートに含まれる組み合わせ状態をとってくる 組み合わされた個々の charclass をmerge して新しい charclass をつくり、組み合わせ状態に登録する @@ -391,7 +380,7 @@ void subsetConstruction(TransitionGeneratorPtr tg) { for (;tg->stateTop;tg->stateTop = tg->stateTop->next) { - CharClassWalkerPtr cw = createCharClassWalker(state->cc); + CharClassWalkerPtr cw = createCharClassWalker(tg->stateTop->cc); while (hasNext(cw)) { CharClassPtr cc = getNext(cw); BitVector bi = cc->nextState;