X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCset.h;h=7b4fc589555ee20d0f9e38b72e1b4cdca230d8ea;hb=5a1d5e778e85664f4e6657019348b4756b16eacb;hp=298ab89c3c7b705edb8fe0bba79389f993be0b24;hpb=b487511f2155fa77fa0bd178663db31315f867c7;p=fw%2Fsdcc diff --git a/src/SDCCset.h b/src/SDCCset.h index 298ab89c..7b4fc589 100644 --- a/src/SDCCset.h +++ b/src/SDCCset.h @@ -26,56 +26,57 @@ #define SDCCSET_H #include -#if defined(_MSC_VER) -# include "sdcc_vc.h" -#else -# include "sdccconf.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)(void*,void*)); -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 *newSet (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),...); +void mergeSets (set **sset, set *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 *); +set *setFromSetNonRev (set *); +int isSetsEqual (set *, set *); +set *subtractFromSet (set *, set *, int); +int elementsInSet (set *); +void *indexSet(set *, int); +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 *); +void deleteSet (set **s); #endif