Annotation of researchv9/sys.vax/conf/src/config/lex.yy.c, revision 1.1.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: /*     config.l        1.8     81/05/18        */
                     29: 
                     30: #include <ctype.h>
                     31: #include "y.tab.h"
                     32: #include "config.h"
                     33: 
                     34: #define tprintf if (do_trace) printf
                     35: 
                     36: YYSTYPE yylval;
                     37: 
                     38: /*
                     39:  * Key word table
                     40:  */
                     41: 
                     42: struct kt {
                     43:        char *kt_name;
                     44:        int kt_val;
                     45: } key_words[] = {
                     46:        "cpu", CPU, "ident", IDENT, "config", CONFIG, "options", OPTIONS,
                     47:        "device", DEVICE, "controller", CONTROLLER, "uba", UBA, "mba", MBA,
                     48:        "csr", CSR, "nexus", NEXUS, "drive", DRIVE, "vector", VECTOR,
                     49:        "pseudo-device", PSEUDO_DEVICE, "flags", FLAGS, "trace", TRACE,
                     50:        "disk", DISK, "tape", DEVICE, "slave", SLAVE, "at", AT,
                     51:        "hz", HZ, "timezone", TIMEZONE, "dst", DST, "maxusers", MAXUSERS,
                     52:        "master", MASTER, "mkfile", MAKEFILE,
                     53:        0,0,
                     54: };
                     55: # define YYNEWLINE 10
                     56: yylex(){
                     57: int nstr; extern int yyprevious;
                     58: while((nstr = yylook()) >= 0)
                     59: yyfussy: switch(nstr){
                     60: case 0:
                     61: if(yywrap()) return(0); break;
                     62: case 1:
                     63:        {
                     64:                        int i;
                     65: 
                     66:                        if ((i = kw_lookup(yytext)) == -1)
                     67:                        {
                     68:                                yylval.cp = yytext;
                     69:                                tprintf("id(%s) ", yytext);
                     70:                                return ID;
                     71:                        }
                     72:                        tprintf("(%s) ", yytext);
                     73:                        return i;
                     74:                }
                     75: break;
                     76: case 2:
                     77: {
                     78:                        yytext[strlen(yytext)-1] = '\0';
                     79:                        yylval.cp = yytext + 1;
                     80:                        return ID;
                     81:                }
                     82: break;
                     83: case 3:
                     84:        {
                     85:                        yylval.i = octal(yytext);
                     86:                        tprintf("#O:%o ", yylval.i);
                     87:                        return NUMBER;
                     88:                }
                     89: break;
                     90: case 4:
                     91: {
                     92:                        yylval.i = hex(yytext);
                     93:                        tprintf("#X:%x ", yylval.i);
                     94:                        return NUMBER;
                     95:                }
                     96: break;
                     97: case 5:
                     98: {
                     99:                        yylval.i = atoi(yytext);
                    100:                        tprintf("#D:%d ", yylval.i);
                    101:                        return NUMBER;
                    102:                }
                    103: break;
                    104: case 6:
                    105: {
                    106:                        double atof();
                    107:                        yylval.i = (int) (60 * atof(yytext) + 0.5);
                    108:                        return FPNUMBER;
                    109:                }
                    110: break;
                    111: case 7:
                    112:        {
                    113:                        return MINUS;
                    114:                }
                    115: break;
                    116: case 8:
                    117:        {
                    118:                        yylval.i = QUES;
                    119:                        tprintf("? ");
                    120:                        return NUMBER;
                    121:                }
                    122: break;
                    123: case 9:
                    124: {
                    125:                        yyline++;
                    126:                        tprintf("\n... ");
                    127:                }
                    128: break;
                    129: case 10:
                    130:        {
                    131:                        yyline++;
                    132:                        tprintf("\n");
                    133:                        return SEMICOLON;
                    134:                }
                    135: break;
                    136: case 11:
                    137:        {       /* Ignored (comment) */;        }
                    138: break;
                    139: case 12:
                    140:        {       /* Ignored (white space) */;    }
                    141: break;
                    142: case 13:
                    143:        {       return SEMICOLON;               }
                    144: break;
                    145: case 14:
                    146:        {       return COMMA;                   }
                    147: break;
                    148: case -1:
                    149: break;
                    150: default:
                    151: fprintf(yyout,"bad switch yylook %d",nstr);
                    152: } return(0); }
                    153: /* end of yylex */
                    154: /*
                    155:  * kw_lookup
                    156:  *     Look up a string in the keyword table.  Returns a -1 if the
                    157:  *     string is not a keyword otherwise it returns the keyword number
                    158:  */
                    159: 
                    160: kw_lookup(word)
                    161: register char *word;
                    162: {
                    163:        register struct kt *kp;
                    164: 
                    165:        for (kp = key_words; kp->kt_name != 0; kp++)
                    166:                if (eq(word, kp->kt_name))
                    167:                        return kp->kt_val;
                    168:        return -1;
                    169: }
                    170: 
                    171: /*
                    172:  * Number conversion routines
                    173:  */
                    174: 
                    175: octal(str)
                    176: char *str;
                    177: {
                    178:        int num;
                    179: 
                    180:        sscanf(str, "%o", &num);
                    181:        return num;
                    182: }
                    183: 
                    184: hex(str)
                    185: char *str;
                    186: {
                    187:        int num;
                    188: 
                    189:        sscanf(str+2, "%x", &num);
                    190:        return num;
                    191: }
                    192: int yyvstop[] = {
                    193: 0,
                    194: 
                    195: 12,
                    196: 0,
                    197: 
                    198: 12,
                    199: 0,
                    200: 
                    201: 12,
                    202: 0,
                    203: 
                    204: 10,
                    205: -9,
                    206: 0,
                    207: 
                    208: 14,
                    209: 0,
                    210: 
                    211: 7,
                    212: 0,
                    213: 
                    214: 3,
                    215: 0,
                    216: 
                    217: 5,
                    218: 0,
                    219: 
                    220: 13,
                    221: 0,
                    222: 
                    223: 8,
                    224: 0,
                    225: 
                    226: 1,
                    227: 0,
                    228: 
                    229: 11,
                    230: 0,
                    231: 
                    232: 9,
                    233: 0,
                    234: 
                    235: 6,
                    236: 0,
                    237: 
                    238: 3,
                    239: 0,
                    240: 
                    241: 5,
                    242: 0,
                    243: 
                    244: 2,
                    245: 0,
                    246: 
                    247: 4,
                    248: 0,
                    249: 0};
                    250: # define YYTYPE char
                    251: struct yywork { YYTYPE verify, advance; } yycrank[] = {
                    252: 0,0,   0,0,    1,0,    1,0,    
                    253: 1,0,   1,0,    1,0,    1,0,    
                    254: 1,0,   1,0,    1,3,    1,4,    
                    255: 1,0,   1,0,    1,0,    1,0,    
                    256: 1,0,   1,0,    1,0,    1,0,    
                    257: 1,0,   1,0,    1,0,    1,0,    
                    258: 1,0,   1,0,    1,0,    1,0,    
                    259: 1,0,   1,0,    1,0,    1,0,    
                    260: 1,0,   3,3,    1,0,    1,5,    
                    261: 1,0,   1,0,    1,0,    1,0,    
                    262: 1,0,   1,0,    1,0,    1,0,    
                    263: 1,0,   1,6,    1,7,    1,0,    
                    264: 1,0,   1,8,    1,9,    4,14,   
                    265: 15,20, 0,0,    0,0,    0,0,    
                    266: 3,3,   1,9,    0,0,    1,0,    
                    267: 1,10,  1,0,    1,0,    1,0,    
                    268: 1,11,  1,0,    1,12,   0,0,    
                    269: 0,0,   0,0,    0,0,    0,0,    
                    270: 0,0,   9,16,   4,14,   9,19,   
                    271: 9,19,  9,19,   9,19,   9,19,   
                    272: 9,19,  9,19,   9,19,   9,19,   
                    273: 9,19,  0,0,    0,0,    0,0,    
                    274: 0,0,   0,0,    0,0,    0,0,    
                    275: 1,0,   1,0,    1,0,    1,0,    
                    276: 0,0,   1,0,    1,12,   8,16,   
                    277: 0,0,   8,17,   8,17,   8,17,   
                    278: 8,17,  8,17,   8,17,   8,17,   
                    279: 8,17,  16,16,  16,16,  16,16,  
                    280: 16,16, 16,16,  16,16,  16,16,  
                    281: 16,16, 16,16,  16,16,  0,0,    
                    282: 0,0,   0,0,    0,0,    0,0,    
                    283: 1,0,   1,0,    1,0,    1,0,    
                    284: 1,0,   2,0,    2,0,    2,0,    
                    285: 2,0,   2,0,    2,0,    2,0,    
                    286: 2,0,   0,0,    0,0,    2,0,    
                    287: 2,0,   2,0,    2,0,    2,0,    
                    288: 2,0,   2,0,    2,0,    2,0,    
                    289: 2,0,   2,0,    2,0,    2,0,    
                    290: 2,0,   2,0,    2,0,    2,0,    
                    291: 2,0,   2,0,    2,0,    2,0,    
                    292: 0,0,   2,0,    0,0,    2,13,   
                    293: 2,0,   2,0,    2,0,    2,0,    
                    294: 2,0,   2,0,    2,0,    2,0,    
                    295: 2,6,   8,18,   2,0,    2,0,    
                    296: 17,17, 17,17,  17,17,  17,17,  
                    297: 17,17, 17,17,  17,17,  17,17,  
                    298: 0,0,   5,15,   2,0,    2,10,   
                    299: 2,0,   2,0,    2,0,    2,11,   
                    300: 2,0,   5,15,   5,15,   19,19,  
                    301: 19,19, 19,19,  19,19,  19,19,  
                    302: 19,19, 19,19,  19,19,  19,19,  
                    303: 19,19, 0,0,    0,0,    18,21,  
                    304: 18,21, 18,21,  18,21,  18,21,  
                    305: 18,21, 18,21,  18,21,  18,21,  
                    306: 18,21, 0,0,    5,0,    2,0,    
                    307: 2,0,   2,0,    2,0,    0,0,    
                    308: 2,0,   0,0,    0,0,    0,0,    
                    309: 0,0,   5,15,   0,0,    0,0,    
                    310: 5,15,  5,15,   0,0,    0,0,    
                    311: 0,0,   0,0,    0,0,    0,0,    
                    312: 5,15,  0,0,    0,0,    0,0,    
                    313: 0,0,   0,0,    0,0,    0,0,    
                    314: 0,0,   5,15,   0,0,    2,0,    
                    315: 2,0,   2,0,    2,0,    2,0,    
                    316: 18,21, 18,21,  18,21,  18,21,  
                    317: 18,21, 18,21,  12,12,  0,0,    
                    318: 0,0,   0,0,    0,0,    0,0,    
                    319: 0,0,   0,0,    0,0,    0,0,    
                    320: 0,0,   0,0,    0,0,    0,0,    
                    321: 0,0,   0,0,    0,0,    0,0,    
                    322: 0,0,   5,15,   12,12,  12,12,  
                    323: 12,12, 12,12,  12,12,  12,12,  
                    324: 12,12, 12,12,  12,12,  12,12,  
                    325: 12,12, 12,12,  12,12,  12,12,  
                    326: 12,12, 12,12,  12,12,  12,12,  
                    327: 12,12, 12,12,  12,12,  12,12,  
                    328: 12,12, 12,12,  12,12,  12,12,  
                    329: 0,0,   0,0,    0,0,    0,0,    
                    330: 12,12, 0,0,    12,12,  12,12,  
                    331: 12,12, 12,12,  12,12,  12,12,  
                    332: 12,12, 12,12,  12,12,  12,12,  
                    333: 12,12, 12,12,  12,12,  12,12,  
                    334: 12,12, 12,12,  12,12,  12,12,  
                    335: 12,12, 12,12,  12,12,  12,12,  
                    336: 12,12, 12,12,  12,12,  12,12,  
                    337: 13,13, 0,0,    0,0,    0,0,    
                    338: 0,0,   0,0,    0,0,    0,0,    
                    339: 13,13, 13,0,   0,0,    0,0,    
                    340: 0,0,   0,0,    0,0,    0,0,    
                    341: 0,0,   0,0,    0,0,    0,0,    
                    342: 0,0,   0,0,    0,0,    0,0,    
                    343: 0,0,   0,0,    0,0,    0,0,    
                    344: 0,0,   0,0,    0,0,    0,0,    
                    345: 0,0,   13,13,  0,0,    0,0,    
                    346: 0,0,   0,0,    0,0,    0,0,    
                    347: 0,0,   0,0,    0,0,    0,0,    
                    348: 13,13, 0,0,    0,0,    13,13,  
                    349: 13,13, 0,0,    0,0,    0,0,    
                    350: 0,0,   0,0,    0,0,    13,13,  
                    351: 0,0,   0,0,    0,0,    0,0,    
                    352: 0,0,   0,0,    0,0,    0,0,    
                    353: 13,13, 0,0,    0,0,    0,0,    
                    354: 0,0,   0,0,    0,0,    0,0,    
                    355: 0,0,   0,0,    0,0,    0,0,    
                    356: 0,0,   0,0,    0,0,    0,0,    
                    357: 0,0,   0,0,    0,0,    0,0,    
                    358: 0,0,   0,0,    0,0,    0,0,    
                    359: 0,0,   0,0,    0,0,    0,0,    
                    360: 0,0,   0,0,    0,0,    0,0,    
                    361: 13,13, 0,0,    0,0,    0,0,    
                    362: 0,0};
                    363: struct yysvf yysvec[] = {
                    364: 0,     0,      0,
                    365: yycrank+-1,    0,              yyvstop+1,
                    366: yycrank+-128,  yysvec+1,       yyvstop+3,
                    367: yycrank+24,    0,              yyvstop+5,
                    368: yycrank+42,    0,              yyvstop+7,
                    369: yycrank+-184,  0,              0,      
                    370: yycrank+0,     0,              yyvstop+10,
                    371: yycrank+0,     0,              yyvstop+12,
                    372: yycrank+53,    0,              yyvstop+14,
                    373: yycrank+27,    0,              yyvstop+16,
                    374: yycrank+0,     0,              yyvstop+18,
                    375: yycrank+0,     0,              yyvstop+20,
                    376: yycrank+217,   0,              yyvstop+22,
                    377: yycrank+-339,  0,              yyvstop+24,
                    378: yycrank+0,     0,              yyvstop+26,
                    379: yycrank+-18,   yysvec+5,       0,      
                    380: yycrank+61,    0,              yyvstop+28,
                    381: yycrank+128,   0,              yyvstop+30,
                    382: yycrank+159,   0,              0,      
                    383: yycrank+147,   0,              yyvstop+32,
                    384: yycrank+0,     0,              yyvstop+34,
                    385: yycrank+0,     yysvec+18,      yyvstop+36,
                    386: 0,     0,      0};
                    387: struct yywork *yytop = yycrank+436;
                    388: struct yysvf *yybgin = yysvec+1;
                    389: char yymatch[] = {
                    390: 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
                    391: 01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
                    392: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
                    393: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
                    394: 011 ,01  ,'"' ,01  ,01  ,01  ,01  ,01  ,
                    395: 01  ,01  ,01  ,01  ,01  ,'-' ,01  ,01  ,
                    396: '0' ,'1' ,'1' ,'1' ,'1' ,'1' ,'1' ,'1' ,
                    397: '8' ,'8' ,01  ,01  ,01  ,01  ,01  ,01  ,
                    398: 01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
                    399: 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
                    400: 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
                    401: 'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,'A' ,
                    402: 01  ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,'A' ,
                    403: 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
                    404: 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
                    405: 'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,01  ,
                    406: 0};
                    407: char yyextra[] = {
                    408: 0,0,0,0,0,0,0,0,
                    409: 0,1,0,0,0,0,0,0,
                    410: 0};
                    411: int yylineno =1;
                    412: # define YYU(x) x
                    413: # define NLSTATE yyprevious=YYNEWLINE
                    414: char yytext[YYLMAX];
                    415: struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
                    416: char yysbuf[YYLMAX];
                    417: char *yysptr = yysbuf;
                    418: int *yyfnd;
                    419: extern struct yysvf *yyestate;
                    420: int yyprevious = YYNEWLINE;
                    421: yylook(){
                    422:        register struct yysvf *yystate, **lsp;
                    423:        register struct yywork *yyt;
                    424:        struct yysvf *yyz;
                    425:        int yych;
                    426:        struct yywork *yyr;
                    427: # ifdef LEXDEBUG
                    428:        int debug;
                    429: # endif
                    430:        char *yylastch;
                    431:        /* start off machines */
                    432: # ifdef LEXDEBUG
                    433:        debug = 0;
                    434: # endif
                    435:        if (!yymorfg)
                    436:                yylastch = yytext;
                    437:        else {
                    438:                yymorfg=0;
                    439:                yylastch = yytext+yyleng;
                    440:                }
                    441:        for(;;){
                    442:                lsp = yylstate;
                    443:                yyestate = yystate = yybgin;
                    444:                if (yyprevious==YYNEWLINE) yystate++;
                    445:                for (;;){
                    446: # ifdef LEXDEBUG
                    447:                        if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
                    448: # endif
                    449:                        yyt = yystate->yystoff;
                    450:                        if(yyt == yycrank){             /* may not be any transitions */
                    451:                                yyz = yystate->yyother;
                    452:                                if(yyz == 0)break;
                    453:                                if(yyz->yystoff == yycrank)break;
                    454:                                }
                    455:                        *yylastch++ = yych = input();
                    456:                tryagain:
                    457: # ifdef LEXDEBUG
                    458:                        if(debug){
                    459:                                fprintf(yyout,"char ");
                    460:                                allprint(yych);
                    461:                                putchar('\n');
                    462:                                }
                    463: # endif
                    464:                        yyr = yyt;
                    465:                        if ( (int)yyt > (int)yycrank){
                    466:                                yyt = yyr + yych;
                    467:                                if (yyt <= yytop && yyt->verify+yysvec == yystate){
                    468:                                        if(yyt->advance+yysvec == YYLERR)       /* error transitions */
                    469:                                                {unput(*--yylastch);break;}
                    470:                                        *lsp++ = yystate = yyt->advance+yysvec;
                    471:                                        goto contin;
                    472:                                        }
                    473:                                }
                    474: # ifdef YYOPTIM
                    475:                        else if((int)yyt < (int)yycrank) {              /* r < yycrank */
                    476:                                yyt = yyr = yycrank+(yycrank-yyt);
                    477: # ifdef LEXDEBUG
                    478:                                if(debug)fprintf(yyout,"compressed state\n");
                    479: # endif
                    480:                                yyt = yyt + yych;
                    481:                                if(yyt <= yytop && yyt->verify+yysvec == yystate){
                    482:                                        if(yyt->advance+yysvec == YYLERR)       /* error transitions */
                    483:                                                {unput(*--yylastch);break;}
                    484:                                        *lsp++ = yystate = yyt->advance+yysvec;
                    485:                                        goto contin;
                    486:                                        }
                    487:                                yyt = yyr + YYU(yymatch[yych]);
                    488: # ifdef LEXDEBUG
                    489:                                if(debug){
                    490:                                        fprintf(yyout,"try fall back character ");
                    491:                                        allprint(YYU(yymatch[yych]));
                    492:                                        putchar('\n');
                    493:                                        }
                    494: # endif
                    495:                                if(yyt <= yytop && yyt->verify+yysvec == yystate){
                    496:                                        if(yyt->advance+yysvec == YYLERR)       /* error transition */
                    497:                                                {unput(*--yylastch);break;}
                    498:                                        *lsp++ = yystate = yyt->advance+yysvec;
                    499:                                        goto contin;
                    500:                                        }
                    501:                                }
                    502:                        if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
                    503: # ifdef LEXDEBUG
                    504:                                if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
                    505: # endif
                    506:                                goto tryagain;
                    507:                                }
                    508: # endif
                    509:                        else
                    510:                                {unput(*--yylastch);break;}
                    511:                contin:
                    512: # ifdef LEXDEBUG
                    513:                        if(debug){
                    514:                                fprintf(yyout,"state %d char ",yystate-yysvec-1);
                    515:                                allprint(yych);
                    516:                                putchar('\n');
                    517:                                }
                    518: # endif
                    519:                        ;
                    520:                        }
                    521: # ifdef LEXDEBUG
                    522:                if(debug){
                    523:                        fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
                    524:                        allprint(yych);
                    525:                        putchar('\n');
                    526:                        }
                    527: # endif
                    528:                while (lsp-- > yylstate){
                    529:                        *yylastch-- = 0;
                    530:                        if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
                    531:                                yyolsp = lsp;
                    532:                                if(yyextra[*yyfnd]){            /* must backup */
                    533:                                        while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
                    534:                                                lsp--;
                    535:                                                unput(*yylastch--);
                    536:                                                }
                    537:                                        }
                    538:                                yyprevious = YYU(*yylastch);
                    539:                                yylsp = lsp;
                    540:                                yyleng = yylastch-yytext+1;
                    541:                                yytext[yyleng] = 0;
                    542: # ifdef LEXDEBUG
                    543:                                if(debug){
                    544:                                        fprintf(yyout,"\nmatch ");
                    545:                                        sprint(yytext);
                    546:                                        fprintf(yyout," action %d\n",*yyfnd);
                    547:                                        }
                    548: # endif
                    549:                                return(*yyfnd++);
                    550:                                }
                    551:                        unput(*yylastch);
                    552:                        }
                    553:                if (yytext[0] == 0  /* && feof(yyin) */)
                    554:                        {
                    555:                        yysptr=yysbuf;
                    556:                        return(0);
                    557:                        }
                    558:                yyprevious = yytext[0] = input();
                    559:                if (yyprevious>0)
                    560:                        output(yyprevious);
                    561:                yylastch=yytext;
                    562: # ifdef LEXDEBUG
                    563:                if(debug)putchar('\n');
                    564: # endif
                    565:                }
                    566:        }
                    567: yyback(p, m)
                    568:        int *p;
                    569: {
                    570: if (p==0) return(0);
                    571: while (*p)
                    572:        {
                    573:        if (*p++ == m)
                    574:                return(1);
                    575:        }
                    576: return(0);
                    577: }
                    578:        /* the following are only used in the lex library */
                    579: yyinput(){
                    580:        return(input());
                    581:        }
                    582: yyoutput(c)
                    583:   int c; {
                    584:        output(c);
                    585:        }
                    586: yyunput(c)
                    587:    int c; {
                    588:        unput(c);
                    589:        }

unix.superglobalmegacorp.com

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