Esempio n. 1
0
 def _validate_transition_invalid_stack_symbols(self, start_state,
                                                stack_symbol):
     """Raise an error if transition stack symbols are invalid."""
     if stack_symbol not in self.stack_symbols:
         raise exceptions.InvalidSymbolError(
             'state {} has invalid transition stack symbol {}'.format(
                 start_state, stack_symbol))
Esempio n. 2
0
 def _validate_transition_invalid_symbols(self, start_state, paths):
     """Raise an error if transition input symbols are invalid."""
     for input_symbol in paths.keys():
         if input_symbol not in self.input_symbols:
             raise exceptions.InvalidSymbolError(
                 'state {} has invalid transition symbol {}'.format(
                     start_state, input_symbol))
Esempio n. 3
0
 def _validate_transition_invalid_input_symbols(self, start_state,
                                                input_symbol):
     """Raise an error if transition input symbols are invalid."""
     if input_symbol not in self.input_symbols and input_symbol != 'ε':
         raise exceptions.InvalidSymbolError(
             'state {} has invalid transition input symbol {}'.format(
                 start_state, input_symbol))
Esempio n. 4
0
 def _validate_initial_stack_symbol(self):
     """Was CHANGED Raise an error if initial stack symbol is invalid."""
     for i in self.initial_stack_symbol:
         if i not in self.stack_symbols:
             raise exceptions.InvalidSymbolError(
                 'initial stack symbol {} is invalid'.format(
                     self.initial_stack_symbol))
Esempio n. 5
0
 def _validate_transition_symbols(self, state, paths):
     for tape_symbol in paths.keys():
         if tape_symbol not in self.tape_symbols:
             raise exceptions.InvalidSymbolError(
                 'transition symbol {} for state {} is not valid'.format(
                     tape_symbol, state
                 )
             )
Esempio n. 6
0
 def _validate_transition_result(self, result):
     result_state, result_symbol, result_direction = result
     if result_state not in self.states:
         raise exceptions.InvalidStateError(
             'result state is not valid ({})'.format(result_state))
     if result_symbol not in self.tape_symbols:
         raise exceptions.InvalidSymbolError(
             'result symbol is not valid ({})'.format(result_symbol))
     self._validate_transition_result_direction(result_direction)
Esempio n. 7
0
 def _validate_transition_invalid_symbols(self, start_state, paths):
     for input_symbol in paths.keys():
         if input_symbol not in self.input_symbols and input_symbol != '':
             raise exceptions.InvalidSymbolError(
                 'state {} has invalid transition symbol {}'.format(
                     start_state, input_symbol))
Esempio n. 8
0
 def _validate_blank_symbol(self):
     """Raise an error if blank symbol is not a tape symbol."""
     if self.blank_symbol not in self.tape_symbols:
         raise exceptions.InvalidSymbolError(
             'blank symbol {} is not a tape symbol'.format(
                 self.blank_symbol))