summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZefram <zefram@fysh.org>2010-10-15 13:11:54 +0100
committerFather Chrysostomos <sprout@cpan.org>2010-10-21 05:54:01 -0700
commite53d8f768a2bcb331fe11ed5282d228a938ce161 (patch)
tree7a753652885308a61615a5e1c4caa4b7a67ca4b3
parent9eb5c532bf567fdd066254fcaacf4a66722714c5 (diff)
downloadperl-e53d8f768a2bcb331fe11ed5282d228a938ce161.tar.gz
function to parse Perl code block
New API function parse_block() parses a code block, including surrounding braces. The block is a lexical scope, but not inherently a dynamic scope.
-rw-r--r--MANIFEST2
-rw-r--r--embed.fnc1
-rw-r--r--embed.h1
-rw-r--r--ext/XS-APItest/APItest.pm2
-rw-r--r--ext/XS-APItest/APItest.xs34
-rw-r--r--ext/XS-APItest/t/blockasexpr.t103
-rw-r--r--ext/XS-APItest/t/loopblock.t121
-rw-r--r--global.sym1
-rw-r--r--perly.act837
-rw-r--r--perly.h298
-rw-r--r--perly.tab1557
-rw-r--r--perly.y13
-rw-r--r--proto.h1
-rw-r--r--toke.c73
14 files changed, 1692 insertions, 1352 deletions
diff --git a/MANIFEST b/MANIFEST
index 0bda0deaa2..ba2c4b79fa 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3384,6 +3384,7 @@ ext/XS-APItest/notcore.c Test API functions when PERL_CORE is not defined
ext/XS-APItest/numeric.xs XS::APItest wrappers for numeric.c
ext/XS-APItest/README XS::APItest extension
ext/XS-APItest/t/BHK.pm Helper for ./blockhooks.t
+ext/XS-APItest/t/blockasexpr.t test recursive descent block parsing
ext/XS-APItest/t/blockhooks-csc.t XS::APItest: more tests for PL_blockhooks
ext/XS-APItest/t/blockhooks.t XS::APItest: tests for PL_blockhooks
ext/XS-APItest/t/Block.pm Helper for ./blockhooks.t
@@ -3396,6 +3397,7 @@ ext/XS-APItest/t/grok.t XS::APItest: tests for grok* functions
ext/XS-APItest/t/hash.t XS::APItest: tests for hash related APIs
ext/XS-APItest/t/keyword_multiline.t test keyword plugin parsing across lines
ext/XS-APItest/t/keyword_plugin.t test keyword plugin mechanism
+ext/XS-APItest/t/loopblock.t test recursive descent block parsing
ext/XS-APItest/t/looprest.t test recursive descent statement-sequence parsing
ext/XS-APItest/t/magic_chain.t test low-level MAGIC chain handling
ext/XS-APItest/t/Markers.pm Helper for ./blockhooks.t
diff --git a/embed.fnc b/embed.fnc
index 0fa5ff1325..9411a68121 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -626,6 +626,7 @@ AMpd |I32 |lex_peek_unichar|U32 flags
AMpd |I32 |lex_read_unichar|U32 flags
AMpd |void |lex_read_space |U32 flags
: Public parser API
+AMpd |OP* |parse_block |U32 flags
AMpd |OP* |parse_fullstmt |U32 flags
AMpd |OP* |parse_stmtseq |U32 flags
: Used in various files
diff --git a/embed.h b/embed.h
index 34b9866932..057b628083 100644
--- a/embed.h
+++ b/embed.h
@@ -378,6 +378,7 @@
#define pack_cat(a,b,c,d,e,f,g) Perl_pack_cat(aTHX_ a,b,c,d,e,f,g)
#define packlist(a,b,c,d,e) Perl_packlist(aTHX_ a,b,c,d,e)
#define pad_findmy(a,b,c) Perl_pad_findmy(aTHX_ a,b,c)
+#define parse_block(a) Perl_parse_block(aTHX_ a)
#define parse_fullstmt(a) Perl_parse_fullstmt(aTHX_ a)
#define parse_stmtseq(a) Perl_parse_stmtseq(aTHX_ a)
#define pmop_dump(a) Perl_pmop_dump(aTHX_ a)
diff --git a/ext/XS-APItest/APItest.pm b/ext/XS-APItest/APItest.pm
index 21807a7ced..c4b3433696 100644
--- a/ext/XS-APItest/APItest.pm
+++ b/ext/XS-APItest/APItest.pm
@@ -36,7 +36,7 @@ sub import {
}
}
foreach (keys %{$exports||{}}) {
- next unless /\A(?:rpn|calcrpn|stufftest|swaptwostmts|looprest|scopelessblock|stmtasexpr|stmtsasexpr)\z/;
+ next unless /\A(?:rpn|calcrpn|stufftest|swaptwostmts|looprest|scopelessblock|stmtasexpr|stmtsasexpr|loopblock|blockasexpr)\z/;
$^H{"XS::APItest/$_"} = 1;
delete $exports->{$_};
}
diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs
index 4aad258b95..632b9f6a47 100644
--- a/ext/XS-APItest/APItest.xs
+++ b/ext/XS-APItest/APItest.xs
@@ -519,7 +519,8 @@ test_op_linklist_describe(OP *start)
static SV *hintkey_rpn_sv, *hintkey_calcrpn_sv, *hintkey_stufftest_sv;
static SV *hintkey_swaptwostmts_sv, *hintkey_looprest_sv;
static SV *hintkey_scopelessblock_sv;
-static SV *hintkey_stmtasexpr_sv, *hintkey_stmtsasexpr_sv;
+static SV *hintkey_stmtasexpr_sv, *hintkey_stmtsasexpr_sv;
+static SV *hintkey_loopblock_sv, *hintkey_blockasexpr_sv;
static int (*next_keyword_plugin)(pTHX_ char *, STRLEN, OP **);
/* low-level parser helpers */
@@ -743,6 +744,27 @@ static OP *THX_parse_keyword_stmtsasexpr(pTHX)
return o;
}
+#define parse_keyword_loopblock() THX_parse_keyword_loopblock(aTHX)
+static OP *THX_parse_keyword_loopblock(pTHX)
+{
+ I32 condline;
+ OP *body;
+ condline = CopLINE(PL_curcop);
+ body = parse_block(0);
+ return newWHILEOP(0, 1, NULL, condline, newSVOP(OP_CONST, 0, &PL_sv_yes),
+ body, NULL, 1);
+}
+
+#define parse_keyword_blockasexpr() THX_parse_keyword_blockasexpr(aTHX)
+static OP *THX_parse_keyword_blockasexpr(pTHX)
+{
+ OP *o = parse_block(0);
+ o = op_prepend_elem(OP_LINESEQ, newOP(OP_ENTER, 0), o);
+ o->op_type = OP_LEAVE;
+ o->op_ppaddr = PL_ppaddr[OP_LEAVE];
+ return o;
+}
+
/* plugin glue */
#define keyword_active(hintkey_sv) THX_keyword_active(aTHX_ hintkey_sv)
@@ -791,6 +813,14 @@ static int my_keyword_plugin(pTHX_
keyword_active(hintkey_stmtsasexpr_sv)) {
*op_ptr = parse_keyword_stmtsasexpr();
return KEYWORD_PLUGIN_EXPR;
+ } else if(keyword_len == 9 && strnEQ(keyword_ptr, "loopblock", 9) &&
+ keyword_active(hintkey_loopblock_sv)) {
+ *op_ptr = parse_keyword_loopblock();
+ return KEYWORD_PLUGIN_STMT;
+ } else if(keyword_len == 11 && strnEQ(keyword_ptr, "blockasexpr", 11) &&
+ keyword_active(hintkey_blockasexpr_sv)) {
+ *op_ptr = parse_keyword_blockasexpr();
+ return KEYWORD_PLUGIN_EXPR;
} else {
return next_keyword_plugin(aTHX_ keyword_ptr, keyword_len, op_ptr);
}
@@ -2201,6 +2231,8 @@ BOOT:
hintkey_scopelessblock_sv = newSVpvs_share("XS::APItest/scopelessblock");
hintkey_stmtasexpr_sv = newSVpvs_share("XS::APItest/stmtasexpr");
hintkey_stmtsasexpr_sv = newSVpvs_share("XS::APItest/stmtsasexpr");
+ hintkey_loopblock_sv = newSVpvs_share("XS::APItest/loopblock");
+ hintkey_blockasexpr_sv = newSVpvs_share("XS::APItest/blockasexpr");
next_keyword_plugin = PL_keyword_plugin;
PL_keyword_plugin = my_keyword_plugin;
}
diff --git a/ext/XS-APItest/t/blockasexpr.t b/ext/XS-APItest/t/blockasexpr.t
new file mode 100644
index 0000000000..fed36dc762
--- /dev/null
+++ b/ext/XS-APItest/t/blockasexpr.t
@@ -0,0 +1,103 @@
+use warnings;
+use strict;
+
+use Test::More tests => 16;
+
+BEGIN { $^H |= 0x20000; }
+
+my $t;
+
+$t = "";
+eval q{
+ use XS::APItest qw(blockasexpr);
+ $t .= "a";
+ $t .= "b" . blockasexpr { "c"; } . "d";
+ $t .= "e";
+};
+is $@, "";
+is $t, "abcde";
+
+$t = "";
+eval q{
+ use XS::APItest qw(blockasexpr);
+ no warnings "void";
+ $t .= "a";
+ $t .= "b" . blockasexpr { "z"; "c"; } . "d";
+ $t .= "e";
+};
+is $@, "";
+is $t, "abcde";
+
+$t = "";
+eval q{
+ use XS::APItest qw(blockasexpr);
+ $t .= "a";
+ $t .= "b" . blockasexpr { if($t eq "a") { "c"; } else { "d"; } } . "e";
+ $t .= "f";
+};
+is $@, "";
+is $t, "abcef";
+
+$t = "";
+eval q{
+ use XS::APItest qw(blockasexpr);
+ $t .= "a";
+ $t .= "b" . blockasexpr { if($t eq "z") { "c"; } else { "d"; } } . "e";
+ $t .= "f";
+};
+is $@, "";
+is $t, "abdef";
+
+$t = "";
+eval q{
+ use XS::APItest qw(blockasexpr);
+ no warnings "void";
+ $t .= "a";
+ $t .= "b" . blockasexpr { { "z"; "c"; } } . "d";
+ $t .= "e";
+};
+is $@, "";
+is $t, "abcde";
+
+$t = "";
+eval q{
+ use XS::APItest qw(blockasexpr);
+ $t .= "a";
+ $t .= blockasexpr {
+ my $t = "z";
+ "b";
+ };
+ $t .= "c";
+};
+is $@, "";
+is $t, "abc";
+
+$t = "";
+eval q{
+ use XS::APItest qw(blockasexpr);
+ my $f = 1.5;
+ $t .= "a(".($f+$f).")";
+ $t .= "b(" . blockasexpr {
+ use integer;
+ $f+$f;
+ } . ")";
+ $t .= "c(".($f+$f).")";
+};
+is $@, "";
+is $t, "a(3)b(2)c(3)";
+
+$t = "";
+eval q{
+ use XS::APItest qw(blockasexpr);
+ our $z = "z";
+ $t .= "a$z";
+ $t .= "b" . blockasexpr {
+ local $z = "y";
+ $z;
+ };
+ $t .= "c$z";
+};
+is $@, "";
+is $t, "azbycz";
+
+1;
diff --git a/ext/XS-APItest/t/loopblock.t b/ext/XS-APItest/t/loopblock.t
new file mode 100644
index 0000000000..3b688bc811
--- /dev/null
+++ b/ext/XS-APItest/t/loopblock.t
@@ -0,0 +1,121 @@
+use warnings;
+use strict;
+
+use Test::More tests => 14;
+
+BEGIN { $^H |= 0x20000; }
+
+my $t;
+
+$t = "";
+eval q{
+ use XS::APItest qw(loopblock);
+ do {
+ $t .= "a";
+ loopblock {
+ $t .= "b";
+ last unless length($t) < 5;
+ $t .= "c";
+ }
+ };
+ $t .= "d";
+};
+is $@, "";
+is $t, "abcbcbd";
+
+$t = "";
+eval q{
+ use XS::APItest qw(loopblock);
+ $t .= "a";
+ loopblock {
+ $t .= "b";
+ last unless length($t) < 5;
+ $t .= "c";
+ }
+};
+is $@, "";
+is $t, "abcbcb";
+
+$t = "";
+eval q[
+ use XS::APItest qw(loopblock);
+ do {
+ $t .= "a";
+ loopblock {
+ $t .= "b";
+ last unless length($t) < 5;
+ $t .= "c";
+ }
+];
+isnt $@, "";
+is $t, "";
+
+$t = "";
+eval q[
+ use XS::APItest qw(loopblock);
+ $t .= "a";
+ loopblock {
+ $t .= "b";
+ last unless length($t) < 5;
+ $t .= "c";
+ }
+ };
+];
+isnt $@, "";
+is $t, "";
+
+$t = "";
+eval q{
+ use XS::APItest qw(loopblock);
+ my $x = "a";
+ $t .= $x;
+ do {
+ no warnings "misc";
+ $t .= $x;
+ my $x = "b";
+ $t .= $x;
+ loopblock {
+ $t .= $x;
+ my $x = "c";
+ $t .= $x;
+ last unless length($t) < 7;
+ $t .= $x;
+ my $x = "d";
+ $t .= $x;
+ }
+ };
+ $t .= $x;
+};
+is $@, "";
+is $t, "aabbccdbca";
+
+$t = "";
+eval q{
+ use XS::APItest qw(loopblock);
+ do {
+ { $t .= "a"; }
+ loopblock {
+ { $t .= "b"; }
+ last unless length($t) < 5;
+ { $t .= "c"; }
+ }
+ };
+ $t .= "d";
+};
+is $@, "";
+is $t, "abcbcbd";
+
+$t = "";
+eval q{
+ use XS::APItest qw(loopblock);
+ { $t .= "a"; }
+ loopblock {
+ { $t .= "b"; }
+ last unless length($t) < 5;
+ { $t .= "c"; }
+ }
+};
+is $@, "";
+is $t, "abcbcb";
+
+1;
diff --git a/global.sym b/global.sym
index a979dc7350..b0ac7a69a4 100644
--- a/global.sym
+++ b/global.sym
@@ -423,6 +423,7 @@ Perl_pack_cat
Perl_packlist
Perl_pad_findmy
Perl_pad_push
+Perl_parse_block
Perl_parse_fullstmt
Perl_parse_stmtseq
perl_alloc
diff --git a/perly.act b/perly.act
index edc14b27ee..72cd3bfaa1 100644
--- a/perly.act
+++ b/perly.act
@@ -6,7 +6,7 @@ case 2:
case 3:
#line 147 "perly.y"
{
- parser->expect = XSTATE;
+ parser->expect = XBLOCK;
;}
break;
@@ -32,16 +32,33 @@ case 2:
{
PL_eval_root = (ps[(3) - (3)].val.opval);
(yyval.ival) = 0;
+ yyunlex();
+ parser->yychar = YYEOF;
;}
break;
case 7:
-#line 171 "perly.y"
- { (yyval.ival) = (ps[(1) - (2)].val.ival); newPROG(block_end((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval))); ;}
+#line 169 "perly.y"
+ {
+ parser->expect = XSTATE;
+ ;}
break;
case 8:
-#line 176 "perly.y"
+#line 173 "perly.y"
+ {
+ PL_eval_root = (ps[(3) - (3)].val.opval);
+ (yyval.ival) = 0;
+ ;}
+ break;
+
+ case 9:
+#line 182 "perly.y"
+ { (yyval.ival) = (ps[(1) - (2)].val.ival); newPROG(block_end((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval))); ;}
+ break;
+
+ case 10:
+#line 187 "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));
@@ -50,25 +67,25 @@ case 2:
;}
break;
- case 9:
-#line 185 "perly.y"
+ case 11:
+#line 196 "perly.y"
{ (yyval.ival) = block_start(TRUE); ;}
break;
- case 10:
-#line 189 "perly.y"
+ case 12:
+#line 200 "perly.y"
{ (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
break;
- case 11:
-#line 193 "perly.y"
+ case 13:
+#line 204 "perly.y"
{
PL_parser->expect = XSTATE; (yyval.ival) = block_start(TRUE);
;}
break;
- case 12:
-#line 200 "perly.y"
+ case 14:
+#line 211 "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));
@@ -77,25 +94,25 @@ case 2:
;}
break;
- case 13:
-#line 209 "perly.y"
+ case 15:
+#line 220 "perly.y"
{ (yyval.ival) = block_start(FALSE); ;}
break;
- case 14:
-#line 214 "perly.y"
+ case 16:
+#line 225 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 15:
-#line 216 "perly.y"
+ case 17:
+#line 227 "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 16:
-#line 220 "perly.y"
+ case 18:
+#line 231 "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))
@@ -103,37 +120,37 @@ case 2:
;}
break;
- case 17:
-#line 229 "perly.y"
+ case 19:
+#line 240 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 18:
-#line 231 "perly.y"
+ case 20:
+#line 242 "perly.y"
{
PL_pad_reset_pending = TRUE;
(yyval.opval) = (ps[(1) - (1)].val.opval);
;}
break;
- case 19:
-#line 239 "perly.y"
+ case 21:
+#line 250 "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 21:
-#line 243 "perly.y"
+ case 23:
+#line 254 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 22:
-#line 245 "perly.y"
+ case 24:
+#line 256 "perly.y"
{ (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
break;
- case 23:
-#line 247 "perly.y"
+ case 25:
+#line 258 "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));
@@ -152,8 +169,8 @@ case 2:
;}
break;
- case 24:
-#line 264 "perly.y"
+ case 26:
+#line 275 "perly.y"
{
(yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (3)].val.p_tkval)), (ps[(2) - (3)].val.opval));
PL_parser->expect = XSTATE;
@@ -171,84 +188,84 @@ case 2:
;}
break;
- case 25:
-#line 280 "perly.y"
+ case 27:
+#line 291 "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 26:
-#line 285 "perly.y"
+ case 28:
+#line 296 "perly.y"
{ (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval)); ;}
break;
- case 27:
-#line 290 "perly.y"
+ case 29:
+#line 301 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 28:
-#line 292 "perly.y"
+ case 30:
+#line 303 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 29:
-#line 294 "perly.y"
+ case 31:
+#line 305 "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 30:
-#line 298 "perly.y"
+ case 32:
+#line 309 "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 31:
-#line 302 "perly.y"
+ case 33:
+#line 313 "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 32:
-#line 306 "perly.y"
+ case 34:
+#line 317 "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 33:
-#line 310 "perly.y"
+ case 35:
+#line 321 "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 34:
-#line 315 "perly.y"
+ case 36:
+#line 326 "perly.y"
{ (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), scope((ps[(1) - (3)].val.opval))); ;}
break;
- case 35:
-#line 320 "perly.y"
+ case 37:
+#line 331 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 36:
-#line 322 "perly.y"
+ case 38:
+#line 333 "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 37:
-#line 326 "perly.y"
+ case 39:
+#line 337 "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;
@@ -258,8 +275,8 @@ case 2:
;}
break;
- case 38:
-#line 337 "perly.y"
+ case 40:
+#line 348 "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)));
@@ -269,8 +286,8 @@ case 2:
;}
break;
- case 39:
-#line 345 "perly.y"
+ case 41:
+#line 356 "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)));
@@ -280,31 +297,31 @@ case 2:
;}
break;
- case 40:
-#line 356 "perly.y"
+ case 42:
+#line 367 "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 41:
-#line 359 "perly.y"
+ case 43:
+#line 370 "perly.y"
{ (yyval.opval) = newWHENOP(0, scope((ps[(2) - (2)].val.opval))); ;}
break;
- case 42:
-#line 364 "perly.y"
+ case 44:
+#line 375 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 43:
-#line 366 "perly.y"
+ case 45:
+#line 377 "perly.y"
{ (yyval.opval) = scope((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 44:
-#line 373 "perly.y"
+ case 46:
+#line 384 "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),
@@ -318,8 +335,8 @@ case 2:
;}
break;
- case 45:
-#line 386 "perly.y"
+ case 47:
+#line 397 "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),
@@ -333,8 +350,8 @@ case 2:
;}
break;
- case 46:
-#line 398 "perly.y"
+ case 48:
+#line 409 "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)),
@@ -347,8 +364,8 @@ case 2:
;}
break;
- case 47:
-#line 409 "perly.y"
+ case 49:
+#line 420 "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)),
@@ -360,8 +377,8 @@ case 2:
;}
break;
- case 48:
-#line 419 "perly.y"
+ case 50:
+#line 430 "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)),
@@ -373,8 +390,8 @@ case 2:
;}
break;
- case 49:
-#line 431 "perly.y"
+ case 51:
+#line 442 "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)),
@@ -406,16 +423,16 @@ case 2:
(yyval.opval) = block_end((ps[(4) - (12)].val.ival), forop); ;}
break;
- case 50:
-#line 461 "perly.y"
+ case 52:
+#line 472 "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 51:
-#line 469 "perly.y"
+ case 53:
+#line 480 "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)),
@@ -423,47 +440,47 @@ case 2:
(PADOFFSET) (ps[(5) - (8)].val.ival)) )); ;}
break;
- case 52:
-#line 478 "perly.y"
+ case 54:
+#line 489 "perly.y"
{ (yyval.ival) = (PL_min_intro_pending &&
PL_max_intro_pending >= PL_min_intro_pending);
intro_my(); ;}
break;
- case 53:
-#line 484 "perly.y"
+ case 55:
+#line 495 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 55:
-#line 490 "perly.y"
+ case 57:
+#line 501 "perly.y"
{ YYSTYPE tmplval;
(void)scan_num("1", &tmplval);
(yyval.opval) = tmplval.opval; ;}
break;
- case 57:
-#line 498 "perly.y"
+ case 59:
+#line 509 "perly.y"
{ (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
break;
- case 58:
-#line 503 "perly.y"
+ case 60:
+#line 514 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
break;
- case 59:
-#line 507 "perly.y"
+ case 61:
+#line 518 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
break;
- case 60:
-#line 511 "perly.y"
+ case 62:
+#line 522 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
break;
- case 61:
-#line 516 "perly.y"
+ case 63:
+#line 527 "perly.y"
{
#ifdef MAD
YYSTYPE tmplval;
@@ -475,45 +492,45 @@ case 2:
;}
break;
- case 63:
-#line 530 "perly.y"
+ case 65:
+#line 541 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 64:
-#line 532 "perly.y"
+ case 66:
+#line 543 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 65:
-#line 534 "perly.y"
+ case 67:
+#line 545 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 66:
-#line 536 "perly.y"
+ case 68:
+#line 547 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 67:
-#line 538 "perly.y"
+ case 69:
+#line 549 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 68:
-#line 543 "perly.y"
+ case 70:
+#line 554 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 69:
-#line 547 "perly.y"
+ case 71:
+#line 558 "perly.y"
{ (yyval.opval) = newOP(OP_NULL,0);
TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
;}
break;
- case 70:
-#line 553 "perly.y"
+ case 72:
+#line 564 "perly.y"
{
CV *fmtcv = PL_compcv;
SvREFCNT_inc_simple_void(PL_compcv);
@@ -533,18 +550,18 @@ case 2:
;}
break;
- case 71:
-#line 572 "perly.y"
+ case 73:
+#line 583 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 72:
-#line 573 "perly.y"
+ case 74:
+#line 584 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 73:
-#line 578 "perly.y"
+ case 75:
+#line 589 "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));
@@ -556,8 +573,8 @@ case 2:
;}
break;
- case 74:
-#line 591 "perly.y"
+ case 76:
+#line 602 "perly.y"
{ SvREFCNT_inc_simple_void(PL_compcv);
#ifdef MAD
{
@@ -579,26 +596,26 @@ case 2:
;}
break;
- case 75:
-#line 613 "perly.y"
+ case 77:
+#line 624 "perly.y"
{ (yyval.ival) = start_subparse(FALSE, 0);
SAVEFREESV(PL_compcv); ;}
break;
- case 76:
-#line 619 "perly.y"
+ case 78:
+#line 630 "perly.y"
{ (yyval.ival) = start_subparse(FALSE, CVf_ANON);
SAVEFREESV(PL_compcv); ;}
break;
- case 77:
-#line 624 "perly.y"
+ case 79:
+#line 635 "perly.y"
{ (yyval.ival) = start_subparse(TRUE, 0);
SAVEFREESV(PL_compcv); ;}
break;
- case 78:
-#line 629 "perly.y"
+ case 80:
+#line 640 "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")
@@ -607,25 +624,25 @@ case 2:
(yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 79:
-#line 639 "perly.y"
+ case 81:
+#line 650 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 81:
-#line 645 "perly.y"
+ case 83:
+#line 656 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 82:
-#line 647 "perly.y"
+ case 84:
+#line 658 "perly.y"
{ (yyval.opval) = (ps[(2) - (2)].val.opval);
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
;}
break;
- case 83:
-#line 651 "perly.y"
+ case 85:
+#line 662 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL, 0),
(OP*)NULL
@@ -634,15 +651,15 @@ case 2:
;}
break;
- case 84:
-#line 661 "perly.y"
+ case 86:
+#line 672 "perly.y"
{ (yyval.opval) = (ps[(2) - (2)].val.opval);
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
;}
break;
- case 85:
-#line 665 "perly.y"
+ case 87:
+#line 676 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL, 0),
(OP*)NULL
@@ -651,13 +668,13 @@ case 2:
;}
break;
- case 86:
-#line 674 "perly.y"
+ case 88:
+#line 685 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 87:
-#line 675 "perly.y"
+ case 89:
+#line 686 "perly.y"
{ (yyval.opval) = IF_MAD(
newOP(OP_NULL,0),
(OP*)NULL
@@ -667,8 +684,8 @@ case 2:
;}
break;
- case 88:
-#line 685 "perly.y"
+ case 90:
+#line 696 "perly.y"
{
#ifdef MAD
(yyval.opval) = package((ps[(3) - (4)].val.opval));
@@ -685,8 +702,8 @@ case 2:
;}
break;
- case 89:
-#line 702 "perly.y"
+ case 91:
+#line 713 "perly.y"
{
int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
(ps[(3) - (5)].val.opval)->op_latefree = 1;
@@ -701,8 +718,8 @@ case 2:
;}
break;
- case 90:
-#line 715 "perly.y"
+ case 92:
+#line 726 "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));
@@ -714,13 +731,13 @@ case 2:
;}
break;
- case 91:
-#line 727 "perly.y"
+ case 93:
+#line 738 "perly.y"
{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
break;
- case 92:
-#line 729 "perly.y"
+ case 94:
+#line 740 "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));
@@ -736,29 +753,29 @@ case 2:
;}
break;
- case 93:
-#line 746 "perly.y"
+ case 95:
+#line 757 "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 94:
-#line 750 "perly.y"
+ case 96:
+#line 761 "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 95:
-#line 754 "perly.y"
+ case 97:
+#line 765 "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 97:
-#line 762 "perly.y"
+ case 99:
+#line 773 "perly.y"
{
#ifdef MAD
OP* op = newNULLLIST();
@@ -770,8 +787,8 @@ case 2:
;}
break;
- case 98:
-#line 772 "perly.y"
+ case 100:
+#line 783 "perly.y"
{
OP* term = (ps[(3) - (3)].val.opval);
DO_MAD(
@@ -782,16 +799,16 @@ case 2:
;}
break;
- case 100:
-#line 785 "perly.y"
+ case 102:
+#line 796 "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 101:
-#line 790 "perly.y"
+ case 103:
+#line 801 "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');
@@ -800,8 +817,8 @@ case 2:
;}
break;
- case 102:
-#line 797 "perly.y"
+ case 104:
+#line 808 "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)),
@@ -812,8 +829,8 @@ case 2:
;}
break;
- case 103:
-#line 806 "perly.y"
+ case 105:
+#line 817 "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))));
@@ -821,8 +838,8 @@ case 2:
;}
break;
- case 104:
-#line 812 "perly.y"
+ case 106:
+#line 823 "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)),
@@ -830,8 +847,8 @@ case 2:
;}
break;
- case 105:
-#line 818 "perly.y"
+ case 107:
+#line 829 "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)),
@@ -841,15 +858,15 @@ case 2:
;}
break;
- case 106:
-#line 826 "perly.y"
+ case 108:
+#line 837 "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 107:
-#line 830 "perly.y"
+ case 109:
+#line 841 "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),'(');
@@ -857,22 +874,22 @@ case 2:
;}
break;
- case 108:
-#line 836 "perly.y"
+ case 110:
+#line 847 "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 109:
-#line 839 "perly.y"
+ case 111:
+#line 850 "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 112:
-#line 854 "perly.y"
+ case 114:
+#line 865 "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),'{');
@@ -881,16 +898,16 @@ case 2:
;}
break;
- case 113:
-#line 861 "perly.y"
+ case 115:
+#line 872 "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 114:
-#line 866 "perly.y"
+ case 116:
+#line 877 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0,
ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
scalar((ps[(4) - (5)].val.opval)));
@@ -900,8 +917,8 @@ case 2:
;}
break;
- case 115:
-#line 874 "perly.y"
+ case 117:
+#line 885 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0,
ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
scalar((ps[(3) - (4)].val.opval)));
@@ -910,8 +927,8 @@ case 2:
;}
break;
- case 116:
-#line 881 "perly.y"
+ case 118:
+#line 892 "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),'{');
@@ -920,8 +937,8 @@ case 2:
;}
break;
- case 117:
-#line 888 "perly.y"
+ case 119:
+#line 899 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0,
ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
jmaybe((ps[(4) - (6)].val.opval)));
@@ -933,8 +950,8 @@ case 2:
;}
break;
- case 118:
-#line 898 "perly.y"
+ case 120:
+#line 909 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0,
ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
jmaybe((ps[(3) - (5)].val.opval)));
@@ -945,8 +962,8 @@ case 2:
;}
break;
- case 119:
-#line 907 "perly.y"
+ case 121:
+#line 918 "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');
@@ -955,8 +972,8 @@ case 2:
;}
break;
- case 120:
-#line 914 "perly.y"
+ case 122:
+#line 925 "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)))));
@@ -966,8 +983,8 @@ case 2:
;}
break;
- case 121:
-#line 923 "perly.y"
+ case 123:
+#line 934 "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)))));
@@ -976,8 +993,8 @@ case 2:
;}
break;
- case 122:
-#line 930 "perly.y"
+ case 124:
+#line 941 "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),'(');
@@ -985,8 +1002,8 @@ case 2:
;}
break;
- case 123:
-#line 936 "perly.y"
+ case 125:
+#line 947 "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),')');
@@ -995,16 +1012,16 @@ case 2:
;}
break;
- case 124:
-#line 943 "perly.y"
+ case 126:
+#line 954 "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 125:
-#line 948 "perly.y"
+ case 127:
+#line 959 "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),')');
@@ -1013,22 +1030,22 @@ case 2:
;}
break;
- case 126:
-#line 958 "perly.y"
+ case 128:
+#line 969 "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 127:
-#line 962 "perly.y"
+ case 129:
+#line 973 "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 128:
-#line 966 "perly.y"
+ case 130:
+#line 977 "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)));
@@ -1036,50 +1053,50 @@ case 2:
;}
break;
- case 129:
-#line 972 "perly.y"
+ case 131:
+#line 983 "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 130:
-#line 976 "perly.y"
+ case 132:
+#line 987 "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 980 "perly.y"
+ case 133:
+#line 991 "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 984 "perly.y"
+ case 134:
+#line 995 "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 988 "perly.y"
+ case 135:
+#line 999 "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 992 "perly.y"
+ case 136:
+#line 1003 "perly.y"
{ (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
;}
break;
- case 135:
-#line 996 "perly.y"
+ case 137:
+#line 1007 "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({
@@ -1093,29 +1110,29 @@ case 2:
;}
break;
- case 136:
-#line 1008 "perly.y"
+ case 138:
+#line 1019 "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 137:
-#line 1012 "perly.y"
+ case 139:
+#line 1023 "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 138:
-#line 1016 "perly.y"
+ case 140:
+#line 1027 "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 139:
-#line 1020 "perly.y"
+ case 141:
+#line 1031 "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
@@ -1124,15 +1141,15 @@ case 2:
;}
break;
- case 140:
-#line 1030 "perly.y"
+ case 142:
+#line 1041 "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 141:
-#line 1034 "perly.y"
+ case 143:
+#line 1045 "perly.y"
{ (yyval.opval) = IF_MAD(
newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
(ps[(2) - (2)].val.opval)
@@ -1141,70 +1158,70 @@ case 2:
;}
break;
- case 142:
-#line 1041 "perly.y"
+ case 144:
+#line 1052 "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 143:
-#line 1045 "perly.y"
+ case 145:
+#line 1056 "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 144:
-#line 1049 "perly.y"
+ case 146:
+#line 1060 "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 145:
-#line 1054 "perly.y"
+ case 147:
+#line 1065 "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 146:
-#line 1059 "perly.y"
+ case 148:
+#line 1070 "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 147:
-#line 1064 "perly.y"
+ case 149:
+#line 1075 "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 148:
-#line 1073 "perly.y"
+ case 150:
+#line 1084 "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 149:
-#line 1078 "perly.y"
+ case 151:
+#line 1089 "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 150:
-#line 1083 "perly.y"
+ case 152:
+#line 1094 "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),';');
@@ -1212,8 +1229,8 @@ case 2:
;}
break;
- case 151:
-#line 1089 "perly.y"
+ case 153:
+#line 1100 "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),';');
@@ -1221,8 +1238,8 @@ case 2:
;}
break;
- case 152:
-#line 1095 "perly.y"
+ case 154:
+#line 1106 "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');
@@ -1231,22 +1248,22 @@ case 2:
;}
break;
- case 153:
-#line 1106 "perly.y"
+ case 155:
+#line 1117 "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 154:
-#line 1110 "perly.y"
+ case 156:
+#line 1121 "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 155:
-#line 1114 "perly.y"
+ case 157:
+#line 1125 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
op_prepend_elem(OP_LIST,
@@ -1260,8 +1277,8 @@ case 2:
;}
break;
- case 156:
-#line 1126 "perly.y"
+ case 158:
+#line 1137 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
op_append_elem(OP_LIST,
@@ -1276,8 +1293,8 @@ case 2:
;}
break;
- case 157:
-#line 1139 "perly.y"
+ case 159:
+#line 1150 "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();
@@ -1287,8 +1304,8 @@ case 2:
;}
break;
- case 158:
-#line 1147 "perly.y"
+ case 160:
+#line 1158 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
op_prepend_elem(OP_LIST,
(ps[(4) - (5)].val.opval),
@@ -1299,86 +1316,86 @@ case 2:
;}
break;
- case 163:
-#line 1163 "perly.y"
+ case 165:
+#line 1174 "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 164:
-#line 1168 "perly.y"
+ case 166:
+#line 1179 "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 165:
-#line 1172 "perly.y"
+ case 167:
+#line 1183 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 166:
-#line 1174 "perly.y"
+ case 168:
+#line 1185 "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 167:
-#line 1178 "perly.y"
+ case 169:
+#line 1189 "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 168:
-#line 1183 "perly.y"
+ case 170:
+#line 1194 "perly.y"
{ (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
break;
- case 169:
-#line 1185 "perly.y"
+ case 171:
+#line 1196 "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 170:
-#line 1190 "perly.y"
+ case 172:
+#line 1201 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 171:
-#line 1192 "perly.y"
+ case 173:
+#line 1203 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 172:
-#line 1194 "perly.y"
+ case 174:
+#line 1205 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 173:
-#line 1196 "perly.y"
+ case 175:
+#line 1207 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 174:
-#line 1198 "perly.y"
+ case 176:
+#line 1209 "perly.y"
{ (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
break;
- case 175:
-#line 1200 "perly.y"
+ case 177:
+#line 1211 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 176:
-#line 1202 "perly.y"
+ case 178:
+#line 1213 "perly.y"
{ (yyval.opval) = op_prepend_elem(OP_ASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_ASLICE, 0,
@@ -1389,8 +1406,8 @@ case 2:
;}
break;
- case 177:
-#line 1211 "perly.y"
+ case 179:
+#line 1222 "perly.y"
{ (yyval.opval) = op_prepend_elem(OP_HSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_HSLICE, 0,
@@ -1403,26 +1420,26 @@ case 2:
;}
break;
- case 178:
-#line 1222 "perly.y"
+ case 180:
+#line 1233 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 179:
-#line 1224 "perly.y"
+ case 181:
+#line 1235 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
break;
- case 180:
-#line 1226 "perly.y"
+ case 182:
+#line 1237 "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 181:
-#line 1231 "perly.y"
+ case 183:
+#line 1242 "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))));
@@ -1437,91 +1454,91 @@ case 2:
;}
break;
- case 182:
-#line 1244 "perly.y"
+ case 184:
+#line 1255 "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 183:
-#line 1249 "perly.y"
+ case 185:
+#line 1260 "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 184:
-#line 1254 "perly.y"
+ case 186:
+#line 1265 "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 185:
-#line 1258 "perly.y"
+ case 187:
+#line 1269 "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 186:
-#line 1262 "perly.y"
+ case 188:
+#line 1273 "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 187:
-#line 1266 "perly.y"
+ case 189:
+#line 1277 "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 188:
-#line 1270 "perly.y"
+ case 190:
+#line 1281 "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 1274 "perly.y"
+ case 191:
+#line 1285 "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 190:
-#line 1278 "perly.y"
+ case 192:
+#line 1289 "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 191:
-#line 1282 "perly.y"
+ case 193:
+#line 1293 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
break;
- case 192:
-#line 1284 "perly.y"
+ case 194:
+#line 1295 "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 193:
-#line 1287 "perly.y"
+ case 195:
+#line 1298 "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 194:
-#line 1291 "perly.y"
+ case 196:
+#line 1302 "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),'(');
@@ -1529,14 +1546,14 @@ case 2:
;}
break;
- case 195:
-#line 1297 "perly.y"
+ case 197:
+#line 1308 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
scalar((ps[(1) - (1)].val.opval))); ;}
break;
- case 196:
-#line 1300 "perly.y"
+ case 198:
+#line 1311 "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);
@@ -1547,8 +1564,8 @@ case 2:
;}
break;
- case 197:
-#line 1309 "perly.y"
+ case 199:
+#line 1320 "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),'(');
@@ -1556,16 +1573,16 @@ case 2:
;}
break;
- case 198:
-#line 1315 "perly.y"
+ case 200:
+#line 1326 "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 201:
-#line 1322 "perly.y"
+ case 203:
+#line 1333 "perly.y"
{
(yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
@@ -1573,8 +1590,8 @@ case 2:
;}
break;
- case 203:
-#line 1332 "perly.y"
+ case 205:
+#line 1343 "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');
@@ -1584,143 +1601,143 @@ case 2:
;}
break;
- case 204:
-#line 1340 "perly.y"
+ case 206:
+#line 1351 "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 205:
-#line 1347 "perly.y"
+ case 207:
+#line 1358 "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 206:
-#line 1352 "perly.y"
+ case 208:
+#line 1363 "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 207:
-#line 1357 "perly.y"
+ case 209:
+#line 1368 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 208:
-#line 1359 "perly.y"
+ case 210:
+#line 1370 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 209:
-#line 1361 "perly.y"
+ case 211:
+#line 1372 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 210:
-#line 1366 "perly.y"
+ case 212:
+#line 1377 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 211:
-#line 1368 "perly.y"
+ case 213:
+#line 1379 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 212:
-#line 1372 "perly.y"
+ case 214:
+#line 1383 "perly.y"
{ (yyval.opval) = (OP*)NULL; ;}
break;
- case 213:
-#line 1374 "perly.y"
+ case 215:
+#line 1385 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
- case 214:
-#line 1378 "perly.y"
+ case 216:
+#line 1389 "perly.y"
{ (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
break;
- case 215:
-#line 1380 "perly.y"
+ case 217:
+#line 1391 "perly.y"
{ munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
break;
- case 216:
-#line 1382 "perly.y"
+ case 218:
+#line 1393 "perly.y"
{ (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
break;
- case 217:
-#line 1388 "perly.y"
+ case 219:
+#line 1399 "perly.y"
{ PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
break;
- case 218:
-#line 1392 "perly.y"
+ case 220:
+#line 1403 "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 219:
-#line 1398 "perly.y"
+ case 221:
+#line 1409 "perly.y"
{ (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
;}
break;
- case 220:
-#line 1404 "perly.y"
+ case 222:
+#line 1415 "perly.y"
{ (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
;}
break;
- case 221:
-#line 1410 "perly.y"
+ case 223:
+#line 1421 "perly.y"
{ (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
;}
break;
- case 222:
-#line 1416 "perly.y"
+ case 224:
+#line 1427 "perly.y"
{ (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
;}
break;
- case 223:
-#line 1422 "perly.y"
+ case 225:
+#line 1433 "perly.y"
{ (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
;}
break;
- case 224:
-#line 1429 "perly.y"
+ case 226:
+#line 1440 "perly.y"
{ (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
break;
- case 225:
-#line 1431 "perly.y"
+ case 227:
+#line 1442 "perly.y"
{ (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
break;
- case 226:
-#line 1433 "perly.y"
+ case 228:
+#line 1444 "perly.y"
{ (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;}
break;
- case 227:
-#line 1436 "perly.y"
+ case 229:
+#line 1447 "perly.y"
{ (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
break;
diff --git a/perly.h b/perly.h
index a266f042f3..b3a5595ac9 100644
--- a/perly.h
+++ b/perly.h
@@ -41,158 +41,160 @@
know about them. */
enum yytokentype {
GRAMPROG = 258,
- GRAMFULLSTMT = 259,
- GRAMSTMTSEQ = 260,
- WORD = 261,
- METHOD = 262,
- FUNCMETH = 263,
- THING = 264,
- PMFUNC = 265,
- PRIVATEREF = 266,
- QWLIST = 267,
- FUNC0SUB = 268,
- UNIOPSUB = 269,
- LSTOPSUB = 270,
- PLUGEXPR = 271,
- PLUGSTMT = 272,
- LABEL = 273,
- FORMAT = 274,
- SUB = 275,
- ANONSUB = 276,
- PACKAGE = 277,
- USE = 278,
- WHILE = 279,
- UNTIL = 280,
- IF = 281,
- UNLESS = 282,
- ELSE = 283,
- ELSIF = 284,
- CONTINUE = 285,
- FOR = 286,
- GIVEN = 287,
- WHEN = 288,
- DEFAULT = 289,
- LOOPEX = 290,
- DOTDOT = 291,
- YADAYADA = 292,
- FUNC0 = 293,
- FUNC1 = 294,
- FUNC = 295,
- UNIOP = 296,
- LSTOP = 297,
- RELOP = 298,
- EQOP = 299,
- MULOP = 300,
- ADDOP = 301,
- DOLSHARP = 302,
- DO = 303,
- HASHBRACK = 304,
- NOAMP = 305,
- LOCAL = 306,
- MY = 307,
- MYSUB = 308,
- REQUIRE = 309,
- COLONATTR = 310,
- PREC_LOW = 311,
- DOROP = 312,
- OROP = 313,
- ANDOP = 314,
- NOTOP = 315,
- ASSIGNOP = 316,
- DORDOR = 317,
- OROR = 318,
- ANDAND = 319,
- BITOROP = 320,
- BITANDOP = 321,
- SHIFTOP = 322,
- MATCHOP = 323,
- REFGEN = 324,
- UMINUS = 325,
- POWOP = 326,
- POSTDEC = 327,
- POSTINC = 328,
- PREDEC = 329,
- PREINC = 330,
- ARROW = 331,
- PEG = 332
+ GRAMBLOCK = 259,
+ GRAMFULLSTMT = 260,
+ GRAMSTMTSEQ = 261,
+ WORD = 262,
+ METHOD = 263,
+ FUNCMETH = 264,
+ THING = 265,
+ PMFUNC = 266,
+ PRIVATEREF = 267,
+ QWLIST = 268,
+ FUNC0SUB = 269,
+ UNIOPSUB = 270,
+ LSTOPSUB = 271,
+ PLUGEXPR = 272,
+ PLUGSTMT = 273,
+ LABEL = 274,
+ FORMAT = 275,
+ SUB = 276,
+ ANONSUB = 277,
+ PACKAGE = 278,
+ USE = 279,
+ WHILE = 280,
+ UNTIL = 281,
+ IF = 282,
+ UNLESS = 283,
+ ELSE = 284,
+ ELSIF = 285,
+ CONTINUE = 286,
+ FOR = 287,
+ GIVEN = 288,
+ WHEN = 289,
+ DEFAULT = 290,
+ LOOPEX = 291,
+ DOTDOT = 292,
+ YADAYADA = 293,
+ FUNC0 = 294,
+ FUNC1 = 295,
+ FUNC = 296,
+ UNIOP = 297,
+ LSTOP = 298,
+ RELOP = 299,
+ EQOP = 300,
+ MULOP = 301,
+ ADDOP = 302,
+ DOLSHARP = 303,
+ DO = 304,
+ HASHBRACK = 305,
+ NOAMP = 306,
+ LOCAL = 307,
+ MY = 308,
+ MYSUB = 309,
+ REQUIRE = 310,
+ COLONATTR = 311,
+ PREC_LOW = 312,
+ DOROP = 313,
+ OROP = 314,
+ ANDOP = 315,
+ NOTOP = 316,
+ ASSIGNOP = 317,
+ DORDOR = 318,
+ OROR = 319,
+ ANDAND = 320,
+ BITOROP = 321,
+ BITANDOP = 322,
+ SHIFTOP = 323,
+ MATCHOP = 324,
+ REFGEN = 325,
+ UMINUS = 326,
+ POWOP = 327,
+ POSTDEC = 328,
+ POSTINC = 329,
+ PREDEC = 330,
+ PREINC = 331,
+ ARROW = 332,
+ PEG = 333
};
#endif
/* Tokens. */
#define GRAMPROG 258
-#define GRAMFULLSTMT 259
-#define GRAMSTMTSEQ 260
-#define WORD 261
-#define METHOD 262
-#define FUNCMETH 263
-#define THING 264
-#define PMFUNC 265
-#define PRIVATEREF 266
-#define QWLIST 267
-#define FUNC0SUB 268
-#define UNIOPSUB 269
-#define LSTOPSUB 270
-#define PLUGEXPR 271
-#define PLUGSTMT 272
-#define LABEL 273
-#define FORMAT 274
-#define SUB 275
-#define ANONSUB 276
-#define PACKAGE 277
-#define USE 278
-#define WHILE 279
-#define UNTIL 280
-#define IF 281
-#define UNLESS 282
-#define ELSE 283
-#define ELSIF 284
-#define CONTINUE 285
-#define FOR 286
-#define GIVEN 287
-#define WHEN 288
-#define DEFAULT 289
-#define LOOPEX 290
-#define DOTDOT 291
-#define YADAYADA 292
-#define FUNC0 293
-#define FUNC1 294
-#define FUNC 295
-#define UNIOP 296
-#define LSTOP 297
-#define RELOP 298
-#define EQOP 299
-#define MULOP 300
-#define ADDOP 301
-#define DOLSHARP 302
-#define DO 303
-#define HASHBRACK 304
-#define NOAMP 305
-#define LOCAL 306
-#define MY 307
-#define MYSUB 308
-#define REQUIRE 309
-#define COLONATTR 310
-#define PREC_LOW 311
-#define DOROP 312
-#define OROP 313
-#define ANDOP 314
-#define NOTOP 315
-#define ASSIGNOP 316
-#define DORDOR 317
-#define OROR 318
-#define ANDAND 319
-#define BITOROP 320
-#define BITANDOP 321
-#define SHIFTOP 322
-#define MATCHOP 323
-#define REFGEN 324
-#define UMINUS 325
-#define POWOP 326
-#define POSTDEC 327
-#define POSTINC 328
-#define PREDEC 329
-#define PREINC 330
-#define ARROW 331
-#define PEG 332
+#define GRAMBLOCK 259
+#define GRAMFULLSTMT 260
+#define GRAMSTMTSEQ 261
+#define WORD 262
+#define METHOD 263
+#define FUNCMETH 264
+#define THING 265
+#define PMFUNC 266
+#define PRIVATEREF 267
+#define QWLIST 268
+#define FUNC0SUB 269
+#define UNIOPSUB 270
+#define LSTOPSUB 271
+#define PLUGEXPR 272
+#define PLUGSTMT 273
+#define LABEL 274
+#define FORMAT 275
+#define SUB 276
+#define ANONSUB 277
+#define PACKAGE 278
+#define USE 279
+#define WHILE 280
+#define UNTIL 281
+#define IF 282
+#define UNLESS 283
+#define ELSE 284
+#define ELSIF 285
+#define CONTINUE 286
+#define FOR 287
+#define GIVEN 288
+#define WHEN 289
+#define DEFAULT 290
+#define LOOPEX 291
+#define DOTDOT 292
+#define YADAYADA 293
+#define FUNC0 294
+#define FUNC1 295
+#define FUNC 296
+#define UNIOP 297
+#define LSTOP 298
+#define RELOP 299
+#define EQOP 300
+#define MULOP 301
+#define ADDOP 302
+#define DOLSHARP 303
+#define DO 304
+#define HASHBRACK 305
+#define NOAMP 306
+#define LOCAL 307
+#define MY 308
+#define MYSUB 309
+#define REQUIRE 310
+#define COLONATTR 311
+#define PREC_LOW 312
+#define DOROP 313
+#define OROP 314
+#define ANDOP 315
+#define NOTOP 316
+#define ASSIGNOP 317
+#define DORDOR 318
+#define OROR 319
+#define ANDAND 320
+#define BITOROP 321
+#define BITANDOP 322
+#define SHIFTOP 323
+#define MATCHOP 324
+#define REFGEN 325
+#define UMINUS 326
+#define POWOP 327
+#define POSTDEC 328
+#define POSTINC 329
+#define PREDEC 330
+#define PREINC 331
+#define ARROW 332
+#define PEG 333
diff --git a/perly.tab b/perly.tab
index 834cc9bcf1..6b3a73baf3 100644
--- a/perly.tab
+++ b/perly.tab
@@ -1,19 +1,19 @@
-#define YYFINAL 9
+#define YYFINAL 11
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2118
+#define YYLAST 2121
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 97
+#define YYNTOKENS 98
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 73
+#define YYNNTS 74
/* YYNRULES -- Number of rules. */
-#define YYNRULES 227
+#define YYNRULES 229
/* YYNRULES -- Number of states. */
-#define YYNSTATES 448
+#define YYNSTATES 451
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 332
+#define YYMAXUTOK 333
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -24,16 +24,16 @@ static const yytype_uint8 yytranslate[] =
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 84, 2, 2, 12, 14, 16, 2,
- 95, 94, 15, 11, 73, 10, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 76, 17,
- 2, 2, 2, 75, 13, 2, 2, 2, 2, 2,
+ 2, 2, 2, 85, 2, 2, 13, 15, 17, 2,
+ 96, 95, 16, 12, 74, 11, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 77, 18,
+ 2, 2, 2, 76, 14, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 8, 2, 9, 2, 2, 2, 2, 2, 2,
+ 2, 9, 2, 10, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 6, 2, 7, 85, 2, 2, 2,
+ 2, 2, 2, 7, 2, 8, 86, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -47,14 +47,14 @@ static const yytype_uint8 yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 5, 6, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 74, 77, 78, 79,
- 80, 81, 82, 83, 86, 87, 88, 89, 90, 91,
- 92, 93, 96
+ 67, 68, 69, 70, 71, 72, 73, 75, 78, 79,
+ 80, 81, 82, 83, 84, 87, 88, 89, 90, 91,
+ 92, 93, 94, 97
};
#if YYDEBUG
@@ -62,141 +62,141 @@ static const yytype_uint8 yytranslate[] =
YYRHS. */
static const yytype_uint16 yyprhs[] =
{
- 0, 0, 3, 6, 7, 11, 12, 16, 19, 24,
- 25, 26, 27, 32, 33, 34, 37, 40, 42, 44,
- 47, 49, 51, 54, 57, 61, 63, 66, 68, 70,
- 74, 78, 82, 86, 90, 94, 95, 98, 105, 113,
- 121, 128, 131, 132, 135, 145, 155, 166, 176, 185,
- 198, 202, 211, 212, 213, 215, 216, 218, 220, 222,
- 224, 226, 227, 229, 231, 233, 235, 237, 239, 241,
- 243, 248, 250, 251, 258, 265, 266, 267, 268, 270,
- 271, 273, 274, 277, 279, 282, 284, 286, 288, 293,
- 294, 303, 304, 312, 316, 320, 324, 326, 329, 333,
- 335, 339, 345, 352, 356, 360, 366, 369, 374, 375,
- 381, 383, 385, 391, 396, 402, 407, 413, 420, 426,
- 431, 437, 442, 446, 453, 458, 464, 468, 472, 476,
- 480, 484, 488, 492, 496, 500, 504, 508, 512, 516,
- 520, 523, 526, 529, 532, 535, 538, 541, 544, 548,
- 551, 556, 560, 566, 569, 572, 577, 583, 588, 594,
- 596, 598, 600, 602, 608, 611, 613, 616, 620, 622,
- 625, 627, 629, 631, 633, 635, 637, 642, 648, 650,
- 652, 656, 661, 665, 667, 670, 673, 675, 678, 681,
- 683, 686, 688, 691, 693, 697, 699, 703, 708, 713,
- 715, 717, 719, 721, 725, 728, 732, 735, 737, 739,
- 741, 742, 744, 745, 747, 749, 750, 754, 756, 759,
- 762, 765, 768, 771, 774, 776, 778, 780
+ 0, 0, 3, 6, 7, 11, 12, 16, 17, 21,
+ 24, 29, 30, 31, 32, 37, 38, 39, 42, 45,
+ 47, 49, 52, 54, 56, 59, 62, 66, 68, 71,
+ 73, 75, 79, 83, 87, 91, 95, 99, 100, 103,
+ 110, 118, 126, 133, 136, 137, 140, 150, 160, 171,
+ 181, 190, 203, 207, 216, 217, 218, 220, 221, 223,
+ 225, 227, 229, 231, 232, 234, 236, 238, 240, 242,
+ 244, 246, 248, 253, 255, 256, 263, 270, 271, 272,
+ 273, 275, 276, 278, 279, 282, 284, 287, 289, 291,
+ 293, 298, 299, 308, 309, 317, 321, 325, 329, 331,
+ 334, 338, 340, 344, 350, 357, 361, 365, 371, 374,
+ 379, 380, 386, 388, 390, 396, 401, 407, 412, 418,
+ 425, 431, 436, 442, 447, 451, 458, 463, 469, 473,
+ 477, 481, 485, 489, 493, 497, 501, 505, 509, 513,
+ 517, 521, 525, 528, 531, 534, 537, 540, 543, 546,
+ 549, 553, 556, 561, 565, 571, 574, 577, 582, 588,
+ 593, 599, 601, 603, 605, 607, 613, 616, 618, 621,
+ 625, 627, 630, 632, 634, 636, 638, 640, 642, 647,
+ 653, 655, 657, 661, 666, 670, 672, 675, 678, 680,
+ 683, 686, 688, 691, 693, 696, 698, 702, 704, 708,
+ 713, 718, 720, 722, 724, 726, 730, 733, 737, 740,
+ 742, 744, 746, 747, 749, 750, 752, 754, 755, 759,
+ 761, 764, 767, 770, 773, 776, 779, 781, 783, 785
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 98, 0, -1, 3, 101, -1, -1, 4, 99, 109,
- -1, -1, 5, 100, 108, -1, 105, 108, -1, 6,
- 103, 108, 7, -1, -1, -1, -1, 6, 107, 108,
- 7, -1, -1, -1, 108, 126, -1, 108, 110, -1,
- 126, -1, 110, -1, 125, 113, -1, 116, -1, 117,
- -1, 125, 114, -1, 125, 17, -1, 125, 111, 17,
- -1, 141, -1, 125, 29, -1, 1, -1, 145, -1,
- 145, 38, 145, -1, 145, 39, 145, -1, 145, 36,
- 145, -1, 145, 37, 121, -1, 145, 43, 145, -1,
- 145, 45, 145, -1, -1, 40, 106, -1, 41, 160,
- 122, 94, 106, 112, -1, 38, 160, 103, 122, 94,
- 106, 112, -1, 39, 160, 103, 124, 94, 106, 112,
- -1, 45, 160, 103, 122, 94, 106, -1, 46, 102,
- -1, -1, 42, 102, -1, 125, 36, 160, 103, 120,
- 94, 118, 106, 115, -1, 125, 37, 160, 103, 121,
- 94, 118, 106, 115, -1, 125, 43, 64, 103, 162,
- 160, 122, 94, 106, 115, -1, 125, 43, 164, 160,
- 103, 122, 94, 106, 115, -1, 125, 43, 160, 103,
- 122, 94, 106, 115, -1, 125, 43, 160, 103, 123,
- 17, 120, 17, 118, 123, 94, 106, -1, 125, 102,
- 115, -1, 125, 44, 160, 103, 104, 122, 94, 106,
- -1, -1, -1, 111, -1, -1, 145, -1, 145, -1,
- 145, -1, 119, -1, 121, -1, -1, 30, -1, 128,
- -1, 131, -1, 130, -1, 140, -1, 143, -1, 127,
- -1, 96, -1, 31, 134, 129, 102, -1, 18, -1,
- -1, 65, 132, 135, 136, 137, 139, -1, 32, 132,
- 135, 136, 137, 139, -1, -1, -1, -1, 18, -1,
- -1, 21, -1, -1, 67, 21, -1, 67, -1, 67,
- 21, -1, 67, -1, 102, -1, 17, -1, 34, 18,
- 18, 17, -1, -1, 34, 18, 18, 6, 103, 142,
- 108, 7, -1, -1, 35, 132, 144, 18, 18, 158,
- 17, -1, 145, 71, 145, -1, 145, 70, 145, -1,
- 145, 69, 145, -1, 146, -1, 146, 73, -1, 146,
- 73, 155, -1, 155, -1, 54, 169, 146, -1, 52,
- 95, 169, 145, 94, -1, 155, 93, 149, 160, 159,
- 94, -1, 155, 93, 149, -1, 19, 169, 158, -1,
- 20, 169, 95, 159, 94, -1, 54, 158, -1, 52,
- 95, 159, 94, -1, -1, 27, 133, 102, 148, 158,
- -1, 19, -1, 164, -1, 168, 6, 145, 17, 7,
- -1, 164, 8, 145, 9, -1, 155, 93, 8, 145,
- 9, -1, 150, 8, 145, 9, -1, 164, 6, 145,
- 17, 7, -1, 155, 93, 6, 145, 17, 7, -1,
- 150, 6, 145, 17, 7, -1, 155, 93, 95, 94,
- -1, 155, 93, 95, 145, 94, -1, 150, 160, 145,
- 94, -1, 150, 160, 94, -1, 95, 145, 94, 8,
- 145, 9, -1, 24, 8, 145, 9, -1, 95, 94,
- 8, 145, 9, -1, 155, 74, 155, -1, 155, 88,
- 155, -1, 155, 57, 155, -1, 155, 58, 155, -1,
- 155, 82, 155, -1, 155, 55, 155, -1, 155, 56,
- 155, -1, 155, 81, 155, -1, 155, 80, 155, -1,
- 155, 48, 155, -1, 155, 79, 155, -1, 155, 78,
- 155, -1, 155, 77, 155, -1, 155, 83, 155, -1,
- 10, 155, -1, 11, 155, -1, 84, 155, -1, 85,
- 155, -1, 155, 90, -1, 155, 89, -1, 92, 155,
- -1, 91, 155, -1, 8, 145, 9, -1, 8, 9,
- -1, 61, 145, 17, 7, -1, 61, 17, 7, -1,
- 33, 133, 136, 137, 102, -1, 60, 155, -1, 60,
- 102, -1, 60, 18, 160, 94, -1, 60, 18, 160,
- 145, 94, -1, 60, 164, 160, 94, -1, 60, 164,
- 160, 145, 94, -1, 151, -1, 152, -1, 153, -1,
- 154, -1, 155, 75, 155, 76, 155, -1, 86, 155,
- -1, 156, -1, 63, 155, -1, 95, 145, 94, -1,
- 24, -1, 95, 94, -1, 164, -1, 168, -1, 166,
- -1, 165, -1, 167, -1, 150, -1, 165, 8, 145,
- 9, -1, 165, 6, 145, 17, 7, -1, 21, -1,
- 163, -1, 163, 160, 94, -1, 163, 160, 145, 94,
- -1, 62, 18, 158, -1, 47, -1, 47, 155, -1,
- 72, 146, -1, 53, -1, 53, 102, -1, 53, 155,
- -1, 66, -1, 66, 155, -1, 26, -1, 26, 155,
- -1, 50, -1, 50, 95, 94, -1, 25, -1, 51,
- 95, 94, -1, 51, 95, 145, 94, -1, 22, 95,
- 146, 94, -1, 18, -1, 147, -1, 49, -1, 28,
- -1, 64, 157, 138, -1, 64, 157, -1, 95, 145,
- 94, -1, 95, 94, -1, 164, -1, 166, -1, 165,
- -1, -1, 146, -1, -1, 145, -1, 95, -1, -1,
- 24, 161, 95, -1, 164, -1, 16, 169, -1, 12,
- 169, -1, 13, 169, -1, 14, 169, -1, 59, 169,
- -1, 15, 169, -1, 18, -1, 164, -1, 102, -1,
- 23, -1
+ 99, 0, -1, 3, 103, -1, -1, 4, 100, 104,
+ -1, -1, 5, 101, 111, -1, -1, 6, 102, 110,
+ -1, 107, 110, -1, 7, 105, 110, 8, -1, -1,
+ -1, -1, 7, 109, 110, 8, -1, -1, -1, 110,
+ 128, -1, 110, 112, -1, 128, -1, 112, -1, 127,
+ 115, -1, 118, -1, 119, -1, 127, 116, -1, 127,
+ 18, -1, 127, 113, 18, -1, 143, -1, 127, 30,
+ -1, 1, -1, 147, -1, 147, 39, 147, -1, 147,
+ 40, 147, -1, 147, 37, 147, -1, 147, 38, 123,
+ -1, 147, 44, 147, -1, 147, 46, 147, -1, -1,
+ 41, 108, -1, 42, 162, 124, 95, 108, 114, -1,
+ 39, 162, 105, 124, 95, 108, 114, -1, 40, 162,
+ 105, 126, 95, 108, 114, -1, 46, 162, 105, 124,
+ 95, 108, -1, 47, 104, -1, -1, 43, 104, -1,
+ 127, 37, 162, 105, 122, 95, 120, 108, 117, -1,
+ 127, 38, 162, 105, 123, 95, 120, 108, 117, -1,
+ 127, 44, 65, 105, 164, 162, 124, 95, 108, 117,
+ -1, 127, 44, 166, 162, 105, 124, 95, 108, 117,
+ -1, 127, 44, 162, 105, 124, 95, 108, 117, -1,
+ 127, 44, 162, 105, 125, 18, 122, 18, 120, 125,
+ 95, 108, -1, 127, 104, 117, -1, 127, 45, 162,
+ 105, 106, 124, 95, 108, -1, -1, -1, 113, -1,
+ -1, 147, -1, 147, -1, 147, -1, 121, -1, 123,
+ -1, -1, 31, -1, 130, -1, 133, -1, 132, -1,
+ 142, -1, 145, -1, 129, -1, 97, -1, 32, 136,
+ 131, 104, -1, 19, -1, -1, 66, 134, 137, 138,
+ 139, 141, -1, 33, 134, 137, 138, 139, 141, -1,
+ -1, -1, -1, 19, -1, -1, 22, -1, -1, 68,
+ 22, -1, 68, -1, 68, 22, -1, 68, -1, 104,
+ -1, 18, -1, 35, 19, 19, 18, -1, -1, 35,
+ 19, 19, 7, 105, 144, 110, 8, -1, -1, 36,
+ 134, 146, 19, 19, 160, 18, -1, 147, 72, 147,
+ -1, 147, 71, 147, -1, 147, 70, 147, -1, 148,
+ -1, 148, 74, -1, 148, 74, 157, -1, 157, -1,
+ 55, 171, 148, -1, 53, 96, 171, 147, 95, -1,
+ 157, 94, 151, 162, 161, 95, -1, 157, 94, 151,
+ -1, 20, 171, 160, -1, 21, 171, 96, 161, 95,
+ -1, 55, 160, -1, 53, 96, 161, 95, -1, -1,
+ 28, 135, 104, 150, 160, -1, 20, -1, 166, -1,
+ 170, 7, 147, 18, 8, -1, 166, 9, 147, 10,
+ -1, 157, 94, 9, 147, 10, -1, 152, 9, 147,
+ 10, -1, 166, 7, 147, 18, 8, -1, 157, 94,
+ 7, 147, 18, 8, -1, 152, 7, 147, 18, 8,
+ -1, 157, 94, 96, 95, -1, 157, 94, 96, 147,
+ 95, -1, 152, 162, 147, 95, -1, 152, 162, 95,
+ -1, 96, 147, 95, 9, 147, 10, -1, 25, 9,
+ 147, 10, -1, 96, 95, 9, 147, 10, -1, 157,
+ 75, 157, -1, 157, 89, 157, -1, 157, 58, 157,
+ -1, 157, 59, 157, -1, 157, 83, 157, -1, 157,
+ 56, 157, -1, 157, 57, 157, -1, 157, 82, 157,
+ -1, 157, 81, 157, -1, 157, 49, 157, -1, 157,
+ 80, 157, -1, 157, 79, 157, -1, 157, 78, 157,
+ -1, 157, 84, 157, -1, 11, 157, -1, 12, 157,
+ -1, 85, 157, -1, 86, 157, -1, 157, 91, -1,
+ 157, 90, -1, 93, 157, -1, 92, 157, -1, 9,
+ 147, 10, -1, 9, 10, -1, 62, 147, 18, 8,
+ -1, 62, 18, 8, -1, 34, 135, 138, 139, 104,
+ -1, 61, 157, -1, 61, 104, -1, 61, 19, 162,
+ 95, -1, 61, 19, 162, 147, 95, -1, 61, 166,
+ 162, 95, -1, 61, 166, 162, 147, 95, -1, 153,
+ -1, 154, -1, 155, -1, 156, -1, 157, 76, 157,
+ 77, 157, -1, 87, 157, -1, 158, -1, 64, 157,
+ -1, 96, 147, 95, -1, 25, -1, 96, 95, -1,
+ 166, -1, 170, -1, 168, -1, 167, -1, 169, -1,
+ 152, -1, 167, 9, 147, 10, -1, 167, 7, 147,
+ 18, 8, -1, 22, -1, 165, -1, 165, 162, 95,
+ -1, 165, 162, 147, 95, -1, 63, 19, 160, -1,
+ 48, -1, 48, 157, -1, 73, 148, -1, 54, -1,
+ 54, 104, -1, 54, 157, -1, 67, -1, 67, 157,
+ -1, 27, -1, 27, 157, -1, 51, -1, 51, 96,
+ 95, -1, 26, -1, 52, 96, 95, -1, 52, 96,
+ 147, 95, -1, 23, 96, 148, 95, -1, 19, -1,
+ 149, -1, 50, -1, 29, -1, 65, 159, 140, -1,
+ 65, 159, -1, 96, 147, 95, -1, 96, 95, -1,
+ 166, -1, 168, -1, 167, -1, -1, 148, -1, -1,
+ 147, -1, 96, -1, -1, 25, 163, 96, -1, 166,
+ -1, 17, 171, -1, 13, 171, -1, 14, 171, -1,
+ 15, 171, -1, 60, 171, -1, 16, 171, -1, 19,
+ -1, 166, -1, 104, -1, 24, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 144, 144, 147, 146, 158, 157, 169, 175, 185,
- 189, 193, 199, 209, 214, 215, 219, 228, 230, 238,
- 241, 242, 244, 246, 263, 279, 284, 289, 291, 293,
- 297, 301, 305, 309, 314, 320, 321, 325, 336, 344,
- 355, 358, 364, 365, 372, 385, 397, 408, 418, 428,
- 460, 468, 478, 484, 485, 490, 493, 497, 502, 506,
- 510, 516, 525, 529, 531, 533, 535, 537, 542, 546,
- 552, 572, 573, 577, 590, 613, 619, 624, 629, 639,
- 640, 645, 646, 650, 660, 664, 674, 675, 684, 702,
- 701, 727, 726, 745, 749, 753, 757, 761, 771, 780,
- 784, 789, 796, 805, 811, 817, 825, 829, 836, 835,
- 846, 847, 851, 860, 865, 873, 880, 887, 897, 906,
- 913, 922, 929, 935, 942, 947, 957, 961, 965, 971,
- 975, 979, 983, 987, 991, 995, 1007, 1011, 1015, 1019,
- 1029, 1033, 1040, 1044, 1048, 1053, 1058, 1063, 1072, 1077,
- 1082, 1088, 1094, 1105, 1109, 1113, 1125, 1138, 1146, 1158,
- 1159, 1160, 1161, 1162, 1167, 1171, 1173, 1177, 1182, 1184,
- 1189, 1191, 1193, 1195, 1197, 1199, 1201, 1210, 1221, 1223,
- 1225, 1230, 1243, 1248, 1253, 1257, 1261, 1265, 1269, 1273,
- 1277, 1281, 1283, 1286, 1290, 1296, 1299, 1308, 1314, 1319,
- 1320, 1321, 1327, 1331, 1339, 1346, 1351, 1356, 1358, 1360,
- 1365, 1367, 1372, 1373, 1377, 1380, 1379, 1387, 1391, 1397,
- 1403, 1409, 1415, 1421, 1428, 1430, 1432, 1435
+ 0, 144, 144, 147, 146, 158, 157, 169, 168, 180,
+ 186, 196, 200, 204, 210, 220, 225, 226, 230, 239,
+ 241, 249, 252, 253, 255, 257, 274, 290, 295, 300,
+ 302, 304, 308, 312, 316, 320, 325, 331, 332, 336,
+ 347, 355, 366, 369, 375, 376, 383, 396, 408, 419,
+ 429, 439, 471, 479, 489, 495, 496, 501, 504, 508,
+ 513, 517, 521, 527, 536, 540, 542, 544, 546, 548,
+ 553, 557, 563, 583, 584, 588, 601, 624, 630, 635,
+ 640, 650, 651, 656, 657, 661, 671, 675, 685, 686,
+ 695, 713, 712, 738, 737, 756, 760, 764, 768, 772,
+ 782, 791, 795, 800, 807, 816, 822, 828, 836, 840,
+ 847, 846, 857, 858, 862, 871, 876, 884, 891, 898,
+ 908, 917, 924, 933, 940, 946, 953, 958, 968, 972,
+ 976, 982, 986, 990, 994, 998, 1002, 1006, 1018, 1022,
+ 1026, 1030, 1040, 1044, 1051, 1055, 1059, 1064, 1069, 1074,
+ 1083, 1088, 1093, 1099, 1105, 1116, 1120, 1124, 1136, 1149,
+ 1157, 1169, 1170, 1171, 1172, 1173, 1178, 1182, 1184, 1188,
+ 1193, 1195, 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1221,
+ 1232, 1234, 1236, 1241, 1254, 1259, 1264, 1268, 1272, 1276,
+ 1280, 1284, 1288, 1292, 1294, 1297, 1301, 1307, 1310, 1319,
+ 1325, 1330, 1331, 1332, 1338, 1342, 1350, 1357, 1362, 1367,
+ 1369, 1371, 1376, 1378, 1383, 1384, 1388, 1391, 1390, 1398,
+ 1402, 1408, 1414, 1420, 1426, 1432, 1439, 1441, 1443, 1446
};
#endif
@@ -205,7 +205,7 @@ static const yytype_uint16 yyrline[] =
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
- "$end", "error", "$undefined", "GRAMPROG", "GRAMFULLSTMT",
+ "$end", "error", "$undefined", "GRAMPROG", "GRAMBLOCK", "GRAMFULLSTMT",
"GRAMSTMTSEQ", "'{'", "'}'", "'['", "']'", "'-'", "'+'", "'$'", "'@'",
"'%'", "'*'", "'&'", "';'", "WORD", "METHOD", "FUNCMETH", "THING",
"PMFUNC", "PRIVATEREF", "QWLIST", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB",
@@ -218,17 +218,18 @@ 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", "@2", "prog", "block", "remember",
- "mydefsv", "progstart", "mblock", "mremember", "lineseq", "fullstmt",
- "line", "sideff", "else", "cond", "case", "cont", "loop", "switch",
- "mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "miexpr",
- "label", "decl", "peg", "format", "formname", "mysubrout", "subrout",
- "startsub", "startanonsub", "startformsub", "subname", "proto",
- "subattrlist", "myattrlist", "subbody", "package", "package_block", "@3",
- "use", "@4", "expr", "argexpr", "listop", "@5", "method", "subscripted",
- "termbinop", "termunop", "anonymous", "termdo", "term", "myattrterm",
- "myterm", "listexpr", "listexprcom", "lpar_or_qw", "@6", "my_scalar",
- "amper", "scalar", "ary", "hsh", "arylen", "star", "indirob", 0
+ "PEG", "$accept", "grammar", "@1", "@2", "@3", "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", "@4", "use", "@5", "expr", "argexpr", "listop", "@6",
+ "method", "subscripted", "termbinop", "termunop", "anonymous", "termdo",
+ "term", "myattrterm", "myterm", "listexpr", "listexprcom", "lpar_or_qw",
+ "@7", "my_scalar", "amper", "scalar", "ary", "hsh", "arylen", "star",
+ "indirob", 0
};
#endif
@@ -237,73 +238,73 @@ static const char *const yytname[] =
token YYLEX-NUM. */
static const yytype_uint16 yytoknum[] =
{
- 0, 256, 257, 258, 259, 260, 123, 125, 91, 93,
- 45, 43, 36, 64, 37, 42, 38, 59, 261, 262,
+ 0, 256, 257, 258, 259, 260, 261, 123, 125, 91,
+ 93, 45, 43, 36, 64, 37, 42, 38, 59, 262,
263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 44, 316, 63, 58, 317, 318, 319,
- 320, 321, 322, 323, 33, 126, 324, 325, 326, 327,
- 328, 329, 330, 331, 41, 40, 332
+ 313, 314, 315, 316, 44, 317, 63, 58, 318, 319,
+ 320, 321, 322, 323, 324, 33, 126, 325, 326, 327,
+ 328, 329, 330, 331, 332, 41, 40, 333
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 97, 98, 99, 98, 100, 98, 101, 102, 103,
- 104, 105, 106, 107, 108, 108, 108, 109, 109, 110,
- 110, 110, 110, 110, 110, 110, 110, 111, 111, 111,
- 111, 111, 111, 111, 111, 112, 112, 112, 113, 113,
- 114, 114, 115, 115, 116, 116, 116, 116, 116, 116,
- 116, 117, 118, 119, 119, 120, 120, 121, 122, 123,
- 124, 125, 125, 126, 126, 126, 126, 126, 126, 127,
- 128, 129, 129, 130, 131, 132, 133, 134, 135, 136,
- 136, 137, 137, 137, 138, 138, 139, 139, 140, 142,
- 141, 144, 143, 145, 145, 145, 145, 146, 146, 146,
- 147, 147, 147, 147, 147, 147, 147, 147, 148, 147,
- 149, 149, 150, 150, 150, 150, 150, 150, 150, 150,
- 150, 150, 150, 150, 150, 150, 151, 151, 151, 151,
- 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+ 0, 98, 99, 100, 99, 101, 99, 102, 99, 103,
+ 104, 105, 106, 107, 108, 109, 110, 110, 110, 111,
+ 111, 112, 112, 112, 112, 112, 112, 112, 112, 113,
+ 113, 113, 113, 113, 113, 113, 113, 114, 114, 114,
+ 115, 115, 116, 116, 117, 117, 118, 118, 118, 118,
+ 118, 118, 118, 119, 120, 121, 121, 122, 122, 123,
+ 124, 125, 126, 127, 127, 128, 128, 128, 128, 128,
+ 128, 129, 130, 131, 131, 132, 133, 134, 135, 136,
+ 137, 138, 138, 139, 139, 139, 140, 140, 141, 141,
+ 142, 144, 143, 146, 145, 147, 147, 147, 147, 148,
+ 148, 148, 149, 149, 149, 149, 149, 149, 149, 149,
+ 150, 149, 151, 151, 152, 152, 152, 152, 152, 152,
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
+ 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
+ 153, 153, 154, 154, 154, 154, 154, 154, 154, 154,
+ 155, 155, 155, 155, 155, 156, 156, 156, 156, 156,
+ 156, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 158, 158, 159, 159, 159,
+ 159, 159, 160, 160, 161, 161, 162, 163, 162, 164,
+ 165, 166, 167, 168, 169, 170, 171, 171, 171, 171
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
- 0, 2, 2, 0, 3, 0, 3, 2, 4, 0,
- 0, 0, 4, 0, 0, 2, 2, 1, 1, 2,
- 1, 1, 2, 2, 3, 1, 2, 1, 1, 3,
- 3, 3, 3, 3, 3, 0, 2, 6, 7, 7,
- 6, 2, 0, 2, 9, 9, 10, 9, 8, 12,
- 3, 8, 0, 0, 1, 0, 1, 1, 1, 1,
- 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
- 4, 1, 0, 6, 6, 0, 0, 0, 1, 0,
- 1, 0, 2, 1, 2, 1, 1, 1, 4, 0,
- 8, 0, 7, 3, 3, 3, 1, 2, 3, 1,
- 3, 5, 6, 3, 3, 5, 2, 4, 0, 5,
- 1, 1, 5, 4, 5, 4, 5, 6, 5, 4,
- 5, 4, 3, 6, 4, 5, 3, 3, 3, 3,
+ 0, 2, 2, 0, 3, 0, 3, 0, 3, 2,
+ 4, 0, 0, 0, 4, 0, 0, 2, 2, 1,
+ 1, 2, 1, 1, 2, 2, 3, 1, 2, 1,
+ 1, 3, 3, 3, 3, 3, 3, 0, 2, 6,
+ 7, 7, 6, 2, 0, 2, 9, 9, 10, 9,
+ 8, 12, 3, 8, 0, 0, 1, 0, 1, 1,
+ 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 4, 1, 0, 6, 6, 0, 0, 0,
+ 1, 0, 1, 0, 2, 1, 2, 1, 1, 1,
+ 4, 0, 8, 0, 7, 3, 3, 3, 1, 2,
+ 3, 1, 3, 5, 6, 3, 3, 5, 2, 4,
+ 0, 5, 1, 1, 5, 4, 5, 4, 5, 6,
+ 5, 4, 5, 4, 3, 6, 4, 5, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 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
+ 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
@@ -311,617 +312,622 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 11, 3, 5, 0, 2, 14, 61, 14, 1,
- 61, 62, 77, 75, 0, 75, 75, 69, 4, 18,
- 20, 21, 0, 17, 68, 63, 65, 64, 66, 25,
- 67, 61, 16, 15, 72, 0, 0, 91, 0, 27,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 23,
- 199, 0, 0, 178, 0, 168, 195, 191, 76, 202,
- 26, 76, 0, 0, 0, 0, 0, 0, 0, 0,
- 183, 201, 193, 0, 0, 186, 210, 0, 0, 0,
- 0, 0, 0, 189, 0, 0, 0, 0, 0, 0,
- 0, 42, 0, 19, 22, 28, 96, 200, 175, 159,
- 160, 161, 162, 99, 165, 179, 170, 173, 172, 174,
- 171, 71, 0, 78, 79, 0, 0, 79, 14, 149,
- 0, 140, 141, 224, 227, 226, 225, 219, 220, 221,
- 223, 218, 210, 0, 0, 0, 192, 0, 79, 215,
- 214, 9, 9, 9, 9, 9, 9, 0, 9, 9,
- 41, 184, 0, 0, 212, 187, 188, 224, 211, 106,
- 225, 0, 222, 199, 154, 153, 170, 0, 0, 210,
- 166, 0, 204, 207, 209, 208, 190, 185, 142, 143,
- 164, 147, 146, 169, 0, 0, 50, 24, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 97, 0, 0,
+ 0, 13, 3, 5, 7, 0, 2, 16, 0, 63,
+ 16, 1, 63, 11, 4, 64, 79, 77, 0, 77,
+ 77, 71, 6, 20, 22, 23, 0, 19, 70, 65,
+ 67, 66, 68, 27, 69, 63, 18, 17, 16, 74,
+ 0, 0, 93, 0, 29, 0, 0, 0, 0, 0,
+ 0, 0, 0, 25, 201, 0, 0, 180, 0, 170,
+ 197, 193, 78, 204, 28, 78, 0, 0, 0, 0,
+ 0, 0, 0, 0, 185, 203, 195, 0, 0, 188,
+ 212, 0, 0, 0, 0, 0, 0, 191, 0, 0,
+ 0, 0, 0, 0, 0, 44, 0, 21, 24, 30,
+ 98, 202, 177, 161, 162, 163, 164, 101, 167, 181,
+ 172, 175, 174, 176, 173, 63, 73, 0, 80, 81,
+ 0, 0, 81, 151, 0, 142, 143, 226, 229, 228,
+ 227, 221, 222, 223, 225, 220, 212, 0, 0, 0,
+ 194, 0, 81, 217, 216, 11, 11, 11, 11, 11,
+ 11, 0, 11, 11, 43, 186, 0, 0, 214, 189,
+ 190, 226, 213, 108, 227, 0, 224, 201, 156, 155,
+ 172, 0, 0, 212, 168, 0, 206, 209, 211, 210,
+ 192, 187, 144, 145, 166, 149, 148, 171, 0, 0,
+ 52, 26, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 99, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 145, 144, 0, 0,
- 0, 0, 0, 0, 0, 70, 80, 81, 9, 88,
- 0, 81, 61, 148, 104, 212, 0, 0, 108, 81,
- 0, 55, 0, 0, 0, 0, 0, 9, 10, 0,
- 194, 196, 0, 213, 0, 0, 100, 0, 0, 151,
- 0, 182, 206, 0, 85, 203, 0, 167, 43, 31,
- 32, 57, 29, 30, 33, 34, 95, 94, 93, 98,
- 0, 0, 122, 0, 135, 131, 132, 128, 129, 126,
- 0, 138, 137, 136, 134, 133, 130, 139, 127, 0,
- 0, 110, 0, 103, 111, 180, 0, 0, 0, 0,
- 0, 0, 83, 0, 89, 210, 0, 8, 0, 198,
- 124, 210, 0, 216, 0, 56, 0, 0, 58, 60,
- 0, 0, 217, 54, 59, 0, 0, 28, 0, 0,
- 0, 197, 107, 0, 155, 0, 157, 0, 150, 205,
- 84, 0, 0, 0, 115, 121, 0, 0, 0, 119,
- 0, 212, 181, 0, 113, 0, 176, 0, 82, 87,
- 86, 74, 14, 0, 73, 105, 109, 152, 52, 52,
- 0, 0, 0, 0, 55, 0, 0, 0, 101, 156,
- 158, 125, 0, 118, 163, 0, 114, 120, 0, 116,
- 177, 112, 61, 92, 0, 0, 13, 35, 35, 0,
- 42, 0, 0, 0, 40, 123, 117, 102, 90, 42,
- 42, 14, 0, 0, 38, 39, 0, 48, 52, 42,
- 51, 44, 45, 61, 36, 0, 42, 0, 47, 12,
- 0, 46, 0, 0, 0, 35, 49, 37
+ 147, 146, 0, 0, 0, 0, 0, 0, 0, 10,
+ 72, 82, 83, 11, 90, 0, 83, 150, 106, 214,
+ 0, 0, 110, 83, 0, 57, 0, 0, 0, 0,
+ 0, 11, 12, 0, 196, 198, 0, 215, 0, 0,
+ 102, 0, 0, 153, 0, 184, 208, 0, 87, 205,
+ 0, 169, 45, 33, 34, 59, 31, 32, 35, 36,
+ 97, 96, 95, 100, 0, 0, 124, 0, 137, 133,
+ 134, 130, 131, 128, 0, 140, 139, 138, 136, 135,
+ 132, 141, 129, 0, 0, 112, 0, 105, 113, 182,
+ 0, 0, 0, 0, 0, 0, 85, 0, 91, 212,
+ 0, 0, 200, 126, 212, 0, 218, 0, 58, 0,
+ 0, 60, 62, 0, 0, 219, 56, 61, 0, 0,
+ 30, 0, 0, 0, 199, 109, 0, 157, 0, 159,
+ 0, 152, 207, 86, 0, 0, 0, 117, 123, 0,
+ 0, 0, 121, 0, 214, 183, 0, 115, 0, 178,
+ 0, 84, 89, 88, 76, 16, 0, 75, 107, 111,
+ 154, 54, 54, 0, 0, 0, 0, 57, 0, 0,
+ 0, 103, 158, 160, 127, 0, 120, 165, 0, 116,
+ 122, 0, 118, 179, 114, 63, 94, 0, 0, 15,
+ 37, 37, 0, 44, 0, 0, 0, 42, 125, 119,
+ 104, 92, 44, 44, 16, 0, 0, 40, 41, 0,
+ 50, 54, 44, 53, 46, 47, 63, 38, 0, 44,
+ 0, 49, 14, 0, 48, 0, 0, 0, 37, 51,
+ 39
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 4, 7, 8, 5, 125, 118, 339, 6, 407,
- 421, 10, 18, 32, 333, 424, 93, 94, 186, 20,
- 21, 404, 334, 324, 270, 327, 336, 330, 22, 33,
- 24, 25, 112, 26, 27, 35, 137, 34, 114, 227,
- 313, 265, 371, 28, 29, 372, 30, 116, 328, 96,
- 97, 321, 303, 98, 99, 100, 101, 102, 103, 104,
- 172, 159, 254, 141, 240, 331, 105, 106, 107, 108,
- 109, 110, 127
+ -1, 5, 8, 9, 10, 6, 129, 38, 342, 7,
+ 410, 424, 12, 22, 36, 336, 427, 97, 98, 190,
+ 24, 25, 407, 337, 327, 274, 330, 339, 333, 26,
+ 37, 28, 29, 117, 30, 31, 40, 141, 39, 119,
+ 232, 317, 269, 374, 32, 33, 375, 34, 121, 331,
+ 100, 101, 324, 307, 102, 103, 104, 105, 106, 107,
+ 108, 176, 163, 258, 145, 244, 334, 109, 110, 111,
+ 112, 113, 114, 131
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -396
+#define YYPACT_NINF -397
static const yytype_int16 yypact[] =
{
- 333, -396, -396, -396, 10, -396, -396, 311, -396, -396,
- 54, -396, -396, -396, 6, -396, -396, -396, -396, -396,
- -396, -396, 410, -396, -396, -396, -396, -396, -396, -396,
- -396, 121, -396, -396, 12, 16, 38, -396, 16, -396,
- -396, 909, 1785, 1785, 169, 169, 169, 169, 169, -396,
- -396, 169, 169, -396, -55, 70, -396, 1785, -396, -396,
- -396, -396, 13, 13, 13, 13, 48, 13, 13, 87,
- 1785, -396, 7, 15, 19, 307, 672, 169, 760, 995,
- 89, 1785, 69, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
- 1081, 78, 141, -396, -396, 804, 81, -396, 3, -396,
- -396, -396, -396, 1947, -396, 13, 61, 139, -396, -396,
- 136, -396, 87, -396, 142, 22, 175, 142, -396, -396,
- 91, 137, 137, -396, -396, -396, -396, -396, -396, -396,
- -396, -396, 1785, 85, 1785, 1785, 856, 87, 142, -396,
- -396, -396, -396, -396, -396, -396, -396, 13, -396, -396,
- -396, 1947, 109, 1169, 672, -396, 856, 1845, 81, -396,
- 822, 1785, -396, 13, -396, 856, 53, 200, -5, 1785,
- 856, 1257, 151, -396, -396, -396, 856, 81, 137, 137,
- 137, 288, 288, 230, 396, 87, -396, -396, 1785, 1785,
- 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
- 1345, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
- 1785, 1785, 1785, 1785, 1785, 1785, -396, -396, 23, 1433,
- 1785, 1785, 1785, 1785, 1785, -396, -396, 161, -396, -396,
- 224, 161, 216, -396, -396, 1785, -41, 114, -396, 161,
- 150, 1785, 1785, 1785, 1785, 240, 496, -396, -396, 1785,
- -396, -396, 457, 326, 178, 1785, 81, 1521, 1609, -396,
- 269, -396, -396, 543, 258, -396, 1785, 278, -396, 326,
- -396, 326, 326, 326, 326, 326, 221, 221, -396, 1947,
- 140, 120, -396, 553, 2025, 1154, 980, 528, 395, 1947,
- 1908, 570, 570, 659, 895, 1066, 484, 137, 137, 1785,
- 1785, -396, 1697, 13, -396, -396, 633, 199, 125, 204,
- 135, 214, 266, 27, -396, 1785, 27, -396, 201, -396,
- -396, 1785, 87, -396, 206, 326, 207, 215, 326, -396,
- 222, 13, -396, -396, -396, 250, 277, 495, 1785, 1785,
- 256, -396, -396, 721, -396, 793, -396, 812, -396, -396,
- -396, 170, 1785, 346, -396, -396, 1785, 371, 220, -396,
- 815, 1785, -396, 348, -396, 357, -396, 365, -396, -396,
- -396, -396, -396, 297, -396, -396, -396, -396, -396, -396,
- 368, 368, 1785, 368, 1785, 286, 289, 368, -396, -396,
- -396, -396, 228, -396, 1986, 379, -396, -396, 293, -396,
- -396, -396, 317, -396, 368, 368, -396, 56, 56, 295,
- 78, 383, 368, 368, -396, -396, -396, -396, -396, 78,
- 78, -396, 368, 13, -396, -396, 368, -396, -396, 78,
- -396, -396, -396, 770, -396, 1785, 78, 582, -396, -396,
- 309, -396, 310, 368, 368, 56, -396, -396
+ 582, -397, -397, -397, -397, 16, -397, -397, 15, 508,
+ -397, -397, 28, -397, -397, -397, -397, -397, 31, -397,
+ -397, -397, -397, -397, -397, -397, 409, -397, -397, -397,
+ -397, -397, -397, -397, -397, 53, -397, -397, -397, 37,
+ 59, 63, -397, 59, -397, 911, 1787, 1787, 105, 105,
+ 105, 105, 105, -397, -397, 105, 105, -397, 0, 118,
+ -397, 1787, -397, -397, -397, -397, 14, 14, 14, 14,
+ 58, 14, 14, 15, 1787, -397, 18, 34, 41, 675,
+ 587, 105, 763, 997, 114, 1787, 11, 1787, 1787, 1787,
+ 1787, 1787, 1787, 1787, 1083, 119, 189, -397, -397, 1257,
+ 134, -397, 84, -397, -397, -397, -397, 1949, -397, 14,
+ 65, 83, -397, -397, 203, 109, -397, 15, -397, 201,
+ 62, 197, 201, -397, 169, 443, 443, -397, -397, -397,
+ -397, -397, -397, -397, -397, -397, 1787, 136, 1787, 1787,
+ 858, 15, 201, -397, -397, -397, -397, -397, -397, -397,
+ -397, 14, -397, -397, -397, 1949, 135, 1171, 587, -397,
+ 858, 1847, 134, -397, 824, 1787, -397, 14, -397, 858,
+ 180, 226, 121, 1787, 858, 1259, 170, -397, -397, -397,
+ 858, 134, 443, 443, 443, 155, 155, 228, 370, 15,
+ -397, -397, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
+ 1787, 1787, 1787, 1787, 1347, 1787, 1787, 1787, 1787, 1787,
+ 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
+ -397, -397, 42, 1435, 1787, 1787, 1787, 1787, 1787, -397,
+ -397, -397, 184, -397, -397, 235, 184, -397, -397, 1787,
+ -20, 238, -397, 184, 167, 1787, 1787, 1787, 1787, 255,
+ 272, -397, -397, 1787, -397, -397, 458, 76, 174, 1787,
+ 134, 1523, 1611, -397, 263, -397, -397, 484, 250, -397,
+ 1787, 265, -397, 76, -397, 76, 76, 76, 76, 76,
+ 207, 207, -397, 1949, 194, 246, -397, 496, 2027, 1156,
+ 982, 487, 394, 1949, 1910, 663, 663, 795, 897, 1068,
+ 137, 443, 443, 1787, 1787, -397, 1699, 14, -397, -397,
+ 548, 233, 318, 278, 321, 284, 253, 108, -397, 1787,
+ 108, 187, -397, -397, 1787, 15, -397, 212, 76, 217,
+ 218, 76, -397, 220, 14, -397, -397, -397, 249, 303,
+ 586, 1787, 1787, 252, -397, -397, 574, -397, 636, -397,
+ 646, -397, -397, -397, 330, 1787, 322, -397, -397, 1787,
+ 324, 333, -397, 724, 1787, -397, 343, -397, 344, -397,
+ 345, -397, -397, -397, -397, -397, 323, -397, -397, -397,
+ -397, -397, -397, 353, 353, 1787, 353, 1787, 268, 275,
+ 353, -397, -397, -397, -397, 336, -397, 1988, 359, -397,
+ -397, 276, -397, -397, -397, 120, -397, 353, 353, -397,
+ 116, 116, 277, 119, 379, 353, 353, -397, -397, -397,
+ -397, -397, 119, 119, -397, 353, 14, -397, -397, 353,
+ -397, -397, 119, -397, -397, -397, 128, -397, 1787, 119,
+ 497, -397, -397, 304, -397, 314, 353, 353, 116, -397,
+ -397
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -396, -396, -396, -396, -396, -20, 162, -396, -396, 1549,
- -396, -7, -396, 398, 384, -395, -396, -396, -35, -396,
- -396, -338, -396, 26, -10, -223, -25, -396, -396, 412,
- -396, -396, -396, -396, -396, 110, 356, -396, 406, -47,
- -168, -396, 117, -396, -396, -396, -396, -396, -22, -33,
- -396, -396, -396, -396, -396, -396, -396, -396, 52, -396,
- -396, -107, -215, -60, -396, -396, -396, -30, 363, 369,
- -396, -396, 28
+ -397, -397, -397, -397, -397, -397, -6, -48, -397, -397,
+ 1549, -397, -9, -397, 389, 385, -396, -397, -397, 68,
+ -397, -397, -336, -397, 25, -58, -220, -27, -397, -397,
+ 408, -397, -397, -397, -397, -397, 162, 354, -397, 390,
+ -95, -166, -397, 124, -397, -397, -397, -397, -397, -26,
+ -57, -397, -397, -397, -397, -397, -397, -397, -397, 168,
+ -397, -397, -115, -230, -64, -397, -397, -397, -38, 364,
+ 365, -397, -397, -15
};
/* 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 -200
+#define YYTABLE_NINF -202
static const yytype_int16 yytable[] =
{
- 95, 31, 91, 142, 143, 144, 146, 148, 149, 198,
- 9, 199, 260, 425, 126, 126, 126, 126, 126, 120,
- 318, 126, 126, 335, 36, 234, 340, 139, 228, 299,
- 111, 300, 197, 40, 113, 44, 147, 139, 200, 229,
- 134, 405, 301, 158, 369, 219, 160, 126, 166, 150,
- 447, 177, 173, 319, -7, 155, 115, 168, 164, 220,
- 44, 221, 261, 316, 194, 195, 196, 220, 184, 221,
- 231, 322, 139, 128, 129, 130, 131, 139, 135, 132,
- 133, 44, 45, 46, 11, 12, 13, 247, 14, 15,
- 437, 239, 225, 40, 121, 122, 422, 423, 140, 158,
- 233, 236, 152, 257, 161, 162, 258, 169, 140, 136,
- 153, 232, 145, 237, 154, 385, 386, 238, 302, 16,
- 185, -6, 151, 320, 160, 37, 38, 156, 256, 354,
- 165, 252, 253, 170, 364, 176, 158, 178, 179, 180,
- 181, 182, 224, 140, 366, 222, 398, 223, 140, 263,
- 17, 11, 12, 13, 197, 14, 15, 353, 187, 409,
- 194, 195, 196, 226, 171, 268, 269, 271, 272, 273,
- 274, 275, 276, 277, 278, 40, 280, 281, 283, 391,
- 235, 44, 255, 194, 195, 196, 16, 123, 304, 194,
- 195, 196, 124, 230, 194, 195, 196, 306, 307, 308,
- 309, 310, 311, 250, 194, 195, 196, 259, 373, 194,
- 195, 196, 440, 253, 376, 332, 363, 17, 264, 325,
- 271, 365, 271, 317, 337, 215, 216, 217, 312, 396,
- 218, 367, 326, 343, 329, 345, 347, 415, 266, 194,
- 195, 196, 315, 361, 351, 323, 11, 12, 13, 279,
- 14, 15, 44, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 194, 195,
- 196, 382, 342, 194, 195, 196, 348, 357, 358, 350,
- 360, 16, 158, 194, 195, 196, 352, 368, 158, 194,
- 195, 196, 196, 370, 384, 375, 370, 194, 195, 196,
- 378, 379, 377, 241, 242, 243, 244, 245, 246, 380,
- 248, 249, 17, 40, 403, 41, 381, 42, 43, 44,
- 45, 46, 47, 48, 418, 50, 51, 52, 53, 54,
- 392, 55, 56, 57, 58, 59, 1, 2, 3, 253,
- 61, 11, 12, 13, 383, 14, 15, 11, 12, 13,
- 387, 14, 15, 393, 70, 399, 71, 72, 73, 74,
- 75, 76, 325, 435, 400, 402, 77, 78, 79, 80,
- 81, 82, 401, 83, 406, 427, 16, -200, -200, 84,
- 412, 218, 16, 413, 431, 432, 416, 417, 395, 426,
- 314, 85, 86, 87, 438, 194, 195, 196, 88, 89,
- 428, 441, 90, 443, 444, 19, 92, 17, 394, 338,
- 411, 39, 442, 17, 433, 95, 40, 138, 41, 23,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
- 52, 53, 54, 374, 55, 56, 57, 58, 59, 60,
- 194, 195, 196, 61, 117, 174, 62, 63, 64, 65,
- 0, 175, 204, 66, 67, 68, 69, 70, 0, 71,
- 72, 73, 74, 75, 76, 194, 195, 196, 0, 77,
- 78, 79, 80, 81, 82, 0, 83, 0, 214, 0,
- 0, 0, 84, 215, 216, 217, 0, 0, 218, 0,
- 267, 0, 0, 0, 85, 86, 87, 39, 0, 0,
- 0, 88, 89, 0, 41, 90, 42, 43, 44, 45,
- 46, 47, 48, -53, 50, 51, 52, 53, 54, 0,
- 55, 56, 57, 58, 59, 0, 194, 195, 196, 61,
- 0, 188, 189, 190, 191, 0, 0, 0, 192, 0,
- 193, 204, 205, 70, 0, 71, 72, 73, 74, 75,
- 76, 341, 0, 0, 0, 77, 78, 79, 80, 81,
- 82, 0, 83, 0, 194, 195, 196, 214, 84, 0,
- 0, 0, 215, 216, 217, 0, 0, 218, 0, 0,
- 85, 86, 87, 39, 0, 0, 0, 88, 89, -58,
- 41, 90, 42, 43, 44, 45, 46, 47, 48, 0,
- 50, 51, 52, 53, 54, 0, 55, 56, 57, 58,
- 59, 214, 194, 195, 196, 61, 215, 216, 217, 0,
- 0, 218, 194, 195, 196, 202, 203, 204, 205, 70,
- 0, 71, 72, 73, 74, 75, 76, 349, 0, 0,
- 0, 77, 78, 79, 80, 81, 82, 355, 83, 210,
- 211, 212, 213, 214, 84, 0, 0, 0, 215, 216,
- 217, 0, 0, 218, 0, 0, 85, 86, 87, 0,
- 0, 0, 0, 88, 89, 0, -53, 90, 40, 0,
- 41, 0, 42, 43, 44, 45, 46, 47, 48, 0,
- 157, 51, 52, 53, 54, 124, 55, 56, 57, 58,
- 59, 0, 194, 195, 196, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 202, 203, 204, 205, 0, 70,
- 0, 71, 72, 73, 74, 75, 76, 362, 0, 0,
- 0, 77, 78, 79, 80, 81, 82, 0, 83, 211,
- 212, 213, 214, 0, 84, 0, 0, 215, 216, 217,
- 0, 0, 218, 0, 0, 0, 85, 86, 87, 0,
- 0, 0, 0, 88, 89, 0, 40, 90, 41, 0,
- 42, 43, 44, 45, 46, 47, 48, 439, 163, 51,
- 52, 53, 54, 0, 55, 56, 57, 58, 59, 0,
- 194, 195, 196, 61, 0, 0, 0, 0, 0, 0,
- 11, 12, 13, 0, 14, 15, 0, 70, 0, 71,
- 72, 73, 74, 75, 76, 388, 0, 0, 0, 77,
- 78, 79, 80, 81, 82, 0, 83, 0, 220, 0,
- 221, -170, 84, 0, 0, 16, 0, 0, 0, -170,
- 188, 189, 190, 191, 85, 86, 87, 192, 0, 193,
- 0, 88, 89, 0, 0, 90, 0, 0, -170, -170,
- -170, -170, 194, 195, 196, -170, 17, -170, 0, 0,
- -170, 0, 0, 194, 195, 196, 0, -170, -170, -170,
- -170, 194, 195, 196, 194, 195, 196, 389, 0, 0,
- 0, -170, -170, -170, 0, -170, -170, -170, -170, -170,
- -170, -170, -170, -170, -170, -170, 390, 0, 0, 397,
- -170, -170, -170, 204, 205, -170, -170, 41, 119, 42,
- 43, 44, 45, 46, 47, 48, 0, 50, 51, 52,
- 53, 54, 0, 55, 56, 57, 58, 59, 213, 214,
- 0, 0, 61, 0, 215, 216, 217, 0, 0, 218,
- 202, 203, 204, 205, 0, 0, 70, 0, 71, 72,
- 73, 74, 75, 76, 0, 0, 0, 0, 77, 78,
- 79, 80, 81, 82, 0, 83, 212, 213, 214, 0,
- 0, 84, 0, 215, 216, 217, 0, 0, 218, 0,
- 0, 0, 0, 85, 86, 87, 0, 0, 0, 0,
- 88, 89, 0, 41, 90, 42, 43, 44, 45, 46,
- 47, 48, 167, 50, 51, 52, 53, 54, 0, 55,
- 56, 57, 58, 59, 0, 0, 0, 0, 61, 0,
- 0, 0, 0, 0, 0, 202, -200, 204, 205, 0,
- 0, 0, 70, 0, 71, 72, 73, 74, 75, 76,
- 0, 0, 0, 0, 77, 78, 79, 80, 81, 82,
- 0, 83, 213, 214, 0, 0, 0, 84, 215, 216,
- 217, 0, 0, 218, 0, 0, 0, 0, 0, 85,
- 86, 87, 0, 0, 0, 0, 88, 89, 0, 41,
- 90, 42, 43, 44, 45, 46, 47, 48, 0, 50,
- 51, 52, 53, 54, 0, 55, 56, 57, 58, 59,
- 0, 0, 0, 0, 61, 0, 0, 0, 0, 0,
- 0, 202, 203, 204, 205, 0, 0, 0, 70, 0,
- 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
- 77, 78, 79, 80, 81, 82, 0, 83, 213, 214,
- 0, 0, 0, 84, 215, 216, 217, 0, 0, 218,
- 0, 0, 0, 0, 0, 85, 86, 87, 0, 0,
- 0, 0, 88, 89, 0, 183, 90, 41, 0, 42,
- 43, 44, 45, 46, 47, 48, 0, 50, 51, 52,
- 53, 54, 0, 55, 56, 57, 58, 59, 0, 0,
- 0, 0, 61, 0, 0, 0, 0, 0, 0, -200,
- 0, 204, 205, 0, 0, 0, 70, 0, 71, 72,
- 73, 74, 75, 76, 0, 0, 0, 0, 77, 78,
- 79, 80, 81, 82, 0, 83, 213, 214, 0, 0,
- 0, 84, 215, 216, 217, 0, 0, 218, 0, 0,
- 0, 0, 0, 85, 86, 87, 0, 0, 0, 0,
- 88, 89, 0, 251, 90, 41, 0, 42, 43, 44,
- 45, 46, 47, 48, 0, 50, 51, 52, 53, 54,
- 0, 55, 56, 57, 58, 59, 0, 0, 0, 0,
- 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 70, 0, 71, 72, 73, 74,
- 75, 76, 0, 0, 0, 0, 77, 78, 79, 80,
- 81, 82, 0, 83, 0, 0, 0, 0, 0, 84,
+ 99, 35, 14, 146, 147, 148, 150, 152, 153, 321,
+ 130, 130, 130, 130, 130, 428, 11, 130, 130, 124,
+ 95, 238, 13, 162, 48, 49, 50, 236, -9, 115,
+ 338, 181, 151, 343, 132, 133, 134, 135, 204, 143,
+ 136, 137, 164, 130, 170, 223, 408, 243, 177, 303,
+ 41, 304, 450, -8, 201, 48, 116, 172, 265, 15,
+ 16, 17, 305, 18, 19, 165, 166, 154, 188, 233,
+ 320, 48, 224, 159, 225, 322, 168, 325, 118, 162,
+ 234, 240, 120, 143, 15, 16, 17, 251, 18, 19,
+ 226, 202, 227, 203, 20, 440, 138, 245, 246, 247,
+ 248, 249, 250, 261, 252, 253, 262, 175, 260, 143,
+ 144, 230, 13, 241, 156, 13, 162, 229, 48, 20,
+ 164, 388, 389, 149, 127, 21, 372, 139, 421, 128,
+ 157, 256, 257, 173, 401, 242, 442, 158, 306, 264,
+ 15, 16, 17, 259, 18, 19, 198, 199, 200, 267,
+ 21, 15, 16, 17, 144, 18, 19, 425, 426, 15,
+ 16, 17, 189, 18, 19, 412, 273, 275, 276, 277,
+ 278, 279, 280, 281, 282, 20, 284, 285, 287, 237,
+ 144, 42, 43, 272, 308, 318, 20, 224, 329, 225,
+ 332, 198, 199, 200, 20, 208, 209, 310, 311, 312,
+ 313, 314, 315, 341, 376, 143, 21, 191, 201, 379,
+ 228, 335, 356, 257, 125, 126, 235, 21, 443, 328,
+ 275, 218, 275, 231, 340, 21, 219, 220, 221, 140,
+ 254, 222, 239, 346, 263, 348, 350, 270, 268, 198,
+ 199, 200, 155, 364, 354, -202, -202, 160, 323, 222,
+ 169, 366, 316, 174, 319, 180, 357, 182, 183, 184,
+ 185, 186, 162, 326, 198, 199, 200, 162, 48, 345,
+ 385, 351, 353, 44, 355, 371, 144, 360, 361, 200,
+ 363, 45, 378, 46, 47, 48, 49, 50, 51, 52,
+ -55, 54, 55, 56, 57, 58, 368, 59, 60, 61,
+ 62, 63, 370, 198, 199, 200, 65, 381, 198, 199,
+ 200, 373, 382, 383, 373, 384, 198, 199, 200, 380,
+ 74, 387, 75, 76, 77, 78, 79, 80, 367, 395,
+ 396, 369, 81, 82, 83, 84, 85, 86, 257, 87,
+ 394, 406, 398, 399, 386, 88, 418, 390, 198, 199,
+ 200, 402, 403, 404, 198, 199, 200, 89, 90, 91,
+ 409, 328, 438, 415, 92, 93, 405, 419, 94, 283,
+ 416, 420, 429, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 198, 199,
+ 200, 198, 199, 200, 198, 199, 200, 431, 23, 446,
+ 198, 199, 200, 198, 199, 200, 198, 199, 200, 447,
+ 44, 96, 414, 445, 99, 436, 13, 27, 45, 142,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 122, 59, 60, 61, 62, 63, 64,
+ 198, 199, 200, 65, 377, 0, 66, 67, 68, 69,
+ 178, 179, 208, 70, 71, 72, 73, 74, 0, 75,
+ 76, 77, 78, 79, 80, 271, 0, 0, 0, 81,
+ 82, 83, 84, 85, 86, 0, 87, 0, 218, 0,
+ 0, 430, 88, 219, 220, 221, 0, 0, 222, 0,
+ 434, 435, 0, 0, 89, 90, 91, 0, 44, 0,
+ 441, 92, 93, 0, 0, 94, 45, 444, 46, 47,
+ 48, 49, 50, 51, 52, 0, 54, 55, 56, 57,
+ 58, 0, 59, 60, 61, 62, 63, 397, 198, 199,
+ 200, 65, 219, 220, 221, 0, 0, 222, 0, 15,
+ 16, 17, 0, 18, 19, 74, 0, 75, 76, 77,
+ 78, 79, 80, 344, 198, 199, 200, 81, 82, 83,
+ 84, 85, 86, 0, 87, 0, 198, 199, 200, 0,
+ 88, 218, 0, 0, 20, 0, 219, 220, 221, 352,
+ 0, 222, 89, 90, 91, 1, 2, 3, 4, 92,
+ 93, 358, -55, 94, 13, 0, 45, 0, 46, 47,
+ 48, 49, 50, 51, 52, 21, 161, 55, 56, 57,
+ 58, 128, 59, 60, 61, 62, 63, 0, 198, 199,
+ 200, 65, 0, 192, 193, 194, 195, 0, 0, 0,
+ 196, 0, 197, 0, 0, 74, 0, 75, 76, 77,
+ 78, 79, 80, 365, 198, 199, 200, 81, 82, 83,
+ 84, 85, 86, 0, 87, 0, 198, 199, 200, 0,
+ 88, 0, 0, 0, 0, 0, 0, 0, 0, 391,
+ 0, 0, 89, 90, 91, 0, 0, 0, 0, 92,
+ 93, -60, 13, 94, 45, 0, 46, 47, 48, 49,
+ 50, 51, 52, 0, 54, 55, 56, 57, 58, 0,
+ 59, 60, 61, 62, 63, 0, 198, 199, 200, 65,
+ 0, 0, 0, 0, 0, 0, 198, 199, 200, 206,
+ 207, 208, 209, 74, 0, 75, 76, 77, 78, 79,
+ 80, 392, 0, 0, 0, 81, 82, 83, 84, 85,
+ 86, 393, 87, 214, 215, 216, 217, 218, 88, 0,
+ 0, 0, 219, 220, 221, 0, 0, 222, 0, 0,
+ 89, 90, 91, 0, 0, 0, 0, 92, 93, 0,
+ 13, 94, 45, 0, 46, 47, 48, 49, 50, 51,
+ 52, 0, 167, 55, 56, 57, 58, 0, 59, 60,
+ 61, 62, 63, 0, 198, 199, 200, 65, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 85, 86, 87, 0, 0, 0, 0, 88, 89,
- 0, 262, 90, 41, 0, 42, 43, 44, 45, 46,
- 47, 48, 0, 50, 51, 52, 53, 54, 0, 55,
- 56, 57, 58, 59, 0, 0, 0, 0, 61, 0,
+ 0, 74, 0, 75, 76, 77, 78, 79, 80, 400,
+ 0, 0, 0, 81, 82, 83, 84, 85, 86, 0,
+ 87, 224, 0, 225, -172, 0, 88, 0, 0, 0,
+ 0, 0, -172, 0, 0, 0, 0, 0, 89, 90,
+ 91, 206, 207, 208, 209, 92, 93, 0, 0, 94,
+ 0, -172, -172, -172, -172, 0, 0, 0, -172, 0,
+ -172, 0, 0, -172, 0, 0, 215, 216, 217, 218,
+ -172, -172, -172, -172, 219, 220, 221, 0, 0, 222,
+ 0, 0, 0, 0, -172, -172, -172, 0, -172, -172,
+ -172, -172, -172, -172, -172, -172, -172, -172, -172, 0,
+ 0, 0, 0, -172, -172, -172, 208, 209, -172, -172,
+ 45, 123, 46, 47, 48, 49, 50, 51, 52, 0,
+ 54, 55, 56, 57, 58, 0, 59, 60, 61, 62,
+ 63, 217, 218, 0, 0, 65, 0, 219, 220, 221,
+ 0, 0, 222, 206, 207, 208, 209, 0, 0, 74,
+ 0, 75, 76, 77, 78, 79, 80, 0, 0, 0,
+ 0, 81, 82, 83, 84, 85, 86, 0, 87, 216,
+ 217, 218, 0, 0, 88, 0, 219, 220, 221, 0,
+ 0, 222, 0, 0, 0, 0, 89, 90, 91, 0,
+ 0, 0, 0, 92, 93, 0, 45, 94, 46, 47,
+ 48, 49, 50, 51, 52, 171, 54, 55, 56, 57,
+ 58, 0, 59, 60, 61, 62, 63, 0, 0, 0,
+ 0, 65, 0, 0, 0, 0, 0, 0, 206, -202,
+ 208, 209, 0, 0, 0, 74, 0, 75, 76, 77,
+ 78, 79, 80, 0, 0, 0, 0, 81, 82, 83,
+ 84, 85, 86, 0, 87, 217, 218, 0, 0, 0,
+ 88, 219, 220, 221, 0, 0, 222, 0, 0, 0,
+ 0, 0, 89, 90, 91, 0, 0, 0, 0, 92,
+ 93, 0, 45, 94, 46, 47, 48, 49, 50, 51,
+ 52, 0, 54, 55, 56, 57, 58, 0, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 65, 0, 0,
+ 0, 0, 0, 0, 206, 207, 208, 209, 0, 0,
+ 0, 74, 0, 75, 76, 77, 78, 79, 80, 0,
+ 0, 0, 0, 81, 82, 83, 84, 85, 86, 0,
+ 87, 217, 218, 0, 0, 0, 88, 219, 220, 221,
+ 0, 0, 222, 0, 0, 0, 0, 0, 89, 90,
+ 91, 0, 0, 0, 0, 92, 93, 0, 187, 94,
+ 45, 0, 46, 47, 48, 49, 50, 51, 52, 0,
+ 54, 55, 56, 57, 58, 0, 59, 60, 61, 62,
+ 63, 0, 0, 0, 0, 65, 0, 0, 0, 0,
+ 0, 0, -202, 0, 208, 209, 0, 0, 0, 74,
+ 0, 75, 76, 77, 78, 79, 80, 0, 0, 0,
+ 0, 81, 82, 83, 84, 85, 86, 0, 87, 217,
+ 218, 0, 0, 0, 88, 219, 220, 221, 0, 0,
+ 222, 0, 0, 0, 0, 0, 89, 90, 91, 0,
+ 0, 0, 0, 92, 93, 0, 255, 94, 45, 0,
+ 46, 47, 48, 49, 50, 51, 52, 0, 54, 55,
+ 56, 57, 58, 0, 59, 60, 61, 62, 63, 0,
+ 0, 0, 0, 65, 192, 193, 194, 195, 0, 0,
+ 0, 196, 0, 197, 0, 0, 0, 74, 0, 75,
+ 76, 77, 78, 79, 80, 0, 0, 0, 0, 81,
+ 82, 83, 84, 85, 86, 0, 87, 198, 199, 200,
+ 0, 0, 88, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 89, 90, 91, 0, 0, 0,
+ 0, 92, 93, 0, 266, 94, 45, 0, 46, 47,
+ 48, 49, 50, 51, 52, 0, 54, 55, 56, 57,
+ 58, 0, 59, 60, 61, 62, 63, 0, 0, 0,
+ 0, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 74, 0, 75, 76, 77,
+ 78, 79, 80, 0, 0, 0, 0, 81, 82, 83,
+ 84, 85, 86, 0, 87, 0, 0, 0, 0, 0,
+ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 89, 90, 91, 0, 0, 0, 0, 92,
+ 93, 0, 286, 94, 45, 0, 46, 47, 48, 49,
+ 50, 51, 52, 0, 54, 55, 56, 57, 58, 0,
+ 59, 60, 61, 62, 63, 0, 0, 0, 0, 65,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 70, 0, 71, 72, 73, 74, 75, 76,
- 0, 0, 0, 0, 77, 78, 79, 80, 81, 82,
- 0, 83, 0, 0, 0, 0, 0, 84, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,
- 86, 87, 0, 0, 0, 0, 88, 89, 0, 282,
- 90, 41, 0, 42, 43, 44, 45, 46, 47, 48,
- 0, 50, 51, 52, 53, 54, 0, 55, 56, 57,
- 58, 59, 0, 0, 0, 0, 61, 0, 0, 0,
+ 0, 0, 0, 74, 0, 75, 76, 77, 78, 79,
+ 80, 0, 0, 0, 0, 81, 82, 83, 84, 85,
+ 86, 0, 87, 0, 0, 0, 0, 0, 88, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 70, 0, 71, 72, 73, 74, 75, 76, 0, 0,
- 0, 0, 77, 78, 79, 80, 81, 82, 0, 83,
- 0, 0, 0, 0, 0, 84, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 85, 86, 87,
- 0, 0, 0, 0, 88, 89, 0, 305, 90, 41,
- 0, 42, 43, 44, 45, 46, 47, 48, 0, 50,
- 51, 52, 53, 54, 0, 55, 56, 57, 58, 59,
- 0, 0, 0, 0, 61, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 70, 0,
- 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
- 77, 78, 79, 80, 81, 82, 0, 83, 0, 0,
- 0, 0, 0, 84, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 85, 86, 87, 0, 0,
- 0, 0, 88, 89, 0, 344, 90, 41, 0, 42,
- 43, 44, 45, 46, 47, 48, 0, 50, 51, 52,
- 53, 54, 0, 55, 56, 57, 58, 59, 0, 0,
- 0, 0, 61, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 70, 0, 71, 72,
- 73, 74, 75, 76, 0, 0, 0, 0, 77, 78,
- 79, 80, 81, 82, 0, 83, 0, 0, 0, 0,
- 0, 84, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 85, 86, 87, 0, 0, 0, 0,
- 88, 89, 0, 346, 90, 41, 0, 42, 43, 44,
- 45, 46, 47, 48, 0, 50, 51, 52, 53, 54,
- 0, 55, 56, 57, 58, 59, 0, 0, 0, 0,
- 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 70, 0, 71, 72, 73, 74,
- 75, 76, 0, 0, 0, 0, 77, 78, 79, 80,
- 81, 82, 0, 83, 0, 0, 0, 0, 0, 84,
+ 89, 90, 91, 0, 0, 0, 0, 92, 93, 0,
+ 309, 94, 45, 0, 46, 47, 48, 49, 50, 51,
+ 52, 0, 54, 55, 56, 57, 58, 0, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 65, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 85, 86, 87, 0, 0, 0, 0, 88, 89,
- 0, 359, 90, 41, 0, 42, 43, 44, 45, 46,
- 47, 48, 0, 50, 51, 52, 53, 54, 0, 55,
- 56, 57, 58, 59, 0, 0, 0, 0, 61, 0,
+ 0, 74, 0, 75, 76, 77, 78, 79, 80, 0,
+ 0, 0, 0, 81, 82, 83, 84, 85, 86, 0,
+ 87, 0, 0, 0, 0, 0, 88, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 89, 90,
+ 91, 0, 0, 0, 0, 92, 93, 0, 347, 94,
+ 45, 0, 46, 47, 48, 49, 50, 51, 52, 0,
+ 54, 55, 56, 57, 58, 0, 59, 60, 61, 62,
+ 63, 0, 0, 0, 0, 65, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
+ 0, 75, 76, 77, 78, 79, 80, 0, 0, 0,
+ 0, 81, 82, 83, 84, 85, 86, 0, 87, 0,
+ 0, 0, 0, 0, 88, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 89, 90, 91, 0,
+ 0, 0, 0, 92, 93, 0, 349, 94, 45, 0,
+ 46, 47, 48, 49, 50, 51, 52, 0, 54, 55,
+ 56, 57, 58, 0, 59, 60, 61, 62, 63, 0,
+ 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 74, 0, 75,
+ 76, 77, 78, 79, 80, 0, 0, 0, 0, 81,
+ 82, 83, 84, 85, 86, 0, 87, 0, 0, 0,
+ 0, 0, 88, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 89, 90, 91, 0, 0, 0,
+ 0, 92, 93, 0, 362, 94, 45, 0, 46, 47,
+ 48, 49, 50, 51, 52, 0, 54, 55, 56, 57,
+ 58, 0, 59, 60, 61, 62, 63, 0, 0, 0,
+ 0, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 74, 0, 75, 76, 77,
+ 78, 79, 80, 0, 0, 0, 0, 81, 82, 83,
+ 84, 85, 86, 0, 87, 0, 0, -201, 0, 0,
+ 88, 0, 0, 0, 0, -201, 0, 0, 0, 0,
+ 0, 0, 89, 90, 91, 0, 0, 0, 0, 92,
+ 93, 0, 0, 94, -201, -201, -201, -201, 0, 0,
+ 0, -201, 0, -201, 0, 0, -201, 0, 0, 0,
+ 0, 0, 0, -201, -201, -201, -201, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -201, -201, -201,
+ 0, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+ -201, -201, 0, 411, 0, 413, -201, -201, -201, 417,
+ 0, -201, -201, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 422, 423, 0, 205,
+ 0, 0, 0, 0, 432, 433, 206, 207, 208, 209,
+ 0, 0, 0, 0, 437, 0, 0, 0, 439, 0,
+ 0, 0, 0, 0, 0, 210, 211, 359, 212, 213,
+ 214, 215, 216, 217, 218, 448, 449, 0, 205, 219,
+ 220, 221, 0, 0, 222, 206, 207, 208, 209, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 70, 0, 71, 72, 73, 74, 75, 76,
- 0, 0, 0, 0, 77, 78, 79, 80, 81, 82,
- 0, 83, 0, 0, -199, 0, 0, 84, 0, 0,
- 0, 0, -199, 0, 0, 0, 0, 0, 0, 85,
- 86, 87, 0, 0, 0, 0, 88, 89, 0, 0,
- 90, -199, -199, -199, -199, 0, 0, 0, -199, 0,
- -199, 0, 0, -199, 0, 0, 0, 0, 0, 0,
- -199, -199, -199, -199, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -199, -199, -199, 0, -199, -199,
- -199, -199, -199, -199, -199, -199, -199, -199, -199, 0,
- 408, 0, 410, -199, -199, -199, 414, 0, -199, -199,
+ 0, 0, 0, 0, 210, 211, 0, 212, 213, 214,
+ 215, 216, 217, 218, 0, 0, 0, 205, 219, 220,
+ 221, 0, 0, 222, 206, 207, 208, 209, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 419, 420, 0, 201, 0, 0, 0,
- 0, 429, 430, 202, 203, 204, 205, 0, 0, 0,
- 0, 434, 0, 0, 0, 436, 0, 0, 0, 0,
- 0, 0, 206, 207, 356, 208, 209, 210, 211, 212,
- 213, 214, 445, 446, 0, 201, 215, 216, 217, 0,
- 0, 218, 202, 203, 204, 205, 0, 0, 0, 0,
+ 0, 0, 0, 0, 211, 0, 212, 213, 214, 215,
+ 216, 217, 218, 0, 0, 0, -202, 219, 220, 221,
+ 0, 0, 222, 206, 207, 208, 209, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 206, 207, 0, 208, 209, 210, 211, 212, 213,
- 214, 0, 0, 0, 201, 215, 216, 217, 0, 0,
- 218, 202, 203, 204, 205, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 207, 0, 208, 209, 210, 211, 212, 213, 214,
- 0, 0, 0, -200, 215, 216, 217, 0, 0, 218,
- 202, 203, 204, 205, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 208, 209, 210, 211, 212, 213, 214, 0,
- 0, 0, 0, 215, 216, 217, 0, 0, 218
+ 0, 0, 0, 0, 0, 212, 213, 214, 215, 216,
+ 217, 218, 0, 0, 0, 0, 219, 220, 221, 0,
+ 0, 222
};
static const yytype_int16 yycheck[] =
{
- 22, 8, 22, 63, 64, 65, 66, 67, 68, 6,
- 0, 8, 17, 408, 44, 45, 46, 47, 48, 41,
- 235, 51, 52, 246, 18, 132, 249, 24, 6, 6,
- 18, 8, 73, 6, 18, 12, 66, 24, 98, 17,
- 95, 379, 19, 76, 17, 105, 76, 77, 78, 69,
- 445, 84, 82, 94, 0, 75, 18, 79, 78, 6,
- 12, 8, 169, 231, 69, 70, 71, 6, 90, 8,
- 117, 239, 24, 45, 46, 47, 48, 24, 8, 51,
- 52, 12, 13, 14, 30, 31, 32, 147, 34, 35,
- 428, 138, 112, 6, 42, 43, 40, 41, 95, 132,
- 9, 134, 95, 163, 76, 77, 166, 18, 95, 57,
- 95, 118, 64, 135, 95, 338, 339, 137, 95, 65,
- 42, 0, 70, 9, 154, 15, 16, 75, 161, 9,
- 78, 153, 154, 81, 9, 83, 169, 85, 86, 87,
- 88, 89, 6, 95, 9, 6, 361, 8, 95, 171,
- 96, 30, 31, 32, 73, 34, 35, 17, 17, 382,
- 69, 70, 71, 21, 95, 185, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 6, 198, 199, 200, 9,
- 95, 12, 154, 69, 70, 71, 65, 18, 218, 69,
- 70, 71, 23, 18, 69, 70, 71, 219, 220, 221,
- 222, 223, 224, 94, 69, 70, 71, 7, 315, 69,
- 70, 71, 435, 235, 321, 245, 17, 96, 67, 241,
- 242, 17, 244, 7, 246, 88, 89, 90, 67, 9,
- 93, 17, 242, 255, 244, 257, 258, 9, 8, 69,
- 70, 71, 18, 303, 266, 95, 30, 31, 32, 197,
- 34, 35, 12, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 69, 70,
- 71, 331, 94, 69, 70, 71, 7, 299, 300, 21,
- 302, 65, 315, 69, 70, 71, 8, 21, 321, 69,
- 70, 71, 71, 313, 17, 94, 316, 69, 70, 71,
- 94, 94, 322, 141, 142, 143, 144, 145, 146, 94,
- 148, 149, 96, 6, 17, 8, 94, 10, 11, 12,
- 13, 14, 15, 16, 7, 18, 19, 20, 21, 22,
- 352, 24, 25, 26, 27, 28, 3, 4, 5, 361,
- 33, 30, 31, 32, 94, 34, 35, 30, 31, 32,
- 94, 34, 35, 7, 47, 7, 49, 50, 51, 52,
- 53, 54, 384, 423, 7, 372, 59, 60, 61, 62,
- 63, 64, 7, 66, 6, 410, 65, 89, 90, 72,
- 94, 93, 65, 94, 419, 420, 7, 94, 17, 94,
- 228, 84, 85, 86, 429, 69, 70, 71, 91, 92,
- 17, 436, 95, 94, 94, 7, 22, 96, 356, 247,
- 384, 1, 437, 96, 421, 437, 6, 61, 8, 7,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 316, 24, 25, 26, 27, 28, 29,
- 69, 70, 71, 33, 38, 82, 36, 37, 38, 39,
- -1, 82, 57, 43, 44, 45, 46, 47, -1, 49,
- 50, 51, 52, 53, 54, 69, 70, 71, -1, 59,
- 60, 61, 62, 63, 64, -1, 66, -1, 83, -1,
- -1, -1, 72, 88, 89, 90, -1, -1, 93, -1,
- 94, -1, -1, -1, 84, 85, 86, 1, -1, -1,
- -1, 91, 92, -1, 8, 95, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
- 24, 25, 26, 27, 28, -1, 69, 70, 71, 33,
- -1, 36, 37, 38, 39, -1, -1, -1, 43, -1,
- 45, 57, 58, 47, -1, 49, 50, 51, 52, 53,
- 54, 94, -1, -1, -1, 59, 60, 61, 62, 63,
- 64, -1, 66, -1, 69, 70, 71, 83, 72, -1,
- -1, -1, 88, 89, 90, -1, -1, 93, -1, -1,
- 84, 85, 86, 1, -1, -1, -1, 91, 92, 94,
- 8, 95, 10, 11, 12, 13, 14, 15, 16, -1,
- 18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
- 28, 83, 69, 70, 71, 33, 88, 89, 90, -1,
- -1, 93, 69, 70, 71, 55, 56, 57, 58, 47,
- -1, 49, 50, 51, 52, 53, 54, 94, -1, -1,
- -1, 59, 60, 61, 62, 63, 64, 94, 66, 79,
- 80, 81, 82, 83, 72, -1, -1, -1, 88, 89,
- 90, -1, -1, 93, -1, -1, 84, 85, 86, -1,
- -1, -1, -1, 91, 92, -1, 94, 95, 6, -1,
- 8, -1, 10, 11, 12, 13, 14, 15, 16, -1,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, -1, 69, 70, 71, 33, -1, -1, -1, -1,
- -1, -1, -1, -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, 7, 18, 19,
- 20, 21, 22, -1, 24, 25, 26, 27, 28, -1,
- 69, 70, 71, 33, -1, -1, -1, -1, -1, -1,
- 30, 31, 32, -1, 34, 35, -1, 47, -1, 49,
- 50, 51, 52, 53, 54, 94, -1, -1, -1, 59,
- 60, 61, 62, 63, 64, -1, 66, -1, 6, -1,
- 8, 9, 72, -1, -1, 65, -1, -1, -1, 17,
- 36, 37, 38, 39, 84, 85, 86, 43, -1, 45,
- -1, 91, 92, -1, -1, 95, -1, -1, 36, 37,
- 38, 39, 69, 70, 71, 43, 96, 45, -1, -1,
- 48, -1, -1, 69, 70, 71, -1, 55, 56, 57,
- 58, 69, 70, 71, 69, 70, 71, 94, -1, -1,
- -1, 69, 70, 71, -1, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 94, -1, -1, 94,
- 88, 89, 90, 57, 58, 93, 94, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
- 21, 22, -1, 24, 25, 26, 27, 28, 82, 83,
- -1, -1, 33, -1, 88, 89, 90, -1, -1, 93,
- 55, 56, 57, 58, -1, -1, 47, -1, 49, 50,
- 51, 52, 53, 54, -1, -1, -1, -1, 59, 60,
- 61, 62, 63, 64, -1, 66, 81, 82, 83, -1,
- -1, 72, -1, 88, 89, 90, -1, -1, 93, -1,
- -1, -1, -1, 84, 85, 86, -1, -1, -1, -1,
- 91, 92, -1, 8, 95, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
- 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, -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, 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, 55,
- -1, 57, 58, -1, -1, -1, 47, -1, 49, 50,
- 51, 52, 53, 54, -1, -1, -1, -1, 59, 60,
- 61, 62, 63, 64, -1, 66, 82, 83, -1, -1,
- -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, 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, -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,
+ 26, 10, 8, 67, 68, 69, 70, 71, 72, 239,
+ 48, 49, 50, 51, 52, 411, 0, 55, 56, 45,
+ 26, 136, 7, 80, 13, 14, 15, 122, 0, 38,
+ 250, 88, 70, 253, 49, 50, 51, 52, 102, 25,
+ 55, 56, 80, 81, 82, 109, 382, 142, 86, 7,
+ 19, 9, 448, 0, 74, 13, 19, 83, 173, 31,
+ 32, 33, 20, 35, 36, 80, 81, 73, 94, 7,
+ 236, 13, 7, 79, 9, 95, 82, 243, 19, 136,
+ 18, 138, 19, 25, 31, 32, 33, 151, 35, 36,
+ 7, 7, 9, 9, 66, 431, 96, 145, 146, 147,
+ 148, 149, 150, 167, 152, 153, 170, 96, 165, 25,
+ 96, 117, 7, 139, 96, 7, 173, 8, 13, 66,
+ 158, 341, 342, 65, 19, 97, 18, 9, 8, 24,
+ 96, 157, 158, 19, 364, 141, 8, 96, 96, 18,
+ 31, 32, 33, 158, 35, 36, 70, 71, 72, 175,
+ 97, 31, 32, 33, 96, 35, 36, 41, 42, 31,
+ 32, 33, 43, 35, 36, 385, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 66, 202, 203, 204, 10,
+ 96, 19, 20, 189, 222, 233, 66, 7, 246, 9,
+ 248, 70, 71, 72, 66, 58, 59, 223, 224, 225,
+ 226, 227, 228, 251, 319, 25, 97, 18, 74, 324,
+ 7, 249, 18, 239, 46, 47, 19, 97, 438, 245,
+ 246, 84, 248, 22, 250, 97, 89, 90, 91, 61,
+ 95, 94, 96, 259, 8, 261, 262, 9, 68, 70,
+ 71, 72, 74, 307, 270, 90, 91, 79, 10, 94,
+ 82, 18, 68, 85, 19, 87, 10, 89, 90, 91,
+ 92, 93, 319, 96, 70, 71, 72, 324, 13, 95,
+ 334, 8, 22, 1, 9, 22, 96, 303, 304, 72,
+ 306, 9, 95, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 18, 25, 26, 27,
+ 28, 29, 18, 70, 71, 72, 34, 95, 70, 71,
+ 72, 317, 95, 95, 320, 95, 70, 71, 72, 325,
+ 48, 18, 50, 51, 52, 53, 54, 55, 10, 355,
+ 8, 10, 60, 61, 62, 63, 64, 65, 364, 67,
+ 10, 18, 18, 10, 95, 73, 10, 95, 70, 71,
+ 72, 8, 8, 8, 70, 71, 72, 85, 86, 87,
+ 7, 387, 426, 95, 92, 93, 375, 8, 96, 201,
+ 95, 95, 95, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, 214, 215, 216, 217, 218, 219, 70, 71,
+ 72, 70, 71, 72, 70, 71, 72, 18, 9, 95,
+ 70, 71, 72, 70, 71, 72, 70, 71, 72, 95,
+ 1, 26, 387, 440, 440, 424, 7, 9, 9, 65,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 43, 25, 26, 27, 28, 29, 30,
+ 70, 71, 72, 34, 320, -1, 37, 38, 39, 40,
+ 86, 86, 58, 44, 45, 46, 47, 48, -1, 50,
+ 51, 52, 53, 54, 55, 95, -1, -1, -1, 60,
+ 61, 62, 63, 64, 65, -1, 67, -1, 84, -1,
+ -1, 413, 73, 89, 90, 91, -1, -1, 94, -1,
+ 422, 423, -1, -1, 85, 86, 87, -1, 1, -1,
+ 432, 92, 93, -1, -1, 96, 9, 439, 11, 12,
+ 13, 14, 15, 16, 17, -1, 19, 20, 21, 22,
+ 23, -1, 25, 26, 27, 28, 29, 359, 70, 71,
+ 72, 34, 89, 90, 91, -1, -1, 94, -1, 31,
+ 32, 33, -1, 35, 36, 48, -1, 50, 51, 52,
+ 53, 54, 55, 95, 70, 71, 72, 60, 61, 62,
+ 63, 64, 65, -1, 67, -1, 70, 71, 72, -1,
+ 73, 84, -1, -1, 66, -1, 89, 90, 91, 95,
+ -1, 94, 85, 86, 87, 3, 4, 5, 6, 92,
+ 93, 95, 95, 96, 7, -1, 9, -1, 11, 12,
+ 13, 14, 15, 16, 17, 97, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, -1, 70, 71,
+ 72, 34, -1, 37, 38, 39, 40, -1, -1, -1,
+ 44, -1, 46, -1, -1, 48, -1, 50, 51, 52,
+ 53, 54, 55, 95, 70, 71, 72, 60, 61, 62,
+ 63, 64, 65, -1, 67, -1, 70, 71, 72, -1,
+ 73, -1, -1, -1, -1, -1, -1, -1, -1, 95,
+ -1, -1, 85, 86, 87, -1, -1, -1, -1, 92,
+ 93, 95, 7, 96, 9, -1, 11, 12, 13, 14,
+ 15, 16, 17, -1, 19, 20, 21, 22, 23, -1,
+ 25, 26, 27, 28, 29, -1, 70, 71, 72, 34,
+ -1, -1, -1, -1, -1, -1, 70, 71, 72, 56,
+ 57, 58, 59, 48, -1, 50, 51, 52, 53, 54,
+ 55, 95, -1, -1, -1, 60, 61, 62, 63, 64,
+ 65, 95, 67, 80, 81, 82, 83, 84, 73, -1,
+ -1, -1, 89, 90, 91, -1, -1, 94, -1, -1,
+ 85, 86, 87, -1, -1, -1, -1, 92, 93, -1,
+ 7, 96, 9, -1, 11, 12, 13, 14, 15, 16,
+ 17, -1, 19, 20, 21, 22, 23, -1, 25, 26,
+ 27, 28, 29, -1, 70, 71, 72, 34, -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, -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, -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, -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, 48, -1, 50, 51, 52, 53, 54, 55, 95,
+ -1, -1, -1, 60, 61, 62, 63, 64, 65, -1,
+ 67, 7, -1, 9, 10, -1, 73, -1, -1, -1,
+ -1, -1, 18, -1, -1, -1, -1, -1, 85, 86,
+ 87, 56, 57, 58, 59, 92, 93, -1, -1, 96,
+ -1, 37, 38, 39, 40, -1, -1, -1, 44, -1,
+ 46, -1, -1, 49, -1, -1, 81, 82, 83, 84,
+ 56, 57, 58, 59, 89, 90, 91, -1, -1, 94,
+ -1, -1, -1, -1, 70, 71, 72, -1, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
+ -1, -1, -1, 89, 90, 91, 58, 59, 94, 95,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, -1,
+ 19, 20, 21, 22, 23, -1, 25, 26, 27, 28,
+ 29, 83, 84, -1, -1, 34, -1, 89, 90, 91,
+ -1, -1, 94, 56, 57, 58, 59, -1, -1, 48,
+ -1, 50, 51, 52, 53, 54, 55, -1, -1, -1,
+ -1, 60, 61, 62, 63, 64, 65, -1, 67, 82,
+ 83, 84, -1, -1, 73, -1, 89, 90, 91, -1,
+ -1, 94, -1, -1, -1, -1, 85, 86, 87, -1,
+ -1, -1, -1, 92, 93, -1, 9, 96, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, -1, 25, 26, 27, 28, 29, -1, -1, -1,
+ -1, 34, -1, -1, -1, -1, -1, -1, 56, 57,
+ 58, 59, -1, -1, -1, 48, -1, 50, 51, 52,
+ 53, 54, 55, -1, -1, -1, -1, 60, 61, 62,
+ 63, 64, 65, -1, 67, 83, 84, -1, -1, -1,
+ 73, 89, 90, 91, -1, -1, 94, -1, -1, -1,
+ -1, -1, 85, 86, 87, -1, -1, -1, -1, 92,
+ 93, -1, 9, 96, 11, 12, 13, 14, 15, 16,
+ 17, -1, 19, 20, 21, 22, 23, -1, 25, 26,
+ 27, 28, 29, -1, -1, -1, -1, 34, -1, -1,
+ -1, -1, -1, -1, 56, 57, 58, 59, -1, -1,
+ -1, 48, -1, 50, 51, 52, 53, 54, 55, -1,
+ -1, -1, -1, 60, 61, 62, 63, 64, 65, -1,
+ 67, 83, 84, -1, -1, -1, 73, 89, 90, 91,
+ -1, -1, 94, -1, -1, -1, -1, -1, 85, 86,
+ 87, -1, -1, -1, -1, 92, 93, -1, 95, 96,
+ 9, -1, 11, 12, 13, 14, 15, 16, 17, -1,
+ 19, 20, 21, 22, 23, -1, 25, 26, 27, 28,
+ 29, -1, -1, -1, -1, 34, -1, -1, -1, -1,
+ -1, -1, 56, -1, 58, 59, -1, -1, -1, 48,
+ -1, 50, 51, 52, 53, 54, 55, -1, -1, -1,
+ -1, 60, 61, 62, 63, 64, 65, -1, 67, 83,
+ 84, -1, -1, -1, 73, 89, 90, 91, -1, -1,
+ 94, -1, -1, -1, -1, -1, 85, 86, 87, -1,
+ -1, -1, -1, 92, 93, -1, 95, 96, 9, -1,
+ 11, 12, 13, 14, 15, 16, 17, -1, 19, 20,
+ 21, 22, 23, -1, 25, 26, 27, 28, 29, -1,
+ -1, -1, -1, 34, 37, 38, 39, 40, -1, -1,
+ -1, 44, -1, 46, -1, -1, -1, 48, -1, 50,
+ 51, 52, 53, 54, 55, -1, -1, -1, -1, 60,
+ 61, 62, 63, 64, 65, -1, 67, 70, 71, 72,
+ -1, -1, 73, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 85, 86, 87, -1, -1, -1,
+ -1, 92, 93, -1, 95, 96, 9, -1, 11, 12,
+ 13, 14, 15, 16, 17, -1, 19, 20, 21, 22,
+ 23, -1, 25, 26, 27, 28, 29, -1, -1, -1,
+ -1, 34, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 48, -1, 50, 51, 52,
+ 53, 54, 55, -1, -1, -1, -1, 60, 61, 62,
+ 63, 64, 65, -1, 67, -1, -1, -1, -1, -1,
+ 73, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 85, 86, 87, -1, -1, -1, -1, 92,
+ 93, -1, 95, 96, 9, -1, 11, 12, 13, 14,
+ 15, 16, 17, -1, 19, 20, 21, 22, 23, -1,
+ 25, 26, 27, 28, 29, -1, -1, -1, -1, 34,
-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, 48, -1, 50, 51, 52, 53, 54,
+ 55, -1, -1, -1, -1, 60, 61, 62, 63, 64,
+ 65, -1, 67, -1, -1, -1, -1, -1, 73, -1,
-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, 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,
- 381, -1, 383, 88, 89, 90, 387, -1, 93, 94,
+ 85, 86, 87, -1, -1, -1, -1, 92, 93, -1,
+ 95, 96, 9, -1, 11, 12, 13, 14, 15, 16,
+ 17, -1, 19, 20, 21, 22, 23, -1, 25, 26,
+ 27, 28, 29, -1, -1, -1, -1, 34, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 404, 405, -1, 48, -1, -1, -1,
- -1, 412, 413, 55, 56, 57, 58, -1, -1, -1,
- -1, 422, -1, -1, -1, 426, -1, -1, -1, -1,
- -1, -1, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 443, 444, -1, 48, 88, 89, 90, -1,
- -1, 93, 55, 56, 57, 58, -1, -1, -1, -1,
+ -1, 48, -1, 50, 51, 52, 53, 54, 55, -1,
+ -1, -1, -1, 60, 61, 62, 63, 64, 65, -1,
+ 67, -1, -1, -1, -1, -1, 73, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 85, 86,
+ 87, -1, -1, -1, -1, 92, 93, -1, 95, 96,
+ 9, -1, 11, 12, 13, 14, 15, 16, 17, -1,
+ 19, 20, 21, 22, 23, -1, 25, 26, 27, 28,
+ 29, -1, -1, -1, -1, 34, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 48,
+ -1, 50, 51, 52, 53, 54, 55, -1, -1, -1,
+ -1, 60, 61, 62, 63, 64, 65, -1, 67, -1,
+ -1, -1, -1, -1, 73, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 85, 86, 87, -1,
+ -1, -1, -1, 92, 93, -1, 95, 96, 9, -1,
+ 11, 12, 13, 14, 15, 16, 17, -1, 19, 20,
+ 21, 22, 23, -1, 25, 26, 27, 28, 29, -1,
+ -1, -1, -1, 34, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 48, -1, 50,
+ 51, 52, 53, 54, 55, -1, -1, -1, -1, 60,
+ 61, 62, 63, 64, 65, -1, 67, -1, -1, -1,
+ -1, -1, 73, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 85, 86, 87, -1, -1, -1,
+ -1, 92, 93, -1, 95, 96, 9, -1, 11, 12,
+ 13, 14, 15, 16, 17, -1, 19, 20, 21, 22,
+ 23, -1, 25, 26, 27, 28, 29, -1, -1, -1,
+ -1, 34, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 48, -1, 50, 51, 52,
+ 53, 54, 55, -1, -1, -1, -1, 60, 61, 62,
+ 63, 64, 65, -1, 67, -1, -1, 10, -1, -1,
+ 73, -1, -1, -1, -1, 18, -1, -1, -1, -1,
+ -1, -1, 85, 86, 87, -1, -1, -1, -1, 92,
+ 93, -1, -1, 96, 37, 38, 39, 40, -1, -1,
+ -1, 44, -1, 46, -1, -1, 49, -1, -1, -1,
+ -1, -1, -1, 56, 57, 58, 59, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
+ -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, -1, 384, -1, 386, 89, 90, 91, 390,
+ -1, 94, 95, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 407, 408, -1, 49,
+ -1, -1, -1, -1, 415, 416, 56, 57, 58, 59,
+ -1, -1, -1, -1, 425, -1, -1, -1, 429, -1,
+ -1, -1, -1, -1, -1, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 446, 447, -1, 49, 89,
+ 90, 91, -1, -1, 94, 56, 57, 58, 59, -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, 75, 76, -1, 78, 79, 80,
+ 81, 82, 83, 84, -1, -1, -1, 49, 89, 90,
+ 91, -1, -1, 94, 56, 57, 58, 59, -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, 76, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, -1, -1, 49, 89, 90, 91,
+ -1, -1, 94, 56, 57, 58, 59, -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, -1, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, -1, -1, -1, 89, 90, 91, -1,
+ -1, 94
};
/* 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, 99, 100, 0,
- 108, 30, 31, 32, 34, 35, 65, 96, 109, 110,
- 116, 117, 125, 126, 127, 128, 130, 131, 140, 141,
- 143, 108, 110, 126, 134, 132, 18, 132, 132, 1,
- 6, 8, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 24, 25, 26, 27, 28,
- 29, 33, 36, 37, 38, 39, 43, 44, 45, 46,
- 47, 49, 50, 51, 52, 53, 54, 59, 60, 61,
- 62, 63, 64, 66, 72, 84, 85, 86, 91, 92,
- 95, 102, 111, 113, 114, 145, 146, 147, 150, 151,
- 152, 153, 154, 155, 156, 163, 164, 165, 166, 167,
- 168, 18, 129, 18, 135, 18, 144, 135, 103, 9,
- 145, 155, 155, 18, 23, 102, 164, 169, 169, 169,
- 169, 169, 169, 169, 95, 8, 155, 133, 133, 24,
- 95, 160, 160, 160, 160, 64, 160, 164, 160, 160,
- 102, 155, 95, 95, 95, 102, 155, 18, 146, 158,
- 164, 169, 169, 18, 102, 155, 164, 17, 145, 18,
- 155, 95, 157, 164, 165, 166, 155, 146, 155, 155,
- 155, 155, 155, 94, 145, 42, 115, 17, 36, 37,
- 38, 39, 43, 45, 69, 70, 71, 73, 6, 8,
- 160, 48, 55, 56, 57, 58, 74, 75, 77, 78,
- 79, 80, 81, 82, 83, 88, 89, 90, 93, 160,
- 6, 8, 6, 8, 6, 102, 21, 136, 6, 17,
- 18, 136, 108, 9, 158, 95, 146, 145, 102, 136,
- 161, 103, 103, 103, 103, 103, 103, 160, 103, 103,
- 94, 94, 145, 145, 159, 169, 146, 160, 160, 7,
- 17, 158, 94, 145, 67, 138, 8, 94, 102, 145,
- 121, 145, 145, 145, 145, 145, 145, 145, 145, 155,
- 145, 145, 94, 145, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 155, 155, 155, 155, 155, 155, 6,
- 8, 19, 95, 149, 164, 94, 145, 145, 145, 145,
- 145, 145, 67, 137, 103, 18, 137, 7, 159, 94,
- 9, 148, 137, 95, 120, 145, 121, 122, 145, 121,
- 124, 162, 164, 111, 119, 122, 123, 145, 103, 104,
- 122, 94, 94, 145, 94, 145, 94, 145, 7, 94,
- 21, 145, 8, 17, 9, 94, 76, 145, 145, 94,
- 145, 160, 94, 17, 9, 17, 9, 17, 21, 17,
- 102, 139, 142, 158, 139, 94, 158, 102, 94, 94,
- 94, 94, 160, 94, 17, 122, 122, 94, 94, 94,
- 94, 9, 145, 7, 155, 17, 9, 94, 159, 7,
- 7, 7, 108, 17, 118, 118, 6, 106, 106, 122,
- 106, 120, 94, 94, 106, 9, 7, 94, 7, 106,
- 106, 107, 40, 41, 112, 112, 94, 115, 17, 106,
- 106, 115, 115, 108, 106, 160, 106, 118, 115, 7,
- 122, 115, 123, 94, 94, 106, 106, 112
+ 0, 3, 4, 5, 6, 99, 103, 107, 100, 101,
+ 102, 0, 110, 7, 104, 31, 32, 33, 35, 36,
+ 66, 97, 111, 112, 118, 119, 127, 128, 129, 130,
+ 132, 133, 142, 143, 145, 110, 112, 128, 105, 136,
+ 134, 19, 134, 134, 1, 9, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 25,
+ 26, 27, 28, 29, 30, 34, 37, 38, 39, 40,
+ 44, 45, 46, 47, 48, 50, 51, 52, 53, 54,
+ 55, 60, 61, 62, 63, 64, 65, 67, 73, 85,
+ 86, 87, 92, 93, 96, 104, 113, 115, 116, 147,
+ 148, 149, 152, 153, 154, 155, 156, 157, 158, 165,
+ 166, 167, 168, 169, 170, 110, 19, 131, 19, 137,
+ 19, 146, 137, 10, 147, 157, 157, 19, 24, 104,
+ 166, 171, 171, 171, 171, 171, 171, 171, 96, 9,
+ 157, 135, 135, 25, 96, 162, 162, 162, 162, 65,
+ 162, 166, 162, 162, 104, 157, 96, 96, 96, 104,
+ 157, 19, 148, 160, 166, 171, 171, 19, 104, 157,
+ 166, 18, 147, 19, 157, 96, 159, 166, 167, 168,
+ 157, 148, 157, 157, 157, 157, 157, 95, 147, 43,
+ 117, 18, 37, 38, 39, 40, 44, 46, 70, 71,
+ 72, 74, 7, 9, 162, 49, 56, 57, 58, 59,
+ 75, 76, 78, 79, 80, 81, 82, 83, 84, 89,
+ 90, 91, 94, 162, 7, 9, 7, 9, 7, 8,
+ 104, 22, 138, 7, 18, 19, 138, 10, 160, 96,
+ 148, 147, 104, 138, 163, 105, 105, 105, 105, 105,
+ 105, 162, 105, 105, 95, 95, 147, 147, 161, 171,
+ 148, 162, 162, 8, 18, 160, 95, 147, 68, 140,
+ 9, 95, 104, 147, 123, 147, 147, 147, 147, 147,
+ 147, 147, 147, 157, 147, 147, 95, 147, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 7, 9, 20, 96, 151, 166, 95,
+ 147, 147, 147, 147, 147, 147, 68, 139, 105, 19,
+ 139, 161, 95, 10, 150, 139, 96, 122, 147, 123,
+ 124, 147, 123, 126, 164, 166, 113, 121, 124, 125,
+ 147, 105, 106, 124, 95, 95, 147, 95, 147, 95,
+ 147, 8, 95, 22, 147, 9, 18, 10, 95, 77,
+ 147, 147, 95, 147, 162, 95, 18, 10, 18, 10,
+ 18, 22, 18, 104, 141, 144, 160, 141, 95, 160,
+ 104, 95, 95, 95, 95, 162, 95, 18, 124, 124,
+ 95, 95, 95, 95, 10, 147, 8, 157, 18, 10,
+ 95, 161, 8, 8, 8, 110, 18, 120, 120, 7,
+ 108, 108, 124, 108, 122, 95, 95, 108, 10, 8,
+ 95, 8, 108, 108, 109, 41, 42, 114, 114, 95,
+ 117, 18, 108, 108, 117, 117, 110, 108, 162, 108,
+ 120, 117, 8, 124, 117, 125, 95, 95, 108, 108,
+ 114
};
typedef enum {
@@ -931,7 +937,7 @@ typedef enum {
/* type of each token/terminal */
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_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
@@ -944,15 +950,16 @@ 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_opval,
+ toketype_i_tkval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval,
+ toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_ival, toketype_opval,
toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
- toketype_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_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_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_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 2b34f7d782..a70122d101 100644
--- a/perly.y
+++ b/perly.y
@@ -69,7 +69,7 @@
#endif
}
-%token <ival> GRAMPROG GRAMFULLSTMT GRAMSTMTSEQ
+%token <ival> GRAMPROG GRAMBLOCK GRAMFULLSTMT GRAMSTMTSEQ
%token <i_tkval> '{' '}' '[' ']' '-' '+' '$' '@' '%' '*' '&' ';'
@@ -143,6 +143,17 @@
/* Top-level choice of what kind of thing yyparse was called to parse */
grammar : GRAMPROG prog
{ $$ = $2; }
+ | GRAMBLOCK
+ {
+ parser->expect = XBLOCK;
+ }
+ block
+ {
+ PL_eval_root = $3;
+ $$ = 0;
+ yyunlex();
+ parser->yychar = YYEOF;
+ }
| GRAMFULLSTMT
{
parser->expect = XSTATE;
diff --git a/proto.h b/proto.h
index 3b962a73a5..ce9aaf356f 100644
--- a/proto.h
+++ b/proto.h
@@ -2776,6 +2776,7 @@ PERL_CALLCONV void Perl_pad_undef(pTHX_ CV* cv)
#define PERL_ARGS_ASSERT_PAD_UNDEF \
assert(cv)
+PERL_CALLCONV OP* Perl_parse_block(pTHX_ U32 flags);
PERL_CALLCONV OP* Perl_parse_fullstmt(pTHX_ U32 flags);
PERL_CALLCONV OP* Perl_parse_stmtseq(pTHX_ U32 flags);
PERL_CALLCONV U32 Perl_parse_unicode_opts(pTHX_ const char **popt)
diff --git a/toke.c b/toke.c
index d0af57e1d6..ec2ac73c51 100644
--- a/toke.c
+++ b/toke.c
@@ -13973,7 +13973,8 @@ Perl_keyword_plugin_standard(pTHX_
}
#define parse_recdescent(g) S_parse_recdescent(aTHX_ g)
-static void S_parse_recdescent(pTHX_ int gramtype)
+static void
+S_parse_recdescent(pTHX_ int gramtype)
{
SAVEI32(PL_lex_brackets);
if (PL_lex_brackets > 100)
@@ -13983,6 +13984,56 @@ static void S_parse_recdescent(pTHX_ int gramtype)
qerror(Perl_mess(aTHX_ "Parse error"));
}
+#define parse_recdescent_for_op(g) S_parse_recdescent_for_op(aTHX_ g)
+static OP *
+S_parse_recdescent_for_op(pTHX_ int gramtype)
+{
+ OP *o;
+ ENTER;
+ SAVEVPTR(PL_eval_root);
+ PL_eval_root = NULL;
+ parse_recdescent(gramtype);
+ o = PL_eval_root;
+ LEAVE;
+ return o;
+}
+
+/*
+=for apidoc Amx|OP *|parse_block|U32 flags
+
+Parse a single complete Perl code block. This consists of an opening
+brace, a sequence of statements, and a closing brace. The block
+constitutes a lexical scope, so C<my> variables and various compile-time
+effects can be contained within it. It is up to the caller to ensure
+that the dynamic parser state (L</PL_parser> et al) is correctly set to
+reflect the source of the code to be parsed and the lexical context for
+the statement.
+
+The op tree representing the code block is returned. This is always a
+real op, never a null pointer. It will normally be a C<lineseq> list,
+including C<nextstate> or equivalent ops. No ops to construct any kind
+of runtime scope are included by virtue of it being a block.
+
+If an error occurs in parsing or compilation, in most cases a valid op
+tree (most likely null) is returned anyway. The error is reflected in
+the parser state, normally resulting in a single exception at the top
+level of parsing which covers all the compilation errors that occurred.
+Some compilation errors, however, will throw an exception immediately.
+
+The I<flags> parameter is reserved for future use, and must always
+be zero.
+
+=cut
+*/
+
+OP *
+Perl_parse_block(pTHX_ U32 flags)
+{
+ if (flags)
+ Perl_croak(aTHX_ "Parsing code internal error (%s)", "parse_block");
+ return parse_recdescent_for_op(GRAMBLOCK);
+}
+
/*
=for apidoc Amx|OP *|parse_fullstmt|U32 flags
@@ -14013,16 +14064,9 @@ be zero.
OP *
Perl_parse_fullstmt(pTHX_ U32 flags)
{
- OP *fullstmtop;
if (flags)
Perl_croak(aTHX_ "Parsing code internal error (%s)", "parse_fullstmt");
- ENTER;
- SAVEVPTR(PL_eval_root);
- PL_eval_root = NULL;
- parse_recdescent(GRAMFULLSTMT);
- fullstmtop = PL_eval_root;
- LEAVE;
- return fullstmtop;
+ return parse_recdescent_for_op(GRAMFULLSTMT);
}
/*
@@ -14059,16 +14103,13 @@ OP *
Perl_parse_stmtseq(pTHX_ U32 flags)
{
OP *stmtseqop;
+ I32 c;
if (flags)
Perl_croak(aTHX_ "Parsing code internal error (%s)", "parse_fullstmt");
- ENTER;
- SAVEVPTR(PL_eval_root);
- PL_eval_root = NULL;
- parse_recdescent(GRAMSTMTSEQ);
- if (!((PL_bufptr == PL_bufend && !PL_rsfp) || *PL_bufptr == /*{*/'}'))
+ stmtseqop = parse_recdescent_for_op(GRAMSTMTSEQ);
+ c = lex_peek_unichar(0);
+ if (c != -1 && c != /*{*/'}')
qerror(Perl_mess(aTHX_ "Parse error"));
- stmtseqop = PL_eval_root;
- LEAVE;
return stmtseqop;
}