|
|
1.1 ! root 1: /* (c) 1979 Regents of the University of California */ ! 2: #include <stdio.h> ! 3: /* MANIFEST CONSTANT DEFINITIONS */ ! 4: ! 5: # define NTBASE 010000 ! 6: ! 7: /* internal codes for error and accept actions */ ! 8: ! 9: # define ERRCODE 8190 ! 10: # define ACCEPTCODE 8191 ! 11: ! 12: # define errfileno stderr /* file number for erros and reduction message */ ! 13: # define _tbitset 6 /* 16*_tbitset - 1 >= _nterms */ ! 14: ! 15: extern int tbitset; /* number of wds of lookahead vector */ ! 16: extern int nolook; /* flag to turn off lookahed computations */ ! 17: struct looksets { int lset[ _tbitset ]; } ; ! 18: struct item { int *pitem; struct looksets *look; } ; ! 19: ! 20: /* output actions */ ! 21: ! 22: # define ERRACT 4096 ! 23: # define SHIFTACT 8192 ! 24: # define REDUCACT 12288 ! 25: # define ACCEPTACT 16384 ! 26: ! 27: # define _REGISTER register ! 28: ! 29: extern int nstate ; /* number of states */ ! 30: extern struct item *pstate[]; /* pointers to the descriptions of the states */ ! 31: extern int apstate[]; /* index to actions in amem by state */ ! 32: extern int actsiz; /* size of the action table array */ ! 33: extern int tystate[]; /* contains type information about the states */ ! 34: /* 0 = simple state, completely generated ! 35: 1 = state awaiting generation ! 36: 2 = state with an empty production in closure ! 37: */ ! 38: extern int stsize ; /* maximum number of states, at present */ ! 39: extern int memsiz ; /* maximum size for productions and states */ ! 40: extern int mem0[] ; /* added production */ ! 41: extern int *mem ; ! 42: extern int amem[]; /* action table storage */ ! 43: extern int actsiz; /* action table size */ ! 44: extern int memact ; /* next free action table position */ ! 45: extern int nprod ; /* number of productions */ ! 46: extern int *prdptr[]; /* pointers to descriptions of productions */ ! 47: extern int prdlim; /* the number of productions allowed */ ! 48: extern int levprd[] ; /* contains production levels to break conflicts */ ! 49: /* last two bits code associativity: ! 50: 0 = no definition ! 51: 1 = left associative ! 52: 2 = binary ! 53: 3 = right associative ! 54: bit 04 is 1 if the production has an action ! 55: the high 13 bits have the production level ! 56: */ ! 57: extern int nterms ; /* number of terminals */ ! 58: extern int nerrors; /* number of errors */ ! 59: extern int fatfl; /* if on, error is fatal */ ! 60: /* the ascii representations of the terminals */ ! 61: extern int extval; /* start of output values */ ! 62: extern struct sxxx1 {char *name; int value;} trmset[]; ! 63: extern char cnames[]; ! 64: extern int cnamsz; ! 65: extern char *cnamp; ! 66: extern int maxtmp ; /* the size of the temp arrays */ ! 67: /* temporary vectors, indexable by states, terms, or nterms */ ! 68: extern int temp1[]; ! 69: extern int temp2[]; ! 70: extern int trmlev[]; /* vector with the precedence of the terminals */ ! 71: /* The levels are the same as for levprd, but bit 04 is always 0 */ ! 72: /* the ascii representations of the nonterminals */ ! 73: extern struct sxxx2 { char *name; } nontrst[]; ! 74: extern int indgo[]; /* index to the stored goto table */ ! 75: extern int ***pres; /* vector of pointers to the productions yielding each nonterminal */ ! 76: extern struct looksets **pfirst; /* vector of pointers to first sets for each nonterminal */ ! 77: extern int *pempty ; /* table of nonterminals nontrivially deriving e */ ! 78: extern int nnonter ; /* the number of nonterminals */ ! 79: extern int lastred ; /* the number of the last reduction of a state */ ! 80: extern FILE *ftable; /* y.tab.c file */ ! 81: extern FILE *foutput; /* y.output file */ ! 82: extern FILE *cin; /* current input file */ ! 83: extern FILE *cout; /* current output file */ ! 84: extern int arrndx; ! 85: extern int zzcwset; ! 86: extern int zzpairs ; ! 87: extern int zzgoent ; ! 88: extern int zzgobest ; ! 89: extern int zzacent ; ! 90: extern int zzacsave ; ! 91: extern int zznsave ; ! 92: extern int zzclose ; ! 93: extern int zzrrconf ; ! 94: extern int zzsrconf ; ! 95: extern char *ctokn; ! 96: struct {int **ppi;} ; ! 97: extern int ntlim ; /* maximum number of nonterminals */ ! 98: extern int tlim ; /* maximum number of terminals */ ! 99: extern int lineno; /* current line number */ ! 100: extern int peekc; /* look-ahead character */ ! 101: extern int tstates[]; ! 102: extern int ntstates[]; ! 103: extern int mstates[]; ! 104: ! 105: extern struct looksets clset; ! 106: extern struct looksets lkst[]; ! 107: extern int nlset; /* next lookahead set index */ ! 108: extern int lsetsz; /* number of lookahead sets */ ! 109: ! 110: extern struct wset { int *pitem, flag, ws[ _tbitset ]; } wsets[]; ! 111: extern int cwset; ! 112: extern int wssize; ! 113: ! 114: extern int numbval; /* the value of an input number */ ! 115: extern int rflag; /* ratfor flag */ ! 116: extern int oflag; /* optimization flag */ ! 117: extern int ndefout; /* number of defined symbols output */ ! 118: ! 119: extern int machine; ! 120: ! 121: # define UNIX 1 ! 122: # define GCOS 2 ! 123: # define IBM 3 ! 124: ! 125: struct looksets *flset();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.