123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /* $Id$ */
- /* 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 */
- int sc_bp_lineno; /* linenumber belonging to this bp. */
- 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();
|