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