]>
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 | # ifndef LSYMBOL_H | |
8 | # define LSYMBOL_H | |
9 | ||
10 | /* | |
11 | ** Offset entries by 1, so 0 is available. | |
12 | */ | |
13 | ||
14 | /*@constant null lsymbol lsymbol_undefined; @*/ | |
15 | # define lsymbol_undefined ((lsymbol) 0) | |
16 | ||
17 | extern bool lsymbol_isDefined (lsymbol p_s); | |
18 | # define lsymbol_isDefined(s) ((s) != lsymbol_undefined) | |
19 | ||
20 | extern bool lsymbol_isUndefined (lsymbol p_s); | |
21 | # define lsymbol_isUndefined(s) ((s) == lsymbol_undefined) | |
22 | ||
23 | extern lsymbol lsymbol_fromChars (/*@temp@*/ char *) /*@*/ ; | |
24 | extern lsymbol lsymbol_fromString (/*@temp@*/ cstring p_s) /*@*/ ; | |
25 | extern /*@exposed@*/ /*@null@*/ char *lsymbol_toChars (lsymbol) /*@*/ ; | |
26 | extern /*@exposed@*/ char *lsymbol_toCharsSafe (lsymbol) /*@*/ ; | |
27 | extern /*@observer@*/ cstring lsymbol_toString(lsymbol) /*@*/ ; | |
28 | ||
29 | extern bool lsymbol_equal (lsymbol p_s1, lsymbol p_s2) /*@*/ ; | |
30 | # define lsymbol_equal(s1, s2) ((s1) == (s2)) | |
31 | ||
32 | extern /*@unused@*/ void lsymbol_printStats (void); | |
33 | ||
34 | extern void lsymbol_initMod (void) /*@modifies internalState@*/ ; | |
35 | extern void lsymbol_destroyMod (void) /*@modifies internalState@*/ ; | |
36 | ||
37 | # else | |
38 | # error "Multiple include" | |
39 | # endif |