V10/cmd/hdr/defs.h

/*
 *	Sydney C Compiler.
 *
 *	Copyright 1984, Bruce Ellis.
 *
 *	Unauthorised possesion, sale or use prohibited.
 */

#include	"sets.h"

#define	SYSERROR	(-1)

#define	NULL		0
#define	NODE_GRABZ	64
#define	BUFFZ		4096
#define	OUTZ		4096
#define	SBUFFZ		32
#define	PERM_CHUNKZ	2048
#define	PUSHBACKZ	10
#define	EOF_CHAR	'\0'
#define	STDIN		0
#define	STDOUT		1
#define	NO_FID		(-1)

#define	loop		for (;;)
#define	readonly
#define	nels(x)		(sizeof x / sizeof x[0])

#define ctack(c, d)	((c)->c_tail->c_next = (d)->c_head, (c)->c_tail = (d)->c_tail)
#define cadd(c, w)	((c)->c_next = new_cnode(), (c) = (c)->c_next, (c)->c_what = (w))

#define	pack(x)		((pack_t)x)

typedef unsigned char	uchar;
typedef unsigned char	pack_t;

#include	"xnodes.h"
#include	"places.h"

/*
 *	Forward declarations of general purpose data types.
 */
typedef	set char	chset;
typedef set xnodes	xtset;

#include	"data.h"
#include	"xnode.h"
#include	"ident.h"

struct st_node
{
	st_node	*st_left;
	st_node	*st_right;
	char	*st_name;
	long	st_index;
	ident	*st_idlist;
};

struct	tkdope
{
	uchar	equiv_xt;
	char	prec_lev;
};

struct	level
{
	ident	*lv_idents;
};

struct choice
{
	cnode	*ch_def;
	cnode	*ch_case;
};

typedef union
{
	char	*m;
	double	*f;
	long	i;
	token	*t;
	xnode	*x;
}
	formarg;

#include	"alloc.h"
#include	"extern.h"