32 lines
		
	
	
	
		
			689 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			689 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* S C O P E   M E C H A N I S M */
 | |
| 
 | |
| struct scope {
 | |
| 	struct scope *next;
 | |
| 	struct def *sc_def;	/* list of definitions in this scope */
 | |
| 	int sc_level;		/* level of this scope */
 | |
| 	arith sc_off;		/* offsets of variables in this scope */
 | |
| 	struct node *sc_lablist;/* list of labels in this scope, to speed
 | |
| 				   up label handling
 | |
| 				*/
 | |
| };
 | |
| 
 | |
| /* ALLOCDEF "scope" 10 */
 | |
| 
 | |
| struct scopelist {
 | |
| 	struct scopelist *next;
 | |
| 	struct scope *sc_scope;
 | |
| 	int sc_count;
 | |
| };
 | |
| 
 | |
| /* ALLOCDEF "scopelist" 10 */
 | |
| 
 | |
| extern struct scope
 | |
| 	*GlobalScope,
 | |
| 	*PervasiveScope,
 | |
| 	*BlockScope;
 | |
| 
 | |
| extern struct scopelist
 | |
| 	*CurrVis;
 | |
| 
 | |
| #define	CurrentScope	(CurrVis->sc_scope)
 | |
| #define	nextvisible(x)	((x)->next)		/* use with scopelists */
 |