--- stack/stack.h 2002/03/30 02:31:24 1.21 +++ stack/stack.h 2003/08/08 14:20:49 1.25 @@ -22,10 +22,48 @@ #define HASHTBLSIZE 2048 +#define CAR(X) ((X)->content.c->car) +#define CDR(X) ((X)->content.c->cdr) + +/* printf, sscanf, fgets, fprintf, fopen, perror */ +#include +/* exit, EXIT_SUCCESS, malloc, free */ +#include +/* NULL */ +#include +/* dlopen, dlsym, dlerror */ +#include +/* strcmp, strcpy, strlen, strcat, strdup */ +#include +/* getopt, STDIN_FILENO, STDOUT_FILENO, usleep */ +#include +/* EX_NOINPUT, EX_USAGE */ +#include +/* assert */ +#include +/* waitpid */ +#include + +#ifdef __linux__ +/* mtrace, muntrace */ +#include +/* ioctl */ +#include +/* KDMKTONE */ +#include +#endif /* __linux__ */ + + + /* First, define some types. */ struct cons_struct; struct symbol_struct; +struct environment_struct; + +/* A type for pointers to external functions */ +typedef void (*funcp)(struct environment_struct*); +/* funcp is a pointer to a void function (environment *) */ /* A value of some type */ typedef struct { @@ -55,6 +93,8 @@ FILE *p; /* ...or an I/O stream */ int i; /* ...or an integer */ float f; /* ...or a floating point number */ + funcp func; /* ...or a function pointer */ + char *string; /* ...or a string */ } content; /* Stores a pointer or an integer */ } value; @@ -102,9 +142,6 @@ int gc_count; /* Amount currently allocated */ } environment; -/* A type for pointers to external functions */ -typedef void (*funcp)(environment*); /* funcp is a pointer to a void - function (environment *) */ void init_env(environment*); void printerr(const char*);