1989-02-07 11:04:05 +00:00
|
|
|
/*
|
|
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
|
|
*/
|
1994-06-27 08:03:14 +00:00
|
|
|
/* $Id$ */
|
1989-02-07 11:04:05 +00:00
|
|
|
/* DEFINITION OF DECLARATOR DESCRIPTORS */
|
|
|
|
|
|
|
|
/* A 'declarator' consists of an idf and a linked list of
|
|
|
|
language-defined unary operations: *, [] and (), called
|
|
|
|
decl_unary's.
|
|
|
|
*/
|
|
|
|
|
|
|
|
struct declarator {
|
1991-06-24 16:33:43 +00:00
|
|
|
/* struct declarator *next; */
|
1989-02-07 11:04:05 +00:00
|
|
|
struct idf *dc_idf;
|
|
|
|
struct decl_unary *dc_decl_unary;
|
|
|
|
struct formal *dc_formal; /* params for function */
|
|
|
|
};
|
|
|
|
|
|
|
|
struct formal { /* list of formals */
|
|
|
|
struct formal *next;
|
|
|
|
struct idf *fm_idf;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* ALLOCDEF "formal" 5 */
|
|
|
|
|
|
|
|
|
|
|
|
#define NO_PARAMS ((struct formal *) 0)
|
|
|
|
|
|
|
|
struct decl_unary {
|
|
|
|
struct decl_unary *next;
|
|
|
|
int du_fund; /* POINTER, ARRAY or FUNCTION */
|
|
|
|
int du_typequal; /* CONST, VOLATILE, or 0 */
|
|
|
|
arith du_count; /* for ARRAYs only */
|
|
|
|
struct proto *du_proto; /* params for function or prototype */
|
|
|
|
};
|
|
|
|
|
|
|
|
/* ALLOCDEF "decl_unary" 10 */
|
|
|
|
|
|
|
|
extern struct type *declare_type();
|
|
|
|
extern struct declarator null_declarator;
|