#ifndef DBX_TYPE_H
#define DBX_TYPE_H 1

/* define an alias for minimal_dual because at the interface level */
/* we don't want to see the structures belonging to the compiler */
/* we just need to test (and eventually compare) types abstractly */

typedef minimal_dual dbx_type; 

/* there is a special dual for each base type */
/* they are defined elsewhere */

extern minimal_dual YD_CHAR,YD_INTEGER,YD_BOOLEAN,YD_REAL;

char *type_name YARGS((dbx_type *pt));
int is_base YARGS((dbx_type *pt));
int is_class YARGS((dbx_type *pt));
int is_real YARGS((dbx_type *pt));
int is_int YARGS((dbx_type *pt));
int is_char YARGS((dbx_type *pt));
int is_bool YARGS((dbx_type *pt));
int is_virtual YARGS((dbx_type *pt));
dbx_class *type_class YARGS((dbx_type *pt));

dbx_type *inherited YARGS((dbx_type *pt));
dbx_type *find_type YARGS((dbx_type *pt));

#endif
