V10/cmd/hoc/hoc.h

Compare this file to the similar file:
Show the results in this format:

typedef struct Symbol {	/* symbol table entry */
	char	*name;
	short	type;
	union {
		double	val;		/* VAR */
		double	(*ptr)();	/* BLTIN */
		int	(**defn)();	/* FUNCTION, PROCEDURE */
		char	*str;		/* STRING */
	} 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 pop();
extern	xpop(), eval(), add(), sub(), mul(), div(), mod(), negate(), power();
extern	addeq(), subeq(), muleq(), diveq(), modeq();

typedef int (*Inst)();
#define	STOP	(Inst) 0

extern	Inst *progp, *progbase, prog[], *code();
extern	assign(), bltin(), varpush(), constpush(), print(), varread();
extern	prexpr(), prstr();
extern	gt(), lt(), eq(), ge(), le(), ne(), and(), or(), not();
extern	ifcode(), whilecode(), forcode(), call(), arg(), argassign();
extern	funcret(), procret();
extern	preinc(), predec(), postinc(), postdec();
extern	argaddeq(), argsubeq(), argmuleq(), argdiveq(), argmodeq();