|
|
1.1 root 1: #include <stdio.h>
2:
3: #include "global.h"
4: #include "gtabs.h"
5:
6: lispval lispsys[SIGNIF]; /* lisp data used by system */
7:
8: lispval gftab[GFTABLEN]; /* global function table for interpreter */
9:
10: lispval gctab[GCTABLEN] = /* global constant table for interpreter */
11: {nil,0,SMALL(-1),SMALL(0),SMALL(1),SMALL(2),SMALL(3),SMALL(4)};
12:
13:
14: /* Port definitions *****************************************************/
15: FILE *piport, /* standard input port */
16: *poport, /* standard output port */
17: *errport, /* port for error messages */
18: *rdrport, /* temporary port for readr */
19: *proport; /* port for protocal */
20: int lineleng = 80; /* line length desired */
21: int rlevel; /* used to indicate depth of recursion
22: in reader. No longer really necessary */
23: char keybin = FALSE; /* logical flag: using keyboard */
24: char protflag = FALSE; /* logical flag: want protocall */
25: char rbktf; /* logical flag: ] mode */
26:
27:
28: /* name stack ***********************************************************/
29: struct argent *namptr, /* temporary pointer */
30: *nplim; /* don't have this = np */
31: struct nament *bnp, /* top of bind stack */
32: *orgbnp, /* absolute bottom of ""*/
33: *bnplim; /* absolute top of "" */
34:
35:
36: /* the typeing table ****************************************************/
37: #ifndef ROWAN
38: char typetab[TTSIZE] = {UNBO,ATOM,INT,INT,PORT};
39: #else
40: char typetab[TTSIZE] = {UNBO,ATOM,INT,INT,INT,PORT};
41: #endif
42:
43: /* hashing things *******************************************************/
44: struct atom *hasht[HASHTOP];
45: int hash; /* set by ratom */
46: int atmlen; /* length of atom including final null */
47:
48:
49: /* big string buffer for whomever needs it ******************************/
50: char strbuf[STRBLEN];
51: char *endstrb = strbuf + 255;
52:
53: /* set by sstatus commands */
54: int uctolc = 0; /* when set, uc chars in atoms go to lc */
55: int dmpmode = 413; /* default mode for dumplisp
56: (note this is decimal not octal) */
57:
58: /* break and error declarations *****************************************/
59: int depth = 0; /* depth of nested breaks */
60: lispval contval; /* the value being returned up */
61: struct argent *orgnp; /* used by top level to reset to start */
62: int retval; /* used by each error/prog call */
63:
64:
65: /* other stuff **********************************************************/
66: lispval ftemp,vtemp,argptr,ttemp; /* temporaries: use briefly */
67: int itemp;
68: lispval sigacts[16]; /* for catching interrupts */
69: int sigstruck,sigdelay; /* for catching interrupts */
70: lispval stattab[16]; /* miscelleneous options */
71:
72: /* interpreter globals */
73:
74: int lctrace;
75: int fvirgin;
76: int GCtime;
77: int errp; /* where are lying through our teeth. This
78: is a pointer to inside a function. */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.