* fixed GCC 4.4.0 mingw compilation:
[fw/sdcc] / src / SDCCset.h
index b5e2ccde84b64a5b2843f7d78296b138ef7dc546..7b4fc589555ee20d0f9e38b72e1b4cdca230d8ea 100644 (file)
 #define SDCCSET_H
 #include <stdarg.h>
 
-#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)());
-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 ** );
-
+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