#

/*
**  CONSTANTS.H -- manifest constants, operand and operator codes
**
**	Defines:
**		op_codes for operands
**		Opflag's domain set
**		Type_spec's domain set
**
**
**	Required By:
**		most lexical routines and the parser actions
**
**	History:
**		5/31/78 -- (marc) modified from previous
**			equels' "scanner.h" file to include some 
**			information previously contained in 
**			globals.h, and remove some unused imformation.
**		8/24/78 -- (marc) opSTRUCT added to include structure vars
**
*/

/*
** 	Manifest constants used throughout Equel
*/


# define	CONTINUE	1	/* "loop" flag for yylex */
# ifdef	MAXNAME
# undef	MAXNAME
# endif
# define	MAXNAME		13	/* maximum length for equel 
					 * identifiers (or keywords) 
					 */
# define	MAXSTRING	255	/* maximum length for equel strings */
# define	FILLCNT		110	/* length to fill lines when in Fillmode */


/* debugging info conditional compilation flag */
# define	xDEBUG			/* on for "-c" and "-v" flags */


/* 
**	Character types [cmap.c] 
*/

# define	EOF_TOK		0	/* end of parse input too */
# define	ALPHA		1	/* alphabetic or '_' */
# define	NUMBR		2	/* numeric */
# define	OPATR		3	/* other non control characters */
# define	PUNCT		4	/* white space */
# define	CNTRL		5	/* control-characters */

/*
**	Modes for Lastc in w_op() and w_key() [prtout.c] 
*/

# define	OPCHAR		0	/* last character 
					 * printed was an operator 
					 */
# define	KEYCHAR		1	/* last was alphanumeric */


/*
 * Modes used in parser actions to distinguish contexts in which
 * the same syntax applies. Opflag is set to these modes.
 *
 * (There are some modes that are never referenced, but are useful
 * for extension).
 */

	/* quel statements */

# define	mdAPPEND	1	
# define	mdCOPY		2
# define	mdCREATE	3
# define	mdDEFINE	4
# define	mdDELETE	5
# define	mdDESTROY	6
# define	mdHELP		7
# define	mdINDEX		8
# define	mdINTEGRITY	9
# define	mdMODIFY	10
# define	mdPRINT		11
# define	mdRANGE		12
# define	mdREPLACE	13
# define	mdRETRIEVE	14
# define	mdSAVE		15
# define	mdVIEW		16
# define	mdPROT		17
	
	/* statements particular to Equel */

# define	mdDECL		16	/* C - declaration */
# define	mdCTLELM	17	/* left hand side of target list element
					 * in "retrieve" to C-variables
					 */
# define	mdEXIT		18	/* ## exit */
# define	mdINGRES	19	/* ## ingres */
# define	mdTUPRET	20	/* "retrieve" w/o an "into" */
# define	mdFILENAME	21	/* used in "copy" statement */







/* define	typTYPE		xx		/*   c types "Type_spec"  */
# define			opINT		1
# define			opFLOAT		2
# define			opSTRING	3
# define			opDOUBLE	4
# define			opCHAR		5
# define			opLONG		6
# define			opIDSTRING	7
# define			opSTRUCT	8


/* define	typALLOC	xx		/*  c var allocation types  */
# define			opAUTO		0
# define			opSTATIC	1
# define			opEXTERN	2
# define			opREGISTER	3
