Annotation of 43BSD/ucb/pascal/eyacc/ey.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.