获取具有AST访问者clang的功能声明类型

Get function declaration type with AST visitor clang

本文关键字:功能 声明 类型 clang 访问者 AST 获取      更新时间:2023-10-16

我已经使用clang实现了AST访问者。使用此代码,我可以检索函数呼叫名称Correclty。

virtual bool VisitFunctionDecl(FunctionDecl *func)
{
    numFunctions++;
    string funcName = func->getNameInfo().getName().getAsString();
string funcType = func->getType().getAsString();
APIs << funcType << endl;
    APIs << "n" << funcName <<": ";
    return true;
}

我还想提取函数声明类型。例如int my_func(int a,int b){..}我想提取类型INT。它实现的方式使我返回了除名称外的整个函数声明。上述functize中的代码将返回int(int a,int b)

我该如何修复?谢谢!

听起来您正在尝试找到 return 类型,而不是声明的函数类型。为此使用getReturnType()