scope.H 674 B

12345678910111213141516171819202122232425262728293031
  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. };
  16. /* ALLOCDEF "scopelist" 10 */
  17. extern struct scope
  18. *GlobalScope,
  19. *PervasiveScope,
  20. *BlockScope;
  21. extern struct scopelist
  22. *CurrVis;
  23. #define CurrentScope (CurrVis->sc_scope)
  24. #define nextvisible(x) ((x)->next) /* use with scopelists */