Pristine Ack-5.5
[Ack-5.5.git] / lang / cem / cemcom / stack.str
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: stack.str,v 3.4 1994/06/24 12:06:09 ceriel Exp $ */
6 /* IDENTIFIER STACK DEFINITIONS */
7
8 /*      The identifier stack is implemented as a stack of sets.
9         The stack is implemented by a doubly linked list,
10         the sets by singly linked lists.
11 */
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
23 /* ALLOCDEF "stack_level" 5 */
24
25 struct stack_entry      {
26         struct stack_entry *next;
27         struct idf *se_idf;
28 };
29
30 /* ALLOCDEF "stack_entry" 5 */
31
32 extern struct stack_level *local_level;
33 extern struct stack_level *stack_level_of();
34 extern int level;