def find_symbol_module(symbol)
result = nil
case symbol
when /^::/ then
result = RDoc::TopLevel.find_class_or_module(symbol)
when /^(\w+):+(.+)$/
suffix = $2
top = $1
searched = self
loop do
mod = searched.find_module_named(top)
break unless mod
result = RDoc::TopLevel.find_class_or_module(mod.full_name + '::' + suffix)
break if result || searched.is_a?(RDoc::TopLevel)
searched = searched.parent
end
else
searched = self
loop do
result = searched.find_module_named(symbol)
break if result || searched.is_a?(RDoc::TopLevel)
searched = searched.parent
end
end
result
end