# File lib/yard/docstring.rb, line 163
    def create_tag(tag_name, tag_buf)
      if tag_buf =~ /\A\s*(?:(\S+)\s+)?\(\s*see\s+(\S+)\s*\)\s*\Z/
        return create_ref_tag(tag_name, $1, $2)
      end

      tag_factory = Tags::Library.instance
      tag_method = "#{tag_name}_tag"
      if tag_name && tag_factory.respond_to?(tag_method)
        add_tag(*[tag_factory.send(tag_method, tag_buf)].flatten)
      else
        log.warn "Unknown tag @#{tag_name}" + (object ? " in file `#{object.file}` near line #{object.line}" : "")
      end
    rescue Tags::TagFormatError
      log.warn "Invalid tag format for @#{tag_name}" + (object ? " in file `#{object.file}` near line #{object.line}" : "")
    end