yynewerror: yyerror("syntax error"); #if defined(lint) || defined(__GNUC__) goto yyerrlab; #endif yyerrlab: ++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);
yytmp = yy_n;			 yypvt = yy_pv;			  {  register int yy_len = yyr2[ yy_n ];  if ( !( yy_len & 01 ) ) { yy_len >>= 1; yyval = ( yy_pv -= yy_len )[1];	 yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] + *( yy_ps -= yy_len ) + 1; if ( yy_state >= YYLAST || yychk[ yy_state = yyact[ yy_state ] ] != -yy_n ) { yy_state = yyact[ yypgo[ yy_n ] ]; } goto yy_stack; } yy_len >>= 1; yyval = ( yy_pv -= yy_len )[1];	 yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] + *( yy_ps -= yy_len ) + 1; if ( yy_state >= YYLAST || yychk[ yy_state = yyact[ yy_state ] ] != -yy_n ) { yy_state = yyact[ yypgo[ yy_n ] ]; } }  yystate = yy_state; yyps = yy_ps; yypv = yy_pv; }   switch(yytmp){  case 2:	 # line 142 "jamgram.y" { parse_save( yypvt[-0].parse ); }  break; case 3:	 # line 153 "jamgram.y" { yyval.parse = yypvt[-0].parse; }  break; case 4:	 # line 155 "jamgram.y" { yyval.parse = yypvt[-0].parse; }  break; case 5:	 # line 159 "jamgram.y" { yyval.parse = yypvt[-0].parse; }  break; case 6:	 # line 161 "jamgram.y" { yyval.parse = prules( yypvt[-1].parse, yypvt[-0].parse ); }  break; case 7:	 # line 163 "jamgram.y" { yyval.parse = plocal( yypvt[-3].parse, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 8:	 # line 167 "jamgram.y" { yyval.parse = pnull(); }  break; case 9:	 # line 171 "jamgram.y" { yyval.parse = yypvt[-0].parse; yyval.number = ASSIGN_SET; }  break; case 10:	 # line 173 "jamgram.y" { yyval.parse = yypvt[-0].parse; yyval.number = ASSIGN_APPEND; }  break; case 11:	 # line 177 "jamgram.y" { yyval.parse = yypvt[-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 = yypvt[-1].parse; }  break; case 16:	 # line 191 "jamgram.y" { yyval.parse = pincl( yypvt[-1].parse ); }  break; case 17:	 # line 193 "jamgram.y" { yyval.parse = prule( yypvt[-2].string, yypvt[-1].parse ); }  break; case 18:	 # line 195 "jamgram.y" { yyval.parse = pset( yypvt[-3].parse, yypvt[-1].parse, yypvt[-2].number ); }  break; case 19:	 # line 197 "jamgram.y" { yyval.parse = pset1( yypvt[-5].parse, yypvt[-3].parse, yypvt[-1].parse, yypvt[-2].number ); }  break; case 20:	 # line 199 "jamgram.y" { yyval.parse = yypvt[-1].parse; }  break; case 21:	 # line 201 "jamgram.y" { yyval.parse = pfor( yypvt[-5].string, yypvt[-3].parse, yypvt[-1].parse, yypvt[-6].number ); }  break; case 22:	 # line 203 "jamgram.y" { yyval.parse = pswitch( yypvt[-3].parse, yypvt[-1].parse ); }  break; case 23:	 # line 205 "jamgram.y" { yyval.parse = pif( yypvt[-3].parse, yypvt[-1].parse, pnull() ); }  break; case 24:	 # line 207 "jamgram.y" { yyval.parse = pmodule( yypvt[-3].parse, yypvt[-1].parse ); }  break; case 25:	 # line 209 "jamgram.y" { yyval.parse = pwhile( yypvt[-3].parse, yypvt[-1].parse ); }  break; case 26:	 # line 211 "jamgram.y" { yyval.parse = pif( yypvt[-5].parse, yypvt[-3].parse, yypvt[-0].parse ); }  break; case 27:	 # line 213 "jamgram.y" { yyval.parse = psetc( yypvt[-2].string, yypvt[-0].parse, yypvt[-1].parse, yypvt[-4].number ); }  break; case 28:	 # line 215 "jamgram.y" { yyval.parse = pon( yypvt[-1].parse, yypvt[-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( yypvt[-6].string,yypvt[-5].parse,yypvt[-2].string,yypvt[-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, yypvt[-0].parse, pnull() ); }  break; case 37:	 # line 244 "jamgram.y" { yyval.parse = peval( EXPR_EQUALS, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 38:	 # line 246 "jamgram.y" { yyval.parse = peval( EXPR_NOTEQ, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 39:	 # line 248 "jamgram.y" { yyval.parse = peval( EXPR_LESS, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 40:	 # line 250 "jamgram.y" { yyval.parse = peval( EXPR_LESSEQ, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 41:	 # line 252 "jamgram.y" { yyval.parse = peval( EXPR_MORE, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 42:	 # line 254 "jamgram.y" { yyval.parse = peval( EXPR_MOREEQ, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 43:	 # line 256 "jamgram.y" { yyval.parse = peval( EXPR_AND, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 44:	 # line 258 "jamgram.y" { yyval.parse = peval( EXPR_AND, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 45:	 # line 260 "jamgram.y" { yyval.parse = peval( EXPR_OR, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 46:	 # line 262 "jamgram.y" { yyval.parse = peval( EXPR_OR, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 47:	 # line 264 "jamgram.y" { yyval.parse = peval( EXPR_IN, yypvt[-2].parse, yypvt[-0].parse ); }  break; case 48:	 # line 266 "jamgram.y" { yyval.parse = peval( EXPR_NOT, yypvt[-0].parse, pnull() ); }  break; case 49:	 # line 268 "jamgram.y" { yyval.parse = yypvt[-1].parse; }  break; case 50:	 # line 279 "jamgram.y" { yyval.parse = P0; }  break; case 51:	 # line 281 "jamgram.y" { yyval.parse = pnode( yypvt[-1].parse, yypvt[-0].parse ); }  break; case 52:	 # line 285 "jamgram.y" { yyval.parse = psnode( yypvt[-2].string, yypvt[-0].parse ); }  break; case 53:	 # line 294 "jamgram.y" { yyval.parse = pnode( P0, yypvt[-0].parse ); }  break; case 54:	 # line 296 "jamgram.y" { yyval.parse = pnode( yypvt[-0].parse, yypvt[-2].parse ); }  break; case 55:	 # line 306 "jamgram.y" { yyval.parse = yypvt[-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( yypvt[-1].parse, yypvt[-0].parse ); }  break; case 58:	 # line 316 "jamgram.y" { yyval.parse = plist( yypvt[-0].string ); }  break; case 59:	 # line 317 "jamgram.y" { yymode( SCAN_NORMAL ); }  break; case 60:	 # line 318 "jamgram.y" { yyval.parse = yypvt[-1].parse; }  break; case 61:	 # line 327 "jamgram.y" { yyval.parse = prule( yypvt[-1].string, yypvt[-0].parse ); }  break; case 62:	 # line 329 "jamgram.y" { yyval.parse = pon( yypvt[-2].parse, prule( yypvt[-1].string, yypvt[-0].parse ) ); }  break; case 63:	 # line 331 "jamgram.y" { yyval.parse = pon( yypvt[-2].parse, yypvt[-0].parse ); }  break; case 64:	 # line 341 "jamgram.y" { yyval.number = 0; }  break; case 65:	 # line 343 "jamgram.y" { yyval.number = yypvt[-1].number | yypvt[-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 = yypvt[-0].parse; }  break;
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);}