12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /* $Header$ */
- /* IDENTIFIER STACK DEFINITIONS */
- /* The identifier stack is implemented as a stack of sets.
- The stack is implemented by a doubly linked list,
- the sets by singly linked lists.
- */
- struct stack_level {
- struct stack_level *next;
- struct stack_level *sl_next; /* upward link */
- struct stack_level *sl_previous; /* downward link */
- struct stack_entry *sl_entry; /* sideward link */
- arith sl_local_offset; /* @ for first coming object */
- arith sl_max_block; /* maximum size of sub-block */
- int sl_level;
- };
- /* allocation definitions of struct stack_level */
- /* ALLOCDEF "stack_level" */
- extern char *st_alloc();
- extern struct stack_level *h_stack_level;
- #define new_stack_level() ((struct stack_level *) \
- st_alloc((char **)&h_stack_level, sizeof(struct stack_level)))
- #define free_stack_level(p) st_free(p, h_stack_level, sizeof(struct stack_level))
- struct stack_entry {
- struct stack_entry *next;
- struct idf *se_idf;
- };
- /* allocation definitions of struct stack_entry */
- /* ALLOCDEF "stack_entry" */
- extern char *st_alloc();
- extern struct stack_entry *h_stack_entry;
- #define new_stack_entry() ((struct stack_entry *) \
- st_alloc((char **)&h_stack_entry, sizeof(struct stack_entry)))
- #define free_stack_entry(p) st_free(p, h_stack_entry, sizeof(struct stack_entry))
- extern struct stack_level *local_level;
- extern struct stack_level *stack_level_of();
- extern int level;
|