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