erc.h

erc.h

#if !defined(ERC_H)
#define ERC_H
 
#include "eref.h"
 
typedef struct _elem{eref val; struct _elem *next;} ercElem;
typedef ercElem *ercList;
typedef struct {ercList vals; int size;} ercInfo;
typedef ercInfo *erc;
typedef ercList *ercIter;
 
#include "erc.lh"
 
#define erc_size(c) ((c)->size)
#define erc_choose(c) ((c->vals)->val)
#define erc_initMod( )\
        do {bool_initMod(); employee_initMod();\
        eref_initMod();} while (0)
#define erc_iterFinal(it) (free(it))
#define erc_iterReturn(it, result)\
    do {erc_iterFinal(it); return result;} while (0)
#define for_ercElems(er, it, c)\
   for(er = erc_yield(it = erc_iterStart(c));\
       !eref_equal(er, erefNIL);\
       er = erc_yield(it))
#endif

Return LCLint Home Page David Evans
University of Virginia, Computer Science
evans@cs.virginia.edu