void ClassBuffer::SearchTextBuffer (TextBuffer* tb, const char* path) { int beg = 0; for (;;) { char* className = FindClassDecl(tb, beg); if (className == nil) { break; } ClassInfo* info = _classes->Find(className); if (info == nil) { info = new ClassInfo(className, path, tb->LineNumber(beg)); _classes->Include(info); } else { info->Path(path); info->LineNumber(tb->LineNumber(beg)); } for (;;) { char* parentName = ParentName(tb, beg); if (parentName == nil) { break; } ClassInfo* parentInfo = _classes->Find(parentName); if (parentInfo == nil) { parentInfo = new ClassInfo(parentName); _classes->Include(parentInfo); } info->IncludeParent(parentInfo); parentInfo->IncludeChild(info); delete parentName; } delete className; } }
const char* ClassBuffer::Path (const char* className) { ClassInfo* info = _classes->Find(className); return (info == nil) ? nil : info->Path(); }