register int yym, yyn, yystate;
yyparse (YYPARSE_PARAM_ARG)    YYPARSE_PARAM_DECL{    register int yym, yyn, yystate;#if YYDEBUG    register const char *yys;    if ((yys = getenv("YYDEBUG")))    {        yyn = *yys;        if (yyn >= '0' && yyn <= '9')            yydebug = yyn - '0';    }#endif    yynerrs = 0;    yyerrflag = 0;    yychar = (-1);    if (yyss == NULL && yygrowstack()) goto yyoverflow;    yyssp = yyss;    yyvsp = yyvs;    *yyssp = yystate = 0;yyloop:    if ((yyn = yydefred[yystate])) goto yyreduce;    if (yychar < 0)    {        if ((yychar = yylex()) < 0) yychar = 0;#if YYDEBUG        if (yydebug)        {            yys = 0;            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];            if (!yys) yys = "illegal-symbol";            printf("%sdebug: state %d, reading %d (%s)\n",                    YYPREFIX, yystate, yychar, yys);        }#endif    }    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)    {#if YYDEBUG        if (yydebug)            printf("%sdebug: state %d, shifting to state %d\n",                    YYPREFIX, yystate, yytable[yyn]);#endif        if (yyssp >= yysslim && yygrowstack())        {            goto yyoverflow;        }        *++yyssp = yystate = yytable[yyn];        *++yyvsp = yylval;        yychar = (-1);        if (yyerrflag > 0)  --yyerrflag;        goto yyloop;    }    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)    {        yyn = yytable[yyn];        goto yyreduce;    }    if (yyerrflag) goto yyinrecovery;#if defined(lint) || defined(__GNUC__)    goto yynewerror;#endifyynewerror:    yyerror("syntax error");#if defined(lint) || defined(__GNUC__)    goto yyerrlab;#endifyyerrlab:    ++yynerrs;yyinrecovery:    if (yyerrflag < 3)    {        yyerrflag = 3;        for (;;)        {            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)            {#if YYDEBUG                if (yydebug)                    printf("%sdebug: state %d, error recovery shifting\ to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);#endif                if (yyssp >= yysslim && yygrowstack())                {                    goto yyoverflow;                }                *++yyssp = yystate = yytable[yyn];                *++yyvsp = yylval;                goto yyloop;            }            else            {#if YYDEBUG                if (yydebug)                    printf("%sdebug: error recovery discarding state %d\n",                            YYPREFIX, *yyssp);#endif                if (yyssp <= yyss) goto yyabort;                --yyssp;                --yyvsp;            }        }    }    else    {        if (yychar == 0) goto yyabort;#if YYDEBUG        if (yydebug)        {            yys = 0;            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];            if (!yys) yys = "illegal-symbol";            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",                    YYPREFIX, yystate, yychar, yys);        }#endif        yychar = (-1);        goto yyloop;    }yyreduce:#if YYDEBUG    if (yydebug)        printf("%sdebug: state %d, reducing by rule %d (%s)\n",                YYPREFIX, yystate, yyn, yyrule[yyn]);#endif    yym = yylen[yyn];    yyval = yyvsp[1-yym];    switch (yyn)    {case 2:#line 142 "jamgram.y"{ parse_save( yyvsp[0].parse ); }break;case 3:#line 153 "jamgram.y"{ yyval.parse = yyvsp[0].parse; }break;case 4:#line 155 "jamgram.y"{ yyval.parse = yyvsp[0].parse; }break;case 5:#line 159 "jamgram.y"{ yyval.parse = yyvsp[0].parse; }break;case 6:#line 161 "jamgram.y"{ yyval.parse = prules( yyvsp[-1].parse, yyvsp[0].parse ); }break;case 7:#line 163 "jamgram.y"{ yyval.parse = plocal( yyvsp[-3].parse, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 8:#line 167 "jamgram.y"{ yyval.parse = pnull(); }break;case 9:#line 171 "jamgram.y"{ yyval.parse = yyvsp[0].parse; yyval.number = ASSIGN_SET; }break;case 10:#line 173 "jamgram.y"{ yyval.parse = yyvsp[0].parse; yyval.number = ASSIGN_APPEND; }break;case 11:#line 177 "jamgram.y"{ yyval.parse = yyvsp[-1].parse; }break;case 12:#line 179 "jamgram.y"{ yyval.parse = P0; }break;case 13:#line 183 "jamgram.y"{ yyval.number = 1; }break;case 14:#line 185 "jamgram.y"{ yyval.number = 0; }break;case 15:#line 189 "jamgram.y"{ yyval.parse = yyvsp[-1].parse; }break;case 16:#line 191 "jamgram.y"{ yyval.parse = pincl( yyvsp[-1].parse ); }break;case 17:#line 193 "jamgram.y"{ yyval.parse = prule( yyvsp[-2].string, yyvsp[-1].parse ); }break;case 18:#line 195 "jamgram.y"{ yyval.parse = pset( yyvsp[-3].parse, yyvsp[-1].parse, yyvsp[-2].number ); }break;case 19:#line 197 "jamgram.y"{ yyval.parse = pset1( yyvsp[-5].parse, yyvsp[-3].parse, yyvsp[-1].parse, yyvsp[-2].number ); }break;case 20:#line 199 "jamgram.y"{ yyval.parse = yyvsp[-1].parse; }break;case 21:#line 201 "jamgram.y"{ yyval.parse = pfor( yyvsp[-5].string, yyvsp[-3].parse, yyvsp[-1].parse, yyvsp[-6].number ); }break;case 22:#line 203 "jamgram.y"{ yyval.parse = pswitch( yyvsp[-3].parse, yyvsp[-1].parse ); }break;case 23:#line 205 "jamgram.y"{ yyval.parse = pif( yyvsp[-3].parse, yyvsp[-1].parse, pnull() ); }break;case 24:#line 207 "jamgram.y"{ yyval.parse = pmodule( yyvsp[-3].parse, yyvsp[-1].parse ); }break;case 25:#line 209 "jamgram.y"{ yyval.parse = pwhile( yyvsp[-3].parse, yyvsp[-1].parse ); }break;case 26:#line 211 "jamgram.y"{ yyval.parse = pif( yyvsp[-5].parse, yyvsp[-3].parse, yyvsp[0].parse ); }break;case 27:#line 213 "jamgram.y"{ yyval.parse = psetc( yyvsp[-2].string, yyvsp[0].parse, yyvsp[-1].parse, yyvsp[-4].number ); }break;case 28:#line 215 "jamgram.y"{ yyval.parse = pon( yyvsp[-1].parse, yyvsp[0].parse ); }break;case 29:#line 217 "jamgram.y"{ yymode( SCAN_STRING ); }break;case 30:#line 219 "jamgram.y"{ yymode( SCAN_NORMAL ); }break;case 31:#line 221 "jamgram.y"{ yyval.parse = psete( yyvsp[-6].string,yyvsp[-5].parse,yyvsp[-2].string,yyvsp[-7].number ); }break;case 32:#line 229 "jamgram.y"{ yyval.number = ASSIGN_SET; }break;case 33:#line 231 "jamgram.y"{ yyval.number = ASSIGN_APPEND; }break;case 34:#line 233 "jamgram.y"{ yyval.number = ASSIGN_DEFAULT; }break;case 35:#line 235 "jamgram.y"{ yyval.number = ASSIGN_DEFAULT; }break;case 36:#line 242 "jamgram.y"{ yyval.parse = peval( EXPR_EXISTS, yyvsp[0].parse, pnull() ); }break;case 37:#line 244 "jamgram.y"{ yyval.parse = peval( EXPR_EQUALS, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 38:#line 246 "jamgram.y"{ yyval.parse = peval( EXPR_NOTEQ, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 39:#line 248 "jamgram.y"{ yyval.parse = peval( EXPR_LESS, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 40:#line 250 "jamgram.y"{ yyval.parse = peval( EXPR_LESSEQ, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 41:#line 252 "jamgram.y"{ yyval.parse = peval( EXPR_MORE, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 42:#line 254 "jamgram.y"{ yyval.parse = peval( EXPR_MOREEQ, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 43:#line 256 "jamgram.y"{ yyval.parse = peval( EXPR_AND, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 44:#line 258 "jamgram.y"{ yyval.parse = peval( EXPR_AND, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 45:#line 260 "jamgram.y"{ yyval.parse = peval( EXPR_OR, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 46:#line 262 "jamgram.y"{ yyval.parse = peval( EXPR_OR, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 47:#line 264 "jamgram.y"{ yyval.parse = peval( EXPR_IN, yyvsp[-2].parse, yyvsp[0].parse ); }break;case 48:#line 266 "jamgram.y"{ yyval.parse = peval( EXPR_NOT, yyvsp[0].parse, pnull() ); }break;case 49:#line 268 "jamgram.y"{ yyval.parse = yyvsp[-1].parse; }break;case 50:#line 279 "jamgram.y"{ yyval.parse = P0; }break;case 51:#line 281 "jamgram.y"{ yyval.parse = pnode( yyvsp[-1].parse, yyvsp[0].parse ); }break;case 52:#line 285 "jamgram.y"{ yyval.parse = psnode( yyvsp[-2].string, yyvsp[0].parse ); }break;case 53:#line 294 "jamgram.y"{ yyval.parse = pnode( P0, yyvsp[0].parse ); }break;case 54:#line 296 "jamgram.y"{ yyval.parse = pnode( yyvsp[0].parse, yyvsp[-2].parse ); }break;case 55:#line 306 "jamgram.y"{ yyval.parse = yyvsp[0].parse; yymode( SCAN_NORMAL ); }break;case 56:#line 310 "jamgram.y"{ yyval.parse = pnull(); yymode( SCAN_PUNCT ); }break;case 57:#line 312 "jamgram.y"{ yyval.parse = pappend( yyvsp[-1].parse, yyvsp[0].parse ); }break;case 58:#line 316 "jamgram.y"{ yyval.parse = plist( yyvsp[0].string ); }break;case 59:#line 317 "jamgram.y"{ yymode( SCAN_NORMAL ); }break;case 60:#line 318 "jamgram.y"{ yyval.parse = yyvsp[-1].parse; }break;case 61:#line 327 "jamgram.y"{ yyval.parse = prule( yyvsp[-1].string, yyvsp[0].parse ); }break;case 62:#line 329 "jamgram.y"{ yyval.parse = pon( yyvsp[-2].parse, prule( yyvsp[-1].string, yyvsp[0].parse ) ); }break;case 63:#line 331 "jamgram.y"{ yyval.parse = pon( yyvsp[-2].parse, yyvsp[0].parse ); }break;case 64:#line 341 "jamgram.y"{ yyval.number = 0; }break;case 65:#line 343 "jamgram.y"{ yyval.number = yyvsp[-1].number | yyvsp[0].number; }break;case 66:#line 347 "jamgram.y"{ yyval.number = EXEC_UPDATED; }break;case 67:#line 349 "jamgram.y"{ yyval.number = EXEC_TOGETHER; }break;case 68:#line 351 "jamgram.y"{ yyval.number = EXEC_IGNORE; }break;case 69:#line 353 "jamgram.y"{ yyval.number = EXEC_QUIETLY; }break;case 70:#line 355 "jamgram.y"{ yyval.number = EXEC_PIECEMEAL; }break;case 71:#line 357 "jamgram.y"{ yyval.number = EXEC_EXISTING; }break;case 72:#line 366 "jamgram.y"{ yyval.parse = pnull(); }break;case 73:#line 368 "jamgram.y"{ yyval.parse = yyvsp[0].parse; }break;#line 878 "y.tab.c"    }    yyssp -= yym;    yystate = *yyssp;    yyvsp -= yym;    yym = yylhs[yyn];    if (yystate == 0 && yym == 0)    {#if YYDEBUG        if (yydebug)            printf("%sdebug: after reduction, shifting from state 0 to\ state %d\n", YYPREFIX, YYFINAL);#endif        yystate = YYFINAL;        *++yyssp = YYFINAL;        *++yyvsp = yyval;        if (yychar < 0)        {            if ((yychar = yylex()) < 0) yychar = 0;#if YYDEBUG            if (yydebug)            {                yys = 0;                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];                if (!yys) yys = "illegal-symbol";                printf("%sdebug: state %d, reading %d (%s)\n",                        YYPREFIX, YYFINAL, yychar, yys);            }#endif        }        if (yychar == 0) goto yyaccept;        goto yyloop;    }    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)        yystate = yytable[yyn];    else        yystate = yydgoto[yym];#if YYDEBUG    if (yydebug)        printf("%sdebug: after reduction, shifting from state %d \to state %d\n", YYPREFIX, *yyssp, yystate);#endif    if (yyssp >= yysslim && yygrowstack())    {        goto yyoverflow;    }    *++yyssp = yystate;    *++yyvsp = yyval;    goto yyloop;yyoverflow:    yyerror("yacc stack overflow");yyabort:    return (1);yyaccept:    return (0);}