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