summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZefram <zefram@fysh.org>2010-10-14 01:52:59 +0100
committerFather Chrysostomos <sprout@cpan.org>2010-10-21 05:53:25 -0700
commita7aaec61655ef1580eb319cf234db0f3d5c9981e (patch)
tree5897e4d98914cd94069fa936eb35f577d8d61c6e
parent640d5d412e67683edc19515df4462d7bb4739ae2 (diff)
downloadperl-a7aaec61655ef1580eb319cf234db0f3d5c9981e.tar.gz
handle bracket stack better in recdescent parsing
When recursing into the parser for recursive-descent parsing, put a special entry on the bracket stack that generates a fake EOF if a closing bracket belonging to an outer parser frame is seen. This keeps the bracket stack balanced across a parse_stmtseq() frame, fixing [perl #78222]. If a recursive-descent parser frame ends by yyunlex()ing an opening bracket, pop its entry off the bracket stack and stash it in the forced-token queue, to be revived when the token is re-lexed. This keeps the bracket stack balanced across a parse_fullstmt() frame.
-rw-r--r--MANIFEST1
-rw-r--r--ext/XS-APItest/APItest.pm2
-rw-r--r--ext/XS-APItest/APItest.xs21
-rw-r--r--ext/XS-APItest/t/looprest.t29
-rw-r--r--ext/XS-APItest/t/scopelessblock.t132
-rw-r--r--ext/XS-APItest/t/swaptwostmts.t28
-rw-r--r--perly.act840
-rw-r--r--perly.tab1279
-rw-r--r--perly.y20
-rw-r--r--toke.c68
10 files changed, 1311 insertions, 1109 deletions
diff --git a/MANIFEST b/MANIFEST
index 4efbbae76d..cfe75a635c 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3413,6 +3413,7 @@ ext/XS-APItest/t/push.t XS::APItest extension
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/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 fdc5b5498a..d4365cf827 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)\z/;
+ next unless /\A(?:rpn|calcrpn|stufftest|swaptwostmts|looprest|scopelessblock)\z/;
$^H{"XS::APItest/$_"} = 1;
delete $exports->{$_};
}
diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs
index da372811b4..f93f20a539 100644
--- a/ext/XS-APItest/APItest.xs
+++ b/ext/XS-APItest/APItest.xs
@@ -518,6 +518,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 int (*next_keyword_plugin)(pTHX_ char *, STRLEN, OP **);
/* low-level parser helpers */
@@ -699,6 +700,21 @@ static OP *THX_parse_keyword_looprest(pTHX)
body, NULL, 1);
}
+#define parse_keyword_scopelessblock() THX_parse_keyword_scopelessblock(aTHX)
+static OP *THX_parse_keyword_scopelessblock(pTHX)
+{
+ I32 c;
+ OP *body;
+ lex_read_space(0);
+ if(lex_peek_unichar(0) != '{'/*}*/) croak("syntax error");
+ lex_read_unichar(0);
+ body = parse_stmtseq(0);
+ c = lex_peek_unichar(0);
+ if(c != /*{*/'}' && c != /*[*/']' && c != /*(*/')') croak("syntax error");
+ lex_read_unichar(0);
+ return body;
+}
+
/* plugin glue */
#define keyword_active(hintkey_sv) THX_keyword_active(aTHX_ hintkey_sv)
@@ -735,6 +751,10 @@ static int my_keyword_plugin(pTHX_
keyword_active(hintkey_looprest_sv)) {
*op_ptr = parse_keyword_looprest();
return KEYWORD_PLUGIN_STMT;
+ } else if(keyword_len == 14 && strnEQ(keyword_ptr, "scopelessblock", 14) &&
+ keyword_active(hintkey_scopelessblock_sv)) {
+ *op_ptr = parse_keyword_scopelessblock();
+ return KEYWORD_PLUGIN_STMT;
} else {
return next_keyword_plugin(aTHX_ keyword_ptr, keyword_len, op_ptr);
}
@@ -2142,6 +2162,7 @@ BOOT:
hintkey_stufftest_sv = newSVpvs_share("XS::APItest/stufftest");
hintkey_swaptwostmts_sv = newSVpvs_share("XS::APItest/swaptwostmts");
hintkey_looprest_sv = newSVpvs_share("XS::APItest/looprest");
+ hintkey_scopelessblock_sv = newSVpvs_share("XS::APItest/scopelessblock");
next_keyword_plugin = PL_keyword_plugin;
PL_keyword_plugin = my_keyword_plugin;
}
diff --git a/ext/XS-APItest/t/looprest.t b/ext/XS-APItest/t/looprest.t
index 0881ca043b..e37ef87941 100644
--- a/ext/XS-APItest/t/looprest.t
+++ b/ext/XS-APItest/t/looprest.t
@@ -1,7 +1,7 @@
use warnings;
use strict;
-use Test::More tests => 10;
+use Test::More tests => 14;
BEGIN { $^H |= 0x20000; }
@@ -84,4 +84,31 @@ eval q{
is $@, "";
is $t, "aabbccdbca";
+$t = "";
+eval q{
+ use XS::APItest qw(looprest);
+ do {
+ { $t .= "a"; }
+ looprest
+ { $t .= "b"; }
+ last unless length($t) < 5;
+ { $t .= "c"; }
+ };
+ $t .= "d";
+};
+is $@, "";
+is $t, "abcbcbd";
+
+$t = "";
+eval q{
+ use XS::APItest qw(looprest);
+ { $t .= "a"; }
+ looprest
+ { $t .= "b"; }
+ last unless length($t) < 5;
+ { $t .= "c"; }
+};
+is $@, "";
+is $t, "abcbcb";
+
1;
diff --git a/ext/XS-APItest/t/scopelessblock.t b/ext/XS-APItest/t/scopelessblock.t
new file mode 100644
index 0000000000..c08f0b0db9
--- /dev/null
+++ b/ext/XS-APItest/t/scopelessblock.t
@@ -0,0 +1,132 @@
+use warnings;
+use strict;
+
+use Test::More tests => 18;
+
+BEGIN { $^H |= 0x20000; }
+
+my $t;
+
+$t = "";
+eval q{
+ use XS::APItest qw(scopelessblock);
+ $t .= "a";
+ scopelessblock {
+ $t .= "b";
+ }
+ $t .= "c";
+};
+is $@, "";
+is $t, "abc";
+
+$t = "";
+eval q{
+ use XS::APItest qw(scopelessblock);
+ $t .= "a";
+ scopelessblock {
+ my $t = "z";
+ $t .= "b";
+ }
+ $t .= "c";
+};
+is $@, "";
+is $t, "a";
+
+$t = "";
+eval q{
+ use XS::APItest qw(scopelessblock);
+ my $f = 1.5;
+ $t .= "a(".($f+$f).")";
+ scopelessblock {
+ use integer;
+ $t .= "b(".($f+$f).")";
+ }
+ $t .= "c(".($f+$f).")";
+};
+is $@, "";
+is $t, "a(3)b(2)c(2)";
+
+$t = "";
+eval q{
+ use XS::APItest qw(scopelessblock);
+ our $z = "z";
+ $t .= "a$z";
+ scopelessblock {
+ local $z = "y";
+ $t .= "b$z";
+ }
+ $t .= "c$z";
+};
+is $@, "";
+is $t, "azbycy";
+
+$t = "";
+eval q{
+ use XS::APItest qw(scopelessblock);
+ $t .= "A";
+ do {
+ $t .= "a";
+ scopelessblock {
+ $t .= "b";
+ }
+ $t .= "c";
+ };
+ $t .= "B";
+};
+is $@, "";
+is $t, "AabcB";
+
+$t = "";
+eval q|
+ use XS::APItest qw(scopelessblock);
+ $t .= "a";
+ scopelessblock {
+ $t .= "b";
+ ]
+ $t .= "c";
+|;
+isnt $@, "";
+is $t, "";
+
+$SIG{__WARN__} = sub { };
+$t = "";
+eval q|
+ use XS::APItest qw(scopelessblock);
+ $t .= "a";
+ scopelessblock {
+ $t .= "b";
+ )
+ $t .= "c";
+|;
+isnt $@, "";
+is $t, "";
+
+$t = "";
+eval q{
+ use XS::APItest qw(scopelessblock);
+ { $t .= "a"; }
+ scopelessblock {
+ { $t .= "b"; }
+ }
+ { $t .= "c"; }
+};
+is $@, "";
+is $t, "abc";
+
+$t = "";
+eval q{
+ use XS::APItest qw(scopelessblock);
+ $t .= "A";
+ do {
+ { $t .= "a"; }
+ scopelessblock {
+ { $t .= "b"; }
+ }
+ { $t .= "c"; }
+ };
+ $t .= "B";
+};
+is $@, "";
+is $t, "AabcB";
+
+1;
diff --git a/ext/XS-APItest/t/swaptwostmts.t b/ext/XS-APItest/t/swaptwostmts.t
index c11d650962..155ff62577 100644
--- a/ext/XS-APItest/t/swaptwostmts.t
+++ b/ext/XS-APItest/t/swaptwostmts.t
@@ -1,7 +1,7 @@
use warnings;
use strict;
-use Test::More tests => 22;
+use Test::More tests => 26;
BEGIN { $^H |= 0x20000; }
@@ -146,6 +146,32 @@ $t = "";
eval q{
use XS::APItest qw(swaptwostmts);
no warnings "void";
+ { $t .= "a"; }
+ swaptwostmts
+ if(1) { { $t .= "b"; } }
+ {};
+ { $t .= "d"; }
+};
+is $@, "";
+is $t, "abd";
+
+$t = "";
+eval q{
+ use XS::APItest qw(swaptwostmts);
+ no warnings "void";
+ { $t .= "a"; }
+ swaptwostmts
+ if(1) { { $t .= "b"; } }
+ [];
+ { $t .= "d"; }
+};
+is $@, "";
+is $t, "abd";
+
+$t = "";
+eval q{
+ use XS::APItest qw(swaptwostmts);
+ no warnings "void";
"@{[ $t .= 'a' ]}";
swaptwostmts
if(1) { "@{[ $t .= 'b' ]}"; }
diff --git a/perly.act b/perly.act
index 3401882e5d..2fcd60a02c 100644
--- a/perly.act
+++ b/perly.act
@@ -23,38 +23,18 @@ case 2:
case 5:
#line 158 "perly.y"
{
- PL_eval_root = (ps[(3) - (4)].val.opval);
+ PL_eval_root = (ps[(3) - (3)].val.opval);
(yyval.ival) = 0;
;}
break;
case 6:
-#line 165 "perly.y"
- {
- assert(parser->yychar == YYEMPTY);
- assert(parser->bufptr != SvPVX(parser->linestr));
- assert(parser->bufptr[-1] == '}');
- parser->bufptr--;
- parser->lex_brackstack[parser->lex_brackets++] =
- XSTATE;
- parser->expect = XSTATE;
- parser->yychar = YYEOF;
- (yyval.ival) = 0;
- ;}
- break;
-
- case 7:
-#line 177 "perly.y"
- { (yyval.ival) = 0; ;}
- break;
-
- case 8:
-#line 183 "perly.y"
+#line 167 "perly.y"
{ (yyval.ival) = (ps[(1) - (2)].val.ival); newPROG(block_end((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval))); ;}
break;
- case 9:
-#line 188 "perly.y"
+ case 7:
+#line 172 "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));
@@ -63,25 +43,25 @@ case 2:
;}
break;
- case 10:
-#line 197 "perly.y"
+ case 8:
+#line 181 "perly.y"
{ (yyval.ival) = block_start(TRUE); ;}
break;
- case 11:
-#line 201 "perly.y"
+ case 9:
+#line 185 "perly.y"
{ (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
break;
- case 12:
-#line 205 "perly.y"
+ case 10:
+#line 189 "perly.y"
{
PL_parser->expect = XSTATE; (yyval.ival) = block_start(TRUE);
;}
break;
- case 13:
-#line 212 "perly.y"
+ case 11:
+#line 196 "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));
@@ -90,25 +70,25 @@ case 2:
;}
break;
- case 14:
-#line 221 "perly.y"
+ case 12:
+#line 205 "perly.y"
{ (yyval.ival) = block_start(FALSE); ;}
break;
- case 15:
-#line 226 "perly.y"
+ case 13:
+#line 210 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 16:
-#line 228 "perly.y"
+ case 14:
+#line 212 "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 17:
-#line 232 "perly.y"
+ case 15:
+#line 216 "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))
@@ -116,37 +96,37 @@ case 2:
;}
break;
- case 18:
-#line 241 "perly.y"
+ case 16:
+#line 225 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 19:
-#line 243 "perly.y"
+ case 17:
+#line 227 "perly.y"
{
PL_pad_reset_pending = TRUE;
(yyval.opval) = (ps[(1) - (1)].val.opval);
;}
break;
- case 20:
-#line 251 "perly.y"
+ case 18:
+#line 235 "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 22:
-#line 255 "perly.y"
+ case 20:
+#line 239 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 23:
-#line 257 "perly.y"
+ case 21:
+#line 241 "perly.y"
{ (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
break;
- case 24:
-#line 259 "perly.y"
+ case 22:
+#line 243 "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));
@@ -165,8 +145,8 @@ case 2:
;}
break;
- case 25:
-#line 276 "perly.y"
+ case 23:
+#line 260 "perly.y"
{
(yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)), (ps[(2) - (3)].val.opval));
PL_parser->expect = XSTATE;
@@ -184,84 +164,84 @@ case 2:
;}
break;
- case 26:
-#line 292 "perly.y"
+ case 24:
+#line 276 "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 27:
-#line 297 "perly.y"
+ case 25:
+#line 281 "perly.y"
{ (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
break;
- case 28:
-#line 302 "perly.y"
+ case 26:
+#line 286 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 29:
-#line 304 "perly.y"
+ case 27:
+#line 288 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 30:
-#line 306 "perly.y"
+ case 28:
+#line 290 "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 31:
-#line 310 "perly.y"
+ case 29:
+#line 294 "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 32:
-#line 314 "perly.y"
+ case 30:
+#line 298 "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 33:
-#line 318 "perly.y"
+ case 31:
+#line 302 "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 34:
-#line 322 "perly.y"
+ case 32:
+#line 306 "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 35:
-#line 327 "perly.y"
+ case 33:
+#line 311 "perly.y"
{ (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
break;
- case 36:
-#line 332 "perly.y"
+ case 34:
+#line 316 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 37:
-#line 334 "perly.y"
+ case 35:
+#line 318 "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 38:
-#line 338 "perly.y"
+ case 36:
+#line 322 "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;
@@ -271,8 +251,8 @@ case 2:
;}
break;
- case 39:
-#line 349 "perly.y"
+ case 37:
+#line 333 "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)));
@@ -282,8 +262,8 @@ case 2:
;}
break;
- case 40:
-#line 357 "perly.y"
+ case 38:
+#line 341 "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)));
@@ -293,31 +273,31 @@ case 2:
;}
break;
- case 41:
-#line 368 "perly.y"
+ case 39:
+#line 352 "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 42:
-#line 371 "perly.y"
+ case 40:
+#line 355 "perly.y"
{ (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
break;
- case 43:
-#line 376 "perly.y"
+ case 41:
+#line 360 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 44:
-#line 378 "perly.y"
+ case 42:
+#line 362 "perly.y"
{ (yyval.opval) = scope((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 45:
-#line 385 "perly.y"
+ case 43:
+#line 369 "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),
@@ -331,8 +311,8 @@ case 2:
;}
break;
- case 46:
-#line 398 "perly.y"
+ case 44:
+#line 382 "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),
@@ -346,8 +326,8 @@ case 2:
;}
break;
- case 47:
-#line 410 "perly.y"
+ case 45:
+#line 394 "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)),
@@ -360,8 +340,8 @@ case 2:
;}
break;
- case 48:
-#line 421 "perly.y"
+ case 46:
+#line 405 "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)),
@@ -373,8 +353,8 @@ case 2:
;}
break;
- case 49:
-#line 431 "perly.y"
+ case 47:
+#line 415 "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)),
@@ -386,8 +366,8 @@ case 2:
;}
break;
- case 50:
-#line 443 "perly.y"
+ case 48:
+#line 427 "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)),
@@ -419,16 +399,16 @@ case 2:
(yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
break;
- case 51:
-#line 473 "perly.y"
+ case 49:
+#line 457 "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 52:
-#line 481 "perly.y"
+ case 50:
+#line 465 "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)),
@@ -436,47 +416,47 @@ case 2:
(PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
break;
- case 53:
-#line 490 "perly.y"
+ case 51:
+#line 474 "perly.y"
{ (yyval.ival) = (PL_min_intro_pending &&
PL_max_intro_pending >= PL_min_intro_pending);
intro_my(); ;}
break;
- case 54:
-#line 496 "perly.y"
+ case 52:
+#line 480 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 56:
-#line 502 "perly.y"
+ case 54:
+#line 486 "perly.y"
{ YYSTYPE tmplval;
(void)scan_num("1", &tmplval);
(yyval.opval) = tmplval.opval; ;}
break;
- case 58:
-#line 510 "perly.y"
+ case 56:
+#line 494 "perly.y"
{ (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
break;
- case 59:
-#line 515 "perly.y"
+ case 57:
+#line 499 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
break;
- case 60:
-#line 519 "perly.y"
+ case 58:
+#line 503 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
break;
- case 61:
-#line 523 "perly.y"
+ case 59:
+#line 507 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
break;
- case 62:
-#line 528 "perly.y"
+ case 60:
+#line 512 "perly.y"
{
#ifdef MAD
YYSTYPE tmplval;
@@ -488,45 +468,45 @@ case 2:
;}
break;
- case 64:
-#line 542 "perly.y"
+ case 62:
+#line 526 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 65:
-#line 544 "perly.y"
+ case 63:
+#line 528 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 66:
-#line 546 "perly.y"
+ case 64:
+#line 530 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 67:
-#line 548 "perly.y"
+ case 65:
+#line 532 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 68:
-#line 550 "perly.y"
+ case 66:
+#line 534 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 69:
-#line 555 "perly.y"
+ case 67:
+#line 539 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 70:
-#line 559 "perly.y"
+ case 68:
+#line 543 "perly.y"
{ (yyval.opval) = newOP(OP_NULL,0);
TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
;}
break;
- case 71:
-#line 565 "perly.y"
+ case 69:
+#line 549 "perly.y"
{
CV *fmtcv = PL_compcv;
SvREFCNT_inc_simple_void(PL_compcv);
@@ -546,18 +526,18 @@ case 2:
;}
break;
- case 72:
-#line 584 "perly.y"
+ case 70:
+#line 568 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 73:
-#line 585 "perly.y"
+ case 71:
+#line 569 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 74:
-#line 590 "perly.y"
+ case 72:
+#line 574 "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));
@@ -569,8 +549,8 @@ case 2:
;}
break;
- case 75:
-#line 603 "perly.y"
+ case 73:
+#line 587 "perly.y"
{ SvREFCNT_inc_simple_void(PL_compcv);
#ifdef MAD
{
@@ -592,26 +572,26 @@ case 2:
;}
break;
- case 76:
-#line 625 "perly.y"
+ case 74:
+#line 609 "perly.y"
{ (yyval.ival) = start_subparse(FALSE, 0);
SAVEFREESV(PL_compcv); ;}
break;
- case 77:
-#line 631 "perly.y"
+ case 75:
+#line 615 "perly.y"
{ (yyval.ival) = start_subparse(FALSE, CVf_ANON);
SAVEFREESV(PL_compcv); ;}
break;
- case 78:
-#line 636 "perly.y"
+ case 76:
+#line 620 "perly.y"
{ (yyval.ival) = start_subparse(TRUE, 0);
SAVEFREESV(PL_compcv); ;}
break;
- case 79:
-#line 641 "perly.y"
+ case 77:
+#line 625 "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")
@@ -620,25 +600,25 @@ case 2:
(yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 80:
-#line 651 "perly.y"
+ case 78:
+#line 635 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 82:
-#line 657 "perly.y"
+ case 80:
+#line 641 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 83:
-#line 659 "perly.y"
+ case 81:
+#line 643 "perly.y"
{ (yyval.opval) = (ps[(2) - (2)].val.opval);
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
;}
break;
- case 84:
-#line 663 "perly.y"
+ case 82:
+#line 647 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL, 0),
(OP*)NULL
@@ -647,15 +627,15 @@ case 2:
;}
break;
- case 85:
-#line 673 "perly.y"
+ case 83:
+#line 657 "perly.y"
{ (yyval.opval) = (ps[(2) - (2)].val.opval);
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
;}
break;
- case 86:
-#line 677 "perly.y"
+ case 84:
+#line 661 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL, 0),
(OP*)NULL
@@ -664,13 +644,13 @@ case 2:
;}
break;
- case 87:
-#line 686 "perly.y"
+ case 85:
+#line 670 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 88:
-#line 687 "perly.y"
+ case 86:
+#line 671 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL,0),
(OP*)NULL
@@ -680,8 +660,8 @@ case 2:
;}
break;
- case 89:
-#line 697 "perly.y"
+ case 87:
+#line 681 "perly.y"
{
#ifdef MAD
(yyval.opval) = package((ps[(3) - (4)].val.opval));
@@ -698,8 +678,8 @@ case 2:
;}
break;
- case 90:
-#line 714 "perly.y"
+ case 88:
+#line 698 "perly.y"
{
int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
(ps[(3) - (5)].val.opval)->op_latefree = 1;
@@ -714,8 +694,8 @@ case 2:
;}
break;
- case 91:
-#line 727 "perly.y"
+ case 89:
+#line 711 "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));
@@ -727,13 +707,13 @@ case 2:
;}
break;
- case 92:
-#line 739 "perly.y"
+ case 90:
+#line 723 "perly.y"
{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
break;
- case 93:
-#line 741 "perly.y"
+ case 91:
+#line 725 "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));
@@ -749,29 +729,29 @@ case 2:
;}
break;
- case 94:
-#line 758 "perly.y"
+ case 92:
+#line 742 "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 95:
-#line 762 "perly.y"
+ case 93:
+#line 746 "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 96:
-#line 766 "perly.y"
+ case 94:
+#line 750 "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 98:
-#line 774 "perly.y"
+ case 96:
+#line 758 "perly.y"
{
#ifdef MAD
OP* op = newNULLLIST();
@@ -783,8 +763,8 @@ case 2:
;}
break;
- case 99:
-#line 784 "perly.y"
+ case 97:
+#line 768 "perly.y"
{
OP* term = (ps[(3) - (3)].val.opval);
DO_MAD(
@@ -795,16 +775,16 @@ case 2:
;}
break;
- case 101:
-#line 797 "perly.y"
+ case 99:
+#line 781 "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 102:
-#line 802 "perly.y"
+ case 100:
+#line 786 "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');
@@ -813,8 +793,8 @@ case 2:
;}
break;
- case 103:
-#line 809 "perly.y"
+ case 101:
+#line 793 "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)),
@@ -825,8 +805,8 @@ case 2:
;}
break;
- case 104:
-#line 818 "perly.y"
+ case 102:
+#line 802 "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))));
@@ -834,8 +814,8 @@ case 2:
;}
break;
- case 105:
-#line 824 "perly.y"
+ case 103:
+#line 808 "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)),
@@ -843,8 +823,8 @@ case 2:
;}
break;
- case 106:
-#line 830 "perly.y"
+ case 104:
+#line 814 "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)),
@@ -854,15 +834,15 @@ case 2:
;}
break;
- case 107:
-#line 838 "perly.y"
+ case 105:
+#line 822 "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 108:
-#line 842 "perly.y"
+ case 106:
+#line 826 "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),'(');
@@ -870,22 +850,22 @@ case 2:
;}
break;
- case 109:
-#line 848 "perly.y"
+ case 107:
+#line 832 "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 110:
-#line 851 "perly.y"
+ case 108:
+#line 835 "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 113:
-#line 866 "perly.y"
+ case 111:
+#line 850 "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),'{');
@@ -894,16 +874,16 @@ case 2:
;}
break;
- case 114:
-#line 873 "perly.y"
+ case 112:
+#line 857 "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 115:
-#line 878 "perly.y"
+ case 113:
+#line 862 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0,
ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
scalar((ps[(4) - (5)].val.opval)));
@@ -913,8 +893,8 @@ case 2:
;}
break;
- case 116:
-#line 886 "perly.y"
+ case 114:
+#line 870 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0,
ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
scalar((ps[(3) - (4)].val.opval)));
@@ -923,8 +903,8 @@ case 2:
;}
break;
- case 117:
-#line 893 "perly.y"
+ case 115:
+#line 877 "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),'{');
@@ -933,8 +913,8 @@ case 2:
;}
break;
- case 118:
-#line 900 "perly.y"
+ case 116:
+#line 884 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0,
ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
jmaybe((ps[(4) - (6)].val.opval)));
@@ -946,8 +926,8 @@ case 2:
;}
break;
- case 119:
-#line 910 "perly.y"
+ case 117:
+#line 894 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0,
ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
jmaybe((ps[(3) - (5)].val.opval)));
@@ -958,8 +938,8 @@ case 2:
;}
break;
- case 120:
-#line 919 "perly.y"
+ case 118:
+#line 903 "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');
@@ -968,8 +948,8 @@ case 2:
;}
break;
- case 121:
-#line 926 "perly.y"
+ case 119:
+#line 910 "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)))));
@@ -979,8 +959,8 @@ case 2:
;}
break;
- case 122:
-#line 935 "perly.y"
+ case 120:
+#line 919 "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)))));
@@ -989,8 +969,8 @@ case 2:
;}
break;
- case 123:
-#line 942 "perly.y"
+ case 121:
+#line 926 "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),'(');
@@ -998,8 +978,8 @@ case 2:
;}
break;
- case 124:
-#line 948 "perly.y"
+ case 122:
+#line 932 "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),')');
@@ -1008,16 +988,16 @@ case 2:
;}
break;
- case 125:
-#line 955 "perly.y"
+ case 123:
+#line 939 "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 126:
-#line 960 "perly.y"
+ case 124:
+#line 944 "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),')');
@@ -1026,22 +1006,22 @@ case 2:
;}
break;
- case 127:
-#line 970 "perly.y"
+ 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 128:
-#line 974 "perly.y"
+ 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)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 129:
-#line 978 "perly.y"
+ 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)));
@@ -1049,50 +1029,50 @@ case 2:
;}
break;
- case 130:
-#line 984 "perly.y"
+ 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)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 131:
-#line 988 "perly.y"
+ case 129:
+#line 972 "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 132:
-#line 992 "perly.y"
+ case 130:
+#line 976 "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 133:
-#line 996 "perly.y"
+ case 131:
+#line 980 "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 134:
-#line 1000 "perly.y"
+ case 132:
+#line 984 "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 1004 "perly.y"
+ case 133:
+#line 988 "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 136:
-#line 1008 "perly.y"
+ case 134:
+#line 992 "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({
@@ -1106,29 +1086,29 @@ case 2:
;}
break;
- case 137:
-#line 1020 "perly.y"
+ case 135:
+#line 1004 "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 138:
-#line 1024 "perly.y"
+ case 136:
+#line 1008 "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 139:
-#line 1028 "perly.y"
+ case 137:
+#line 1012 "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 140:
-#line 1032 "perly.y"
+ case 138:
+#line 1016 "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
@@ -1137,15 +1117,15 @@ case 2:
;}
break;
- case 141:
-#line 1042 "perly.y"
+ case 139:
+#line 1026 "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 142:
-#line 1046 "perly.y"
+ case 140:
+#line 1030 "perly.y"
{ (yyval.opval) = IF_MAD(
newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
(ps[(2) - (2)].val.opval)
@@ -1154,70 +1134,70 @@ case 2:
;}
break;
- case 143:
-#line 1053 "perly.y"
+ case 141:
+#line 1037 "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 144:
-#line 1057 "perly.y"
+ case 142:
+#line 1041 "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 145:
-#line 1061 "perly.y"
+ case 143:
+#line 1045 "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 146:
-#line 1066 "perly.y"
+ case 144:
+#line 1050 "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 147:
-#line 1071 "perly.y"
+ case 145:
+#line 1055 "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 148:
-#line 1076 "perly.y"
+ case 146:
+#line 1060 "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 149:
-#line 1085 "perly.y"
+ case 147:
+#line 1069 "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 150:
-#line 1090 "perly.y"
+ case 148:
+#line 1074 "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 151:
-#line 1095 "perly.y"
+ case 149:
+#line 1079 "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),';');
@@ -1225,8 +1205,8 @@ case 2:
;}
break;
- case 152:
-#line 1101 "perly.y"
+ case 150:
+#line 1085 "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),';');
@@ -1234,8 +1214,8 @@ case 2:
;}
break;
- case 153:
-#line 1107 "perly.y"
+ case 151:
+#line 1091 "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');
@@ -1244,22 +1224,22 @@ case 2:
;}
break;
- case 154:
-#line 1118 "perly.y"
+ case 152:
+#line 1102 "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 155:
-#line 1122 "perly.y"
+ case 153:
+#line 1106 "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 156:
-#line 1126 "perly.y"
+ case 154:
+#line 1110 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
op_prepend_elem(OP_LIST,
@@ -1273,8 +1253,8 @@ case 2:
;}
break;
- case 157:
-#line 1138 "perly.y"
+ case 155:
+#line 1122 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
op_append_elem(OP_LIST,
@@ -1289,8 +1269,8 @@ case 2:
;}
break;
- case 158:
-#line 1151 "perly.y"
+ case 156:
+#line 1135 "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();
@@ -1300,8 +1280,8 @@ case 2:
;}
break;
- case 159:
-#line 1159 "perly.y"
+ case 157:
+#line 1143 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
op_prepend_elem(OP_LIST,
(ps[(4) - (5)].val.opval),
@@ -1312,86 +1292,86 @@ case 2:
;}
break;
- case 164:
-#line 1175 "perly.y"
+ case 162:
+#line 1159 "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 165:
-#line 1180 "perly.y"
+ case 163:
+#line 1164 "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 166:
-#line 1184 "perly.y"
+ case 164:
+#line 1168 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 167:
-#line 1186 "perly.y"
+ case 165:
+#line 1170 "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 168:
-#line 1190 "perly.y"
+ case 166:
+#line 1174 "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 169:
-#line 1195 "perly.y"
+ case 167:
+#line 1179 "perly.y"
{ (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
break;
- case 170:
-#line 1197 "perly.y"
+ case 168:
+#line 1181 "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 171:
-#line 1202 "perly.y"
+ case 169:
+#line 1186 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 172:
-#line 1204 "perly.y"
+ case 170:
+#line 1188 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 173:
-#line 1206 "perly.y"
+ case 171:
+#line 1190 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 174:
-#line 1208 "perly.y"
+ case 172:
+#line 1192 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 175:
-#line 1210 "perly.y"
+ case 173:
+#line 1194 "perly.y"
{ (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
break;
- case 176:
-#line 1212 "perly.y"
+ case 174:
+#line 1196 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 177:
-#line 1214 "perly.y"
+ case 175:
+#line 1198 "perly.y"
{ (yyval.opval) = op_prepend_elem(OP_ASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_ASLICE, 0,
@@ -1402,8 +1382,8 @@ case 2:
;}
break;
- case 178:
-#line 1223 "perly.y"
+ case 176:
+#line 1207 "perly.y"
{ (yyval.opval) = op_prepend_elem(OP_HSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_HSLICE, 0,
@@ -1416,26 +1396,26 @@ case 2:
;}
break;
- case 179:
-#line 1234 "perly.y"
+ case 177:
+#line 1218 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 180:
-#line 1236 "perly.y"
+ case 178:
+#line 1220 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
break;
- case 181:
-#line 1238 "perly.y"
+ case 179:
+#line 1222 "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 182:
-#line 1243 "perly.y"
+ case 180:
+#line 1227 "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))));
@@ -1450,91 +1430,91 @@ case 2:
;}
break;
- case 183:
-#line 1256 "perly.y"
+ case 181:
+#line 1240 "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 184:
-#line 1261 "perly.y"
+ case 182:
+#line 1245 "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 185:
-#line 1266 "perly.y"
+ 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 186:
-#line 1270 "perly.y"
+ case 184:
+#line 1254 "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 187:
-#line 1274 "perly.y"
+ 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');
;}
break;
- case 188:
-#line 1278 "perly.y"
+ 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');
;}
break;
- case 189:
-#line 1282 "perly.y"
+ case 187:
+#line 1266 "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');
;}
break;
- case 190:
-#line 1286 "perly.y"
+ 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');
;}
break;
- case 191:
-#line 1290 "perly.y"
+ 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');
;}
break;
- case 192:
-#line 1294 "perly.y"
+ case 190:
+#line 1278 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
break;
- case 193:
-#line 1296 "perly.y"
+ case 191:
+#line 1280 "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 194:
-#line 1299 "perly.y"
+ case 192:
+#line 1283 "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 195:
-#line 1303 "perly.y"
+ case 193:
+#line 1287 "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),'(');
@@ -1542,14 +1522,14 @@ case 2:
;}
break;
- case 196:
-#line 1309 "perly.y"
+ case 194:
+#line 1293 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
scalar((ps[(1) - (1)].val.opval))); ;}
break;
- case 197:
-#line 1312 "perly.y"
+ case 195:
+#line 1296 "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);
@@ -1560,8 +1540,8 @@ case 2:
;}
break;
- case 198:
-#line 1321 "perly.y"
+ case 196:
+#line 1305 "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),'(');
@@ -1569,16 +1549,16 @@ case 2:
;}
break;
- case 199:
-#line 1327 "perly.y"
+ case 197:
+#line 1311 "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 202:
-#line 1334 "perly.y"
+ case 200:
+#line 1318 "perly.y"
{
(yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
@@ -1586,8 +1566,8 @@ case 2:
;}
break;
- case 204:
-#line 1344 "perly.y"
+ case 202:
+#line 1328 "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');
@@ -1597,143 +1577,143 @@ case 2:
;}
break;
- case 205:
-#line 1352 "perly.y"
+ case 203:
+#line 1336 "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 206:
-#line 1359 "perly.y"
+ case 204:
+#line 1343 "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 207:
-#line 1364 "perly.y"
+ case 205:
+#line 1348 "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 208:
-#line 1369 "perly.y"
+ case 206:
+#line 1353 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 209:
-#line 1371 "perly.y"
+ case 207:
+#line 1355 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 210:
-#line 1373 "perly.y"
+ case 208:
+#line 1357 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 211:
-#line 1378 "perly.y"
+ case 209:
+#line 1362 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 212:
-#line 1380 "perly.y"
+ case 210:
+#line 1364 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 213:
-#line 1384 "perly.y"
+ case 211:
+#line 1368 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 214:
-#line 1386 "perly.y"
+ case 212:
+#line 1370 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 215:
-#line 1390 "perly.y"
+ case 213:
+#line 1374 "perly.y"
{ (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
break;
- case 216:
-#line 1392 "perly.y"
+ case 214:
+#line 1376 "perly.y"
{ munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
break;
- case 217:
-#line 1394 "perly.y"
+ case 215:
+#line 1378 "perly.y"
{ (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
break;
- case 218:
-#line 1400 "perly.y"
+ case 216:
+#line 1384 "perly.y"
{ PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
break;
- case 219:
-#line 1404 "perly.y"
+ case 217:
+#line 1388 "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 220:
-#line 1410 "perly.y"
+ case 218:
+#line 1394 "perly.y"
{ (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
;}
break;
- case 221:
-#line 1416 "perly.y"
+ case 219:
+#line 1400 "perly.y"
{ (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
;}
break;
- case 222:
-#line 1422 "perly.y"
+ case 220:
+#line 1406 "perly.y"
{ (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
;}
break;
- case 223:
-#line 1428 "perly.y"
+ case 221:
+#line 1412 "perly.y"
{ (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
;}
break;
- case 224:
-#line 1434 "perly.y"
+ case 222:
+#line 1418 "perly.y"
{ (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
;}
break;
- case 225:
-#line 1441 "perly.y"
+ case 223:
+#line 1425 "perly.y"
{ (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
break;
- case 226:
-#line 1443 "perly.y"
+ case 224:
+#line 1427 "perly.y"
{ (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
break;
- case 227:
-#line 1445 "perly.y"
+ case 225:
+#line 1429 "perly.y"
{ (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
break;
- case 228:
-#line 1448 "perly.y"
+ case 226:
+#line 1432 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
diff --git a/perly.tab b/perly.tab
index a29d2cc5a4..e0d74c62fd 100644
--- a/perly.tab
+++ b/perly.tab
@@ -1,15 +1,15 @@
#define YYFINAL 28
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2186
+#define YYLAST 2158
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 97
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 73
+#define YYNNTS 72
/* YYNRULES -- Number of rules. */
-#define YYNRULES 228
+#define YYNRULES 226
/* YYNRULES -- Number of states. */
-#define YYNSTATES 449
+#define YYNSTATES 447
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -62,141 +62,140 @@ static const yytype_uint8 yytranslate[] =
YYRHS. */
static const yytype_uint16 yyprhs[] =
{
- 0, 0, 3, 6, 9, 10, 15, 17, 18, 21,
- 26, 27, 28, 29, 34, 35, 36, 39, 42, 44,
- 46, 49, 51, 53, 56, 59, 63, 65, 68, 70,
- 72, 76, 80, 84, 88, 92, 96, 97, 100, 107,
- 115, 123, 130, 133, 134, 137, 147, 157, 168, 178,
- 187, 200, 204, 213, 214, 215, 217, 218, 220, 222,
- 224, 226, 228, 229, 231, 233, 235, 237, 239, 241,
- 243, 245, 250, 252, 253, 260, 267, 268, 269, 270,
- 272, 273, 275, 276, 279, 281, 284, 286, 288, 290,
- 295, 296, 305, 306, 314, 318, 322, 326, 328, 331,
- 335, 337, 341, 347, 354, 358, 362, 368, 371, 376,
- 377, 383, 385, 387, 393, 398, 404, 409, 415, 422,
- 428, 433, 439, 444, 448, 455, 460, 466, 470, 474,
- 478, 482, 486, 490, 494, 498, 502, 506, 510, 514,
- 518, 522, 525, 528, 531, 534, 537, 540, 543, 546,
- 550, 553, 558, 562, 568, 571, 574, 579, 585, 590,
- 596, 598, 600, 602, 604, 610, 613, 615, 618, 622,
- 624, 627, 629, 631, 633, 635, 637, 639, 644, 650,
- 652, 654, 658, 663, 667, 669, 672, 675, 677, 680,
- 683, 685, 688, 690, 693, 695, 699, 701, 705, 710,
- 715, 717, 719, 721, 723, 727, 730, 734, 737, 739,
- 741, 743, 744, 746, 747, 749, 751, 752, 756, 758,
- 761, 764, 767, 770, 773, 776, 778, 780, 782
+ 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
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 98, 0, -1, 3, 101, -1, 4, 109, -1, -1,
- 5, 99, 108, 100, -1, 7, -1, -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
+ 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
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 144, 144, 146, 154, 153, 164, 177, 181, 187,
- 197, 201, 205, 211, 221, 226, 227, 231, 240, 242,
- 250, 253, 254, 256, 258, 275, 291, 296, 301, 303,
- 305, 309, 313, 317, 321, 326, 332, 333, 337, 348,
- 356, 367, 370, 376, 377, 384, 397, 409, 420, 430,
- 440, 472, 480, 490, 496, 497, 502, 505, 509, 514,
- 518, 522, 528, 537, 541, 543, 545, 547, 549, 554,
- 558, 564, 584, 585, 589, 602, 625, 631, 636, 641,
- 651, 652, 657, 658, 662, 672, 676, 686, 687, 696,
- 714, 713, 739, 738, 757, 761, 765, 769, 773, 783,
- 792, 796, 801, 808, 817, 823, 829, 837, 841, 848,
- 847, 858, 859, 863, 872, 877, 885, 892, 899, 909,
- 918, 925, 934, 941, 947, 954, 959, 969, 973, 977,
- 983, 987, 991, 995, 999, 1003, 1007, 1019, 1023, 1027,
- 1031, 1041, 1045, 1052, 1056, 1060, 1065, 1070, 1075, 1084,
- 1089, 1094, 1100, 1106, 1117, 1121, 1125, 1137, 1150, 1158,
- 1170, 1171, 1172, 1173, 1174, 1179, 1183, 1185, 1189, 1194,
- 1196, 1201, 1203, 1205, 1207, 1209, 1211, 1213, 1222, 1233,
- 1235, 1237, 1242, 1255, 1260, 1265, 1269, 1273, 1277, 1281,
- 1285, 1289, 1293, 1295, 1298, 1302, 1308, 1311, 1320, 1326,
- 1331, 1332, 1333, 1339, 1343, 1351, 1358, 1363, 1368, 1370,
- 1372, 1377, 1379, 1384, 1385, 1389, 1392, 1391, 1399, 1403,
- 1409, 1415, 1421, 1427, 1433, 1440, 1442, 1444, 1447
+ 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
};
#endif
@@ -218,18 +217,17 @@ 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", "closebrace_or_eof", "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", "termbinop", "termunop", "anonymous", "termdo",
- "term", "myattrterm", "myterm", "listexpr", "listexprcom", "lpar_or_qw",
- "@5", "my_scalar", "amper", "scalar", "ary", "hsh", "arylen", "star",
- "indirob", 0
+ "PEG", "$accept", "grammar", "@1", "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",
+ "termbinop", "termunop", "anonymous", "termdo", "term", "myattrterm",
+ "myterm", "listexpr", "listexprcom", "lpar_or_qw", "@5", "my_scalar",
+ "amper", "scalar", "ary", "hsh", "arylen", "star", "indirob", 0
};
#endif
@@ -254,57 +252,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, 100, 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
+ 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
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
- 0, 2, 2, 2, 0, 4, 1, 0, 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, 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
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -312,265 +310,269 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 12, 62, 4, 0, 2, 15, 63, 78, 76,
- 0, 76, 76, 70, 3, 19, 21, 22, 0, 18,
- 69, 64, 66, 65, 67, 26, 68, 15, 1, 62,
- 73, 0, 0, 92, 0, 28, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 24, 200, 0, 0, 179,
- 0, 169, 196, 192, 77, 203, 27, 77, 0, 0,
- 0, 0, 0, 0, 0, 0, 184, 202, 194, 0,
- 0, 187, 211, 0, 0, 0, 0, 0, 0, 190,
- 0, 0, 0, 0, 0, 0, 0, 43, 0, 20,
- 23, 29, 97, 201, 176, 160, 161, 162, 163, 100,
- 166, 180, 171, 174, 173, 175, 172, 62, 17, 16,
- 72, 0, 79, 80, 0, 0, 80, 15, 150, 0,
- 141, 142, 225, 228, 227, 226, 220, 221, 222, 224,
- 219, 211, 0, 0, 0, 193, 0, 80, 216, 215,
- 10, 10, 10, 10, 10, 10, 0, 10, 10, 42,
- 185, 0, 0, 213, 188, 189, 225, 212, 107, 226,
- 0, 223, 200, 155, 154, 171, 0, 0, 211, 167,
- 0, 205, 208, 210, 209, 191, 186, 143, 144, 165,
- 148, 147, 170, 0, 0, 51, 25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 0, 0, 0,
+ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 146, 145, 0, 0, 0,
- 0, 0, 0, 0, 6, 5, 71, 81, 82, 10,
- 89, 0, 82, 62, 149, 105, 213, 0, 0, 109,
- 82, 0, 56, 0, 0, 0, 0, 0, 10, 11,
- 0, 195, 197, 0, 214, 0, 0, 101, 0, 0,
- 152, 0, 183, 207, 0, 86, 204, 0, 168, 44,
- 32, 33, 58, 30, 31, 34, 35, 96, 95, 94,
- 99, 0, 0, 123, 0, 136, 132, 133, 129, 130,
- 127, 0, 139, 138, 137, 135, 134, 131, 140, 128,
- 0, 0, 111, 0, 104, 112, 181, 0, 0, 0,
- 0, 0, 0, 84, 0, 90, 211, 0, 9, 0,
- 199, 125, 211, 0, 217, 0, 57, 0, 0, 59,
- 61, 0, 0, 218, 55, 60, 0, 0, 29, 0,
- 0, 0, 198, 108, 0, 156, 0, 158, 0, 151,
- 206, 85, 0, 0, 0, 116, 122, 0, 0, 0,
- 120, 0, 213, 182, 0, 114, 0, 177, 0, 83,
- 88, 87, 75, 15, 0, 74, 106, 110, 153, 53,
- 53, 0, 0, 0, 0, 56, 0, 0, 0, 102,
- 157, 159, 126, 0, 119, 164, 0, 115, 121, 0,
- 117, 178, 113, 62, 93, 0, 0, 14, 36, 36,
- 0, 43, 0, 0, 0, 41, 124, 118, 103, 91,
- 43, 43, 15, 0, 0, 39, 40, 0, 49, 53,
- 43, 52, 45, 46, 62, 37, 0, 43, 0, 48,
- 13, 0, 47, 0, 0, 0, 36, 50, 38
+ 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
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 4, 27, 225, 5, 124, 117, 340, 6, 408,
- 422, 29, 14, 108, 334, 425, 89, 90, 185, 16,
- 17, 405, 335, 325, 271, 328, 337, 331, 18, 109,
- 20, 21, 111, 22, 23, 31, 136, 30, 113, 228,
- 314, 266, 372, 24, 25, 373, 26, 115, 329, 92,
- 93, 322, 304, 94, 95, 96, 97, 98, 99, 100,
- 171, 158, 255, 140, 241, 332, 101, 102, 103, 104,
- 105, 106, 126
+ -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
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -386
+#define YYPACT_NINF -361
static const yytype_int16 yypact[] =
{
- 218, -386, 130, -386, 22, -386, -386, -386, -386, -386,
- 19, -386, -386, -386, -386, -386, -386, -386, 411, -386,
- -386, -386, -386, -386, -386, -386, -386, -386, -386, 92,
- 26, 42, 51, -386, 42, -386, -386, 997, 1873, 1873,
- 44, 44, 44, 44, 44, -386, -386, 44, 44, -386,
- -41, 68, -386, 1873, -386, -386, -386, -386, -15, -15,
- -15, -15, 89, -15, -15, 82, 1873, -386, 5, 8,
- 20, 761, 673, 44, 849, 1083, 103, 1873, 1, 1873,
- 1873, 1873, 1873, 1873, 1873, 1873, 1169, 72, 111, -386,
- -386, 1167, 74, -386, 23, -386, -386, -386, -386, 2015,
- -386, -15, 73, 179, -386, -386, 140, 52, -386, -386,
- -386, 82, -386, 134, 36, 145, 134, -386, -386, 80,
- 143, 143, -386, -386, -386, -386, -386, -386, -386, -386,
- -386, 1873, 63, 1873, 1873, 1068, 82, 134, -386, -386,
- -386, -386, -386, -386, -386, -386, -15, -386, -386, -386,
- 2015, 104, 1257, 673, -386, 1068, 1933, 74, -386, 910,
- 1873, -386, -15, -386, 1068, 24, 159, 139, 1873, 1068,
- 1345, 100, -386, -386, -386, 1068, 74, 143, 143, 143,
- 93, 93, 189, 208, 82, -386, -386, 1873, 1873, 1873,
- 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1433,
- 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873,
- 1873, 1873, 1873, 1873, 1873, -386, -386, 4, 1521, 1873,
- 1873, 1873, 1873, 1873, -386, -386, -386, -386, 161, -386,
- -386, 188, 161, 274, -386, -386, 1873, -53, 120, -386,
- 161, 147, 1873, 1873, 1873, 1873, 231, 497, -386, -386,
- 1873, -386, -386, 294, 289, 153, 1873, 74, 1609, 1697,
- -386, 247, -386, -386, 372, 254, -386, 1873, 276, -386,
- 289, -386, 289, 289, 289, 289, 289, 215, 215, -386,
- 2015, 182, 123, -386, 382, 2093, 321, 881, 399, 312,
- 2015, 1976, 571, 571, 660, 747, 982, 485, 143, 143,
- 1873, 1873, -386, 1785, -15, -386, -386, 410, 257, 187,
- 286, 221, 303, 278, 88, -386, 1873, 88, -386, 206,
- -386, -386, 1873, 82, -386, 216, 289, 220, 229, 289,
- -386, 230, -15, -386, -386, -386, 235, 314, 496, 1873,
- 1873, 240, -386, -386, 458, -386, 544, -386, 554, -386,
- -386, -386, 226, 1873, 330, -386, -386, 1873, 316, 271,
- -386, 634, 1873, -386, 331, -386, 336, -386, 338, -386,
- -386, -386, -386, -386, 349, -386, -386, -386, -386, -386,
- -386, 342, 342, 1873, 342, 1873, 288, 290, 342, -386,
- -386, -386, -386, 280, -386, 2054, 373, -386, -386, 296,
- -386, -386, -386, 281, -386, 342, 342, -386, -13, -13,
- 297, 72, 364, 342, 342, -386, -386, -386, -386, -386,
- 72, 72, -386, 342, -15, -386, -386, 342, -386, -386,
- 72, -386, -386, -386, 287, -386, 1873, 72, 583, -386,
- -386, 300, -386, 304, 342, 342, -13, -386, -386
+ 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
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -386, -386, -386, -386, -386, -16, -70, -386, -386, -52,
- -386, -26, -386, 395, 381, -385, -386, -386, 48, -386,
- -386, -363, -386, 21, -6, -229, -31, -386, -386, 406,
- -386, -386, -386, -386, -386, 96, 356, -386, 400, -91,
- -147, -386, 98, -386, -386, -386, -386, -386, -18, -29,
- -386, -386, -386, -386, -386, -386, -386, -386, 59, -386,
- -386, -105, -225, -56, -386, -386, -386, 172, 367, 368,
- -386, -386, -8
+ -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
};
/* 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 -201
+#define YYTABLE_NINF -199
static const yytype_int16 yytable[] =
{
- 91, 107, 87, 141, 142, 143, 145, 147, 148, 138,
- 300, 319, 301, 40, 41, 42, 40, 406, 336, 119,
- 196, 341, 28, 302, 426, 232, 235, 423, 424, 197,
- 219, 198, 220, 127, 128, 129, 130, 32, 199, 131,
- 132, 320, 229, 157, 110, 218, 240, 138, 138, 149,
- 36, 176, -7, 230, 133, 154, 40, 167, 163, 224,
- 112, 448, 122, 262, 160, 161, 438, 123, 183, 114,
- 242, 243, 244, 245, 246, 247, 134, 249, 250, 219,
- 139, 220, 7, 8, 9, 317, 10, 11, 36, 234,
- 248, 233, -8, 323, 36, 226, 170, 120, 121, 303,
- 151, 40, 157, 152, 237, 370, 258, 33, 34, 259,
- 386, 387, 135, 138, 184, 153, 238, 12, 139, 139,
- 239, 168, 7, 8, 9, 150, 10, 11, 186, 321,
- 155, 257, 355, 164, 253, 254, 169, 399, 175, 157,
- 177, 178, 179, 180, 181, 256, 223, 196, 13, 193,
- 194, 195, 264, 144, 410, 227, 261, 12, 236, 315,
- 7, 8, 9, 231, 10, 11, 260, 265, 269, 270,
- 272, 273, 274, 275, 276, 277, 278, 279, 339, 281,
- 282, 284, -201, -201, 139, 221, 217, 222, 13, 193,
- 194, 195, 193, 194, 195, 12, 365, 267, 251, 354,
- 307, 308, 309, 310, 311, 312, 316, 441, 193, 194,
- 195, 374, 125, 125, 125, 125, 125, 377, 254, 125,
- 125, 1, 2, 3, 326, 272, 13, 272, 313, 338,
- 367, 214, 215, 216, 146, 392, 217, 327, 344, 330,
- 346, 348, 324, 40, 159, 125, 165, 343, 362, 352,
- 172, 193, 194, 195, 349, 280, 193, 194, 195, 285,
- 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 364, 351, 383, 193, 194, 195,
- 397, 318, 358, 359, 353, 361, 195, 157, 419, 416,
- 193, 194, 195, 157, 440, 193, 194, 195, 371, 369,
- 376, 371, 268, 366, 7, 8, 9, 378, 10, 11,
- 379, 7, 8, 9, 380, 10, 11, 7, 8, 9,
- 368, 10, 11, 381, 382, 159, 193, 194, 195, 384,
- 409, 385, 411, 396, 388, 393, 415, 394, 400, 12,
- 193, 194, 195, 401, 254, 402, 12, 403, 407, 193,
- 194, 195, 12, 420, 421, 193, 194, 195, 193, 194,
- 195, 430, 431, 193, 194, 195, 404, 326, 436, 203,
- 13, 435, 193, 194, 195, 437, -201, 13, 203, 204,
- 417, 429, 413, 13, 414, 193, 194, 195, 342, 305,
- 418, 427, 446, 447, 444, 213, 434, 15, 445, 88,
- 214, 215, 216, 212, 213, 217, 412, 443, 19, 214,
- 215, 216, 35, 137, 217, 375, 395, 36, 333, 37,
- 91, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 116, 51, 52, 53, 54, 55,
- 56, 193, 194, 195, 57, 173, 174, 58, 59, 60,
- 61, 193, 194, 195, 62, 63, 64, 65, 66, 428,
- 67, 68, 69, 70, 71, 72, 350, 0, 432, 433,
- 73, 74, 75, 76, 77, 78, 356, 79, 439, 193,
- 194, 195, 213, 80, 0, 442, 0, 214, 215, 216,
- 0, 0, 217, 0, 0, 81, 82, 83, 35, 0,
- 0, 0, 84, 85, 363, 37, 86, 38, 39, 40,
- 41, 42, 43, 44, -54, 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, 389, 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, 0, 0, 84, 85,
- -59, 37, 86, 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, 193, 194, 195, 201, 202, 203, 204,
- 66, 0, 67, 68, 69, 70, 71, 72, 390, 0,
- 0, 0, 73, 74, 75, 76, 77, 78, 391, 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, -54, 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,
+ 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,
- 66, 0, 67, 68, 69, 70, 71, 72, 398, 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,
+ 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, 0, 201, 202, 203, 204, 0, 0, 66, 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, 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, 0, 162, 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, 219, 0, 220, -171,
- 0, 80, 0, 0, 0, 0, 0, -171, 0, 0,
- 0, 0, 0, 81, 82, 83, 201, -201, 203, 204,
- 84, 85, 0, 0, 86, 0, -171, -171, -171, -171,
- 0, 0, 0, -171, 0, -171, 0, 0, -171, 0,
- 0, 0, 0, 212, 213, -171, -171, -171, -171, 214,
- 215, 216, 0, 0, 217, 0, 0, 0, 0, -171,
- -171, -171, 0, -171, -171, -171, -171, -171, -171, -171,
- -171, -171, -171, -171, 0, 0, 0, 0, -171, -171,
- -171, 0, 0, -171, -171, 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, 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,
- 166, 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, 37, 86, 38,
+ 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, 187, 188, 189, 190, 0, 0, 0,
- 191, 0, 192, 0, 0, 0, 66, 0, 67, 68,
+ 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, 193, 194, 195, 0,
- 0, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+ 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,
@@ -579,7 +581,7 @@ static const yytype_int16 yytable[] =
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, 252, 86, 37, 0, 38, 39, 40, 41, 42,
+ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -587,7 +589,7 @@ static const yytype_int16 yytable[] =
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, 263,
+ 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,
@@ -596,7 +598,7 @@ static const yytype_int16 yytable[] =
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, 283, 86, 37,
+ 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,
@@ -605,7 +607,7 @@ static const yytype_int16 yytable[] =
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, 306, 86, 37, 0, 38,
+ 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,
@@ -623,175 +625,172 @@ static const yytype_int16 yytable[] =
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, 347, 86, 37, 0, 38, 39, 40, 41, 42,
+ 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, 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, 360,
- 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, 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, 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, -200, 0, 0, 80, 0, 0, 0, 0,
- -200, 0, 0, 0, 0, 0, 0, 81, 82, 83,
- 0, 0, 0, 0, 84, 85, 0, 0, 86, -200,
- -200, -200, -200, 0, 0, 0, -200, 0, -200, 0,
- 0, -200, 0, 0, 0, 0, 0, 0, -200, -200,
- -200, -200, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -200, -200, -200, 0, -200, -200, -200, -200,
- -200, -200, -200, -200, -200, -200, -200, 0, 0, 0,
- 0, -200, -200, -200, 200, 0, -200, -200, 0, 0,
- 0, 201, 202, 203, 204, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 205, 206, 357, 207, 208, 209, 210, 211, 212, 213,
- 0, 0, 0, 200, 214, 215, 216, 0, 0, 217,
+ 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, 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, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 206,
- 0, 207, 208, 209, 210, 211, 212, 213, 0, 0,
- 0, -201, 214, 215, 216, 0, 0, 217, 201, 202,
- 203, 204, 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, 207, 208, 209, 210, 211, 212, 213, 0,
+ 0, 0, 0, 214, 215, 216, 0, 0, 217
};
static const yytype_int16 yycheck[] =
{
- 18, 27, 18, 59, 60, 61, 62, 63, 64, 24,
- 6, 236, 8, 12, 13, 14, 12, 380, 247, 37,
- 73, 250, 0, 19, 409, 116, 131, 40, 41, 6,
- 6, 8, 8, 41, 42, 43, 44, 18, 94, 47,
- 48, 94, 6, 72, 18, 101, 137, 24, 24, 65,
- 6, 80, 0, 17, 95, 71, 12, 75, 74, 7,
- 18, 446, 18, 168, 72, 73, 429, 23, 86, 18,
- 140, 141, 142, 143, 144, 145, 8, 147, 148, 6,
- 95, 8, 30, 31, 32, 232, 34, 35, 6, 9,
- 146, 117, 0, 240, 6, 111, 95, 38, 39, 95,
- 95, 12, 131, 95, 133, 17, 162, 11, 12, 165,
- 339, 340, 53, 24, 42, 95, 134, 65, 95, 95,
- 136, 18, 30, 31, 32, 66, 34, 35, 17, 9,
- 71, 160, 9, 74, 152, 153, 77, 362, 79, 168,
- 81, 82, 83, 84, 85, 153, 6, 73, 96, 69,
- 70, 71, 170, 64, 383, 21, 17, 65, 95, 229,
- 30, 31, 32, 18, 34, 35, 7, 67, 184, 187,
- 188, 189, 190, 191, 192, 193, 194, 195, 248, 197,
- 198, 199, 89, 90, 95, 6, 93, 8, 96, 69,
- 70, 71, 69, 70, 71, 65, 9, 8, 94, 17,
- 218, 219, 220, 221, 222, 223, 18, 436, 69, 70,
- 71, 316, 40, 41, 42, 43, 44, 322, 236, 47,
- 48, 3, 4, 5, 242, 243, 96, 245, 67, 247,
- 9, 88, 89, 90, 62, 9, 93, 243, 256, 245,
- 258, 259, 95, 12, 72, 73, 74, 94, 304, 267,
- 78, 69, 70, 71, 7, 196, 69, 70, 71, 200,
- 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 17, 21, 332, 69, 70, 71,
- 9, 7, 300, 301, 8, 303, 71, 316, 7, 9,
- 69, 70, 71, 322, 7, 69, 70, 71, 314, 21,
- 94, 317, 94, 17, 30, 31, 32, 323, 34, 35,
- 94, 30, 31, 32, 94, 34, 35, 30, 31, 32,
- 17, 34, 35, 94, 94, 153, 69, 70, 71, 94,
- 382, 17, 384, 17, 94, 353, 388, 7, 7, 65,
- 69, 70, 71, 7, 362, 7, 65, 373, 6, 69,
- 70, 71, 65, 405, 406, 69, 70, 71, 69, 70,
- 71, 413, 414, 69, 70, 71, 17, 385, 424, 57,
- 96, 423, 69, 70, 71, 427, 55, 96, 57, 58,
- 7, 17, 94, 96, 94, 69, 70, 71, 94, 217,
- 94, 94, 444, 445, 94, 83, 422, 2, 94, 18,
- 88, 89, 90, 82, 83, 93, 385, 438, 2, 88,
- 89, 90, 1, 57, 93, 317, 357, 6, 246, 8,
- 438, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 34, 24, 25, 26, 27, 28,
- 29, 69, 70, 71, 33, 78, 78, 36, 37, 38,
- 39, 69, 70, 71, 43, 44, 45, 46, 47, 411,
- 49, 50, 51, 52, 53, 54, 94, -1, 420, 421,
- 59, 60, 61, 62, 63, 64, 94, 66, 430, 69,
- 70, 71, 83, 72, -1, 437, -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, 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, -1, 69, 70, 71, 33, -1, -1, -1,
- -1, -1, -1, 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,
+ 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,
+ 18, 19, 20, 21, 22, -1, 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, 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, -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,
+ 30, 31, 32, -1, 34, 35, -1, 47, -1, 49,
+ 50, 51, 52, 53, 54, -1, -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,
+ 48, -1, -1, 69, 70, 71, -1, 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, -1, -1, -1,
+ 88, 89, 90, -1, -1, 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,
+ 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,
+ -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, -1, -1, -1, 33, -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, 18,
+ -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, -1, -1, -1, 84,
+ 85, 86, -1, -1, -1, -1, 91, 92, -1, 8,
+ 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, -1, 55, 56, 57, 58, -1, -1, 47, -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, 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, 6, 95, 8, -1, 10,
+ 59, 60, 61, 62, 63, 64, -1, 66, 82, 83,
+ -1, -1, -1, 72, 88, 89, 90, -1, -1, 93,
+ -1, -1, -1, -1, -1, 84, 85, 86, -1, -1,
+ -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, -1, -1, -1, -1, 47, -1, 49, 50,
+ -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, 6, -1, 8, 9,
- -1, 72, -1, -1, -1, -1, -1, 17, -1, -1,
- -1, -1, -1, 84, 85, 86, 55, 56, 57, 58,
- 91, 92, -1, -1, 95, -1, 36, 37, 38, 39,
- -1, -1, -1, 43, -1, 45, -1, -1, 48, -1,
- -1, -1, -1, 82, 83, 55, 56, 57, 58, 88,
- 89, 90, -1, -1, 93, -1, -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, 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, 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, -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, -1, -1, -1, 33, -1, -1, -1,
- -1, -1, -1, -1, -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, -1, 72, 88, 89, 90, -1,
- -1, 93, -1, -1, -1, -1, -1, 84, 85, 86,
- -1, -1, -1, -1, 91, 92, -1, 8, 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, 36, 37, 38, 39, -1, -1, -1,
- 43, -1, 45, -1, -1, -1, 47, -1, 49, 50,
- 51, 52, 53, 54, -1, -1, -1, -1, 59, 60,
- 61, 62, 63, 64, -1, 66, 69, 70, 71, -1,
- -1, 72, -1, -1, -1, -1, -1, -1, -1, -1,
+ 61, 62, 63, 64, -1, 66, 82, 83, -1, -1,
+ -1, 72, 88, 89, 90, -1, -1, 93, -1, -1,
-1, -1, -1, 84, 85, 86, -1, -1, -1, -1,
91, 92, -1, 94, 95, 8, -1, 10, 11, 12,
13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
@@ -852,91 +851,84 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 47, -1, 49, 50, 51, 52, 53, 54,
-1, -1, -1, -1, 59, 60, 61, 62, 63, 64,
- -1, 66, -1, -1, -1, -1, -1, 72, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
- 85, 86, -1, -1, -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, 66, -1, -1, 9, -1, -1, 72, -1, -1,
+ -1, -1, 17, -1, -1, -1, -1, -1, -1, 84,
+ 85, 86, -1, -1, -1, -1, 91, 92, -1, -1,
+ 95, 36, 37, 38, 39, -1, -1, -1, 43, -1,
+ 45, -1, -1, 48, -1, -1, -1, -1, -1, -1,
+ 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,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 47, -1, 49, 50, 51, 52, 53, 54, -1, -1,
- -1, -1, 59, 60, 61, 62, 63, 64, -1, 66,
- -1, -1, 9, -1, -1, 72, -1, -1, -1, -1,
- 17, -1, -1, -1, -1, -1, -1, 84, 85, 86,
- -1, -1, -1, -1, 91, 92, -1, -1, 95, 36,
- 37, 38, 39, -1, -1, -1, 43, -1, 45, -1,
- -1, 48, -1, -1, -1, -1, -1, -1, 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, -1, -1,
- -1, 88, 89, 90, 48, -1, 93, 94, -1, -1,
- -1, 55, 56, 57, 58, -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, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 442, 443, -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,
+ 83, -1, -1, -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, 76, 77, 78, 79, 80, 81, 82, 83,
+ -1, 75, -1, 77, 78, 79, 80, 81, 82, 83,
-1, -1, -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, 83, -1,
- -1, -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, -1, 75,
- -1, 77, 78, 79, 80, 81, 82, 83, -1, -1,
- -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, -1, -1, -1,
- 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
- -1, 88, 89, 90, -1, -1, 93
+ -1, -1, 77, 78, 79, 80, 81, 82, 83, -1,
+ -1, -1, -1, 88, 89, 90, -1, -1, 93
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 3, 4, 5, 98, 101, 105, 30, 31, 32,
- 34, 35, 65, 96, 109, 110, 116, 117, 125, 126,
- 127, 128, 130, 131, 140, 141, 143, 99, 0, 108,
- 134, 132, 18, 132, 132, 1, 6, 8, 10, 11,
+ 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, 102, 111, 113,
- 114, 145, 146, 147, 150, 151, 152, 153, 154, 155,
- 156, 163, 164, 165, 166, 167, 168, 108, 110, 126,
- 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,
+ 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, 160, 6,
- 8, 6, 8, 6, 7, 100, 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
+ 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
};
typedef enum {
@@ -959,16 +951,15 @@ 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_ival, toketype_opval,
- toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_ival, toketype_opval,
+ toketype_i_tkval, 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_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
- toketype_opval, toketype_p_tkval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
- toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_opval,
- toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
- toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
+ toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+ toketype_p_tkval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+ toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval,
+ toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
+ toketype_opval, toketype_ival, toketype_opval, toketype_opval, 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_opval, toketype_opval, toketype_opval, toketype_i_tkval,
- toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
- toketype_opval
+ toketype_opval, toketype_opval, toketype_opval, toketype_i_tkval, toketype_ival, toketype_opval,
+ toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval
};
diff --git a/perly.y b/perly.y
index da7bcb07e3..cc27ee295a 100644
--- a/perly.y
+++ b/perly.y
@@ -89,7 +89,7 @@
%type <i_tkval> lpar_or_qw
-%type <ival> grammar closebrace_or_eof prog progstart remember mremember
+%type <ival> grammar prog progstart remember mremember
%type <ival> startsub startanonsub startformsub
/* FIXME for MAD - are these two ival? */
%type <ival> mydefsv mintro
@@ -154,29 +154,13 @@ grammar : GRAMPROG prog
{
parser->expect = XSTATE;
}
- lineseq closebrace_or_eof
+ lineseq
{
PL_eval_root = $3;
$$ = 0;
}
;
-closebrace_or_eof: '}'
- {
- assert(parser->yychar == YYEMPTY);
- assert(parser->bufptr != SvPVX(parser->linestr));
- assert(parser->bufptr[-1] == '}');
- parser->bufptr--;
- parser->lex_brackstack[parser->lex_brackets++] =
- XSTATE;
- parser->expect = XSTATE;
- parser->yychar = YYEOF;
- $$ = 0;
- }
- | /* NULL */
- { $$ = 0; }
- ;
-
/* The whole program */
prog : progstart
/*CONTINUED*/ lineseq
diff --git a/toke.c b/toke.c
index 878547e1b9..d0af57e1d6 100644
--- a/toke.c
+++ b/toke.c
@@ -124,8 +124,9 @@ static const char ident_too_long[] = "Identifier too long";
# define NEXTVAL_NEXTTOKE PL_nextval[PL_nexttoke]
#endif
-#define XFAKEBRACK 128
-#define XENUMMASK 127
+#define XENUMMASK 0x3f
+#define XFAKEEOF 0x40
+#define XFAKEBRACK 0x80
#ifdef USE_UTF8_SCRIPTS
# define UTF (!IN_BYTES)
@@ -1947,10 +1948,17 @@ S_force_next(pTHX_ I32 type)
void
Perl_yyunlex(pTHX)
{
- if (PL_parser->yychar != YYEMPTY) {
- start_force(-1);
- NEXTVAL_NEXTTOKE = PL_parser->yylval;
- force_next(PL_parser->yychar);
+ int yyc = PL_parser->yychar;
+ if (yyc != YYEMPTY) {
+ if (yyc) {
+ start_force(-1);
+ NEXTVAL_NEXTTOKE = PL_parser->yylval;
+ if (yyc == '{'/*}*/ || yyc == HASHBRACK || yyc == '['/*]*/) {
+ PL_lex_brackets--;
+ yyc |= (1<<24) | (PL_lex_brackstack[PL_lex_brackets] << 16);
+ }
+ force_next(yyc);
+ }
PL_parser->yychar = YYEMPTY;
}
}
@@ -4272,12 +4280,26 @@ Perl_yylex(pTHX)
PL_lex_defer = LEX_NORMAL;
}
#endif
+ {
+ I32 next_type;
#ifdef PERL_MAD
- /* FIXME - can these be merged? */
- return(PL_nexttoke[PL_lasttoke].next_type);
+ next_type = PL_nexttoke[PL_lasttoke].next_type;
#else
- return REPORT(PL_nexttype[PL_nexttoke]);
+ next_type = PL_nexttype[PL_nexttoke];
#endif
+ if (next_type & (1<<24)) {
+ if (PL_lex_brackets > 100)
+ Renew(PL_lex_brackstack, PL_lex_brackets + 10, char);
+ PL_lex_brackstack[PL_lex_brackets++] = (next_type >> 16) & 0xff;
+ next_type &= 0xffff;
+ }
+#ifdef PERL_MAD
+ /* FIXME - can these be merged? */
+ return next_type;
+#else
+ return REPORT(next_type);
+#endif
+ }
/* interpolated case modifiers like \L \U, including \Q and \E.
when we get here, PL_bufptr is at the \
@@ -4567,7 +4589,8 @@ Perl_yylex(pTHX)
if (!PL_rsfp) {
PL_last_uni = 0;
PL_last_lop = 0;
- if (PL_lex_brackets) {
+ if (PL_lex_brackets &&
+ PL_lex_brackstack[PL_lex_brackets-1] != XFAKEEOF) {
yyerror((const char *)
(PL_lex_formbrack
? "Format not terminated"
@@ -5156,7 +5179,9 @@ Perl_yylex(pTHX)
s++;
BOop(OP_BIT_XOR);
case '[':
- PL_lex_brackets++;
+ if (PL_lex_brackets > 100)
+ Renew(PL_lex_brackstack, PL_lex_brackets + 10, char);
+ PL_lex_brackstack[PL_lex_brackets++] = 0;
{
const char tmp = *s++;
OPERATOR(tmp);
@@ -5356,6 +5381,8 @@ Perl_yylex(pTHX)
TERM(tmp);
}
case ']':
+ if (PL_lex_brackets && PL_lex_brackstack[PL_lex_brackets-1] == XFAKEEOF)
+ TOKEN(0);
s++;
if (PL_lex_brackets <= 0)
yyerror("Unmatched right square bracket");
@@ -5533,6 +5560,8 @@ Perl_yylex(pTHX)
PL_copline = NOLINE; /* invalidate current command line number */
TOKEN('{');
case '}':
+ if (PL_lex_brackets && PL_lex_brackstack[PL_lex_brackets-1] == XFAKEEOF)
+ TOKEN(0);
rightbracket:
s++;
if (PL_lex_brackets <= 0)
@@ -13943,6 +13972,17 @@ Perl_keyword_plugin_standard(pTHX_
return KEYWORD_PLUGIN_DECLINE;
}
+#define parse_recdescent(g) S_parse_recdescent(aTHX_ g)
+static void S_parse_recdescent(pTHX_ int gramtype)
+{
+ SAVEI32(PL_lex_brackets);
+ if (PL_lex_brackets > 100)
+ Renew(PL_lex_brackstack, PL_lex_brackets + 10, char);
+ PL_lex_brackstack[PL_lex_brackets++] = XFAKEEOF;
+ if(yyparse(gramtype) && !PL_parser->error_count)
+ qerror(Perl_mess(aTHX_ "Parse error"));
+}
+
/*
=for apidoc Amx|OP *|parse_fullstmt|U32 flags
@@ -13979,8 +14019,7 @@ Perl_parse_fullstmt(pTHX_ U32 flags)
ENTER;
SAVEVPTR(PL_eval_root);
PL_eval_root = NULL;
- if(yyparse(GRAMFULLSTMT) && !PL_parser->error_count)
- qerror(Perl_mess(aTHX_ "Parse error"));
+ parse_recdescent(GRAMFULLSTMT);
fullstmtop = PL_eval_root;
LEAVE;
return fullstmtop;
@@ -14025,7 +14064,8 @@ Perl_parse_stmtseq(pTHX_ U32 flags)
ENTER;
SAVEVPTR(PL_eval_root);
PL_eval_root = NULL;
- if(yyparse(GRAMSTMTSEQ) && !PL_parser->error_count)
+ parse_recdescent(GRAMSTMTSEQ);
+ if (!((PL_bufptr == PL_bufend && !PL_rsfp) || *PL_bufptr == /*{*/'}'))
qerror(Perl_mess(aTHX_ "Parse error"));
stmtseqop = PL_eval_root;
LEAVE;