Pristine Ack-5.5
[Ack-5.5.git] / lang / cem / cemcom.ansi / idf.str
1 /*
2  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
3  * See the copyright notice in the ACK home directory, in the file "Copyright".
4  */
5 /* $Id: idf.str,v 1.8 1994/06/27 08:00:11 ceriel Exp $ */
6 /* IDENTIFIER DESCRIPTOR */
7
8 #include        "nopp.h"
9
10 struct id_u {
11 #ifndef NOPP
12         struct macro *idd_macro;
13         int idd_resmac;         /* if nonzero: keyword of macroproc.    */
14 #endif /* NOPP */
15         int idd_reserved;       /* non-zero for reserved words          */
16         char *idd_file;         /* file containing the occurrence       */
17         unsigned int idd_line;  /* line number of the occurrence        */
18         struct def *idd_label;  /* labels                               */
19         struct def *idd_def;    /* variables, typedefs, enum-constants  */
20         struct sdef *idd_sdef;  /* selector tags                        */
21         struct tag *idd_tag;    /* struct, union, and enum tags         */
22         int idd_special;        /* special action needed at occurrence  */
23 };
24
25 #define IDF_TYPE        struct id_u
26 #define id_macro        id_user.idd_macro
27 #define id_resmac       id_user.idd_resmac
28 #define id_reserved     id_user.idd_reserved
29 #define id_file         id_user.idd_file
30 #define id_line         id_user.idd_line
31 #define id_label        id_user.idd_label
32 #define id_def          id_user.idd_def
33 #define id_sdef         id_user.idd_sdef
34 #define id_tag          id_user.idd_tag
35 #define id_special      id_user.idd_special
36
37 #include <idf_pkg.spec>
38
39 #ifndef NOPP
40 struct dependency       {
41         struct dependency *next;
42         struct idf *dep_idf;
43 };
44
45 /* ALLOCDEF "dependency" 10 */
46 #endif /* NOPP */
47
48 extern int level;
49 extern struct idf *gen_idf();