home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Professional
/
OS2PRO194.ISO
/
os2
/
prgramer
/
yacc
/
y1imp.c
< prev
next >
Wrap
C/C++ Source or Header
|
1980-01-03
|
3KB
|
83 lines
/*
HEADER: CUG nnn.nn;
TITLE: YACC - Yet Another Compilier-Compilier
VERSION: 1.0 for IBM-PC
DATE: JAN 28, 1985
DESCRIPTION: LALR(1) Parser Generator. From UNIX
KEYWORDS: Parser Generator Compilier-Compilier YACC
SYSTEM: IBM-PC and Compatiables
FILENAME: Y1IMP.C
WARNINGS: This program is not for the casual user. It will
be useful primarily to expert developers.
CRC: N/A
SEE-ALSO: LEX and PREP
AUTHORS: Scott Guthery 11100 leafwood lane Austin, TX 78750
COMPILERS: DESMET-C
REFERENCES: UNIX Systems Manuals
*/
/* 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 */
int tystate[NSTATES]; /* contains type information about the states */
int 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 */
int amem[ACTSIZE]; /* action table storage */
int *memp = amem; /* next free action table position */
/* other storage areas */
int 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 */
int **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 */
int 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;
int * zzmemsz = mem0;
int zzrrconf = 0;
/* data pulled from internal static to here */
/* declared external only in user module */
int *pyield[NPROD]; /* from ycpres */
char sarr[ISIZE]; /* from ywritm */