Annotation of cci/usr/src/usr.bin/efl/lex.c, revision 1.1

1.1     ! root        1: # include "stdio.h"
        !             2: # define U(x) x
        !             3: # define NLSTATE yyprevious=YYNEWLINE
        !             4: # define BEGIN yybgin = yysvec + 1 +
        !             5: # define INITIAL 0
        !             6: # define YYLERR yysvec
        !             7: # define YYSTATE (yyestate-yysvec-1)
        !             8: # define YYOPTIM 1
        !             9: # define YYLMAX 200
        !            10: # define output(c) putc(c,yyout)
        !            11: # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):efgetc)==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
        !            12: # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
        !            13: # define yymore() (yymorfg=1)
        !            14: # define ECHO fprintf(yyout, "%s",yytext)
        !            15: # define REJECT { nstr = yyreject(); goto yyfussy;}
        !            16: int yyleng; extern char yytext[];
        !            17: int yymorfg;
        !            18: extern char *yysptr, yysbuf[];
        !            19: int yytchar;
        !            20: FILE *yyin ={stdin}, *yyout ={stdout};
        !            21: extern int yylineno;
        !            22: struct yysvf { 
        !            23:        struct yywork *yystoff;
        !            24:        struct yysvf *yyother;
        !            25:        int *yystops;};
        !            26: struct yysvf *yyestate;
        !            27: extern struct yysvf yysvec[], *yybgin;
        !            28: # define DOTSON 2
        !            29: #include <ctype.h>
        !            30: #include "defs"
        !            31: #include "tokdefs"
        !            32: 
        !            33: typedef union { int ival; ptr pval; } YYSTYPE;
        !            34: extern YYSTYPE yylval;
        !            35: YYSTYPE prevl;
        !            36: int prevv;
        !            37: char *copys();
        !            38: static ptr p;
        !            39: static ptr q;
        !            40: static FILE *fd;
        !            41: static int quoted, k;
        !            42: static int rket        = 0;
        !            43: FILE *opincl();
        !            44: ptr mkdef(), mkcomm(), mkname(), mkimcon();
        !            45: 
        !            46: #define RET(x) { RETI(x,x);  }
        !            47: 
        !            48: #define RETL(yv,yl) {yylval=prevl=yl;igeol=comneed=0;return(prevv=yv); }
        !            49: #define RETP(yv,yl) {yylval.pval=prevl.pval=yl;igeol=comneed=0;return(prevv=yv); }
        !            50: #define RETI(yv,yl) {yylval.ival=prevl.ival=yl;igeol=comneed=0;return(prevv=yv); }
        !            51: #define REL(n)  {  RETI(RELOP, OPREL+n);}
        !            52: #define AS(n)  {  RETI(ASGNOP, OPASGN+n); }
        !            53: #define RETC(x) { RETP(CONST, mkconst(x,yytext) );  }
        !            54: #define RETZ(x) { yytext[yyleng-1] = '\0'; RETP(CONST, mkimcon(x,yytext) ); }
        !            55: 
        !            56: # define YYNEWLINE 10
        !            57: yylex(){
        !            58: int nstr; extern int yyprevious;
        !            59: if(pushlex)
        !            60:        if(pushlex==1)
        !            61:                {
        !            62:                pushlex = 2;
        !            63:                yylval.ival = 0;
        !            64:                return(EOS);
        !            65:                }
        !            66:        else    {
        !            67:                pushlex = 0;
        !            68:                if(rket == 2)
        !            69:                        rket = 1;
        !            70:                else    RETL(prevv,prevl);
        !            71:                }
        !            72: if(rket > 0)
        !            73:        {
        !            74:        if(rket==1)
        !            75:                {
        !            76:                rket = 2;
        !            77:                RET(RBRACK);
        !            78:                }
        !            79:        else    {
        !            80:                rket = 0;
        !            81:                RET(EOS);
        !            82:                }
        !            83:        }
        !            84: if(eofneed) return(0);
        !            85: if(forcerr) return(-1);
        !            86: while((nstr = yylook()) >= 0)
        !            87: yyfussy: switch(nstr){
        !            88: case 0:
        !            89: if(yywrap()) return(0); break;
        !            90: case 1:
        !            91: {
        !            92:                   lower(yytext);
        !            93:                   if(lettneed && yyleng==1)
        !            94:                        { RETI(LETTER, yytext[0]); }
        !            95:                   else if(defneed)
        !            96:                        {
        !            97:                        register char *q1, *q2;
        !            98:                        for(q2=q1=yytext+yyleng+1 ; (*q1 = efgetc)!='\n' ; ++q1)
        !            99:                                ;
        !           100:                        *q1 = '\0';
        !           101:                        p = mkdef(yytext, q2);
        !           102:                        defneed = 0;
        !           103:                        ++yylineno;
        !           104:                        unput('\n');
        !           105:                        }
        !           106:                   else if(optneed)
        !           107:                        { RETP(OPTNAME, copys(yytext)); }
        !           108:                   else if(comneed && ( (q=name(yytext,1))==NULL || q->tag!=TDEFINE) )
        !           109:                        { RETP(COMNAME, mkcomm(yytext) ); }
        !           110:                   else if(q = name(yytext,1)) switch(q->tag)
        !           111:                        {
        !           112:                        case TDEFINE:
        !           113:                                filelines[filedepth] = yylineno;
        !           114:                                filemacs[filedepth] = efmacp;
        !           115:                                pushchars[filedepth] = (yysptr>yysbuf?
        !           116:                                                *--yysptr : -1);
        !           117:                                if(++filedepth >= MAXINCLUDEDEPTH)
        !           118:                                        fatal("macro or include too deep");
        !           119:                                filelines[filedepth] = yylineno = 1;
        !           120:                                efmacp = q->varp->valp;
        !           121:                                filenames[filedepth] = NULL;
        !           122:                                break;  /*now process new input */
        !           123: 
        !           124:                        case TSTRUCT:
        !           125:                                RETP(STRUCTNAME, q);
        !           126: 
        !           127:                        case TNAME:
        !           128:                                RETP(NAME, q);
        !           129: 
        !           130:                        case TKEYWORD:
        !           131:                                if(q->subtype == END)
        !           132:                                        {
        !           133:                                        register int c;
        !           134:                                        eofneed = YES;
        !           135:                                        while((c=input())!=';'&&c!='\n'&&c!=EOF)
        !           136:                                                ;
        !           137:                                        NLSTATE;
        !           138:                                        }
        !           139:                                RET(q->subtype);
        !           140: 
        !           141:                        default:
        !           142:                                fatal1("lex: impossible type code %d", q->tag);
        !           143:                        }
        !           144:                   else  RETP(NAME, mkname(yytext) );
        !           145:                }
        !           146: break;
        !           147: case 2:
        !           148: RET(COMMA);
        !           149: break;
        !           150: case 3:
        !           151: RET(EOS);
        !           152: break;
        !           153: case 4:
        !           154: RET(LPAR);
        !           155: break;
        !           156: case 5:
        !           157: RET(RPAR);
        !           158: break;
        !           159: case 6:
        !           160: case 7:
        !           161: RET(LBRACK);
        !           162: break;
        !           163: case 8:
        !           164: case 9:
        !           165: { if(iobrlevel>0) RET(RBRACK); rket = 1;  RET(EOS); }
        !           166: break;
        !           167: case 10:
        !           168: RET(COMMA);
        !           169: break;
        !           170: case 11:
        !           171: RET(COLON);
        !           172: break;
        !           173: case 12:
        !           174: RET(REPOP);
        !           175: break;
        !           176: case 13:
        !           177: case 14:
        !           178: RETI(OR,OPOR);
        !           179: break;
        !           180: case 15:
        !           181: case 16:
        !           182: RETI(OR,OP2OR);
        !           183: break;
        !           184: case 17:
        !           185: case 18:
        !           186: RETI(AND,OPAND);
        !           187: break;
        !           188: case 19:
        !           189: case 20:
        !           190: RETI(AND,OP2AND);
        !           191: break;
        !           192: case 21:
        !           193: case 22:
        !           194: RETI(NOT,OPNOT);
        !           195: break;
        !           196: case 23:
        !           197: RETI(NOT,OPNOT);
        !           198: break;
        !           199: case 24:
        !           200: case 25:
        !           201: REL(OPLT);
        !           202: break;
        !           203: case 26:
        !           204: case 27:
        !           205: REL(OPLE);
        !           206: break;
        !           207: case 28:
        !           208: case 29:
        !           209: REL(OPGT);
        !           210: break;
        !           211: case 30:
        !           212: case 31:
        !           213: REL(OPGE);
        !           214: break;
        !           215: case 32:
        !           216: case 33:
        !           217: REL(OPEQ);
        !           218: break;
        !           219: case 34:
        !           220: case 35:
        !           221: case 36:
        !           222: REL(OPNE);
        !           223: break;
        !           224: case 37:
        !           225: RET(ARROW);
        !           226: break;
        !           227: case 38:
        !           228: RET(QUALOP);
        !           229: break;
        !           230: case 39:
        !           231: RETI(ADDOP, OPPLUS);
        !           232: break;
        !           233: case 40:
        !           234: RETI(ADDOP, OPMINUS);
        !           235: break;
        !           236: case 41:
        !           237: RETI(MULTOP, OPSTAR);
        !           238: break;
        !           239: case 42:
        !           240: RETI(MULTOP, OPSLASH);
        !           241: break;
        !           242: case 43:
        !           243: case 44:
        !           244: RETI(POWER, OPPOWER);
        !           245: break;
        !           246: case 45:
        !           247: RETI(DOUBLEADDOP, OPPLUS);
        !           248: break;
        !           249: case 46:
        !           250: RETI(DOUBLEADDOP, OPMINUS);
        !           251: break;
        !           252: case 47:
        !           253: AS(OPASGN);
        !           254: break;
        !           255: case 48:
        !           256: AS(OPPLUS);
        !           257: break;
        !           258: case 49:
        !           259: AS(OPMINUS);
        !           260: break;
        !           261: case 50:
        !           262: AS(OPSTAR);
        !           263: break;
        !           264: case 51:
        !           265: AS(OPSLASH);
        !           266: break;
        !           267: case 52:
        !           268: case 53:
        !           269: AS(OPPOWER);
        !           270: break;
        !           271: case 54:
        !           272: AS(OPAND);
        !           273: break;
        !           274: case 55:
        !           275: AS(OP2AND);
        !           276: break;
        !           277: case 56:
        !           278: AS(OPOR);
        !           279: break;
        !           280: case 57:
        !           281: AS(OP2OR);
        !           282: break;
        !           283: case 58:
        !           284: case 59:
        !           285: { yytext[yyleng-1] = '\0'; p = mkconst(TYCHAR,yytext+1);
        !           286:                  RETP(CONST,p); }
        !           287: break;
        !           288: case 60:
        !           289: { /* nh construct */
        !           290:                int i, n;  char c;
        !           291:                yytext[yyleng-1] = '\0';  n = convci(yytext);
        !           292:                for(i = 0; i<n ; ++i)
        !           293:                        if( (c=yytext[i]=input()) == '\n' || c=='\0') break;
        !           294:                yytext[i] = '\0';
        !           295:                p = mkconst(TYCHAR,yytext);
        !           296:                p->vtypep = mkint(i);
        !           297:                RETP(CONST, p);
        !           298:                }
        !           299: break;
        !           300: case 61:
        !           301:        RETC(TYINT);
        !           302: break;
        !           303: case 62:
        !           304: case 63:
        !           305: RETC(TYREAL);
        !           306: break;
        !           307: case 64:
        !           308: case 65:
        !           309: RETC(TYREAL);
        !           310: break;
        !           311: case 66:
        !           312: case 67:
        !           313: RETC(TYLREAL);
        !           314: break;
        !           315: case 68:
        !           316:        { yytext[yyleng-1] = '.';
        !           317:                  RETP(CONST,mkimcon(TYCOMPLEX,yytext)); }
        !           318: break;
        !           319: case 69:
        !           320: case 70:
        !           321: RETZ(TYCOMPLEX);
        !           322: break;
        !           323: case 71:
        !           324: case 72:
        !           325: RETZ(TYCOMPLEX);
        !           326: break;
        !           327: case 73:
        !           328: case 74:
        !           329: RETZ(TYLCOMPLEX);
        !           330: break;
        !           331: case 75:
        !           332: { if(! nocommentflag) goto litline; }
        !           333: break;
        !           334: case 76:
        !           335: { if(thisexec) thisexec->nftnst += 2;
        !           336:          if(inproc)
        !           337:                {
        !           338:                unput('\n');
        !           339:                RETP(ESCAPE, copys(yytext));
        !           340:                }
        !           341: 
        !           342:        litline:        p = mkchain( copys(yytext), CHNULL);
        !           343:                        if(inproc==0 && yytext[0]=='%')
        !           344:                                prevcomments = hookup(prevcomments, p);
        !           345:                        else
        !           346:                                comments =  hookup(comments,p);
        !           347:        }
        !           348: break;
        !           349: case 77:
        !           350: ;
        !           351: break;
        !           352: case 78:
        !           353: ;
        !           354: break;
        !           355: case 79:
        !           356: ;
        !           357: break;
        !           358: case 80:
        !           359: ;
        !           360: break;
        !           361: case 81:
        !           362: { if(igeol) { igeol=0; prevv = NEWLINE; }
        !           363:          else if(prevv>=NAME || prevv==RPAR || prevv==RBRACK
        !           364:                        || prevv== -1 || prevv==QUALOP)
        !           365:                RET(EOS); }
        !           366: break;
        !           367: case 82:
        !           368: { char * linerr();
        !           369:          fprintf(diagfile, "Bad input character %c %s\n", yytext[0], linerr());
        !           370:          ++nerrs;
        !           371:        }
        !           372: break;
        !           373: case 83:
        !           374: { /* Include statement */
        !           375:        char *q1;
        !           376:        register char *q2;
        !           377:        for(q1=yytext ; *q1==' ' || *q1=='\t' ; ++q1) ;
        !           378:        quoted = NO;
        !           379:        for(q1 += 7 ; *q1==' ' || *q1=='\t' ||
        !           380:                *q1=='\'' || *q1=='"' || *q1=='(' ; ++q1 )
        !           381:                        if(*q1=='"' || *q1=='\'')
        !           382:                                quoted = YES;
        !           383:        for(q2=q1 ; *q2!='\0' &&  *q2!=' ' && *q2!='\n' &&
        !           384:                *q2!='\'' && *q2!='"' && *q2!=')' ; ++q2 )
        !           385:                        ;
        !           386:        *q2 = '\0';
        !           387:        if( ! quoted)
        !           388:                for(k=0; (q = name(q1,1)) && q->tag==TDEFINE ; ++k)
        !           389:                        {
        !           390:                        if(k > MAXINCLUDEDEPTH)
        !           391:                                fatal1("Macros too deep for %s", yytext);
        !           392:                        q1 = q->varp->valp;
        !           393:                        }
        !           394:        if( (fd = opincl(&q1)) == NULL)
        !           395:                {
        !           396:                fprintf(diagfile, "Cannot open file %s.  Stop.\n", q1);
        !           397:                exit(2);
        !           398:                }
        !           399:        filelines[filedepth] = yylineno;
        !           400:        pushchars[filedepth] = '\n';
        !           401:        if(++filedepth >= MAXINCLUDEDEPTH)
        !           402:                fatal("macro or include too deep");
        !           403:        fileptrs[filedepth] = yyin = fd;
        !           404:        filenames[filedepth] = copys(q1);
        !           405:        filelines[filedepth] = yylineno = 1;
        !           406:        filemacs[filedepth] = NULL;
        !           407:        }
        !           408: break;
        !           409: case -1:
        !           410: break;
        !           411: default:
        !           412: fprintf(yyout,"bad switch yylook %d",nstr);
        !           413: } return(0); }
        !           414: /* end of yylex */
        !           415: 
        !           416: yywrap()
        !           417: {
        !           418: if(filedepth == 0)
        !           419:        {
        !           420:        ateof = 1;
        !           421:        return(1);
        !           422:        }
        !           423: 
        !           424: if(efmacp == 0)
        !           425:        {
        !           426:        fclose(yyin);
        !           427:        cfree(filenames[filedepth]);
        !           428:        }
        !           429: 
        !           430: --filedepth;
        !           431: if( filemacs[filedepth] )
        !           432:        efmacp = filemacs[filedepth];
        !           433: else   {
        !           434:        yyin = fileptrs[filedepth];
        !           435:        efmacp = 0;
        !           436:        }
        !           437: yylineno = filelines[filedepth];
        !           438: if(pushchars[filedepth] != -1)
        !           439:        unput( pushchars[filedepth] );
        !           440: return(0);
        !           441: }
        !           442: 
        !           443: 
        !           444: 
        !           445: lower(s)       /* replace upper with lower case letters */
        !           446: register char *s;
        !           447: {
        !           448: register char *t;
        !           449: for(t=s ; *t ; ++t)
        !           450:        if( isupper(*t) )
        !           451:                *s++ = tolower(*t);
        !           452:        else if(*t != '_')
        !           453:                *s++ = *t;
        !           454: }
        !           455: 
        !           456: 
        !           457: 
        !           458: 
        !           459: setdot(k)
        !           460: int k;
        !           461: {
        !           462: if(k)
        !           463:        BEGIN DOTSON;
        !           464: else   BEGIN 0;
        !           465: }
        !           466: 
        !           467: 
        !           468: 
        !           469: 
        !           470: FILE *opincl(namep)
        !           471: char **namep;
        !           472: {
        !           473: #ifndef unix
        !           474:        return( fopen(*namep, "r") );
        !           475: #else
        !           476: 
        !           477:        /* On Unix, follow the C include conventions */
        !           478:        
        !           479:        register char *s, *lastslash;
        !           480:        char *dir, *name, temp[100];
        !           481:        int i;
        !           482:        FILE *fp;
        !           483:        
        !           484:        name = *namep;
        !           485:        if(name[0] == '/')
        !           486:                return( fopen(name, "r") );
        !           487:        
        !           488:        dir = basefile;
        !           489:        for(i = filedepth ; i>=0 ; --i)
        !           490:                if( filemacs[i] == NULL)
        !           491:                        {
        !           492:                        dir = filenames[i];
        !           493:                        break;
        !           494:                        }
        !           495: 
        !           496:        lastslash = NULL;
        !           497:        for(s = dir ; *s ; ++s)
        !           498:                if(*s == '/')
        !           499:                        lastslash = s;
        !           500:        if(lastslash)
        !           501:                {
        !           502:                *lastslash = '\0';
        !           503:                sprintf(temp, "%s/%s", dir, name);
        !           504:                *lastslash = '/';
        !           505:                if( fp = fopen(temp, "r") )
        !           506:                        *namep = temp;
        !           507:                }
        !           508:        else
        !           509:                fp = fopen(name, "r");
        !           510:        
        !           511:        if(fp == NULL)
        !           512:                {
        !           513:                sprintf(temp, "/usr/include/%s", name);
        !           514:                fp = fopen(temp, "r");
        !           515:                *namep = temp;
        !           516:                }
        !           517:        return(fp);
        !           518: 
        !           519: #endif
        !           520: }
        !           521: 
        !           522: int yyvstop[] ={
        !           523: 0,
        !           524: 
        !           525: 82,
        !           526: 0,
        !           527: 
        !           528: 78,
        !           529: 82,
        !           530: 0,
        !           531: 
        !           532: 81,
        !           533: 0,
        !           534: 
        !           535: 79,
        !           536: 82,
        !           537: 0,
        !           538: 
        !           539: 77,
        !           540: 82,
        !           541: 0,
        !           542: 
        !           543: 23,
        !           544: 82,
        !           545: 0,
        !           546: 
        !           547: 82,
        !           548: 0,
        !           549: 
        !           550: 75,
        !           551: 82,
        !           552: 0,
        !           553: 
        !           554: 12,
        !           555: 82,
        !           556: 0,
        !           557: 
        !           558: 18,
        !           559: 82,
        !           560: 0,
        !           561: 
        !           562: 82,
        !           563: 0,
        !           564: 
        !           565: 4,
        !           566: 82,
        !           567: 0,
        !           568: 
        !           569: 5,
        !           570: 82,
        !           571: 0,
        !           572: 
        !           573: 41,
        !           574: 82,
        !           575: 0,
        !           576: 
        !           577: 39,
        !           578: 82,
        !           579: 0,
        !           580: 
        !           581: 2,
        !           582: 10,
        !           583: 82,
        !           584: 0,
        !           585: 
        !           586: 40,
        !           587: 82,
        !           588: 0,
        !           589: 
        !           590: 38,
        !           591: 82,
        !           592: 0,
        !           593: 
        !           594: 42,
        !           595: 82,
        !           596: 0,
        !           597: 
        !           598: 61,
        !           599: 82,
        !           600: 0,
        !           601: 
        !           602: 11,
        !           603: 82,
        !           604: 0,
        !           605: 
        !           606: 3,
        !           607: 82,
        !           608: 0,
        !           609: 
        !           610: 25,
        !           611: 82,
        !           612: 0,
        !           613: 
        !           614: 47,
        !           615: 82,
        !           616: 0,
        !           617: 
        !           618: 29,
        !           619: 82,
        !           620: 0,
        !           621: 
        !           622: 1,
        !           623: 82,
        !           624: 0,
        !           625: 
        !           626: 6,
        !           627: 82,
        !           628: 0,
        !           629: 
        !           630: 8,
        !           631: 82,
        !           632: 0,
        !           633: 
        !           634: 44,
        !           635: 82,
        !           636: 0,
        !           637: 
        !           638: 82,
        !           639: 0,
        !           640: 
        !           641: 7,
        !           642: 82,
        !           643: 0,
        !           644: 
        !           645: 14,
        !           646: 82,
        !           647: 0,
        !           648: 
        !           649: 9,
        !           650: 82,
        !           651: 0,
        !           652: 
        !           653: 22,
        !           654: 82,
        !           655: 0,
        !           656: 
        !           657: 78,
        !           658: 82,
        !           659: 0,
        !           660: 
        !           661: 77,
        !           662: 82,
        !           663: 0,
        !           664: 
        !           665: 76,
        !           666: 82,
        !           667: 0,
        !           668: 
        !           669: 1,
        !           670: 82,
        !           671: 0,
        !           672: 
        !           673: 38,
        !           674: 82,
        !           675: 0,
        !           676: 
        !           677: 36,
        !           678: 0,
        !           679: 
        !           680: 59,
        !           681: 0,
        !           682: 
        !           683: 75,
        !           684: 0,
        !           685: 
        !           686: 20,
        !           687: 0,
        !           688: 
        !           689: 54,
        !           690: 0,
        !           691: 
        !           692: 58,
        !           693: 0,
        !           694: 
        !           695: 43,
        !           696: 0,
        !           697: 
        !           698: 50,
        !           699: 0,
        !           700: 
        !           701: 45,
        !           702: 0,
        !           703: 
        !           704: 48,
        !           705: 0,
        !           706: 
        !           707: 46,
        !           708: 0,
        !           709: 
        !           710: 49,
        !           711: 0,
        !           712: 
        !           713: 37,
        !           714: 0,
        !           715: 
        !           716: 63,
        !           717: 0,
        !           718: 
        !           719: 51,
        !           720: 0,
        !           721: 
        !           722: 62,
        !           723: 0,
        !           724: 
        !           725: 61,
        !           726: 0,
        !           727: 
        !           728: 60,
        !           729: 0,
        !           730: 
        !           731: 68,
        !           732: 0,
        !           733: 
        !           734: 27,
        !           735: 0,
        !           736: 
        !           737: 33,
        !           738: 0,
        !           739: 
        !           740: 31,
        !           741: 0,
        !           742: 
        !           743: 1,
        !           744: 0,
        !           745: 
        !           746: 53,
        !           747: 0,
        !           748: 
        !           749: 80,
        !           750: 0,
        !           751: 
        !           752: 56,
        !           753: 0,
        !           754: 
        !           755: 16,
        !           756: 0,
        !           757: 
        !           758: 35,
        !           759: 0,
        !           760: 
        !           761: 76,
        !           762: 0,
        !           763: 
        !           764: 1,
        !           765: 0,
        !           766: 
        !           767: 55,
        !           768: 0,
        !           769: 
        !           770: 52,
        !           771: 0,
        !           772: 
        !           773: 70,
        !           774: 0,
        !           775: 
        !           776: 62,
        !           777: 63,
        !           778: 0,
        !           779: 
        !           780: 69,
        !           781: 0,
        !           782: 
        !           783: 66,
        !           784: 0,
        !           785: 
        !           786: 64,
        !           787: 0,
        !           788: 
        !           789: 57,
        !           790: 0,
        !           791: 
        !           792: 1,
        !           793: 0,
        !           794: 
        !           795: 67,
        !           796: 0,
        !           797: 
        !           798: 65,
        !           799: 0,
        !           800: 
        !           801: 69,
        !           802: 70,
        !           803: 0,
        !           804: 
        !           805: 73,
        !           806: 0,
        !           807: 
        !           808: 71,
        !           809: 0,
        !           810: 
        !           811: 1,
        !           812: 0,
        !           813: 
        !           814: 32,
        !           815: 0,
        !           816: 
        !           817: 30,
        !           818: 0,
        !           819: 
        !           820: 28,
        !           821: 0,
        !           822: 
        !           823: 26,
        !           824: 0,
        !           825: 
        !           826: 24,
        !           827: 0,
        !           828: 
        !           829: 34,
        !           830: 0,
        !           831: 
        !           832: 13,
        !           833: 0,
        !           834: 
        !           835: 74,
        !           836: 0,
        !           837: 
        !           838: 72,
        !           839: 0,
        !           840: 
        !           841: 66,
        !           842: 67,
        !           843: 0,
        !           844: 
        !           845: 64,
        !           846: 65,
        !           847: 0,
        !           848: 
        !           849: 1,
        !           850: 0,
        !           851: 
        !           852: 17,
        !           853: 0,
        !           854: 
        !           855: 15,
        !           856: 0,
        !           857: 
        !           858: 21,
        !           859: 0,
        !           860: 
        !           861: 73,
        !           862: 74,
        !           863: 0,
        !           864: 
        !           865: 71,
        !           866: 72,
        !           867: 0,
        !           868: 
        !           869: 1,
        !           870: 0,
        !           871: 
        !           872: 19,
        !           873: 0,
        !           874: 
        !           875: 1,
        !           876: 0,
        !           877: 
        !           878: 83,
        !           879: 0,
        !           880: 0};
        !           881: # define YYTYPE int
        !           882: struct yywork { YYTYPE verify, advance; } yycrank[] ={
        !           883: 0,0,   0,0,    1,5,    0,0,    
        !           884: 0,0,   0,0,    0,0,    0,0,    
        !           885: 0,0,   0,0,    1,6,    1,7,    
        !           886: 45,0,  1,8,    47,0,   34,72,  
        !           887: 34,73, 50,0,   79,0,   0,0,    
        !           888: 0,0,   0,0,    0,0,    0,0,    
        !           889: 0,0,   0,0,    0,0,    0,0,    
        !           890: 0,0,   0,0,    0,0,    0,0,    
        !           891: 0,0,   1,9,    1,10,   1,11,   
        !           892: 1,12,  1,13,   34,72,  1,14,   
        !           893: 1,15,  1,16,   1,17,   1,18,   
        !           894: 1,19,  1,20,   1,21,   1,22,   
        !           895: 1,23,  1,24,   0,0,    0,0,    
        !           896: 14,48, 19,54,  0,0,    0,0,    
        !           897: 0,0,   18,52,  105,127,        1,25,   
        !           898: 1,26,  1,27,   1,28,   1,29,   
        !           899: 10,44, 23,60,  1,30,   1,30,   
        !           900: 1,30,  1,30,   1,30,   19,55,  
        !           901: 1,30,  1,30,   1,30,   14,49,  
        !           902: 18,53, 1,30,   27,67,  1,30,   
        !           903: 1,30,  2,39,   1,30,   1,30,   
        !           904: 2,8,   1,30,   1,30,   28,68,  
        !           905: 29,69, 33,71,  38,76,  36,74,  
        !           906: 1,31,  48,88,  1,32,   1,33,   
        !           907: 1,34,  42,80,  39,77,  52,89,  
        !           908: 75,99, 106,128,        107,129,        78,100, 
        !           909: 2,40,  2,10,   80,101, 2,12,   
        !           910: 2,13,  2,41,   2,14,   108,130,        
        !           911: 2,16,  2,17,   2,18,   109,131,        
        !           912: 2,20,  2,21,   2,22,   2,23,   
        !           913: 21,56, 39,77,  110,132,        3,8,    
        !           914: 1,35,  1,36,   1,37,   1,38,   
        !           915: 81,102,        42,80,  2,25,   2,26,   
        !           916: 2,27,  2,28,   2,29,   78,100, 
        !           917: 21,57, 21,58,  80,101, 112,134,        
        !           918: 124,143,       126,145,        133,146,        3,9,    
        !           919: 3,10,  2,42,   3,12,   3,13,   
        !           920: 144,151,       3,14,   0,0,    3,16,   
        !           921: 3,17,  3,18,   36,75,  3,20,   
        !           922: 3,21,  3,43,   3,23,   83,105, 
        !           923: 81,102,        87,112, 39,78,  2,31,   
        !           924: 0,0,   2,32,   2,33,   96,120, 
        !           925: 0,0,   3,25,   3,26,   3,27,   
        !           926: 3,28,  3,29,   22,59,  22,59,  
        !           927: 22,59, 22,59,  22,59,  22,59,  
        !           928: 22,59, 22,59,  22,59,  22,59,  
        !           929: 0,0,   0,0,    0,0,    98,121, 
        !           930: 0,0,   4,39,   0,0,    83,105, 
        !           931: 4,8,   87,112, 39,78,  2,35,   
        !           932: 2,36,  2,37,   2,38,   96,120, 
        !           933: 82,103,        0,0,    3,31,   0,0,    
        !           934: 3,32,  3,33,   0,0,    0,0,    
        !           935: 0,0,   0,0,    0,0,    0,0,    
        !           936: 4,40,  4,10,   82,104, 4,12,   
        !           937: 4,13,  4,41,   4,14,   98,121, 
        !           938: 4,16,  4,17,   4,18,   0,0,    
        !           939: 4,20,  4,21,   4,43,   4,23,   
        !           940: 59,90, 59,91,  84,106, 0,0,    
        !           941: 82,103,        59,92,  3,35,   3,36,   
        !           942: 3,37,  3,38,   4,25,   4,26,   
        !           943: 4,27,  4,28,   4,29,   11,45,  
        !           944: 0,0,   84,107, 82,104, 86,110, 
        !           945: 85,108,        0,0,    100,122,        11,45,  
        !           946: 11,0,  4,42,   93,117, 93,118, 
        !           947: 101,123,       86,111, 0,0,    93,119, 
        !           948: 59,90, 59,91,  84,106, 85,109, 
        !           949: 102,124,       59,92,  103,125,        104,126,        
        !           950: 0,0,   0,0,    111,133,        4,31,   
        !           951: 0,0,   4,32,   4,33,   0,0,    
        !           952: 11,46, 84,107, 0,0,    86,110, 
        !           953: 85,108,        11,45,  100,122,        0,0,    
        !           954: 114,135,       11,45,  93,117, 93,118, 
        !           955: 101,123,       86,111, 11,45,  93,119, 
        !           956: 12,47, 0,0,    0,0,    85,109, 
        !           957: 102,124,       116,136,        103,125,        104,126,        
        !           958: 12,47, 12,0,   111,133,        4,35,   
        !           959: 4,36,  4,37,   4,38,   11,45,  
        !           960: 11,45, 11,45,  11,45,  11,45,  
        !           961: 122,141,       11,45,  11,45,  11,45,  
        !           962: 114,135,       0,0,    11,45,  123,142,        
        !           963: 11,45, 11,45,  125,144,        11,45,  
        !           964: 11,45, 12,47,  11,45,  11,45,  
        !           965: 0,0,   116,136,        12,47,  0,0,    
        !           966: 0,0,   138,147,        12,47,  0,0,    
        !           967: 140,148,       11,45,  0,0,    12,47,  
        !           968: 0,0,   15,50,  0,0,    0,0,    
        !           969: 122,141,       141,149,        142,150,        0,0,    
        !           970: 149,152,       15,50,  15,0,   123,142,        
        !           971: 150,153,       0,0,    125,144,        0,0,    
        !           972: 12,47, 12,47,  12,47,  12,47,  
        !           973: 12,47, 0,0,    12,47,  12,47,  
        !           974: 12,47, 138,147,        0,0,    12,47,  
        !           975: 140,148,       12,47,  12,47,  152,154,        
        !           976: 12,47, 12,47,  15,50,  12,47,  
        !           977: 12,47, 141,149,        142,150,        15,51,  
        !           978: 149,152,       0,0,    0,0,    15,50,  
        !           979: 150,153,       63,95,  12,47,  63,95,  
        !           980: 15,50, 0,0,    63,96,  63,96,  
        !           981: 63,96, 63,96,  63,96,  63,96,  
        !           982: 63,96, 63,96,  63,96,  63,96,  
        !           983: 0,0,   0,0,    0,0,    152,154,        
        !           984: 0,0,   15,50,  15,50,  15,50,  
        !           985: 15,50, 15,50,  0,0,    15,50,  
        !           986: 15,50, 15,50,  0,0,    0,0,    
        !           987: 15,50, 0,0,    15,50,  15,50,  
        !           988: 0,0,   15,50,  15,50,  0,0,    
        !           989: 15,50, 15,50,  0,0,    0,0,    
        !           990: 0,0,   0,0,    0,0,    0,0,    
        !           991: 0,0,   0,0,    24,61,  15,50,  
        !           992: 24,62, 24,62,  24,62,  24,62,  
        !           993: 24,62, 24,62,  24,62,  24,62,  
        !           994: 24,62, 24,62,  95,96,  95,96,  
        !           995: 95,96, 95,96,  95,96,  95,96,  
        !           996: 95,96, 95,96,  95,96,  95,96,  
        !           997: 24,63, 24,64,  0,0,    0,0,    
        !           998: 24,65, 24,66,  64,97,  0,0,    
        !           999: 64,97, 0,0,    0,0,    64,98,  
        !          1000: 64,98, 64,98,  64,98,  64,98,  
        !          1001: 64,98, 64,98,  64,98,  64,98,  
        !          1002: 64,98, 30,70,  30,70,  30,70,  
        !          1003: 30,70, 30,70,  30,70,  30,70,  
        !          1004: 30,70, 30,70,  30,70,  0,0,    
        !          1005: 24,63, 24,64,  0,0,    0,0,    
        !          1006: 24,65, 24,66,  30,70,  30,70,  
        !          1007: 30,70, 30,70,  30,70,  30,70,  
        !          1008: 30,70, 30,70,  30,70,  30,70,  
        !          1009: 30,70, 30,70,  30,70,  30,70,  
        !          1010: 30,70, 30,70,  30,70,  30,70,  
        !          1011: 30,70, 30,70,  30,70,  30,70,  
        !          1012: 30,70, 30,70,  30,70,  30,70,  
        !          1013: 0,0,   0,0,    0,0,    0,0,    
        !          1014: 30,70, 0,0,    30,70,  30,70,  
        !          1015: 30,70, 30,70,  30,70,  30,70,  
        !          1016: 30,70, 30,70,  30,70,  30,70,  
        !          1017: 30,70, 30,70,  30,70,  30,70,  
        !          1018: 30,70, 30,70,  30,70,  30,70,  
        !          1019: 30,70, 30,70,  30,70,  30,70,  
        !          1020: 30,70, 30,70,  30,70,  30,70,  
        !          1021: 41,79, 0,0,    0,0,    0,0,    
        !          1022: 0,0,   90,113, 0,0,    90,113, 
        !          1023: 41,79, 41,0,   90,114, 90,114, 
        !          1024: 90,114,        90,114, 90,114, 90,114, 
        !          1025: 90,114,        90,114, 90,114, 90,114, 
        !          1026: 97,98, 97,98,  97,98,  97,98,  
        !          1027: 97,98, 97,98,  97,98,  97,98,  
        !          1028: 97,98, 97,98,  0,0,    0,0,    
        !          1029: 0,0,   41,79,  0,0,    0,0,    
        !          1030: 0,0,   0,0,    41,79,  0,0,    
        !          1031: 0,0,   0,0,    41,79,  91,115, 
        !          1032: 0,0,   91,115, 0,0,    41,79,  
        !          1033: 91,116,        91,116, 91,116, 91,116, 
        !          1034: 91,116,        91,116, 91,116, 91,116, 
        !          1035: 91,116,        91,116, 0,0,    0,0,    
        !          1036: 0,0,   0,0,    0,0,    0,0,    
        !          1037: 41,79, 41,79,  41,79,  41,79,  
        !          1038: 41,79, 0,0,    41,79,  41,79,  
        !          1039: 41,79, 0,0,    0,0,    41,79,  
        !          1040: 0,0,   41,79,  41,79,  0,0,    
        !          1041: 41,79, 41,79,  0,0,    41,79,  
        !          1042: 41,79, 0,0,    0,0,    0,0,    
        !          1043: 0,0,   0,0,    0,0,    0,0,    
        !          1044: 0,0,   0,0,    41,79,  43,59,  
        !          1045: 43,59, 43,59,  43,59,  43,59,  
        !          1046: 43,59, 43,59,  43,59,  43,59,  
        !          1047: 43,59, 0,0,    0,0,    0,0,    
        !          1048: 0,0,   0,0,    0,0,    0,0,    
        !          1049: 43,81, 0,0,    43,82,  0,0,    
        !          1050: 43,83, 0,0,    43,84,  0,0,    
        !          1051: 0,0,   0,0,    0,0,    43,85,  
        !          1052: 0,0,   43,86,  43,87,  0,0,    
        !          1053: 0,0,   0,0,    0,0,    61,93,  
        !          1054: 61,93, 61,93,  61,93,  61,93,  
        !          1055: 61,93, 61,93,  61,93,  61,93,  
        !          1056: 61,93, 0,0,    0,0,    0,0,    
        !          1057: 43,81, 0,0,    43,82,  0,0,    
        !          1058: 43,83, 0,0,    43,84,  61,63,  
        !          1059: 61,64, 0,0,    0,0,    43,85,  
        !          1060: 61,94, 43,86,  43,87,  113,114,        
        !          1061: 113,114,       113,114,        113,114,        113,114,        
        !          1062: 113,114,       113,114,        113,114,        113,114,        
        !          1063: 113,114,       115,116,        115,116,        115,116,        
        !          1064: 115,116,       115,116,        115,116,        115,116,        
        !          1065: 115,116,       115,116,        115,116,        0,0,    
        !          1066: 0,0,   0,0,    0,0,    61,63,  
        !          1067: 61,64, 117,137,        0,0,    117,137,        
        !          1068: 61,94, 0,0,    117,138,        117,138,        
        !          1069: 117,138,       117,138,        117,138,        117,138,        
        !          1070: 117,138,       117,138,        117,138,        117,138,        
        !          1071: 118,139,       0,0,    118,139,        0,0,    
        !          1072: 0,0,   118,140,        118,140,        118,140,        
        !          1073: 118,140,       118,140,        118,140,        118,140,        
        !          1074: 118,140,       118,140,        118,140,        137,138,        
        !          1075: 137,138,       137,138,        137,138,        137,138,        
        !          1076: 137,138,       137,138,        137,138,        137,138,        
        !          1077: 137,138,       139,140,        139,140,        139,140,        
        !          1078: 139,140,       139,140,        139,140,        139,140,        
        !          1079: 139,140,       139,140,        139,140,        153,154,        
        !          1080: 0,0,   0,0,    0,0,    0,0,    
        !          1081: 0,0,   0,0,    0,0,    153,154,        
        !          1082: 153,155,       0,0,    0,0,    0,0,    
        !          1083: 0,0,   0,0,    0,0,    0,0,    
        !          1084: 0,0,   0,0,    0,0,    0,0,    
        !          1085: 0,0,   0,0,    0,0,    0,0,    
        !          1086: 0,0,   0,0,    0,0,    0,0,    
        !          1087: 0,0,   0,0,    0,0,    0,0,    
        !          1088: 153,154,       0,0,    0,0,    0,0,    
        !          1089: 0,0,   153,154,        0,0,    0,0,    
        !          1090: 0,0,   153,154,        0,0,    0,0,    
        !          1091: 0,0,   0,0,    153,153,        0,0,    
        !          1092: 0,0,   0,0,    0,0,    0,0,    
        !          1093: 0,0,   0,0,    0,0,    0,0,    
        !          1094: 0,0,   0,0,    0,0,    0,0,    
        !          1095: 0,0,   0,0,    0,0,    153,153,        
        !          1096: 153,153,       153,153,        153,153,        153,153,        
        !          1097: 0,0,   153,153,        153,153,        153,153,        
        !          1098: 0,0,   0,0,    153,153,        0,0,    
        !          1099: 153,153,       153,153,        154,154,        153,153,        
        !          1100: 153,153,       0,0,    153,153,        153,153,        
        !          1101: 0,0,   0,0,    0,0,    0,0,    
        !          1102: 0,0,   0,0,    0,0,    0,0,    
        !          1103: 0,0,   153,153,        0,0,    154,154,        
        !          1104: 154,154,       154,154,        154,154,        154,154,        
        !          1105: 0,0,   154,154,        154,154,        154,154,        
        !          1106: 0,0,   0,0,    154,154,        0,0,    
        !          1107: 154,154,       154,154,        0,0,    154,154,        
        !          1108: 154,154,       0,0,    154,154,        154,154,        
        !          1109: 0,0,   0,0,    0,0,    0,0,    
        !          1110: 0,0,   0,0,    0,0,    0,0,    
        !          1111: 0,0,   154,154,        0,0,    0,0,    
        !          1112: 0,0};
        !          1113: struct yysvf yysvec[] ={
        !          1114: 0,     0,      0,
        !          1115: yycrank+-1,    0,              0,      
        !          1116: yycrank+-72,   yysvec+1,       0,      
        !          1117: yycrank+-111,  yysvec+1,       0,      
        !          1118: yycrank+-180,  yysvec+1,       0,      
        !          1119: yycrank+0,     0,              yyvstop+1,
        !          1120: yycrank+0,     0,              yyvstop+3,
        !          1121: yycrank+0,     0,              yyvstop+6,
        !          1122: yycrank+0,     0,              yyvstop+8,
        !          1123: yycrank+0,     0,              yyvstop+11,
        !          1124: yycrank+3,     0,              yyvstop+14,
        !          1125: yycrank+-242,  0,              yyvstop+17,
        !          1126: yycrank+-291,  0,              yyvstop+19,
        !          1127: yycrank+0,     0,              yyvstop+22,
        !          1128: yycrank+14,    0,              yyvstop+25,
        !          1129: yycrank+-340,  0,              yyvstop+28,
        !          1130: yycrank+0,     0,              yyvstop+30,
        !          1131: yycrank+0,     0,              yyvstop+33,
        !          1132: yycrank+15,    0,              yyvstop+36,
        !          1133: yycrank+10,    0,              yyvstop+39,
        !          1134: yycrank+0,     0,              yyvstop+42,
        !          1135: yycrank+75,    0,              yyvstop+46,
        !          1136: yycrank+126,   0,              yyvstop+49,
        !          1137: yycrank+4,     0,              yyvstop+52,
        !          1138: yycrank+388,   0,              yyvstop+55,
        !          1139: yycrank+0,     0,              yyvstop+58,
        !          1140: yycrank+0,     0,              yyvstop+61,
        !          1141: yycrank+17,    0,              yyvstop+64,
        !          1142: yycrank+26,    0,              yyvstop+67,
        !          1143: yycrank+27,    0,              yyvstop+70,
        !          1144: yycrank+429,   0,              yyvstop+73,
        !          1145: yycrank+0,     0,              yyvstop+76,
        !          1146: yycrank+0,     0,              yyvstop+79,
        !          1147: yycrank+28,    0,              yyvstop+82,
        !          1148: yycrank+6,     0,              yyvstop+85,
        !          1149: yycrank+0,     0,              yyvstop+87,
        !          1150: yycrank+30,    0,              yyvstop+90,
        !          1151: yycrank+0,     0,              yyvstop+93,
        !          1152: yycrank+29,    0,              yyvstop+96,
        !          1153: yycrank+89,    0,              yyvstop+99,
        !          1154: yycrank+0,     yysvec+39,      yyvstop+102,
        !          1155: yycrank+-551,  0,              yyvstop+105,
        !          1156: yycrank+19,    yysvec+30,      yyvstop+108,
        !          1157: yycrank+599,   0,              yyvstop+111,
        !          1158: yycrank+0,     0,              yyvstop+114,
        !          1159: yycrank+-2,    yysvec+11,      0,      
        !          1160: yycrank+0,     0,              yyvstop+116,
        !          1161: yycrank+-4,    yysvec+12,      yyvstop+118,
        !          1162: yycrank+32,    0,              yyvstop+120,
        !          1163: yycrank+0,     0,              yyvstop+122,
        !          1164: yycrank+-7,    yysvec+15,      0,      
        !          1165: yycrank+0,     0,              yyvstop+124,
        !          1166: yycrank+38,    0,              yyvstop+126,
        !          1167: yycrank+0,     0,              yyvstop+128,
        !          1168: yycrank+0,     0,              yyvstop+130,
        !          1169: yycrank+0,     0,              yyvstop+132,
        !          1170: yycrank+0,     0,              yyvstop+134,
        !          1171: yycrank+0,     0,              yyvstop+136,
        !          1172: yycrank+0,     0,              yyvstop+138,
        !          1173: yycrank+160,   yysvec+22,      yyvstop+140,
        !          1174: yycrank+0,     0,              yyvstop+142,
        !          1175: yycrank+635,   0,              yyvstop+144,
        !          1176: yycrank+0,     yysvec+24,      yyvstop+146,
        !          1177: yycrank+342,   0,              0,      
        !          1178: yycrank+419,   0,              0,      
        !          1179: yycrank+0,     0,              yyvstop+148,
        !          1180: yycrank+0,     0,              yyvstop+150,
        !          1181: yycrank+0,     0,              yyvstop+152,
        !          1182: yycrank+0,     0,              yyvstop+154,
        !          1183: yycrank+0,     0,              yyvstop+156,
        !          1184: yycrank+0,     yysvec+30,      yyvstop+158,
        !          1185: yycrank+0,     0,              yyvstop+160,
        !          1186: yycrank+0,     yysvec+34,      0,      
        !          1187: yycrank+0,     0,              yyvstop+162,
        !          1188: yycrank+0,     0,              yyvstop+164,
        !          1189: yycrank+39,    0,              yyvstop+166,
        !          1190: yycrank+0,     0,              yyvstop+168,
        !          1191: yycrank+0,     yysvec+39,      0,      
        !          1192: yycrank+25,    0,              0,      
        !          1193: yycrank+-8,    yysvec+41,      yyvstop+170,
        !          1194: yycrank+39,    yysvec+30,      yyvstop+172,
        !          1195: yycrank+50,    0,              0,      
        !          1196: yycrank+135,   0,              0,      
        !          1197: yycrank+78,    0,              0,      
        !          1198: yycrank+161,   0,              0,      
        !          1199: yycrank+179,   0,              0,      
        !          1200: yycrank+178,   0,              0,      
        !          1201: yycrank+79,    0,              0,      
        !          1202: yycrank+0,     0,              yyvstop+174,
        !          1203: yycrank+0,     0,              yyvstop+176,
        !          1204: yycrank+514,   0,              0,      
        !          1205: yycrank+552,   0,              0,      
        !          1206: yycrank+0,     0,              yyvstop+178,
        !          1207: yycrank+186,   yysvec+61,      yyvstop+180,
        !          1208: yycrank+0,     0,              yyvstop+183,
        !          1209: yycrank+398,   0,              0,      
        !          1210: yycrank+94,    yysvec+95,      yyvstop+185,
        !          1211: yycrank+524,   0,              0,      
        !          1212: yycrank+114,   yysvec+97,      yyvstop+187,
        !          1213: yycrank+0,     0,              yyvstop+189,
        !          1214: yycrank+183,   0,              0,      
        !          1215: yycrank+180,   yysvec+30,      yyvstop+191,
        !          1216: yycrank+196,   0,              0,      
        !          1217: yycrank+188,   0,              0,      
        !          1218: yycrank+185,   0,              0,      
        !          1219: yycrank+12,    0,              0,      
        !          1220: yycrank+55,    0,              0,      
        !          1221: yycrank+56,    0,              0,      
        !          1222: yycrank+65,    0,              0,      
        !          1223: yycrank+69,    0,              0,      
        !          1224: yycrank+76,    0,              0,      
        !          1225: yycrank+186,   0,              0,      
        !          1226: yycrank+93,    0,              0,      
        !          1227: yycrank+663,   0,              0,      
        !          1228: yycrank+211,   yysvec+113,     yyvstop+193,
        !          1229: yycrank+673,   0,              0,      
        !          1230: yycrank+224,   yysvec+115,     yyvstop+195,
        !          1231: yycrank+694,   0,              0,      
        !          1232: yycrank+709,   0,              0,      
        !          1233: yycrank+0,     0,              yyvstop+197,
        !          1234: yycrank+0,     0,              yyvstop+200,
        !          1235: yycrank+0,     0,              yyvstop+202,
        !          1236: yycrank+236,   0,              0,      
        !          1237: yycrank+234,   yysvec+30,      yyvstop+204,
        !          1238: yycrank+94,    0,              0,      
        !          1239: yycrank+254,   0,              0,      
        !          1240: yycrank+95,    0,              0,      
        !          1241: yycrank+0,     0,              yyvstop+206,
        !          1242: yycrank+0,     0,              yyvstop+208,
        !          1243: yycrank+0,     0,              yyvstop+210,
        !          1244: yycrank+0,     0,              yyvstop+212,
        !          1245: yycrank+0,     0,              yyvstop+214,
        !          1246: yycrank+0,     0,              yyvstop+216,
        !          1247: yycrank+96,    0,              0,      
        !          1248: yycrank+0,     0,              yyvstop+218,
        !          1249: yycrank+0,     0,              yyvstop+220,
        !          1250: yycrank+0,     0,              yyvstop+222,
        !          1251: yycrank+719,   0,              0,      
        !          1252: yycrank+260,   yysvec+137,     yyvstop+224,
        !          1253: yycrank+729,   0,              0,      
        !          1254: yycrank+263,   yysvec+139,     yyvstop+227,
        !          1255: yycrank+260,   0,              0,      
        !          1256: yycrank+278,   yysvec+30,      yyvstop+230,
        !          1257: yycrank+0,     0,              yyvstop+232,
        !          1258: yycrank+102,   0,              0,      
        !          1259: yycrank+0,     0,              yyvstop+234,
        !          1260: yycrank+0,     0,              yyvstop+236,
        !          1261: yycrank+0,     0,              yyvstop+238,
        !          1262: yycrank+0,     0,              yyvstop+241,
        !          1263: yycrank+280,   0,              0,      
        !          1264: yycrank+283,   yysvec+30,      yyvstop+244,
        !          1265: yycrank+0,     0,              yyvstop+246,
        !          1266: yycrank+302,   0,              0,      
        !          1267: yycrank+-786,  0,              yyvstop+248,
        !          1268: yycrank+-818,  yysvec+153,     0,      
        !          1269: yycrank+0,     0,              yyvstop+250,
        !          1270: 0,     0,      0};
        !          1271: struct yywork *yytop = yycrank+913;
        !          1272: struct yysvf *yybgin = yysvec+1;
        !          1273: char yymatch[] ={
        !          1274: 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !          1275: 01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
        !          1276: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !          1277: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !          1278: 011 ,01  ,'"' ,01  ,01  ,01  ,01  ,047 ,
        !          1279: 01  ,01  ,01  ,'+' ,01  ,'+' ,01  ,01  ,
        !          1280: '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
        !          1281: '0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
        !          1282: 01  ,'A' ,'B' ,'C' ,'D' ,'E' ,'B' ,'G' ,
        !          1283: 'H' ,'I' ,'B' ,'B' ,'L' ,'B' ,'N' ,'O' ,
        !          1284: 'B' ,'Q' ,'R' ,'B' ,'T' ,'U' ,'B' ,'B' ,
        !          1285: 'B' ,'B' ,'B' ,01  ,01  ,01  ,01  ,'_' ,
        !          1286: 01  ,'A' ,'B' ,'C' ,'D' ,'E' ,'B' ,'G' ,
        !          1287: 'H' ,'I' ,'B' ,'B' ,'L' ,'B' ,'N' ,'O' ,
        !          1288: 'B' ,'Q' ,'R' ,'B' ,'T' ,'U' ,'B' ,'B' ,
        !          1289: 'B' ,'B' ,'B' ,01  ,01  ,01  ,01  ,01  ,
        !          1290: 0};
        !          1291: char yyextra[] ={
        !          1292: 0,0,0,0,0,0,0,0,
        !          1293: 0,0,0,0,0,0,0,0,
        !          1294: 0,0,0,0,0,0,0,0,
        !          1295: 0,0,0,0,0,0,0,0,
        !          1296: 0,0,0,0,0,0,0,0,
        !          1297: 0,0,0,0,0,0,0,0,
        !          1298: 0,0,0,0,0,0,0,0,
        !          1299: 0,0,0,0,0,0,0,0,
        !          1300: 0,0,0,0,0,0,0,0,
        !          1301: 0,0,0,0,0,0,0,0,
        !          1302: 0,0,0,0,0,0,0,0,
        !          1303: 0};
        !          1304: /*     ncform  4.1     83/08/11        */
        !          1305: 
        !          1306: int yylineno =1;
        !          1307: # define YYU(x) x
        !          1308: # define NLSTATE yyprevious=YYNEWLINE
        !          1309: char yytext[YYLMAX];
        !          1310: struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
        !          1311: char yysbuf[YYLMAX];
        !          1312: char *yysptr = yysbuf;
        !          1313: int *yyfnd;
        !          1314: extern struct yysvf *yyestate;
        !          1315: int yyprevious = YYNEWLINE;
        !          1316: yylook(){
        !          1317:        register struct yysvf *yystate, **lsp;
        !          1318:        register struct yywork *yyt;
        !          1319:        struct yysvf *yyz;
        !          1320:        int yych;
        !          1321:        struct yywork *yyr;
        !          1322: # ifdef LEXDEBUG
        !          1323:        int debug;
        !          1324: # endif
        !          1325:        char *yylastch;
        !          1326:        /* start off machines */
        !          1327: # ifdef LEXDEBUG
        !          1328:        debug = 0;
        !          1329: # endif
        !          1330:        if (!yymorfg)
        !          1331:                yylastch = yytext;
        !          1332:        else {
        !          1333:                yymorfg=0;
        !          1334:                yylastch = yytext+yyleng;
        !          1335:                }
        !          1336:        for(;;){
        !          1337:                lsp = yylstate;
        !          1338:                yyestate = yystate = yybgin;
        !          1339:                if (yyprevious==YYNEWLINE) yystate++;
        !          1340:                for (;;){
        !          1341: # ifdef LEXDEBUG
        !          1342:                        if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
        !          1343: # endif
        !          1344:                        yyt = yystate->yystoff;
        !          1345:                        if(yyt == yycrank){             /* may not be any transitions */
        !          1346:                                yyz = yystate->yyother;
        !          1347:                                if(yyz == 0)break;
        !          1348:                                if(yyz->yystoff == yycrank)break;
        !          1349:                                }
        !          1350:                        *yylastch++ = yych = input();
        !          1351:                tryagain:
        !          1352: # ifdef LEXDEBUG
        !          1353:                        if(debug){
        !          1354:                                fprintf(yyout,"char ");
        !          1355:                                allprint(yych);
        !          1356:                                putchar('\n');
        !          1357:                                }
        !          1358: # endif
        !          1359:                        yyr = yyt;
        !          1360:                        if ( (int)yyt > (int)yycrank){
        !          1361:                                yyt = yyr + yych;
        !          1362:                                if (yyt <= yytop && yyt->verify+yysvec == yystate){
        !          1363:                                        if(yyt->advance+yysvec == YYLERR)       /* error transitions */
        !          1364:                                                {unput(*--yylastch);break;}
        !          1365:                                        *lsp++ = yystate = yyt->advance+yysvec;
        !          1366:                                        goto contin;
        !          1367:                                        }
        !          1368:                                }
        !          1369: # ifdef YYOPTIM
        !          1370:                        else if((int)yyt < (int)yycrank) {              /* r < yycrank */
        !          1371:                                yyt = yyr = yycrank+(yycrank-yyt);
        !          1372: # ifdef LEXDEBUG
        !          1373:                                if(debug)fprintf(yyout,"compressed state\n");
        !          1374: # endif
        !          1375:                                yyt = yyt + yych;
        !          1376:                                if(yyt <= yytop && yyt->verify+yysvec == yystate){
        !          1377:                                        if(yyt->advance+yysvec == YYLERR)       /* error transitions */
        !          1378:                                                {unput(*--yylastch);break;}
        !          1379:                                        *lsp++ = yystate = yyt->advance+yysvec;
        !          1380:                                        goto contin;
        !          1381:                                        }
        !          1382:                                yyt = yyr + YYU(yymatch[yych]);
        !          1383: # ifdef LEXDEBUG
        !          1384:                                if(debug){
        !          1385:                                        fprintf(yyout,"try fall back character ");
        !          1386:                                        allprint(YYU(yymatch[yych]));
        !          1387:                                        putchar('\n');
        !          1388:                                        }
        !          1389: # endif
        !          1390:                                if(yyt <= yytop && yyt->verify+yysvec == yystate){
        !          1391:                                        if(yyt->advance+yysvec == YYLERR)       /* error transition */
        !          1392:                                                {unput(*--yylastch);break;}
        !          1393:                                        *lsp++ = yystate = yyt->advance+yysvec;
        !          1394:                                        goto contin;
        !          1395:                                        }
        !          1396:                                }
        !          1397:                        if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
        !          1398: # ifdef LEXDEBUG
        !          1399:                                if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
        !          1400: # endif
        !          1401:                                goto tryagain;
        !          1402:                                }
        !          1403: # endif
        !          1404:                        else
        !          1405:                                {unput(*--yylastch);break;}
        !          1406:                contin:
        !          1407: # ifdef LEXDEBUG
        !          1408:                        if(debug){
        !          1409:                                fprintf(yyout,"state %d char ",yystate-yysvec-1);
        !          1410:                                allprint(yych);
        !          1411:                                putchar('\n');
        !          1412:                                }
        !          1413: # endif
        !          1414:                        ;
        !          1415:                        }
        !          1416: # ifdef LEXDEBUG
        !          1417:                if(debug){
        !          1418:                        fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
        !          1419:                        allprint(yych);
        !          1420:                        putchar('\n');
        !          1421:                        }
        !          1422: # endif
        !          1423:                while (lsp-- > yylstate){
        !          1424:                        *yylastch-- = 0;
        !          1425:                        if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
        !          1426:                                yyolsp = lsp;
        !          1427:                                if(yyextra[*yyfnd]){            /* must backup */
        !          1428:                                        while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
        !          1429:                                                lsp--;
        !          1430:                                                unput(*yylastch--);
        !          1431:                                                }
        !          1432:                                        }
        !          1433:                                yyprevious = YYU(*yylastch);
        !          1434:                                yylsp = lsp;
        !          1435:                                yyleng = yylastch-yytext+1;
        !          1436:                                yytext[yyleng] = 0;
        !          1437: # ifdef LEXDEBUG
        !          1438:                                if(debug){
        !          1439:                                        fprintf(yyout,"\nmatch ");
        !          1440:                                        sprint(yytext);
        !          1441:                                        fprintf(yyout," action %d\n",*yyfnd);
        !          1442:                                        }
        !          1443: # endif
        !          1444:                                return(*yyfnd++);
        !          1445:                                }
        !          1446:                        unput(*yylastch);
        !          1447:                        }
        !          1448:                if (yytext[0] == 0  /* && feof(yyin) */)
        !          1449:                        {
        !          1450:                        yysptr=yysbuf;
        !          1451:                        return(0);
        !          1452:                        }
        !          1453:                yyprevious = yytext[0] = input();
        !          1454:                if (yyprevious>0)
        !          1455:                        output(yyprevious);
        !          1456:                yylastch=yytext;
        !          1457: # ifdef LEXDEBUG
        !          1458:                if(debug)putchar('\n');
        !          1459: # endif
        !          1460:                }
        !          1461:        }
        !          1462: yyback(p, m)
        !          1463:        int *p;
        !          1464: {
        !          1465: if (p==0) return(0);
        !          1466: while (*p)
        !          1467:        {
        !          1468:        if (*p++ == m)
        !          1469:                return(1);
        !          1470:        }
        !          1471: return(0);
        !          1472: }
        !          1473:        /* the following are only used in the lex library */
        !          1474: yyinput(){
        !          1475:        return(input());
        !          1476:        }
        !          1477: yyoutput(c)
        !          1478:   int c; {
        !          1479:        output(c);
        !          1480:        }
        !          1481: yyunput(c)
        !          1482:    int c; {
        !          1483:        unput(c);
        !          1484:        }

unix.superglobalmegacorp.com

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