28 lines
		
	
	
	
		
			957 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			957 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".
 | |
|  */
 | |
| /* $Id$ */
 | |
| 
 | |
| /*	To determine the minimum scope of a local variable, all (braced)
 | |
| 	scopes are numbered consecutively.  Next we maintain an array which
 | |
| 	maps the nesting depth (level) onto the scope number; we record
 | |
| 	the scope number of the first application of a local variable
 | |
| 	in its definition.  Each further application requires that the
 | |
| 	level of the variable be at least large enough to comprise both
 | |
| 	the present scope and that of its first application.  That level
 | |
| 	number is determined by searching the array and is then recorded in
 | |
| 	the definition (beacuse it is always equal to or smaller than the
 | |
| 	level already there).
 | |
| 
 | |
| 	The array is implemented as a linked list of struct brace.
 | |
| */
 | |
| 
 | |
| struct brace	{
 | |
| 	struct brace *next;
 | |
| 	int br_count;
 | |
| 	int br_level;
 | |
| };
 | |
| 
 | |
| /* ALLOCDEF "brace" 10 */
 | |
| 
 |