00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef _cbodywalk_h
00016 #define _cbodywalk_h
00017
00018 #include "classwalk.h"
00019
00020
00021
00022 class ClassBodyWalker : public ClassWalker {
00023 public:
00024 ClassBodyWalker(Walker* w, PtreeArray* tlist) : ClassWalker(w) {
00025 tspec_list = tlist;
00026 }
00027 Ptree* TranslateClassBody(Ptree* block, Ptree* bases, Class*);
00028 void AppendNewMembers(Class*, PtreeArray&, bool&);
00029 Ptree* TranslateTypespecifier(Ptree* tspec);
00030 Ptree* TranslateTypedef(Ptree* def);
00031 Ptree* TranslateMetaclassDecl(Ptree* decl);
00032 Ptree* TranslateDeclarators(Ptree* decls);
00033 Ptree* TranslateAssignInitializer(PtreeDeclarator* decl, Ptree* init);
00034 Ptree* TranslateInitializeArgs(PtreeDeclarator* decl, Ptree* init);
00035 Ptree* TranslateDeclarator(bool record, PtreeDeclarator* decl);
00036 Ptree* TranslateDeclarator(bool record, PtreeDeclarator* decl,
00037 bool append_body);
00038 Ptree* TranslateFunctionImplementation(Ptree* impl);
00039
00040 private:
00041 PtreeArray* tspec_list;
00042 };
00043
00044 #endif