def set_tag(self, name, tag_class):
        """
        Define a new tag parser method
        :param name: The name of the tag
        :type  name: str

        :param tag_class: The Tag class, this must be a subclass of base parser.tags.Tag
        :type  tag_class: Tag
        """
        # Has this tag already been defined?
        if name in self._tags:
            self._log.warn('Overwriting an existing Tag class: {tag}'.format(tag=name))

        # Make sure the tag class adhered to the base Tag interface
        if not issubclass(tag_class, Tag):
            self._log.error('Tag class must implement the base Tag interface, please review the documentation on '
                            'defining custom tags. (Refusing to set the tag "{tag}")'.format(tag=name))
            return

        self._tags[name] = tag_class