windows-nt/Source/XPSP1/NT/com/rpc/tools/yacc/y2imp.c
2020-09-26 16:20:57 +08:00

57 lines
1.7 KiB
C

// Copyright (c) 1993-1999 Microsoft Corporation
/* Impure data needed by routines pulled from Y2.C */
#define y2imp YES
#include "dtxtrn.h"
/* communication variables between various I/O routines */
char *infile; /* input file name */
SSIZE_T numbval; /* value of an input number */
char tokname[NAMESIZE]; /* input token name */
/* storage of names */
char cnames[CNAMSZ]; /* place where token and nonterminal names are stored */
int cnamsz = CNAMSZ; /* size of cnames */
char * cnamp = cnames; /* place where next name is to be put in */
int ndefout = 3; /* number of defined symbols output */
/* storage of types */
int ntypes; /* number of types defined */
char * typeset[NTYPES]; /* pointers to type tags */
/* symbol tables for tokens and nonterminals */
int ntokens = 0;
struct toksymb tokset[NTERMS];
int toklev[NTERMS];
int nnonter = -1;
struct ntsymb nontrst[NNONTERM];
int start; /* start symbol */
/* assigned token type values */
int extval = 0;
/* input and output file descriptors */
FILE * finput = NULL; /* yacc input file */
FILE * faction = NULL; /* file for saving actions */
FILE * fdefine = NULL; /* file for # defines */
FILE * ftable = NULL; /* y.tab.c file */
FILE * ftemp = NULL; /* tempfile to pass 2 */
FILE * foutput = NULL; /* y.output file */
/* storage for grammar rules */
SSIZE_T mem0[MEMSIZE] ; /* production storage */
SSIZE_T *mem = mem0;
int nprod= 1; /* number of productions */
SSIZE_T *prdptr[NPROD]; /* pointers to descriptions of productions */
SSIZE_T levprd[NPROD] ; /* precedence levels for the productions */
/* Statics pulled from modules */
int peekline; /* from gettok() */