Annotation of GNUtools/bison/bison.hairy, revision 1.1

1.1     ! root        1: 
        !             2: extern int timeclock;
        !             3: 
        !             4: 
        !             5: int yyerror;           /*  Yyerror and yycost are set by guards.       */
        !             6: int yycost;            /*  If yyerror is set to a nonzero value by a   */
        !             7:                        /*  guard, the reduction with which the guard   */
        !             8:                        /*  is associated is not performed, and the     */
        !             9:                        /*  error recovery mechanism is invoked.        */
        !            10:                        /*  Yycost indicates the cost of performing     */
        !            11:                        /*  the reduction given the attributes of the   */
        !            12:                        /*  symbols.                                    */
        !            13: 
        !            14: 
        !            15: /*  YYMAXDEPTH indicates the size of the parser's state and value      */
        !            16: /*  stacks.                                                            */
        !            17: 
        !            18: #ifndef        YYMAXDEPTH
        !            19: #define        YYMAXDEPTH      500
        !            20: #endif
        !            21: 
        !            22: /*  YYMAXRULES must be at least as large as the number of rules that   */
        !            23: /*  could be placed in the rule queue.  That number could be determined        */
        !            24: /*  from the grammar and the size of the stack, but, as yet, it is not.        */
        !            25: 
        !            26: #ifndef        YYMAXRULES
        !            27: #define        YYMAXRULES      100
        !            28: #endif
        !            29: 
        !            30: #ifndef        YYMAXBACKUP
        !            31: #define YYMAXBACKUP    100
        !            32: #endif
        !            33: 
        !            34: 
        !            35: short  yyss[YYMAXDEPTH];       /*  the state stack                     */
        !            36: YYSTYPE        yyvs[YYMAXDEPTH];       /*  the semantic value stack            */
        !            37: YYLTYPE yyls[YYMAXDEPTH];      /*  the location stack                  */
        !            38: short  yyrq[YYMAXRULES];       /*  the rule queue                      */
        !            39: int    yychar;                 /*  the lookahead symbol                */
        !            40: 
        !            41: YYSTYPE        yylval;                 /*  the semantic value of the           */
        !            42:                                /*  lookahead symbol                    */
        !            43: 
        !            44: YYSTYPE yytval;                        /*  the semantic value for the state    */
        !            45:                                /*  at the top of the state stack.      */
        !            46: 
        !            47: YYSTYPE yyval;                 /*  the variable used to return         */
        !            48:                                /*  semantic values from the action     */
        !            49:                                /*  routines                            */
        !            50: 
        !            51: YYLTYPE yylloc;                /*  location data for the lookahead     */
        !            52:                                /*  symbol                              */
        !            53: 
        !            54: YYLTYPE yytloc;                /*  location data for the state at the  */
        !            55:                                /*  top of the state stack              */
        !            56: 
        !            57: 
        !            58: int    yynunlexed;
        !            59: short  yyunchar[YYMAXBACKUP];
        !            60: YYSTYPE        yyunval[YYMAXBACKUP];
        !            61: YYLTYPE yyunloc[YYMAXBACKUP];
        !            62: 
        !            63: short *yygssp;                 /*  a pointer to the top of the state   */
        !            64:                                /*  stack; only set during error        */
        !            65:                                /*  recovery.                           */
        !            66: 
        !            67: YYSTYPE *yygvsp;               /*  a pointer to the top of the value   */
        !            68:                                /*  stack; only set during error        */
        !            69:                                /*  recovery.                           */
        !            70: 
        !            71: YYLTYPE *yyglsp;               /*  a pointer to the top of the         */
        !            72:                                /*  location stack; only set during     */
        !            73:                                /*  error recovery.                     */
        !            74: 
        !            75: 
        !            76: /*  Yyget is an interface between the parser and the lexical analyzer. */
        !            77: /*  It is costly to provide such an interface, but it avoids requiring */
        !            78: /*  the lexical analyzer to be able to back up the scan.               */
        !            79: 
        !            80: yyget()
        !            81: {
        !            82:   if (yynunlexed > 0)
        !            83:     {
        !            84:       yynunlexed--;
        !            85:       yychar = yyunchar[yynunlexed];
        !            86:       yylval = yyunval[yynunlexed];
        !            87:       yylloc = yyunloc[yynunlexed];
        !            88:     }
        !            89:   else if (yychar <= 0)
        !            90:     yychar = 0;
        !            91:   else
        !            92:     {
        !            93:       yychar = yylex();
        !            94:       if (yychar < 0)
        !            95:        yychar = 0;
        !            96:       else yychar = YYTRANSLATE(yychar);
        !            97:     }
        !            98: }
        !            99: 
        !           100: 
        !           101: 
        !           102: yyunlex(chr, val, loc)
        !           103: int chr;
        !           104: YYSTYPE val;
        !           105: YYLTYPE loc;
        !           106: {
        !           107:   yyunchar[yynunlexed] = chr;
        !           108:   yyunval[yynunlexed] = val;
        !           109:   yyunloc[yynunlexed] = loc;
        !           110:   yynunlexed++;
        !           111: }
        !           112: 
        !           113: 
        !           114: 
        !           115: yyrestore(first, last)
        !           116: register short *first;
        !           117: register short *last;
        !           118: {
        !           119:   register short *ssp;
        !           120:   register short *rp;
        !           121:   register int symbol;
        !           122:   register int state;
        !           123:   register int tvalsaved;
        !           124: 
        !           125:   ssp = yygssp;
        !           126:   yyunlex(yychar, yylval, yylloc);
        !           127: 
        !           128:   tvalsaved = 0;
        !           129:   while (first != last)
        !           130:     {
        !           131:       symbol = yystos[*ssp];
        !           132:       if (symbol < YYNTBASE)
        !           133:        {
        !           134:          yyunlex(symbol, yytval, yytloc);
        !           135:          tvalsaved = 1;
        !           136:          ssp--;
        !           137:        }
        !           138: 
        !           139:       ssp--;
        !           140: 
        !           141:       if (first == yyrq)
        !           142:        first = yyrq + YYMAXRULES;
        !           143: 
        !           144:       first--;
        !           145: 
        !           146:       for (rp = yyrhs + yyprhs[*first]; symbol = *rp; rp++)
        !           147:        {
        !           148:          if (symbol < YYNTBASE)
        !           149:            state = yytable[yypact[*ssp] + symbol];
        !           150:          else
        !           151:            {
        !           152:              state = yypgoto[symbol - YYNTBASE] + *ssp;
        !           153: 
        !           154:              if (state >= 0 && state <= YYLAST && yycheck[state] == *ssp)
        !           155:                state = yytable[state];
        !           156:              else
        !           157:                state = yydefgoto[symbol - YYNTBASE];
        !           158:            }
        !           159: 
        !           160:          *++ssp = state;
        !           161:        }
        !           162:     }
        !           163: 
        !           164:   if ( ! tvalsaved && ssp > yyss)
        !           165:     {
        !           166:       yyunlex(yystos[*ssp], yytval, yytloc);
        !           167:       ssp--;
        !           168:     }
        !           169: 
        !           170:   yygssp = ssp;
        !           171: }
        !           172: 
        !           173: 
        !           174: 
        !           175: int
        !           176: yyparse()
        !           177: {
        !           178:   register int yystate;
        !           179:   register int yyn;
        !           180:   register short *yyssp;
        !           181:   register short *yyrq0;
        !           182:   register short *yyptr;
        !           183:   register YYSTYPE *yyvsp;
        !           184: 
        !           185:   int yylen;
        !           186:   YYLTYPE *yylsp;
        !           187:   short *yyrq1;
        !           188:   short *yyrq2;
        !           189: 
        !           190:   yystate = 0;
        !           191:   yyssp = yyss - 1;
        !           192:   yyvsp = yyvs - 1;
        !           193:   yylsp = yyls - 1;
        !           194:   yyrq0 = yyrq;
        !           195:   yyrq1 = yyrq0;
        !           196:   yyrq2 = yyrq0;
        !           197: 
        !           198:   yychar = yylex();
        !           199:   if (yychar < 0)
        !           200:     yychar = 0;
        !           201:   else yychar = YYTRANSLATE(yychar);
        !           202: 
        !           203: yynewstate:
        !           204: 
        !           205:   if (yyssp >= yyss + YYMAXDEPTH - 1)
        !           206:     {
        !           207:       yyabort("Parser Stack Overflow");
        !           208:       YYABORT;
        !           209:     }
        !           210: 
        !           211:   *++yyssp = yystate;
        !           212: 
        !           213: yyresume:
        !           214: 
        !           215:   yyn = yypact[yystate];
        !           216:   if (yyn == YYFLAG)
        !           217:     goto yydefault;
        !           218: 
        !           219:   yyn += yychar;
        !           220:   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar)
        !           221:     goto yydefault;
        !           222: 
        !           223:   yyn = yytable[yyn];
        !           224:   if (yyn < 0)
        !           225:     {
        !           226:       yyn = -yyn;
        !           227:       goto yyreduce;
        !           228:     }
        !           229:   else if (yyn == 0)
        !           230:     goto yyerrlab;
        !           231: 
        !           232:   yystate = yyn;
        !           233: 
        !           234:   yyptr = yyrq2;
        !           235:   while (yyptr != yyrq1)
        !           236:     {
        !           237:       yyn = *yyptr++;
        !           238:       yylen = yyr2[yyn];
        !           239:       yyvsp -= yylen;
        !           240:       yylsp -= yylen;
        !           241: 
        !           242:       yyguard(yyn, yyvsp, yylsp);
        !           243:       if (yyerror)
        !           244:        goto yysemerr;
        !           245: 
        !           246:       yyaction(yyn, yyvsp, yylsp);
        !           247:       *++yyvsp = yyval;
        !           248: 
        !           249:       yylsp++;
        !           250:       if (yylen == 0)
        !           251:        {
        !           252:          yylsp->timestamp = timeclock;
        !           253:          yylsp->first_line = yytloc.first_line;
        !           254:          yylsp->first_column = yytloc.first_column;
        !           255:          yylsp->last_line = (yylsp-1)->last_line;
        !           256:          yylsp->last_column = (yylsp-1)->last_column;
        !           257:          yylsp->text = 0;
        !           258:        }
        !           259:       else
        !           260:        {
        !           261:          yylsp->last_line = (yylsp+yylen-1)->last_line;
        !           262:          yylsp->last_column = (yylsp+yylen-1)->last_column;
        !           263:        }
        !           264:          
        !           265:       if (yyptr == yyrq + YYMAXRULES)
        !           266:         yyptr = yyrq;
        !           267:     }
        !           268: 
        !           269:   if (yystate == YYFINAL)
        !           270:     YYACCEPT;
        !           271: 
        !           272:   yyrq2 = yyptr;
        !           273:   yyrq1 = yyrq0;
        !           274: 
        !           275:   *++yyvsp = yytval;
        !           276:   *++yylsp = yytloc;
        !           277:   yytval = yylval;
        !           278:   yytloc = yylloc;
        !           279:   yyget();
        !           280: 
        !           281:   goto yynewstate;
        !           282: 
        !           283: yydefault:
        !           284: 
        !           285:   yyn = yydefact[yystate];
        !           286:   if (yyn == 0)
        !           287:     goto yyerrlab;
        !           288: 
        !           289: yyreduce:
        !           290: 
        !           291:   *yyrq0++ = yyn;
        !           292: 
        !           293:   if (yyrq0 == yyrq + YYMAXRULES)
        !           294:     yyrq0 = yyrq;
        !           295: 
        !           296:   if (yyrq0 == yyrq2)
        !           297:     {
        !           298:       yyabort("Parser Rule Queue Overflow");
        !           299:       YYABORT;
        !           300:     }
        !           301: 
        !           302:   yyssp -= yyr2[yyn];
        !           303:   yyn = yyr1[yyn];
        !           304: 
        !           305:   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
        !           306:   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
        !           307:     yystate = yytable[yystate];
        !           308:   else
        !           309:     yystate = yydefgoto[yyn - YYNTBASE];
        !           310: 
        !           311:   goto yynewstate;
        !           312: 
        !           313: yysemerr:
        !           314:   *--yyptr = yyn;
        !           315:   yyrq2 = yyptr;
        !           316:   yyvsp += yyr2[yyn];
        !           317: 
        !           318: yyerrlab:
        !           319: 
        !           320:   yygssp = yyssp;
        !           321:   yygvsp = yyvsp;
        !           322:   yyglsp = yylsp;
        !           323:   yyrestore(yyrq0, yyrq2);
        !           324:   yyrecover();
        !           325:   yystate = *yygssp;
        !           326:   yyssp = yygssp;
        !           327:   yyvsp = yygvsp;
        !           328:   yyrq0 = yyrq;
        !           329:   yyrq1 = yyrq0;
        !           330:   yyrq2 = yyrq0;
        !           331:   goto yyresume;
        !           332: }
        !           333: 
        !           334: $

unix.superglobalmegacorp.com

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