Commit | Line | Data |
---|---|---|
8cd657f4 JF |
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. */ |