Я пытаюсь проанализировать некоторый код C++, используя Clang. Для следующего кода я могу получить Expr* x
в качестве аргумента f-> bar(x)
из AST. Теперь я хочу найти объявление x
, чтобы получить его начальное значение, но я не уверен, как это сделать. Я также просмотрел документацию Expr
здесь http://clang.llvm.org/doxygen/classclang_1_1Expr.html, но я не нашел ничего полезного.Как найти объявление переменной с помощью Clang?
struct foo {
int bar(int x) { return x; }
};
int main(){
foo *f;
int x = 0, y = 0;
int y = f->bar(x);
return 0;
}
вы смотрели на http://clang.llvm.org/docs/LibASTMatchersTutorial.html ли? – sfrehse
Нет, не знаю. На самом деле я пишу чекер для Clang, это для создания нового инструмента для Clang! Но в любом случае, спасибо. Я могу использовать его! – media