fsmbase.cc (ragel-7.0.0.11) | : | fsmbase.cc (ragel-7.0.0.12) | ||
---|---|---|---|---|
skipping to change at line 506 | skipping to change at line 506 | |||
for ( NfaTransList::Iter st = *state->nfaOut; st.lte(); st++ ) | for ( NfaTransList::Iter st = *state->nfaOut; st.lte(); st++ ) | |||
markReachableFromHere( st->toState ); | markReachableFromHere( st->toState ); | |||
} | } | |||
if ( state->stateDictEl != 0 ) { | if ( state->stateDictEl != 0 ) { | |||
for ( StateSet::Iter ss = state->stateDictEl->stateSet; ss.lte(); ss++ ) | for ( StateSet::Iter ss = state->stateDictEl->stateSet; ss.lte(); ss++ ) | |||
markReachableFromHere( *ss ); | markReachableFromHere( *ss ); | |||
} | } | |||
} | } | |||
/* Any transitions to another state? */ | ||||
bool FsmAp::anyRegularTransitions( StateAp *state ) | ||||
{ | ||||
for ( TransList::Iter trans = state->outList; trans.lte(); trans++ ) { | ||||
if ( trans->plain() ) { | ||||
StateAp *toState = trans->tdap()->toState; | ||||
if ( toState != 0 ) | ||||
return true; | ||||
} | ||||
else { | ||||
for ( CondList::Iter cond = trans->tcap()->condList; cond | ||||
.lte(); cond++ ) { | ||||
StateAp *toState = cond->toState; | ||||
if ( toState != 0 ) | ||||
return true; | ||||
} | ||||
} | ||||
} | ||||
return false; | ||||
} | ||||
void FsmAp::markReachableFromHereStopFinal( StateAp *state ) | void FsmAp::markReachableFromHereStopFinal( StateAp *state ) | |||
{ | { | |||
/* Base case: return; */ | /* Base case: return; */ | |||
if ( state->stateBits & STB_ISMARKED ) | if ( state->stateBits & STB_ISMARKED ) | |||
return; | return; | |||
/* Set this state as processed. We are going to visit all states that thi s | /* Set this state as processed. We are going to visit all states that thi s | |||
* state has a transition to. */ | * state has a transition to. */ | |||
state->stateBits |= STB_ISMARKED; | state->stateBits |= STB_ISMARKED; | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 21 lines changed or added |