Annotation of coherent/b/lib/yyparse.c, revision 1.1.1.1

1.1       root        1: #define        YYACTSH         13
                      2: #define        YYAMASK         017777
                      3: #define        YYSHIFTACT      0
                      4: #define        YYREDACT        1
                      5: #define        YYACCEPTACT     2
                      6: #define        YYERRACT        3
                      7: #define        YYGOTO          4
                      8: #define        YYPACTION       5
                      9: #define        YYEOFVAL        (-1)
                     10: #define        YYERRVAL        (-2)
                     11: #define        YYOTHERS        (-1000)
                     12: 
                     13: $D
                     14: 
                     15: #define YYNOCHAR (-1000)
                     16: #define        yyerrok yyerrflag=0
                     17: #define        yyclearin       yylval=YYNOCHAR
                     18: int yystack[YYMAXDEPTH];
                     19: YYSTYPE yyvstack[YYMAXDEPTH], *yyv;
                     20: int yychar;
                     21: 
                     22: #ifdef YYDEBUG
                     23: int yydebug = 1;       /* No sir, not in the BSS */
                     24: #include <stdio.h>
                     25: #endif
                     26: 
                     27: short yyerrflag;
                     28: int *yys;
                     29: 
                     30: yyparse()
                     31: {
                     32:        register YYSTYPE *yypvt;
                     33:        int act;
                     34:        register unsigned *ip, yystate;
                     35:        int pno;
                     36:        yystate = 0;
                     37:        yychar = YYNOCHAR;
                     38:        yyv = &yyvstack[-1];
                     39:        yys = &yystack[-1];
                     40: 
                     41: stack:
                     42:        if( ++yys >= &yystack[YYMAXDEPTH] ) {
                     43:                write(2, "Stack overflow\n", 15);
                     44:                exit(1);
                     45:        }
                     46:        *yys = yystate;
                     47:        *++yyv = yyval;
                     48: #ifdef YYDEBUG
                     49:        if( yydebug )
                     50:                fprintf(stdout, "Stack state %d, char %d\n", yystate, yychar);
                     51: #endif
                     52: 
                     53: read:
                     54:        ip = &yyact[yypa[yystate]];
                     55:        if( ip[1] != YYNOCHAR ) {
                     56:                if( yychar == YYNOCHAR ) {
                     57:                        yychar = yylex();
                     58: #ifdef YYDEBUG
                     59:                        if( yydebug )
                     60:                                fprintf(stdout, "lex read char %d, val %d\n", yychar, yylval);
                     61: #endif
                     62:                }
                     63:                while (ip[1]!=YYNOCHAR) {
                     64:                        if (ip[1]==yychar)
                     65:                                break;
                     66:                        ip += 2;
                     67:                }
                     68:        }
                     69:        act = ip[0];
                     70:        switch( act>>YYACTSH ) {
                     71:        case YYSHIFTACT:
                     72:                if( ip[1]==YYNOCHAR )
                     73:                        goto YYerract;
                     74:                if( yychar != -1 )
                     75:                        yychar = YYNOCHAR; /* dont throw away EOF */
                     76:                yystate = act&YYAMASK;
                     77:                yyval = yylval;
                     78: #ifdef YYDEBUG
                     79:                if( yydebug )
                     80:                        fprintf(stdout, "shift %d\n", yystate);
                     81: #endif
                     82:                if( yyerrflag )
                     83:                        --yyerrflag;
                     84:                goto stack;
                     85: 
                     86:        case YYACCEPTACT:
                     87: #ifdef YYDEBUG
                     88:                if( yydebug )
                     89:                        fprintf(stdout, "accept\n");
                     90: #endif
                     91:                return(0);
                     92: 
                     93:        case YYERRACT:
                     94:        YYerract:
                     95:                switch (yyerrflag) {
                     96:                case 0:
                     97:                        yyerror("Syntax error");
                     98: 
                     99:                case 1:
                    100:                case 2:
                    101: 
                    102:                        yyerrflag = 3;
                    103:                        while( yys >= & yystack[0] ) {
                    104:                                ip = &yyact[yypa[*yys]];
                    105:                                while( ip[1]!=YYNOCHAR )
                    106:                                        ip += 2;
                    107:                                if( (*ip&~YYAMASK) == (YYSHIFTACT<<YYACTSH) ) {
                    108:                                        yystate = *ip&YYAMASK;
                    109:                                        goto stack;
                    110:                                }
                    111: #ifdef YYDEBUG
                    112:                                if( yydebug )
                    113:                                        fprintf(stderr, "error recovery leaves state %d, uncovers %d\n", *yys, yys[-1]);
                    114: #endif
                    115:                                yys--;
                    116:                                yyv--;
                    117:                        }
                    118: #ifdef YYDEBUG
                    119:                        if( yydebug )
                    120:                                fprintf(stderr, "no shift on error; abort\n");
                    121: #endif
                    122:                        return(1);
                    123: 
                    124:                case 3:
                    125: #ifdef YYDEBUG
                    126:                        if( yydebug )
                    127:                                fprintf(stderr, "Error recovery clobbers char %o\n", yychar);
                    128: #endif
                    129:                        if( yychar==YYEOFVAL )
                    130:                                return(1);
                    131:                        yychar = YYNOCHAR;
                    132:                        goto read;
                    133:                }
                    134: 
                    135:        case YYREDACT:
                    136:                pno = act&YYAMASK;
                    137: #ifdef YYDEBUG
                    138:                if( yydebug )
                    139:                        fprintf(stdout, "reduce %d\n", pno);
                    140: #endif
                    141:                yypvt = yyv;
                    142:                yyv -= yypn[pno];
                    143:                yys -= yypn[pno];
                    144:                yyval = yyv[1];
                    145:                switch(pno) {
                    146: $A
                    147:                }
                    148:                ip = &yygo[ yypgo[yypdnt[pno]] ];
                    149:                while( *ip!=*yys && *ip!=YYNOCHAR )
                    150:                        ip += 2;
                    151:                yystate = ip[1];
                    152:                goto stack;
                    153:        }
                    154: }
                    155: 
                    156: 
                    157: 
                    158: 

unix.superglobalmegacorp.com

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