59 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* $Header$ */
 | |
| 
 | |
| /* scope structure */
 | |
| 
 | |
| typedef struct scope {
 | |
|   struct scope	*sc_static_encl;	/* linked list of enclosing scopes */
 | |
|   struct symbol *sc_symbs;		/* symbols defined in this scope */
 | |
|   struct symbol *sc_definedby;		/* symbol defining this scope */
 | |
|   long		sc_start;		/* start address of code of this scope */
 | |
|   long		sc_bp_opp;		/* first breakpoint opportunity */
 | |
|   short		sc_proclevel;		/* proc level of this scope */
 | |
|   char		sc_has_activation_record;
 | |
| } t_scope, *p_scope;
 | |
| 
 | |
| extern p_scope PervasiveScope, CurrentScope, FileScope;
 | |
| 
 | |
| /* extern	init_scope();
 | |
|    Initializes the scope routines.
 | |
| */
 | |
| extern	init_scope();
 | |
| 
 | |
| /* extern	open_scope(struct symbol *name, int has_activation);
 | |
|    Opens a new scope and assigns it to CurrentScope; The new scope is defined
 | |
|    by 'name' and if 'has_activation' is set, it has an activation record.
 | |
| */
 | |
| extern	open_scope();
 | |
| 
 | |
| /* extern	close_scope();
 | |
|    Closes the current scope; CurrentScope becomes the statically enclosing
 | |
|    scope.
 | |
| */
 | |
| extern	close_scope();
 | |
| 
 | |
| /* extern	add_scope_addr(p_scope sc);
 | |
|    Adds scope 'sc' to the list of scopes that have an address at runtime.
 | |
| */
 | |
| extern	add_scope_addr();
 | |
| 
 | |
| /* extern p_scope	get_scope_from_addr(t_addr a);
 | |
|    Returns the scope of the code at address 'a', or 0 if it could not be found.
 | |
| */
 | |
| extern p_scope	get_scope_from_addr();
 | |
| 
 | |
| /* extern p_scope	get_next_scope_from_addr(t_addr a);
 | |
|    Returns the scope following the one of the code at address 'a',
 | |
|    and that has an activation record,
 | |
|    or 0 if it could not be found.
 | |
| */
 | |
| extern p_scope	get_next_scope_from_addr();
 | |
| 
 | |
| /* extern p_scope	base_scope(p_scope sc);
 | |
|    Returns the closest enclosing scope of 'sc' that has an activation record.
 | |
| */
 | |
| extern p_scope	base_scope();
 | |
| 
 | |
| /* extern int	scope_encloses(p_scope scope, from_scope);
 | |
|    Returns 1 if scope encloses from from_scope, 0 otherwise.
 | |
| */
 | |
| extern int	scope_encloses();
 |