Annotation of cci/usr/src/usr.bin/diction/prtlex.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):getc(yyin))==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: 
        !            29: #ifndef lint
        !            30: static char sccsid[] = "@(#)part.l     4.2     (Berkeley)      82/11/06";
        !            31: #endif not lint
        !            32: 
        !            33: #include "style.h"
        !            34: #include "names.h"
        !            35: #include "conp.h"
        !            36: FILE *deb;
        !            37: int nosave = 1;
        !            38: int part = 0;
        !            39: int barebones = 0;
        !            40: int topic = 0;
        !            41: int style = 1;
        !            42: int pastyle = 0;
        !            43: int pstyle = 0;
        !            44: int lstyle = 0;
        !            45: int rstyle = 0;
        !            46: int estyle = 0;
        !            47: int nstyle = 0;
        !            48: int Nstyle = 0;
        !            49: int lthresh;
        !            50: int rthresh;
        !            51: int nomin;
        !            52: char s[SCHAR];
        !            53: char *sptr = s;
        !            54: struct ss sent[SLENG];
        !            55: struct ss *sentp = sent;
        !            56: float wperc();
        !            57: float sperc();
        !            58: float typersent();
        !            59: float vperc();
        !            60: int numsent = 0;
        !            61: int qcount = 0;
        !            62: int icount = 0;
        !            63: long vowel = 0;
        !            64: long numwds = 0;
        !            65: long twds = 0;
        !            66: long numnonf = 0;
        !            67: long letnonf = 0;
        !            68: int maxsent = 0;
        !            69: int maxindex = 0;
        !            70: int minsent = 30;
        !            71: int minindex = 0;
        !            72: int simple = 0;
        !            73: int compound = 0;
        !            74: int compdx = 0;
        !            75: int prepc = 0;
        !            76: int conjc = 0;
        !            77: int complex = 0;
        !            78: int tobe = 0;
        !            79: int adj = 0;
        !            80: int infin = 0;
        !            81: int pron = 0;
        !            82: int passive = 0;
        !            83: int aux = 0;
        !            84: int adv = 0;
        !            85: int verbc = 0;
        !            86: int tverbc = 0;
        !            87: int noun = 0;
        !            88: long numlet = 0;
        !            89: int beg[15]  = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
        !            90: int sleng[50];
        !            91: int nsleng = 0;
        !            92: int j,jj,i;
        !            93: int comma = 0;
        !            94: int cflg;
        !            95: int question;
        !            96: int quote = 0;
        !            97: char *st;
        !            98: int initf = 0;
        !            99: int over = 1;
        !           100: int nroff = 0;
        !           101: int nrofflg = 0;
        !           102: int leng[MAXPAR];
        !           103: int sentno= 0;
        !           104: # define YYNEWLINE 10
        !           105: yylex(){
        !           106: int nstr; extern int yyprevious;
        !           107: while((nstr = yylook()) >= 0)
        !           108: yyfussy: switch(nstr){
        !           109: case 0:
        !           110: if(yywrap()) return(0); break;
        !           111: case 1:
        !           112: {
        !           113: collect:
        !           114:        sentp->cc = sentp->ic = yytext[0];
        !           115:        if(sentp->cc == NOM)
        !           116:                sentp->cc = NOUN;
        !           117: collect1:
        !           118:        nsleng++;
        !           119:        sentp->leng = yyleng-2;
        !           120:        sentp++->sp = sptr;
        !           121:        if(sentp >= &sent[SLENG-1]){
        !           122:                if(over)fprintf(stderr,"sentence %d too many words\n",numsent+2);
        !           123:                over=0;
        !           124:                sentp--;
        !           125:        }
        !           126:        if(sptr+yyleng >= &s[SCHAR-1]){
        !           127:                if(over)fprintf(stderr,"sentence %d too many characters\n",numsent+2);
        !           128:                over=0;
        !           129:        }
        !           130:        else {
        !           131:                for(i=2;i<yyleng;i++)*sptr++=yytext[i];
        !           132:                *sptr++ = '\0';
        !           133:        }
        !           134:        }
        !           135: break;
        !           136: case 2:
        !           137: {
        !           138:        sentp->cc=END;
        !           139:        sentp->ic = ';';
        !           140:        goto collect1;
        !           141:        }
        !           142: break;
        !           143: case 3:
        !           144: {
        !           145:        comma++;
        !           146:        goto collect;
        !           147:        }
        !           148: break;
        !           149: case 4:
        !           150: {
        !           151:        comma++;
        !           152:        goto collect;
        !           153:        }
        !           154: break;
        !           155: case 5:
        !           156: ;
        !           157: break;
        !           158: case 6:
        !           159: {
        !           160:        goto collect;
        !           161:        }
        !           162: break;
        !           163: case 7:
        !           164: {
        !           165:        cflg = 1;
        !           166:        goto sdone;
        !           167:        }
        !           168: break;
        !           169: case 8:
        !           170: {
        !           171:        cflg = 0;
        !           172: sdone:
        !           173:        over=1;
        !           174:        sentp->cc=sentp->ic=END;
        !           175:        sentp++->sp = sptr;
        !           176:        for(i=2;i<yyleng;i++)*sptr++=yytext[i];
        !           177:        *sptr++='\0';
        !           178:        if(yytext[2]=='?')question=1;
        !           179:        else question=0;
        !           180: 
        !           181: fragment:
        !           182:        jj=0;
        !           183:        if(quote == 1 && sent[jj].cc == ED){
        !           184:                sent[jj].cc = VERB;
        !           185:                quote = 0;
        !           186:        }
        !           187:        if(sent[jj].cc=='"')jj++;
        !           188:        if(sent[jj].cc==SUBCONJ){
        !           189:                if(sent[jj+1].cc == ','){
        !           190:                        sent[jj].cc=ADV;
        !           191:                        jj += 2;
        !           192:                        comma--;
        !           193:                }
        !           194:                else {
        !           195:                        jj=scan(1,',',0);
        !           196:                        if(jj != -1)jj++;
        !           197:                        comma--;
        !           198:                }
        !           199:        }
        !           200:        if(jj != -1){
        !           201:                if(sent[jj].cc==CONJ || sent[jj].cc=='"')jj++;
        !           202:                while((jj=scan(jj,END,cflg)) != -1){
        !           203:                        jj++;
        !           204:                        if(sent[jj].cc == SUBCONJ && sent[jj+1].cc == ','){
        !           205:                                sent[jj].cc=ADV;
        !           206:                                jj += 2;
        !           207:                                comma--;
        !           208:                        }
        !           209:                }
        !           210:        }
        !           211:        st = sent[i].sp;
        !           212:        if(*(st+1) == '"')
        !           213:                if(*st == '?' || *st == '!')quote = 1;
        !           214:        outp();
        !           215:        nsleng = 0;
        !           216:        if(nroff){
        !           217:                if(sentno > 0){
        !           218:                        printf(".SL \"");
        !           219:                        for(i=0;i<sentno;i++)
        !           220:                                printf(" %d",leng[i]);
        !           221:                        printf("\"\n");
        !           222:                        sentno = 0;
        !           223:                }
        !           224:                printf("%s",&yytext[1]);
        !           225:                nroff = 0;
        !           226:        }
        !           227:        sptr=s;
        !           228:        sentp=sent;
        !           229:        comma=0;
        !           230:        }
        !           231: break;
        !           232: case 9:
        !           233: {
        !           234:        if(style){
        !           235:                nomin = atoi(&yytext[1]);
        !           236:        }
        !           237:        }
        !           238: break;
        !           239: case 10:
        !           240: {
        !           241:        nrofflg=1;
        !           242:        if(sentp != sent){
        !           243:                sentp->cc = sentp->ic = END;
        !           244:                sentp++->sp = sptr;
        !           245:                *sptr++ = '.';
        !           246:                *sptr++ = '\0';
        !           247:                over = 1;
        !           248:                nroff = 1;
        !           249:                goto fragment;
        !           250:        }
        !           251:        if(sentno > 0){
        !           252:                printf(".SL \"");
        !           253:                for(i=0;i<sentno;i++)
        !           254:                        printf(" %d",leng[i]);
        !           255:                printf("\"\n");
        !           256:                sentno = 0;
        !           257:        }
        !           258:        printf("%s",&yytext[1]);
        !           259:        }
        !           260: break;
        !           261: case -1:
        !           262: break;
        !           263: default:
        !           264: fprintf(yyout,"bad switch yylook %d",nstr);
        !           265: } return(0); }
        !           266: /* end of yylex */
        !           267: yywrap(){
        !           268:        int ii;
        !           269:        int ml,mg,lsum,gsum;
        !           270:        float aindex, avl, avw;
        !           271:        float cindex,kindex,findex,fgrad;
        !           272:        float syl, avsy, adjs,snonf;
        !           273:        FILE *io;
        !           274: 
        !           275:        if(style){
        !           276:        if(numwds == 0 || numsent == 0)exit(0);
        !           277:        avw = (float)(numwds)/(float)(numsent);
        !           278:        avl = (float)(numlet)/(float)(numwds);
        !           279:        aindex = 4.71*avl + .5*avw -21.43;
        !           280:        syl = .9981*vowel-.3432*twds;
        !           281:        avsy = syl/twds;
        !           282:        kindex = 11.8*avsy+.39*avw-15.59;
        !           283:        findex = 206.835-84.6*avsy-1.015*avw;
        !           284:        if(findex < 30.)fgrad = 17.;
        !           285:        else if(findex > 100.) fgrad = 4.;
        !           286:        else if(findex > 70.)fgrad=(100.-findex)/10 +5.;
        !           287:        else if(findex > 60.)fgrad =(70.-findex)/10+8.;
        !           288:        else if(findex >50.)fgrad=(60.-findex)/5+10;
        !           289:        else fgrad=(50.-findex)/6.66 +13.;
        !           290:        adjs = 100 * (float)numsent/numwds;
        !           291:        cindex = 5.89*avl-.3*adjs-15.8;
        !           292:        printf("readability grades:\n   (Kincaid) %4.1f  (auto) %4.1f  (Coleman-Liau) %4.1f  (Flesch) %4.1f (%4.1f)\n",kindex,aindex,cindex,fgrad,findex);
        !           293:        printf("sentence info:\n");
        !           294:        printf("        no. sent %d no. wds %ld\n",numsent,numwds);
        !           295:        printf("        av sent leng %4.1f av word leng %4.2f\n",avw,avl);
        !           296:        printf("        no. questions %d no. imperatives %d\n",qcount,icount);
        !           297:        if(numnonf != 0){
        !           298:                snonf = (float)(letnonf)/(float)(numnonf);
        !           299:        }
        !           300:        printf("        no. nonfunc wds %ld  %4.1f%%   av leng %4.2f\n",numnonf,(float)(numnonf)*100/numwds,snonf);
        !           301:        mg = avw + 10.5;
        !           302:        if(mg > 49)mg = 49;
        !           303:        ml = avw - 4.5;
        !           304:        if(ml <= 0)ml = 1;
        !           305:        else if(ml > 49)ml=48;
        !           306:        gsum = lsum = 0;
        !           307:        for(ii=0;ii<50;ii++){
        !           308:                if(ii < ml)lsum += sleng[ii];
        !           309:                else if(ii > mg)gsum+= sleng[ii];
        !           310:        }
        !           311:        printf("        short sent (<%d)%3.0f%% (%d) long sent (>%d) %3.0f%% (%d)\n",ml,sperc(lsum),lsum,mg,sperc(gsum),gsum);
        !           312:        printf("        longest sent %d wds at sent %d; shortest sent %d wds at sent %d\n",maxsent,maxindex,minsent,minindex);
        !           313:        printf("sentence types:\n");
        !           314:        printf("        simple %3.0f%% (%d) complex %3.0f%% (%d)\n",sperc(simple),simple,sperc(complex),complex);
        !           315:        printf("        compound %3.0f%% (%d) compound-complex %3.0f%% (%d)\n",sperc(compound),compound,sperc(compdx),compdx);
        !           316:        printf("word usage:\n");
        !           317:        printf("        verb types as %% of total verbs\n");
        !           318:        printf("        tobe %3.0f%% (%d) aux %3.0f%% (%d) inf %3.0f%% (%d)\n",vperc(tobe),tobe,vperc(aux),aux,vperc(infin),infin);
        !           319:        if(verbc != 0)adjs = (float)(passive)*100/(float)(verbc);
        !           320:        else adjs=0;
        !           321:        printf("        passives as %% of non-inf verbs %3.0f%% (%d)\n",adjs,passive);
        !           322:        printf("        types as %% of total\n");
        !           323:        printf("        prep %3.1f%% (%d) conj %3.1f%% (%d) adv %3.1f%% (%d)\n",wperc(prepc),prepc,wperc(conjc),conjc,wperc(adv),adv);
        !           324:        printf("        noun %3.1f%% (%d) adj %3.1f%% (%d) pron %3.1f%% (%d)\n",wperc(noun),noun,
        !           325:                wperc(adj),adj,wperc(pron),pron);
        !           326:        printf("        nominalizations %3.0f %% (%d)\n",wperc(nomin),nomin);
        !           327:        printf("sentence beginnings:\n");
        !           328:        ii=beg[0]+beg[7]+beg[6]+beg[3]+beg[8];
        !           329:        printf("        subject opener: noun (%d) pron (%d) pos (%d) adj (%d) art (%d) tot %3.0f%%\n",
        !           330: beg[0],beg[7],beg[6],beg[3],beg[8],sperc(ii));
        !           331:        printf("        prep %3.0f%% (%d) adv %3.0f%% (%d) \n",sperc(beg[9]),beg[9],sperc(beg[4]),beg[4]);
        !           332:        printf("        verb %3.0f%% (%d) ",sperc(beg[1]+beg[10]+beg[11]),beg[1]+beg[10]+beg[11]);
        !           333:        printf(" sub_conj %3.0f%% (%d) conj %3.0f%% (%d)\n",sperc(beg[13]),beg[13],sperc(beg[5]),beg[5]);
        !           334:        printf("        expletives %3.0f%% (%d)\n",sperc(beg[14]),beg[14]);
        !           335: #ifdef SCATCH
        !           336:        if(nosave && (fopen(SCATCH,"r")) != NULL){
        !           337:        if(((io=fopen(SCATCH,"a")) != NULL)){
        !           338:                fprintf(io," read %4.1f %4.1f %4.1f %4.1f %4.1f\n",kindex, aindex, cindex, findex, fgrad);
        !           339:                fprintf(io," sentl %d %ld %4.2f %4.2f %d %d %ld %4.2f\n",numsent,numwds,avw,avl,qcount,icount,numnonf,snonf);
        !           340:                fprintf(io," l var %d %d %d %d %d\n",ml,lsum,mg,gsum,maxsent);
        !           341:                fprintf(io," t var %d %d %d %d\n",simple,complex,compound,compdx);
        !           342:                fprintf(io," verbs %d %d %d %d %d %d\n",tverbc,verbc,tobe,aux,infin,passive);
        !           343:                fprintf(io," ty %d %d %d %d %d %d %d\n",prepc,conjc,adv,noun,adj,pron,nomin);
        !           344:                fprintf(io," beg %d %d %d %d %d %d\n",beg[0],beg[7],beg[6],beg[3],beg[8],ii);
        !           345:                fprintf(io," sbeg %d %d %d %d %d %d\n",beg[9],beg[4],beg[1]+beg[10]+beg[11],beg[13],beg[5],beg[14]);
        !           346:                }
        !           347:        }
        !           348: #endif
        !           349:        }
        !           350:        return(1);
        !           351: }
        !           352: float
        !           353: wperc(a)
        !           354: {
        !           355:        return((float)(a)*100/numwds);
        !           356: }
        !           357: float
        !           358: sperc(a)
        !           359: {
        !           360:        return((float)(a)*100/numsent);
        !           361: }
        !           362: float
        !           363: typersent(a)
        !           364: {
        !           365: return((float)(a)/numsent);
        !           366: }
        !           367: float
        !           368: vperc(a)
        !           369: {
        !           370:        if(tverbc == 0)return(0);
        !           371:        return((float)(a)*100/tverbc);
        !           372: }
        !           373: main(argc,argv)
        !           374: char **argv;
        !           375: {
        !           376:        while(--argc > 0 && (++argv)[0][0] == '-' ){
        !           377:                switch(argv[0][1]){
        !           378:                case 'd': nosave = 0;
        !           379:                        continue;
        !           380:                case 's': style=1;
        !           381:                        continue;
        !           382:                case 'p': pastyle=style=1;
        !           383:                        continue;
        !           384:                case 'a': pstyle=style=1;
        !           385:                        continue;
        !           386:                case 'e': estyle = style = 1;
        !           387:                        continue;
        !           388:                case 'n': nstyle = style = 1;
        !           389:                        continue;
        !           390:                case 'N': Nstyle = style = 1;
        !           391:                        continue;
        !           392:                case 'l': style=lstyle=1;
        !           393:                        lthresh = atoi(*(++argv));
        !           394:                        argc--;
        !           395:                        continue;
        !           396:                case 'r':
        !           397:                        style=rstyle=1;
        !           398:                        rthresh = atoi(*(++argv));
        !           399:                        argc--;
        !           400:                        continue;
        !           401:                case 'P':
        !           402:                        part = 1;
        !           403:                        style = 0;
        !           404:                        continue;
        !           405:                case 'b':               /* print bare bones info rje */
        !           406:                        barebones = 1;
        !           407:                        style = 0;
        !           408:                        continue;
        !           409:                case 'T':               /*topic*/
        !           410:                        style = 0;
        !           411:                        topic = 1;
        !           412:                        continue;
        !           413:                default:
        !           414:                        fprintf(stderr,"unknown flag to part %s\n",*argv);
        !           415:                        exit(1);
        !           416:                }
        !           417:                argv++;
        !           418:        }
        !           419: #ifdef SNOM
        !           420:        if(fopen(SNOM,"r") != NULL){
        !           421:                deb = fopen(SNOM,"a");  /* SAVE NOM*/
        !           422:        }
        !           423: #else
        !           424:        deb = NULL;
        !           425: #endif
        !           426:        yylex();
        !           427:        if(nrofflg && sentno > 0){
        !           428:                printf(".SL \"");
        !           429:                for(i=0;i<sentno;i++)
        !           430:                        printf(" %d",leng[i]);
        !           431:                printf("\"\n");
        !           432:        }
        !           433: }
        !           434: int yyvstop[] ={
        !           435: 0,
        !           436: 
        !           437: 5,
        !           438: 0,
        !           439: 
        !           440: 9,
        !           441: 0,
        !           442: 
        !           443: 9,
        !           444: 0,
        !           445: 
        !           446: 6,
        !           447: 0,
        !           448: 
        !           449: 3,
        !           450: 0,
        !           451: 
        !           452: 3,
        !           453: 4,
        !           454: 0,
        !           455: 
        !           456: 10,
        !           457: 0,
        !           458: 
        !           459: 2,
        !           460: 9,
        !           461: 0,
        !           462: 
        !           463: 1,
        !           464: 0,
        !           465: 
        !           466: 8,
        !           467: 0,
        !           468: 
        !           469: 8,
        !           470: 0,
        !           471: 
        !           472: 7,
        !           473: 8,
        !           474: 0,
        !           475: 0};
        !           476: # define YYTYPE char
        !           477: struct yywork { YYTYPE verify, advance; } yycrank[] ={
        !           478: 0,0,   0,0,    0,0,    4,11,   
        !           479: 0,0,   0,0,    0,0,    0,0,    
        !           480: 0,0,   0,0,    0,0,    1,3,    
        !           481: 4,0,   2,3,    11,0,   14,21,  
        !           482: 8,0,   18,0,   19,0,   20,0,   
        !           483: 22,0,  23,0,   25,0,   26,0,   
        !           484: 0,0,   0,0,    0,0,    0,0,    
        !           485: 0,0,   0,0,    0,0,    0,0,    
        !           486: 0,0,   0,0,    0,0,    0,0,    
        !           487: 0,0,   2,5,    0,0,    0,0,    
        !           488: 0,0,   0,0,    0,0,    0,0,    
        !           489: 0,0,   0,0,    4,11,   2,6,    
        !           490: 0,0,   0,0,    0,0,    0,0,    
        !           491: 19,19, 0,0,    0,0,    0,0,    
        !           492: 0,0,   0,0,    25,26,  5,12,   
        !           493: 1,4,   2,7,    2,8,    6,13,   
        !           494: 8,15,  9,16,   10,17,  4,11,   
        !           495: 2,9,   2,9,    2,9,    2,9,    
        !           496: 2,10,  2,9,    2,9,    2,9,    
        !           497: 2,9,   2,9,    2,9,    2,9,    
        !           498: 2,9,   2,9,    2,9,    2,9,    
        !           499: 2,9,   2,9,    2,9,    2,9,    
        !           500: 2,9,   2,9,    2,9,    2,9,    
        !           501: 2,9,   2,9,    0,0,    0,0,    
        !           502: 0,0,   0,0,    0,0,    0,0,    
        !           503: 2,9,   2,9,    2,9,    2,9,    
        !           504: 2,9,   2,9,    2,9,    2,9,    
        !           505: 2,9,   2,9,    2,9,    2,9,    
        !           506: 2,9,   2,9,    2,9,    2,9,    
        !           507: 2,9,   2,9,    2,9,    2,9,    
        !           508: 2,9,   2,9,    2,9,    2,9,    
        !           509: 2,9,   2,9,    7,14,   12,18,  
        !           510: 13,19, 15,22,  16,23,  17,24,  
        !           511: 24,24, 0,0,    0,0,    7,0,    
        !           512: 12,0,  13,0,   15,0,   16,0,   
        !           513: 17,0,  24,0,   0,0,    0,0,    
        !           514: 0,0,   0,0,    0,0,    0,0,    
        !           515: 0,0,   0,0,    0,0,    0,0,    
        !           516: 0,0,   0,0,    0,0,    0,0,    
        !           517: 0,0,   0,0,    0,0,    0,0,    
        !           518: 0,0,   0,0,    0,0,    0,0,    
        !           519: 0,0,   0,0,    0,0,    0,0,    
        !           520: 0,0,   7,14,   12,18,  13,20,  
        !           521: 15,22, 16,23,  17,24,  24,24,  
        !           522: 0,0,   17,25,  0,0,    0,0,    
        !           523: 0,0,   0,0,    0,0,    0,0,    
        !           524: 0,0,   0,0,    0,0,    0,0,    
        !           525: 0,0,   0,0,    7,14,   12,18,  
        !           526: 13,19, 15,22,  16,23,  17,24,  
        !           527: 24,24, 0,0,    0,0,    0,0,    
        !           528: 0,0};
        !           529: struct yysvf yysvec[] ={
        !           530: 0,     0,      0,
        !           531: yycrank+1,     0,              0,      
        !           532: yycrank+3,     0,              0,      
        !           533: yycrank+0,     0,              yyvstop+1,
        !           534: yycrank+-2,    0,              0,      
        !           535: yycrank+1,     0,              0,      
        !           536: yycrank+5,     0,              0,      
        !           537: yycrank+-125,  0,              0,      
        !           538: yycrank+-6,    yysvec+4,       0,      
        !           539: yycrank+7,     0,              0,      
        !           540: yycrank+8,     0,              0,      
        !           541: yycrank+-4,    yysvec+4,       yyvstop+3,
        !           542: yycrank+-126,  0,              0,      
        !           543: yycrank+-127,  0,              0,      
        !           544: yycrank+-5,    yysvec+7,       0,      
        !           545: yycrank+-128,  0,              yyvstop+5,
        !           546: yycrank+-129,  0,              0,      
        !           547: yycrank+-130,  0,              0,      
        !           548: yycrank+-7,    yysvec+12,      yyvstop+7,
        !           549: yycrank+-8,    yysvec+13,      yyvstop+9,
        !           550: yycrank+-9,    yysvec+13,      yyvstop+11,
        !           551: yycrank+0,     0,              yyvstop+14,
        !           552: yycrank+-10,   yysvec+15,      yyvstop+16,
        !           553: yycrank+-11,   yysvec+16,      yyvstop+19,
        !           554: yycrank+-131,  0,              yyvstop+21,
        !           555: yycrank+-12,   yysvec+24,      yyvstop+23,
        !           556: yycrank+-13,   yysvec+24,      yyvstop+25,
        !           557: 0,     0,      0};
        !           558: struct yywork *yytop = yycrank+196;
        !           559: struct yysvf *yybgin = yysvec+1;
        !           560: char yymatch[] ={
        !           561: 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !           562: 01  ,01  ,012 ,01  ,01  ,01  ,01  ,01  ,
        !           563: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !           564: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !           565: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !           566: 01  ,01  ,01  ,01  ,',' ,',' ,01  ,01  ,
        !           567: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !           568: 01  ,01  ,',' ,01  ,01  ,01  ,01  ,01  ,
        !           569: 01  ,'A' ,'A' ,'A' ,'A' ,01  ,'A' ,'A' ,
        !           570: 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
        !           571: 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
        !           572: 'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,01  ,
        !           573: 01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
        !           574: 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
        !           575: 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
        !           576: 'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,01  ,
        !           577: 0};
        !           578: char yyextra[] ={
        !           579: 0,0,0,0,0,0,0,0,
        !           580: 0,0,0,0,0,0,0,0,
        !           581: 0};
        !           582: /*     ncform  4.1     83/08/11        */
        !           583: 
        !           584: int yylineno =1;
        !           585: # define YYU(x) x
        !           586: # define NLSTATE yyprevious=YYNEWLINE
        !           587: char yytext[YYLMAX];
        !           588: struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
        !           589: char yysbuf[YYLMAX];
        !           590: char *yysptr = yysbuf;
        !           591: int *yyfnd;
        !           592: extern struct yysvf *yyestate;
        !           593: int yyprevious = YYNEWLINE;
        !           594: yylook(){
        !           595:        register struct yysvf *yystate, **lsp;
        !           596:        register struct yywork *yyt;
        !           597:        struct yysvf *yyz;
        !           598:        int yych;
        !           599:        struct yywork *yyr;
        !           600: # ifdef LEXDEBUG
        !           601:        int debug;
        !           602: # endif
        !           603:        char *yylastch;
        !           604:        /* start off machines */
        !           605: # ifdef LEXDEBUG
        !           606:        debug = 0;
        !           607: # endif
        !           608:        if (!yymorfg)
        !           609:                yylastch = yytext;
        !           610:        else {
        !           611:                yymorfg=0;
        !           612:                yylastch = yytext+yyleng;
        !           613:                }
        !           614:        for(;;){
        !           615:                lsp = yylstate;
        !           616:                yyestate = yystate = yybgin;
        !           617:                if (yyprevious==YYNEWLINE) yystate++;
        !           618:                for (;;){
        !           619: # ifdef LEXDEBUG
        !           620:                        if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
        !           621: # endif
        !           622:                        yyt = yystate->yystoff;
        !           623:                        if(yyt == yycrank){             /* may not be any transitions */
        !           624:                                yyz = yystate->yyother;
        !           625:                                if(yyz == 0)break;
        !           626:                                if(yyz->yystoff == yycrank)break;
        !           627:                                }
        !           628:                        *yylastch++ = yych = input();
        !           629:                tryagain:
        !           630: # ifdef LEXDEBUG
        !           631:                        if(debug){
        !           632:                                fprintf(yyout,"char ");
        !           633:                                allprint(yych);
        !           634:                                putchar('\n');
        !           635:                                }
        !           636: # endif
        !           637:                        yyr = yyt;
        !           638:                        if ( (int)yyt > (int)yycrank){
        !           639:                                yyt = yyr + yych;
        !           640:                                if (yyt <= yytop && yyt->verify+yysvec == yystate){
        !           641:                                        if(yyt->advance+yysvec == YYLERR)       /* error transitions */
        !           642:                                                {unput(*--yylastch);break;}
        !           643:                                        *lsp++ = yystate = yyt->advance+yysvec;
        !           644:                                        goto contin;
        !           645:                                        }
        !           646:                                }
        !           647: # ifdef YYOPTIM
        !           648:                        else if((int)yyt < (int)yycrank) {              /* r < yycrank */
        !           649:                                yyt = yyr = yycrank+(yycrank-yyt);
        !           650: # ifdef LEXDEBUG
        !           651:                                if(debug)fprintf(yyout,"compressed state\n");
        !           652: # endif
        !           653:                                yyt = yyt + yych;
        !           654:                                if(yyt <= yytop && yyt->verify+yysvec == yystate){
        !           655:                                        if(yyt->advance+yysvec == YYLERR)       /* error transitions */
        !           656:                                                {unput(*--yylastch);break;}
        !           657:                                        *lsp++ = yystate = yyt->advance+yysvec;
        !           658:                                        goto contin;
        !           659:                                        }
        !           660:                                yyt = yyr + YYU(yymatch[yych]);
        !           661: # ifdef LEXDEBUG
        !           662:                                if(debug){
        !           663:                                        fprintf(yyout,"try fall back character ");
        !           664:                                        allprint(YYU(yymatch[yych]));
        !           665:                                        putchar('\n');
        !           666:                                        }
        !           667: # endif
        !           668:                                if(yyt <= yytop && yyt->verify+yysvec == yystate){
        !           669:                                        if(yyt->advance+yysvec == YYLERR)       /* error transition */
        !           670:                                                {unput(*--yylastch);break;}
        !           671:                                        *lsp++ = yystate = yyt->advance+yysvec;
        !           672:                                        goto contin;
        !           673:                                        }
        !           674:                                }
        !           675:                        if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
        !           676: # ifdef LEXDEBUG
        !           677:                                if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
        !           678: # endif
        !           679:                                goto tryagain;
        !           680:                                }
        !           681: # endif
        !           682:                        else
        !           683:                                {unput(*--yylastch);break;}
        !           684:                contin:
        !           685: # ifdef LEXDEBUG
        !           686:                        if(debug){
        !           687:                                fprintf(yyout,"state %d char ",yystate-yysvec-1);
        !           688:                                allprint(yych);
        !           689:                                putchar('\n');
        !           690:                                }
        !           691: # endif
        !           692:                        ;
        !           693:                        }
        !           694: # ifdef LEXDEBUG
        !           695:                if(debug){
        !           696:                        fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
        !           697:                        allprint(yych);
        !           698:                        putchar('\n');
        !           699:                        }
        !           700: # endif
        !           701:                while (lsp-- > yylstate){
        !           702:                        *yylastch-- = 0;
        !           703:                        if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
        !           704:                                yyolsp = lsp;
        !           705:                                if(yyextra[*yyfnd]){            /* must backup */
        !           706:                                        while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
        !           707:                                                lsp--;
        !           708:                                                unput(*yylastch--);
        !           709:                                                }
        !           710:                                        }
        !           711:                                yyprevious = YYU(*yylastch);
        !           712:                                yylsp = lsp;
        !           713:                                yyleng = yylastch-yytext+1;
        !           714:                                yytext[yyleng] = 0;
        !           715: # ifdef LEXDEBUG
        !           716:                                if(debug){
        !           717:                                        fprintf(yyout,"\nmatch ");
        !           718:                                        sprint(yytext);
        !           719:                                        fprintf(yyout," action %d\n",*yyfnd);
        !           720:                                        }
        !           721: # endif
        !           722:                                return(*yyfnd++);
        !           723:                                }
        !           724:                        unput(*yylastch);
        !           725:                        }
        !           726:                if (yytext[0] == 0  /* && feof(yyin) */)
        !           727:                        {
        !           728:                        yysptr=yysbuf;
        !           729:                        return(0);
        !           730:                        }
        !           731:                yyprevious = yytext[0] = input();
        !           732:                if (yyprevious>0)
        !           733:                        output(yyprevious);
        !           734:                yylastch=yytext;
        !           735: # ifdef LEXDEBUG
        !           736:                if(debug)putchar('\n');
        !           737: # endif
        !           738:                }
        !           739:        }
        !           740: yyback(p, m)
        !           741:        int *p;
        !           742: {
        !           743: if (p==0) return(0);
        !           744: while (*p)
        !           745:        {
        !           746:        if (*p++ == m)
        !           747:                return(1);
        !           748:        }
        !           749: return(0);
        !           750: }
        !           751:        /* the following are only used in the lex library */
        !           752: yyinput(){
        !           753:        return(input());
        !           754:        }
        !           755: yyoutput(c)
        !           756:   int c; {
        !           757:        output(c);
        !           758:        }
        !           759: yyunput(c)
        !           760:    int c; {
        !           761:        unput(c);
        !           762:        }

unix.superglobalmegacorp.com

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