#ifndef BSERV_H #define BSERV_H /* Controle un type d'argument */ class ARG_TYPE{ char *str; /*~PROTOBEG~ ARG_TYPE */ public: ARG_TYPE (const char *decltype); ARG_TYPE (void); int categ (void); const char *getdecl (void); int isvoid (void); operator const char * (void); void set (const char *decltype); ~ARG_TYPE (void); /*~PROTOEND~ ARG_TYPE */ }; /* Controle la pr‚sentation et l'analyse des paramŠtres d'une fonction. */ class FCT_ARG{ ARG_TYPE type; char *nom; /*~PROTOBEG~ FCT_ARG */ public: FCT_ARG (const char *argstr); FCT_ARG (void); protected: void anlsplit (const char *declstr); public: int categ (void); int format (char *buf); const char *getnom (void); const char *gettype (void); void set (const char *argstr); /*~PROTOEND~ FCT_ARG */ }; #ifndef MISC_H #include #endif // Contient une d‚claration de fonction membre. class FCT_INFO: public ARRAY_OBJ{ public: char *cls; // Classe de la fonction char *nom; // Nom de la fonction ARG_TYPE type; // Type de retour int nbarg; // Nombre d'argument FCT_ARG *args; // Arguments /*~PROTOBEG~ FCT_INFO */ public: FCT_INFO (void); int is_construct (void); int is_destruct (void); int parse (char *proto, const char *sel_cls); void prtarg (FILE *fout, const char *ctl0, const char *ctln); void prtargd (FILE *fout, const char *ctl0, const char *ctln); void prtcle (FILE *fout); /*~PROTOEND~ FCT_INFO */ }; class FCT_LISTE: public ARRAY{ /*~PROTOBEG~ FCT_LISTE */ public: int collect (const char *fichier_pm, const char *tbcls[], int nbcls); void dump (void); FCT_INFO *getitem (int no)const; FCT_INFO *locatefct (const char *nomfct); protected: FCT_INFO *locatefct (const char *nomfct, int range); public: /*~PROTOEND~ FCT_LISTE */ }; #include "bserv.p" #endif