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