]>
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 | ** aliasStack.h | |
8 | */ | |
9 | ||
10 | # ifndef aliasStack_H | |
11 | # define aliasStack_H | |
12 | ||
13 | typedef struct _aliasStack *aliasStack ; | |
14 | ||
15 | typedef struct _aliasStack | |
16 | { | |
17 | aliasTable elements; | |
18 | aliasStack thisbranch; | |
19 | aliasStack lastbranch; | |
20 | aliasStack parent; | |
21 | int lexlevel; | |
22 | } _aliasStack ; | |
23 | ||
24 | extern aliasStack aliasStack_new(void); | |
25 | ||
26 | extern void aliasStack_newAlias (aliasStack s, sRef el, sRef al); | |
27 | extern void aliasStack_clearAlias (aliasStack s, sRef el); | |
28 | extern sRefSet aliasStack_canAlias (aliasStack s, sRef sr); | |
29 | ||
30 | extern void aliasStack_push (aliasStack s, sRef el) ; | |
31 | extern aliasStack aliasStack_pop (aliasStack s) ; | |
32 | extern sRef aliasStack_top (aliasStack s) ; | |
33 | ||
34 | extern cstring aliasStack_unparse (aliasStack s) ; | |
35 | extern void aliasStack_free (/*@only@*/ aliasStack s) ; | |
36 | ||
37 | extern sRefSet aliasStack_aliasedBy (aliasStack s, sRef sr); | |
38 | extern aliasStack aliasStack_branch (aliasStack s); | |
39 | extern aliasStack aliasStack_trueBranch (aliasStack s); | |
40 | extern aliasStack aliasStack_altBranch (aliasStack s); | |
41 | extern aliasStack aliasStack_popBranches (aliasStack alt); | |
42 | extern aliasStack aliasStack_popTrueBranch (aliasStack s); | |
43 | extern void aliasStack_checkGlobs (aliasStack s); | |
44 | ||
45 | # define aliasStackBASESIZE MIDBASESIZE | |
46 | # define aliasStackNULL ((aliasStack)0) | |
47 | # else | |
48 | # error "Multiple include" | |
49 | # endif | |
50 | ||
51 | ||
52 | ||
53 |