// Copyright (c) 1993-1999 Microsoft Corporation /* Impure data used by modules originally in Y1.C. External declarations in Y1.H */ #define y1imp yes #include "dtxtrn.h" /* lookahead computations */ int tbitset; /* size of lookahead sets */ struct looksets lkst [ LSETSIZE ]; int nlset = 0; /* next lookahead set index */ int nolook = 0; /* flag to suppress lookahead computations */ struct looksets clset; /* temporary storage for lookahead computations */ /* working set computations */ struct wset wsets[ WSETSIZE ]; struct wset *cwp; /* state information */ int nstate = 0; /* number of states */ struct item *pstate[NSTATES+2]; /* pointers to the descriptions of the states */ SSIZE_T tystate[NSTATES]; /* contains type information about the states */ SSIZE_T indgo[NSTATES]; /* index to the stored goto table */ int tstates[ NTERMS ]; /* states generated by terminal gotos */ int ntstates[ NNONTERM ]; /* states generated by nonterminal gotos */ int mstates[ NSTATES ]; /* chain of overflows of term/nonterm generation lists */ /* storage for the actions in the parser */ SSIZE_T amem[ACTSIZE]; /* action table storage */ SSIZE_T *memp = amem; /* next free action table position */ /* other storage areas */ SSIZE_T temp1[TEMPSIZE]; /* temporary storage, indexed by terms + ntokens or states */ int lineno= 1; /* current input line number */ int fatfl = 1; /* if on, error is fatal */ int nerrors = 0; /* number of errors */ /* storage for information about the nonterminals */ SSIZE_T **pres[NNONTERM+2]; /* vector of pointers to productions yielding each nonterminal */ struct looksets *pfirst[NNONTERM+2]; /* vector of pointers to first sets for each nonterminal */ SSIZE_T pempty[NNONTERM+1]; /* vector of nonterminals nontrivially deriving e */ /* accumulators for statistics information */ struct wset *zzcwp = wsets; int zzgoent = 0; int zzgobest = 0; int zzacent = 0; int zzexcp = 0; int zzclose = 0; int zzsrconf = 0; SSIZE_T * zzmemsz = mem0; int zzrrconf = 0; /* data pulled from internal static to here */ /* declared external only in user module */ SSIZE_T *pyield[NPROD]; /* from ycpres */ char sarr[ISIZE]; /* from ywritm */