scope.H 689 B

1234567891011121314151617181920212223242526272829303132
  1. /* S C O P E M E C H A N I S M */
  2. struct scope {
  3. struct scope *next;
  4. struct def *sc_def; /* list of definitions in this scope */
  5. int sc_level; /* level of this scope */
  6. arith sc_off; /* offsets of variables in this scope */
  7. struct node *sc_lablist;/* list of labels in this scope, to speed
  8. up label handling
  9. */
  10. };
  11. /* ALLOCDEF "scope" 10 */
  12. struct scopelist {
  13. struct scopelist *next;
  14. struct scope *sc_scope;
  15. int sc_count;
  16. };
  17. /* ALLOCDEF "scopelist" 10 */
  18. extern struct scope
  19. *GlobalScope,
  20. *PervasiveScope,
  21. *BlockScope;
  22. extern struct scopelist
  23. *CurrVis;
  24. #define CurrentScope (CurrVis->sc_scope)
  25. #define nextvisible(x) ((x)->next) /* use with scopelists */