Я использую реализацию класса ASTVisitor для получения информации об узлах CDT в моем коде. Это работает как задумано, однако я не могу понять, как извлечь узел BodyStatement узла CASTFunctionCallExpression из другого файла или любых других узлов CDTName, на которые есть ссылки, из других файлов (например, константы, на которую ссылаются, из другого файла, для которого я не могу получить значение константы - Я скучаю по нужному узлу).
Например, у меня есть этот код:
main.c
#include <stdlib.h>
#include <stdio.h>
#include "functions.h"
int main(void) {
func1();
func2();
return 0;
}
functions.h
void func1(void);
void func2(void);
functions.c
#include "functions.h"
void func1(void) {
printf("Function 1!\n");
}
void func2(void) {
printf("Function 2!\n");
}
Теперь мне нужно получить тела функций func1 и func2, а мой ASTVisitor собирает информацию из исходного файла main.c.
Есть ли какой-нибудь возможный способ получения значений ссылочных CDTNames (вызовы функций, константы и т. Д.) - тел функций (CASTCompoundStatements), постоянных значений? Я попытался отладить значения CASTFunctionCallExpression ссылочных функций, но не могу найти информацию об их происхождении и, следовательно, их телах. Есть ли для этого класс поиска?