summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--op.c11
-rw-r--r--perly.act670
-rw-r--r--perly.tab1247
-rw-r--r--perly.y14
-rw-r--r--t/comp/parser.t8
5 files changed, 978 insertions, 972 deletions
diff --git a/op.c b/op.c
index 8a116d763e..871a0f62cf 100644
--- a/op.c
+++ b/op.c
@@ -1769,12 +1769,6 @@ int
Perl_block_start(pTHX_ int full)
{
int retval = PL_savestack_ix;
- /* If there were syntax errors, don't try to start a block */
- /* XXX DAPM 13-Feb-04. This symbol no longer gloabl. Think of a better
- * way
- * if (PL_yynerrs) return retval;
- */
-
pad_block_start(full);
SAVEHINTS();
PL_hints &= ~HINT_BLOCK_SCOPE;
@@ -1796,11 +1790,6 @@ Perl_block_end(pTHX_ I32 floor, OP *seq)
{
int needblockscope = PL_hints & HINT_BLOCK_SCOPE;
OP* retval = scalarseq(seq);
- /* If there were syntax errors, don't try to close a block */
- /* XXX DAPM 13-Feb-04. This symbol no longer gloabl. Think of a better
- * way
- * if (PL_yynerrs) return retval;
- */
LEAVE_SCOPE(floor);
PL_compiling.op_private = (U8)(PL_hints & HINT_PRIVATE_MASK);
if (needblockscope)
diff --git a/perly.act b/perly.act
index eafa340b95..9c5405eb24 100644
--- a/perly.act
+++ b/perly.act
@@ -35,30 +35,36 @@ case 2:
break;
case 8:
-#line 121 "perly.y"
- { yyval.opval = Nullop; ;}
+#line 120 "perly.y"
+ { yyval.ival = PL_savestack_ix; ;}
break;
case 9:
-#line 123 "perly.y"
- { yyval.opval = yyvsp[-1].opval; ;}
+#line 124 "perly.y"
+ { yyval.opval = Nullop; ;}
break;
case 10:
-#line 125 "perly.y"
- { yyval.opval = append_list(OP_LINESEQ,
- (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
- PL_pad_reset_pending = TRUE;
- if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; ;}
+#line 126 "perly.y"
+ { yyval.opval = yyvsp[-1].opval; ;}
break;
case 11:
-#line 133 "perly.y"
+#line 128 "perly.y"
+ { LEAVE_SCOPE(yyvsp[-1].ival);
+ yyval.opval = append_list(OP_LINESEQ,
+ (LISTOP*)yyvsp[-2].opval, (LISTOP*)yyvsp[0].opval);
+ PL_pad_reset_pending = TRUE;
+ if (yyvsp[-2].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; ;}
+ break;
+
+ case 12:
+#line 137 "perly.y"
{ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); ;}
break;
- case 13:
-#line 136 "perly.y"
+ case 14:
+#line 140 "perly.y"
{ if (yyvsp[-1].pval != Nullch) {
yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
}
@@ -69,91 +75,91 @@ case 2:
PL_expect = XSTATE; ;}
break;
- case 14:
-#line 145 "perly.y"
+ case 15:
+#line 149 "perly.y"
{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
PL_expect = XSTATE; ;}
break;
- case 15:
-#line 151 "perly.y"
+ case 16:
+#line 155 "perly.y"
{ yyval.opval = Nullop; ;}
break;
- case 16:
-#line 153 "perly.y"
+ case 17:
+#line 157 "perly.y"
{ yyval.opval = yyvsp[0].opval; ;}
break;
- case 17:
-#line 155 "perly.y"
+ case 18:
+#line 159 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); ;}
break;
- case 18:
-#line 157 "perly.y"
+ case 19:
+#line 161 "perly.y"
{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); ;}
break;
- case 19:
-#line 159 "perly.y"
+ case 20:
+#line 163 "perly.y"
{ yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); ;}
break;
- case 20:
-#line 161 "perly.y"
+ case 21:
+#line 165 "perly.y"
{ yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);;}
break;
- case 21:
-#line 163 "perly.y"
+ case 22:
+#line 167 "perly.y"
{ yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival,
Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); ;}
break;
- case 22:
-#line 169 "perly.y"
+ case 23:
+#line 173 "perly.y"
{ yyval.opval = Nullop; ;}
break;
- case 23:
-#line 171 "perly.y"
+ case 24:
+#line 175 "perly.y"
{ (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); ;}
break;
- case 24:
-#line 173 "perly.y"
+ case 25:
+#line 177 "perly.y"
{ PL_copline = (line_t)yyvsp[-5].ival;
yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
PL_hints |= HINT_BLOCK_SCOPE; ;}
break;
- case 25:
-#line 180 "perly.y"
+ case 26:
+#line 184 "perly.y"
{ PL_copline = (line_t)yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); ;}
break;
- case 26:
-#line 184 "perly.y"
+ case 27:
+#line 188 "perly.y"
{ PL_copline = (line_t)yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); ;}
break;
- case 27:
-#line 191 "perly.y"
+ case 28:
+#line 195 "perly.y"
{ yyval.opval = Nullop; ;}
break;
- case 28:
-#line 193 "perly.y"
+ case 29:
+#line 197 "perly.y"
{ yyval.opval = scope(yyvsp[0].opval); ;}
break;
- case 29:
-#line 198 "perly.y"
+ case 30:
+#line 202 "perly.y"
{ PL_copline = (line_t)yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newSTATEOP(0, yyvsp[-7].pval,
@@ -161,8 +167,8 @@ case 2:
yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); ;}
break;
- case 30:
-#line 204 "perly.y"
+ case 31:
+#line 208 "perly.y"
{ PL_copline = (line_t)yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newSTATEOP(0, yyvsp[-7].pval,
@@ -170,27 +176,27 @@ case 2:
yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); ;}
break;
- case 31:
-#line 210 "perly.y"
+ case 32:
+#line 214 "perly.y"
{ yyval.opval = block_end(yyvsp[-6].ival,
newFOROP(0, yyvsp[-9].pval, (line_t)yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
break;
- case 32:
-#line 213 "perly.y"
+ case 33:
+#line 217 "perly.y"
{ yyval.opval = block_end(yyvsp[-4].ival,
newFOROP(0, yyvsp[-8].pval, (line_t)yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
break;
- case 33:
-#line 217 "perly.y"
+ case 34:
+#line 221 "perly.y"
{ yyval.opval = block_end(yyvsp[-4].ival,
newFOROP(0, yyvsp[-7].pval, (line_t)yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
break;
- case 34:
-#line 221 "perly.y"
+ case 35:
+#line 225 "perly.y"
{ OP *forop;
PL_copline = (line_t)yyvsp[-9].ival;
forop = newSTATEOP(0, yyvsp[-10].pval,
@@ -207,31 +213,26 @@ case 2:
yyval.opval = block_end(yyvsp[-7].ival, forop); ;}
break;
- case 35:
-#line 236 "perly.y"
+ case 36:
+#line 240 "perly.y"
{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
newWHILEOP(0, 1, (LOOP*)Nullop,
NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); ;}
break;
- case 36:
-#line 243 "perly.y"
+ case 37:
+#line 247 "perly.y"
{ yyval.opval = Nullop; ;}
break;
- case 38:
-#line 249 "perly.y"
+ case 39:
+#line 253 "perly.y"
{ (void)scan_num("1", &yylval); yyval.opval = yylval.opval; ;}
break;
- case 40:
-#line 255 "perly.y"
- { yyval.opval = invert(scalar(yyvsp[0].opval)); ;}
- break;
-
case 41:
-#line 260 "perly.y"
- { yyval.opval = yyvsp[0].opval; intro_my(); ;}
+#line 259 "perly.y"
+ { yyval.opval = invert(scalar(yyvsp[0].opval)); ;}
break;
case 42:
@@ -250,77 +251,82 @@ case 2:
break;
case 45:
-#line 277 "perly.y"
- { yyval.pval = Nullch; ;}
+#line 276 "perly.y"
+ { yyval.opval = yyvsp[0].opval; intro_my(); ;}
break;
- case 47:
-#line 283 "perly.y"
- { yyval.ival = 0; ;}
+ case 46:
+#line 281 "perly.y"
+ { yyval.pval = Nullch; ;}
break;
case 48:
-#line 285 "perly.y"
+#line 287 "perly.y"
{ yyval.ival = 0; ;}
break;
case 49:
-#line 287 "perly.y"
+#line 289 "perly.y"
{ yyval.ival = 0; ;}
break;
case 50:
-#line 289 "perly.y"
+#line 291 "perly.y"
{ yyval.ival = 0; ;}
break;
case 51:
-#line 291 "perly.y"
+#line 293 "perly.y"
{ yyval.ival = 0; ;}
break;
case 52:
#line 295 "perly.y"
- { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); ;}
+ { yyval.ival = 0; ;}
break;
case 53:
-#line 298 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+#line 299 "perly.y"
+ { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); ;}
break;
case 54:
-#line 299 "perly.y"
- { yyval.opval = Nullop; ;}
+#line 302 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 55:
-#line 304 "perly.y"
- { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
+#line 303 "perly.y"
+ { yyval.opval = Nullop; ;}
break;
case 56:
-#line 309 "perly.y"
- { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
+#line 308 "perly.y"
+ { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
break;
case 57:
#line 313 "perly.y"
- { yyval.ival = start_subparse(FALSE, 0); ;}
+ { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
break;
case 58:
#line 317 "perly.y"
- { yyval.ival = start_subparse(FALSE, CVf_ANON); ;}
+ { yyval.ival = start_subparse(FALSE, 0); ;}
break;
case 59:
#line 321 "perly.y"
- { yyval.ival = start_subparse(TRUE, 0); ;}
+ { yyval.ival = start_subparse(FALSE, CVf_ANON); ;}
break;
case 60:
#line 325 "perly.y"
+ { yyval.ival = start_subparse(TRUE, 0); ;}
+ break;
+
+ case 61:
+#line 329 "perly.y"
{ STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
if (strEQ(name, "BEGIN") || strEQ(name, "END")
|| strEQ(name, "INIT") || strEQ(name, "CHECK"))
@@ -328,377 +334,377 @@ case 2:
yyval.opval = yyvsp[0].opval; ;}
break;
- case 61:
-#line 334 "perly.y"
- { yyval.opval = Nullop; ;}
- break;
-
- case 63:
-#line 340 "perly.y"
+ case 62:
+#line 338 "perly.y"
{ yyval.opval = Nullop; ;}
break;
case 64:
-#line 342 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+#line 344 "perly.y"
+ { yyval.opval = Nullop; ;}
break;
case 65:
-#line 344 "perly.y"
- { yyval.opval = Nullop; ;}
+#line 346 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 66:
-#line 349 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+#line 348 "perly.y"
+ { yyval.opval = Nullop; ;}
break;
case 67:
-#line 351 "perly.y"
- { yyval.opval = Nullop; ;}
+#line 353 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 68:
#line 355 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+ { yyval.opval = Nullop; ;}
break;
case 69:
-#line 356 "perly.y"
- { yyval.opval = Nullop; PL_expect = XSTATE; ;}
+#line 359 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 70:
#line 360 "perly.y"
- { package(yyvsp[-1].opval); ;}
+ { yyval.opval = Nullop; PL_expect = XSTATE; ;}
break;
case 71:
#line 364 "perly.y"
- { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
+ { package(yyvsp[-1].opval); ;}
break;
case 72:
-#line 366 "perly.y"
- { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); ;}
+#line 368 "perly.y"
+ { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
break;
case 73:
-#line 371 "perly.y"
- { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+#line 370 "perly.y"
+ { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); ;}
break;
case 74:
-#line 373 "perly.y"
- { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+#line 375 "perly.y"
+ { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
break;
case 75:
-#line 375 "perly.y"
+#line 377 "perly.y"
+ { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 76:
+#line 379 "perly.y"
{ yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
break;
- case 77:
-#line 381 "perly.y"
+ case 78:
+#line 385 "perly.y"
{ yyval.opval = yyvsp[-1].opval; ;}
break;
- case 78:
-#line 383 "perly.y"
+ case 79:
+#line 387 "perly.y"
{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); ;}
break;
- case 80:
-#line 389 "perly.y"
+ case 81:
+#line 393 "perly.y"
{ yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); ;}
break;
- case 81:
-#line 392 "perly.y"
+ case 82:
+#line 396 "perly.y"
{ yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); ;}
break;
- case 82:
-#line 395 "perly.y"
+ case 83:
+#line 399 "perly.y"
{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); ;}
break;
- case 83:
-#line 400 "perly.y"
+ case 84:
+#line 404 "perly.y"
{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, scalar(yyvsp[-2].opval),
newUNOP(OP_METHOD, 0, yyvsp[0].opval))); ;}
break;
- case 84:
-#line 404 "perly.y"
+ case 85:
+#line 408 "perly.y"
{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); ;}
break;
- case 85:
-#line 409 "perly.y"
+ case 86:
+#line 413 "perly.y"
{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); ;}
break;
- case 86:
-#line 414 "perly.y"
+ case 87:
+#line 418 "perly.y"
{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
break;
- case 87:
-#line 416 "perly.y"
+ case 88:
+#line 420 "perly.y"
{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); ;}
break;
- case 88:
-#line 418 "perly.y"
+ case 89:
+#line 422 "perly.y"
{ yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); ;}
break;
- case 89:
-#line 420 "perly.y"
+ case 90:
+#line 424 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST,
prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); ;}
break;
- case 92:
-#line 434 "perly.y"
+ case 93:
+#line 438 "perly.y"
{ yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval));
PL_expect = XOPERATOR; ;}
break;
- case 93:
-#line 437 "perly.y"
+ case 94:
+#line 441 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); ;}
break;
- case 94:
-#line 439 "perly.y"
+ case 95:
+#line 443 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0,
ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
scalar(yyvsp[-1].opval));;}
break;
- case 95:
-#line 443 "perly.y"
+ case 96:
+#line 447 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0,
ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
scalar(yyvsp[-1].opval));;}
break;
- case 96:
-#line 447 "perly.y"
+ case 97:
+#line 451 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
PL_expect = XOPERATOR; ;}
break;
- case 97:
-#line 450 "perly.y"
+ case 98:
+#line 454 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0,
ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
jmaybe(yyvsp[-2].opval));
PL_expect = XOPERATOR; ;}
break;
- case 98:
-#line 455 "perly.y"
+ case 99:
+#line 459 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0,
ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
jmaybe(yyvsp[-2].opval));
PL_expect = XOPERATOR; ;}
break;
- case 99:
-#line 460 "perly.y"
+ case 100:
+#line 464 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar(yyvsp[-3].opval))); ;}
break;
- case 100:
-#line 463 "perly.y"
+ case 101:
+#line 467 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval,
newCVREF(0, scalar(yyvsp[-4].opval)))); ;}
break;
- case 101:
-#line 468 "perly.y"
+ case 102:
+#line 472 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval,
newCVREF(0, scalar(yyvsp[-3].opval)))); ;}
break;
- case 102:
-#line 472 "perly.y"
+ case 103:
+#line 476 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar(yyvsp[-2].opval))); ;}
break;
- case 103:
-#line 478 "perly.y"
+ case 104:
+#line 482 "perly.y"
{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); ;}
break;
- case 104:
-#line 480 "perly.y"
+ case 105:
+#line 484 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
break;
- case 105:
-#line 482 "perly.y"
+ case 106:
+#line 486 "perly.y"
{ if (yyvsp[-1].ival != OP_REPEAT)
scalar(yyvsp[-2].opval);
yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); ;}
break;
- case 106:
-#line 486 "perly.y"
- { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
- break;
-
case 107:
-#line 488 "perly.y"
+#line 490 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
break;
case 108:
-#line 490 "perly.y"
+#line 492 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
break;
case 109:
-#line 492 "perly.y"
+#line 494 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
break;
case 110:
-#line 494 "perly.y"
+#line 496 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
break;
case 111:
-#line 496 "perly.y"
+#line 498 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
break;
case 112:
-#line 498 "perly.y"
- { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));;}
+#line 500 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
break;
case 113:
-#line 500 "perly.y"
- { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+#line 502 "perly.y"
+ { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));;}
break;
case 114:
-#line 502 "perly.y"
- { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+#line 504 "perly.y"
+ { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
break;
case 115:
-#line 504 "perly.y"
- { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+#line 506 "perly.y"
+ { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
break;
case 116:
-#line 506 "perly.y"
- { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); ;}
+#line 508 "perly.y"
+ { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
break;
case 117:
-#line 511 "perly.y"
- { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); ;}
+#line 510 "perly.y"
+ { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); ;}
break;
case 118:
-#line 513 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+#line 515 "perly.y"
+ { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); ;}
break;
case 119:
-#line 515 "perly.y"
- { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
+#line 517 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 120:
-#line 517 "perly.y"
- { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));;}
+#line 519 "perly.y"
+ { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
break;
case 121:
-#line 519 "perly.y"
+#line 521 "perly.y"
+ { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));;}
+ break;
+
+ case 122:
+#line 523 "perly.y"
{ yyval.opval = newUNOP(OP_POSTINC, 0,
mod(scalar(yyvsp[-1].opval), OP_POSTINC)); ;}
break;
- case 122:
-#line 522 "perly.y"
+ case 123:
+#line 526 "perly.y"
{ yyval.opval = newUNOP(OP_POSTDEC, 0,
mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); ;}
break;
- case 123:
-#line 525 "perly.y"
+ case 124:
+#line 529 "perly.y"
{ yyval.opval = newUNOP(OP_PREINC, 0,
mod(scalar(yyvsp[0].opval), OP_PREINC)); ;}
break;
- case 124:
-#line 528 "perly.y"
+ case 125:
+#line 532 "perly.y"
{ yyval.opval = newUNOP(OP_PREDEC, 0,
mod(scalar(yyvsp[0].opval), OP_PREDEC)); ;}
break;
- case 125:
-#line 535 "perly.y"
+ case 126:
+#line 539 "perly.y"
{ yyval.opval = newANONLIST(yyvsp[-1].opval); ;}
break;
- case 126:
-#line 537 "perly.y"
+ case 127:
+#line 541 "perly.y"
{ yyval.opval = newANONLIST(Nullop); ;}
break;
- case 127:
-#line 539 "perly.y"
+ case 128:
+#line 543 "perly.y"
{ yyval.opval = newANONHASH(yyvsp[-2].opval); ;}
break;
- case 128:
-#line 541 "perly.y"
+ case 129:
+#line 545 "perly.y"
{ yyval.opval = newANONHASH(Nullop); ;}
break;
- case 129:
-#line 543 "perly.y"
+ case 130:
+#line 547 "perly.y"
{ yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
break;
- case 130:
-#line 549 "perly.y"
+ case 131:
+#line 553 "perly.y"
{ yyval.opval = dofile(yyvsp[0].opval); ;}
break;
- case 131:
-#line 551 "perly.y"
+ case 132:
+#line 555 "perly.y"
{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); ;}
break;
- case 132:
-#line 553 "perly.y"
+ case 133:
+#line 557 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
@@ -708,8 +714,8 @@ case 2:
)),Nullop)); dep();;}
break;
- case 133:
-#line 561 "perly.y"
+ case 134:
+#line 565 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
append_elem(OP_LIST,
@@ -720,93 +726,93 @@ case 2:
)))); dep();;}
break;
- case 134:
-#line 570 "perly.y"
+ case 135:
+#line 574 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();;}
break;
- case 135:
-#line 574 "perly.y"
+ case 136:
+#line 578 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
yyvsp[-1].opval,
scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();;}
break;
- case 140:
-#line 586 "perly.y"
- { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); ;}
- break;
-
case 141:
-#line 588 "perly.y"
- { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); ;}
+#line 590 "perly.y"
+ { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); ;}
break;
case 142:
-#line 590 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+#line 592 "perly.y"
+ { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); ;}
break;
case 143:
-#line 592 "perly.y"
- { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
+#line 594 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 144:
-#line 594 "perly.y"
- { yyval.opval = sawparens(yyvsp[-1].opval); ;}
+#line 596 "perly.y"
+ { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
break;
case 145:
-#line 596 "perly.y"
- { yyval.opval = sawparens(newNULLLIST()); ;}
+#line 598 "perly.y"
+ { yyval.opval = sawparens(yyvsp[-1].opval); ;}
break;
case 146:
-#line 598 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+#line 600 "perly.y"
+ { yyval.opval = sawparens(newNULLLIST()); ;}
break;
case 147:
-#line 600 "perly.y"
+#line 602 "perly.y"
{ yyval.opval = yyvsp[0].opval; ;}
break;
case 148:
-#line 602 "perly.y"
+#line 604 "perly.y"
{ yyval.opval = yyvsp[0].opval; ;}
break;
case 149:
-#line 604 "perly.y"
+#line 606 "perly.y"
{ yyval.opval = yyvsp[0].opval; ;}
break;
case 150:
-#line 606 "perly.y"
- { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));;}
+#line 608 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 151:
-#line 608 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+#line 610 "perly.y"
+ { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));;}
break;
case 152:
-#line 610 "perly.y"
- { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); ;}
+#line 612 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 153:
-#line 612 "perly.y"
- { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); ;}
+#line 614 "perly.y"
+ { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); ;}
break;
case 154:
-#line 614 "perly.y"
+#line 616 "perly.y"
+ { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); ;}
+ break;
+
+ case 155:
+#line 618 "perly.y"
{ yyval.opval = prepend_elem(OP_ASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_ASLICE, 0,
@@ -814,8 +820,8 @@ case 2:
ref(yyvsp[-3].opval, OP_ASLICE))); ;}
break;
- case 155:
-#line 620 "perly.y"
+ case 156:
+#line 624 "perly.y"
{ yyval.opval = prepend_elem(OP_HSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_HSLICE, 0,
@@ -824,218 +830,218 @@ case 2:
PL_expect = XOPERATOR; ;}
break;
- case 156:
-#line 627 "perly.y"
+ case 157:
+#line 631 "perly.y"
{ yyval.opval = yyvsp[0].opval; ;}
break;
- case 157:
-#line 629 "perly.y"
+ case 158:
+#line 633 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); ;}
break;
- case 158:
-#line 631 "perly.y"
+ case 159:
+#line 635 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); ;}
break;
- case 159:
-#line 633 "perly.y"
+ case 160:
+#line 637 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); ;}
break;
- case 160:
-#line 636 "perly.y"
+ case 161:
+#line 640 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); ;}
break;
- case 161:
-#line 639 "perly.y"
+ case 162:
+#line 643 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
PL_hints |= HINT_BLOCK_SCOPE; ;}
break;
- case 162:
-#line 642 "perly.y"
+ case 163:
+#line 646 "perly.y"
{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); ;}
break;
- case 163:
-#line 644 "perly.y"
+ case 164:
+#line 648 "perly.y"
{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
break;
- case 164:
-#line 646 "perly.y"
+ case 165:
+#line 650 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, 0); ;}
break;
- case 165:
-#line 648 "perly.y"
+ case 166:
+#line 652 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
break;
- case 166:
-#line 650 "perly.y"
+ case 167:
+#line 654 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
break;
- case 167:
-#line 652 "perly.y"
+ case 168:
+#line 656 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); ;}
break;
- case 168:
-#line 655 "perly.y"
+ case 169:
+#line 659 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, 0); ;}
break;
- case 169:
-#line 657 "perly.y"
+ case 170:
+#line 661 "perly.y"
{ yyval.opval = newOP(yyvsp[-2].ival, 0); ;}
break;
- case 170:
-#line 659 "perly.y"
+ case 171:
+#line 663 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
scalar(yyvsp[0].opval)); ;}
break;
- case 171:
-#line 662 "perly.y"
+ case 172:
+#line 666 "perly.y"
{ yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); ;}
break;
- case 172:
-#line 664 "perly.y"
+ case 173:
+#line 668 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); ;}
break;
- case 173:
-#line 666 "perly.y"
+ case 174:
+#line 670 "perly.y"
{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); ;}
break;
- case 174:
-#line 668 "perly.y"
+ case 175:
+#line 672 "perly.y"
{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); ;}
break;
- case 177:
-#line 675 "perly.y"
- { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); ;}
- break;
-
case 178:
-#line 677 "perly.y"
- { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
+#line 679 "perly.y"
+ { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); ;}
break;
case 179:
-#line 682 "perly.y"
- { yyval.opval = sawparens(yyvsp[-1].opval); ;}
+#line 681 "perly.y"
+ { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
break;
case 180:
-#line 684 "perly.y"
- { yyval.opval = sawparens(newNULLLIST()); ;}
+#line 686 "perly.y"
+ { yyval.opval = sawparens(yyvsp[-1].opval); ;}
break;
case 181:
-#line 686 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+#line 688 "perly.y"
+ { yyval.opval = sawparens(newNULLLIST()); ;}
break;
case 182:
-#line 688 "perly.y"
+#line 690 "perly.y"
{ yyval.opval = yyvsp[0].opval; ;}
break;
case 183:
-#line 690 "perly.y"
+#line 692 "perly.y"
{ yyval.opval = yyvsp[0].opval; ;}
break;
case 184:
-#line 695 "perly.y"
- { yyval.opval = Nullop; ;}
+#line 694 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 185:
-#line 697 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+#line 699 "perly.y"
+ { yyval.opval = Nullop; ;}
break;
case 186:
#line 701 "perly.y"
- { yyval.opval = Nullop; ;}
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 187:
-#line 703 "perly.y"
- { yyval.opval = yyvsp[0].opval; ;}
+#line 705 "perly.y"
+ { yyval.opval = Nullop; ;}
break;
case 188:
-#line 705 "perly.y"
- { yyval.opval = yyvsp[-1].opval; ;}
+#line 707 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
break;
case 189:
-#line 711 "perly.y"
- { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); ;}
+#line 709 "perly.y"
+ { yyval.opval = yyvsp[-1].opval; ;}
break;
case 190:
#line 715 "perly.y"
- { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); ;}
+ { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); ;}
break;
case 191:
#line 719 "perly.y"
- { yyval.opval = newSVREF(yyvsp[0].opval); ;}
+ { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); ;}
break;
case 192:
#line 723 "perly.y"
- { yyval.opval = newAVREF(yyvsp[0].opval); ;}
+ { yyval.opval = newSVREF(yyvsp[0].opval); ;}
break;
case 193:
#line 727 "perly.y"
- { yyval.opval = newHVREF(yyvsp[0].opval); ;}
+ { yyval.opval = newAVREF(yyvsp[0].opval); ;}
break;
case 194:
#line 731 "perly.y"
- { yyval.opval = newAVREF(yyvsp[0].opval); ;}
+ { yyval.opval = newHVREF(yyvsp[0].opval); ;}
break;
case 195:
#line 735 "perly.y"
- { yyval.opval = newGVREF(0,yyvsp[0].opval); ;}
+ { yyval.opval = newAVREF(yyvsp[0].opval); ;}
break;
case 196:
-#line 740 "perly.y"
- { yyval.opval = scalar(yyvsp[0].opval); ;}
+#line 739 "perly.y"
+ { yyval.opval = newGVREF(0,yyvsp[0].opval); ;}
break;
case 197:
-#line 742 "perly.y"
- { yyval.opval = scalar(yyvsp[0].opval); ;}
+#line 744 "perly.y"
+ { yyval.opval = scalar(yyvsp[0].opval); ;}
break;
case 198:
-#line 744 "perly.y"
- { yyval.opval = scope(yyvsp[0].opval); ;}
+#line 746 "perly.y"
+ { yyval.opval = scalar(yyvsp[0].opval); ;}
break;
case 199:
-#line 747 "perly.y"
+#line 748 "perly.y"
+ { yyval.opval = scope(yyvsp[0].opval); ;}
+ break;
+
+ case 200:
+#line 751 "perly.y"
{ yyval.opval = yyvsp[0].opval; ;}
break;
diff --git a/perly.tab b/perly.tab
index 4380332515..d26cc2c4f5 100644
--- a/perly.tab
+++ b/perly.tab
@@ -1,15 +1,15 @@
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2088
+#define YYLAST 2062
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 85
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 61
+#define YYNNTS 62
/* YYNRULES -- Number of rules. */
-#define YYNRULES 199
+#define YYNRULES 200
/* YYNRULES -- Number of states. */
-#define YYNSTATES 399
+#define YYNSTATES 400
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -62,125 +62,128 @@ static const unsigned char yytranslate[] =
static const unsigned short yyprhs[] =
{
0, 0, 3, 6, 11, 12, 13, 18, 19, 20,
- 23, 26, 29, 31, 34, 38, 40, 42, 46, 50,
- 54, 58, 62, 63, 66, 73, 81, 89, 90, 93,
- 102, 111, 122, 132, 141, 153, 157, 158, 160, 161,
- 163, 165, 167, 169, 171, 173, 174, 176, 178, 180,
- 182, 184, 186, 191, 193, 194, 201, 208, 209, 210,
- 211, 213, 214, 216, 217, 220, 222, 225, 227, 229,
- 231, 235, 236, 244, 248, 252, 256, 258, 261, 265,
- 267, 271, 277, 284, 288, 292, 298, 301, 306, 307,
- 313, 315, 317, 323, 328, 334, 339, 345, 352, 358,
- 363, 369, 374, 378, 382, 386, 390, 394, 398, 402,
- 406, 410, 414, 418, 422, 426, 430, 434, 437, 440,
- 443, 446, 449, 452, 455, 458, 462, 465, 470, 474,
- 480, 483, 486, 491, 497, 502, 508, 510, 512, 514,
- 516, 522, 525, 527, 530, 534, 537, 539, 541, 543,
- 545, 547, 549, 556, 562, 567, 573, 575, 577, 581,
- 586, 590, 592, 595, 598, 600, 603, 606, 609, 611,
- 615, 617, 621, 626, 631, 638, 640, 642, 646, 649,
- 653, 656, 658, 660, 662, 663, 665, 666, 668, 671,
- 673, 676, 679, 682, 685, 688, 691, 693, 695, 697
+ 21, 24, 28, 31, 33, 36, 40, 42, 44, 48,
+ 52, 56, 60, 64, 65, 68, 75, 83, 91, 92,
+ 95, 104, 113, 124, 134, 143, 155, 159, 160, 162,
+ 163, 165, 167, 169, 171, 173, 175, 176, 178, 180,
+ 182, 184, 186, 188, 193, 195, 196, 203, 210, 211,
+ 212, 213, 215, 216, 218, 219, 222, 224, 227, 229,
+ 231, 233, 237, 238, 246, 250, 254, 258, 260, 263,
+ 267, 269, 273, 279, 286, 290, 294, 300, 303, 308,
+ 309, 315, 317, 319, 325, 330, 336, 341, 347, 354,
+ 360, 365, 371, 376, 380, 384, 388, 392, 396, 400,
+ 404, 408, 412, 416, 420, 424, 428, 432, 436, 439,
+ 442, 445, 448, 451, 454, 457, 460, 464, 467, 472,
+ 476, 482, 485, 488, 493, 499, 504, 510, 512, 514,
+ 516, 518, 524, 527, 529, 532, 536, 539, 541, 543,
+ 545, 547, 549, 551, 558, 564, 569, 575, 577, 579,
+ 583, 588, 592, 594, 597, 600, 602, 605, 608, 611,
+ 613, 617, 619, 623, 628, 633, 640, 642, 644, 648,
+ 651, 655, 658, 660, 662, 664, 665, 667, 668, 670,
+ 673, 675, 678, 681, 684, 687, 690, 693, 695, 697,
+ 699
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const short yyrhs[] =
{
- 86, 0, -1, 89, 92, -1, 3, 88, 92, 76,
- -1, -1, -1, 3, 91, 92, 76, -1, -1, -1,
- 92, 107, -1, 92, 93, -1, 106, 96, -1, 98,
- -1, 106, 77, -1, 106, 94, 77, -1, 1, -1,
- 123, -1, 123, 21, 123, -1, 123, 22, 123, -1,
- 123, 19, 123, -1, 123, 20, 101, -1, 123, 26,
- 123, -1, -1, 23, 90, -1, 24, 74, 102, 73,
- 90, 95, -1, 21, 74, 88, 102, 73, 90, 95,
- -1, 22, 74, 88, 105, 73, 90, 95, -1, -1,
- 25, 87, -1, 106, 19, 74, 88, 104, 73, 90,
- 97, -1, 106, 20, 74, 88, 105, 73, 90, 97,
- -1, 106, 26, 43, 88, 138, 74, 102, 73, 90,
- 97, -1, 106, 26, 140, 74, 88, 102, 73, 90,
- 97, -1, 106, 26, 74, 88, 102, 73, 90, 97,
- -1, 106, 26, 74, 88, 103, 77, 104, 77, 103,
- 73, 90, -1, 106, 87, 97, -1, -1, 94, -1,
- -1, 123, -1, 123, -1, 123, -1, 99, -1, 100,
- -1, 101, -1, -1, 13, -1, 108, -1, 111, -1,
- 110, -1, 120, -1, 121, -1, 14, 114, 109, 87,
- -1, 4, -1, -1, 44, 112, 115, 116, 117, 119,
- -1, 15, 112, 115, 116, 117, 119, -1, -1, -1,
- -1, 4, -1, -1, 7, -1, -1, 45, 7, -1,
- 45, -1, 45, 7, -1, 45, -1, 87, -1, 77,
- -1, 17, 4, 77, -1, -1, 18, 112, 122, 4,
- 4, 136, 77, -1, 123, 50, 123, -1, 123, 49,
- 123, -1, 123, 48, 123, -1, 124, -1, 124, 52,
- -1, 124, 52, 133, -1, 133, -1, 33, 145, 124,
- -1, 31, 74, 145, 123, 73, -1, 133, 72, 127,
- 74, 137, 73, -1, 133, 72, 127, -1, 5, 145,
- 136, -1, 6, 145, 74, 137, 73, -1, 33, 136,
- -1, 31, 74, 137, 73, -1, -1, 12, 113, 87,
- 126, 136, -1, 5, -1, 140, -1, 144, 3, 123,
- 77, 76, -1, 140, 75, 123, 78, -1, 133, 72,
- 75, 123, 78, -1, 128, 75, 123, 78, -1, 140,
- 3, 123, 77, 76, -1, 133, 72, 3, 123, 77,
- 76, -1, 128, 3, 123, 77, 76, -1, 133, 72,
- 74, 73, -1, 133, 72, 74, 123, 73, -1, 128,
- 74, 123, 73, -1, 128, 74, 73, -1, 133, 53,
- 133, -1, 133, 67, 133, -1, 133, 36, 133, -1,
- 133, 37, 133, -1, 133, 61, 133, -1, 133, 34,
- 133, -1, 133, 35, 133, -1, 133, 60, 133, -1,
- 133, 59, 133, -1, 133, 28, 133, -1, 133, 58,
- 133, -1, 133, 57, 133, -1, 133, 56, 133, -1,
- 133, 62, 133, -1, 79, 133, -1, 80, 133, -1,
- 63, 133, -1, 64, 133, -1, 133, 69, -1, 133,
- 68, -1, 71, 133, -1, 70, 133, -1, 75, 123,
- 78, -1, 75, 78, -1, 40, 123, 77, 76, -1,
- 40, 77, 76, -1, 16, 113, 116, 117, 87, -1,
- 39, 133, -1, 39, 87, -1, 39, 4, 74, 73,
- -1, 39, 4, 74, 123, 73, -1, 39, 140, 74,
- 73, -1, 39, 140, 74, 123, 73, -1, 129, -1,
- 130, -1, 131, -1, 132, -1, 133, 54, 133, 55,
- 133, -1, 65, 133, -1, 134, -1, 42, 133, -1,
- 74, 123, 73, -1, 74, 73, -1, 140, -1, 144,
- -1, 142, -1, 141, -1, 143, -1, 128, -1, 74,
- 123, 73, 75, 123, 78, -1, 74, 73, 75, 123,
- 78, -1, 141, 75, 123, 78, -1, 141, 3, 123,
- 77, 76, -1, 7, -1, 139, -1, 139, 74, 73,
- -1, 139, 74, 123, 73, -1, 41, 4, 136, -1,
- 27, -1, 27, 133, -1, 51, 124, -1, 32, -1,
- 32, 87, -1, 32, 133, -1, 11, 133, -1, 29,
- -1, 29, 74, 73, -1, 10, -1, 30, 74, 73,
- -1, 30, 74, 123, 73, -1, 8, 74, 133, 73,
- -1, 8, 74, 133, 52, 133, 73, -1, 4, -1,
- 125, -1, 43, 135, 118, -1, 43, 135, -1, 74,
- 123, 73, -1, 74, 73, -1, 140, -1, 142, -1,
- 141, -1, -1, 124, -1, -1, 123, -1, 123, 52,
- -1, 140, -1, 46, 145, -1, 81, 145, -1, 82,
- 145, -1, 83, 145, -1, 38, 145, -1, 84, 145,
- -1, 4, -1, 140, -1, 87, -1, 9, -1
+ 86, 0, -1, 89, 93, -1, 3, 88, 93, 76,
+ -1, -1, -1, 3, 91, 93, 76, -1, -1, -1,
+ -1, 93, 108, -1, 93, 92, 94, -1, 107, 97,
+ -1, 99, -1, 107, 77, -1, 107, 95, 77, -1,
+ 1, -1, 124, -1, 124, 21, 124, -1, 124, 22,
+ 124, -1, 124, 19, 124, -1, 124, 20, 102, -1,
+ 124, 26, 124, -1, -1, 23, 90, -1, 24, 74,
+ 103, 73, 90, 96, -1, 21, 74, 88, 103, 73,
+ 90, 96, -1, 22, 74, 88, 106, 73, 90, 96,
+ -1, -1, 25, 87, -1, 107, 19, 74, 88, 105,
+ 73, 90, 98, -1, 107, 20, 74, 88, 106, 73,
+ 90, 98, -1, 107, 26, 43, 88, 139, 74, 103,
+ 73, 90, 98, -1, 107, 26, 141, 74, 88, 103,
+ 73, 90, 98, -1, 107, 26, 74, 88, 103, 73,
+ 90, 98, -1, 107, 26, 74, 88, 104, 77, 105,
+ 77, 104, 73, 90, -1, 107, 87, 98, -1, -1,
+ 95, -1, -1, 124, -1, 124, -1, 124, -1, 100,
+ -1, 101, -1, 102, -1, -1, 13, -1, 109, -1,
+ 112, -1, 111, -1, 121, -1, 122, -1, 14, 115,
+ 110, 87, -1, 4, -1, -1, 44, 113, 116, 117,
+ 118, 120, -1, 15, 113, 116, 117, 118, 120, -1,
+ -1, -1, -1, 4, -1, -1, 7, -1, -1, 45,
+ 7, -1, 45, -1, 45, 7, -1, 45, -1, 87,
+ -1, 77, -1, 17, 4, 77, -1, -1, 18, 113,
+ 123, 4, 4, 137, 77, -1, 124, 50, 124, -1,
+ 124, 49, 124, -1, 124, 48, 124, -1, 125, -1,
+ 125, 52, -1, 125, 52, 134, -1, 134, -1, 33,
+ 146, 125, -1, 31, 74, 146, 124, 73, -1, 134,
+ 72, 128, 74, 138, 73, -1, 134, 72, 128, -1,
+ 5, 146, 137, -1, 6, 146, 74, 138, 73, -1,
+ 33, 137, -1, 31, 74, 138, 73, -1, -1, 12,
+ 114, 87, 127, 137, -1, 5, -1, 141, -1, 145,
+ 3, 124, 77, 76, -1, 141, 75, 124, 78, -1,
+ 134, 72, 75, 124, 78, -1, 129, 75, 124, 78,
+ -1, 141, 3, 124, 77, 76, -1, 134, 72, 3,
+ 124, 77, 76, -1, 129, 3, 124, 77, 76, -1,
+ 134, 72, 74, 73, -1, 134, 72, 74, 124, 73,
+ -1, 129, 74, 124, 73, -1, 129, 74, 73, -1,
+ 134, 53, 134, -1, 134, 67, 134, -1, 134, 36,
+ 134, -1, 134, 37, 134, -1, 134, 61, 134, -1,
+ 134, 34, 134, -1, 134, 35, 134, -1, 134, 60,
+ 134, -1, 134, 59, 134, -1, 134, 28, 134, -1,
+ 134, 58, 134, -1, 134, 57, 134, -1, 134, 56,
+ 134, -1, 134, 62, 134, -1, 79, 134, -1, 80,
+ 134, -1, 63, 134, -1, 64, 134, -1, 134, 69,
+ -1, 134, 68, -1, 71, 134, -1, 70, 134, -1,
+ 75, 124, 78, -1, 75, 78, -1, 40, 124, 77,
+ 76, -1, 40, 77, 76, -1, 16, 114, 117, 118,
+ 87, -1, 39, 134, -1, 39, 87, -1, 39, 4,
+ 74, 73, -1, 39, 4, 74, 124, 73, -1, 39,
+ 141, 74, 73, -1, 39, 141, 74, 124, 73, -1,
+ 130, -1, 131, -1, 132, -1, 133, -1, 134, 54,
+ 134, 55, 134, -1, 65, 134, -1, 135, -1, 42,
+ 134, -1, 74, 124, 73, -1, 74, 73, -1, 141,
+ -1, 145, -1, 143, -1, 142, -1, 144, -1, 129,
+ -1, 74, 124, 73, 75, 124, 78, -1, 74, 73,
+ 75, 124, 78, -1, 142, 75, 124, 78, -1, 142,
+ 3, 124, 77, 76, -1, 7, -1, 140, -1, 140,
+ 74, 73, -1, 140, 74, 124, 73, -1, 41, 4,
+ 137, -1, 27, -1, 27, 134, -1, 51, 125, -1,
+ 32, -1, 32, 87, -1, 32, 134, -1, 11, 134,
+ -1, 29, -1, 29, 74, 73, -1, 10, -1, 30,
+ 74, 73, -1, 30, 74, 124, 73, -1, 8, 74,
+ 134, 73, -1, 8, 74, 134, 52, 134, 73, -1,
+ 4, -1, 126, -1, 43, 136, 119, -1, 43, 136,
+ -1, 74, 124, 73, -1, 74, 73, -1, 141, -1,
+ 143, -1, 142, -1, -1, 125, -1, -1, 124, -1,
+ 124, 52, -1, 141, -1, 46, 146, -1, 81, 146,
+ -1, 82, 146, -1, 83, 146, -1, 38, 146, -1,
+ 84, 146, -1, 4, -1, 141, -1, 87, -1, 9,
+ -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short yyrline[] =
{
- 0, 86, 86, 92, 99, 103, 109, 116, 121, 122,
- 124, 132, 134, 135, 144, 150, 152, 154, 156, 158,
- 160, 162, 169, 170, 172, 179, 183, 191, 192, 197,
- 203, 209, 212, 216, 219, 235, 243, 244, 249, 250,
- 254, 259, 263, 267, 271, 277, 278, 282, 284, 286,
- 288, 290, 294, 298, 299, 303, 308, 313, 317, 321,
- 325, 334, 335, 340, 341, 343, 348, 350, 355, 356,
- 359, 364, 363, 370, 372, 374, 376, 380, 382, 384,
- 388, 391, 394, 399, 403, 408, 413, 415, 418, 417,
- 426, 427, 431, 436, 438, 442, 446, 449, 454, 459,
- 462, 467, 471, 477, 479, 481, 485, 487, 489, 491,
- 493, 495, 497, 499, 501, 503, 505, 510, 512, 514,
- 516, 518, 521, 524, 527, 534, 536, 538, 540, 542,
- 548, 550, 552, 560, 569, 573, 581, 582, 583, 584,
- 585, 587, 589, 591, 593, 595, 597, 599, 601, 603,
- 605, 607, 609, 611, 613, 619, 626, 628, 630, 632,
- 635, 638, 641, 643, 645, 647, 649, 651, 654, 656,
- 658, 661, 663, 665, 667, 669, 670, 674, 676, 681,
- 683, 685, 687, 689, 694, 696, 701, 702, 704, 710,
- 714, 718, 722, 726, 730, 734, 739, 741, 743, 746
+ 0, 86, 86, 92, 99, 103, 109, 116, 120, 124,
+ 125, 127, 136, 138, 139, 148, 154, 156, 158, 160,
+ 162, 164, 166, 173, 174, 176, 183, 187, 195, 196,
+ 201, 207, 213, 216, 220, 223, 239, 247, 248, 253,
+ 254, 258, 263, 267, 271, 275, 281, 282, 286, 288,
+ 290, 292, 294, 298, 302, 303, 307, 312, 317, 321,
+ 325, 329, 338, 339, 344, 345, 347, 352, 354, 359,
+ 360, 363, 368, 367, 374, 376, 378, 380, 384, 386,
+ 388, 392, 395, 398, 403, 407, 412, 417, 419, 422,
+ 421, 430, 431, 435, 440, 442, 446, 450, 453, 458,
+ 463, 466, 471, 475, 481, 483, 485, 489, 491, 493,
+ 495, 497, 499, 501, 503, 505, 507, 509, 514, 516,
+ 518, 520, 522, 525, 528, 531, 538, 540, 542, 544,
+ 546, 552, 554, 556, 564, 573, 577, 585, 586, 587,
+ 588, 589, 591, 593, 595, 597, 599, 601, 603, 605,
+ 607, 609, 611, 613, 615, 617, 623, 630, 632, 634,
+ 636, 639, 642, 645, 647, 649, 651, 653, 655, 658,
+ 660, 662, 665, 667, 669, 671, 673, 674, 678, 680,
+ 685, 687, 689, 691, 693, 698, 700, 705, 706, 708,
+ 714, 718, 722, 726, 730, 734, 738, 743, 745, 747,
+ 750
};
#endif
@@ -201,8 +204,8 @@ static const char *const yytname[] =
"POWOP", "POSTDEC", "POSTINC", "PREDEC", "PREINC", "ARROW", "')'",
"'('", "'['", "'}'", "';'", "']'", "'-'", "'+'", "'$'", "'@'", "'%'",
"'*'", "$accept", "prog", "block", "remember", "progstart", "mblock",
- "mremember", "lineseq", "line", "sideff", "else", "cond", "cont",
- "loop", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "mtexpr",
+ "mremember", "savescope", "lineseq", "line", "sideff", "else", "cond",
+ "cont", "loop", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "mtexpr",
"miexpr", "label", "decl", "format", "formname", "mysubrout", "subrout",
"startsub", "startanonsub", "startformsub", "subname", "proto",
"subattrlist", "myattrlist", "subbody", "package", "use", "@1", "expr",
@@ -233,51 +236,53 @@ static const unsigned short yytoknum[] =
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const unsigned char yyr1[] =
{
- 0, 85, 86, 87, 88, 89, 90, 91, 92, 92,
- 92, 93, 93, 93, 93, 94, 94, 94, 94, 94,
- 94, 94, 95, 95, 95, 96, 96, 97, 97, 98,
- 98, 98, 98, 98, 98, 98, 99, 99, 100, 100,
- 101, 102, 103, 104, 105, 106, 106, 107, 107, 107,
- 107, 107, 108, 109, 109, 110, 111, 112, 113, 114,
- 115, 116, 116, 117, 117, 117, 118, 118, 119, 119,
- 120, 122, 121, 123, 123, 123, 123, 124, 124, 124,
- 125, 125, 125, 125, 125, 125, 125, 125, 126, 125,
- 127, 127, 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 130, 130, 130,
- 130, 130, 130, 130, 130, 131, 131, 131, 131, 131,
- 132, 132, 132, 132, 132, 132, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 133, 133, 134, 134, 135,
- 135, 135, 135, 135, 136, 136, 137, 137, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 145, 145, 145
+ 0, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+ 93, 93, 94, 94, 94, 94, 95, 95, 95, 95,
+ 95, 95, 95, 96, 96, 96, 97, 97, 98, 98,
+ 99, 99, 99, 99, 99, 99, 99, 100, 100, 101,
+ 101, 102, 103, 104, 105, 106, 107, 107, 108, 108,
+ 108, 108, 108, 109, 110, 110, 111, 112, 113, 114,
+ 115, 116, 117, 117, 118, 118, 118, 119, 119, 120,
+ 120, 121, 123, 122, 124, 124, 124, 124, 125, 125,
+ 125, 126, 126, 126, 126, 126, 126, 126, 126, 127,
+ 126, 128, 128, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 130, 130, 130, 130, 130, 130,
+ 130, 130, 130, 130, 130, 130, 130, 130, 131, 131,
+ 131, 131, 131, 131, 131, 131, 132, 132, 132, 132,
+ 132, 133, 133, 133, 133, 133, 133, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 135, 135,
+ 136, 136, 136, 136, 136, 137, 137, 138, 138, 138,
+ 139, 140, 141, 142, 143, 144, 145, 146, 146, 146,
+ 146
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const unsigned char yyr2[] =
{
- 0, 2, 2, 4, 0, 0, 4, 0, 0, 2,
- 2, 2, 1, 2, 3, 1, 1, 3, 3, 3,
- 3, 3, 0, 2, 6, 7, 7, 0, 2, 8,
- 8, 10, 9, 8, 11, 3, 0, 1, 0, 1,
- 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
- 1, 1, 4, 1, 0, 6, 6, 0, 0, 0,
- 1, 0, 1, 0, 2, 1, 2, 1, 1, 1,
- 3, 0, 7, 3, 3, 3, 1, 2, 3, 1,
- 3, 5, 6, 3, 3, 5, 2, 4, 0, 5,
- 1, 1, 5, 4, 5, 4, 5, 6, 5, 4,
- 5, 4, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 2, 2, 2,
- 2, 2, 2, 2, 2, 3, 2, 4, 3, 5,
- 2, 2, 4, 5, 4, 5, 1, 1, 1, 1,
- 5, 2, 1, 2, 3, 2, 1, 1, 1, 1,
- 1, 1, 6, 5, 4, 5, 1, 1, 3, 4,
- 3, 1, 2, 2, 1, 2, 2, 2, 1, 3,
- 1, 3, 4, 4, 6, 1, 1, 3, 2, 3,
- 2, 1, 1, 1, 0, 1, 0, 1, 2, 1,
- 2, 2, 2, 2, 2, 2, 1, 1, 1, 1
+ 0, 2, 2, 4, 0, 0, 4, 0, 0, 0,
+ 2, 3, 2, 1, 2, 3, 1, 1, 3, 3,
+ 3, 3, 3, 0, 2, 6, 7, 7, 0, 2,
+ 8, 8, 10, 9, 8, 11, 3, 0, 1, 0,
+ 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,
+ 1, 1, 1, 4, 1, 0, 6, 6, 0, 0,
+ 0, 1, 0, 1, 0, 2, 1, 2, 1, 1,
+ 1, 3, 0, 7, 3, 3, 3, 1, 2, 3,
+ 1, 3, 5, 6, 3, 3, 5, 2, 4, 0,
+ 5, 1, 1, 5, 4, 5, 4, 5, 6, 5,
+ 4, 5, 4, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
+ 2, 2, 2, 2, 2, 2, 3, 2, 4, 3,
+ 5, 2, 2, 4, 5, 4, 5, 1, 1, 1,
+ 1, 5, 2, 1, 2, 3, 2, 1, 1, 1,
+ 1, 1, 1, 6, 5, 4, 5, 1, 1, 3,
+ 4, 3, 1, 2, 2, 1, 2, 2, 2, 1,
+ 3, 1, 3, 4, 4, 6, 1, 1, 3, 2,
+ 3, 2, 1, 1, 1, 0, 1, 0, 1, 2,
+ 1, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+ 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -285,436 +290,441 @@ static const unsigned char yyr2[] =
means the default is an error. */
static const unsigned char yydefact[] =
{
- 5, 0, 8, 1, 45, 46, 59, 57, 0, 57,
- 57, 10, 12, 0, 9, 47, 49, 48, 50, 51,
- 54, 0, 0, 71, 0, 15, 4, 175, 0, 0,
- 156, 0, 170, 0, 58, 58, 0, 0, 0, 0,
- 0, 161, 168, 0, 0, 164, 184, 0, 0, 0,
+ 5, 0, 9, 1, 8, 60, 58, 0, 58, 58,
+ 46, 10, 48, 50, 49, 51, 52, 55, 0, 0,
+ 72, 0, 47, 11, 13, 0, 54, 0, 61, 62,
+ 71, 0, 62, 16, 4, 176, 0, 0, 157, 0,
+ 171, 0, 59, 59, 0, 0, 0, 0, 0, 162,
+ 169, 0, 0, 165, 185, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 13, 0, 0, 0, 0, 0, 0, 27,
- 0, 11, 16, 76, 176, 151, 136, 137, 138, 139,
- 79, 142, 157, 146, 149, 148, 150, 147, 53, 0,
- 60, 61, 70, 0, 61, 8, 196, 199, 198, 197,
- 184, 0, 0, 167, 0, 61, 4, 4, 4, 4,
- 4, 4, 0, 162, 0, 0, 186, 165, 166, 196,
- 185, 86, 197, 0, 194, 175, 131, 130, 146, 0,
- 0, 184, 143, 0, 178, 181, 183, 182, 190, 163,
- 119, 120, 141, 124, 123, 145, 0, 126, 0, 117,
- 118, 191, 192, 193, 195, 0, 35, 14, 0, 0,
- 0, 0, 0, 0, 0, 0, 77, 0, 0, 0,
+ 14, 0, 0, 0, 0, 0, 0, 28, 0, 12,
+ 17, 77, 177, 152, 137, 138, 139, 140, 80, 143,
+ 158, 147, 150, 149, 151, 148, 53, 63, 64, 0,
+ 64, 9, 197, 200, 199, 198, 185, 0, 0, 168,
+ 0, 62, 4, 4, 4, 4, 4, 4, 0, 163,
+ 0, 0, 187, 166, 167, 197, 186, 87, 198, 0,
+ 195, 176, 132, 131, 147, 0, 0, 185, 144, 0,
+ 179, 182, 184, 183, 191, 164, 120, 121, 142, 125,
+ 124, 146, 0, 127, 0, 118, 119, 192, 193, 194,
+ 196, 0, 36, 15, 0, 0, 0, 0, 0, 0,
+ 0, 0, 78, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 122, 121, 0, 0, 0,
- 0, 0, 0, 0, 52, 62, 63, 0, 63, 45,
- 84, 186, 0, 88, 63, 38, 0, 0, 0, 0,
- 0, 4, 169, 171, 0, 187, 0, 0, 80, 0,
- 0, 128, 0, 160, 180, 0, 67, 177, 0, 144,
- 125, 28, 19, 20, 40, 17, 18, 21, 75, 74,
- 73, 78, 0, 102, 0, 0, 112, 108, 109, 105,
- 106, 103, 0, 115, 114, 113, 111, 110, 107, 116,
- 104, 0, 90, 0, 0, 83, 91, 158, 0, 0,
- 0, 0, 0, 0, 65, 0, 184, 0, 3, 0,
- 0, 173, 184, 0, 43, 0, 39, 44, 0, 0,
- 41, 0, 0, 189, 37, 42, 0, 0, 16, 0,
- 172, 188, 87, 0, 132, 0, 134, 0, 127, 179,
- 66, 0, 0, 0, 101, 95, 0, 0, 99, 0,
- 0, 186, 159, 0, 93, 0, 154, 0, 64, 69,
- 68, 56, 0, 55, 85, 0, 89, 129, 0, 0,
- 0, 0, 0, 0, 38, 0, 81, 133, 135, 153,
- 0, 98, 140, 0, 100, 94, 0, 96, 155, 92,
- 72, 174, 7, 27, 27, 22, 22, 0, 27, 0,
- 0, 152, 97, 82, 8, 29, 30, 0, 0, 25,
- 26, 0, 33, 0, 27, 45, 23, 0, 27, 0,
- 32, 6, 0, 31, 0, 0, 34, 22, 24
+ 0, 123, 122, 0, 0, 0, 0, 0, 0, 0,
+ 66, 0, 185, 0, 8, 85, 187, 0, 89, 64,
+ 39, 0, 0, 0, 0, 0, 4, 170, 172, 0,
+ 188, 0, 0, 81, 0, 0, 129, 0, 161, 181,
+ 0, 68, 178, 0, 145, 126, 29, 20, 21, 41,
+ 18, 19, 22, 76, 75, 74, 79, 0, 103, 0,
+ 0, 113, 109, 110, 106, 107, 104, 0, 116, 115,
+ 114, 112, 111, 108, 117, 105, 0, 91, 0, 0,
+ 84, 92, 159, 0, 0, 0, 0, 0, 0, 65,
+ 70, 69, 57, 0, 56, 3, 0, 0, 174, 185,
+ 0, 44, 0, 40, 45, 0, 0, 42, 0, 0,
+ 190, 38, 43, 0, 0, 17, 0, 173, 189, 88,
+ 0, 133, 0, 135, 0, 128, 180, 67, 0, 0,
+ 0, 102, 96, 0, 0, 100, 0, 0, 187, 160,
+ 0, 94, 0, 155, 0, 73, 86, 0, 90, 130,
+ 0, 0, 0, 0, 0, 0, 39, 0, 82, 134,
+ 136, 154, 0, 99, 141, 0, 101, 95, 0, 97,
+ 156, 93, 175, 7, 28, 28, 23, 23, 0, 28,
+ 0, 0, 153, 98, 83, 9, 30, 31, 0, 0,
+ 26, 27, 0, 34, 0, 28, 8, 24, 0, 28,
+ 0, 33, 6, 0, 32, 0, 0, 35, 23, 25
};
/* YYDEFGOTO[NTERM-NUM]. */
static const short yydefgoto[] =
{
- -1, 1, 98, 95, 2, 363, 374, 4, 11, 294,
- 379, 71, 156, 12, 295, 284, 287, 289, 297, 285,
- 288, 13, 14, 15, 89, 16, 17, 21, 104, 20,
- 91, 196, 275, 227, 331, 18, 19, 93, 290, 73,
- 74, 282, 265, 75, 76, 77, 78, 79, 80, 81,
- 134, 121, 216, 292, 82, 83, 84, 85, 86, 87,
- 100
+ -1, 1, 104, 101, 2, 364, 375, 10, 4, 23,
+ 301, 380, 79, 162, 24, 302, 291, 294, 296, 304,
+ 292, 295, 25, 11, 12, 27, 13, 14, 18, 110,
+ 17, 29, 98, 201, 232, 282, 15, 16, 31, 297,
+ 81, 82, 289, 270, 83, 84, 85, 86, 87, 88,
+ 89, 140, 127, 221, 299, 90, 91, 92, 93, 94,
+ 95, 106
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -337
+#define YYPACT_NINF -359
static const short yypact[] =
{
- -337, 18, -337, -337, 244, -337, -337, -337, 31, -337,
- -337, -337, -337, 314, -337, -337, -337, -337, -337, -337,
- 50, 56, -14, -337, 56, -337, -337, -337, 49, 49,
- -337, -7, -337, 1619, -337, -337, 10, 25, 47, 53,
- -19, 1619, 55, 60, 61, 646, 564, 49, 728, 809,
- 138, 1619, -17, 49, 1619, 1619, 1619, 1619, 1619, 1619,
- 890, 971, -337, 1619, 1619, 49, 49, 49, 49, 118,
- 76, -337, 611, 35, -337, 11, -337, -337, -337, -337,
- 1917, -337, 92, 23, 26, -337, -337, 170, -337, 171,
- -337, 174, -337, 181, 174, -337, -337, -337, -337, -337,
- 1619, 112, 1619, 795, 171, 174, -337, -337, -337, -337,
- -337, -337, 116, 1917, 123, 1052, 564, -337, 795, 1745,
- 35, -337, 1685, 1619, -337, 117, -337, 795, 22, 125,
- 83, 1619, 795, 1133, 153, -337, -337, -337, -337, 35,
- 344, 344, 344, 40, 40, 124, 197, -337, -4, 344,
- 344, -337, -337, -337, -337, 171, -337, -337, 1619, 1619,
- 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1214, 1619,
- 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
- 1619, 1619, 1619, 1619, 1619, -337, -337, 14, 1295, 1619,
- 1619, 1619, 1619, 1619, -337, -337, 157, 201, 157, 62,
- -337, 1619, 1791, -337, 157, 1619, 1619, 1619, 1619, 130,
- 398, -337, -337, -337, 219, 447, 139, 1619, 35, 1376,
- 1457, -337, 140, -337, -337, 301, 207, -337, 1619, 142,
- -337, -337, 332, -337, 332, 332, 332, 332, 173, 173,
- -337, 1917, 261, -337, 319, 33, 2001, 714, 550, 141,
- 229, 1917, 1875, 2016, 2016, 386, 469, 632, 217, 344,
- 344, 1619, -337, 1538, 1619, 147, -337, -337, 369, 313,
- 91, 323, 109, 500, 220, 13, 1619, 13, -337, 151,
- 1619, -337, 1619, 171, -337, 155, 332, -337, 179, 182,
- 332, 190, 209, -337, -337, -337, 198, 213, 256, 1619,
- -337, -337, -337, 384, -337, 510, -337, 540, -337, -337,
- -337, 122, 1619, 224, -337, -337, 1619, 664, -337, 551,
- 245, 1619, -337, 226, -337, 227, -337, 231, -337, -337,
- -337, -337, 239, -337, -337, 1833, -337, -337, 324, 324,
- 324, 324, 1619, 324, 1619, 255, -337, -337, -337, -337,
- 264, -337, 1959, 272, -337, -337, 259, -337, -337, -337,
- -337, -337, -337, 118, 118, 101, 101, 285, 118, 260,
- 324, -337, -337, -337, -337, -337, -337, 324, 290, -337,
- -337, 324, -337, 482, 118, 150, -337, 1619, 118, 286,
- -337, -337, 293, -337, 324, 324, -337, 101, -337
+ -359, 23, -359, -359, 192, -359, -359, 22, -359, -359,
+ 16, -359, -359, -359, -359, -359, -359, 27, 50, -39,
+ -359, 50, -359, -359, -359, 303, -359, 59, -359, 64,
+ -359, 70, 64, -359, -359, -359, 9, 9, -359, 5,
+ -359, 1608, -359, -359, 38, 44, 52, 54, 10, 1608,
+ 63, 78, 79, 635, 553, 9, 717, 798, 151, 1608,
+ -6, 9, 1608, 1608, 1608, 1608, 1608, 1608, 879, 960,
+ -359, 1608, 1608, 9, 9, 9, 9, 99, 88, -359,
+ 600, 114, -359, 19, -359, -359, -359, -359, 1906, -359,
+ 105, 7, 14, -359, -359, 179, -359, -359, 144, 189,
+ 144, -359, -359, -359, -359, -359, 1608, 122, 1608, 784,
+ 59, 64, -359, -359, -359, -359, -359, -359, 129, 1906,
+ 157, 1041, 553, -359, 784, 1734, 114, -359, 1674, 1608,
+ -359, 160, -359, 784, 34, 161, -14, 1608, 784, 1122,
+ 194, -359, -359, -359, -359, 114, 89, 89, 89, -48,
+ -48, 165, 290, -359, 86, 89, 89, -359, -359, -359,
+ -359, 59, -359, -359, 1608, 1608, 1608, 1608, 1608, 1608,
+ 1608, 1608, 1608, 1608, 1203, 1608, 1608, 1608, 1608, 1608,
+ 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608,
+ 1608, -359, -359, 120, 1284, 1608, 1608, 1608, 1608, 1608,
+ 238, 4, 1608, 4, 55, -359, 1608, 1780, -359, 144,
+ 1608, 1608, 1608, 1608, 170, 387, -359, -359, -359, 308,
+ 268, 173, 1608, 114, 1365, 1446, -359, 176, -359, -359,
+ 358, 246, -359, 1608, 184, -359, -359, -34, -359, -34,
+ -34, -34, -34, 210, 210, -359, 1906, 127, -359, 373,
+ 164, 1990, 703, 539, 864, 230, 1906, 1864, 221, 221,
+ 375, 458, 621, 830, 89, 89, 1608, -359, 1527, 1608,
+ 191, -359, -359, 540, 214, 322, 302, 406, 653, -359,
+ -359, -359, -359, 193, -359, -359, 196, 1608, -359, 1608,
+ 59, -359, 198, -34, -359, 200, 201, -34, 211, 213,
+ -359, -359, -359, 222, 219, 228, 1608, -359, -359, -359,
+ 622, -359, 663, -359, 693, -359, -359, -359, 489, 1608,
+ 224, -359, -359, 1608, 735, -359, 704, 499, 1608, -359,
+ 229, -359, 236, -359, 251, -359, -359, 1822, -359, -359,
+ 325, 325, 325, 325, 1608, 325, 1608, 258, -359, -359,
+ -359, -359, 581, -359, 1948, 261, -359, -359, 274, -359,
+ -359, -359, -359, -359, 99, 99, 18, 18, 275, 99,
+ 276, 325, -359, -359, -359, -359, -359, -359, 325, 281,
+ -359, -359, 325, -359, 471, 99, 115, -359, 1608, 99,
+ 287, -359, -359, 288, -359, 325, 325, -359, 18, -359
};
/* YYPGOTO[NTERM-NUM]. */
static const short yypgoto[] =
{
- -337, -337, -11, -98, -337, -121, -337, -94, -337, 363,
- -336, -337, 574, -337, -337, -337, 228, -205, 0, 42,
- 193, -337, -337, -337, -337, -337, -337, 63, 372, -337,
- 391, -74, -165, -337, 149, -337, -337, -337, -13, 5,
- -337, -337, -337, -337, -337, -337, -337, -337, 59, -337,
- -337, -93, -195, -337, -337, -25, 383, 399, -337, -337,
- 3
+ -359, -359, -23, -56, -359, -110, -359, -359, -100, -359,
+ 339, -358, -359, -202, -359, -359, -359, 204, -190, -19,
+ 29, 163, -359, -359, -359, -359, -359, -359, 40, 346,
+ -359, 369, -26, -92, -359, 199, -359, -359, -359, -25,
+ -51, -359, -359, -359, -359, -359, -359, -359, -359, 39,
+ -359, -359, -87, -201, -359, -359, -9, 336, 341, -359,
+ -359, 46
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -176
+#define YYTABLE_NINF -177
static const short yytable[] =
{
- 72, 199, 69, 99, 99, 296, 279, 200, 205, 206,
- 207, 208, 209, 210, 167, 112, 26, 261, 3, 262,
- 198, 122, 99, 128, 110, 189, 189, 135, 99, 191,
- 380, 204, 101, 277, 117, 22, 130, 126, 223, 283,
- 99, 99, 99, 99, 163, 164, 165, 146, 148, 123,
- 124, 120, 26, 96, 88, 111, 138, 133, 97, 139,
- 90, 398, 65, 92, 65, 66, 67, 102, 151, 152,
- 153, 154, 23, 24, 230, 5, 6, 7, 194, 8,
- 9, 163, 164, 165, 106, 168, 169, 166, 263, 264,
- 329, 122, 103, 203, 345, 65, 220, 190, 190, 107,
- 113, 192, 214, 215, 118, 120, 10, 127, -176, -176,
- 132, 315, 187, 299, 140, 141, 142, 143, 144, 217,
- 225, 108, 149, 150, 377, 378, 356, 109, 218, 114,
- 65, 163, 164, 165, 115, 116, 120, 367, 278, 163,
- 164, 165, 131, 155, 231, 232, 234, 235, 236, 237,
- 238, 239, 240, 157, 242, 244, 245, 163, 164, 165,
- 222, 202, 266, 5, 6, 7, 188, 8, 9, 324,
- 163, 164, 165, 193, 26, 268, 269, 270, 271, 272,
- 273, 195, 392, 332, 293, 197, 201, 326, 215, 336,
- 211, 219, 286, 234, 10, 234, 212, 298, 226, 228,
- 349, 221, 274, 183, 303, 276, 305, 307, 184, 185,
- 186, 65, 302, 187, 310, 311, 308, 312, 364, 365,
- 366, 321, 368, 165, 334, 241, 391, 328, 338, 246,
- 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
- 257, 258, 259, 260, -2, 163, 164, 165, 317, 384,
- 319, 320, 339, 173, 174, 340, 386, 5, 6, 7,
- 388, 8, 9, 341, 330, 173, 330, 163, 164, 165,
- 229, 343, 337, 396, 397, 158, 159, 160, 161, 183,
- 385, 120, 162, 342, 184, 185, 186, 120, 10, 187,
- 344, 183, 300, 163, 164, 165, 184, 185, 186, 350,
- 351, 187, 357, 358, 163, 164, 165, 359, 215, 163,
- 164, 165, 163, 164, 165, 25, 360, 26, 27, 28,
- 29, 30, 31, 355, 32, 33, 34, 362, 370, -41,
- 35, 286, 373, 36, 37, 38, 39, 383, 313, 335,
- 40, 41, 371, 42, 43, 44, 45, 46, 372, 163,
- 164, 165, 47, 48, 49, 50, 51, 52, 381, 394,
- 53, 163, 164, 165, 387, 54, 395, 163, 164, 165,
- 72, 163, 164, 165, 309, 352, 70, 55, 56, 57,
- 163, 164, 165, 389, 58, 59, 369, 233, 60, 61,
- 323, 62, 314, 63, 64, 65, 66, 67, 68, 25,
- 325, 291, 27, 28, 29, 30, 31, 105, 32, 33,
- 34, 184, 185, 186, 35, 94, 187, 163, 164, 165,
- 171, 172, 173, 174, 0, 41, 333, 42, 43, 44,
- 45, 46, 163, 164, 165, 136, 47, 48, 49, 50,
- 51, 52, 322, 0, 53, 180, 181, 182, 183, 54,
- 0, 137, 0, 184, 185, 186, 0, 346, 187, 0,
- 0, 55, 56, 57, 0, 0, 0, 0, 58, 59,
- 0, 0, 60, 61, 0, -36, 0, 63, 64, 65,
- 66, 67, 68, 25, 0, 0, 27, 28, 29, 30,
- 31, 0, 32, 33, 34, 163, 164, 165, 35, 301,
- 0, 0, 0, 171, 172, 173, 174, 0, 0, 41,
- 0, 42, 43, 44, 45, 46, 0, 0, 0, 0,
- 47, 48, 49, 50, 51, 52, 0, 0, 53, 181,
- 182, 183, 0, 54, 0, 0, 184, 185, 186, 0,
- 0, 187, 0, 0, 0, 55, 56, 57, 163, 164,
- 165, 0, 58, 59, 0, -36, 60, 61, 163, 164,
- 165, 63, 64, 65, 66, 67, 68, 26, 119, 28,
- 29, 30, 31, 97, 32, 33, 34, 327, 0, 0,
- 35, 0, 0, 347, 171, -176, 173, 174, 163, 164,
- 165, 41, 0, 42, 43, 44, 45, 46, 0, 163,
- 164, 165, 47, 48, 49, 50, 51, 52, 0, 0,
- 53, 182, 183, 348, 0, 54, 0, 184, 185, 186,
- 0, 0, 187, 0, 354, 0, 0, 55, 56, 57,
- 158, 159, 160, 161, 58, 59, 0, 162, 60, 61,
- 0, 0, 0, 63, 64, 65, 66, 67, 68, 26,
- 27, 28, 29, 30, 31, 0, 32, 33, 34, 163,
- 164, 165, 35, 0, 0, 0, 171, 172, 173, 174,
- 0, 0, 0, 41, 0, 42, 43, 44, 45, 46,
- 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
- 0, 0, 53, 182, 183, 0, 0, 54, 0, 184,
- 185, 186, 0, 0, 187, 0, 0, 0, 0, 55,
- 56, 57, 163, 164, 165, 0, 58, 59, 0, 0,
- 60, 61, 0, 0, 0, 63, 64, 65, 66, 67,
- 68, 26, 125, 28, 29, 30, 31, 0, 32, 33,
- 34, 353, 0, 0, 35, 0, 0, 0, -176, 0,
- 173, 174, 0, 0, 0, 41, 0, 42, 43, 44,
- 45, 46, 0, 0, 0, 0, 47, 48, 49, 50,
- 51, 52, 0, 0, 53, 182, 183, 0, 0, 54,
- 0, 184, 185, 186, 0, 0, 187, 0, 0, 0,
- 0, 55, 56, 57, 0, 0, 0, 0, 58, 59,
- 0, 0, 60, 61, 0, 0, 0, 63, 64, 65,
- 66, 67, 68, 27, 28, 29, 30, 31, 0, 32,
- 33, 34, 0, 0, 0, 35, 0, 0, 0, 0,
- 0, 173, 174, 0, 0, 0, 41, 0, 42, 43,
- 44, 45, 46, 0, 0, 0, 0, 47, 48, 49,
- 50, 51, 52, 0, 0, 53, 182, 183, 0, 0,
- 54, 0, 184, 185, 186, 0, 0, 187, 0, 0,
- 0, 0, 55, 56, 57, 0, 0, 0, 0, 58,
- 59, 0, 0, 60, 61, 0, 129, 0, 63, 64,
- 65, 66, 67, 68, 27, 28, 29, 30, 31, 0,
- 32, 33, 34, 0, 0, 0, 35, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 41, 0, 42,
- 43, 44, 45, 46, 0, 0, 0, 0, 47, 48,
- 49, 50, 51, 52, 0, 0, 53, 375, 376, 0,
- 0, 54, 382, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 55, 56, 57, 0, 0, 390, 0,
- 58, 59, 393, 145, 60, 61, 0, 0, 0, 63,
- 64, 65, 66, 67, 68, 27, 28, 29, 30, 31,
- 0, 32, 33, 34, 0, 0, 0, 35, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 41, 0,
- 42, 43, 44, 45, 46, 0, 0, 0, 0, 47,
- 48, 49, 50, 51, 52, 0, 0, 53, 0, 0,
- 0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 55, 56, 57, 0, 0, 0,
- 0, 58, 59, 0, 0, 60, 61, 0, 0, 147,
- 63, 64, 65, 66, 67, 68, 27, 28, 29, 30,
- 31, 0, 32, 33, 34, 0, 0, 0, 35, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,
- 0, 42, 43, 44, 45, 46, 0, 0, 0, 0,
- 47, 48, 49, 50, 51, 52, 0, 0, 53, 0,
- 0, 0, 0, 54, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 55, 56, 57, 0, 0,
- 0, 0, 58, 59, 0, 213, 60, 61, 0, 0,
- 0, 63, 64, 65, 66, 67, 68, 27, 28, 29,
- 30, 31, 0, 32, 33, 34, 0, 0, 0, 35,
+ 80, 204, 77, 126, 96, 286, 100, 34, 203, 381,
+ 195, 145, 34, 102, 169, 170, 171, 197, 103, 205,
+ -177, -177, 173, 3, 193, 303, 19, 105, 105, 22,
+ 123, 26, 136, 132, 169, 170, 171, 195, 30, 118,
+ 399, 378, 379, 152, 154, 128, 105, 134, 20, 21,
+ 228, 141, 105, 116, 28, 126, 210, 211, 212, 213,
+ 214, 215, 34, 227, 105, 105, 105, 105, 139, 5,
+ 6, 97, 7, 8, 99, 73, 74, 75, 223, 108,
+ 109, 280, 196, 107, 117, 209, 126, 208, 119, 198,
+ 73, 73, 124, 174, 175, 133, 219, 220, 138, 9,
+ 129, 130, 146, 147, 148, 149, 150, 144, 225, 196,
+ 155, 156, 112, 128, 230, 283, 347, 290, 113, 157,
+ 158, 159, 160, 266, 161, 267, 114, 358, 115, 5,
+ 6, 285, 7, 8, 169, 170, 171, 120, 236, 237,
+ 239, 240, 241, 242, 243, 244, 245, 207, 247, 249,
+ 250, 126, 121, 122, 368, 137, 190, 191, 192, 9,
+ 306, 193, 376, 377, 235, 163, 172, 383, 222, 273,
+ 274, 275, 276, 277, 278, 169, 170, 171, 281, 194,
+ 281, 220, 199, 391, 271, 293, 239, 394, 239, 200,
+ 305, 392, -2, 202, 268, 269, 206, 310, 393, 312,
+ 314, 73, 338, 216, 320, 300, 5, 6, 318, 7,
+ 8, 246, 169, 170, 171, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 217, 365, 366, 367, 224, 369, 9, 226, 126, 231,
+ 233, 324, 322, 326, 327, 279, 309, 164, 165, 166,
+ 167, 73, 315, 317, 168, 177, 178, 179, 180, 319,
+ 171, 385, 169, 170, 171, 328, 179, 339, 387, 336,
+ 335, 340, 389, 341, 342, 386, 169, 170, 171, 185,
+ 186, 187, 188, 189, 343, 397, 398, 344, 190, 191,
+ 192, 330, 189, 193, 352, 345, 346, 190, 191, 192,
+ 353, -42, 193, 220, 33, 359, 34, 35, 36, 37,
+ 38, 39, 360, 40, 41, 42, 169, 170, 171, 43,
+ 308, 293, 44, 45, 46, 47, 337, 361, 363, 48,
+ 49, 371, 50, 51, 52, 53, 54, 373, 169, 170,
+ 171, 55, 56, 57, 58, 59, 60, 374, 382, 61,
+ 169, 170, 171, 384, 62, 388, 169, 170, 171, 80,
+ 395, 396, 354, 234, 78, 390, 63, 64, 65, 238,
+ 169, 170, 171, 66, 67, 370, 298, 68, 69, 332,
+ 70, 307, 71, 72, 73, 74, 75, 76, 33, 111,
+ 32, 35, 36, 37, 38, 39, 142, 40, 41, 42,
+ 331, 143, 284, 43, 0, 0, 169, 170, 171, 177,
+ 178, 179, 180, 0, 49, 0, 50, 51, 52, 53,
+ 54, 169, 170, 171, 0, 55, 56, 57, 58, 59,
+ 60, 316, 0, 61, 186, 187, 188, 189, 62, 0,
+ 0, 0, 190, 191, 192, 0, 321, 193, 0, 0,
+ 63, 64, 65, 0, 169, 170, 171, 66, 67, 0,
+ 0, 68, 69, 0, -37, 0, 71, 72, 73, 74,
+ 75, 76, 33, 0, 0, 35, 36, 37, 38, 39,
+ 0, 40, 41, 42, 333, 0, 0, 43, 0, 0,
+ 0, 0, 177, 178, 179, 180, 0, 0, 49, 0,
+ 50, 51, 52, 53, 54, 0, 0, 0, 0, 55,
+ 56, 57, 58, 59, 60, 0, 0, 61, 187, 188,
+ 189, 0, 62, 0, 0, 190, 191, 192, 0, 0,
+ 193, 0, 0, 0, 63, 64, 65, 169, 170, 171,
+ 0, 66, 67, 0, -37, 68, 69, 169, 170, 171,
+ 71, 72, 73, 74, 75, 76, 34, 125, 36, 37,
+ 38, 39, 103, 40, 41, 42, 0, 351, 0, 43,
+ 0, 0, 0, 177, -177, 179, 180, 357, 0, 0,
+ 49, 0, 50, 51, 52, 53, 54, 0, 169, 170,
+ 171, 55, 56, 57, 58, 59, 60, 0, 0, 61,
+ 188, 189, 0, 0, 62, 0, 190, 191, 192, 0,
+ 0, 193, 0, 329, 0, 0, 63, 64, 65, 164,
+ 165, 166, 167, 66, 67, 0, 168, 68, 69, 169,
+ 170, 171, 71, 72, 73, 74, 75, 76, 34, 35,
+ 36, 37, 38, 39, 0, 40, 41, 42, 169, 170,
+ 171, 43, 0, 0, 0, 177, 178, 179, 180, 372,
+ 0, 0, 49, 0, 50, 51, 52, 53, 54, 0,
+ 169, 170, 171, 55, 56, 57, 58, 59, 60, 0,
+ 0, 61, 188, 189, 0, 0, 62, 0, 190, 191,
+ 192, 0, 0, 193, 0, 348, 0, 0, 63, 64,
+ 65, 169, 170, 171, 0, 66, 67, 0, 0, 68,
+ 69, 169, 170, 171, 71, 72, 73, 74, 75, 76,
+ 34, 131, 36, 37, 38, 39, 0, 40, 41, 42,
+ 334, 0, 0, 43, 0, 0, 349, -177, 0, 179,
+ 180, 169, 170, 171, 49, 0, 50, 51, 52, 53,
+ 54, 0, 169, 170, 171, 55, 56, 57, 58, 59,
+ 60, 0, 0, 61, 188, 189, 350, 0, 62, 0,
+ 190, 191, 192, 0, 0, 193, 0, 356, 0, 0,
+ 63, 64, 65, 169, 170, 171, 0, 66, 67, 0,
+ 0, 68, 69, 0, 0, 0, 71, 72, 73, 74,
+ 75, 76, 35, 36, 37, 38, 39, 0, 40, 41,
+ 42, 0, 355, 0, 43, 0, 0, 0, 0, 0,
+ 179, 180, 0, 0, 0, 49, 0, 50, 51, 52,
+ 53, 54, 0, 0, 0, 0, 55, 56, 57, 58,
+ 59, 60, 0, 0, 61, 188, 189, 0, 0, 62,
+ 0, 190, 191, 192, 0, 0, 193, 0, 0, 0,
+ 0, 63, 64, 65, 0, 0, 179, 180, 66, 67,
+ 0, 0, 68, 69, 0, 135, 0, 71, 72, 73,
+ 74, 75, 76, 35, 36, 37, 38, 39, 0, 40,
+ 41, 42, 189, 0, 0, 43, 0, 190, 191, 192,
+ 0, 0, 193, 0, 0, 0, 49, 0, 50, 51,
+ 52, 53, 54, 0, 0, 0, 0, 55, 56, 57,
+ 58, 59, 60, 0, 0, 61, 189, 0, 0, 0,
+ 62, 190, 191, 192, 0, 0, 193, 0, 0, 0,
+ 0, 0, 63, 64, 65, 0, 0, 0, 0, 66,
+ 67, 0, 151, 68, 69, 0, 0, 0, 71, 72,
+ 73, 74, 75, 76, 35, 36, 37, 38, 39, 0,
+ 40, 41, 42, 0, 0, 0, 43, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 49, 0, 50,
+ 51, 52, 53, 54, 0, 0, 0, 0, 55, 56,
+ 57, 58, 59, 60, 0, 0, 61, 0, 0, 0,
+ 0, 62, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 64, 65, 0, 0, 0, 0,
+ 66, 67, 0, 0, 68, 69, 0, 0, 153, 71,
+ 72, 73, 74, 75, 76, 35, 36, 37, 38, 39,
+ 0, 40, 41, 42, 0, 0, 0, 43, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
+ 50, 51, 52, 53, 54, 0, 0, 0, 0, 55,
+ 56, 57, 58, 59, 60, 0, 0, 61, 0, 0,
+ 0, 0, 62, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 63, 64, 65, 0, 0, 0,
+ 0, 66, 67, 0, 218, 68, 69, 0, 0, 0,
+ 71, 72, 73, 74, 75, 76, 35, 36, 37, 38,
+ 39, 0, 40, 41, 42, 0, 0, 0, 43, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
+ 0, 50, 51, 52, 53, 54, 0, 0, 0, 0,
+ 55, 56, 57, 58, 59, 60, 0, 0, 61, 0,
+ 0, 0, 0, 62, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 63, 64, 65, 0, 0,
+ 0, 0, 66, 67, 0, 229, 68, 69, 0, 0,
+ 0, 71, 72, 73, 74, 75, 76, 35, 36, 37,
+ 38, 39, 0, 40, 41, 42, 0, 0, 0, 43,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 41, 0, 42, 43, 44, 45, 46, 0, 0, 0,
- 0, 47, 48, 49, 50, 51, 52, 0, 0, 53,
- 0, 0, 0, 0, 54, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 55, 56, 57, 0,
- 0, 0, 0, 58, 59, 0, 224, 60, 61, 0,
- 0, 0, 63, 64, 65, 66, 67, 68, 27, 28,
- 29, 30, 31, 0, 32, 33, 34, 0, 0, 0,
- 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 41, 0, 42, 43, 44, 45, 46, 0, 0,
- 0, 0, 47, 48, 49, 50, 51, 52, 0, 0,
- 53, 0, 0, 0, 0, 54, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 55, 56, 57,
- 0, 0, 0, 0, 58, 59, 0, 243, 60, 61,
- 0, 0, 0, 63, 64, 65, 66, 67, 68, 27,
- 28, 29, 30, 31, 0, 32, 33, 34, 0, 0,
- 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 41, 0, 42, 43, 44, 45, 46, 0,
- 0, 0, 0, 47, 48, 49, 50, 51, 52, 0,
- 0, 53, 0, 0, 0, 0, 54, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 55, 56,
- 57, 0, 0, 0, 0, 58, 59, 0, 267, 60,
- 61, 0, 0, 0, 63, 64, 65, 66, 67, 68,
- 27, 28, 29, 30, 31, 0, 32, 33, 34, 0,
- 0, 0, 35, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 41, 0, 42, 43, 44, 45, 46,
- 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
- 0, 0, 53, 0, 0, 0, 0, 54, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
- 56, 57, 0, 0, 0, 0, 58, 59, 0, 304,
- 60, 61, 0, 0, 0, 63, 64, 65, 66, 67,
- 68, 27, 28, 29, 30, 31, 0, 32, 33, 34,
- 0, 0, 0, 35, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 41, 0, 42, 43, 44, 45,
- 46, 0, 0, 0, 0, 47, 48, 49, 50, 51,
- 52, 0, 0, 53, 0, 0, 0, 0, 54, 0,
+ 49, 0, 50, 51, 52, 53, 54, 0, 0, 0,
+ 0, 55, 56, 57, 58, 59, 60, 0, 0, 61,
+ 0, 0, 0, 0, 62, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 63, 64, 65, 0,
+ 0, 0, 0, 66, 67, 0, 248, 68, 69, 0,
+ 0, 0, 71, 72, 73, 74, 75, 76, 35, 36,
+ 37, 38, 39, 0, 40, 41, 42, 0, 0, 0,
+ 43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 49, 0, 50, 51, 52, 53, 54, 0, 0,
+ 0, 0, 55, 56, 57, 58, 59, 60, 0, 0,
+ 61, 0, 0, 0, 0, 62, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
+ 0, 0, 0, 0, 66, 67, 0, 272, 68, 69,
+ 0, 0, 0, 71, 72, 73, 74, 75, 76, 35,
+ 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
+ 0, 43, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 49, 0, 50, 51, 52, 53, 54, 0,
+ 0, 0, 0, 55, 56, 57, 58, 59, 60, 0,
+ 0, 61, 0, 0, 0, 0, 62, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 63, 64,
+ 65, 0, 0, 0, 0, 66, 67, 0, 311, 68,
+ 69, 0, 0, 0, 71, 72, 73, 74, 75, 76,
+ 35, 36, 37, 38, 39, 0, 40, 41, 42, 0,
+ 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 49, 0, 50, 51, 52, 53, 54,
+ 0, 0, 0, 0, 55, 56, 57, 58, 59, 60,
+ 0, 0, 61, 0, 0, 0, 0, 62, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 64, 65, 0, 0, 0, 0, 66, 67, 0, 313,
+ 68, 69, 0, 0, 0, 71, 72, 73, 74, 75,
+ 76, 35, 36, 37, 38, 39, 0, 40, 41, 42,
+ 0, 0, 0, 43, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 49, 0, 50, 51, 52, 53,
+ 54, 0, 0, 0, 0, 55, 56, 57, 58, 59,
+ 60, 0, 0, 61, 0, 0, 0, 0, 62, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 55, 56, 57, 0, 0, 0, 0, 58, 59, 0,
- 306, 60, 61, 0, 0, 0, 63, 64, 65, 66,
- 67, 68, 27, 28, 29, 30, 31, 0, 32, 33,
- 34, 0, 0, 0, 35, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 41, 0, 42, 43, 44,
- 45, 46, 0, 0, 0, 0, 47, 48, 49, 50,
- 51, 52, 0, 0, 53, 0, 0, 0, 0, 54,
+ 63, 64, 65, 0, 0, 0, 0, 66, 67, 0,
+ 325, 68, 69, 0, 0, 0, 71, 72, 73, 74,
+ 75, 76, 35, 36, 37, 38, 39, 0, 40, 41,
+ 42, 0, 0, 0, 43, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 49, 0, 50, 51, 52,
+ 53, 54, 0, 0, 0, 0, 55, 56, 57, 58,
+ 59, 60, 0, 0, 61, 0, 0, 0, 0, 62,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 55, 56, 57, 0, 0, 0, 0, 58, 59,
- 0, 318, 60, 61, 0, 0, 0, 63, 64, 65,
- 66, 67, 68, 27, 28, 29, 30, 31, 0, 32,
- 33, 34, 0, 0, 0, 35, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 41, 0, 42, 43,
- 44, 45, 46, 0, 0, 0, 0, 47, 48, 49,
- 50, 51, 52, 0, 0, 53, 0, 0, 0, 0,
- 54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 55, 56, 57, 0, 0, 0, 189, 58,
- 59, 0, 0, 60, 61, 0, 0, 0, 63, 64,
- 65, 66, 67, 68, -146, -146, -146, -146, 0, 0,
- 0, -146, 0, -146, 0, 0, 0, 0, 0, -146,
- -146, -146, -146, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -146, -146, -146, 0, -146, -146, -146,
- -146, -146, -146, -146, -146, -146, -146, -146, 0, 0,
- 0, 0, -146, -146, -146, 0, 0, -146, -146, 0,
- 190, 0, -146, -146, -175, -175, -175, -175, 0, 0,
- 0, -175, 0, -175, 0, 0, 0, 0, 0, -175,
- -175, -175, -175, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -175, -175, -175, 0, -175, -175, -175,
- -175, -175, -175, -175, -175, -175, -175, -175, 0, 0,
- 0, 0, -175, -175, -175, 0, 0, -175, -175, 170,
- 0, 0, -175, -175, 0, 171, 172, 173, 174, 0,
+ 0, 63, 64, 65, 0, 0, 0, 195, 66, 67,
+ 0, 0, 68, 69, 0, 0, 0, 71, 72, 73,
+ 74, 75, 76, -147, -147, -147, -147, 0, 0, 0,
+ -147, 0, -147, 0, 0, 0, 0, 0, -147, -147,
+ -147, -147, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -147, -147, -147, 0, -147, -147, -147, -147,
+ -147, -147, -147, -147, -147, -147, -147, 0, 0, 0,
+ 0, -147, -147, -147, 0, 0, -147, -147, 0, 196,
+ 0, -147, -147, -176, -176, -176, -176, 0, 0, 0,
+ -176, 0, -176, 0, 0, 0, 0, 0, -176, -176,
+ -176, -176, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -176, -176, -176, 0, -176, -176, -176, -176,
+ -176, -176, -176, -176, -176, -176, -176, 0, 0, 0,
+ 0, -176, -176, -176, 0, 0, -176, -176, 176, 0,
+ 0, -176, -176, 0, 177, 178, 179, 180, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 280, 175, 176, 0, 177, 178, 179,
- 180, 181, 182, 183, 0, 0, 0, 0, 184, 185,
- 186, 170, 0, 187, 281, 0, 0, 171, 172, 173,
- 174, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 175, 176, 0, 177,
- 178, 179, 180, 181, 182, 183, 0, 0, 0, 0,
- 184, 185, 186, 170, 0, 187, 361, 0, 0, 171,
- 172, 173, 174, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 175, 176,
- 316, 177, 178, 179, 180, 181, 182, 183, 0, 0,
- 0, 0, 184, 185, 186, 170, 0, 187, 0, 0,
- 0, 171, 172, 173, 174, 0, 0, 0, 0, 0,
+ 0, 0, 287, 181, 182, 0, 183, 184, 185, 186,
+ 187, 188, 189, 0, 0, 0, 0, 190, 191, 192,
+ 176, 0, 193, 288, 0, 0, 177, 178, 179, 180,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 175, 176, 0, 177, 178, 179, 180, 181, 182, 183,
- 0, 0, 0, 0, 184, 185, 186, 170, 0, 187,
- 0, 0, 0, 171, 172, 173, 174, 0, 0, 0,
+ 0, 0, 0, 0, 0, 181, 182, 0, 183, 184,
+ 185, 186, 187, 188, 189, 0, 0, 0, 0, 190,
+ 191, 192, 176, 0, 193, 362, 0, 0, 177, 178,
+ 179, 180, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 181, 182, 323,
+ 183, 184, 185, 186, 187, 188, 189, 0, 0, 0,
+ 0, 190, 191, 192, 176, 0, 193, 0, 0, 0,
+ 177, 178, 179, 180, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 181,
+ 182, 0, 183, 184, 185, 186, 187, 188, 189, 0,
+ 0, 0, 0, 190, 191, 192, 176, 0, 193, 0,
+ 0, 0, 177, 178, 179, 180, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 176, 0, 177, 178, 179, 180, 181,
- 182, 183, 0, 0, 0, 0, 184, 185, 186, -176,
- 0, 187, 0, 0, 0, 171, 172, 173, 174, 0,
+ 0, 0, 182, 0, 183, 184, 185, 186, 187, 188,
+ 189, 0, 0, 0, 0, 190, 191, 192, -177, 0,
+ 193, 0, 0, 0, 177, 178, 179, 180, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 171, 172, 173, 174, 0, 0, 0, 177, 178, 179,
- 180, 181, 182, 183, 0, 0, 0, 0, 184, 185,
- 186, 0, 0, 187, 179, 180, 181, 182, 183, 0,
- 0, 0, 0, 184, 185, 186, 0, 0, 187
+ 0, 0, 0, 0, 0, 0, 183, 184, 185, 186,
+ 187, 188, 189, 0, 0, 0, 0, 190, 191, 192,
+ 0, 0, 193
};
static const short yycheck[] =
{
- 13, 95, 13, 28, 29, 210, 201, 100, 106, 107,
- 108, 109, 110, 111, 3, 40, 3, 3, 0, 5,
- 94, 46, 47, 48, 43, 3, 3, 52, 53, 3,
- 366, 105, 29, 198, 45, 4, 49, 48, 131, 204,
- 65, 66, 67, 68, 48, 49, 50, 60, 61, 46,
- 47, 46, 3, 4, 4, 74, 53, 74, 9, 54,
- 4, 397, 81, 77, 81, 82, 83, 74, 65, 66,
- 67, 68, 9, 10, 78, 13, 14, 15, 89, 17,
- 18, 48, 49, 50, 74, 74, 75, 52, 74, 75,
- 77, 116, 33, 104, 299, 81, 74, 75, 75, 74,
- 41, 75, 115, 116, 45, 100, 44, 48, 68, 69,
- 51, 78, 72, 211, 55, 56, 57, 58, 59, 116,
- 133, 74, 63, 64, 23, 24, 321, 74, 123, 74,
- 81, 48, 49, 50, 74, 74, 131, 342, 76, 48,
- 49, 50, 4, 25, 155, 158, 159, 160, 161, 162,
- 163, 164, 165, 77, 167, 168, 169, 48, 49, 50,
- 77, 102, 187, 13, 14, 15, 74, 17, 18, 78,
- 48, 49, 50, 3, 3, 188, 189, 190, 191, 192,
- 193, 7, 387, 276, 209, 4, 74, 78, 201, 282,
- 74, 74, 205, 206, 44, 208, 73, 210, 45, 75,
- 78, 76, 45, 62, 217, 4, 219, 220, 67, 68,
- 69, 81, 73, 72, 7, 228, 76, 75, 339, 340,
- 341, 74, 343, 50, 73, 166, 76, 7, 73, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 0, 48, 49, 50, 261, 370,
- 263, 264, 73, 36, 37, 73, 377, 13, 14, 15,
- 381, 17, 18, 73, 275, 36, 277, 48, 49, 50,
- 73, 73, 283, 394, 395, 19, 20, 21, 22, 62,
- 374, 276, 26, 74, 67, 68, 69, 282, 44, 72,
- 77, 62, 73, 48, 49, 50, 67, 68, 69, 312,
- 76, 72, 76, 76, 48, 49, 50, 76, 321, 48,
- 49, 50, 48, 49, 50, 1, 77, 3, 4, 5,
- 6, 7, 8, 78, 10, 11, 12, 3, 73, 73,
- 16, 344, 73, 19, 20, 21, 22, 77, 77, 280,
- 26, 27, 78, 29, 30, 31, 32, 33, 76, 48,
- 49, 50, 38, 39, 40, 41, 42, 43, 73, 73,
- 46, 48, 49, 50, 74, 51, 73, 48, 49, 50,
- 383, 48, 49, 50, 73, 316, 13, 63, 64, 65,
- 48, 49, 50, 383, 70, 71, 344, 159, 74, 75,
- 77, 77, 73, 79, 80, 81, 82, 83, 84, 1,
- 77, 208, 4, 5, 6, 7, 8, 35, 10, 11,
- 12, 67, 68, 69, 16, 24, 72, 48, 49, 50,
- 34, 35, 36, 37, -1, 27, 277, 29, 30, 31,
- 32, 33, 48, 49, 50, 52, 38, 39, 40, 41,
- 42, 43, 73, -1, 46, 59, 60, 61, 62, 51,
- -1, 52, -1, 67, 68, 69, -1, 73, 72, -1,
- -1, 63, 64, 65, -1, -1, -1, -1, 70, 71,
- -1, -1, 74, 75, -1, 77, -1, 79, 80, 81,
- 82, 83, 84, 1, -1, -1, 4, 5, 6, 7,
- 8, -1, 10, 11, 12, 48, 49, 50, 16, 52,
- -1, -1, -1, 34, 35, 36, 37, -1, -1, 27,
- -1, 29, 30, 31, 32, 33, -1, -1, -1, -1,
- 38, 39, 40, 41, 42, 43, -1, -1, 46, 60,
- 61, 62, -1, 51, -1, -1, 67, 68, 69, -1,
- -1, 72, -1, -1, -1, 63, 64, 65, 48, 49,
- 50, -1, 70, 71, -1, 73, 74, 75, 48, 49,
- 50, 79, 80, 81, 82, 83, 84, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 77, -1, -1,
- 16, -1, -1, 73, 34, 35, 36, 37, 48, 49,
- 50, 27, -1, 29, 30, 31, 32, 33, -1, 48,
- 49, 50, 38, 39, 40, 41, 42, 43, -1, -1,
- 46, 61, 62, 73, -1, 51, -1, 67, 68, 69,
- -1, -1, 72, -1, 73, -1, -1, 63, 64, 65,
- 19, 20, 21, 22, 70, 71, -1, 26, 74, 75,
- -1, -1, -1, 79, 80, 81, 82, 83, 84, 3,
- 4, 5, 6, 7, 8, -1, 10, 11, 12, 48,
- 49, 50, 16, -1, -1, -1, 34, 35, 36, 37,
- -1, -1, -1, 27, -1, 29, 30, 31, 32, 33,
- -1, -1, -1, -1, 38, 39, 40, 41, 42, 43,
- -1, -1, 46, 61, 62, -1, -1, 51, -1, 67,
- 68, 69, -1, -1, 72, -1, -1, -1, -1, 63,
- 64, 65, 48, 49, 50, -1, 70, 71, -1, -1,
- 74, 75, -1, -1, -1, 79, 80, 81, 82, 83,
- 84, 3, 4, 5, 6, 7, 8, -1, 10, 11,
- 12, 77, -1, -1, 16, -1, -1, -1, 34, -1,
+ 25, 101, 25, 54, 27, 206, 32, 3, 100, 367,
+ 3, 62, 3, 4, 48, 49, 50, 3, 9, 106,
+ 68, 69, 3, 0, 72, 215, 4, 36, 37, 13,
+ 53, 4, 57, 56, 48, 49, 50, 3, 77, 48,
+ 398, 23, 24, 68, 69, 54, 55, 56, 8, 9,
+ 137, 60, 61, 43, 4, 106, 112, 113, 114, 115,
+ 116, 117, 3, 77, 73, 74, 75, 76, 74, 14,
+ 15, 7, 17, 18, 4, 81, 82, 83, 129, 74,
+ 41, 77, 75, 37, 74, 111, 137, 110, 49, 75,
+ 81, 81, 53, 74, 75, 56, 121, 122, 59, 44,
+ 54, 55, 63, 64, 65, 66, 67, 61, 74, 75,
+ 71, 72, 74, 122, 139, 202, 306, 209, 74, 73,
+ 74, 75, 76, 3, 25, 5, 74, 328, 74, 14,
+ 15, 76, 17, 18, 48, 49, 50, 74, 161, 164,
+ 165, 166, 167, 168, 169, 170, 171, 108, 173, 174,
+ 175, 202, 74, 74, 344, 4, 67, 68, 69, 44,
+ 216, 72, 364, 365, 78, 77, 52, 369, 122, 194,
+ 195, 196, 197, 198, 199, 48, 49, 50, 201, 74,
+ 203, 206, 3, 385, 193, 210, 211, 389, 213, 45,
+ 215, 76, 0, 4, 74, 75, 74, 222, 388, 224,
+ 225, 81, 289, 74, 77, 214, 14, 15, 233, 17,
+ 18, 172, 48, 49, 50, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
+ 73, 341, 342, 343, 74, 345, 44, 76, 289, 45,
+ 75, 266, 78, 268, 269, 7, 73, 19, 20, 21,
+ 22, 81, 76, 7, 26, 34, 35, 36, 37, 75,
+ 50, 371, 48, 49, 50, 74, 36, 290, 378, 73,
+ 77, 73, 382, 73, 73, 375, 48, 49, 50, 58,
+ 59, 60, 61, 62, 73, 395, 396, 74, 67, 68,
+ 69, 77, 62, 72, 319, 73, 77, 67, 68, 69,
+ 76, 73, 72, 328, 1, 76, 3, 4, 5, 6,
+ 7, 8, 76, 10, 11, 12, 48, 49, 50, 16,
+ 52, 346, 19, 20, 21, 22, 287, 76, 3, 26,
+ 27, 73, 29, 30, 31, 32, 33, 76, 48, 49,
+ 50, 38, 39, 40, 41, 42, 43, 73, 73, 46,
+ 48, 49, 50, 77, 51, 74, 48, 49, 50, 384,
+ 73, 73, 323, 73, 25, 384, 63, 64, 65, 165,
+ 48, 49, 50, 70, 71, 346, 213, 74, 75, 77,
+ 77, 73, 79, 80, 81, 82, 83, 84, 1, 43,
+ 21, 4, 5, 6, 7, 8, 60, 10, 11, 12,
+ 78, 60, 203, 16, -1, -1, 48, 49, 50, 34,
+ 35, 36, 37, -1, 27, -1, 29, 30, 31, 32,
+ 33, 48, 49, 50, -1, 38, 39, 40, 41, 42,
+ 43, 73, -1, 46, 59, 60, 61, 62, 51, -1,
+ -1, -1, 67, 68, 69, -1, 73, 72, -1, -1,
+ 63, 64, 65, -1, 48, 49, 50, 70, 71, -1,
+ -1, 74, 75, -1, 77, -1, 79, 80, 81, 82,
+ 83, 84, 1, -1, -1, 4, 5, 6, 7, 8,
+ -1, 10, 11, 12, 78, -1, -1, 16, -1, -1,
+ -1, -1, 34, 35, 36, 37, -1, -1, 27, -1,
+ 29, 30, 31, 32, 33, -1, -1, -1, -1, 38,
+ 39, 40, 41, 42, 43, -1, -1, 46, 60, 61,
+ 62, -1, 51, -1, -1, 67, 68, 69, -1, -1,
+ 72, -1, -1, -1, 63, 64, 65, 48, 49, 50,
+ -1, 70, 71, -1, 73, 74, 75, 48, 49, 50,
+ 79, 80, 81, 82, 83, 84, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, -1, 78, -1, 16,
+ -1, -1, -1, 34, 35, 36, 37, 78, -1, -1,
+ 27, -1, 29, 30, 31, 32, 33, -1, 48, 49,
+ 50, 38, 39, 40, 41, 42, 43, -1, -1, 46,
+ 61, 62, -1, -1, 51, -1, 67, 68, 69, -1,
+ -1, 72, -1, 73, -1, -1, 63, 64, 65, 19,
+ 20, 21, 22, 70, 71, -1, 26, 74, 75, 48,
+ 49, 50, 79, 80, 81, 82, 83, 84, 3, 4,
+ 5, 6, 7, 8, -1, 10, 11, 12, 48, 49,
+ 50, 16, -1, -1, -1, 34, 35, 36, 37, 78,
+ -1, -1, 27, -1, 29, 30, 31, 32, 33, -1,
+ 48, 49, 50, 38, 39, 40, 41, 42, 43, -1,
+ -1, 46, 61, 62, -1, -1, 51, -1, 67, 68,
+ 69, -1, -1, 72, -1, 73, -1, -1, 63, 64,
+ 65, 48, 49, 50, -1, 70, 71, -1, -1, 74,
+ 75, 48, 49, 50, 79, 80, 81, 82, 83, 84,
+ 3, 4, 5, 6, 7, 8, -1, 10, 11, 12,
+ 77, -1, -1, 16, -1, -1, 73, 34, -1, 36,
+ 37, 48, 49, 50, 27, -1, 29, 30, 31, 32,
+ 33, -1, 48, 49, 50, 38, 39, 40, 41, 42,
+ 43, -1, -1, 46, 61, 62, 73, -1, 51, -1,
+ 67, 68, 69, -1, -1, 72, -1, 73, -1, -1,
+ 63, 64, 65, 48, 49, 50, -1, 70, 71, -1,
+ -1, 74, 75, -1, -1, -1, 79, 80, 81, 82,
+ 83, 84, 4, 5, 6, 7, 8, -1, 10, 11,
+ 12, -1, 77, -1, 16, -1, -1, -1, -1, -1,
36, 37, -1, -1, -1, 27, -1, 29, 30, 31,
32, 33, -1, -1, -1, -1, 38, 39, 40, 41,
42, 43, -1, -1, 46, 61, 62, -1, -1, 51,
-1, 67, 68, 69, -1, -1, 72, -1, -1, -1,
- -1, 63, 64, 65, -1, -1, -1, -1, 70, 71,
- -1, -1, 74, 75, -1, -1, -1, 79, 80, 81,
+ -1, 63, 64, 65, -1, -1, 36, 37, 70, 71,
+ -1, -1, 74, 75, -1, 77, -1, 79, 80, 81,
82, 83, 84, 4, 5, 6, 7, 8, -1, 10,
- 11, 12, -1, -1, -1, 16, -1, -1, -1, -1,
- -1, 36, 37, -1, -1, -1, 27, -1, 29, 30,
+ 11, 12, 62, -1, -1, 16, -1, 67, 68, 69,
+ -1, -1, 72, -1, -1, -1, 27, -1, 29, 30,
31, 32, 33, -1, -1, -1, -1, 38, 39, 40,
- 41, 42, 43, -1, -1, 46, 61, 62, -1, -1,
- 51, -1, 67, 68, 69, -1, -1, 72, -1, -1,
+ 41, 42, 43, -1, -1, 46, 62, -1, -1, -1,
+ 51, 67, 68, 69, -1, -1, 72, -1, -1, -1,
-1, -1, 63, 64, 65, -1, -1, -1, -1, 70,
- 71, -1, -1, 74, 75, -1, 77, -1, 79, 80,
+ 71, -1, 73, 74, 75, -1, -1, -1, 79, 80,
81, 82, 83, 84, 4, 5, 6, 7, 8, -1,
10, 11, 12, -1, -1, -1, 16, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 27, -1, 29,
30, 31, 32, 33, -1, -1, -1, -1, 38, 39,
- 40, 41, 42, 43, -1, -1, 46, 363, 364, -1,
- -1, 51, 368, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 63, 64, 65, -1, -1, 384, -1,
- 70, 71, 388, 73, 74, 75, -1, -1, -1, 79,
+ 40, 41, 42, 43, -1, -1, 46, -1, -1, -1,
+ -1, 51, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 63, 64, 65, -1, -1, -1, -1,
+ 70, 71, -1, -1, 74, 75, -1, -1, 78, 79,
80, 81, 82, 83, 84, 4, 5, 6, 7, 8,
-1, 10, 11, 12, -1, -1, -1, 16, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 27, -1,
@@ -722,7 +732,7 @@ static const short yycheck[] =
39, 40, 41, 42, 43, -1, -1, 46, -1, -1,
-1, -1, 51, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 63, 64, 65, -1, -1, -1,
- -1, 70, 71, -1, -1, 74, 75, -1, -1, 78,
+ -1, 70, 71, -1, 73, 74, 75, -1, -1, -1,
79, 80, 81, 82, 83, 84, 4, 5, 6, 7,
8, -1, 10, 11, 12, -1, -1, -1, 16, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 27,
@@ -778,99 +788,90 @@ static const short yycheck[] =
32, 33, -1, -1, -1, -1, 38, 39, 40, 41,
42, 43, -1, -1, 46, -1, -1, -1, -1, 51,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 63, 64, 65, -1, -1, -1, -1, 70, 71,
- -1, 73, 74, 75, -1, -1, -1, 79, 80, 81,
- 82, 83, 84, 4, 5, 6, 7, 8, -1, 10,
- 11, 12, -1, -1, -1, 16, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 27, -1, 29, 30,
- 31, 32, 33, -1, -1, -1, -1, 38, 39, 40,
- 41, 42, 43, -1, -1, 46, -1, -1, -1, -1,
- 51, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 63, 64, 65, -1, -1, -1, 3, 70,
- 71, -1, -1, 74, 75, -1, -1, -1, 79, 80,
- 81, 82, 83, 84, 19, 20, 21, 22, -1, -1,
- -1, 26, -1, 28, -1, -1, -1, -1, -1, 34,
- 35, 36, 37, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, -1, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, -1, -1,
- -1, -1, 67, 68, 69, -1, -1, 72, 73, -1,
- 75, -1, 77, 78, 19, 20, 21, 22, -1, -1,
- -1, 26, -1, 28, -1, -1, -1, -1, -1, 34,
- 35, 36, 37, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, -1, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, -1, -1,
- -1, -1, 67, 68, 69, -1, -1, 72, 73, 28,
- -1, -1, 77, 78, -1, 34, 35, 36, 37, -1,
+ -1, 63, 64, 65, -1, -1, -1, 3, 70, 71,
+ -1, -1, 74, 75, -1, -1, -1, 79, 80, 81,
+ 82, 83, 84, 19, 20, 21, 22, -1, -1, -1,
+ 26, -1, 28, -1, -1, -1, -1, -1, 34, 35,
+ 36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 48, 49, 50, -1, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, -1, -1, -1,
+ -1, 67, 68, 69, -1, -1, 72, 73, -1, 75,
+ -1, 77, 78, 19, 20, 21, 22, -1, -1, -1,
+ 26, -1, 28, -1, -1, -1, -1, -1, 34, 35,
+ 36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 48, 49, 50, -1, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, -1, -1, -1,
+ -1, 67, 68, 69, -1, -1, 72, 73, 28, -1,
+ -1, 77, 78, -1, 34, 35, 36, 37, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 52, 53, 54, -1, 56, 57, 58,
- 59, 60, 61, 62, -1, -1, -1, -1, 67, 68,
- 69, 28, -1, 72, 73, -1, -1, 34, 35, 36,
- 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 53, 54, -1, 56,
- 57, 58, 59, 60, 61, 62, -1, -1, -1, -1,
- 67, 68, 69, 28, -1, 72, 73, -1, -1, 34,
- 35, 36, 37, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, -1, -1,
- -1, -1, 67, 68, 69, 28, -1, 72, -1, -1,
- -1, 34, 35, 36, 37, -1, -1, -1, -1, -1,
+ -1, -1, 52, 53, 54, -1, 56, 57, 58, 59,
+ 60, 61, 62, -1, -1, -1, -1, 67, 68, 69,
+ 28, -1, 72, 73, -1, -1, 34, 35, 36, 37,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 53, 54, -1, 56, 57, 58, 59, 60, 61, 62,
- -1, -1, -1, -1, 67, 68, 69, 28, -1, 72,
- -1, -1, -1, 34, 35, 36, 37, -1, -1, -1,
+ -1, -1, -1, -1, -1, 53, 54, -1, 56, 57,
+ 58, 59, 60, 61, 62, -1, -1, -1, -1, 67,
+ 68, 69, 28, -1, 72, 73, -1, -1, 34, 35,
+ 36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, -1, -1, -1,
+ -1, 67, 68, 69, 28, -1, 72, -1, -1, -1,
+ 34, 35, 36, 37, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 53,
+ 54, -1, 56, 57, 58, 59, 60, 61, 62, -1,
+ -1, -1, -1, 67, 68, 69, 28, -1, 72, -1,
+ -1, -1, 34, 35, 36, 37, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 54, -1, 56, 57, 58, 59, 60,
- 61, 62, -1, -1, -1, -1, 67, 68, 69, 28,
- -1, 72, -1, -1, -1, 34, 35, 36, 37, -1,
+ -1, -1, 54, -1, 56, 57, 58, 59, 60, 61,
+ 62, -1, -1, -1, -1, 67, 68, 69, 28, -1,
+ 72, -1, -1, -1, 34, 35, 36, 37, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 34, 35, 36, 37, -1, -1, -1, 56, 57, 58,
- 59, 60, 61, 62, -1, -1, -1, -1, 67, 68,
- 69, -1, -1, 72, 58, 59, 60, 61, 62, -1,
- -1, -1, -1, 67, 68, 69, -1, -1, 72
+ -1, -1, -1, -1, -1, -1, 56, 57, 58, 59,
+ 60, 61, 62, -1, -1, -1, -1, 67, 68, 69,
+ -1, -1, 72
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const unsigned char yystos[] =
{
- 0, 86, 89, 0, 92, 13, 14, 15, 17, 18,
- 44, 93, 98, 106, 107, 108, 110, 111, 120, 121,
- 114, 112, 4, 112, 112, 1, 3, 4, 5, 6,
- 7, 8, 10, 11, 12, 16, 19, 20, 21, 22,
- 26, 27, 29, 30, 31, 32, 33, 38, 39, 40,
- 41, 42, 43, 46, 51, 63, 64, 65, 70, 71,
- 74, 75, 77, 79, 80, 81, 82, 83, 84, 87,
- 94, 96, 123, 124, 125, 128, 129, 130, 131, 132,
- 133, 134, 139, 140, 141, 142, 143, 144, 4, 109,
- 4, 115, 77, 122, 115, 88, 4, 9, 87, 140,
- 145, 145, 74, 133, 113, 113, 74, 74, 74, 74,
- 43, 74, 140, 133, 74, 74, 74, 87, 133, 4,
- 124, 136, 140, 145, 145, 4, 87, 133, 140, 77,
- 123, 4, 133, 74, 135, 140, 141, 142, 145, 124,
- 133, 133, 133, 133, 133, 73, 123, 78, 123, 133,
- 133, 145, 145, 145, 145, 25, 97, 77, 19, 20,
- 21, 22, 26, 48, 49, 50, 52, 3, 74, 75,
- 28, 34, 35, 36, 37, 53, 54, 56, 57, 58,
- 59, 60, 61, 62, 67, 68, 69, 72, 74, 3,
- 75, 3, 75, 3, 87, 7, 116, 4, 116, 92,
- 136, 74, 133, 87, 116, 88, 88, 88, 88, 88,
- 88, 74, 73, 73, 123, 123, 137, 145, 124, 74,
- 74, 76, 77, 136, 73, 123, 45, 118, 75, 73,
- 78, 87, 123, 101, 123, 123, 123, 123, 123, 123,
- 123, 133, 123, 73, 123, 123, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 3, 5, 74, 75, 127, 140, 73, 123, 123,
- 123, 123, 123, 123, 45, 117, 4, 117, 76, 137,
- 52, 73, 126, 117, 100, 104, 123, 101, 105, 102,
- 123, 105, 138, 140, 94, 99, 102, 103, 123, 88,
- 73, 52, 73, 123, 73, 123, 73, 123, 76, 73,
- 7, 123, 75, 77, 73, 78, 55, 123, 73, 123,
- 123, 74, 73, 77, 78, 77, 78, 77, 7, 77,
- 87, 119, 136, 119, 73, 133, 136, 87, 73, 73,
- 73, 73, 74, 73, 77, 102, 73, 73, 73, 78,
- 123, 76, 133, 77, 73, 78, 137, 76, 76, 76,
- 77, 73, 3, 90, 90, 90, 90, 102, 90, 104,
- 73, 78, 76, 73, 91, 97, 97, 23, 24, 95,
- 95, 73, 97, 77, 90, 92, 90, 74, 90, 103,
- 97, 76, 102, 97, 73, 73, 90, 90, 95
+ 0, 86, 89, 0, 93, 14, 15, 17, 18, 44,
+ 92, 108, 109, 111, 112, 121, 122, 115, 113, 4,
+ 113, 113, 13, 94, 99, 107, 4, 110, 4, 116,
+ 77, 123, 116, 1, 3, 4, 5, 6, 7, 8,
+ 10, 11, 12, 16, 19, 20, 21, 22, 26, 27,
+ 29, 30, 31, 32, 33, 38, 39, 40, 41, 42,
+ 43, 46, 51, 63, 64, 65, 70, 71, 74, 75,
+ 77, 79, 80, 81, 82, 83, 84, 87, 95, 97,
+ 124, 125, 126, 129, 130, 131, 132, 133, 134, 135,
+ 140, 141, 142, 143, 144, 145, 87, 7, 117, 4,
+ 117, 88, 4, 9, 87, 141, 146, 146, 74, 134,
+ 114, 114, 74, 74, 74, 74, 43, 74, 141, 134,
+ 74, 74, 74, 87, 134, 4, 125, 137, 141, 146,
+ 146, 4, 87, 134, 141, 77, 124, 4, 134, 74,
+ 136, 141, 142, 143, 146, 125, 134, 134, 134, 134,
+ 134, 73, 124, 78, 124, 134, 134, 146, 146, 146,
+ 146, 25, 98, 77, 19, 20, 21, 22, 26, 48,
+ 49, 50, 52, 3, 74, 75, 28, 34, 35, 36,
+ 37, 53, 54, 56, 57, 58, 59, 60, 61, 62,
+ 67, 68, 69, 72, 74, 3, 75, 3, 75, 3,
+ 45, 118, 4, 118, 93, 137, 74, 134, 87, 117,
+ 88, 88, 88, 88, 88, 88, 74, 73, 73, 124,
+ 124, 138, 146, 125, 74, 74, 76, 77, 137, 73,
+ 124, 45, 119, 75, 73, 78, 87, 124, 102, 124,
+ 124, 124, 124, 124, 124, 124, 134, 124, 73, 124,
+ 124, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 3, 5, 74, 75,
+ 128, 141, 73, 124, 124, 124, 124, 124, 124, 7,
+ 77, 87, 120, 137, 120, 76, 138, 52, 73, 127,
+ 118, 101, 105, 124, 102, 106, 103, 124, 106, 139,
+ 141, 95, 100, 103, 104, 124, 88, 73, 52, 73,
+ 124, 73, 124, 73, 124, 76, 73, 7, 124, 75,
+ 77, 73, 78, 55, 124, 73, 124, 124, 74, 73,
+ 77, 78, 77, 78, 77, 77, 73, 134, 137, 87,
+ 73, 73, 73, 73, 74, 73, 77, 103, 73, 73,
+ 73, 78, 124, 76, 134, 77, 73, 78, 138, 76,
+ 76, 76, 73, 3, 90, 90, 90, 90, 103, 90,
+ 105, 73, 78, 76, 73, 91, 98, 98, 23, 24,
+ 96, 96, 73, 98, 77, 90, 93, 90, 74, 90,
+ 104, 98, 76, 103, 98, 73, 73, 90, 90, 96
};
diff --git a/perly.y b/perly.y
index d87c873363..f4a83442ef 100644
--- a/perly.y
+++ b/perly.y
@@ -40,7 +40,7 @@
%token COLONATTR
%type <ival> prog decl format startsub startanonsub startformsub
-%type <ival> progstart remember mremember '&'
+%type <ival> progstart remember mremember '&' savescope
%type <opval> block mblock lineseq line loop cond else
%type <opval> expr term subscripted scalar ary hsh arylen star amper sideff
%type <opval> argexpr nexpr texpr iexpr mexpr mnexpr mtexpr miexpr
@@ -116,16 +116,20 @@ mremember: /* NULL */ /* start a partial lexical scope */
{ $$ = block_start(FALSE); }
;
+savescope: /* NULL */ /* remember stack pos in case of error */
+ { $$ = PL_savestack_ix; }
+
/* A collection of "lines" in the program */
lineseq : /* NULL */
{ $$ = Nullop; }
| lineseq decl
{ $$ = $1; }
- | lineseq line
- { $$ = append_list(OP_LINESEQ,
- (LISTOP*)$1, (LISTOP*)$2);
+ | lineseq savescope line
+ { LEAVE_SCOPE($2);
+ $$ = append_list(OP_LINESEQ,
+ (LISTOP*)$1, (LISTOP*)$3);
PL_pad_reset_pending = TRUE;
- if ($1 && $2) PL_hints |= HINT_BLOCK_SCOPE; }
+ if ($1 && $3) PL_hints |= HINT_BLOCK_SCOPE; }
;
/* A "line" in the program */
diff --git a/t/comp/parser.t b/t/comp/parser.t
index 730f187cec..e59fec6622 100644
--- a/t/comp/parser.t
+++ b/t/comp/parser.t
@@ -9,7 +9,7 @@ BEGIN {
}
require "./test.pl";
-plan( tests => 42 );
+plan( tests => 43 );
eval '%@x=0;';
like( $@, qr/^Can't modify hash dereference in repeat \(x\)/, '%@x=0' );
@@ -141,3 +141,9 @@ EOF
eval q{ *foo{CODE} ? 1 : 0 };
is( $@, '', "glob subscript in conditional" );
}
+
+# Bug #25824
+{
+ eval q{ sub f { @a=@b=@c; {use} } };
+ like( $@, qr/syntax error/, "use without body" );
+}