Logo Search packages:      
Sourcecode: lttoolbox version File versions  Download package

void Transducer::oneOrMore ( int const   epsilon_tag = 0  ) 

Make a transducer cyclic (link final states with initial state with empty transductions)

Parameters:
epsilon_tag the tag to take as epsilon

Definition at line 396 of file Transducer.C.

References finals, initial, joinFinals(), linkStates(), and newState().

Referenced by RegExpCompiler::Esp(), RegExpCompiler::Term(), and zeroOrMore().

{
  joinFinals(epsilon_tag);
  int state = newState();
  linkStates(state, initial, epsilon_tag);
  initial = state;

  state = newState();
  linkStates(*finals.begin(), state, epsilon_tag);
  finals.clear();
  finals.insert(state);
  linkStates(state, initial, epsilon_tag);
}


Generated by  Doxygen 1.6.0   Back to index