/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ #ifndef DECLAR_H_ #define DECLAR_H_ /* $Id$ */ /* 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 { /* struct declarator *next; */ 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; #endif