stack.str 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. #ifndef LANG_CEM_CEMCOM_ANSI_STACK_STR
  8. #define LANG_CEM_CEMCOM_ANSI_STACK_STR
  9. /* The identifier stack is implemented as a stack of sets.
  10. The stack is implemented by a doubly linked list,
  11. the sets by singly linked lists.
  12. */
  13. struct stack_level {
  14. /* struct stack_level *next; */
  15. struct stack_level *sl_next; /* upward link */
  16. struct stack_level *sl_previous; /* downward link */
  17. struct stack_entry *sl_entry; /* sideward link */
  18. arith sl_local_offset; /* @ for first coming object */
  19. arith sl_max_block; /* maximum size of sub-block */
  20. int sl_level;
  21. };
  22. /* ALLOCDEF "stack_level" 5 */
  23. struct stack_entry {
  24. struct stack_entry *next;
  25. struct idf *se_idf;
  26. };
  27. /* ALLOCDEF "stack_entry" 50 */
  28. extern struct stack_level *local_level;
  29. extern struct stack_level *stack_level_of();
  30. extern int level;
  31. #endif /* LANG_CEM_CEMCOM_ANSI_STACK_STR */