使用AST visitor clang获取函数声明类型

时间:2016-06-20 00:31:04

标签: c++ clang abstract-syntax-tree llvm-clang libclang

我使用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类型。它实现它的方式返回除名称之外的整个函数声明。 funcType中的上述代码将返回int(int a,int b)

我该如何解决这个问题? 谢谢!

1 个答案:

答案 0 :(得分:1)

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