V9/jtools/src/pi/dtype.h
#ifndef DTYPE_H
#define DTYPE_H
#ifndef UNIV_H
#include "univ.h"
#endif
class DType : public PadRcv {
PadRcv *univ;
>pri
friend CoffSymTab; friend BsdSymTab; friend Ed8SymTab;
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);
#ifndef V9
typedef class DType *DTypep;
typedef DTypep *DTypepar;
class BsdTShare;
class BsdTFile {
friend BsdTShare;
char *fname;
DTypepar type;
int ntypes;
};
class BsdTShare {
friend BsdType;
int used;
int nfiles;
BsdTFile *file;
int findfile(char*);
DType *findtype(int,int);
char *filename(int);
void entertype(int, int, DTypep);
int addfile(char*, int=0);
public:
~BsdTShare();
BsdTShare();
};
class BsdType {
int utypeindex;
Source *src;
int *filemap;
int nfiles;
int used;
BsdTShare *share;
public:
void addinclude(char*, int);
DType chain(DType*);
DType gettype(int, int);
DType gettype(char*);
void parsetype(char*, char*);
void toindices(char*, int&, int&);
int toint(char*);
char *toutypestr(char*, int);
~BsdType();
BsdType(Source*, BsdTShare*);
};
#endif V9
#endif