#pragma interface #ifndef CLSINFO_H #define CLSINFO_H #ifndef MISC_H #include #endif class NAP_LIST; struct NAP_FCT; #include enum OUTPUT_STYLE{ OUTPUT_TEXT, OUTPUT_SGML, OUTPUT_HTML }; class CLS_INFO: public ARRAY_OBJ{ public: char *nom; /* Nom de la classe */ int nbbase; /* Nombre de classe de base */ int nbprint; /* Nombre de fois que la classe a ‚t‚ mentionn‚e */ /*~PROTOBEG~ CLS_INFO */ public: CLS_INFO (const char *_nom); ~CLS_INFO (void); /*~PROTOEND~ CLS_INFO */ }; class CLS_INFOS: public ARRAY{ /*~PROTOBEG~ CLS_INFOS */ public: CLS_INFO *getitem (int no)const; /*~PROTOEND~ CLS_INFOS */ }; class CLS_DERIVE: public ARRAY_OBJ{ public: CLS_INFO *info; /* Nom de la classe */ char *opt; /* Option de d‚rivation */ CLS_INFO *base; /* Classe de base */ /*~PROTOBEG~ CLS_DERIVE */ public: CLS_DERIVE (CLS_INFO *_info, CLS_INFO *_base, const char *_opt); ~CLS_DERIVE (void); /*~PROTOEND~ CLS_DERIVE */ }; class CLS_DERIVES: public ARRAY{ /*~PROTOBEG~ CLS_DERIVES */ public: CLS_DERIVE *getitem (int no)const; /*~PROTOEND~ CLS_DERIVES */ }; enum CLS_VISIBILITY { CLS_PUBLIC, CLS_PROTECTED, CLS_PRIVATE }; class CLS_INHER: public ARRAY_OBJ{ CLS_INFO *cls; CLS_VISIBILITY vis; }; class CLS_INHERS: public ARRAY{ /*~PROTOBEG~ CLS_INHERS */ public: CLS_INHER *getitem (int no)const; /*~PROTOEND~ CLS_INHERS */ }; class CLSFORM{ CLS_INFOS infos; CLS_DERIVES ders; /*~PROTOBEG~ CLSFORM */ public: CLSFORM (void); CLS_INFO *addclass (const char *nom); void addder (CLS_INFO *info, CLS_INFO *base, const char *opt); void flatfunc (NAP_LIST&lst, bool vue_interne, OUTPUT_STYLE style, FILE *fout); private: int flatfunc (const char *clsname, NAP_LIST&lst, bool vue_interne, NAP_FCT **tbfct, int nbfct); public: void flatfunc (const char *clsname, NAP_LIST&lst, bool vue_interne, OUTPUT_STYLE style, FILE *fout); int gentest (FILE *fout); void gentest0 (CLS_INFO *info, FILE *fout); int print (FILE *fout, OUTPUT_STYLE style); private: int printr (const char *base, FILE *fout, int indent, OUTPUT_STYLE style); public: int read (const char *fname); void unknown (void); ~CLSFORM (void); /*~PROTOEND~ CLSFORM */ }; #endif