def addEdge(self, start_node, letter, destination_node): edge = [letter, destination_node] if edge not in self.edges[start_node]: self.edges[start_node].append(edge) else: Log.warning( f'Treid to add an already existing edge to the node {start_node}' )
def removeDeadStates(self): deadStates = list(set(self.states).difference(self.getAliveStates())) Log.warning(f'Dead states: {deadStates}') for state in self.states: i = 0 while i < len(self.edges[state]): if self.edges[state][i][1] in deadStates: self.edges[state].remove(self.edges[state][i]) else: i += 1 for state in deadStates: Log.succes(f'Removed (dead) {state}') self.removeState(state)