public Tag FindTag(string name, TagKind kind, string ctags_output)
        {
            SemiTag semiTag = new SemiTag(name, kind);

            if (cache.ContainsKey(semiTag))
            {
                return(cache[semiTag]);
            }
            else
            {
                string[] ctags_lines = ctags_output.Split('\n');
                Tag      tag         = BinarySearch(ctags_lines, kind, name);
                cache.Add(semiTag, tag);

                return(tag);
            }
        }
		public Tag FindTag (string name, TagKind kind, string ctags_output)
		{
			SemiTag semiTag = new SemiTag (name, kind);
			
			if (cache.ContainsKey (semiTag))
				return cache[semiTag];
			else {
				string[] ctags_lines = ctags_output.Split ('\n');
				Tag tag = BinarySearch (ctags_lines, kind, name);
				cache.Add (semiTag, tag);
				
				return tag;
			}
		}