您好我已经使用clang实现了AST访问者。它可以在声明变量时正确检测,但有时它会为变量返回错误的类型。例如,如果变量声明为size_t或char32_t,甚至是george,则将其类型返回为int。 我的代码在这里:
virtual bool VisitVarDecl(VarDecl *var)
{
numVariables++;
string varName = var->getQualifiedNameAsString();
string varType = var->getType().getAsString();
cout << "VisitVarDecl: " << varName << " of type " << varType << "\n";
APIs << varType << ", ";
return true;
}
任何人都知道为什么?
我希望我的代码能够识别任何变量声明,但即使是虚构的类型,例如test i; george x;
谢谢