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))
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))
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))
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))
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 ) )
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)
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))
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))