def _validate_transition_symbols(self, state, paths): for tape_symbols in paths.keys(): length = len(tape_symbols) for tape_symbol in tape_symbols: if tape_symbol not in self.tape_symbols: raise exceptions.InvalidSymbolError( 'symbol {} v prechodovej funkcii pre stav {} nie je platný' .format(tape_symbol, state)) self._validate_transition_symbols_length(length, paths)
def _validate_transition_result(self, result): result_state, result_symbol, result_direction = result if result_state not in self.states: raise exceptions.InvalidStateError( 'stav ({}) nie je platný'.format(result_state)) if result_symbol not in self.tape_symbols: raise exceptions.InvalidSymbolError( 'symbol ({}) nie je platný'.format(result_symbol)) self._validate_transition_result_direction(result_direction)
def _validate_transition_result(self, result): length = int((len(result) - 1) / 2) result_state = result[0] if result_state not in self.states: raise exceptions.InvalidStateError( 'stav ({}) nie je platný'.format(result_state)) i = 1 j = length + 1 while i <= length: result_symbol = result[i] result_direction = result[j] i += 1 j += 1 if result_symbol not in self.tape_symbols: raise exceptions.InvalidSymbolError( 'symbol ({}) nie je platný'.format(result_symbol)) self._validate_transition_result_direction(result_direction)