/
umud/DOC/
umud/DOC/U/
umud/DOC/U/U-examples/
umud/DOC/internals/
umud/DOC/wizard/
umud/MISC/
umud/MISC/dbchk/
umud/RWHO/rwhod/
#ifndef	_INCL_U_H

/*
It is inevitable that someone will complain that having structure
elements named such things as n->rv.t or n->r->rv.t is cryptic and
is hard to read. The author actually finds such code fairly easy
to read, and the compiler has no problems with it either, therefore
the author advises the complainer to simply Deal With It.
*/
typedef	struct	_n {
	struct	_n	*l;
	struct	_n	*r;
	struct	{			/* this could be a union, but.. */
		int	t;		/* value of node */
		char	*cv;		/* char pointer value */
		int	iv;		/* integral value */
	} rv, nv;			/* nv:node, rv:return stack */
} Nod;

#define	NNULL	((Nod *)0)

/* builtin intrinsic table */
typedef	struct	{
	char	*nam;
	int	argc;
	int	flgs;
	int     (*func)();
} Bltin;
extern	Bltin	*u_bltlookup();

#define	BLT_NOFLGS	00
#define	BLT_WIZONLY	01
#define	BLT_FIXARG	02

extern	void	eval_adopt();
extern	int	eval_castint();
extern	char	*eval_caststr();

#define	_INCL_U_H
#endif