#ifndef DTYPE_H #define DTYPE_H #ifndef UNIV_H #include "univ.h" #endif class DType : public PadRcv { PadRcv *univ; friend CoffSymTab; friend BsdSymTab; friend Block; friend Func; friend SymTab; friend Var; friend BsdType; int formatset(); void free(); PUBLIC(DType,U_DTYPE) DType(); int dim; short pcc; int over; class UType *utype(); DType *ref(); DType incref(); DType *decref(); char *text(); int format(); struct Index carte(); int size_of(); int isary(); int isaryorptr(); int isftn(); int isintegral(); int isptr(); int isreal(); int isscalar(); int isstrun(); void reformat(int,int=0); }; char *PccName(int); typedef class DType *DTypep; typedef DTypep *DTypepar; class BsdTShare { friend BsdType; int maxfile; int *maxoffp; DTypepar *types; DType *findtype(int,int); void entertype(int file, int offset, DTypep dp); public: ~BsdTShare(); BsdTShare(); }; class BsdType { int utypeindex; Source *src; int maxoff; BsdTShare *share; DTypepar type; DType *findtype(int,int); public: int toint(char *); void toindices(char *, int &, int &); DType chain(DType *); DType gettype(int, int); DType gettype(char *); void parsetype(char *, char *); void entertype(int file, int offset, DTypep dp); char *toutypestr(char *, int); ~BsdType(); BsdType(Source *, BsdTShare *); }; #endif