/* ----------------------------------------------------------
% (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