X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fadt%2Feset.h;h=fbdb5e0f13b7ce88409ecbcea1d35afa0a400fa7;hb=d2dc2564b47d9c113d7e6e598574e9733627fcca;hp=3f86aeaf20e142e8ab3b1413cfc0958c508c20f8;hpb=00e0f20d50508e11c9240e26130d784ac362f119;p=libfirm diff --git a/ir/adt/eset.h b/ir/adt/eset.h index 3f86aeaf2..fbdb5e0f1 100644 --- a/ir/adt/eset.h +++ b/ir/adt/eset.h @@ -10,53 +10,52 @@ * Copyright: (c) 2002 Universität Karlsruhe * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. */ - - #ifndef _ESET_H_ #define _ESET_H_ -#include - - -/* "eset" ist eine Menge von Adressen. Der Vergleich und das Hashen - * wird über die Adresse gemacht. "NULL" sollte nicht gespeichert - * werden. */ - +/** + * "eset" is a set of addresses. The addresses are used for element + * compare and hash calculation. + * The value "NULL" can not be stored, as it is used as internal sentinel. + */ typedef struct eset eset; +/** Creates a new empty set. */ +eset *eset_create(void); -/* Erzeugt eine neue leere Menge. */ -eset * eset_create(void); +/** + * Creates a copy of the given set. Does NOT work if NULL is contained in source. */ +eset *eset_copy(eset *source); -/* Erzeugt eine Kopie der übergebenen Menge. Das Kopieren funktioniert - * nur, wenn in der übergebenen Menge "NULL" nicht enthalten ist. */ -eset * eset_copy(eset *); +/** Deletes a set. */ +void eset_destroy(eset *s); -/* Löscht die Menge. */ -void eset_destroy(eset *); +/** Returns the number of elements in the set. */ +int eset_count(eset *s); -/* Fügt ein Adresse in die Menge ein, wenn es nicht bereits in der - * Menge enthalten ist. */ -void eset_insert(eset *, void *); +/** Inserts an address into the set. */ +void eset_insert(eset *s, void *p); -/* Prüft ob eine Adresse in der Menge enthalten ist. */ -bool eset_contains(eset *, void *); +/** Checks, whether an address is element of a set. */ +int eset_contains(eset *s, void *p); -/* Mit den Funktionen "eset_first" und "eset_next" kann man durch die - * Menge iterieren. Die Funktion gibt jeweils die Adresse zurück. Wenn - * keine weiteren Adressen in der Menge sind, geben die Funktionen - * "NULL" zurück. Warnung: Man sollte deshalb "NULL" nicht in der - * Menge speichern, weil man sonst nicht durch die Menge iterieren - * kann. - * ACHTUNG: Waehrend dem iterieren darf man keine neuen Elemente - * einfuegen!! */ -void * eset_first(eset *); -void * eset_next(eset *); +/** + * Starts the iteration over a set and returns the first element or NULL + * if the set is empty. + * + * @note: It is NOT possible to add new elements while iterating through a set. + */ +void *eset_first(eset *s); -/* Fügt alle Elemente der Menge "source" der Menge "target" - * hinzu. Diese Funktion funktioniert nur, wenn in der Menge "source" - * die "NULL"-Adresse nicht enthalten ist. */ -void eset_insert_all(eset * target, eset * source); +/** + * Continues iteration through a set and returns the next element or NULL if the + * iteration is finished. + * + * @note: It is NOT possible to add new elements while iterating through a set. + */ +void *eset_next(eset *s); +/** Inserts all elements of source into target (union). Did NOT work if NULL is contained in source. */ +void eset_insert_all(eset *target, eset *source); #endif /* _ESET_H_ */