]>
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 | ** macrocache.h | |
8 | */ | |
9 | ||
10 | # ifndef MACROCACHE_H | |
11 | # define MACROCACHE_H | |
12 | ||
28bf4b0b | 13 | typedef struct |
885824d3 | 14 | { |
15 | fileloc fl; | |
16 | cstring def; | |
17 | bool defined; | |
18 | bool scomment; | |
19 | } *mce; | |
20 | ||
21 | typedef /*@only@*/ mce o_mce; | |
22 | ||
28bf4b0b | 23 | typedef struct |
885824d3 | 24 | { |
25 | int nspace; | |
26 | int entries; | |
27 | /*@reldef@*/ /*@only@*/ o_mce *contents; | |
28 | } *macrocache; | |
29 | ||
30 | extern void | |
31 | macrocache_processUndefinedElements (macrocache p_m) ; /* modifies externalState */ | |
32 | ||
33 | extern /*@observer@*/ fileloc | |
34 | macrocache_processFileElements (macrocache p_m, cstring p_base) ; | |
35 | ||
36 | extern /*@only@*/ /*@unused@*/ cstring macrocache_unparse (macrocache p_m) /*@*/ ; | |
37 | extern /*@only@*/ macrocache macrocache_create (void) /*@*/ ; | |
38 | ||
39 | extern void | |
40 | macrocache_addEntry (macrocache p_s, /*@only@*/ fileloc p_fl, /*@only@*/ cstring p_def); | |
41 | ||
42 | extern void | |
43 | macrocache_addComment (macrocache p_s, /*@only@*/ fileloc p_fl, /*@only@*/ cstring p_def); | |
44 | ||
45 | extern void macrocache_free (/*@only@*/ macrocache p_s); | |
46 | extern void macrocache_finalize (void) /*@modifies internalState@*/ ; | |
47 | ||
48 | # else | |
49 | # error "Multiple include" | |
50 | # endif |