/
driver3.2@242/autoconf/
driver3.2@242/doc/LPC/
driver3.2@242/hosts/
driver3.2@242/hosts/amiga/NetIncl/
driver3.2@242/hosts/amiga/NetIncl/netinet/
driver3.2@242/hosts/amiga/NetIncl/sys/
driver3.2@242/hosts/atari/
driver3.2@242/hosts/fcrypt/
driver3.2@242/mudlib/
driver3.2@242/mudlib/sys/
driver3.2@242/util/
driver3.2@242/util/indent/hosts/next/
driver3.2@242/util/make_docs/
#define MLEN 4096
#define NSIZE 256

struct lpc_predef_s {
    char *flag;
    struct lpc_predef_s *next;
};

extern struct lpc_predef_s * lpc_predefs;

#define NELEM(a) (sizeof (a) / sizeof (a)[0])

#define lookup_predef(p) (p->type == I_TYPE_GLOBAL ? p->u.global.efun : -1)

#define I_TYPE_UNKNOWN	0
#define I_TYPE_GLOBAL	2 /* function, variable AND efuns/simul_efuns */
#define I_TYPE_LOCAL	3
#define I_TYPE_RESWORD	4
#define I_TYPE_DEFINE	5

struct defn {
    union {
	char *str;
	char *(*fun)();
    } exps;
    short nargs;
    char permanent;
    char special;
};

struct s_reswords {
    char *name;
    int code;
};
struct ident {
    char *name;
    short type;
    short hash;
    struct ident *next; /* next in hash chain */
    struct ident *inferior;
    union {
        struct defn define;
        int code;
        struct {
            short function, variable, efun, sim_efun;
        } global;
        int local;
    } u;
    struct ident *next_all;
};

struct efun_shadow {
    struct ident *shadow;
    struct efun_shadow *next;
};

extern struct ident *make_shared_identifier PROT((char *, int));
extern void free_shared_identifier PROT((struct ident*));