home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Vectronix 2
/
VECTRONIX2.iso
/
FILES_01
/
X_PROLOG.LZH
/
X_PROLOG
/
SOURCES
/
EXTERN.H
< prev
next >
Wrap
C/C++ Source or Header
|
1990-08-13
|
4KB
|
114 lines
/*
* X PROLOG Vers. 2.0
*
*
* Written by : Andreas Toenne
* CS Dept. , IRB
* University of Dortmund, W-Germany
* <at@unido.uucp>
* <....!seismo!unido!at>
* <at@unido.bitnet>
*
* Copyright : This software is copyrighted by Andreas Toenne.
* Permission is granted hereby to copy the entire
* package including this copyright notice without fee.
*
*/
/* global stack (env, backlog, frame) */
extern char *stack; /* pointer to the stack */
extern char *stacktop; /* top of stack */
extern char *stackfull; /* hightide */
/* backtrack stack (embedded in the stack) */
extern backlog *Backpoint; /* the topmost backtrack point */
/* enviroment stack (embedded in the stack) */
extern env *Topenv; /* the topmost enviroment */
extern env *Preenv; /* the previous enviroment */
/* prototyp stack(area) */
extern char *protostack; /* the prototypes stack */
extern term *prototop; /* the current top element */
extern term *protonext; /* the next to be used element */
extern char *protofull; /* the highest element */
extern term *protofree[]; /* list of free terms */
/* copyterm stack */
extern char *copystack; /* the copystack */
extern term *copytop; /* the current top element */
extern term *copynext; /* the next to be used element */
extern char *copyfull; /* the highest element */
/* trail stack */
extern term **trailstack; /* the stack base */
extern long trailtop; /* the index of the next free element */
extern long trailfull; /* the highest possible index */
/* clause area */
extern clause *clausesp; /* room for clauses */
extern clause *clausefree; /* pointer to next free clause */
extern long clausefull;
extern clause *clausenext;
/* functor area */
extern char *functorsp; /* room for functors */
extern char *functorfull;
extern char *functornext; /* next functor */
extern functor *functors; /* the root of the AVL tree */
/* io data */
extern stream streams[MAXSTREAMS]; /* list of open streams */
extern stream *in; /* current input stream */
extern stream *out; /* current output stream */
/* standard data */
extern functor *stdfunctor[]; /* list of standard functors */
/* error values */
extern short c_errno; /* the number of the last soft error */
extern short io_errors; /* signal io errors ? */
/* enviroment data (from executing shell) */
extern char *shell; /* the path of the default shell */
extern char *enviroment[]; /* the program's enviroment */
/* reader data */
extern lookup l_table[]; /* the lookup table */
extern short tide; /* end-of-table */
extern char line[]; /* buffer for the current line */
extern char name[]; /* temp. name space */
extern char *p; /* pointer to current character */
extern char c; /* the current character */
extern char lastc; /* low io */
extern short c_type; /* the type of the current character */
extern char *token; /* the currently read token */
extern short token_type; /* it's type */
extern short valid_token; /* token is unused */
extern term *prompt; /* the prompt */
/* misc data */
extern short dodebug;
#ifdef ATARI
extern long s_time; /* timer tic at prolog's start */
#endif
extern long *abortpoint; /* save point of abort */
extern short booting; /* true while booting */
extern long lastconsult; /* last consulted clause */