Skip to content

Commit

Permalink
Add implementation hierarchy.
Browse files Browse the repository at this point in the history
  • Loading branch information
jcranmer committed May 31, 2011
1 parent 5a50f6e commit d3f489a
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion xref-tools/cxx-clang/dxr-index.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,13 @@ void processTypedef(CXCursor cursor) {
"', '" << (simple ? cursorLocation(typeRef) : "") << "');" << std::endl;
}

void processInheritance(CXCursor base, CXCursor clazz, bool direct = 1) {
sql_output << "INSERT INTO impl('tbname', 'tloc', 'tcname', 'tcloc', "
"'direct') VALUES ('" << getFQName(clazz) << "', '" <<
cursorLocation(clazz) << "', '" << getFQName(base) << "', '" <<
cursorLocation(base) << "', " << (direct ? "1" : "0") << ");" << std::endl;
}

CXChildVisitResult mainVisitor(CXCursor cursor, CXCursor parent, void *data) {
CXCursorKind kind = clang_getCursorKind(cursor);

Expand All @@ -271,7 +278,7 @@ CXChildVisitResult mainVisitor(CXCursor cursor, CXCursor parent, void *data) {
return CXChildVisit_Continue;

// Dispatch the code to the main processors
if (!clang_isDeclaration(kind))
if (!clang_isDeclaration(kind) && kind != CXCursor_CXXBaseSpecifier)
return CXChildVisit_Continue;
switch (kind) {
case CXCursor_StructDecl:
Expand All @@ -298,6 +305,9 @@ CXChildVisitResult mainVisitor(CXCursor cursor, CXCursor parent, void *data) {
case CXCursor_TypedefDecl:
processTypedef(cursor);
return CXChildVisit_Recurse;
case CXCursor_CXXBaseSpecifier:
processInheritance(cursor, parent);
return CXChildVisit_Recurse;
case CXCursor_UnexposedDecl:
case CXCursor_TemplateTypeParameter:
case CXCursor_Namespace:
Expand Down

0 comments on commit d3f489a

Please sign in to comment.