/* Algol.h */

#ifndef DEBUG
#define DEBUG	0
#endif

#define bool	char
#if sizeofint==2
#define INT32   0
#define INT16   1
#define inta	long	/* 32 bit long integers in Algol-68 */
#else
#define INT32   1
#define INT16   0
#define inta    int
#endif

#define TRUE	1
#define FALSE	0

/*----------------------------------------------------------------------*/
/* standard variables */

extern int    max_PX;	/* program text bounds */
extern int    max_X;
extern short *X;	/* the program text */
extern int    PX;	/* end of program text in X[] */
extern int    P;	/* points to the next program symbol in X[] */
extern int    PLAB;	/* position of the label to jump to */

#define	max_IND	2047	/* size of link arrays */
extern short  *LIND, *VIND;  /* link arrays */
extern int    J;	/* last used element of LIND[]--VIND[] */
extern int    JGLOB;	/* beginning of the actual dynamic range */

#define max_A	16383	/* size of working area */
extern short  *A, *D;	/* working arrays */
extern int    *B, *C;
extern int    init_A;	/* first useful place */
extern int    Z;	/* value of the elaborated object (A[] index) */
extern int    FS;	/* first in the chain of free elements */

extern int    max_DN, *DN;  /* denotation */
extern bool   MORF;	/* indicates whether should be deprocedured or not */
extern int    dummy;
extern bool   bummy;	/* dummy variables */

/*----------------------------------------------------------------------*/
/* F, G, H */

extern int F, G, H;

/*----------------------------------------------------------------------*/

#if DEBUG
#include <stdio.h>
extern FILE *O;		    /* trace file */
#endif

/*----------------------------------------------------------------------*/
#include "constant.h"
#include "repr.h"
#include "error.h"



