X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCset.h;h=e3f1520fddd793f012f9fbea7e6749ab6e83dc74;hb=9f034219c943bb8ba958efaa6258c8f220633c17;hp=f676886710b2ebe343e84f8a9ae9870c26c4adc8;hpb=4726c45887ee4dd2fc2a58b94ff5abc2fd4cd6fd;p=fw%2Fsdcc diff --git a/src/SDCCset.h b/src/SDCCset.h index f6768867..e3f1520f 100644 --- a/src/SDCCset.h +++ b/src/SDCCset.h @@ -25,53 +25,59 @@ #ifndef SDCCSET_H #define SDCCSET_H #include + +#if defined(_MSC_VER) +#include "sdcc_vc.h" +#else #include "sdccconf.h" -#include "SDCCalloc.h" +#endif // _MSC_VER #ifndef THROWS #define THROWS -#define THROW_NONE 0 -#define THROW_SRC 1 +#define THROW_NONE 0 +#define THROW_SRC 1 #define THROW_DEST 2 #define THROW_BOTH 3 #endif /* linear linked list generic */ typedef struct set -{ - void *item ; - struct set *curr ; - struct set *next ; -} set ; + { + void *item; + struct set *curr; + struct set *next; + } +set; #define DEFSETFUNC(fname) int fname ( void *item, va_list ap) -#define V_ARG(type,var) type var = va_arg(ap,type) +#define V_ARG(type,var) type var = va_arg(ap,type) /* set related functions */ -void *addSet ( set ** , void * ); -void *addSetHead ( set ** , void * ); -void *getSet ( set ** ); -void deleteSetItem ( set ** , void * ); -void deleteItemIf ( set ** , int (*cond) (void *, va_list), ... ); -int isinSet ( set * , void * ); -int isinSetWith ( set *, void *, int (*cfunc)()); -int applyToSet ( set *list ,int (*somefunc)(void *,va_list), ...); -int applyToSetFTrue ( set *list ,int (*somefunc)(void *,va_list), ...); -set *unionSets ( set *, set *, int); -set *unionSetsWith ( set *, set *, int (*cFunc)(),int); -set *intersectSets ( set *, set *, int); -void *addSetIfnotP ( set **, void *); -set *setFromSet ( set * ); -int isSetsEqual ( set *, set *); -set *subtractFromSet ( set *, set *,int); -int elementsInSet (set *); -set *intersectSetsWith (set *, set *,int (*cFunc)(),int ); -int isSetsEqualWith ( set *, set *, int (*cFunc)()); -void *peekSet ( set *); -void *setFirstItem ( set *); -void *setNextItem ( set *); -void setToNull (void ** ); - +void *addSet (set **, void *); +void *addSetHead (set **, void *); +void *getSet (set **); +void deleteSetItem (set **, void *); +void deleteItemIf (set **, int (*cond) (void *, va_list),...); +int isinSet (set *, void *); +typedef int (* insetwithFunc) (void *, void *); +int isinSetWith (set *, void *, insetwithFunc cfunc); +int applyToSet (set * list, int (*somefunc) (void *, va_list),...); +int applyToSetFTrue (set * list, int (*somefunc) (void *, va_list),...); +set *unionSets (set *, set *, int); +set *unionSetsWith (set *, set *, int (*cFunc) (), int); +set *intersectSets (set *, set *, int); +void *addSetIfnotP (set **, void *); +set *setFromSet (set *); +int isSetsEqual (set *, set *); +set *subtractFromSet (set *, set *, int); +int elementsInSet (set *); +set *intersectSetsWith (set *, set *, int (*cFunc) (void *, void *), int); +int isSetsEqualWith (set *, set *, int (*cFunc) (void *, void *)); +void *peekSet (set *); +void *setFirstItem (set *); +void *setNextItem (set *); +void setToNull (void **); +set *reverseSet (set *); #endif