41 lines
		
	
	
	
		
			954 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			954 B
		
	
	
	
		
			Text
		
	
	
	
	
	
/*
 | 
						|
 * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
 | 
						|
 * See the copyright notice in the ACK home directory, in the file "Copyright".
 | 
						|
 */
 | 
						|
/* $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 formal *dc_formal;	/* params for function	*/
 | 
						|
};
 | 
						|
 | 
						|
/* ALLOCDEF "declarator" 50 */
 | 
						|
 | 
						|
 | 
						|
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	*/
 | 
						|
	arith du_count;			/* for ARRAYs only	*/
 | 
						|
};
 | 
						|
 | 
						|
/* ALLOCDEF "decl_unary" 10 */
 | 
						|
 | 
						|
extern struct type *declare_type();
 | 
						|
extern struct declarator null_declarator;
 |