home *** CD-ROM | disk | FTP | other *** search
- /*
- 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: YFLSET.1C
- 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
- */
-
- #include "y1.h"
-
- struct looksets *flset( struct looksets *p )
-
- {
- /* decide if the lookahead set pointed to by p is known */
- /* return pointer to a perminent location for the set */
-
- register struct looksets *q;
- int j, *w;
- register *u, *v;
-
- for( q = &lkst[nlset]; q-- > lkst; )
- {
- u = p->lset;
- v = q->lset;
- w = & v[tbitset];
- while( v<w) if( *u++ != *v++ ) goto more;
- /* we have matched */
- return( q );
- more:
- ;
- }
- /* add a new one */
- q = &lkst[nlset++];
- if( nlset >= LSETSIZE )error("too many lookahead sets" );
- SETLOOP(j)
- {
- q->lset[j] = p->lset[j];
- }
- return( q );
- }
-