我有一个AST使用者获得所有与
结构的TagDeclclang::TagDecl::isStruct()
如何在类似FunctionDecl类的数组中获取结构(声明,类型)的成员:
clang::FunctionDecl::getParamDecl(unsigned i)
或以其他方式?
答案 0 :(得分:3)
必须将TagDecl
强制转换为具有获取成员/字段信息的方法的RecordDecl
。
clang::TagDecl*t;
clang::RecordDecl*r;
clang::RecordDecl::field_iterator jt;
for(jt = r->field_begin(); jt != r->field_end();++jt)
{
std::cout << jt->getType().getAsString() << " " << jt->getNameAsString() << std::endl;
}
答案 1 :(得分:-1)
#cast int to string
adclicksDF['userId'] = adclicksDF['userId'].astype(str)
adCategoryclicks = adclicksDF[['timestamp','adId','adCategory','userId','adCount']]
agrupadoDF = adCategoryclicks.groupby(pd.Grouper(key='timestamp', freq='1H'))
.agg({'adCount': ['count','sum'],
'userId': ', '.join,
'adCategory': ', '.join})
agrupadoDF.columns = ['adCategory','count','sum','userId']
print (agrupadoDF)
adCategory count sum \
timestamp
2016-05-26 15:00:00 electronics, movies, computers 3 3
2016-05-26 16:00:00 fashion, clothing 2 2
userId
timestamp
2016-05-26 15:00:00 611, 1874, 2139
2016-05-26 16:00:00 212, 1027
您应该将此函数添加到您扩展到ASTConsumer的类中。
在该上下文中存储声明
每个声明上下文都可以包含一些声明。对于 例如,C ++类(由RecordDecl表示)包含各种 成员函数,字段,嵌套类型等。所有这些 声明将存储在DeclContext中,并且可以 通过[DeclContext :: decls_begin()迭代声明, DeclContext :: decls_end())。这种机制提供了以源为中心的 在上下文中查看声明。