/
teeny/db/
teeny/dbm/
teeny/doc/
teeny/includes/
/*
	Header for the TeenyMUD database manager. Of course.
*/

/* Atom types */

#define AND	-1
#define OR	-2
#define NOT	-3
#define STOP	-4

/*
These aren't strictly atom types. We use them as token types to
indicate open parens and close parens respectively, in the parse phase
Also, bad tokens. The expression parser should die when it gets a BADTOK back.
*/

#define OPEN	-5
#define CLOSE	-6
#define BADTOK	-7

/* More atom types */

#define DBM_NAME	0
#define DBM_FLAG	1
#define DBM_TIME	2
#define DBM_OWNER	3
#define DBM_NUMBER	4
#define DBM_TYPE	5

/*
These are atoms. We fill an array up with a list of these to
form an RPN expression which we evaluate for every item in the DB.
*/

struct atom {
	int	type;
	union {
		char *name;
		int flag;
		int time;
		int owner;
		int number;
	} data;
};

typedef struct atom atom;
/* The biggest an expression can be. (Number of atoms) */

#define MAXEXPR	256

/*
Flags for DB lookup. A bit vector tells us what elements from each object
to retrieve from the DB for the given expression.
*/

#define REQ_FLAG	0x0001
#define REQ_TIME	0x0002
#define REQ_OWNER	0x0004
#define REQ_NUMBER	0x0008
#define REQ_NAME	0x0010


char *malloc();