[cfe-dev] Decl iterators
silhape2 at fel.cvut.cz
silhape2 at fel.cvut.cz
Mon Feb 14 05:06:28 PST 2011
Dear clang developers,
I have a problem when I am trying to do some analysis with clang. I
need to get all typedef decls that are inside the class or struct. I
need this for my bachelor thesis. The part of source code of the file
I want to analyse is:
class state_1 : sc :: simple_state< state_1, DU>
{
state_1() { cout<<"Chcete zformatovat vas disk (a/n) ? \n";}
~state_1() {}
typedef sc::transition< EvN, state_2 > reactions;
};
It is no problem to get constructor and destructor and other methods
in the class. The problem is to reach the typedef decl.
The only way I found was to create my own iterator and to put it into
the header files of clang(DeclCXX.h). I created the iterator by using
this code:
typedef specific_decl_iterator<TypedefDecl> typedef_iterator;
/// it_begin - Typedef begin iterator. Iterates in the order the Typedefs
/// were declared.
typedef_iterator td_begin() const {
return typedef_iterator(decls_begin());
}
/// it_end - Typedef end iterator.
typedef_iterator td_end() const {
return typedef_iterator(decls_end());
}
My question is whether there is a better way how to iterate through
all typedef decls inside the class without updating header files of
clang? If it isn't could I ask your to add this part of code to your
header files?(To header file DeclCXX.h).
Best regards
Petr Silhavik
More information about the cfe-dev
mailing list