Pristine Ack-5.5
[Ack-5.5.git] / lang / cem / cemcom / declar.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: declar.str,v 3.6 1994/06/24 12:03:02 ceriel Exp $ */
6 /* DEFINITION OF DECLARATOR DESCRIPTORS */
7
8 /*      A 'declarator' consists of an idf and a linked list of
9         language-defined unary operations: *, [] and (), called
10         decl_unary's.
11 */
12
13 struct declarator       {
14         struct declarator *next;
15         struct idf *dc_idf;
16         struct decl_unary *dc_decl_unary;
17         struct formal *dc_formal;       /* params for function  */
18 };
19
20 struct formal   {                       /* list of formals */
21         struct formal *next;
22         struct idf *fm_idf;
23 };
24
25 /* ALLOCDEF "formal" 5 */
26
27 #define NO_PARAMS ((struct formal *) 0)
28
29 struct decl_unary       {
30         struct decl_unary *next;
31         int du_fund;                    /* POINTER, ARRAY or FUNCTION   */
32         arith du_count;                 /* for ARRAYs only      */
33 };
34
35 /* ALLOCDEF "decl_unary" 10 */
36
37 extern struct type *declare_type();
38 extern struct declarator null_declarator;