123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /* $Header$ */
- /* 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 idstack_item *dc_fparams; /* params for function */
- };
- /* allocation definitions of struct declarator */
- /* ALLOCDEF "declarator" */
- extern char *st_alloc();
- extern struct declarator *h_declarator;
- #define new_declarator() ((struct declarator *) \
- st_alloc((char **)&h_declarator, sizeof(struct declarator)))
- #define free_declarator(p) st_free(p, h_declarator, sizeof(struct declarator))
- #define NO_PARAMS ((struct idstack_item *) 0)
- struct decl_unary {
- struct decl_unary *next;
- int du_fund; /* POINTER, ARRAY or FUNCTION */
- arith du_count; /* for ARRAYs only */
- };
- /* allocation definitions of struct decl_unary */
- /* ALLOCDEF "decl_unary" */
- extern char *st_alloc();
- extern struct decl_unary *h_decl_unary;
- #define new_decl_unary() ((struct decl_unary *) \
- st_alloc((char **)&h_decl_unary, sizeof(struct decl_unary)))
- #define free_decl_unary(p) st_free(p, h_decl_unary, sizeof(struct decl_unary))
- extern struct type *declare_type();
- extern struct declarator null_declarator;
|