stack.str 933 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  3. * See the copyright notice in the ACK home directory, in the file "Copyright".
  4. */
  5. /* $Id$ */
  6. /* IDENTIFIER STACK DEFINITIONS */
  7. /* The identifier stack is implemented as a stack of sets.
  8. The stack is implemented by a doubly linked list,
  9. the sets by singly linked lists.
  10. */
  11. struct stack_level {
  12. struct stack_level *next;
  13. struct stack_level *sl_next; /* upward link */
  14. struct stack_level *sl_previous; /* downward link */
  15. struct stack_entry *sl_entry; /* sideward link */
  16. arith sl_local_offset; /* @ for first coming object */
  17. arith sl_max_block; /* maximum size of sub-block */
  18. int sl_level;
  19. };
  20. /* ALLOCDEF "stack_level" 5 */
  21. struct stack_entry {
  22. struct stack_entry *next;
  23. struct idf *se_idf;
  24. };
  25. /* ALLOCDEF "stack_entry" 5 */
  26. extern struct stack_level *local_level;
  27. extern struct stack_level *stack_level_of();
  28. extern int level;