#ifndef _UTIL_H #define _UTIL_H #define MAX_LINE_LENGTH 255 #include #ifdef NDEBUG #define dbg_print(x) #else #define dbg_print(x) fprintf(stderr, x) #endif #ifdef NDEBUG #define dbg_print2(x, y) #else #define dbg_print2(x, y) fprintf(stderr, x, y) #endif #ifdef NDEBUG #define dbg_print3(x, y, z) #else #define dbg_print3(x, y, z) fprintf(stderr, x, y, z) #endif typedef struct linkedlist* LinkedList; LinkedList emptyList(); void list_add(LinkedList list, void* item); void* getFirst(LinkedList list); int linkedListSize(LinkedList list); void deleteList(LinkedList list); void* removeItem(LinkedList list, void* item, int (*eq)(void* i1, void* i2)); void* replaceItem(LinkedList list, void* remove, void* replace, int (*eq)(void* i1, void* i2)); int identity(void* i1, void* i2); char *copyString(char *s); int nonwhitespace(char*s); void* doubleAndCopy(void* area, size_t size); void printList(LinkedList list, void (*print)(void* item)); #endif