Beispiel #1
0
 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)
Beispiel #2
0
    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)
Beispiel #3
0
 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)