xref: /original-bsd/old/lex/once.c (revision 6e30ad7c)
1*6e30ad7cSbostic /*	once.c	4.2	89/05/10	*/
2e22145ffSsam 	/* because of external definitions, this code should occur only once */
3e22145ffSsam # ifdef ASCII
4e22145ffSsam int ctable[2*NCH] = {
5e22145ffSsam   0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
6e22145ffSsam  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
7e22145ffSsam  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
8e22145ffSsam  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
9e22145ffSsam  40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
10e22145ffSsam  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
11e22145ffSsam  60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
12e22145ffSsam  70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
13e22145ffSsam  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
14e22145ffSsam  90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
15e22145ffSsam 100,101,102,103,104,105,106,107,108,109,
16e22145ffSsam 110,111,112,113,114,115,116,117,118,119,
17e22145ffSsam 120,121,122,123,124,125,126,127};
18e22145ffSsam # endif
19e22145ffSsam # ifdef EBCDIC
20e22145ffSsam int ctable[2*NCH] = {
21e22145ffSsam   0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
22e22145ffSsam  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
23e22145ffSsam  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
24e22145ffSsam  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
25e22145ffSsam  40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
26e22145ffSsam  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
27e22145ffSsam  60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
28e22145ffSsam  70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
29e22145ffSsam  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
30e22145ffSsam  90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
31e22145ffSsam 100,101,102,103,104,105,106,107,108,109,
32e22145ffSsam 110,111,112,113,114,115,116,117,118,119,
33e22145ffSsam 120,121,122,123,124,125,126,127,128,129,
34e22145ffSsam 130,131,132,133,134,135,136,137,138,139,
35e22145ffSsam 140,141,142,143,144,145,146,147,148,149,
36e22145ffSsam 150,151,152,153,154,155,156,157,158,159,
37e22145ffSsam 160,161,162,163,164,165,166,167,168,169,
38e22145ffSsam 170,171,172,173,174,175,176,177,178,179,
39e22145ffSsam 180,181,182,183,184,185,186,187,188,189,
40e22145ffSsam 190,191,192,193,194,195,196,197,198,199,
41e22145ffSsam 200,201,202,203,204,205,206,207,208,209,
42e22145ffSsam 210,211,212,213,214,215,216,217,218,219,
43e22145ffSsam 220,221,222,223,224,225,226,227,228,229,
44e22145ffSsam 230,231,232,233,234,235,236,237,238,239,
45e22145ffSsam 240,241,242,243,244,245,246,247,248,249,
46e22145ffSsam 250,251,252,253,254,255};
47e22145ffSsam # endif
48e22145ffSsam int ZCH = NCH;
49e22145ffSsam FILE *fout = NULL, *errorf = {stdout};
50e22145ffSsam int sect = DEFSECTION;
51e22145ffSsam int prev = '\n';	/* previous input character */
52e22145ffSsam int pres = '\n';	/* present input character */
53e22145ffSsam int peek = '\n';	/* next input character */
54e22145ffSsam char *pushptr = pushc;
55e22145ffSsam char *slptr = slist;
56e22145ffSsam 
57e22145ffSsam # if (unix || ibm)
58*6e30ad7cSbostic char *cname = _PATH_NCFORM;
59*6e30ad7cSbostic char *ratname = _PATH_NRFORM;
60e22145ffSsam # endif
61e22145ffSsam 
62e22145ffSsam # ifdef gcos
63e22145ffSsam char *cname = "pounce/lexcform";
64e22145ffSsam char *ratname = "pounce/lexrform";
65e22145ffSsam # endif
66e22145ffSsam int ccount = 1;
67e22145ffSsam int casecount = 1;
68e22145ffSsam int aptr = 1;
69e22145ffSsam int nstates = NSTATES, maxpos = MAXPOS;
70e22145ffSsam int treesize = TREESIZE, ntrans = NTRANS;
71e22145ffSsam int yytop;
72e22145ffSsam int outsize = NOUTPUT;
73e22145ffSsam int sptr = 1;
74e22145ffSsam int optim = TRUE;
75e22145ffSsam int report = 2;
76e22145ffSsam int debug;		/* 1 = on */
77e22145ffSsam int charc;
78e22145ffSsam int sargc;
79e22145ffSsam char **sargv;
80e22145ffSsam char buf[520];
81e22145ffSsam int ratfor;		/* 1 = ratfor, 0 = C */
82e22145ffSsam int yyline;		/* line number of file */
83e22145ffSsam int eof;
84e22145ffSsam int lgatflg;
85e22145ffSsam int divflg;
86e22145ffSsam int funcflag;
87e22145ffSsam int pflag;
88e22145ffSsam int chset;	/* 1 = char set modified */
89e22145ffSsam FILE *fin, *fother;
90e22145ffSsam int fptr;
91e22145ffSsam int *name;
92e22145ffSsam int *left;
93e22145ffSsam int *right;
94e22145ffSsam int *parent;
95e22145ffSsam char *nullstr;
96e22145ffSsam int tptr;
97e22145ffSsam char pushc[TOKENSIZE];
98e22145ffSsam char slist[STARTSIZE];
99e22145ffSsam char **def, **subs, *dchar;
100e22145ffSsam char **sname, *schar;
101e22145ffSsam char *ccl;
102e22145ffSsam char *ccptr;
103e22145ffSsam char *dp, *sp;
104e22145ffSsam int dptr;
105e22145ffSsam char *bptr;		/* store input position */
106e22145ffSsam char *tmpstat;
107e22145ffSsam int count;
108e22145ffSsam int **foll;
109e22145ffSsam int *nxtpos;
110e22145ffSsam int *positions;
111e22145ffSsam int *gotof;
112e22145ffSsam int *nexts;
113e22145ffSsam char *nchar;
114e22145ffSsam int **state;
115e22145ffSsam int *sfall;		/* fallback state num */
116e22145ffSsam char *cpackflg;		/* true if state has been character packed */
117e22145ffSsam int *atable;
118e22145ffSsam int nptr;
119e22145ffSsam char symbol[NCH];
120e22145ffSsam char cindex[NCH];
121e22145ffSsam int xstate;
122e22145ffSsam int stnum;
123e22145ffSsam char match[NCH];
124e22145ffSsam char extra[NACTIONS];
125e22145ffSsam char *pchar, *pcptr;
126e22145ffSsam int pchlen = TOKENSIZE;
127e22145ffSsam  long rcount;
128e22145ffSsam int *verify, *advance, *stoff;
129e22145ffSsam int scon;
130e22145ffSsam char *psave;
131e22145ffSsam int buserr(), segviol();
132