/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ /* $Id$ */ /* IDENTIFIER DESCRIPTOR */ #include "nopp.h" struct id_u { #ifndef NOPP struct macro *idd_macro; int idd_resmac; /* if nonzero: keyword of macroproc. */ #endif /* NOPP */ int idd_reserved; /* non-zero for reserved words */ char *idd_file; /* file containing the occurrence */ unsigned int idd_line; /* line number of the occurrence */ struct def *idd_label; /* labels */ struct def *idd_def; /* variables, typedefs, enum-constants */ struct sdef *idd_sdef; /* selector tags */ struct tag *idd_tag; /* struct, union, and enum tags */ int idd_special; /* special action needed at occurrence */ }; #define IDF_TYPE struct id_u #define id_macro id_user.idd_macro #define id_resmac id_user.idd_resmac #define id_reserved id_user.idd_reserved #define id_file id_user.idd_file #define id_line id_user.idd_line #define id_label id_user.idd_label #define id_def id_user.idd_def #define id_sdef id_user.idd_sdef #define id_tag id_user.idd_tag #define id_special id_user.idd_special #include #ifndef NOPP struct dependency { struct dependency *next; struct idf *dep_idf; }; /* ALLOCDEF "dependency" 10 */ #endif /* NOPP */ extern int level; extern struct idf *gen_idf();