/* ----------------------------------------------------------
%   (C)1992 Institute for New Generation Computer Technology
%       (Read COPYRIGHT for detailed information.)
----------------------------------------------------------- */
/*=====================================================================
*		cu-Prolog III (Constraint Unification Prolog)
*   Copyright: Institute for New Generation Computer Technology,Japan 
*                           1989--91
==================================================================== */
/*--------------------------------------------------------------------
*		<< globalv.h >>
*		global variable external reference
*       93.7.30 heap, stack
*       94.8.10 unsigned char for Kanji
--------------------------------------------------------------------*/

extern long CONSTRAINT_HANDLING_TIME;

extern FILE *fp,*wfp,*lfp; /* read file pointer, write fp, log fp */
extern int tty;
extern int cbuf;	/* character buffer */
extern struct ustack *utop;	/* save user stack pointer */
extern int ECHO_BACK;
extern int Handle_Undefined;  /* handling undefined predicates */
extern int Print_Depth;  /* maximum depth of printing */

extern int tflag;   /* trace flag  0-> off, 1-> on 2->step trace on */
extern int sflag;   /* solution mode flag  1->all solutions, 0->one solution */
extern int CTmode;			/* trace mode 0,1,2 */
extern int refute_node_count;	/* refute counter using in c.t. */

extern int char_type[128];
extern unsigned char nbuf[];		/* name buffer */
extern int tokentype, reread;
extern char	genname[8];		/* generated function name */
extern char	logfile[32];		/* log file name */
extern char     Anonymous_VarName[4];
extern int GENSYM;

extern int    v_number, p_number;	/* temporary var number */
extern struct term *v_list, *pv_list;	/* temporary var list */
extern struct func *f_list;	 /* new function list entry */
extern struct operator *o_list;
extern struct node *n_last;		/* node list */
extern struct itrace *newf_list;	/* new function definition  */
extern struct pst_item *psttable;

extern int FNUMBER;		/* function number seed */
extern int  Def_Modified;		/* def modified flag */

extern int Refcount;		/* maximum of refute counter */
extern int MODULARMAX;		/* maximum number of Variables in Trans */

/*  system predicates in cu-prolog  */
struct func *LIST,*CUNIFY;
struct term *NIL,  *FAIL, *END_OF_FILE;
struct term *Anonymous_var;
struct pair *Anonymous_env;
struct clause *MFAIL;
struct term *XF_P, *YF_P, *FX_P, *FY_P, *XFX_P, *XFY_P, *YFX_P;
struct term *S_GLOBAL_VAR, *S_VAR, *S_INTEGER, *S_FLOAT;
struct term *S_STRING, *S_FILE_POINTER, *S_PST, *S_CLAUSE;
struct term *S_LIST, *S_FUNCTOR, *S_ATOM, *S_PSTOBJ;
struct term *S_EQ, *S_GREATER, *S_LESS;
extern struct node  *Last_BT, *Last_SKIP;

/* default heap size  */
extern int HEAP_SIZE,SHEAP_SIZE,ESP_SIZE,CHEAP_SIZE,USTACK_SIZE,NAME_SIZE;
/* heap/stack pointers */
extern int *sheap, *shp, *SHEAPTOP;		/* system heap */
extern int *heap, *hp, *Heap_Max, *HEAPTOP;	/* local heap */
extern int *cheap, *chp, *Cheap_Max, *CHEAPTOP; /* constrains heap */
extern struct pair *eheap, *ep, *Esp_Max, *ESPTOP;
extern struct ustack *ustack, *usp, *Stack_Max, *STACKTOP;
extern char *nheap, *nhp, *NHEAPTOP;

#include <setjmp.h>
extern jmp_buf reset;
extern jmp_buf unbreak_reset;		/* trace --- unbreak */

/* for statistics */
extern int STAT_BACKTRACK_DEEP, STAT_BACKTRACK_SHAL, STAT_REFUTE;
extern int STAT_UNFOLD, STAT_FOLD, STAT_DEF;


syntax highlighted by Code2HTML, v. 0.9.1