1 /* ldefs.c 4.1 83/08/11 */ 2 3 # include <stdio.h> 4 # define PP 1 5 # ifdef unix 6 7 # define CWIDTH 7 8 # define CMASK 0177 9 # define ASCII 1 10 # endif 11 12 # ifdef gcos 13 # define CWIDTH 9 14 # define CMASK 0777 15 # define ASCII 1 16 # endif 17 18 # ifdef ibm 19 # define CWIDTH 8 20 # define CMASK 0377 21 # define EBCDIC 1 22 # endif 23 24 # ifdef ASCII 25 # define NCH 128 26 # endif 27 28 # ifdef EBCDIC 29 # define NCH 256 30 # endif 31 32 33 # define TOKENSIZE 1000 34 # define DEFSIZE 40 35 # define DEFCHAR 1000 36 # define STARTCHAR 100 37 # define STARTSIZE 256 38 # define CCLSIZE 1000 39 # ifdef SMALL 40 # define TREESIZE 600 41 # define NTRANS 1500 42 # define NSTATES 300 43 # define MAXPOS 1500 44 # define NOUTPUT 1500 45 # endif 46 47 # ifndef SMALL 48 # define TREESIZE 1000 49 # define NSTATES 500 50 # define MAXPOS 2500 51 # define NTRANS 2000 52 # define NOUTPUT 3000 53 # endif 54 # define NACTIONS 100 55 # define ALITTLEEXTRA 30 56 57 # define RCCL NCH+90 58 # define RNCCL NCH+91 59 # define RSTR NCH+92 60 # define RSCON NCH+93 61 # define RNEWE NCH+94 62 # define FINAL NCH+95 63 # define RNULLS NCH+96 64 # define RCAT NCH+97 65 # define STAR NCH+98 66 # define PLUS NCH+99 67 # define QUEST NCH+100 68 # define DIV NCH+101 69 # define BAR NCH+102 70 # define CARAT NCH+103 71 # define S1FINAL NCH+104 72 # define S2FINAL NCH+105 73 74 # define DEFSECTION 1 75 # define RULESECTION 2 76 # define ENDSECTION 5 77 # define TRUE 1 78 # define FALSE 0 79 80 # define PC 1 81 # define PS 1 82 83 # ifdef DEBUG 84 # define LINESIZE 110 85 extern int yydebug; 86 extern int debug; /* 1 = on */ 87 extern int charc; 88 # endif 89 90 # ifndef DEBUG 91 # define freturn(s) s 92 # endif 93 94 extern int sargc; 95 extern char **sargv; 96 extern char buf[520]; 97 extern int ratfor; /* 1 = ratfor, 0 = C */ 98 extern int yyline; /* line number of file */ 99 extern int sect; 100 extern int eof; 101 extern int lgatflg; 102 extern int divflg; 103 extern int funcflag; 104 extern int pflag; 105 extern int casecount; 106 extern int chset; /* 1 = char set modified */ 107 extern FILE *fin, *fout, *fother, *errorf; 108 extern int fptr; 109 extern char *ratname, *cname; 110 extern int prev; /* previous input character */ 111 extern int pres; /* present input character */ 112 extern int peek; /* next input character */ 113 extern int *name; 114 extern int *left; 115 extern int *right; 116 extern int *parent; 117 extern char *nullstr; 118 extern int tptr; 119 extern char pushc[TOKENSIZE]; 120 extern char *pushptr; 121 extern char slist[STARTSIZE]; 122 extern char *slptr; 123 extern char **def, **subs, *dchar; 124 extern char **sname, *schar; 125 extern char *ccl; 126 extern char *ccptr; 127 extern char *dp, *sp; 128 extern int dptr, sptr; 129 extern char *bptr; /* store input position */ 130 extern char *tmpstat; 131 extern int count; 132 extern int **foll; 133 extern int *nxtpos; 134 extern int *positions; 135 extern int *gotof; 136 extern int *nexts; 137 extern char *nchar; 138 extern int **state; 139 extern int *sfall; /* fallback state num */ 140 extern char *cpackflg; /* true if state has been character packed */ 141 extern int *atable, aptr; 142 extern int nptr; 143 extern char symbol[NCH]; 144 extern char cindex[NCH]; 145 extern int xstate; 146 extern int stnum; 147 extern int ctable[]; 148 extern int ZCH; 149 extern int ccount; 150 extern char match[NCH]; 151 extern char extra[NACTIONS]; 152 extern char *pcptr, *pchar; 153 extern int pchlen; 154 extern int nstates, maxpos; 155 extern int yytop; 156 extern int report; 157 extern int ntrans, treesize, outsize; 158 extern long rcount; 159 extern int optim; 160 extern int *verify, *advance, *stoff; 161 extern int scon; 162 extern char *psave; 163 extern char *calloc(), *myalloc(); 164 extern int buserr(), segviol(); 165