typedef struct Symbol { /* symbol table entry */
	char	*name;
	short	type;	/* ID, BLTIN, UNDEF */
	union {
		double val;		/* if ID */
		double	(*ptr)();	/* if BLTIN */ 
	} u;
	struct Symbol	*next;	/* to link to another */
} Symbol;
Symbol	*install(), *lookup();

typedef union Datum {	/* interpreter stack type */
	double	val;
	Symbol	*sym;
} Datum;
extern	Datum top();

typedef int (*Inst)();	/* machine instruction */
#define STOP	(Inst) 0

extern	Inst prog[], *progbase, *code(), *progp;
extern	eval(), add(), sub(), mul(), divv(), negate(), power(), pop();
extern	assign(), bltin(), varpush(), constpush(), print(), varread();
extern	prexpr();
extern	gt(), ge(), lt(), le(), eq(), ne();
extern	branch(), cbranch();

