/*
** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
** See ../LICENSE for license information.
**
*/
/*
** macrocache.h
*/
# ifndef MACROCACHE_H
# define MACROCACHE_H
typedef struct
{
fileloc fl;
cstring def;
bool defined;
bool scomment;
} *mce;
typedef /*@only@*/ mce o_mce;
typedef struct
{
int nspace;
int entries;
/*@reldef@*/ /*@only@*/ o_mce *contents;
} *macrocache;
extern void
macrocache_processUndefinedElements (macrocache p_m) ; /* modifies externalState */
extern /*@observer@*/ fileloc
macrocache_processFileElements (macrocache p_m, cstring p_base) ;
extern /*@only@*/ /*@unused@*/ cstring macrocache_unparse (macrocache p_m) /*@*/ ;
extern /*@only@*/ macrocache macrocache_create (void) /*@*/ ;
extern void
macrocache_addEntry (macrocache p_s, /*@only@*/ fileloc p_fl, /*@only@*/ cstring p_def);
extern void
macrocache_addComment (macrocache p_s, /*@only@*/ fileloc p_fl, /*@only@*/ cstring p_def);
extern void macrocache_free (/*@only@*/ macrocache p_s);
extern void macrocache_finalize (void) /*@modifies internalState@*/ ;
# else
# error "Multiple include"
# endif
syntax highlighted by Code2HTML, v. 0.9.1