使用 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()
。
我已经使用 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()
。