code: def remove(self, *nonterminals):
          # type: (Iterable[Type[Nonterminal]]) -> None
          
          for nonterm in set(nonterminals):
              _NonterminalSet._control_nonterminal(nonterm)
              if nonterm not in self:
                  raise KeyError('Nonterminal ' + nonterm.__name__ + ' is not inside')
              self._grammar.rules.remove(*self._assign_map[nonterm], _validate=False)
              del self._assign_map[nonterm]
              if self._grammar.start is nonterm:
                  del self._grammar.start
              super().remove(nonterm)
docs: Remove nonterminals from the set.
          Removes also rules using this nonterminal.
          Set start symbol to None if deleting nonterminal is start symbol at the same time.
          :param nonterminals: Nonterminals to remove.