Я использую Clang Engine для разбора кода C.Я знаю, как проверить текст под курсором директива препроцессора или нет.Но как получить значение константы препроцессора под курсором?
#include <stdio.h>
#include <clang-c/Index.h>
#define TEST "test"
int main()
{
char *source_filename = "/home/user1/projects/prep/prep.c";
CXIndex index;
CXTranslationUnit tu;
CXFile file;
CXSourceLocation loc;
CXCursor cursor;
index = clang_createIndex(0, 0);
tu = clang_createTranslationUnitFromSourceFile(index, source_filename,
0, NULL, 0, NULL);
file = clang_getFile(tu, source_filename);
loc = clang_getLocation(tu, file, 4, 9);
cursor = clang_getCursor(tu, loc);
if (clang_isPreprocessing(cursor.kind)) {
/* How to get TEST constant value? */
}
clang_disposeTranslationUnit(tu);
clang_disposeIndex(index);
}
Еще один вопрос.Должен ли я освободить переменные типов CXFile, CXSourceLocation, CXCursor после работы.Я не могу найти подходящие clang_dispose
функции для них.