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

unix.superglobalmegacorp.com

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