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
 |