#ifndef SLIST_H | |
#define SLIST_H | |
/* | |
* SList.h | |
* | |
* SOFTWARE RIGHTS | |
* | |
* We reserve no LEGAL rights to SORCERER -- SORCERER is in the public | |
* domain. An individual or company may do whatever they wish with | |
* source code distributed with SORCERER or the code generated by | |
* SORCERER, including the incorporation of SORCERER, or its output, into | |
* commerical software. | |
* | |
* We encourage users to develop software with SORCERER. However, we do | |
* ask that credit is given to us for developing SORCERER. By "credit", | |
* we mean that if you incorporate our source code into one of your | |
* programs (commercial product, research project, or otherwise) that you | |
* acknowledge this fact somewhere in the documentation, research report, | |
* etc... If you like SORCERER and have developed a nice tool with the | |
* output, please mention that you developed it using SORCERER. In | |
* addition, we ask that this header remain intact in our source code. | |
* As long as these guidelines are kept, we expect to continue enhancing | |
* this system and expect to make other tools available as they are | |
* completed. | |
* | |
* SORCERER 1.00B | |
* Terence Parr | |
* AHPCRC, University of Minnesota | |
* 1992-1994 | |
*/ | |
#include "sorcerer.h" | |
typedef struct _SList { | |
void *elem; /* pointer to any kind of element */ | |
struct _SList *next; | |
} SList; | |
#define newSList (SList *) calloc(1, sizeof(SList)); | |
#ifdef __USE_PROTOS | |
extern void *slist_iterate(SList *list, SList **); | |
extern void slist_add( SList **list, void *e ); | |
extern void slist_free(SList *list); | |
#else | |
extern void *slist_iterate(); | |
extern void slist_add(); | |
extern void slist_free(); | |
#endif | |
#endif |