summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MANIFEST2
-rw-r--r--ext/XS-APItest/APItest.pm2
-rw-r--r--ext/XS-APItest/APItest.xs38
-rw-r--r--ext/XS-APItest/t/stmtasexpr.t51
-rw-r--r--ext/XS-APItest/t/stmtsasexpr.t62
-rw-r--r--perly.act803
-rw-r--r--perly.tab1261
-rw-r--r--perly.y8
8 files changed, 1192 insertions, 1035 deletions
diff --git a/MANIFEST b/MANIFEST
index 237cb5ac69..0bda0deaa2 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3415,6 +3415,8 @@ ext/XS-APItest/t/rmagical.t XS::APItest extension
ext/XS-APItest/t/rv2cv_op_cv.t test rv2cv_op_cv() API
ext/XS-APItest/t/savehints.t test SAVEHINTS() API
ext/XS-APItest/t/scopelessblock.t test recursive descent statement-sequence parsing
+ext/XS-APItest/t/stmtasexpr.t test recursive descent statement parsing
+ext/XS-APItest/t/stmtsasexpr.t test recursive descent statement-sequence parsing
ext/XS-APItest/t/stuff_modify_bug.t test for eval side-effecting source string
ext/XS-APItest/t/stuff_svcur_bug.t test for a bug in lex_stuff_pvn
ext/XS-APItest/t/svpeek.t XS::APItest extension
diff --git a/ext/XS-APItest/APItest.pm b/ext/XS-APItest/APItest.pm
index d4365cf827..21807a7ced 100644
--- a/ext/XS-APItest/APItest.pm
+++ b/ext/XS-APItest/APItest.pm
@@ -36,7 +36,7 @@ sub import {
}
}
foreach (keys %{$exports||{}}) {
- next unless /\A(?:rpn|calcrpn|stufftest|swaptwostmts|looprest|scopelessblock)\z/;
+ next unless /\A(?:rpn|calcrpn|stufftest|swaptwostmts|looprest|scopelessblock|stmtasexpr|stmtsasexpr)\z/;
$^H{"XS::APItest/$_"} = 1;
delete $exports->{$_};
}
diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs
index f93f20a539..4aad258b95 100644
--- a/ext/XS-APItest/APItest.xs
+++ b/ext/XS-APItest/APItest.xs
@@ -519,6 +519,7 @@ test_op_linklist_describe(OP *start)
static SV *hintkey_rpn_sv, *hintkey_calcrpn_sv, *hintkey_stufftest_sv;
static SV *hintkey_swaptwostmts_sv, *hintkey_looprest_sv;
static SV *hintkey_scopelessblock_sv;
+static SV *hintkey_stmtasexpr_sv, *hintkey_stmtsasexpr_sv;
static int (*next_keyword_plugin)(pTHX_ char *, STRLEN, OP **);
/* low-level parser helpers */
@@ -715,6 +716,33 @@ static OP *THX_parse_keyword_scopelessblock(pTHX)
return body;
}
+#define parse_keyword_stmtasexpr() THX_parse_keyword_stmtasexpr(aTHX)
+static OP *THX_parse_keyword_stmtasexpr(pTHX)
+{
+ OP *o = parse_fullstmt(0);
+ o = op_prepend_elem(OP_LINESEQ, newOP(OP_ENTER, 0), o);
+ o->op_type = OP_LEAVE;
+ o->op_ppaddr = PL_ppaddr[OP_LEAVE];
+ return o;
+}
+
+#define parse_keyword_stmtsasexpr() THX_parse_keyword_stmtsasexpr(aTHX)
+static OP *THX_parse_keyword_stmtsasexpr(pTHX)
+{
+ OP *o;
+ lex_read_space(0);
+ if(lex_peek_unichar(0) != '{'/*}*/) croak("syntax error");
+ lex_read_unichar(0);
+ o = parse_stmtseq(0);
+ lex_read_space(0);
+ if(lex_peek_unichar(0) != /*{*/'}') croak("syntax error");
+ lex_read_unichar(0);
+ o = op_prepend_elem(OP_LINESEQ, newOP(OP_ENTER, 0), o);
+ o->op_type = OP_LEAVE;
+ o->op_ppaddr = PL_ppaddr[OP_LEAVE];
+ return o;
+}
+
/* plugin glue */
#define keyword_active(hintkey_sv) THX_keyword_active(aTHX_ hintkey_sv)
@@ -755,6 +783,14 @@ static int my_keyword_plugin(pTHX_
keyword_active(hintkey_scopelessblock_sv)) {
*op_ptr = parse_keyword_scopelessblock();
return KEYWORD_PLUGIN_STMT;
+ } else if(keyword_len == 10 && strnEQ(keyword_ptr, "stmtasexpr", 10) &&
+ keyword_active(hintkey_stmtasexpr_sv)) {
+ *op_ptr = parse_keyword_stmtasexpr();
+ return KEYWORD_PLUGIN_EXPR;
+ } else if(keyword_len == 11 && strnEQ(keyword_ptr, "stmtsasexpr", 11) &&
+ keyword_active(hintkey_stmtsasexpr_sv)) {
+ *op_ptr = parse_keyword_stmtsasexpr();
+ return KEYWORD_PLUGIN_EXPR;
} else {
return next_keyword_plugin(aTHX_ keyword_ptr, keyword_len, op_ptr);
}
@@ -2163,6 +2199,8 @@ BOOT:
hintkey_swaptwostmts_sv = newSVpvs_share("XS::APItest/swaptwostmts");
hintkey_looprest_sv = newSVpvs_share("XS::APItest/looprest");
hintkey_scopelessblock_sv = newSVpvs_share("XS::APItest/scopelessblock");
+ hintkey_stmtasexpr_sv = newSVpvs_share("XS::APItest/stmtasexpr");
+ hintkey_stmtsasexpr_sv = newSVpvs_share("XS::APItest/stmtsasexpr");
next_keyword_plugin = PL_keyword_plugin;
PL_keyword_plugin = my_keyword_plugin;
}
diff --git a/ext/XS-APItest/t/stmtasexpr.t b/ext/XS-APItest/t/stmtasexpr.t
new file mode 100644
index 0000000000..44aae8a271
--- /dev/null
+++ b/ext/XS-APItest/t/stmtasexpr.t
@@ -0,0 +1,51 @@
+use warnings;
+use strict;
+
+use Test::More tests => 8;
+
+BEGIN { $^H |= 0x20000; }
+
+my $t;
+
+$t = "";
+eval q{
+ use XS::APItest qw(stmtasexpr);
+ $t .= "a";
+ $t .= "b" . stmtasexpr "c"; . "d";
+ $t .= "e";
+};
+is $@, "";
+is $t, "abcde";
+
+$t = "";
+eval q{
+ use XS::APItest qw(stmtasexpr);
+ $t .= "a";
+ $t .= "b" . stmtasexpr if($t eq "a") { "c"; } else { "d"; } . "e";
+ $t .= "f";
+};
+is $@, "";
+is $t, "abcef";
+
+$t = "";
+eval q{
+ use XS::APItest qw(stmtasexpr);
+ $t .= "a";
+ $t .= "b" . stmtasexpr if($t eq "z") { "c"; } else { "d"; } . "e";
+ $t .= "f";
+};
+is $@, "";
+is $t, "abdef";
+
+$t = "";
+eval q{
+ use XS::APItest qw(stmtasexpr);
+ no warnings "void";
+ $t .= "a";
+ $t .= "b" . stmtasexpr { "z"; "c"; } . "d";
+ $t .= "e";
+};
+is $@, "";
+is $t, "abcde";
+
+1;
diff --git a/ext/XS-APItest/t/stmtsasexpr.t b/ext/XS-APItest/t/stmtsasexpr.t
new file mode 100644
index 0000000000..5e3391cdee
--- /dev/null
+++ b/ext/XS-APItest/t/stmtsasexpr.t
@@ -0,0 +1,62 @@
+use warnings;
+use strict;
+
+use Test::More tests => 10;
+
+BEGIN { $^H |= 0x20000; }
+
+my $t;
+
+$t = "";
+eval q{
+ use XS::APItest qw(stmtsasexpr);
+ $t .= "a";
+ $t .= "b" . stmtsasexpr { "c"; } . "d";
+ $t .= "e";
+};
+is $@, "";
+is $t, "abcde";
+
+$t = "";
+eval q{
+ use XS::APItest qw(stmtsasexpr);
+ no warnings "void";
+ $t .= "a";
+ $t .= "b" . stmtsasexpr { "z"; "c"; } . "d";
+ $t .= "e";
+};
+is $@, "";
+is $t, "abcde";
+
+$t = "";
+eval q{
+ use XS::APItest qw(stmtsasexpr);
+ $t .= "a";
+ $t .= "b" . stmtsasexpr { if($t eq "a") { "c"; } else { "d"; } } . "e";
+ $t .= "f";
+};
+is $@, "";
+is $t, "abcef";
+
+$t = "";
+eval q{
+ use XS::APItest qw(stmtsasexpr);
+ $t .= "a";
+ $t .= "b" . stmtsasexpr { if($t eq "z") { "c"; } else { "d"; } } . "e";
+ $t .= "f";
+};
+is $@, "";
+is $t, "abdef";
+
+$t = "";
+eval q{
+ use XS::APItest qw(stmtsasexpr);
+ no warnings "void";
+ $t .= "a";
+ $t .= "b" . stmtsasexpr { { "z"; "c"; } } . "d";
+ $t .= "e";
+};
+is $@, "";
+is $t, "abcde";
+
+1;
diff --git a/perly.act b/perly.act
index 2fcd60a02c..edc14b27ee 100644
--- a/perly.act
+++ b/perly.act
@@ -6,35 +6,42 @@ case 2:
case 3:
#line 147 "perly.y"
{
- PL_eval_root = (ps[(2) - (2)].val.opval);
+ parser->expect = XSTATE;
+ ;}
+ break;
+
+ case 4:
+#line 151 "perly.y"
+ {
+ PL_eval_root = (ps[(3) - (3)].val.opval);
(yyval.ival) = 0;
yyunlex();
parser->yychar = YYEOF;
;}
break;
- case 4:
-#line 154 "perly.y"
+ case 5:
+#line 158 "perly.y"
{
parser->expect = XSTATE;
;}
break;
- case 5:
-#line 158 "perly.y"
+ case 6:
+#line 162 "perly.y"
{
PL_eval_root = (ps[(3) - (3)].val.opval);
(yyval.ival) = 0;
;}
break;
- case 6:
-#line 167 "perly.y"
+ case 7:
+#line 171 "perly.y"
{ (yyval.ival) = (ps[(1) - (2)].val.ival); newPROG(block_end((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval))); ;}
break;
- case 7:
-#line 172 "perly.y"
+ case 8:
+#line 176 "perly.y"
{ if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
(yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
@@ -43,25 +50,25 @@ case 2:
;}
break;
- case 8:
-#line 181 "perly.y"
- { (yyval.ival) = block_start(TRUE); ;}
- break;
-
case 9:
#line 185 "perly.y"
- { (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
+ { (yyval.ival) = block_start(TRUE); ;}
break;
case 10:
#line 189 "perly.y"
+ { (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
+ break;
+
+ case 11:
+#line 193 "perly.y"
{
PL_parser->expect = XSTATE; (yyval.ival) = block_start(TRUE);
;}
break;
- case 11:
-#line 196 "perly.y"
+ case 12:
+#line 200 "perly.y"
{ if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
(yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
@@ -70,25 +77,25 @@ case 2:
;}
break;
- case 12:
-#line 205 "perly.y"
+ case 13:
+#line 209 "perly.y"
{ (yyval.ival) = block_start(FALSE); ;}
break;
- case 13:
-#line 210 "perly.y"
+ case 14:
+#line 214 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 14:
-#line 212 "perly.y"
+ case 15:
+#line 216 "perly.y"
{
(yyval.opval) = IF_MAD(op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval)), (ps[(1) - (2)].val.opval));
;}
break;
- case 15:
-#line 216 "perly.y"
+ case 16:
+#line 220 "perly.y"
{ (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
PL_pad_reset_pending = TRUE;
if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
@@ -96,37 +103,37 @@ case 2:
;}
break;
- case 16:
-#line 225 "perly.y"
+ case 17:
+#line 229 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 17:
-#line 227 "perly.y"
+ case 18:
+#line 231 "perly.y"
{
PL_pad_reset_pending = TRUE;
(yyval.opval) = (ps[(1) - (1)].val.opval);
;}
break;
- case 18:
-#line 235 "perly.y"
+ case 19:
+#line 239 "perly.y"
{ (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
break;
- case 20:
-#line 239 "perly.y"
+ case 21:
+#line 243 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 21:
-#line 241 "perly.y"
+ case 22:
+#line 245 "perly.y"
{ (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
break;
- case 22:
-#line 243 "perly.y"
+ case 23:
+#line 247 "perly.y"
{
if (PVAL((ps[(1) - (2)].val.p_tkval))) {
(yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), newOP(OP_NULL, 0));
@@ -145,8 +152,8 @@ case 2:
;}
break;
- case 23:
-#line 260 "perly.y"
+ case 24:
+#line 264 "perly.y"
{
(yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)), (ps[(2) - (3)].val.opval));
PL_parser->expect = XSTATE;
@@ -164,84 +171,84 @@ case 2:
;}
break;
- case 24:
-#line 276 "perly.y"
+ case 25:
+#line 280 "perly.y"
{ (yyval.opval) = newSTATEOP(0, NULL,
newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
NOLINE, (OP*)NULL, (ps[(1) - (1)].val.opval),
(OP*)NULL, 0)); ;}
break;
- case 25:
-#line 281 "perly.y"
+ case 26:
+#line 285 "perly.y"
{ (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
break;
- case 26:
-#line 286 "perly.y"
+ case 27:
+#line 290 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 27:
-#line 288 "perly.y"
+ case 28:
+#line 292 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 28:
-#line 290 "perly.y"
+ case 29:
+#line 294 "perly.y"
{ (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
;}
break;
- case 29:
-#line 294 "perly.y"
+ case 30:
+#line 298 "perly.y"
{ (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
;}
break;
- case 30:
-#line 298 "perly.y"
+ case 31:
+#line 302 "perly.y"
{ (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
;}
break;
- case 31:
-#line 302 "perly.y"
+ case 32:
+#line 306 "perly.y"
{ (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
;}
break;
- case 32:
-#line 306 "perly.y"
+ case 33:
+#line 310 "perly.y"
{ (yyval.opval) = newFOROP(0, NULL, (line_t)IVAL((ps[(2) - (3)].val.i_tkval)),
(OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),((LISTOP*)(yyval.opval))->op_first->op_sibling,'w');
;}
break;
- case 33:
-#line 311 "perly.y"
+ case 34:
+#line 315 "perly.y"
{ (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
break;
- case 34:
-#line 316 "perly.y"
+ case 35:
+#line 320 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 35:
-#line 318 "perly.y"
+ case 36:
+#line 322 "perly.y"
{ ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = scope((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 36:
-#line 322 "perly.y"
+ case 37:
+#line 326 "perly.y"
{ PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
(yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
PL_hints |= HINT_BLOCK_SCOPE;
@@ -251,8 +258,8 @@ case 2:
;}
break;
- case 37:
-#line 333 "perly.y"
+ case 38:
+#line 337 "perly.y"
{ PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
(yyval.opval) = block_end((ps[(3) - (7)].val.ival),
newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
@@ -262,8 +269,8 @@ case 2:
;}
break;
- case 38:
-#line 341 "perly.y"
+ case 39:
+#line 345 "perly.y"
{ PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
(yyval.opval) = block_end((ps[(3) - (7)].val.ival),
newCONDOP(0, (ps[(4) - (7)].val.opval), scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
@@ -273,31 +280,31 @@ case 2:
;}
break;
- case 39:
-#line 352 "perly.y"
+ case 40:
+#line 356 "perly.y"
{ (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
newWHENOP((ps[(4) - (6)].val.opval), scope((ps[(6) - (6)].val.opval)))); ;}
break;
- case 40:
-#line 355 "perly.y"
+ case 41:
+#line 359 "perly.y"
{ (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
break;
- case 41:
-#line 360 "perly.y"
+ case 42:
+#line 364 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 42:
-#line 362 "perly.y"
+ case 43:
+#line 366 "perly.y"
{ (yyval.opval) = scope((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 43:
-#line 369 "perly.y"
+ case 44:
+#line 373 "perly.y"
{ OP *innerop;
PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
(yyval.opval) = block_end((ps[(4) - (9)].val.ival),
@@ -311,8 +318,8 @@ case 2:
;}
break;
- case 44:
-#line 382 "perly.y"
+ case 45:
+#line 386 "perly.y"
{ OP *innerop;
PL_parser->copline = (line_t)IVAL((ps[(2) - (9)].val.i_tkval));
(yyval.opval) = block_end((ps[(4) - (9)].val.ival),
@@ -326,8 +333,8 @@ case 2:
;}
break;
- case 45:
-#line 394 "perly.y"
+ case 46:
+#line 398 "perly.y"
{ OP *innerop;
(yyval.opval) = block_end((ps[(4) - (10)].val.ival),
innerop = newFOROP(0, PVAL((ps[(1) - (10)].val.p_tkval)), (line_t)IVAL((ps[(2) - (10)].val.i_tkval)),
@@ -340,8 +347,8 @@ case 2:
;}
break;
- case 46:
-#line 405 "perly.y"
+ case 47:
+#line 409 "perly.y"
{ OP *innerop;
(yyval.opval) = block_end((ps[(5) - (9)].val.ival),
innerop = newFOROP(0, PVAL((ps[(1) - (9)].val.p_tkval)), (line_t)IVAL((ps[(2) - (9)].val.i_tkval)),
@@ -353,8 +360,8 @@ case 2:
;}
break;
- case 47:
-#line 415 "perly.y"
+ case 48:
+#line 419 "perly.y"
{ OP *innerop;
(yyval.opval) = block_end((ps[(4) - (8)].val.ival),
innerop = newFOROP(0, PVAL((ps[(1) - (8)].val.p_tkval)), (line_t)IVAL((ps[(2) - (8)].val.i_tkval)),
@@ -366,8 +373,8 @@ case 2:
;}
break;
- case 48:
-#line 427 "perly.y"
+ case 49:
+#line 431 "perly.y"
{ OP *forop;
PL_parser->copline = (line_t)IVAL((ps[(2) - (12)].val.i_tkval));
forop = newSTATEOP(0, PVAL((ps[(1) - (12)].val.p_tkval)),
@@ -399,16 +406,16 @@ case 2:
(yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
break;
- case 49:
-#line 457 "perly.y"
+ case 50:
+#line 461 "perly.y"
{ (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)),
newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
NOLINE, (OP*)NULL, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval), 0));
TOKEN_GETMAD((ps[(1) - (3)].val.p_tkval),((LISTOP*)(yyval.opval))->op_first,'L'); ;}
break;
- case 50:
-#line 465 "perly.y"
+ case 51:
+#line 469 "perly.y"
{ PL_parser->copline = (line_t) IVAL((ps[(2) - (8)].val.i_tkval));
(yyval.opval) = block_end((ps[(4) - (8)].val.ival),
newSTATEOP(0, PVAL((ps[(1) - (8)].val.p_tkval)),
@@ -416,33 +423,28 @@ case 2:
(PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
break;
- case 51:
-#line 474 "perly.y"
+ case 52:
+#line 478 "perly.y"
{ (yyval.ival) = (PL_min_intro_pending &&
PL_max_intro_pending >= PL_min_intro_pending);
intro_my(); ;}
break;
- case 52:
-#line 480 "perly.y"
+ case 53:
+#line 484 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 54:
-#line 486 "perly.y"
+ case 55:
+#line 490 "perly.y"
{ YYSTYPE tmplval;
(void)scan_num("1", &tmplval);
(yyval.opval) = tmplval.opval; ;}
break;
- case 56:
-#line 494 "perly.y"
- { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
- break;
-
case 57:
-#line 499 "perly.y"
- { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
+#line 498 "perly.y"
+ { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
break;
case 58:
@@ -456,7 +458,12 @@ case 2:
break;
case 60:
-#line 512 "perly.y"
+#line 511 "perly.y"
+ { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
+ break;
+
+ case 61:
+#line 516 "perly.y"
{
#ifdef MAD
YYSTYPE tmplval;
@@ -468,45 +475,45 @@ case 2:
;}
break;
- case 62:
-#line 526 "perly.y"
- { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
- break;
-
case 63:
-#line 528 "perly.y"
+#line 530 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 64:
-#line 530 "perly.y"
+#line 532 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 65:
-#line 532 "perly.y"
+#line 534 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 66:
-#line 534 "perly.y"
+#line 536 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 67:
-#line 539 "perly.y"
+#line 538 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 68:
#line 543 "perly.y"
+ { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+ break;
+
+ case 69:
+#line 547 "perly.y"
{ (yyval.opval) = newOP(OP_NULL,0);
TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
;}
break;
- case 69:
-#line 549 "perly.y"
+ case 70:
+#line 553 "perly.y"
{
CV *fmtcv = PL_compcv;
SvREFCNT_inc_simple_void(PL_compcv);
@@ -526,18 +533,18 @@ case 2:
;}
break;
- case 70:
-#line 568 "perly.y"
+ case 71:
+#line 572 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 71:
-#line 569 "perly.y"
+ case 72:
+#line 573 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 72:
-#line 574 "perly.y"
+ case 73:
+#line 578 "perly.y"
{ SvREFCNT_inc_simple_void(PL_compcv);
#ifdef MAD
(yyval.opval) = newMYSUB((ps[(2) - (6)].val.ival), (ps[(3) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), (ps[(6) - (6)].val.opval));
@@ -549,8 +556,8 @@ case 2:
;}
break;
- case 73:
-#line 587 "perly.y"
+ case 74:
+#line 591 "perly.y"
{ SvREFCNT_inc_simple_void(PL_compcv);
#ifdef MAD
{
@@ -572,26 +579,26 @@ case 2:
;}
break;
- case 74:
-#line 609 "perly.y"
+ case 75:
+#line 613 "perly.y"
{ (yyval.ival) = start_subparse(FALSE, 0);
SAVEFREESV(PL_compcv); ;}
break;
- case 75:
-#line 615 "perly.y"
+ case 76:
+#line 619 "perly.y"
{ (yyval.ival) = start_subparse(FALSE, CVf_ANON);
SAVEFREESV(PL_compcv); ;}
break;
- case 76:
-#line 620 "perly.y"
+ case 77:
+#line 624 "perly.y"
{ (yyval.ival) = start_subparse(TRUE, 0);
SAVEFREESV(PL_compcv); ;}
break;
- case 77:
-#line 625 "perly.y"
+ case 78:
+#line 629 "perly.y"
{ const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
if (strEQ(name, "BEGIN") || strEQ(name, "END")
|| strEQ(name, "INIT") || strEQ(name, "CHECK")
@@ -600,25 +607,25 @@ case 2:
(yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 78:
-#line 635 "perly.y"
+ case 79:
+#line 639 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 80:
-#line 641 "perly.y"
+ case 81:
+#line 645 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 81:
-#line 643 "perly.y"
+ case 82:
+#line 647 "perly.y"
{ (yyval.opval) = (ps[(2) - (2)].val.opval);
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
;}
break;
- case 82:
-#line 647 "perly.y"
+ case 83:
+#line 651 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL, 0),
(OP*)NULL
@@ -627,15 +634,15 @@ case 2:
;}
break;
- case 83:
-#line 657 "perly.y"
+ case 84:
+#line 661 "perly.y"
{ (yyval.opval) = (ps[(2) - (2)].val.opval);
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
;}
break;
- case 84:
-#line 661 "perly.y"
+ case 85:
+#line 665 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL, 0),
(OP*)NULL
@@ -644,13 +651,13 @@ case 2:
;}
break;
- case 85:
-#line 670 "perly.y"
+ case 86:
+#line 674 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 86:
-#line 671 "perly.y"
+ case 87:
+#line 675 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL,0),
(OP*)NULL
@@ -660,8 +667,8 @@ case 2:
;}
break;
- case 87:
-#line 681 "perly.y"
+ case 88:
+#line 685 "perly.y"
{
#ifdef MAD
(yyval.opval) = package((ps[(3) - (4)].val.opval));
@@ -678,8 +685,8 @@ case 2:
;}
break;
- case 88:
-#line 698 "perly.y"
+ case 89:
+#line 702 "perly.y"
{
int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
(ps[(3) - (5)].val.opval)->op_latefree = 1;
@@ -694,8 +701,8 @@ case 2:
;}
break;
- case 89:
-#line 711 "perly.y"
+ case 90:
+#line 715 "perly.y"
{ if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
(yyval.opval) = block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval));
@@ -707,13 +714,13 @@ case 2:
;}
break;
- case 90:
-#line 723 "perly.y"
+ case 91:
+#line 727 "perly.y"
{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
break;
- case 91:
-#line 725 "perly.y"
+ case 92:
+#line 729 "perly.y"
{ SvREFCNT_inc_simple_void(PL_compcv);
#ifdef MAD
(yyval.opval) = utilize(IVAL((ps[(1) - (7)].val.i_tkval)), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
@@ -729,29 +736,29 @@ case 2:
;}
break;
- case 92:
-#line 742 "perly.y"
+ case 93:
+#line 746 "perly.y"
{ (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 93:
-#line 746 "perly.y"
+ case 94:
+#line 750 "perly.y"
{ (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 94:
-#line 750 "perly.y"
+ case 95:
+#line 754 "perly.y"
{ (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 96:
-#line 758 "perly.y"
+ case 97:
+#line 762 "perly.y"
{
#ifdef MAD
OP* op = newNULLLIST();
@@ -763,8 +770,8 @@ case 2:
;}
break;
- case 97:
-#line 768 "perly.y"
+ case 98:
+#line 772 "perly.y"
{
OP* term = (ps[(3) - (3)].val.opval);
DO_MAD(
@@ -775,16 +782,16 @@ case 2:
;}
break;
- case 99:
-#line 781 "perly.y"
+ case 100:
+#line 785 "perly.y"
{ (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 100:
-#line 786 "perly.y"
+ case 101:
+#line 790 "perly.y"
{ (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
@@ -793,8 +800,8 @@ case 2:
;}
break;
- case 101:
-#line 793 "perly.y"
+ case 102:
+#line 797 "perly.y"
{ (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST,
op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
@@ -805,8 +812,8 @@ case 2:
;}
break;
- case 102:
-#line 802 "perly.y"
+ case 103:
+#line 806 "perly.y"
{ (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
@@ -814,8 +821,8 @@ case 2:
;}
break;
- case 103:
-#line 808 "perly.y"
+ case 104:
+#line 812 "perly.y"
{ (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST,
op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
@@ -823,8 +830,8 @@ case 2:
;}
break;
- case 104:
-#line 814 "perly.y"
+ case 105:
+#line 818 "perly.y"
{ (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST,
op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
@@ -834,15 +841,15 @@ case 2:
;}
break;
- case 105:
-#line 822 "perly.y"
+ case 106:
+#line 826 "perly.y"
{ (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 106:
-#line 826 "perly.y"
+ case 107:
+#line 830 "perly.y"
{ (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
@@ -850,22 +857,22 @@ case 2:
;}
break;
- case 107:
-#line 832 "perly.y"
+ case 108:
+#line 836 "perly.y"
{ SvREFCNT_inc_simple_void(PL_compcv);
(yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
break;
- case 108:
-#line 835 "perly.y"
+ case 109:
+#line 839 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST,
op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
;}
break;
- case 111:
-#line 850 "perly.y"
+ case 112:
+#line 854 "perly.y"
{ (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
PL_parser->expect = XOPERATOR;
TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
@@ -874,16 +881,16 @@ case 2:
;}
break;
- case 112:
-#line 857 "perly.y"
+ case 113:
+#line 861 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
;}
break;
- case 113:
-#line 862 "perly.y"
+ case 114:
+#line 866 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0,
ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
scalar((ps[(4) - (5)].val.opval)));
@@ -893,8 +900,8 @@ case 2:
;}
break;
- case 114:
-#line 870 "perly.y"
+ case 115:
+#line 874 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0,
ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
scalar((ps[(3) - (4)].val.opval)));
@@ -903,8 +910,8 @@ case 2:
;}
break;
- case 115:
-#line 877 "perly.y"
+ case 116:
+#line 881 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
PL_parser->expect = XOPERATOR;
TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
@@ -913,8 +920,8 @@ case 2:
;}
break;
- case 116:
-#line 884 "perly.y"
+ case 117:
+#line 888 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0,
ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
jmaybe((ps[(4) - (6)].val.opval)));
@@ -926,8 +933,8 @@ case 2:
;}
break;
- case 117:
-#line 894 "perly.y"
+ case 118:
+#line 898 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0,
ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
jmaybe((ps[(3) - (5)].val.opval)));
@@ -938,8 +945,8 @@ case 2:
;}
break;
- case 118:
-#line 903 "perly.y"
+ case 119:
+#line 907 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
@@ -948,8 +955,8 @@ case 2:
;}
break;
- case 119:
-#line 910 "perly.y"
+ case 120:
+#line 914 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
@@ -959,8 +966,8 @@ case 2:
;}
break;
- case 120:
-#line 919 "perly.y"
+ case 121:
+#line 923 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
@@ -969,8 +976,8 @@ case 2:
;}
break;
- case 121:
-#line 926 "perly.y"
+ case 122:
+#line 930 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
@@ -978,8 +985,8 @@ case 2:
;}
break;
- case 122:
-#line 932 "perly.y"
+ case 123:
+#line 936 "perly.y"
{ (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
@@ -988,16 +995,16 @@ case 2:
;}
break;
- case 123:
-#line 939 "perly.y"
+ case 124:
+#line 943 "perly.y"
{ (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
;}
break;
- case 124:
-#line 944 "perly.y"
+ case 125:
+#line 948 "perly.y"
{ (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
@@ -1006,32 +1013,25 @@ case 2:
;}
break;
- case 125:
-#line 954 "perly.y"
- { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
- TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
- ;}
- break;
-
case 126:
#line 958 "perly.y"
- { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
+ { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 127:
#line 962 "perly.y"
- { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
- scalar((ps[(1) - (3)].val.opval));
- (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
+ { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 128:
-#line 968 "perly.y"
- { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
+#line 966 "perly.y"
+ { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
+ scalar((ps[(1) - (3)].val.opval));
+ (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
@@ -1073,6 +1073,13 @@ case 2:
case 134:
#line 992 "perly.y"
+ { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
+ TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
+ ;}
+ break;
+
+ case 135:
+#line 996 "perly.y"
{
(yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
DO_MAD({
@@ -1086,29 +1093,29 @@ case 2:
;}
break;
- case 135:
-#line 1004 "perly.y"
+ case 136:
+#line 1008 "perly.y"
{ (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 136:
-#line 1008 "perly.y"
+ case 137:
+#line 1012 "perly.y"
{ (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 137:
-#line 1012 "perly.y"
+ case 138:
+#line 1016 "perly.y"
{ (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 138:
-#line 1016 "perly.y"
+ case 139:
+#line 1020 "perly.y"
{ (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
((yyval.opval)->op_type == OP_NOT
@@ -1117,15 +1124,15 @@ case 2:
;}
break;
- case 139:
-#line 1026 "perly.y"
+ case 140:
+#line 1030 "perly.y"
{ (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 140:
-#line 1030 "perly.y"
+ case 141:
+#line 1034 "perly.y"
{ (yyval.opval) = IF_MAD(
newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
(ps[(2) - (2)].val.opval)
@@ -1134,70 +1141,70 @@ case 2:
;}
break;
- case 141:
-#line 1037 "perly.y"
+ case 142:
+#line 1041 "perly.y"
{ (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 142:
-#line 1041 "perly.y"
+ case 143:
+#line 1045 "perly.y"
{ (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 143:
-#line 1045 "perly.y"
+ case 144:
+#line 1049 "perly.y"
{ (yyval.opval) = newUNOP(OP_POSTINC, 0,
mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 144:
-#line 1050 "perly.y"
+ case 145:
+#line 1054 "perly.y"
{ (yyval.opval) = newUNOP(OP_POSTDEC, 0,
mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 145:
-#line 1055 "perly.y"
+ case 146:
+#line 1059 "perly.y"
{ (yyval.opval) = newUNOP(OP_PREINC, 0,
mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 146:
-#line 1060 "perly.y"
+ case 147:
+#line 1064 "perly.y"
{ (yyval.opval) = newUNOP(OP_PREDEC, 0,
mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 147:
-#line 1069 "perly.y"
+ case 148:
+#line 1073 "perly.y"
{ (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
;}
break;
- case 148:
-#line 1074 "perly.y"
+ case 149:
+#line 1078 "perly.y"
{ (yyval.opval) = newANONLIST((OP*)NULL);
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
;}
break;
- case 149:
-#line 1079 "perly.y"
+ case 150:
+#line 1083 "perly.y"
{ (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
@@ -1205,8 +1212,8 @@ case 2:
;}
break;
- case 150:
-#line 1085 "perly.y"
+ case 151:
+#line 1089 "perly.y"
{ (yyval.opval) = newANONHASH((OP*)NULL);
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
@@ -1214,8 +1221,8 @@ case 2:
;}
break;
- case 151:
-#line 1091 "perly.y"
+ case 152:
+#line 1095 "perly.y"
{ SvREFCNT_inc_simple_void(PL_compcv);
(yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
@@ -1224,22 +1231,22 @@ case 2:
;}
break;
- case 152:
-#line 1102 "perly.y"
+ case 153:
+#line 1106 "perly.y"
{ (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 153:
-#line 1106 "perly.y"
+ case 154:
+#line 1110 "perly.y"
{ (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
;}
break;
- case 154:
-#line 1110 "perly.y"
+ case 155:
+#line 1114 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
op_prepend_elem(OP_LIST,
@@ -1253,8 +1260,8 @@ case 2:
;}
break;
- case 155:
-#line 1122 "perly.y"
+ case 156:
+#line 1126 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
op_append_elem(OP_LIST,
@@ -1269,8 +1276,8 @@ case 2:
;}
break;
- case 156:
-#line 1135 "perly.y"
+ case 157:
+#line 1139 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
op_prepend_elem(OP_LIST,
scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
@@ -1280,8 +1287,8 @@ case 2:
;}
break;
- case 157:
-#line 1143 "perly.y"
+ case 158:
+#line 1147 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
op_prepend_elem(OP_LIST,
(ps[(4) - (5)].val.opval),
@@ -1292,86 +1299,86 @@ case 2:
;}
break;
- case 162:
-#line 1159 "perly.y"
+ case 163:
+#line 1163 "perly.y"
{ (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
;}
break;
- case 163:
-#line 1164 "perly.y"
+ case 164:
+#line 1168 "perly.y"
{ (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 164:
-#line 1168 "perly.y"
+ case 165:
+#line 1172 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 165:
-#line 1170 "perly.y"
+ case 166:
+#line 1174 "perly.y"
{ (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
;}
break;
- case 166:
-#line 1174 "perly.y"
+ case 167:
+#line 1178 "perly.y"
{ (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
;}
break;
- case 167:
-#line 1179 "perly.y"
+ case 168:
+#line 1183 "perly.y"
{ (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
break;
- case 168:
-#line 1181 "perly.y"
+ case 169:
+#line 1185 "perly.y"
{ (yyval.opval) = sawparens(newNULLLIST());
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
;}
break;
- case 169:
-#line 1186 "perly.y"
- { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
- break;
-
case 170:
-#line 1188 "perly.y"
+#line 1190 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 171:
-#line 1190 "perly.y"
+#line 1192 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 172:
-#line 1192 "perly.y"
+#line 1194 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 173:
-#line 1194 "perly.y"
- { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
+#line 1196 "perly.y"
+ { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 174:
-#line 1196 "perly.y"
- { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 1198 "perly.y"
+ { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
break;
case 175:
-#line 1198 "perly.y"
+#line 1200 "perly.y"
+ { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+ break;
+
+ case 176:
+#line 1202 "perly.y"
{ (yyval.opval) = op_prepend_elem(OP_ASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_ASLICE, 0,
@@ -1382,8 +1389,8 @@ case 2:
;}
break;
- case 176:
-#line 1207 "perly.y"
+ case 177:
+#line 1211 "perly.y"
{ (yyval.opval) = op_prepend_elem(OP_HSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_HSLICE, 0,
@@ -1396,26 +1403,26 @@ case 2:
;}
break;
- case 177:
-#line 1218 "perly.y"
+ case 178:
+#line 1222 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 178:
-#line 1220 "perly.y"
+ case 179:
+#line 1224 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
break;
- case 179:
-#line 1222 "perly.y"
+ case 180:
+#line 1226 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
;}
break;
- case 180:
-#line 1227 "perly.y"
+ case 181:
+#line 1231 "perly.y"
{
(yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
@@ -1430,47 +1437,40 @@ case 2:
;}
break;
- case 181:
-#line 1240 "perly.y"
+ case 182:
+#line 1244 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 182:
-#line 1245 "perly.y"
+ case 183:
+#line 1249 "perly.y"
{ (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
PL_hints |= HINT_BLOCK_SCOPE;
TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 183:
-#line 1250 "perly.y"
- { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
- TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
- ;}
- break;
-
case 184:
#line 1254 "perly.y"
- { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
+ { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 185:
#line 1258 "perly.y"
- { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
- TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
+ { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
+ TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 186:
#line 1262 "perly.y"
- { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
- TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
+ { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
+ TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
;}
break;
@@ -1483,38 +1483,45 @@ case 2:
case 188:
#line 1270 "perly.y"
- { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
- TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
+ { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
+ TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 189:
#line 1274 "perly.y"
- { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
- TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
+ { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
+ TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
;}
break;
case 190:
#line 1278 "perly.y"
- { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
+ { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
+ TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
+ ;}
break;
case 191:
-#line 1280 "perly.y"
+#line 1282 "perly.y"
+ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
+ break;
+
+ case 192:
+#line 1284 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
break;
- case 192:
-#line 1283 "perly.y"
+ case 193:
+#line 1287 "perly.y"
{ (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 193:
-#line 1287 "perly.y"
+ case 194:
+#line 1291 "perly.y"
{ (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
@@ -1522,14 +1529,14 @@ case 2:
;}
break;
- case 194:
-#line 1293 "perly.y"
+ case 195:
+#line 1297 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
scalar((ps[(1) - (1)].val.opval))); ;}
break;
- case 195:
-#line 1296 "perly.y"
+ case 196:
+#line 1300 "perly.y"
{ (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
: newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
@@ -1540,8 +1547,8 @@ case 2:
;}
break;
- case 196:
-#line 1305 "perly.y"
+ case 197:
+#line 1309 "perly.y"
{ (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
@@ -1549,16 +1556,16 @@ case 2:
;}
break;
- case 197:
-#line 1311 "perly.y"
+ case 198:
+#line 1315 "perly.y"
{ (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
;}
break;
- case 200:
-#line 1318 "perly.y"
+ case 201:
+#line 1322 "perly.y"
{
(yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
@@ -1566,8 +1573,8 @@ case 2:
;}
break;
- case 202:
-#line 1328 "perly.y"
+ case 203:
+#line 1332 "perly.y"
{ (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
DO_MAD(
token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
@@ -1577,143 +1584,143 @@ case 2:
;}
break;
- case 203:
-#line 1336 "perly.y"
+ case 204:
+#line 1340 "perly.y"
{ (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
;}
break;
- case 204:
-#line 1343 "perly.y"
+ case 205:
+#line 1347 "perly.y"
{ (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
;}
break;
- case 205:
-#line 1348 "perly.y"
+ case 206:
+#line 1352 "perly.y"
{ (yyval.opval) = sawparens(newNULLLIST());
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
;}
break;
- case 206:
-#line 1353 "perly.y"
- { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
- break;
-
case 207:
-#line 1355 "perly.y"
+#line 1357 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 208:
-#line 1357 "perly.y"
+#line 1359 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 209:
-#line 1362 "perly.y"
- { (yyval.opval) = (OP*)NULL; ;}
+#line 1361 "perly.y"
+ { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 210:
-#line 1364 "perly.y"
- { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 1366 "perly.y"
+ { (yyval.opval) = (OP*)NULL; ;}
break;
case 211:
#line 1368 "perly.y"
- { (yyval.opval) = (OP*)NULL; ;}
+ { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 212:
-#line 1370 "perly.y"
- { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 1372 "perly.y"
+ { (yyval.opval) = (OP*)NULL; ;}
break;
case 213:
#line 1374 "perly.y"
- { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
+ { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
case 214:
-#line 1376 "perly.y"
- { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
+#line 1378 "perly.y"
+ { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
break;
case 215:
-#line 1378 "perly.y"
- { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
+#line 1380 "perly.y"
+ { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
break;
case 216:
-#line 1384 "perly.y"
- { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
+#line 1382 "perly.y"
+ { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
break;
case 217:
#line 1388 "perly.y"
+ { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
+ break;
+
+ case 218:
+#line 1392 "perly.y"
{ (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
;}
break;
- case 218:
-#line 1394 "perly.y"
+ case 219:
+#line 1398 "perly.y"
{ (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
;}
break;
- case 219:
-#line 1400 "perly.y"
+ case 220:
+#line 1404 "perly.y"
{ (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
;}
break;
- case 220:
-#line 1406 "perly.y"
+ case 221:
+#line 1410 "perly.y"
{ (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
;}
break;
- case 221:
-#line 1412 "perly.y"
+ case 222:
+#line 1416 "perly.y"
{ (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
;}
break;
- case 222:
-#line 1418 "perly.y"
+ case 223:
+#line 1422 "perly.y"
{ (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
;}
break;
- case 223:
-#line 1425 "perly.y"
+ case 224:
+#line 1429 "perly.y"
{ (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
break;
- case 224:
-#line 1427 "perly.y"
+ case 225:
+#line 1431 "perly.y"
{ (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
break;
- case 225:
-#line 1429 "perly.y"
+ case 226:
+#line 1433 "perly.y"
{ (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
break;
- case 226:
-#line 1432 "perly.y"
+ case 227:
+#line 1436 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
diff --git a/perly.tab b/perly.tab
index e0d74c62fd..834cc9bcf1 100644
--- a/perly.tab
+++ b/perly.tab
@@ -1,15 +1,15 @@
-#define YYFINAL 28
+#define YYFINAL 9
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2158
+#define YYLAST 2118
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 97
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 72
+#define YYNNTS 73
/* YYNRULES -- Number of rules. */
-#define YYNRULES 226
+#define YYNRULES 227
/* YYNRULES -- Number of states. */
-#define YYNSTATES 447
+#define YYNSTATES 448
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -62,140 +62,141 @@ static const yytype_uint8 yytranslate[] =
YYRHS. */
static const yytype_uint16 yyprhs[] =
{
- 0, 0, 3, 6, 9, 10, 14, 17, 22, 23,
- 24, 25, 30, 31, 32, 35, 38, 40, 42, 45,
- 47, 49, 52, 55, 59, 61, 64, 66, 68, 72,
- 76, 80, 84, 88, 92, 93, 96, 103, 111, 119,
- 126, 129, 130, 133, 143, 153, 164, 174, 183, 196,
- 200, 209, 210, 211, 213, 214, 216, 218, 220, 222,
- 224, 225, 227, 229, 231, 233, 235, 237, 239, 241,
- 246, 248, 249, 256, 263, 264, 265, 266, 268, 269,
- 271, 272, 275, 277, 280, 282, 284, 286, 291, 292,
- 301, 302, 310, 314, 318, 322, 324, 327, 331, 333,
- 337, 343, 350, 354, 358, 364, 367, 372, 373, 379,
- 381, 383, 389, 394, 400, 405, 411, 418, 424, 429,
- 435, 440, 444, 451, 456, 462, 466, 470, 474, 478,
- 482, 486, 490, 494, 498, 502, 506, 510, 514, 518,
- 521, 524, 527, 530, 533, 536, 539, 542, 546, 549,
- 554, 558, 564, 567, 570, 575, 581, 586, 592, 594,
- 596, 598, 600, 606, 609, 611, 614, 618, 620, 623,
- 625, 627, 629, 631, 633, 635, 640, 646, 648, 650,
- 654, 659, 663, 665, 668, 671, 673, 676, 679, 681,
- 684, 686, 689, 691, 695, 697, 701, 706, 711, 713,
- 715, 717, 719, 723, 726, 730, 733, 735, 737, 739,
- 740, 742, 743, 745, 747, 748, 752, 754, 757, 760,
- 763, 766, 769, 772, 774, 776, 778
+ 0, 0, 3, 6, 7, 11, 12, 16, 19, 24,
+ 25, 26, 27, 32, 33, 34, 37, 40, 42, 44,
+ 47, 49, 51, 54, 57, 61, 63, 66, 68, 70,
+ 74, 78, 82, 86, 90, 94, 95, 98, 105, 113,
+ 121, 128, 131, 132, 135, 145, 155, 166, 176, 185,
+ 198, 202, 211, 212, 213, 215, 216, 218, 220, 222,
+ 224, 226, 227, 229, 231, 233, 235, 237, 239, 241,
+ 243, 248, 250, 251, 258, 265, 266, 267, 268, 270,
+ 271, 273, 274, 277, 279, 282, 284, 286, 288, 293,
+ 294, 303, 304, 312, 316, 320, 324, 326, 329, 333,
+ 335, 339, 345, 352, 356, 360, 366, 369, 374, 375,
+ 381, 383, 385, 391, 396, 402, 407, 413, 420, 426,
+ 431, 437, 442, 446, 453, 458, 464, 468, 472, 476,
+ 480, 484, 488, 492, 496, 500, 504, 508, 512, 516,
+ 520, 523, 526, 529, 532, 535, 538, 541, 544, 548,
+ 551, 556, 560, 566, 569, 572, 577, 583, 588, 594,
+ 596, 598, 600, 602, 608, 611, 613, 616, 620, 622,
+ 625, 627, 629, 631, 633, 635, 637, 642, 648, 650,
+ 652, 656, 661, 665, 667, 670, 673, 675, 678, 681,
+ 683, 686, 688, 691, 693, 697, 699, 703, 708, 713,
+ 715, 717, 719, 721, 725, 728, 732, 735, 737, 739,
+ 741, 742, 744, 745, 747, 749, 750, 754, 756, 759,
+ 762, 765, 768, 771, 774, 776, 778, 780
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 98, 0, -1, 3, 100, -1, 4, 108, -1, -1,
- 5, 99, 107, -1, 104, 107, -1, 6, 102, 107,
- 7, -1, -1, -1, -1, 6, 106, 107, 7, -1,
- -1, -1, 107, 125, -1, 107, 109, -1, 125, -1,
- 109, -1, 124, 112, -1, 115, -1, 116, -1, 124,
- 113, -1, 124, 17, -1, 124, 110, 17, -1, 140,
- -1, 124, 29, -1, 1, -1, 144, -1, 144, 38,
- 144, -1, 144, 39, 144, -1, 144, 36, 144, -1,
- 144, 37, 120, -1, 144, 43, 144, -1, 144, 45,
- 144, -1, -1, 40, 105, -1, 41, 159, 121, 94,
- 105, 111, -1, 38, 159, 102, 121, 94, 105, 111,
- -1, 39, 159, 102, 123, 94, 105, 111, -1, 45,
- 159, 102, 121, 94, 105, -1, 46, 101, -1, -1,
- 42, 101, -1, 124, 36, 159, 102, 119, 94, 117,
- 105, 114, -1, 124, 37, 159, 102, 120, 94, 117,
- 105, 114, -1, 124, 43, 64, 102, 161, 159, 121,
- 94, 105, 114, -1, 124, 43, 163, 159, 102, 121,
- 94, 105, 114, -1, 124, 43, 159, 102, 121, 94,
- 105, 114, -1, 124, 43, 159, 102, 122, 17, 119,
- 17, 117, 122, 94, 105, -1, 124, 101, 114, -1,
- 124, 44, 159, 102, 103, 121, 94, 105, -1, -1,
- -1, 110, -1, -1, 144, -1, 144, -1, 144, -1,
- 118, -1, 120, -1, -1, 30, -1, 127, -1, 130,
- -1, 129, -1, 139, -1, 142, -1, 126, -1, 96,
- -1, 31, 133, 128, 101, -1, 18, -1, -1, 65,
- 131, 134, 135, 136, 138, -1, 32, 131, 134, 135,
- 136, 138, -1, -1, -1, -1, 18, -1, -1, 21,
- -1, -1, 67, 21, -1, 67, -1, 67, 21, -1,
- 67, -1, 101, -1, 17, -1, 34, 18, 18, 17,
- -1, -1, 34, 18, 18, 6, 102, 141, 107, 7,
- -1, -1, 35, 131, 143, 18, 18, 157, 17, -1,
- 144, 71, 144, -1, 144, 70, 144, -1, 144, 69,
- 144, -1, 145, -1, 145, 73, -1, 145, 73, 154,
- -1, 154, -1, 54, 168, 145, -1, 52, 95, 168,
- 144, 94, -1, 154, 93, 148, 159, 158, 94, -1,
- 154, 93, 148, -1, 19, 168, 157, -1, 20, 168,
- 95, 158, 94, -1, 54, 157, -1, 52, 95, 158,
- 94, -1, -1, 27, 132, 101, 147, 157, -1, 19,
- -1, 163, -1, 167, 6, 144, 17, 7, -1, 163,
- 8, 144, 9, -1, 154, 93, 8, 144, 9, -1,
- 149, 8, 144, 9, -1, 163, 6, 144, 17, 7,
- -1, 154, 93, 6, 144, 17, 7, -1, 149, 6,
- 144, 17, 7, -1, 154, 93, 95, 94, -1, 154,
- 93, 95, 144, 94, -1, 149, 159, 144, 94, -1,
- 149, 159, 94, -1, 95, 144, 94, 8, 144, 9,
- -1, 24, 8, 144, 9, -1, 95, 94, 8, 144,
- 9, -1, 154, 74, 154, -1, 154, 88, 154, -1,
- 154, 57, 154, -1, 154, 58, 154, -1, 154, 82,
- 154, -1, 154, 55, 154, -1, 154, 56, 154, -1,
- 154, 81, 154, -1, 154, 80, 154, -1, 154, 48,
- 154, -1, 154, 79, 154, -1, 154, 78, 154, -1,
- 154, 77, 154, -1, 154, 83, 154, -1, 10, 154,
- -1, 11, 154, -1, 84, 154, -1, 85, 154, -1,
- 154, 90, -1, 154, 89, -1, 92, 154, -1, 91,
- 154, -1, 8, 144, 9, -1, 8, 9, -1, 61,
- 144, 17, 7, -1, 61, 17, 7, -1, 33, 132,
- 135, 136, 101, -1, 60, 154, -1, 60, 101, -1,
- 60, 18, 159, 94, -1, 60, 18, 159, 144, 94,
- -1, 60, 163, 159, 94, -1, 60, 163, 159, 144,
- 94, -1, 150, -1, 151, -1, 152, -1, 153, -1,
- 154, 75, 154, 76, 154, -1, 86, 154, -1, 155,
- -1, 63, 154, -1, 95, 144, 94, -1, 24, -1,
- 95, 94, -1, 163, -1, 167, -1, 165, -1, 164,
- -1, 166, -1, 149, -1, 164, 8, 144, 9, -1,
- 164, 6, 144, 17, 7, -1, 21, -1, 162, -1,
- 162, 159, 94, -1, 162, 159, 144, 94, -1, 62,
- 18, 157, -1, 47, -1, 47, 154, -1, 72, 145,
- -1, 53, -1, 53, 101, -1, 53, 154, -1, 66,
- -1, 66, 154, -1, 26, -1, 26, 154, -1, 50,
- -1, 50, 95, 94, -1, 25, -1, 51, 95, 94,
- -1, 51, 95, 144, 94, -1, 22, 95, 145, 94,
- -1, 18, -1, 146, -1, 49, -1, 28, -1, 64,
- 156, 137, -1, 64, 156, -1, 95, 144, 94, -1,
- 95, 94, -1, 163, -1, 165, -1, 164, -1, -1,
- 145, -1, -1, 144, -1, 95, -1, -1, 24, 160,
- 95, -1, 163, -1, 16, 168, -1, 12, 168, -1,
- 13, 168, -1, 14, 168, -1, 59, 168, -1, 15,
- 168, -1, 18, -1, 163, -1, 101, -1, 23, -1
+ 98, 0, -1, 3, 101, -1, -1, 4, 99, 109,
+ -1, -1, 5, 100, 108, -1, 105, 108, -1, 6,
+ 103, 108, 7, -1, -1, -1, -1, 6, 107, 108,
+ 7, -1, -1, -1, 108, 126, -1, 108, 110, -1,
+ 126, -1, 110, -1, 125, 113, -1, 116, -1, 117,
+ -1, 125, 114, -1, 125, 17, -1, 125, 111, 17,
+ -1, 141, -1, 125, 29, -1, 1, -1, 145, -1,
+ 145, 38, 145, -1, 145, 39, 145, -1, 145, 36,
+ 145, -1, 145, 37, 121, -1, 145, 43, 145, -1,
+ 145, 45, 145, -1, -1, 40, 106, -1, 41, 160,
+ 122, 94, 106, 112, -1, 38, 160, 103, 122, 94,
+ 106, 112, -1, 39, 160, 103, 124, 94, 106, 112,
+ -1, 45, 160, 103, 122, 94, 106, -1, 46, 102,
+ -1, -1, 42, 102, -1, 125, 36, 160, 103, 120,
+ 94, 118, 106, 115, -1, 125, 37, 160, 103, 121,
+ 94, 118, 106, 115, -1, 125, 43, 64, 103, 162,
+ 160, 122, 94, 106, 115, -1, 125, 43, 164, 160,
+ 103, 122, 94, 106, 115, -1, 125, 43, 160, 103,
+ 122, 94, 106, 115, -1, 125, 43, 160, 103, 123,
+ 17, 120, 17, 118, 123, 94, 106, -1, 125, 102,
+ 115, -1, 125, 44, 160, 103, 104, 122, 94, 106,
+ -1, -1, -1, 111, -1, -1, 145, -1, 145, -1,
+ 145, -1, 119, -1, 121, -1, -1, 30, -1, 128,
+ -1, 131, -1, 130, -1, 140, -1, 143, -1, 127,
+ -1, 96, -1, 31, 134, 129, 102, -1, 18, -1,
+ -1, 65, 132, 135, 136, 137, 139, -1, 32, 132,
+ 135, 136, 137, 139, -1, -1, -1, -1, 18, -1,
+ -1, 21, -1, -1, 67, 21, -1, 67, -1, 67,
+ 21, -1, 67, -1, 102, -1, 17, -1, 34, 18,
+ 18, 17, -1, -1, 34, 18, 18, 6, 103, 142,
+ 108, 7, -1, -1, 35, 132, 144, 18, 18, 158,
+ 17, -1, 145, 71, 145, -1, 145, 70, 145, -1,
+ 145, 69, 145, -1, 146, -1, 146, 73, -1, 146,
+ 73, 155, -1, 155, -1, 54, 169, 146, -1, 52,
+ 95, 169, 145, 94, -1, 155, 93, 149, 160, 159,
+ 94, -1, 155, 93, 149, -1, 19, 169, 158, -1,
+ 20, 169, 95, 159, 94, -1, 54, 158, -1, 52,
+ 95, 159, 94, -1, -1, 27, 133, 102, 148, 158,
+ -1, 19, -1, 164, -1, 168, 6, 145, 17, 7,
+ -1, 164, 8, 145, 9, -1, 155, 93, 8, 145,
+ 9, -1, 150, 8, 145, 9, -1, 164, 6, 145,
+ 17, 7, -1, 155, 93, 6, 145, 17, 7, -1,
+ 150, 6, 145, 17, 7, -1, 155, 93, 95, 94,
+ -1, 155, 93, 95, 145, 94, -1, 150, 160, 145,
+ 94, -1, 150, 160, 94, -1, 95, 145, 94, 8,
+ 145, 9, -1, 24, 8, 145, 9, -1, 95, 94,
+ 8, 145, 9, -1, 155, 74, 155, -1, 155, 88,
+ 155, -1, 155, 57, 155, -1, 155, 58, 155, -1,
+ 155, 82, 155, -1, 155, 55, 155, -1, 155, 56,
+ 155, -1, 155, 81, 155, -1, 155, 80, 155, -1,
+ 155, 48, 155, -1, 155, 79, 155, -1, 155, 78,
+ 155, -1, 155, 77, 155, -1, 155, 83, 155, -1,
+ 10, 155, -1, 11, 155, -1, 84, 155, -1, 85,
+ 155, -1, 155, 90, -1, 155, 89, -1, 92, 155,
+ -1, 91, 155, -1, 8, 145, 9, -1, 8, 9,
+ -1, 61, 145, 17, 7, -1, 61, 17, 7, -1,
+ 33, 133, 136, 137, 102, -1, 60, 155, -1, 60,
+ 102, -1, 60, 18, 160, 94, -1, 60, 18, 160,
+ 145, 94, -1, 60, 164, 160, 94, -1, 60, 164,
+ 160, 145, 94, -1, 151, -1, 152, -1, 153, -1,
+ 154, -1, 155, 75, 155, 76, 155, -1, 86, 155,
+ -1, 156, -1, 63, 155, -1, 95, 145, 94, -1,
+ 24, -1, 95, 94, -1, 164, -1, 168, -1, 166,
+ -1, 165, -1, 167, -1, 150, -1, 165, 8, 145,
+ 9, -1, 165, 6, 145, 17, 7, -1, 21, -1,
+ 163, -1, 163, 160, 94, -1, 163, 160, 145, 94,
+ -1, 62, 18, 158, -1, 47, -1, 47, 155, -1,
+ 72, 146, -1, 53, -1, 53, 102, -1, 53, 155,
+ -1, 66, -1, 66, 155, -1, 26, -1, 26, 155,
+ -1, 50, -1, 50, 95, 94, -1, 25, -1, 51,
+ 95, 94, -1, 51, 95, 145, 94, -1, 22, 95,
+ 146, 94, -1, 18, -1, 147, -1, 49, -1, 28,
+ -1, 64, 157, 138, -1, 64, 157, -1, 95, 145,
+ 94, -1, 95, 94, -1, 164, -1, 166, -1, 165,
+ -1, -1, 146, -1, -1, 145, -1, 95, -1, -1,
+ 24, 161, 95, -1, 164, -1, 16, 169, -1, 12,
+ 169, -1, 13, 169, -1, 14, 169, -1, 59, 169,
+ -1, 15, 169, -1, 18, -1, 164, -1, 102, -1,
+ 23, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 144, 144, 146, 154, 153, 165, 171, 181, 185,
- 189, 195, 205, 210, 211, 215, 224, 226, 234, 237,
- 238, 240, 242, 259, 275, 280, 285, 287, 289, 293,
- 297, 301, 305, 310, 316, 317, 321, 332, 340, 351,
- 354, 360, 361, 368, 381, 393, 404, 414, 424, 456,
- 464, 474, 480, 481, 486, 489, 493, 498, 502, 506,
- 512, 521, 525, 527, 529, 531, 533, 538, 542, 548,
- 568, 569, 573, 586, 609, 615, 620, 625, 635, 636,
- 641, 642, 646, 656, 660, 670, 671, 680, 698, 697,
- 723, 722, 741, 745, 749, 753, 757, 767, 776, 780,
- 785, 792, 801, 807, 813, 821, 825, 832, 831, 842,
- 843, 847, 856, 861, 869, 876, 883, 893, 902, 909,
- 918, 925, 931, 938, 943, 953, 957, 961, 967, 971,
- 975, 979, 983, 987, 991, 1003, 1007, 1011, 1015, 1025,
- 1029, 1036, 1040, 1044, 1049, 1054, 1059, 1068, 1073, 1078,
- 1084, 1090, 1101, 1105, 1109, 1121, 1134, 1142, 1154, 1155,
- 1156, 1157, 1158, 1163, 1167, 1169, 1173, 1178, 1180, 1185,
- 1187, 1189, 1191, 1193, 1195, 1197, 1206, 1217, 1219, 1221,
- 1226, 1239, 1244, 1249, 1253, 1257, 1261, 1265, 1269, 1273,
- 1277, 1279, 1282, 1286, 1292, 1295, 1304, 1310, 1315, 1316,
- 1317, 1323, 1327, 1335, 1342, 1347, 1352, 1354, 1356, 1361,
- 1363, 1368, 1369, 1373, 1376, 1375, 1383, 1387, 1393, 1399,
- 1405, 1411, 1417, 1424, 1426, 1428, 1431
+ 0, 144, 144, 147, 146, 158, 157, 169, 175, 185,
+ 189, 193, 199, 209, 214, 215, 219, 228, 230, 238,
+ 241, 242, 244, 246, 263, 279, 284, 289, 291, 293,
+ 297, 301, 305, 309, 314, 320, 321, 325, 336, 344,
+ 355, 358, 364, 365, 372, 385, 397, 408, 418, 428,
+ 460, 468, 478, 484, 485, 490, 493, 497, 502, 506,
+ 510, 516, 525, 529, 531, 533, 535, 537, 542, 546,
+ 552, 572, 573, 577, 590, 613, 619, 624, 629, 639,
+ 640, 645, 646, 650, 660, 664, 674, 675, 684, 702,
+ 701, 727, 726, 745, 749, 753, 757, 761, 771, 780,
+ 784, 789, 796, 805, 811, 817, 825, 829, 836, 835,
+ 846, 847, 851, 860, 865, 873, 880, 887, 897, 906,
+ 913, 922, 929, 935, 942, 947, 957, 961, 965, 971,
+ 975, 979, 983, 987, 991, 995, 1007, 1011, 1015, 1019,
+ 1029, 1033, 1040, 1044, 1048, 1053, 1058, 1063, 1072, 1077,
+ 1082, 1088, 1094, 1105, 1109, 1113, 1125, 1138, 1146, 1158,
+ 1159, 1160, 1161, 1162, 1167, 1171, 1173, 1177, 1182, 1184,
+ 1189, 1191, 1193, 1195, 1197, 1199, 1201, 1210, 1221, 1223,
+ 1225, 1230, 1243, 1248, 1253, 1257, 1261, 1265, 1269, 1273,
+ 1277, 1281, 1283, 1286, 1290, 1296, 1299, 1308, 1314, 1319,
+ 1320, 1321, 1327, 1331, 1339, 1346, 1351, 1356, 1358, 1360,
+ 1365, 1367, 1372, 1373, 1377, 1380, 1379, 1387, 1391, 1397,
+ 1403, 1409, 1415, 1421, 1428, 1430, 1432, 1435
};
#endif
@@ -217,16 +218,16 @@ static const char *const yytname[] =
"','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND", "BITOROP",
"BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN", "UMINUS",
"POWOP", "POSTDEC", "POSTINC", "PREDEC", "PREINC", "ARROW", "')'", "'('",
- "PEG", "$accept", "grammar", "@1", "prog", "block", "remember",
+ "PEG", "$accept", "grammar", "@1", "@2", "prog", "block", "remember",
"mydefsv", "progstart", "mblock", "mremember", "lineseq", "fullstmt",
"line", "sideff", "else", "cond", "case", "cont", "loop", "switch",
"mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "miexpr",
"label", "decl", "peg", "format", "formname", "mysubrout", "subrout",
"startsub", "startanonsub", "startformsub", "subname", "proto",
- "subattrlist", "myattrlist", "subbody", "package", "package_block", "@2",
- "use", "@3", "expr", "argexpr", "listop", "@4", "method", "subscripted",
+ "subattrlist", "myattrlist", "subbody", "package", "package_block", "@3",
+ "use", "@4", "expr", "argexpr", "listop", "@5", "method", "subscripted",
"termbinop", "termunop", "anonymous", "termdo", "term", "myattrterm",
- "myterm", "listexpr", "listexprcom", "lpar_or_qw", "@5", "my_scalar",
+ "myterm", "listexpr", "listexprcom", "lpar_or_qw", "@6", "my_scalar",
"amper", "scalar", "ary", "hsh", "arylen", "star", "indirob", 0
};
#endif
@@ -252,57 +253,57 @@ static const yytype_uint16 yytoknum[] =
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 97, 98, 98, 99, 98, 100, 101, 102, 103,
- 104, 105, 106, 107, 107, 107, 108, 108, 109, 109,
- 109, 109, 109, 109, 109, 109, 110, 110, 110, 110,
- 110, 110, 110, 110, 111, 111, 111, 112, 112, 113,
- 113, 114, 114, 115, 115, 115, 115, 115, 115, 115,
- 116, 117, 118, 118, 119, 119, 120, 121, 122, 123,
- 124, 124, 125, 125, 125, 125, 125, 125, 126, 127,
- 128, 128, 129, 130, 131, 132, 133, 134, 135, 135,
- 136, 136, 136, 137, 137, 138, 138, 139, 141, 140,
- 143, 142, 144, 144, 144, 144, 145, 145, 145, 146,
- 146, 146, 146, 146, 146, 146, 146, 147, 146, 148,
- 148, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 150, 150, 150, 150, 150,
- 150, 150, 150, 150, 150, 150, 150, 150, 150, 151,
- 151, 151, 151, 151, 151, 151, 151, 152, 152, 152,
- 152, 152, 153, 153, 153, 153, 153, 153, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 155, 155, 156, 156, 156, 156, 156, 157,
- 157, 158, 158, 159, 160, 159, 161, 162, 163, 164,
- 165, 166, 167, 168, 168, 168, 168
+ 0, 97, 98, 99, 98, 100, 98, 101, 102, 103,
+ 104, 105, 106, 107, 108, 108, 108, 109, 109, 110,
+ 110, 110, 110, 110, 110, 110, 110, 111, 111, 111,
+ 111, 111, 111, 111, 111, 112, 112, 112, 113, 113,
+ 114, 114, 115, 115, 116, 116, 116, 116, 116, 116,
+ 116, 117, 118, 119, 119, 120, 120, 121, 122, 123,
+ 124, 125, 125, 126, 126, 126, 126, 126, 126, 127,
+ 128, 129, 129, 130, 131, 132, 133, 134, 135, 136,
+ 136, 137, 137, 137, 138, 138, 139, 139, 140, 142,
+ 141, 144, 143, 145, 145, 145, 145, 146, 146, 146,
+ 147, 147, 147, 147, 147, 147, 147, 147, 148, 147,
+ 149, 149, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 151, 151, 151, 151,
+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+ 152, 152, 152, 152, 152, 152, 152, 152, 153, 153,
+ 153, 153, 153, 154, 154, 154, 154, 154, 154, 155,
+ 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
+ 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
+ 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
+ 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
+ 155, 155, 155, 156, 156, 157, 157, 157, 157, 157,
+ 158, 158, 159, 159, 160, 161, 160, 162, 163, 164,
+ 165, 166, 167, 168, 169, 169, 169, 169
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
- 0, 2, 2, 2, 0, 3, 2, 4, 0, 0,
- 0, 4, 0, 0, 2, 2, 1, 1, 2, 1,
- 1, 2, 2, 3, 1, 2, 1, 1, 3, 3,
- 3, 3, 3, 3, 0, 2, 6, 7, 7, 6,
- 2, 0, 2, 9, 9, 10, 9, 8, 12, 3,
- 8, 0, 0, 1, 0, 1, 1, 1, 1, 1,
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 4,
- 1, 0, 6, 6, 0, 0, 0, 1, 0, 1,
- 0, 2, 1, 2, 1, 1, 1, 4, 0, 8,
- 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, 6, 4, 5, 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, 1, 2, 1,
- 1, 1, 1, 1, 1, 4, 5, 1, 1, 3,
- 4, 3, 1, 2, 2, 1, 2, 2, 1, 2,
- 1, 2, 1, 3, 1, 3, 4, 4, 1, 1,
- 1, 1, 3, 2, 3, 2, 1, 1, 1, 0,
- 1, 0, 1, 1, 0, 3, 1, 2, 2, 2,
- 2, 2, 2, 1, 1, 1, 1
+ 0, 2, 2, 0, 3, 0, 3, 2, 4, 0,
+ 0, 0, 4, 0, 0, 2, 2, 1, 1, 2,
+ 1, 1, 2, 2, 3, 1, 2, 1, 1, 3,
+ 3, 3, 3, 3, 3, 0, 2, 6, 7, 7,
+ 6, 2, 0, 2, 9, 9, 10, 9, 8, 12,
+ 3, 8, 0, 0, 1, 0, 1, 1, 1, 1,
+ 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 4, 1, 0, 6, 6, 0, 0, 0, 1, 0,
+ 1, 0, 2, 1, 2, 1, 1, 1, 4, 0,
+ 8, 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, 6, 4, 5, 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, 1, 2,
+ 1, 1, 1, 1, 1, 1, 4, 5, 1, 1,
+ 3, 4, 3, 1, 2, 2, 1, 2, 2, 1,
+ 2, 1, 2, 1, 3, 1, 3, 4, 4, 1,
+ 1, 1, 1, 3, 2, 3, 2, 1, 1, 1,
+ 0, 1, 0, 1, 1, 0, 3, 1, 2, 2,
+ 2, 2, 2, 2, 1, 1, 1, 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -310,461 +311,453 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 10, 60, 4, 0, 2, 13, 61, 76, 74,
- 0, 74, 74, 68, 3, 17, 19, 20, 0, 16,
- 67, 62, 64, 63, 65, 24, 66, 13, 1, 60,
- 71, 0, 0, 90, 0, 26, 8, 0, 0, 0,
- 0, 0, 0, 0, 0, 22, 198, 0, 0, 177,
- 0, 167, 194, 190, 75, 201, 25, 75, 0, 0,
- 0, 0, 0, 0, 0, 0, 182, 200, 192, 0,
- 0, 185, 209, 0, 0, 0, 0, 0, 0, 188,
- 0, 0, 0, 0, 0, 0, 0, 41, 0, 18,
- 21, 27, 95, 199, 174, 158, 159, 160, 161, 98,
- 164, 178, 169, 172, 171, 173, 170, 60, 15, 14,
- 70, 0, 77, 78, 0, 0, 78, 13, 148, 0,
- 139, 140, 223, 226, 225, 224, 218, 219, 220, 222,
- 217, 209, 0, 0, 0, 191, 0, 78, 214, 213,
- 8, 8, 8, 8, 8, 8, 0, 8, 8, 40,
- 183, 0, 0, 211, 186, 187, 223, 210, 105, 224,
- 0, 221, 198, 153, 152, 169, 0, 0, 209, 165,
- 0, 203, 206, 208, 207, 189, 184, 141, 142, 163,
- 146, 145, 168, 0, 0, 49, 23, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 96, 0, 0, 0,
+ 0, 11, 3, 5, 0, 2, 14, 61, 14, 1,
+ 61, 62, 77, 75, 0, 75, 75, 69, 4, 18,
+ 20, 21, 0, 17, 68, 63, 65, 64, 66, 25,
+ 67, 61, 16, 15, 72, 0, 0, 91, 0, 27,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 23,
+ 199, 0, 0, 178, 0, 168, 195, 191, 76, 202,
+ 26, 76, 0, 0, 0, 0, 0, 0, 0, 0,
+ 183, 201, 193, 0, 0, 186, 210, 0, 0, 0,
+ 0, 0, 0, 189, 0, 0, 0, 0, 0, 0,
+ 0, 42, 0, 19, 22, 28, 96, 200, 175, 159,
+ 160, 161, 162, 99, 165, 179, 170, 173, 172, 174,
+ 171, 71, 0, 78, 79, 0, 0, 79, 14, 149,
+ 0, 140, 141, 224, 227, 226, 225, 219, 220, 221,
+ 223, 218, 210, 0, 0, 0, 192, 0, 79, 215,
+ 214, 9, 9, 9, 9, 9, 9, 0, 9, 9,
+ 41, 184, 0, 0, 212, 187, 188, 224, 211, 106,
+ 225, 0, 222, 199, 154, 153, 170, 0, 0, 210,
+ 166, 0, 204, 207, 209, 208, 190, 185, 142, 143,
+ 164, 147, 146, 169, 0, 0, 50, 24, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 97, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 144, 143, 0, 0, 0,
- 0, 0, 0, 0, 69, 79, 80, 8, 87, 0,
- 80, 60, 147, 103, 211, 0, 0, 107, 80, 0,
- 54, 0, 0, 0, 0, 0, 8, 9, 0, 193,
- 195, 0, 212, 0, 0, 99, 0, 0, 150, 0,
- 181, 205, 0, 84, 202, 0, 166, 42, 30, 31,
- 56, 28, 29, 32, 33, 94, 93, 92, 97, 0,
- 0, 121, 0, 134, 130, 131, 127, 128, 125, 0,
- 137, 136, 135, 133, 132, 129, 138, 126, 0, 0,
- 109, 0, 102, 110, 179, 0, 0, 0, 0, 0,
- 0, 82, 0, 88, 209, 0, 7, 0, 197, 123,
- 209, 0, 215, 0, 55, 0, 0, 57, 59, 0,
- 0, 216, 53, 58, 0, 0, 27, 0, 0, 0,
- 196, 106, 0, 154, 0, 156, 0, 149, 204, 83,
- 0, 0, 0, 114, 120, 0, 0, 0, 118, 0,
- 211, 180, 0, 112, 0, 175, 0, 81, 86, 85,
- 73, 13, 0, 72, 104, 108, 151, 51, 51, 0,
- 0, 0, 0, 54, 0, 0, 0, 100, 155, 157,
- 124, 0, 117, 162, 0, 113, 119, 0, 115, 176,
- 111, 60, 91, 0, 0, 12, 34, 34, 0, 41,
- 0, 0, 0, 39, 122, 116, 101, 89, 41, 41,
- 13, 0, 0, 37, 38, 0, 47, 51, 41, 50,
- 43, 44, 60, 35, 0, 41, 0, 46, 11, 0,
- 45, 0, 0, 0, 34, 48, 36
+ 0, 0, 0, 0, 0, 0, 145, 144, 0, 0,
+ 0, 0, 0, 0, 0, 70, 80, 81, 9, 88,
+ 0, 81, 61, 148, 104, 212, 0, 0, 108, 81,
+ 0, 55, 0, 0, 0, 0, 0, 9, 10, 0,
+ 194, 196, 0, 213, 0, 0, 100, 0, 0, 151,
+ 0, 182, 206, 0, 85, 203, 0, 167, 43, 31,
+ 32, 57, 29, 30, 33, 34, 95, 94, 93, 98,
+ 0, 0, 122, 0, 135, 131, 132, 128, 129, 126,
+ 0, 138, 137, 136, 134, 133, 130, 139, 127, 0,
+ 0, 110, 0, 103, 111, 180, 0, 0, 0, 0,
+ 0, 0, 83, 0, 89, 210, 0, 8, 0, 198,
+ 124, 210, 0, 216, 0, 56, 0, 0, 58, 60,
+ 0, 0, 217, 54, 59, 0, 0, 28, 0, 0,
+ 0, 197, 107, 0, 155, 0, 157, 0, 150, 205,
+ 84, 0, 0, 0, 115, 121, 0, 0, 0, 119,
+ 0, 212, 181, 0, 113, 0, 176, 0, 82, 87,
+ 86, 74, 14, 0, 73, 105, 109, 152, 52, 52,
+ 0, 0, 0, 0, 55, 0, 0, 0, 101, 156,
+ 158, 125, 0, 118, 163, 0, 114, 120, 0, 116,
+ 177, 112, 61, 92, 0, 0, 13, 35, 35, 0,
+ 42, 0, 0, 0, 40, 123, 117, 102, 90, 42,
+ 42, 14, 0, 0, 38, 39, 0, 48, 52, 42,
+ 51, 44, 45, 61, 36, 0, 42, 0, 47, 12,
+ 0, 46, 0, 0, 0, 35, 49, 37
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 4, 27, 5, 124, 117, 338, 6, 406, 420,
- 29, 14, 108, 332, 423, 89, 90, 185, 16, 17,
- 403, 333, 323, 269, 326, 335, 329, 18, 109, 20,
- 21, 111, 22, 23, 31, 136, 30, 113, 226, 312,
- 264, 370, 24, 25, 371, 26, 115, 327, 92, 93,
- 320, 302, 94, 95, 96, 97, 98, 99, 100, 171,
- 158, 253, 140, 239, 330, 101, 102, 103, 104, 105,
- 106, 126
+ -1, 4, 7, 8, 5, 125, 118, 339, 6, 407,
+ 421, 10, 18, 32, 333, 424, 93, 94, 186, 20,
+ 21, 404, 334, 324, 270, 327, 336, 330, 22, 33,
+ 24, 25, 112, 26, 27, 35, 137, 34, 114, 227,
+ 313, 265, 371, 28, 29, 372, 30, 116, 328, 96,
+ 97, 321, 303, 98, 99, 100, 101, 102, 103, 104,
+ 172, 159, 254, 141, 240, 331, 105, 106, 107, 108,
+ 109, 110, 127
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -361
+#define YYPACT_NINF -396
static const yytype_int16 yypact[] =
{
- 186, -361, 254, -361, 41, -361, -361, -361, -361, -361,
- 36, -361, -361, -361, -361, -361, -361, -361, 362, -361,
- -361, -361, -361, -361, -361, -361, -361, -361, -361, 241,
- 52, 99, 106, -361, 99, -361, -361, 949, 1825, 1825,
- 176, 176, 176, 176, 176, -361, -361, 176, 176, -361,
- -29, 100, -361, 1825, -361, -361, -361, -361, -3, -3,
- -3, -3, 47, -3, -3, 115, 1825, -361, 60, 68,
- 71, 712, 624, 176, 800, 1035, 149, 1825, 12, 1825,
- 1825, 1825, 1825, 1825, 1825, 1825, 1121, 151, 179, -361,
- -361, 844, 124, -361, 45, -361, -361, -361, -361, 1987,
- -361, -3, 90, 177, -361, -361, 207, 263, -361, -361,
- -361, 115, -361, 199, 76, 203, 199, -361, -361, 137,
- 144, 144, -361, -361, -361, -361, -361, -361, -361, -361,
- -361, 1825, 129, 1825, 1825, 1194, 115, 199, -361, -361,
- -361, -361, -361, -361, -361, -361, -3, -361, -361, -361,
- 1987, 134, 1209, 624, -361, 1194, 1885, 124, -361, 862,
- 1825, -361, -3, -361, 1194, 91, 222, 141, 1825, 1194,
- 1297, 164, -361, -361, -361, 1194, 124, 144, 144, 144,
- -62, -62, 227, -9, 115, -361, -361, 1825, 1825, 1825,
- 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1385,
- 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825,
- 1825, 1825, 1825, 1825, 1825, -361, -361, 44, 1473, 1825,
- 1825, 1825, 1825, 1825, -361, -361, 175, -361, -361, 225,
- 175, 119, -361, -361, 1825, -57, 148, -361, 175, 150,
- 1825, 1825, 1825, 1825, 255, 448, -361, -361, 1825, -361,
- -361, 34, 240, 172, 1825, 124, 1561, 1649, -361, 270,
- -361, -361, 247, 258, -361, 1825, 296, -361, 240, -361,
- 240, 240, 240, 240, 240, 236, 236, -361, 1987, 251,
- 221, -361, 361, 2065, 1106, 934, 352, 480, 1987, 1948,
- 522, 522, 611, 698, 1020, 436, 144, 144, 1825, 1825,
- -361, 1737, -3, -361, -361, 409, 265, 231, 286, 256,
- 291, 292, 83, -361, 1825, 83, -361, 218, -361, -361,
- 1825, 115, -361, 220, 240, 229, 230, 240, -361, 238,
- -3, -361, -361, -361, 249, 298, 447, 1825, 1825, 250,
- -361, -361, 495, -361, 505, -361, 585, -361, -361, -361,
- 260, 1825, 339, -361, -361, 1825, 368, 269, -361, 673,
- 1825, -361, 344, -361, 345, -361, 346, -361, -361, -361,
- -361, -361, 337, -361, -361, -361, -361, -361, -361, 358,
- 358, 1825, 358, 1825, 264, 273, 358, -361, -361, -361,
- -361, 278, -361, 2026, 364, -361, -361, 275, -361, -361,
- -361, 130, -361, 358, 358, -361, 103, 103, 299, 151,
- 375, 358, 358, -361, -361, -361, -361, -361, 151, 151,
- -361, 358, -3, -361, -361, 358, -361, -361, 151, -361,
- -361, -361, 810, -361, 1825, 151, 534, -361, -361, 302,
- -361, 303, 358, 358, 103, -361, -361
+ 333, -396, -396, -396, 10, -396, -396, 311, -396, -396,
+ 54, -396, -396, -396, 6, -396, -396, -396, -396, -396,
+ -396, -396, 410, -396, -396, -396, -396, -396, -396, -396,
+ -396, 121, -396, -396, 12, 16, 38, -396, 16, -396,
+ -396, 909, 1785, 1785, 169, 169, 169, 169, 169, -396,
+ -396, 169, 169, -396, -55, 70, -396, 1785, -396, -396,
+ -396, -396, 13, 13, 13, 13, 48, 13, 13, 87,
+ 1785, -396, 7, 15, 19, 307, 672, 169, 760, 995,
+ 89, 1785, 69, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1081, 78, 141, -396, -396, 804, 81, -396, 3, -396,
+ -396, -396, -396, 1947, -396, 13, 61, 139, -396, -396,
+ 136, -396, 87, -396, 142, 22, 175, 142, -396, -396,
+ 91, 137, 137, -396, -396, -396, -396, -396, -396, -396,
+ -396, -396, 1785, 85, 1785, 1785, 856, 87, 142, -396,
+ -396, -396, -396, -396, -396, -396, -396, 13, -396, -396,
+ -396, 1947, 109, 1169, 672, -396, 856, 1845, 81, -396,
+ 822, 1785, -396, 13, -396, 856, 53, 200, -5, 1785,
+ 856, 1257, 151, -396, -396, -396, 856, 81, 137, 137,
+ 137, 288, 288, 230, 396, 87, -396, -396, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1345, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, -396, -396, 23, 1433,
+ 1785, 1785, 1785, 1785, 1785, -396, -396, 161, -396, -396,
+ 224, 161, 216, -396, -396, 1785, -41, 114, -396, 161,
+ 150, 1785, 1785, 1785, 1785, 240, 496, -396, -396, 1785,
+ -396, -396, 457, 326, 178, 1785, 81, 1521, 1609, -396,
+ 269, -396, -396, 543, 258, -396, 1785, 278, -396, 326,
+ -396, 326, 326, 326, 326, 326, 221, 221, -396, 1947,
+ 140, 120, -396, 553, 2025, 1154, 980, 528, 395, 1947,
+ 1908, 570, 570, 659, 895, 1066, 484, 137, 137, 1785,
+ 1785, -396, 1697, 13, -396, -396, 633, 199, 125, 204,
+ 135, 214, 266, 27, -396, 1785, 27, -396, 201, -396,
+ -396, 1785, 87, -396, 206, 326, 207, 215, 326, -396,
+ 222, 13, -396, -396, -396, 250, 277, 495, 1785, 1785,
+ 256, -396, -396, 721, -396, 793, -396, 812, -396, -396,
+ -396, 170, 1785, 346, -396, -396, 1785, 371, 220, -396,
+ 815, 1785, -396, 348, -396, 357, -396, 365, -396, -396,
+ -396, -396, -396, 297, -396, -396, -396, -396, -396, -396,
+ 368, 368, 1785, 368, 1785, 286, 289, 368, -396, -396,
+ -396, -396, 228, -396, 1986, 379, -396, -396, 293, -396,
+ -396, -396, 317, -396, 368, 368, -396, 56, 56, 295,
+ 78, 383, 368, 368, -396, -396, -396, -396, -396, 78,
+ 78, -396, 368, 13, -396, -396, 368, -396, -396, 78,
+ -396, -396, -396, 770, -396, 1785, 78, 582, -396, -396,
+ 309, -396, 310, 368, 368, 56, -396, -396
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -361, -361, -361, -361, -16, -68, -361, -361, 1590, -361,
- -26, -361, 400, 386, -360, -361, -361, 1, -361, -361,
- -349, -361, 50, -105, -225, -19, -361, -361, 425, -361,
- -361, -361, -361, -361, 136, 387, -361, 416, -49, -136,
- -361, 128, -361, -361, -361, -361, -361, -18, -50, -361,
- -361, -361, -361, -361, -361, -361, -361, 48, -361, -361,
- -122, -219, -56, -361, -361, -361, -30, 373, 374, -361,
- -361, -8
+ -396, -396, -396, -396, -396, -20, 162, -396, -396, 1549,
+ -396, -7, -396, 398, 384, -395, -396, -396, -35, -396,
+ -396, -338, -396, 26, -10, -223, -25, -396, -396, 412,
+ -396, -396, -396, -396, -396, 110, 356, -396, 406, -47,
+ -168, -396, 117, -396, -396, -396, -396, -396, -22, -33,
+ -396, -396, -396, -396, -396, -396, -396, -396, 52, -396,
+ -396, -107, -215, -60, -396, -396, -396, -30, 363, 369,
+ -396, -396, 28
};
/* 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 -199
+#define YYTABLE_NINF -200
static const yytype_int16 yytable[] =
{
- 91, 107, 87, 141, 142, 143, 145, 147, 148, 233,
- 125, 125, 125, 125, 125, 317, 196, 125, 125, 119,
- 334, 138, 157, 339, 40, 41, 42, -199, -199, 404,
- 176, 217, 146, 127, 128, 129, 130, 318, 199, 131,
- 132, 28, 159, 125, 165, 218, 260, 424, 172, 149,
- 298, 197, 299, 198, 32, 154, 40, 167, 163, 40,
- 193, 194, 195, 300, 160, 161, 133, 230, 183, 138,
- 110, 138, 240, 241, 242, 243, 244, 245, 436, 247,
- 248, 157, 227, 235, 446, 266, 120, 121, 238, 36,
- 246, 231, 139, 228, 315, 224, 219, 219, 220, 220,
- 368, 135, 321, 193, 194, 195, 256, 170, 134, 257,
- 255, 144, 384, 385, 150, 138, 236, 112, 157, 155,
- 237, 36, 164, 159, 114, 169, 316, 175, 340, 177,
- 178, 179, 180, 181, 251, 252, 325, 417, 328, 301,
- 139, 397, 139, 421, 422, 254, 232, 33, 34, 7,
- 8, 9, 262, 10, 11, 151, 408, 319, 259, 313,
- 7, 8, 9, 152, 10, 11, 153, 168, 267, 268,
- 270, 271, 272, 273, 274, 275, 276, 277, 337, 279,
- 280, 282, 36, 221, 12, 222, 139, 303, 40, 1,
- 2, 3, 372, 184, 122, 12, 186, 196, 375, 123,
- 305, 306, 307, 308, 309, 310, 193, 194, 195, 439,
- 193, 194, 195, 223, 331, 13, 252, 193, 194, 195,
- 225, 229, 324, 270, 234, 270, 13, 336, 249, 258,
- 353, 263, 214, 215, 216, 265, 342, 217, 344, 346,
- 363, -6, 311, 314, 278, 322, 360, 350, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, -5, 157, 365, 341, 40, 352, 390,
- 157, 7, 8, 9, 381, 10, 11, 347, 395, 349,
- 356, 357, 362, 359, 7, 8, 9, 414, 10, 11,
- 193, 194, 195, 7, 8, 9, 369, 10, 11, 369,
- 193, 194, 195, 364, 351, 376, 12, 195, 366, 193,
- 194, 195, 374, 367, 377, 383, 193, 194, 195, 12,
- 193, 194, 195, 378, 379, 193, 194, 195, 12, 193,
- 194, 195, 380, 391, 193, 194, 195, 13, 193, 194,
- 195, 348, 252, 382, 386, 401, 392, 193, 194, 195,
- 13, 398, 399, 400, 402, 193, 194, 195, 411, 13,
- 193, 194, 195, 35, 405, 324, 434, 412, 36, 416,
- 37, 415, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 394, 51, 52, 53, 54,
- 55, 56, 427, 425, 432, 57, 442, 443, 58, 59,
- 60, 61, 15, 393, 88, 62, 63, 64, 65, 66,
- 426, 67, 68, 69, 70, 71, 72, 441, 91, 430,
- 431, 73, 74, 75, 76, 77, 78, 19, 79, 437,
- 193, 194, 195, 410, 80, 213, 440, 193, 194, 195,
- 214, 215, 216, 373, 137, 217, 81, 82, 83, 35,
- 116, 173, 174, 84, 85, 354, 37, 86, 38, 39,
- 40, 41, 42, 43, 44, -52, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 0, 193, 194,
- 195, 57, 0, 187, 188, 189, 190, 0, 0, 0,
- 191, 0, 192, 203, 204, 66, 0, 67, 68, 69,
- 70, 71, 72, 361, 0, 0, 0, 73, 74, 75,
- 76, 77, 78, 0, 79, 0, 193, 194, 195, 213,
- 80, 0, 0, 0, 214, 215, 216, 0, 0, 217,
- 0, 0, 81, 82, 83, 35, 0, 203, 0, 84,
- 85, -57, 37, 86, 38, 39, 40, 41, 42, 43,
- 44, 0, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 213, 193, 194, 195, 57, 214, 215,
- 216, 0, 0, 217, 193, 194, 195, 201, 202, 203,
- 204, 66, 0, 67, 68, 69, 70, 71, 72, 387,
- 0, 0, 0, 73, 74, 75, 76, 77, 78, 388,
- 79, 209, 210, 211, 212, 213, 80, 0, 0, 0,
- 214, 215, 216, 0, 0, 217, 0, 0, 81, 82,
- 83, 0, 0, 0, 0, 84, 85, 0, -52, 86,
- 36, 0, 37, 0, 38, 39, 40, 41, 42, 43,
- 44, 0, 156, 47, 48, 49, 50, 123, 51, 52,
- 53, 54, 55, 0, 193, 194, 195, 57, 0, 0,
- 0, 0, 0, 0, 0, 0, 201, 202, 203, 204,
- 0, 66, 0, 67, 68, 69, 70, 71, 72, 389,
- 0, 0, 0, 73, 74, 75, 76, 77, 78, 0,
- 79, 210, 211, 212, 213, 0, 80, 0, 0, 214,
- 215, 216, 0, 0, 217, 0, 0, 0, 81, 82,
- 83, 0, 0, 0, 0, 84, 85, 0, 36, 86,
- 37, 0, 38, 39, 40, 41, 42, 43, 44, 0,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 0, 193, 194, 195, 57, 0, 0, 0, 0,
- 0, 0, 0, 201, 202, 203, 204, 0, 0, 66,
- 0, 67, 68, 69, 70, 71, 72, 396, 0, 0,
- 0, 73, 74, 75, 76, 77, 78, 0, 79, 211,
- 212, 213, 0, 0, 80, 0, 214, 215, 216, 0,
- 0, 217, 0, 0, 0, 0, 81, 82, 83, 0,
- 0, 0, 0, 84, 85, 0, 36, 86, 37, 0,
- 38, 39, 40, 41, 42, 43, 44, 438, 162, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 0,
- 0, 0, 0, 57, 0, 0, 0, 0, 0, 0,
- 7, 8, 9, 0, 10, 11, 0, 66, 0, 67,
- 68, 69, 70, 71, 72, 0, 0, 0, 0, 73,
- 74, 75, 76, 77, 78, 0, 79, 0, 219, 0,
- 220, -169, 80, 0, 0, 12, 0, 0, 0, -169,
- 187, 188, 189, 190, 81, 82, 83, 191, 0, 192,
- 0, 84, 85, 0, 0, 86, 0, 0, -169, -169,
- -169, -169, 0, 0, 0, -169, 13, -169, 0, 0,
- -169, 0, 0, 193, 194, 195, 0, -169, -169, -169,
- -169, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -169, -169, -169, 0, -169, -169, -169, -169, -169,
- -169, -169, -169, -169, -169, -169, 0, 0, 0, 0,
- -169, -169, -169, 0, 0, -169, -169, 37, 118, 38,
- 39, 40, 41, 42, 43, 44, 0, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 0, 0,
- 0, 0, 57, 0, 0, 0, 0, 0, 0, 201,
- -199, 203, 204, 0, 0, 0, 66, 0, 67, 68,
- 69, 70, 71, 72, 0, 0, 0, 0, 73, 74,
- 75, 76, 77, 78, 0, 79, 212, 213, 0, 0,
- 0, 80, 214, 215, 216, 0, 0, 217, 0, 0,
- 0, 0, 0, 81, 82, 83, 0, 0, 0, 0,
- 84, 85, 0, 37, 86, 38, 39, 40, 41, 42,
- 43, 44, 166, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 0, 0, 0, 0, 57, 0,
- 0, 0, 0, 0, 0, 201, 202, 203, 204, 0,
- 0, 0, 66, 0, 67, 68, 69, 70, 71, 72,
- 0, 0, 0, 0, 73, 74, 75, 76, 77, 78,
- 0, 79, 212, 213, 0, 0, 0, 80, 214, 215,
- 216, 0, 0, 217, 0, 0, 0, 0, 0, 81,
- 82, 83, 0, 0, 0, 0, 84, 85, 0, 37,
- 86, 38, 39, 40, 41, 42, 43, 44, 0, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 0, 0, 0, 0, 57, 0, 0, 0, 0, 0,
- 0, -199, 0, 203, 204, 0, 0, 0, 66, 0,
- 67, 68, 69, 70, 71, 72, 0, 0, 0, 0,
- 73, 74, 75, 76, 77, 78, 0, 79, 212, 213,
- 0, 0, 0, 80, 214, 215, 216, 0, 0, 217,
- 0, 0, 0, 0, 0, 81, 82, 83, 0, 0,
- 0, 0, 84, 85, 0, 182, 86, 37, 0, 38,
- 39, 40, 41, 42, 43, 44, 0, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 0, 0,
- 0, 0, 57, 0, 0, 0, 0, 0, 0, 0,
- 0, 203, 204, 0, 0, 0, 66, 0, 67, 68,
- 69, 70, 71, 72, 0, 0, 0, 0, 73, 74,
- 75, 76, 77, 78, 0, 79, 212, 213, 0, 0,
- 0, 80, 214, 215, 216, 0, 0, 217, 0, 0,
- 0, 0, 0, 81, 82, 83, 0, 0, 0, 0,
- 84, 85, 0, 250, 86, 37, 0, 38, 39, 40,
- 41, 42, 43, 44, 0, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 0, 0, 0, 0,
- 57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 66, 0, 67, 68, 69, 70,
- 71, 72, 0, 0, 0, 0, 73, 74, 75, 76,
- 77, 78, 0, 79, 0, 0, 0, 0, 0, 80,
+ 95, 31, 91, 142, 143, 144, 146, 148, 149, 198,
+ 9, 199, 260, 425, 126, 126, 126, 126, 126, 120,
+ 318, 126, 126, 335, 36, 234, 340, 139, 228, 299,
+ 111, 300, 197, 40, 113, 44, 147, 139, 200, 229,
+ 134, 405, 301, 158, 369, 219, 160, 126, 166, 150,
+ 447, 177, 173, 319, -7, 155, 115, 168, 164, 220,
+ 44, 221, 261, 316, 194, 195, 196, 220, 184, 221,
+ 231, 322, 139, 128, 129, 130, 131, 139, 135, 132,
+ 133, 44, 45, 46, 11, 12, 13, 247, 14, 15,
+ 437, 239, 225, 40, 121, 122, 422, 423, 140, 158,
+ 233, 236, 152, 257, 161, 162, 258, 169, 140, 136,
+ 153, 232, 145, 237, 154, 385, 386, 238, 302, 16,
+ 185, -6, 151, 320, 160, 37, 38, 156, 256, 354,
+ 165, 252, 253, 170, 364, 176, 158, 178, 179, 180,
+ 181, 182, 224, 140, 366, 222, 398, 223, 140, 263,
+ 17, 11, 12, 13, 197, 14, 15, 353, 187, 409,
+ 194, 195, 196, 226, 171, 268, 269, 271, 272, 273,
+ 274, 275, 276, 277, 278, 40, 280, 281, 283, 391,
+ 235, 44, 255, 194, 195, 196, 16, 123, 304, 194,
+ 195, 196, 124, 230, 194, 195, 196, 306, 307, 308,
+ 309, 310, 311, 250, 194, 195, 196, 259, 373, 194,
+ 195, 196, 440, 253, 376, 332, 363, 17, 264, 325,
+ 271, 365, 271, 317, 337, 215, 216, 217, 312, 396,
+ 218, 367, 326, 343, 329, 345, 347, 415, 266, 194,
+ 195, 196, 315, 361, 351, 323, 11, 12, 13, 279,
+ 14, 15, 44, 284, 285, 286, 287, 288, 289, 290,
+ 291, 292, 293, 294, 295, 296, 297, 298, 194, 195,
+ 196, 382, 342, 194, 195, 196, 348, 357, 358, 350,
+ 360, 16, 158, 194, 195, 196, 352, 368, 158, 194,
+ 195, 196, 196, 370, 384, 375, 370, 194, 195, 196,
+ 378, 379, 377, 241, 242, 243, 244, 245, 246, 380,
+ 248, 249, 17, 40, 403, 41, 381, 42, 43, 44,
+ 45, 46, 47, 48, 418, 50, 51, 52, 53, 54,
+ 392, 55, 56, 57, 58, 59, 1, 2, 3, 253,
+ 61, 11, 12, 13, 383, 14, 15, 11, 12, 13,
+ 387, 14, 15, 393, 70, 399, 71, 72, 73, 74,
+ 75, 76, 325, 435, 400, 402, 77, 78, 79, 80,
+ 81, 82, 401, 83, 406, 427, 16, -200, -200, 84,
+ 412, 218, 16, 413, 431, 432, 416, 417, 395, 426,
+ 314, 85, 86, 87, 438, 194, 195, 196, 88, 89,
+ 428, 441, 90, 443, 444, 19, 92, 17, 394, 338,
+ 411, 39, 442, 17, 433, 95, 40, 138, 41, 23,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 374, 55, 56, 57, 58, 59, 60,
+ 194, 195, 196, 61, 117, 174, 62, 63, 64, 65,
+ 0, 175, 204, 66, 67, 68, 69, 70, 0, 71,
+ 72, 73, 74, 75, 76, 194, 195, 196, 0, 77,
+ 78, 79, 80, 81, 82, 0, 83, 0, 214, 0,
+ 0, 0, 84, 215, 216, 217, 0, 0, 218, 0,
+ 267, 0, 0, 0, 85, 86, 87, 39, 0, 0,
+ 0, 88, 89, 0, 41, 90, 42, 43, 44, 45,
+ 46, 47, 48, -53, 50, 51, 52, 53, 54, 0,
+ 55, 56, 57, 58, 59, 0, 194, 195, 196, 61,
+ 0, 188, 189, 190, 191, 0, 0, 0, 192, 0,
+ 193, 204, 205, 70, 0, 71, 72, 73, 74, 75,
+ 76, 341, 0, 0, 0, 77, 78, 79, 80, 81,
+ 82, 0, 83, 0, 194, 195, 196, 214, 84, 0,
+ 0, 0, 215, 216, 217, 0, 0, 218, 0, 0,
+ 85, 86, 87, 39, 0, 0, 0, 88, 89, -58,
+ 41, 90, 42, 43, 44, 45, 46, 47, 48, 0,
+ 50, 51, 52, 53, 54, 0, 55, 56, 57, 58,
+ 59, 214, 194, 195, 196, 61, 215, 216, 217, 0,
+ 0, 218, 194, 195, 196, 202, 203, 204, 205, 70,
+ 0, 71, 72, 73, 74, 75, 76, 349, 0, 0,
+ 0, 77, 78, 79, 80, 81, 82, 355, 83, 210,
+ 211, 212, 213, 214, 84, 0, 0, 0, 215, 216,
+ 217, 0, 0, 218, 0, 0, 85, 86, 87, 0,
+ 0, 0, 0, 88, 89, 0, -53, 90, 40, 0,
+ 41, 0, 42, 43, 44, 45, 46, 47, 48, 0,
+ 157, 51, 52, 53, 54, 124, 55, 56, 57, 58,
+ 59, 0, 194, 195, 196, 61, 0, 0, 0, 0,
+ 0, 0, 0, 0, 202, 203, 204, 205, 0, 70,
+ 0, 71, 72, 73, 74, 75, 76, 362, 0, 0,
+ 0, 77, 78, 79, 80, 81, 82, 0, 83, 211,
+ 212, 213, 214, 0, 84, 0, 0, 215, 216, 217,
+ 0, 0, 218, 0, 0, 0, 85, 86, 87, 0,
+ 0, 0, 0, 88, 89, 0, 40, 90, 41, 0,
+ 42, 43, 44, 45, 46, 47, 48, 439, 163, 51,
+ 52, 53, 54, 0, 55, 56, 57, 58, 59, 0,
+ 194, 195, 196, 61, 0, 0, 0, 0, 0, 0,
+ 11, 12, 13, 0, 14, 15, 0, 70, 0, 71,
+ 72, 73, 74, 75, 76, 388, 0, 0, 0, 77,
+ 78, 79, 80, 81, 82, 0, 83, 0, 220, 0,
+ 221, -170, 84, 0, 0, 16, 0, 0, 0, -170,
+ 188, 189, 190, 191, 85, 86, 87, 192, 0, 193,
+ 0, 88, 89, 0, 0, 90, 0, 0, -170, -170,
+ -170, -170, 194, 195, 196, -170, 17, -170, 0, 0,
+ -170, 0, 0, 194, 195, 196, 0, -170, -170, -170,
+ -170, 194, 195, 196, 194, 195, 196, 389, 0, 0,
+ 0, -170, -170, -170, 0, -170, -170, -170, -170, -170,
+ -170, -170, -170, -170, -170, -170, 390, 0, 0, 397,
+ -170, -170, -170, 204, 205, -170, -170, 41, 119, 42,
+ 43, 44, 45, 46, 47, 48, 0, 50, 51, 52,
+ 53, 54, 0, 55, 56, 57, 58, 59, 213, 214,
+ 0, 0, 61, 0, 215, 216, 217, 0, 0, 218,
+ 202, 203, 204, 205, 0, 0, 70, 0, 71, 72,
+ 73, 74, 75, 76, 0, 0, 0, 0, 77, 78,
+ 79, 80, 81, 82, 0, 83, 212, 213, 214, 0,
+ 0, 84, 0, 215, 216, 217, 0, 0, 218, 0,
+ 0, 0, 0, 85, 86, 87, 0, 0, 0, 0,
+ 88, 89, 0, 41, 90, 42, 43, 44, 45, 46,
+ 47, 48, 167, 50, 51, 52, 53, 54, 0, 55,
+ 56, 57, 58, 59, 0, 0, 0, 0, 61, 0,
+ 0, 0, 0, 0, 0, 202, -200, 204, 205, 0,
+ 0, 0, 70, 0, 71, 72, 73, 74, 75, 76,
+ 0, 0, 0, 0, 77, 78, 79, 80, 81, 82,
+ 0, 83, 213, 214, 0, 0, 0, 84, 215, 216,
+ 217, 0, 0, 218, 0, 0, 0, 0, 0, 85,
+ 86, 87, 0, 0, 0, 0, 88, 89, 0, 41,
+ 90, 42, 43, 44, 45, 46, 47, 48, 0, 50,
+ 51, 52, 53, 54, 0, 55, 56, 57, 58, 59,
+ 0, 0, 0, 0, 61, 0, 0, 0, 0, 0,
+ 0, 202, 203, 204, 205, 0, 0, 0, 70, 0,
+ 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
+ 77, 78, 79, 80, 81, 82, 0, 83, 213, 214,
+ 0, 0, 0, 84, 215, 216, 217, 0, 0, 218,
+ 0, 0, 0, 0, 0, 85, 86, 87, 0, 0,
+ 0, 0, 88, 89, 0, 183, 90, 41, 0, 42,
+ 43, 44, 45, 46, 47, 48, 0, 50, 51, 52,
+ 53, 54, 0, 55, 56, 57, 58, 59, 0, 0,
+ 0, 0, 61, 0, 0, 0, 0, 0, 0, -200,
+ 0, 204, 205, 0, 0, 0, 70, 0, 71, 72,
+ 73, 74, 75, 76, 0, 0, 0, 0, 77, 78,
+ 79, 80, 81, 82, 0, 83, 213, 214, 0, 0,
+ 0, 84, 215, 216, 217, 0, 0, 218, 0, 0,
+ 0, 0, 0, 85, 86, 87, 0, 0, 0, 0,
+ 88, 89, 0, 251, 90, 41, 0, 42, 43, 44,
+ 45, 46, 47, 48, 0, 50, 51, 52, 53, 54,
+ 0, 55, 56, 57, 58, 59, 0, 0, 0, 0,
+ 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 70, 0, 71, 72, 73, 74,
+ 75, 76, 0, 0, 0, 0, 77, 78, 79, 80,
+ 81, 82, 0, 83, 0, 0, 0, 0, 0, 84,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 81, 82, 83, 0, 0, 0, 0, 84, 85,
- 0, 261, 86, 37, 0, 38, 39, 40, 41, 42,
- 43, 44, 0, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 0, 0, 0, 0, 57, 0,
+ 0, 85, 86, 87, 0, 0, 0, 0, 88, 89,
+ 0, 262, 90, 41, 0, 42, 43, 44, 45, 46,
+ 47, 48, 0, 50, 51, 52, 53, 54, 0, 55,
+ 56, 57, 58, 59, 0, 0, 0, 0, 61, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66, 0, 67, 68, 69, 70, 71, 72,
- 0, 0, 0, 0, 73, 74, 75, 76, 77, 78,
- 0, 79, 0, 0, 0, 0, 0, 80, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
- 82, 83, 0, 0, 0, 0, 84, 85, 0, 281,
- 86, 37, 0, 38, 39, 40, 41, 42, 43, 44,
- 0, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 0, 0, 0, 0, 57, 0, 0, 0,
+ 0, 0, 70, 0, 71, 72, 73, 74, 75, 76,
+ 0, 0, 0, 0, 77, 78, 79, 80, 81, 82,
+ 0, 83, 0, 0, 0, 0, 0, 84, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,
+ 86, 87, 0, 0, 0, 0, 88, 89, 0, 282,
+ 90, 41, 0, 42, 43, 44, 45, 46, 47, 48,
+ 0, 50, 51, 52, 53, 54, 0, 55, 56, 57,
+ 58, 59, 0, 0, 0, 0, 61, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 0, 67, 68, 69, 70, 71, 72, 0, 0,
- 0, 0, 73, 74, 75, 76, 77, 78, 0, 79,
- 0, 0, 0, 0, 0, 80, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 81, 82, 83,
- 0, 0, 0, 0, 84, 85, 0, 304, 86, 37,
- 0, 38, 39, 40, 41, 42, 43, 44, 0, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 0, 0, 0, 0, 57, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 0,
- 67, 68, 69, 70, 71, 72, 0, 0, 0, 0,
- 73, 74, 75, 76, 77, 78, 0, 79, 0, 0,
- 0, 0, 0, 80, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 81, 82, 83, 0, 0,
- 0, 0, 84, 85, 0, 343, 86, 37, 0, 38,
- 39, 40, 41, 42, 43, 44, 0, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 0, 0,
- 0, 0, 57, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 66, 0, 67, 68,
- 69, 70, 71, 72, 0, 0, 0, 0, 73, 74,
- 75, 76, 77, 78, 0, 79, 0, 0, 0, 0,
- 0, 80, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 81, 82, 83, 0, 0, 0, 0,
- 84, 85, 0, 345, 86, 37, 0, 38, 39, 40,
- 41, 42, 43, 44, 0, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 0, 0, 0, 0,
- 57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 66, 0, 67, 68, 69, 70,
- 71, 72, 0, 0, 0, 0, 73, 74, 75, 76,
- 77, 78, 0, 79, 0, 0, 0, 0, 0, 80,
+ 70, 0, 71, 72, 73, 74, 75, 76, 0, 0,
+ 0, 0, 77, 78, 79, 80, 81, 82, 0, 83,
+ 0, 0, 0, 0, 0, 84, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 85, 86, 87,
+ 0, 0, 0, 0, 88, 89, 0, 305, 90, 41,
+ 0, 42, 43, 44, 45, 46, 47, 48, 0, 50,
+ 51, 52, 53, 54, 0, 55, 56, 57, 58, 59,
+ 0, 0, 0, 0, 61, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 70, 0,
+ 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
+ 77, 78, 79, 80, 81, 82, 0, 83, 0, 0,
+ 0, 0, 0, 84, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 85, 86, 87, 0, 0,
+ 0, 0, 88, 89, 0, 344, 90, 41, 0, 42,
+ 43, 44, 45, 46, 47, 48, 0, 50, 51, 52,
+ 53, 54, 0, 55, 56, 57, 58, 59, 0, 0,
+ 0, 0, 61, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 70, 0, 71, 72,
+ 73, 74, 75, 76, 0, 0, 0, 0, 77, 78,
+ 79, 80, 81, 82, 0, 83, 0, 0, 0, 0,
+ 0, 84, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 85, 86, 87, 0, 0, 0, 0,
+ 88, 89, 0, 346, 90, 41, 0, 42, 43, 44,
+ 45, 46, 47, 48, 0, 50, 51, 52, 53, 54,
+ 0, 55, 56, 57, 58, 59, 0, 0, 0, 0,
+ 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 70, 0, 71, 72, 73, 74,
+ 75, 76, 0, 0, 0, 0, 77, 78, 79, 80,
+ 81, 82, 0, 83, 0, 0, 0, 0, 0, 84,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 81, 82, 83, 0, 0, 0, 0, 84, 85,
- 0, 358, 86, 37, 0, 38, 39, 40, 41, 42,
- 43, 44, 0, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 0, 0, 0, 0, 57, 0,
+ 0, 85, 86, 87, 0, 0, 0, 0, 88, 89,
+ 0, 359, 90, 41, 0, 42, 43, 44, 45, 46,
+ 47, 48, 0, 50, 51, 52, 53, 54, 0, 55,
+ 56, 57, 58, 59, 0, 0, 0, 0, 61, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66, 0, 67, 68, 69, 70, 71, 72,
- 0, 0, 0, 0, 73, 74, 75, 76, 77, 78,
- 0, 79, 0, 0, -198, 0, 0, 80, 0, 0,
- 0, 0, -198, 0, 0, 0, 0, 0, 0, 81,
- 82, 83, 0, 0, 0, 0, 84, 85, 0, 0,
- 86, -198, -198, -198, -198, 0, 0, 0, -198, 0,
- -198, 0, 0, -198, 0, 0, 0, 0, 0, 0,
- -198, -198, -198, -198, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -198, -198, -198, 0, -198, -198,
- -198, -198, -198, -198, -198, -198, -198, -198, -198, 0,
- 407, 0, 409, -198, -198, -198, 413, 0, -198, -198,
+ 0, 0, 70, 0, 71, 72, 73, 74, 75, 76,
+ 0, 0, 0, 0, 77, 78, 79, 80, 81, 82,
+ 0, 83, 0, 0, -199, 0, 0, 84, 0, 0,
+ 0, 0, -199, 0, 0, 0, 0, 0, 0, 85,
+ 86, 87, 0, 0, 0, 0, 88, 89, 0, 0,
+ 90, -199, -199, -199, -199, 0, 0, 0, -199, 0,
+ -199, 0, 0, -199, 0, 0, 0, 0, 0, 0,
+ -199, -199, -199, -199, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -199, -199, -199, 0, -199, -199,
+ -199, -199, -199, -199, -199, -199, -199, -199, -199, 0,
+ 408, 0, 410, -199, -199, -199, 414, 0, -199, -199,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 418, 419, 0, 200, 0, 0, 0,
- 0, 428, 429, 201, 202, 203, 204, 0, 0, 0,
- 0, 433, 0, 0, 0, 435, 0, 0, 0, 0,
- 0, 0, 205, 206, 355, 207, 208, 209, 210, 211,
- 212, 213, 444, 445, 0, 200, 214, 215, 216, 0,
- 0, 217, 201, 202, 203, 204, 0, 0, 0, 0,
+ 0, 0, 0, 419, 420, 0, 201, 0, 0, 0,
+ 0, 429, 430, 202, 203, 204, 205, 0, 0, 0,
+ 0, 434, 0, 0, 0, 436, 0, 0, 0, 0,
+ 0, 0, 206, 207, 356, 208, 209, 210, 211, 212,
+ 213, 214, 445, 446, 0, 201, 215, 216, 217, 0,
+ 0, 218, 202, 203, 204, 205, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 205, 206, 0, 207, 208, 209, 210, 211, 212,
- 213, 0, 0, 0, 200, 214, 215, 216, 0, 0,
- 217, 201, 202, 203, 204, 0, 0, 0, 0, 0,
+ 0, 206, 207, 0, 208, 209, 210, 211, 212, 213,
+ 214, 0, 0, 0, 201, 215, 216, 217, 0, 0,
+ 218, 202, 203, 204, 205, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 206, 0, 207, 208, 209, 210, 211, 212, 213,
- 0, 0, 0, -199, 214, 215, 216, 0, 0, 217,
- 201, 202, 203, 204, 0, 0, 0, 0, 0, 0,
+ 0, 207, 0, 208, 209, 210, 211, 212, 213, 214,
+ 0, 0, 0, -200, 215, 216, 217, 0, 0, 218,
+ 202, 203, 204, 205, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 207, 208, 209, 210, 211, 212, 213, 0,
- 0, 0, 0, 214, 215, 216, 0, 0, 217
+ 0, 0, 208, 209, 210, 211, 212, 213, 214, 0,
+ 0, 0, 0, 215, 216, 217, 0, 0, 218
};
static const yytype_int16 yycheck[] =
{
- 18, 27, 18, 59, 60, 61, 62, 63, 64, 131,
- 40, 41, 42, 43, 44, 234, 73, 47, 48, 37,
- 245, 24, 72, 248, 12, 13, 14, 89, 90, 378,
- 80, 93, 62, 41, 42, 43, 44, 94, 94, 47,
- 48, 0, 72, 73, 74, 101, 168, 407, 78, 65,
- 6, 6, 8, 8, 18, 71, 12, 75, 74, 12,
- 69, 70, 71, 19, 72, 73, 95, 116, 86, 24,
- 18, 24, 140, 141, 142, 143, 144, 145, 427, 147,
- 148, 131, 6, 133, 444, 94, 38, 39, 137, 6,
- 146, 117, 95, 17, 230, 111, 6, 6, 8, 8,
- 17, 53, 238, 69, 70, 71, 162, 95, 8, 165,
- 160, 64, 337, 338, 66, 24, 134, 18, 168, 71,
- 136, 6, 74, 153, 18, 77, 7, 79, 94, 81,
- 82, 83, 84, 85, 152, 153, 241, 7, 243, 95,
- 95, 360, 95, 40, 41, 153, 9, 11, 12, 30,
- 31, 32, 170, 34, 35, 95, 381, 9, 17, 227,
- 30, 31, 32, 95, 34, 35, 95, 18, 184, 187,
- 188, 189, 190, 191, 192, 193, 194, 195, 246, 197,
- 198, 199, 6, 6, 65, 8, 95, 217, 12, 3,
- 4, 5, 314, 42, 18, 65, 17, 73, 320, 23,
- 218, 219, 220, 221, 222, 223, 69, 70, 71, 434,
- 69, 70, 71, 6, 244, 96, 234, 69, 70, 71,
- 21, 18, 240, 241, 95, 243, 96, 245, 94, 7,
- 9, 67, 88, 89, 90, 8, 254, 93, 256, 257,
- 9, 0, 67, 18, 196, 95, 302, 265, 200, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 0, 314, 9, 94, 12, 17, 9,
- 320, 30, 31, 32, 330, 34, 35, 7, 9, 21,
- 298, 299, 17, 301, 30, 31, 32, 9, 34, 35,
- 69, 70, 71, 30, 31, 32, 312, 34, 35, 315,
- 69, 70, 71, 17, 8, 321, 65, 71, 17, 69,
- 70, 71, 94, 21, 94, 17, 69, 70, 71, 65,
- 69, 70, 71, 94, 94, 69, 70, 71, 65, 69,
- 70, 71, 94, 351, 69, 70, 71, 96, 69, 70,
- 71, 94, 360, 94, 94, 371, 7, 69, 70, 71,
- 96, 7, 7, 7, 17, 69, 70, 71, 94, 96,
- 69, 70, 71, 1, 6, 383, 422, 94, 6, 94,
- 8, 7, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 17, 24, 25, 26, 27,
- 28, 29, 17, 94, 420, 33, 94, 94, 36, 37,
- 38, 39, 2, 355, 18, 43, 44, 45, 46, 47,
- 409, 49, 50, 51, 52, 53, 54, 436, 436, 418,
- 419, 59, 60, 61, 62, 63, 64, 2, 66, 428,
- 69, 70, 71, 383, 72, 83, 435, 69, 70, 71,
- 88, 89, 90, 315, 57, 93, 84, 85, 86, 1,
- 34, 78, 78, 91, 92, 94, 8, 95, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, -1, 24, 25, 26, 27, 28, -1, 69, 70,
- 71, 33, -1, 36, 37, 38, 39, -1, -1, -1,
- 43, -1, 45, 57, 58, 47, -1, 49, 50, 51,
- 52, 53, 54, 94, -1, -1, -1, 59, 60, 61,
- 62, 63, 64, -1, 66, -1, 69, 70, 71, 83,
- 72, -1, -1, -1, 88, 89, 90, -1, -1, 93,
- -1, -1, 84, 85, 86, 1, -1, 57, -1, 91,
- 92, 94, 8, 95, 10, 11, 12, 13, 14, 15,
- 16, -1, 18, 19, 20, 21, 22, -1, 24, 25,
- 26, 27, 28, 83, 69, 70, 71, 33, 88, 89,
- 90, -1, -1, 93, 69, 70, 71, 55, 56, 57,
- 58, 47, -1, 49, 50, 51, 52, 53, 54, 94,
- -1, -1, -1, 59, 60, 61, 62, 63, 64, 94,
- 66, 79, 80, 81, 82, 83, 72, -1, -1, -1,
- 88, 89, 90, -1, -1, 93, -1, -1, 84, 85,
- 86, -1, -1, -1, -1, 91, 92, -1, 94, 95,
- 6, -1, 8, -1, 10, 11, 12, 13, 14, 15,
- 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, -1, 69, 70, 71, 33, -1, -1,
- -1, -1, -1, -1, -1, -1, 55, 56, 57, 58,
- -1, 47, -1, 49, 50, 51, 52, 53, 54, 94,
- -1, -1, -1, 59, 60, 61, 62, 63, 64, -1,
- 66, 80, 81, 82, 83, -1, 72, -1, -1, 88,
- 89, 90, -1, -1, 93, -1, -1, -1, 84, 85,
- 86, -1, -1, -1, -1, 91, 92, -1, 6, 95,
- 8, -1, 10, 11, 12, 13, 14, 15, 16, -1,
+ 22, 8, 22, 63, 64, 65, 66, 67, 68, 6,
+ 0, 8, 17, 408, 44, 45, 46, 47, 48, 41,
+ 235, 51, 52, 246, 18, 132, 249, 24, 6, 6,
+ 18, 8, 73, 6, 18, 12, 66, 24, 98, 17,
+ 95, 379, 19, 76, 17, 105, 76, 77, 78, 69,
+ 445, 84, 82, 94, 0, 75, 18, 79, 78, 6,
+ 12, 8, 169, 231, 69, 70, 71, 6, 90, 8,
+ 117, 239, 24, 45, 46, 47, 48, 24, 8, 51,
+ 52, 12, 13, 14, 30, 31, 32, 147, 34, 35,
+ 428, 138, 112, 6, 42, 43, 40, 41, 95, 132,
+ 9, 134, 95, 163, 76, 77, 166, 18, 95, 57,
+ 95, 118, 64, 135, 95, 338, 339, 137, 95, 65,
+ 42, 0, 70, 9, 154, 15, 16, 75, 161, 9,
+ 78, 153, 154, 81, 9, 83, 169, 85, 86, 87,
+ 88, 89, 6, 95, 9, 6, 361, 8, 95, 171,
+ 96, 30, 31, 32, 73, 34, 35, 17, 17, 382,
+ 69, 70, 71, 21, 95, 185, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 6, 198, 199, 200, 9,
+ 95, 12, 154, 69, 70, 71, 65, 18, 218, 69,
+ 70, 71, 23, 18, 69, 70, 71, 219, 220, 221,
+ 222, 223, 224, 94, 69, 70, 71, 7, 315, 69,
+ 70, 71, 435, 235, 321, 245, 17, 96, 67, 241,
+ 242, 17, 244, 7, 246, 88, 89, 90, 67, 9,
+ 93, 17, 242, 255, 244, 257, 258, 9, 8, 69,
+ 70, 71, 18, 303, 266, 95, 30, 31, 32, 197,
+ 34, 35, 12, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215, 69, 70,
+ 71, 331, 94, 69, 70, 71, 7, 299, 300, 21,
+ 302, 65, 315, 69, 70, 71, 8, 21, 321, 69,
+ 70, 71, 71, 313, 17, 94, 316, 69, 70, 71,
+ 94, 94, 322, 141, 142, 143, 144, 145, 146, 94,
+ 148, 149, 96, 6, 17, 8, 94, 10, 11, 12,
+ 13, 14, 15, 16, 7, 18, 19, 20, 21, 22,
+ 352, 24, 25, 26, 27, 28, 3, 4, 5, 361,
+ 33, 30, 31, 32, 94, 34, 35, 30, 31, 32,
+ 94, 34, 35, 7, 47, 7, 49, 50, 51, 52,
+ 53, 54, 384, 423, 7, 372, 59, 60, 61, 62,
+ 63, 64, 7, 66, 6, 410, 65, 89, 90, 72,
+ 94, 93, 65, 94, 419, 420, 7, 94, 17, 94,
+ 228, 84, 85, 86, 429, 69, 70, 71, 91, 92,
+ 17, 436, 95, 94, 94, 7, 22, 96, 356, 247,
+ 384, 1, 437, 96, 421, 437, 6, 61, 8, 7,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 316, 24, 25, 26, 27, 28, 29,
+ 69, 70, 71, 33, 38, 82, 36, 37, 38, 39,
+ -1, 82, 57, 43, 44, 45, 46, 47, -1, 49,
+ 50, 51, 52, 53, 54, 69, 70, 71, -1, 59,
+ 60, 61, 62, 63, 64, -1, 66, -1, 83, -1,
+ -1, -1, 72, 88, 89, 90, -1, -1, 93, -1,
+ 94, -1, -1, -1, 84, 85, 86, 1, -1, -1,
+ -1, 91, 92, -1, 8, 95, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
+ 24, 25, 26, 27, 28, -1, 69, 70, 71, 33,
+ -1, 36, 37, 38, 39, -1, -1, -1, 43, -1,
+ 45, 57, 58, 47, -1, 49, 50, 51, 52, 53,
+ 54, 94, -1, -1, -1, 59, 60, 61, 62, 63,
+ 64, -1, 66, -1, 69, 70, 71, 83, 72, -1,
+ -1, -1, 88, 89, 90, -1, -1, 93, -1, -1,
+ 84, 85, 86, 1, -1, -1, -1, 91, 92, 94,
+ 8, 95, 10, 11, 12, 13, 14, 15, 16, -1,
18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
+ 28, 83, 69, 70, 71, 33, 88, 89, 90, -1,
+ -1, 93, 69, 70, 71, 55, 56, 57, 58, 47,
+ -1, 49, 50, 51, 52, 53, 54, 94, -1, -1,
+ -1, 59, 60, 61, 62, 63, 64, 94, 66, 79,
+ 80, 81, 82, 83, 72, -1, -1, -1, 88, 89,
+ 90, -1, -1, 93, -1, -1, 84, 85, 86, -1,
+ -1, -1, -1, 91, 92, -1, 94, 95, 6, -1,
+ 8, -1, 10, 11, 12, 13, 14, 15, 16, -1,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, -1, 69, 70, 71, 33, -1, -1, -1, -1,
- -1, -1, -1, 55, 56, 57, 58, -1, -1, 47,
+ -1, -1, -1, -1, 55, 56, 57, 58, -1, 47,
-1, 49, 50, 51, 52, 53, 54, 94, -1, -1,
- -1, 59, 60, 61, 62, 63, 64, -1, 66, 81,
- 82, 83, -1, -1, 72, -1, 88, 89, 90, -1,
- -1, 93, -1, -1, -1, -1, 84, 85, 86, -1,
+ -1, 59, 60, 61, 62, 63, 64, -1, 66, 80,
+ 81, 82, 83, -1, 72, -1, -1, 88, 89, 90,
+ -1, -1, 93, -1, -1, -1, 84, 85, 86, -1,
-1, -1, -1, 91, 92, -1, 6, 95, 8, -1,
10, 11, 12, 13, 14, 15, 16, 7, 18, 19,
20, 21, 22, -1, 24, 25, 26, 27, 28, -1,
- -1, -1, -1, 33, -1, -1, -1, -1, -1, -1,
+ 69, 70, 71, 33, -1, -1, -1, -1, -1, -1,
30, 31, 32, -1, 34, 35, -1, 47, -1, 49,
- 50, 51, 52, 53, 54, -1, -1, -1, -1, 59,
+ 50, 51, 52, 53, 54, 94, -1, -1, -1, 59,
60, 61, 62, 63, 64, -1, 66, -1, 6, -1,
8, 9, 72, -1, -1, 65, -1, -1, -1, 17,
36, 37, 38, 39, 84, 85, 86, 43, -1, 45,
-1, 91, 92, -1, -1, 95, -1, -1, 36, 37,
- 38, 39, -1, -1, -1, 43, 96, 45, -1, -1,
+ 38, 39, 69, 70, 71, 43, 96, 45, -1, -1,
48, -1, -1, 69, 70, 71, -1, 55, 56, 57,
- 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 58, 69, 70, 71, 69, 70, 71, 94, -1, -1,
-1, 69, 70, 71, -1, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, -1, -1, -1, -1,
- 88, 89, 90, -1, -1, 93, 94, 8, 9, 10,
+ 78, 79, 80, 81, 82, 83, 94, -1, -1, 94,
+ 88, 89, 90, 57, 58, 93, 94, 8, 9, 10,
11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
- 21, 22, -1, 24, 25, 26, 27, 28, -1, -1,
- -1, -1, 33, -1, -1, -1, -1, -1, -1, 55,
- 56, 57, 58, -1, -1, -1, 47, -1, 49, 50,
+ 21, 22, -1, 24, 25, 26, 27, 28, 82, 83,
+ -1, -1, 33, -1, 88, 89, 90, -1, -1, 93,
+ 55, 56, 57, 58, -1, -1, 47, -1, 49, 50,
51, 52, 53, 54, -1, -1, -1, -1, 59, 60,
- 61, 62, 63, 64, -1, 66, 82, 83, -1, -1,
- -1, 72, 88, 89, 90, -1, -1, 93, -1, -1,
+ 61, 62, 63, 64, -1, 66, 81, 82, 83, -1,
+ -1, 72, -1, 88, 89, 90, -1, -1, 93, -1,
-1, -1, -1, 84, 85, 86, -1, -1, -1, -1,
91, 92, -1, 8, 95, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
@@ -778,7 +771,7 @@ static const yytype_int16 yycheck[] =
95, 10, 11, 12, 13, 14, 15, 16, -1, 18,
19, 20, 21, 22, -1, 24, 25, 26, 27, 28,
-1, -1, -1, -1, 33, -1, -1, -1, -1, -1,
- -1, 55, -1, 57, 58, -1, -1, -1, 47, -1,
+ -1, 55, 56, 57, 58, -1, -1, -1, 47, -1,
49, 50, 51, 52, 53, 54, -1, -1, -1, -1,
59, 60, 61, 62, 63, 64, -1, 66, 82, 83,
-1, -1, -1, 72, 88, 89, 90, -1, -1, 93,
@@ -786,7 +779,7 @@ static const yytype_int16 yycheck[] =
-1, -1, 91, 92, -1, 94, 95, 8, -1, 10,
11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
21, 22, -1, 24, 25, 26, 27, 28, -1, -1,
- -1, -1, 33, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 33, -1, -1, -1, -1, -1, -1, 55,
-1, 57, 58, -1, -1, -1, 47, -1, 49, 50,
51, 52, 53, 54, -1, -1, -1, -1, 59, 60,
61, 62, 63, 64, -1, 66, 82, 83, -1, -1,
@@ -859,13 +852,13 @@ static const yytype_int16 yycheck[] =
55, 56, 57, 58, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 69, 70, 71, -1, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
- 380, -1, 382, 88, 89, 90, 386, -1, 93, 94,
+ 381, -1, 383, 88, 89, 90, 387, -1, 93, 94,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 403, 404, -1, 48, -1, -1, -1,
- -1, 411, 412, 55, 56, 57, 58, -1, -1, -1,
- -1, 421, -1, -1, -1, 425, -1, -1, -1, -1,
+ -1, -1, -1, 404, 405, -1, 48, -1, -1, -1,
+ -1, 412, 413, 55, 56, 57, 58, -1, -1, -1,
+ -1, 422, -1, -1, -1, 426, -1, -1, -1, -1,
-1, -1, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 442, 443, -1, 48, 88, 89, 90, -1,
+ 82, 83, 443, 444, -1, 48, 88, 89, 90, -1,
-1, 93, 55, 56, 57, 58, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
@@ -884,51 +877,51 @@ static const yytype_int16 yycheck[] =
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 3, 4, 5, 98, 100, 104, 30, 31, 32,
- 34, 35, 65, 96, 108, 109, 115, 116, 124, 125,
- 126, 127, 129, 130, 139, 140, 142, 99, 0, 107,
- 133, 131, 18, 131, 131, 1, 6, 8, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 24, 25, 26, 27, 28, 29, 33, 36, 37,
- 38, 39, 43, 44, 45, 46, 47, 49, 50, 51,
- 52, 53, 54, 59, 60, 61, 62, 63, 64, 66,
- 72, 84, 85, 86, 91, 92, 95, 101, 110, 112,
- 113, 144, 145, 146, 149, 150, 151, 152, 153, 154,
- 155, 162, 163, 164, 165, 166, 167, 107, 109, 125,
- 18, 128, 18, 134, 18, 143, 134, 102, 9, 144,
- 154, 154, 18, 23, 101, 163, 168, 168, 168, 168,
- 168, 168, 168, 95, 8, 154, 132, 132, 24, 95,
- 159, 159, 159, 159, 64, 159, 163, 159, 159, 101,
- 154, 95, 95, 95, 101, 154, 18, 145, 157, 163,
- 168, 168, 18, 101, 154, 163, 17, 144, 18, 154,
- 95, 156, 163, 164, 165, 154, 145, 154, 154, 154,
- 154, 154, 94, 144, 42, 114, 17, 36, 37, 38,
- 39, 43, 45, 69, 70, 71, 73, 6, 8, 159,
- 48, 55, 56, 57, 58, 74, 75, 77, 78, 79,
- 80, 81, 82, 83, 88, 89, 90, 93, 159, 6,
- 8, 6, 8, 6, 101, 21, 135, 6, 17, 18,
- 135, 107, 9, 157, 95, 145, 144, 101, 135, 160,
- 102, 102, 102, 102, 102, 102, 159, 102, 102, 94,
- 94, 144, 144, 158, 168, 145, 159, 159, 7, 17,
- 157, 94, 144, 67, 137, 8, 94, 101, 144, 120,
- 144, 144, 144, 144, 144, 144, 144, 144, 154, 144,
- 144, 94, 144, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 6, 8,
- 19, 95, 148, 163, 94, 144, 144, 144, 144, 144,
- 144, 67, 136, 102, 18, 136, 7, 158, 94, 9,
- 147, 136, 95, 119, 144, 120, 121, 144, 120, 123,
- 161, 163, 110, 118, 121, 122, 144, 102, 103, 121,
- 94, 94, 144, 94, 144, 94, 144, 7, 94, 21,
- 144, 8, 17, 9, 94, 76, 144, 144, 94, 144,
- 159, 94, 17, 9, 17, 9, 17, 21, 17, 101,
- 138, 141, 157, 138, 94, 157, 101, 94, 94, 94,
- 94, 159, 94, 17, 121, 121, 94, 94, 94, 94,
- 9, 144, 7, 154, 17, 9, 94, 158, 7, 7,
- 7, 107, 17, 117, 117, 6, 105, 105, 121, 105,
- 119, 94, 94, 105, 9, 7, 94, 7, 105, 105,
- 106, 40, 41, 111, 111, 94, 114, 17, 105, 105,
- 114, 114, 107, 105, 159, 105, 117, 114, 7, 121,
- 114, 122, 94, 94, 105, 105, 111
+ 0, 3, 4, 5, 98, 101, 105, 99, 100, 0,
+ 108, 30, 31, 32, 34, 35, 65, 96, 109, 110,
+ 116, 117, 125, 126, 127, 128, 130, 131, 140, 141,
+ 143, 108, 110, 126, 134, 132, 18, 132, 132, 1,
+ 6, 8, 10, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 24, 25, 26, 27, 28,
+ 29, 33, 36, 37, 38, 39, 43, 44, 45, 46,
+ 47, 49, 50, 51, 52, 53, 54, 59, 60, 61,
+ 62, 63, 64, 66, 72, 84, 85, 86, 91, 92,
+ 95, 102, 111, 113, 114, 145, 146, 147, 150, 151,
+ 152, 153, 154, 155, 156, 163, 164, 165, 166, 167,
+ 168, 18, 129, 18, 135, 18, 144, 135, 103, 9,
+ 145, 155, 155, 18, 23, 102, 164, 169, 169, 169,
+ 169, 169, 169, 169, 95, 8, 155, 133, 133, 24,
+ 95, 160, 160, 160, 160, 64, 160, 164, 160, 160,
+ 102, 155, 95, 95, 95, 102, 155, 18, 146, 158,
+ 164, 169, 169, 18, 102, 155, 164, 17, 145, 18,
+ 155, 95, 157, 164, 165, 166, 155, 146, 155, 155,
+ 155, 155, 155, 94, 145, 42, 115, 17, 36, 37,
+ 38, 39, 43, 45, 69, 70, 71, 73, 6, 8,
+ 160, 48, 55, 56, 57, 58, 74, 75, 77, 78,
+ 79, 80, 81, 82, 83, 88, 89, 90, 93, 160,
+ 6, 8, 6, 8, 6, 102, 21, 136, 6, 17,
+ 18, 136, 108, 9, 158, 95, 146, 145, 102, 136,
+ 161, 103, 103, 103, 103, 103, 103, 160, 103, 103,
+ 94, 94, 145, 145, 159, 169, 146, 160, 160, 7,
+ 17, 158, 94, 145, 67, 138, 8, 94, 102, 145,
+ 121, 145, 145, 145, 145, 145, 145, 145, 145, 155,
+ 145, 145, 94, 145, 155, 155, 155, 155, 155, 155,
+ 155, 155, 155, 155, 155, 155, 155, 155, 155, 6,
+ 8, 19, 95, 149, 164, 94, 145, 145, 145, 145,
+ 145, 145, 67, 137, 103, 18, 137, 7, 159, 94,
+ 9, 148, 137, 95, 120, 145, 121, 122, 145, 121,
+ 124, 162, 164, 111, 119, 122, 123, 145, 103, 104,
+ 122, 94, 94, 145, 94, 145, 94, 145, 7, 94,
+ 21, 145, 8, 17, 9, 94, 76, 145, 145, 94,
+ 145, 160, 94, 17, 9, 17, 9, 17, 21, 17,
+ 102, 139, 142, 158, 139, 94, 158, 102, 94, 94,
+ 94, 94, 160, 94, 17, 122, 122, 94, 94, 94,
+ 94, 9, 145, 7, 155, 17, 9, 94, 159, 7,
+ 7, 7, 108, 17, 118, 118, 6, 106, 106, 122,
+ 106, 120, 94, 94, 106, 9, 7, 94, 7, 106,
+ 106, 107, 40, 41, 112, 112, 94, 115, 17, 106,
+ 106, 115, 115, 108, 106, 160, 106, 118, 115, 7,
+ 122, 115, 123, 94, 94, 106, 106, 112
};
typedef enum {
@@ -951,7 +944,7 @@ static const toketypes yy_type_tab[] =
toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
- toketype_i_tkval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_ival,
+ toketype_i_tkval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_ival,
toketype_ival, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_opval,
toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
diff --git a/perly.y b/perly.y
index cc27ee295a..2b34f7d782 100644
--- a/perly.y
+++ b/perly.y
@@ -143,9 +143,13 @@
/* Top-level choice of what kind of thing yyparse was called to parse */
grammar : GRAMPROG prog
{ $$ = $2; }
- | GRAMFULLSTMT fullstmt
+ | GRAMFULLSTMT
{
- PL_eval_root = $2;
+ parser->expect = XSTATE;
+ }
+ fullstmt
+ {
+ PL_eval_root = $3;
$$ = 0;
yyunlex();
parser->yychar = YYEOF;