docs: def execute_once(self):
          """One step of execution."""
          symbol = self.tape.get(self.head, self.EMPTY_SYMBOL)
  
          index = self.alphabet.index(symbol)
          rule = self.states[self.state][index]
  
          if rule is None:
              raise RuntimeError('Unexpected symbol: ' + symbol)
  
          self.tape[self.head] = rule[0]
  
          if rule[1] == 'L':
              self.head -= 1
          elif rule[1] == 'R':
              self.head += 1
  
          self.state = rule[2]