/* 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();