docs: def add(self, *nonterminals):
          # type: (Iterable[Type[Nonterminal]]) -> None
          """
          Add nonterminals into the set.
          :param nonterminals: Nonterminals to insert.
          :raise NotNonterminalException: If the object doesn't inherit from Nonterminal class.
          """
          for nonterm in nonterminals:
              if nonterm in self:
                  continue
              _NonterminalSet._control_nonterminal(nonterm)
              super().add(nonterm)
              self._assign_map[nonterm] = set()