c-index-test.c revision 2d4d629d8a0de5112c7ae9d05c03ddbf6dcd956a
150398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroff
250398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroff#include "clang-c/Index.h"
389922f86f4e7da383af2a62ef04ad8b93b941220Steve Naroff#include <stdio.h>
489922f86f4e7da383af2a62ef04ad8b93b941220Steve Naroff
589922f86f4e7da383af2a62ef04ad8b93b941220Steve Naroffstatic void PrintDecls(CXTranslationUnit Unit, CXCursor Cursor) {
62d4d629d8a0de5112c7ae9d05c03ddbf6dcd956aSteve Naroff  if (clang_isDeclaration(Cursor.kind)) {
72d4d629d8a0de5112c7ae9d05c03ddbf6dcd956aSteve Naroff    printf("%s => %s", clang_getKindSpelling(Cursor.kind),
82d4d629d8a0de5112c7ae9d05c03ddbf6dcd956aSteve Naroff                       clang_getDeclSpelling(Cursor.decl));
92d4d629d8a0de5112c7ae9d05c03ddbf6dcd956aSteve Naroff    printf(" (%s,%d:%d)\n", clang_getCursorSource(Cursor),
102d4d629d8a0de5112c7ae9d05c03ddbf6dcd956aSteve Naroff                            clang_getCursorLine(Cursor),
112d4d629d8a0de5112c7ae9d05c03ddbf6dcd956aSteve Naroff                            clang_getCursorColumn(Cursor));
122d4d629d8a0de5112c7ae9d05c03ddbf6dcd956aSteve Naroff  }
1389922f86f4e7da383af2a62ef04ad8b93b941220Steve Naroff}
1450398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroff
1550398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroff/*
1650398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroff * First sign of life:-)
1750398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroff */
1850398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroffint main(int argc, char **argv) {
1950398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroff  CXIndex Idx = clang_createIndex();
2050398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroff  CXTranslationUnit TU = clang_createTranslationUnit(Idx, argv[1]);
2189922f86f4e7da383af2a62ef04ad8b93b941220Steve Naroff  clang_loadTranslationUnit(TU, PrintDecls);
2250398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroff  return 1;
2350398199fb10e196a8d92fbf7a062dbe42ed88fdSteve Naroff}
24