]>
Commit | Line | Data |
---|---|---|
885824d3 | 1 | /* |
28bf4b0b | 2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. |
885824d3 | 3 | ** See ../LICENSE for license information. |
4 | ** | |
5 | */ | |
6 | /* | |
7 | ** sRefSetStack.h | |
8 | */ | |
9 | ||
10 | # ifndef sRefSetStack_H | |
11 | # define sRefSetStack_H | |
12 | ||
13 | typedef struct _sRefSetStack *sRefSetStack ; | |
14 | ||
15 | typedef struct _sRefSetStack | |
16 | { | |
17 | sRefSet elements; | |
18 | sRefSet allElements; | |
19 | sRefSetStack thisbranch; | |
20 | sRefSetStack lastbranch; | |
21 | sRefSetStack parent; | |
22 | int lexlevel; | |
23 | } _sRefSetStack ; | |
24 | ||
25 | extern sRefSetStack sRefSetStack_new(void); | |
26 | ||
27 | extern void sRefSetStack_push (sRefSetStack s, sRef el) ; | |
28 | extern sRefSetStack sRefSetStack_pop (sRefSetStack s) ; | |
29 | extern sRefSet sRefSetStack_top (sRefSetStack s) ; | |
30 | ||
31 | extern cstring sRefSetStack_unparse (sRefSetStack s) ; | |
32 | extern void sRefSetStack_free (/*@only@*/ sRefSetStack s) ; | |
33 | extern sRefSetStack sRefSetStack_init (void); | |
34 | ||
35 | extern sRefSetStack sRefSetStack_branch (sRefSetStack s); | |
36 | extern sRefSetStack sRefSetStack_trueBranch (sRefSetStack s); | |
37 | extern sRefSetStack sRefSetStack_altBranch (sRefSetStack s); | |
38 | extern sRefSetStack sRefSetStack_popBranches (sRefSetStack alt); | |
39 | extern sRefSetStack sRefSetStack_popTrueBranch (sRefSetStack s); | |
40 | ||
41 | # define sRefSetStackBASESIZE MIDBASESIZE | |
42 | # define sRefSetStackNULL ((sRefSetStack)0) | |
43 | # define sRefSetStack_undefined (sRefSetStackNULL) | |
44 | ||
45 | # else | |
46 | # error "Multiple include" | |
47 | # endif | |
48 | ||
49 | ||
50 | ||
51 |