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