private DFAState Build_New_DFA(List <List <int> > part, int state) { DFAState tmp = new DFAState(); tmp.finished = false; if (DFA_state_list[part[state][0]].finished) { tmp.finished = true; } foreach (int index in active_charset_index) { tmp.char_set[index] = Get_Group_Index(part, DFA_state_list[part[state][0]].char_set[index]); } return(tmp); }
private void Minimize_DFA() { // initializing the partitions List <List <int> > part = Initialize_Partition(); // structure the partitions Structure_Partition(ref part); // build minimum DFA CleanEmptyPart(ref part); for (int i = 0; i < part.Count; i++) { DFAState tmp = Build_New_DFA(part, i); Min_DFA_state_list.Add(tmp); } }