Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.56 KB | None | 0 0
  1. set <State*> move(set<State*>& states, char c) {
  2. set<State*> ret;
  3. stack <State*> states_stack;
  4. for (State *state : states)
  5. states_stack.push(state);
  6. while (!states_stack.empty()) {
  7. State* curr_state = states_stack.top();
  8. states_stack.pop();
  9. map<char, vector<State*> >& transitions = curr_state->get_transitions();
  10. map<char, vector<State*> >::iterator start = transitions.find(c);
  11. if(start != transitions.end())
  12. for (State * s : start->second)
  13. ret.insert(s->get_epsilon_closure().begin(), s->get_epsilon_closure().end());
  14. }
  15. return ret;
  16. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement