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

Get function declaration type with AST visitor clang

我已经使用 Clang 实现了 AST 访问器。 使用这段代码,我可以正确检索函数调用名称。

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;

}

我还想提取函数声明类型。例如 整数 my_func(整数 a, 整数 b){..} 我想提取类型 int。它的实现方式 return 是我的整个函数声明,除了名称。上面这段代码在 funcType 中会 return int (int a, int b)

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

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