Pristine Ack-5.5
[Ack-5.5.git] / lang / cem / cemcom.ansi / 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 1.4 1994/06/27 07:59:05 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
28 #define NO_PARAMS ((struct formal *) 0)
29
30 struct decl_unary       {
31         struct decl_unary *next;
32         int du_fund;                    /* POINTER, ARRAY or FUNCTION   */
33         int du_typequal;                /* CONST, VOLATILE, or 0 */
34         arith du_count;                 /* for ARRAYs only      */
35         struct proto *du_proto;         /* params for function or prototype */
36 };
37
38 /* ALLOCDEF "decl_unary" 10 */
39
40 extern struct type *declare_type();
41 extern struct declarator null_declarator;