2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
3 ** See ../LICENSE for license information.
10 # ifndef sRefSetStack_H
11 # define sRefSetStack_H
13 typedef struct _sRefSetStack *sRefSetStack ;
15 typedef struct _sRefSetStack
19 sRefSetStack thisbranch;
20 sRefSetStack lastbranch;
25 extern sRefSetStack sRefSetStack_new(void);
27 extern void sRefSetStack_push (sRefSetStack s, sRef el) ;
28 extern sRefSetStack sRefSetStack_pop (sRefSetStack s) ;
29 extern sRefSet sRefSetStack_top (sRefSetStack s) ;
31 extern cstring sRefSetStack_unparse (sRefSetStack s) ;
32 extern void sRefSetStack_free (/*@only@*/ sRefSetStack s) ;
33 extern sRefSetStack sRefSetStack_init (void);
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);
41 # define sRefSetStackBASESIZE MIDBASESIZE
42 # define sRefSetStackNULL ((sRefSetStack)0)
43 # define sRefSetStack_undefined (sRefSetStackNULL)
46 # error "Multiple include"