37 lines
		
	
	
	
		
			793 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			793 B
		
	
	
	
		
			C++
		
	
	
	
	
	
/* $Id$ */
 | 
						|
 | 
						|
#define MAXARGS	3
 | 
						|
 | 
						|
typedef struct tree {
 | 
						|
  short	t_oper;		/* tree operator */
 | 
						|
  short t_whichoper;	/* expression operator */
 | 
						|
  t_addr t_address;	/* some operators use an address */
 | 
						|
  union {
 | 
						|
	long tt_ival;
 | 
						|
	char *tt_sval;
 | 
						|
	double tt_fval;
 | 
						|
	struct {
 | 
						|
		struct idf *tt_idf;
 | 
						|
		char *tt_str;
 | 
						|
	} tt_x;
 | 
						|
	struct tree *tt_args[MAXARGS];
 | 
						|
	t_position tt_pos;
 | 
						|
  } t_xxxx;
 | 
						|
#define t_ival	t_xxxx.tt_ival
 | 
						|
#define t_sval	t_xxxx.tt_sval
 | 
						|
#define t_fval	t_xxxx.tt_fval
 | 
						|
#define t_idf	t_xxxx.tt_x.tt_idf
 | 
						|
#define t_str	t_xxxx.tt_x.tt_str
 | 
						|
#define t_args	t_xxxx.tt_args
 | 
						|
#define t_lino t_xxxx.tt_pos.lineno
 | 
						|
#define t_filename t_xxxx.tt_pos.filename
 | 
						|
#define t_pos	t_xxxx.tt_pos
 | 
						|
} t_tree, *p_tree;
 | 
						|
 | 
						|
/* ALLOCDEF "tree" 100 */
 | 
						|
 | 
						|
#if __STDC__
 | 
						|
extern p_tree	mknode(int, ...);
 | 
						|
#else
 | 
						|
extern p_tree	mknode();
 | 
						|
#endif
 |