diff --git a/MANIFEST b/MANIFEST index 198a33ddd331..14428b61f93d 100644 --- a/MANIFEST +++ b/MANIFEST @@ -6351,7 +6351,9 @@ t/op/filetest_stack_ok.t See if file tests leave their argument on the stack t/op/filetest_t.t See if -t file test works t/op/flip.t See if range operator works t/op/for.t See if for loops work +t/op/for-control-scope.t See if scope of for-control control variable(s) works t/op/for-many.t See if n-at-a-time for loops work +t/op/for-over-scope.t See if scope of for-over cursor variable(s) works t/op/fork.t See if fork works t/op/fresh_perl_utf8.t UTF8 tests for pads and gvs t/op/getpid.t See if $$ and getppid work with threads diff --git a/perly.act b/perly.act index 6776ff465b08..9e767613396a 100644 --- a/perly.act +++ b/perly.act @@ -5,7 +5,7 @@ */ case 2: /* @1: %empty */ -#line 188 "perly.y" +#line 192 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -14,7 +14,7 @@ case 2: /* @1: %empty */ break; case 3: /* grammar: GRAMPROG @1 remember stmtseq */ -#line 193 "perly.y" +#line 197 "perly.y" { newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval))); PL_compiling.cop_seq = 0; @@ -24,7 +24,7 @@ case 2: /* @1: %empty */ break; case 4: /* @2: %empty */ -#line 199 "perly.y" +#line 203 "perly.y" { parser->expect = XTERM; (yyval.ival) = 0; @@ -33,7 +33,7 @@ case 2: /* @1: %empty */ break; case 5: /* grammar: GRAMEXPR @2 optexpr */ -#line 204 "perly.y" +#line 208 "perly.y" { PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; @@ -42,7 +42,7 @@ case 2: /* @1: %empty */ break; case 6: /* @3: %empty */ -#line 209 "perly.y" +#line 213 "perly.y" { parser->expect = XBLOCK; (yyval.ival) = 0; @@ -51,7 +51,7 @@ case 2: /* @1: %empty */ break; case 7: /* grammar: GRAMBLOCK @3 block */ -#line 214 "perly.y" +#line 218 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[0].val.opval); @@ -63,7 +63,7 @@ case 2: /* @1: %empty */ break; case 8: /* @4: %empty */ -#line 222 "perly.y" +#line 226 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -72,7 +72,7 @@ case 2: /* @1: %empty */ break; case 9: /* grammar: GRAMBARESTMT @4 barestmt */ -#line 227 "perly.y" +#line 231 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[0].val.opval); @@ -84,7 +84,7 @@ case 2: /* @1: %empty */ break; case 10: /* @5: %empty */ -#line 235 "perly.y" +#line 239 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -93,7 +93,7 @@ case 2: /* @1: %empty */ break; case 11: /* grammar: GRAMFULLSTMT @5 fullstmt */ -#line 240 "perly.y" +#line 244 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[0].val.opval); @@ -105,7 +105,7 @@ case 2: /* @1: %empty */ break; case 12: /* @6: %empty */ -#line 248 "perly.y" +#line 252 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -114,7 +114,7 @@ case 2: /* @1: %empty */ break; case 13: /* grammar: GRAMSTMTSEQ @6 stmtseq */ -#line 253 "perly.y" +#line 257 "perly.y" { PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; @@ -123,7 +123,7 @@ case 2: /* @1: %empty */ break; case 14: /* @7: %empty */ -#line 258 "perly.y" +#line 262 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -132,7 +132,7 @@ case 2: /* @1: %empty */ break; case 15: /* grammar: GRAMSUBSIGNATURE @7 subsigguts */ -#line 263 "perly.y" +#line 267 "perly.y" { PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; @@ -141,7 +141,7 @@ case 2: /* @1: %empty */ break; case 16: /* bare_statement_block: block cont */ -#line 272 "perly.y" +#line 276 "perly.y" { (yyval.opval) = new_block_statement ((ps[-1].val.opval), (ps[0].val.opval)); } @@ -149,7 +149,7 @@ case 2: /* @1: %empty */ break; case 17: /* bare_statement_class_declaration: KW_CLASS BAREWORD BAREWORD optattrlist PERLY_SEMICOLON */ -#line 283 "perly.y" +#line 287 "perly.y" { package ((ps[-2].val.opval), (ps[-3].val.opval)); (yyval.opval) = NULL; @@ -162,7 +162,7 @@ case 2: /* @1: %empty */ break; case 18: /* $@8: %empty */ -#line 300 "perly.y" +#line 304 "perly.y" { package ((ps[-3].val.opval), (ps[-4].val.opval)); class_setup_stash(PL_curstash); @@ -174,7 +174,7 @@ case 2: /* @1: %empty */ break; case 19: /* bare_statement_class_definition: KW_CLASS BAREWORD BAREWORD optattrlist PERLY_BRACE_OPEN remember $@8 stmtseq PERLY_BRACE_CLOSE */ -#line 309 "perly.y" +#line 313 "perly.y" { (yyval.opval) = new_block_statement (block_end ((ps[-3].val.ival), (ps[-1].val.opval)), NULL); if (parser->copline > (line_t)(ps[-4].val.ival)) @@ -184,7 +184,7 @@ case 2: /* @1: %empty */ break; case 20: /* bare_statement_default: KW_DEFAULT block */ -#line 319 "perly.y" +#line 323 "perly.y" { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); } @@ -192,7 +192,7 @@ case 2: /* @1: %empty */ break; case 21: /* bare_statement_defer: KW_DEFER mblock */ -#line 326 "perly.y" +#line 330 "perly.y" { (yyval.opval) = newDEFEROP(0, op_scope((ps[0].val.opval))); } @@ -200,7 +200,7 @@ case 2: /* @1: %empty */ break; case 22: /* bare_statement_expression: sideff PERLY_SEMICOLON */ -#line 334 "perly.y" +#line 338 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } @@ -208,31 +208,31 @@ case 2: /* @1: %empty */ break; case 23: /* bare_statement_field_declaration: fielddecl PERLY_SEMICOLON */ -#line 342 "perly.y" +#line 346 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 24: /* $@9: %empty */ -#line 353 "perly.y" + case 26: /* $@9: %empty */ +#line 362 "perly.y" { parser->expect = XTERM; } break; - case 25: /* $@10: %empty */ -#line 358 "perly.y" + case 27: /* $@10: %empty */ +#line 367 "perly.y" { parser->expect = XTERM; } break; - case 26: /* bare_statement_for: KW_FOR PERLY_PAREN_OPEN remember mnexpr PERLY_SEMICOLON $@9 texpr PERLY_SEMICOLON $@10 mintro mnexpr PERLY_PAREN_CLOSE mblock */ -#line 365 "perly.y" + case 28: /* bare_statement_for_control: KW_FOR remember PERLY_PAREN_OPEN mnexpr PERLY_SEMICOLON $@9 texpr PERLY_SEMICOLON $@10 mintro mnexpr PERLY_PAREN_CLOSE mblock */ +#line 374 "perly.y" { OP *initop = (ps[-9].val.opval); OP *forop = newWHILEOP(0, 1, NULL, scalar((ps[-6].val.opval)), (ps[0].val.opval), (ps[-2].val.opval), (ps[-3].val.ival)); @@ -244,102 +244,32 @@ case 2: /* @1: %empty */ ); } PL_hints |= HINT_BLOCK_SCOPE; - (yyval.opval) = block_end((ps[-10].val.ival), forop); + (yyval.opval) = block_end((ps[-11].val.ival), forop); parser->copline = (line_t)(ps[-12].val.ival); } break; - case 27: /* bare_statement_for: KW_FOR KW_MY remember my_scalar PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont */ -#line 388 "perly.y" + case 29: /* bare_statement_for_over: KW_FOR remember clause_for_over_cursor clause_mexpr mblock cont */ +#line 397 "perly.y" { - (yyval.opval) = block_end((ps[-6].val.ival), newFOROP(0, (ps[-5].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); - parser->copline = (line_t)(ps[-8].val.ival); - } - - break; - - case 28: /* bare_statement_for: KW_FOR KW_MY remember PERLY_PAREN_OPEN my_list_of_scalars PERLY_PAREN_CLOSE PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont */ -#line 403 "perly.y" - { - if ((ps[-6].val.opval)->op_type == OP_PADSV) - /* degenerate case of 1 var: for my ($x) .... - Flag it so it can be special-cased in newFOROP */ - (ps[-6].val.opval)->op_flags |= OPf_PARENS; - (yyval.opval) = block_end((ps[-8].val.ival), newFOROP(0, (ps[-6].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); - parser->copline = (line_t)(ps[-10].val.ival); - } - - break; - - case 29: /* bare_statement_for: KW_FOR scalar PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont */ -#line 419 "perly.y" - { - (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); - parser->copline = (line_t)(ps[-7].val.ival); - } - - break; - - case 30: /* @11: %empty */ -#line 427 "perly.y" - { - parser->in_my = 0; - (yyval.opval) = my((ps[0].val.opval)); - } - - break; - - case 31: /* bare_statement_for: KW_FOR my_refgen remember my_var @11 PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont */ -#line 436 "perly.y" - { - (yyval.opval) = block_end( - (ps[-7].val.ival), - newFOROP( - 0, - op_lvalue( - newUNOP(OP_REFGEN, 0, (ps[-5].val.opval)), - OP_ENTERLOOP - ), - (ps[-3].val.opval), - (ps[-1].val.opval), - (ps[0].val.opval) - ) - ); - parser->copline = (line_t)(ps[-9].val.ival); - } - - break; - - case 32: /* bare_statement_for: KW_FOR REFGEN refgen_topic PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont */ -#line 461 "perly.y" - { - (yyval.opval) = block_end ( - (ps[-4].val.ival), - newFOROP ( - 0, - op_lvalue (newUNOP(OP_REFGEN, 0, (ps[-6].val.opval)), OP_ENTERLOOP), - (ps[-3].val.opval), - (ps[-1].val.opval), - (ps[0].val.opval) - ) - ); - parser->copline = (line_t)(ps[-8].val.ival); + (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); + parser->copline = (line_t)(ps[-5].val.ival); } break; - case 33: /* bare_statement_for: KW_FOR PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont */ -#line 481 "perly.y" + case 30: /* bare_statement_for_over: KW_FOR remember clause_mexpr mblock cont */ +#line 406 "perly.y" { - (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); - parser->copline = (line_t)(ps[-6].val.ival); + (yyval.opval) = block_end((ps[-3].val.ival), newFOROP(0, NULL, (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); + parser->copline = (line_t)(ps[-4].val.ival); } break; - case 34: /* bare_statement_format: KW_FORMAT startformsub formname formblock */ -#line 492 "perly.y" + case 31: /* bare_statement_format: KW_FORMAT startformsub formname formblock */ +#line 417 "perly.y" { CV *fmtcv = PL_compcv; newFORM((ps[-2].val.ival), (ps[-1].val.opval), (ps[0].val.opval)); @@ -352,26 +282,26 @@ case 2: /* @1: %empty */ break; - case 35: /* bare_statement_given: KW_GIVEN PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock */ -#line 510 "perly.y" + case 32: /* bare_statement_given: KW_GIVEN remember clause_mexpr mblock */ +#line 433 "perly.y" { - (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0)); - parser->copline = (line_t)(ps[-5].val.ival); + (yyval.opval) = block_end((ps[-2].val.ival), newGIVENOP((ps[-1].val.opval), op_scope((ps[0].val.opval)), 0)); + parser->copline = (line_t)(ps[-3].val.ival); } break; - case 36: /* bare_statement_if: KW_IF PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock else */ -#line 524 "perly.y" + case 33: /* bare_statement_if: KW_IF remember clause_mexpr mblock else */ +#line 445 "perly.y" { - (yyval.opval) = block_end((ps[-4].val.ival), newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval))); - parser->copline = (line_t)(ps[-6].val.ival); + (yyval.opval) = block_end((ps[-3].val.ival), newCONDOP(0, (ps[-2].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval))); + parser->copline = (line_t)(ps[-4].val.ival); } break; - case 37: /* bare_statement_null: PERLY_SEMICOLON */ -#line 532 "perly.y" + case 34: /* bare_statement_null: PERLY_SEMICOLON */ +#line 453 "perly.y" { (yyval.opval) = NULL; parser->copline = NOLINE; @@ -379,8 +309,8 @@ case 2: /* @1: %empty */ break; - case 38: /* bare_statement_package_declaration: KW_PACKAGE BAREWORD BAREWORD PERLY_SEMICOLON */ -#line 548 "perly.y" + case 35: /* bare_statement_package_declaration: KW_PACKAGE BAREWORD BAREWORD PERLY_SEMICOLON */ +#line 469 "perly.y" { package ((ps[-1].val.opval), (ps[-2].val.opval)); (yyval.opval) = NULL; @@ -388,16 +318,16 @@ case 2: /* @1: %empty */ break; - case 39: /* $@12: %empty */ -#line 560 "perly.y" + case 36: /* $@11: %empty */ +#line 481 "perly.y" { package ((ps[-2].val.opval), (ps[-3].val.opval)); } break; - case 40: /* bare_statement_package_definition: KW_PACKAGE BAREWORD BAREWORD PERLY_BRACE_OPEN remember $@12 stmtseq PERLY_BRACE_CLOSE */ -#line 565 "perly.y" + case 37: /* bare_statement_package_definition: KW_PACKAGE BAREWORD BAREWORD PERLY_BRACE_OPEN remember $@11 stmtseq PERLY_BRACE_CLOSE */ +#line 486 "perly.y" { (yyval.opval) = new_block_statement (block_end ((ps[-3].val.ival), (ps[-1].val.opval)), NULL); if (parser->copline > (line_t)(ps[-4].val.ival)) @@ -406,8 +336,8 @@ case 2: /* @1: %empty */ break; - case 41: /* $@13: %empty */ -#line 575 "perly.y" + case 38: /* $@12: %empty */ +#line 496 "perly.y" { switch((ps[-1].val.ival)) { case KEY_ADJUST: @@ -421,8 +351,8 @@ case 2: /* @1: %empty */ break; - case 42: /* bare_statement_phaser: PHASER startsub $@13 optsubbody */ -#line 586 "perly.y" + case 39: /* bare_statement_phaser: PHASER startsub $@12 optsubbody */ +#line 507 "perly.y" { OP *body = (ps[0].val.opval); SvREFCNT_inc_simple_void(PL_compcv); @@ -441,8 +371,8 @@ case 2: /* @1: %empty */ break; - case 43: /* $@14: %empty */ -#line 610 "perly.y" + case 40: /* $@13: %empty */ +#line 531 "perly.y" { init_named_cv(PL_compcv, (ps[-1].val.opval)); if((ps[-2].val.ival) == KW_METHOD_named) { @@ -455,8 +385,8 @@ case 2: /* @1: %empty */ break; - case 44: /* bare_statement_sub_signature: sigsub_or_method_named subname startsub $@14 subattrlist optsigsubbody */ -#line 621 "perly.y" + case 41: /* bare_statement_sub_signature: sigsub_or_method_named subname startsub $@13 subattrlist optsigsubbody */ +#line 542 "perly.y" { OP *body = (ps[0].val.opval); @@ -472,8 +402,8 @@ case 2: /* @1: %empty */ break; - case 45: /* $@15: %empty */ -#line 640 "perly.y" + case 42: /* $@14: %empty */ +#line 561 "perly.y" { init_named_cv(PL_compcv, (ps[-1].val.opval)); parser->in_my = 0; @@ -482,8 +412,8 @@ case 2: /* @1: %empty */ break; - case 46: /* bare_statement_sub_traditional: KW_SUB_named subname startsub $@15 proto subattrlist optsubbody */ -#line 648 "perly.y" + case 43: /* bare_statement_sub_traditional: KW_SUB_named subname startsub $@14 proto subattrlist optsubbody */ +#line 569 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (ps[-5].val.opval)->op_type == OP_CONST @@ -497,8 +427,8 @@ case 2: /* @1: %empty */ break; - case 47: /* $@16: %empty */ -#line 666 "perly.y" + case 44: /* $@15: %empty */ +#line 587 "perly.y" { if(!(ps[0].val.opval)) { yyerror("catch block requires a (VAR)"); @@ -508,8 +438,8 @@ case 2: /* @1: %empty */ break; - case 48: /* bare_statement_try_catch: KW_TRY mblock KW_CATCH remember catch_paren $@16 mblock finally */ -#line 674 "perly.y" + case 45: /* bare_statement_try_catch: KW_TRY mblock KW_CATCH remember catch_paren $@15 mblock finally */ +#line 595 "perly.y" { (yyval.opval) = newTRYCATCHOP(0, (ps[-6].val.opval), (ps[-3].val.opval), block_end((ps[-4].val.ival), op_scope((ps[-1].val.opval)))); if((ps[0].val.opval)) @@ -519,17 +449,17 @@ case 2: /* @1: %empty */ break; - case 49: /* bare_statement_unless: KW_UNLESS PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock else */ -#line 690 "perly.y" + case 46: /* bare_statement_unless: KW_UNLESS remember clause_mexpr mblock else */ +#line 609 "perly.y" { - (yyval.opval) = block_end((ps[-4].val.ival), newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval)))); - parser->copline = (line_t)(ps[-6].val.ival); + (yyval.opval) = block_end((ps[-3].val.ival), newCONDOP(0, (ps[-2].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval)))); + parser->copline = (line_t)(ps[-4].val.ival); } break; - case 50: /* bare_statement_until: KW_UNTIL PERLY_PAREN_OPEN remember iexpr PERLY_PAREN_CLOSE mintro mblock cont */ -#line 705 "perly.y" + case 47: /* bare_statement_until: KW_UNTIL PERLY_PAREN_OPEN remember iexpr PERLY_PAREN_CLOSE mintro mblock cont */ +#line 624 "perly.y" { (yyval.opval) = block_end((ps[-5].val.ival), newWHILEOP(0, 1, NULL, (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival))); parser->copline = (line_t)(ps[-7].val.ival); @@ -537,14 +467,14 @@ case 2: /* @1: %empty */ break; - case 51: /* $@17: %empty */ -#line 714 "perly.y" + case 48: /* $@16: %empty */ +#line 633 "perly.y" { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } break; - case 52: /* bare_statement_utilize: KW_USE_or_NO startsub $@17 BAREWORD BAREWORD optlistexpr PERLY_SEMICOLON */ -#line 721 "perly.y" + case 49: /* bare_statement_utilize: KW_USE_or_NO startsub $@16 BAREWORD BAREWORD optlistexpr PERLY_SEMICOLON */ +#line 640 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval)); @@ -554,16 +484,16 @@ case 2: /* @1: %empty */ break; - case 53: /* bare_statement_when: KW_WHEN PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock */ -#line 736 "perly.y" + case 50: /* bare_statement_when: KW_WHEN remember clause_mexpr mblock */ +#line 653 "perly.y" { - (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); + (yyval.opval) = block_end((ps[-2].val.ival), newWHENOP((ps[-1].val.opval), op_scope((ps[0].val.opval)))); } break; - case 54: /* bare_statement_while: KW_WHILE PERLY_PAREN_OPEN remember texpr PERLY_PAREN_CLOSE mintro mblock cont */ -#line 750 "perly.y" + case 51: /* bare_statement_while: KW_WHILE PERLY_PAREN_OPEN remember texpr PERLY_PAREN_CLOSE mintro mblock cont */ +#line 667 "perly.y" { (yyval.opval) = block_end((ps[-5].val.ival), newWHILEOP(0, 1, NULL, (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival))); parser->copline = (line_t)(ps[-7].val.ival); @@ -571,8 +501,8 @@ case 2: /* @1: %empty */ break; - case 55: /* bare_statement_yadayada: YADAYADA PERLY_SEMICOLON */ -#line 758 "perly.y" + case 52: /* bare_statement_yadayada: YADAYADA PERLY_SEMICOLON */ +#line 675 "perly.y" { /* diag_listed_as: Unimplemented */ (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); @@ -580,20 +510,79 @@ case 2: /* @1: %empty */ break; - case 56: /* sigsub_or_method_named: KW_SUB_named_sig */ -#line 767 "perly.y" + case 53: /* clause_for_over_cursor: scalar */ +#line 683 "perly.y" + { + (yyval.opval) = op_lvalue ((ps[0].val.opval), OP_ENTERLOOP); + } + + break; + + case 54: /* clause_for_over_cursor: KW_MY my_scalar */ +#line 688 "perly.y" + { + (yyval.opval) = (ps[0].val.opval); + } + + break; + + case 55: /* clause_for_over_cursor: KW_MY PERLY_PAREN_OPEN my_list_of_scalars PERLY_PAREN_CLOSE */ +#line 695 "perly.y" + { + if ((ps[-1].val.opval)->op_type == OP_PADSV) + /* degenerate case of 1 var: for my ($x) .... + Flag it so it can be special-cased in newFOROP */ + (ps[-1].val.opval)->op_flags |= OPf_PARENS; + (yyval.opval) = (ps[-1].val.opval); + } + + break; + + case 56: /* clause_for_over_cursor: my_refgen my_var */ +#line 704 "perly.y" + { + parser->in_my = 0; + (yyval.opval) = op_lvalue ( + newUNOP (OP_REFGEN, 0, my ((ps[0].val.opval))), + OP_ENTERLOOP + ); + } + + break; + + case 57: /* clause_for_over_cursor: REFGEN refgen_topic */ +#line 713 "perly.y" + { + (yyval.opval) = op_lvalue ( + newUNOP (OP_REFGEN, 0, (ps[0].val.opval)), + OP_ENTERLOOP + ); + } + + break; + + case 58: /* clause_mexpr: PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE */ +#line 725 "perly.y" + { + (yyval.opval) = (ps[-1].val.opval); + } + + break; + + case 59: /* sigsub_or_method_named: KW_SUB_named_sig */ +#line 733 "perly.y" { (yyval.ival) = KW_SUB_named_sig; } break; - case 57: /* sigsub_or_method_named: KW_METHOD_named */ -#line 769 "perly.y" + case 60: /* sigsub_or_method_named: KW_METHOD_named */ +#line 735 "perly.y" { (yyval.ival) = KW_METHOD_named; } break; - case 58: /* block: PERLY_BRACE_OPEN remember stmtseq PERLY_BRACE_CLOSE */ -#line 774 "perly.y" + case 61: /* block: PERLY_BRACE_OPEN remember stmtseq PERLY_BRACE_CLOSE */ +#line 740 "perly.y" { if (parser->copline > (line_t)(ps[-3].val.ival)) parser->copline = (line_t)(ps[-3].val.ival); (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); @@ -601,14 +590,14 @@ case 2: /* @1: %empty */ break; - case 59: /* empty: %empty */ -#line 781 "perly.y" + case 62: /* empty: %empty */ +#line 747 "perly.y" { (yyval.opval) = NULL; } break; - case 60: /* formblock: PERLY_EQUAL_SIGN remember PERLY_SEMICOLON FORMRBRACK formstmtseq PERLY_SEMICOLON PERLY_DOT */ -#line 786 "perly.y" + case 63: /* formblock: PERLY_EQUAL_SIGN remember PERLY_SEMICOLON FORMRBRACK formstmtseq PERLY_SEMICOLON PERLY_DOT */ +#line 752 "perly.y" { if (parser->copline > (line_t)(ps[-6].val.ival)) parser->copline = (line_t)(ps[-6].val.ival); (yyval.opval) = block_end((ps[-5].val.ival), (ps[-2].val.opval)); @@ -616,15 +605,15 @@ case 2: /* @1: %empty */ break; - case 61: /* remember: %empty */ -#line 793 "perly.y" + case 64: /* remember: %empty */ +#line 759 "perly.y" { (yyval.ival) = block_start(TRUE); parser->parsed_sub = 0; } break; - case 62: /* mblock: PERLY_BRACE_OPEN mremember stmtseq PERLY_BRACE_CLOSE */ -#line 798 "perly.y" + case 65: /* mblock: PERLY_BRACE_OPEN mremember stmtseq PERLY_BRACE_CLOSE */ +#line 764 "perly.y" { if (parser->copline > (line_t)(ps[-3].val.ival)) parser->copline = (line_t)(ps[-3].val.ival); (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); @@ -632,33 +621,33 @@ case 2: /* @1: %empty */ break; - case 63: /* mremember: %empty */ -#line 805 "perly.y" + case 66: /* mremember: %empty */ +#line 771 "perly.y" { (yyval.ival) = block_start(FALSE); parser->parsed_sub = 0; } break; - case 65: /* $@18: %empty */ -#line 814 "perly.y" + case 68: /* $@17: %empty */ +#line 780 "perly.y" { parser->in_my = KEY_catch; } break; - case 66: /* $@19: %empty */ -#line 816 "perly.y" + case 69: /* $@18: %empty */ +#line 782 "perly.y" { parser->in_my = 0; intro_my(); } break; - case 67: /* catch_paren: PERLY_PAREN_OPEN $@18 scalar $@19 PERLY_PAREN_CLOSE */ -#line 818 "perly.y" + case 70: /* catch_paren: PERLY_PAREN_OPEN $@17 scalar $@18 PERLY_PAREN_CLOSE */ +#line 784 "perly.y" { (yyval.opval) = (ps[-2].val.opval); } break; - case 69: /* stmtseq: stmtseq fullstmt */ -#line 825 "perly.y" + case 72: /* stmtseq: stmtseq fullstmt */ +#line 791 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); PL_pad_reset_pending = TRUE; if ((ps[-1].val.opval) && (ps[0].val.opval)) @@ -667,8 +656,8 @@ case 2: /* @1: %empty */ break; - case 71: /* formstmtseq: formstmtseq formline */ -#line 836 "perly.y" + case 74: /* formstmtseq: formstmtseq formline */ +#line 802 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); PL_pad_reset_pending = TRUE; if ((ps[-1].val.opval) && (ps[0].val.opval)) @@ -677,22 +666,22 @@ case 2: /* @1: %empty */ break; - case 72: /* fullstmt: barestmt */ -#line 845 "perly.y" + case 75: /* fullstmt: barestmt */ +#line 811 "perly.y" { (yyval.opval) = (ps[0].val.opval) ? newSTATEOP(0, NULL, (ps[0].val.opval)) : NULL; } break; - case 73: /* fullstmt: labfullstmt */ -#line 849 "perly.y" + case 76: /* fullstmt: labfullstmt */ +#line 815 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 74: /* labfullstmt: LABEL barestmt */ -#line 853 "perly.y" + case 77: /* labfullstmt: LABEL barestmt */ +#line 819 "perly.y" { SV *label = cSVOPx_sv((ps[-1].val.opval)); (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8, @@ -702,8 +691,8 @@ case 2: /* @1: %empty */ break; - case 75: /* labfullstmt: LABEL labfullstmt */ -#line 860 "perly.y" + case 78: /* labfullstmt: LABEL labfullstmt */ +#line 826 "perly.y" { SV *label = cSVOPx_sv((ps[-1].val.opval)); (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8, @@ -713,8 +702,8 @@ case 2: /* @1: %empty */ break; - case 101: /* formline: THING formarg */ -#line 905 "perly.y" + case 104: /* formline: THING formarg */ +#line 871 "perly.y" { OP *list; if ((ps[0].val.opval)) { OP *term = (ps[0].val.opval); @@ -732,63 +721,63 @@ case 2: /* @1: %empty */ break; - case 103: /* formarg: FORMLBRACK stmtseq FORMRBRACK */ -#line 924 "perly.y" + case 106: /* formarg: FORMLBRACK stmtseq FORMRBRACK */ +#line 890 "perly.y" { (yyval.opval) = op_unscope((ps[-1].val.opval)); } break; - case 105: /* sideff: error */ -#line 932 "perly.y" + case 108: /* sideff: error */ +#line 898 "perly.y" { (yyval.opval) = NULL; } break; - case 106: /* sideff: expr */ -#line 934 "perly.y" + case 109: /* sideff: expr */ +#line 900 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 107: /* sideff: expr KW_IF condition */ -#line 936 "perly.y" + case 110: /* sideff: expr KW_IF condition */ +#line 902 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); } break; - case 108: /* sideff: expr KW_UNLESS condition */ -#line 938 "perly.y" + case 111: /* sideff: expr KW_UNLESS condition */ +#line 904 "perly.y" { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); } break; - case 109: /* sideff: expr KW_WHILE condition */ -#line 940 "perly.y" + case 112: /* sideff: expr KW_WHILE condition */ +#line 906 "perly.y" { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); } break; - case 110: /* sideff: expr KW_UNTIL iexpr */ -#line 942 "perly.y" + case 113: /* sideff: expr KW_UNTIL iexpr */ +#line 908 "perly.y" { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); } break; - case 111: /* sideff: expr KW_FOR condition */ -#line 944 "perly.y" + case 114: /* sideff: expr KW_FOR condition */ +#line 910 "perly.y" { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL); parser->copline = (line_t)(ps[-1].val.ival); } break; - case 112: /* sideff: expr KW_WHEN condition */ -#line 947 "perly.y" + case 115: /* sideff: expr KW_WHEN condition */ +#line 913 "perly.y" { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); } break; - case 114: /* else: KW_ELSE mblock */ -#line 954 "perly.y" + case 117: /* else: KW_ELSE mblock */ +#line 920 "perly.y" { ((ps[0].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = op_scope((ps[0].val.opval)); @@ -796,105 +785,105 @@ case 2: /* @1: %empty */ break; - case 115: /* else: KW_ELSIF PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock else */ -#line 959 "perly.y" - { parser->copline = (line_t)(ps[-5].val.ival); + case 118: /* else: KW_ELSIF clause_mexpr mblock else */ +#line 925 "perly.y" + { parser->copline = (line_t)(ps[-3].val.ival); (yyval.opval) = newCONDOP(0, - newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)), + newSTATEOP(OPf_SPECIAL,NULL,(ps[-2].val.opval)), op_scope((ps[-1].val.opval)), (ps[0].val.opval)); PL_hints |= HINT_BLOCK_SCOPE; } break; - case 117: /* cont: KW_CONTINUE block */ -#line 971 "perly.y" + case 120: /* cont: KW_CONTINUE block */ +#line 937 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 118: /* finally: %empty */ -#line 976 "perly.y" + case 121: /* finally: %empty */ +#line 942 "perly.y" { (yyval.opval) = NULL; } break; - case 119: /* finally: KW_FINALLY block */ -#line 978 "perly.y" + case 122: /* finally: KW_FINALLY block */ +#line 944 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 120: /* mintro: %empty */ -#line 983 "perly.y" + case 123: /* mintro: %empty */ +#line 949 "perly.y" { (yyval.ival) = (PL_min_intro_pending && PL_max_intro_pending >= PL_min_intro_pending); intro_my(); } break; - case 123: /* texpr: %empty */ -#line 995 "perly.y" + case 126: /* texpr: %empty */ +#line 961 "perly.y" { YYSTYPE tmplval; (void)scan_num("1", &tmplval); (yyval.opval) = tmplval.opval; } break; - case 125: /* iexpr: expr */ -#line 1003 "perly.y" + case 128: /* iexpr: expr */ +#line 969 "perly.y" { (yyval.opval) = invert(scalar((ps[0].val.opval))); } break; - case 126: /* mexpr: expr */ -#line 1008 "perly.y" + case 129: /* mexpr: expr */ +#line 974 "perly.y" { (yyval.opval) = (ps[0].val.opval); intro_my(); } break; - case 127: /* mnexpr: nexpr */ -#line 1012 "perly.y" + case 130: /* mnexpr: nexpr */ +#line 978 "perly.y" { (yyval.opval) = (ps[0].val.opval); intro_my(); } break; - case 128: /* formname: BAREWORD */ -#line 1015 "perly.y" + case 131: /* formname: BAREWORD */ +#line 981 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 130: /* startsub: %empty */ -#line 1020 "perly.y" + case 133: /* startsub: %empty */ +#line 986 "perly.y" { (yyval.ival) = start_subparse(FALSE, 0); SAVEFREESV(PL_compcv); } break; - case 131: /* startanonsub: %empty */ -#line 1026 "perly.y" + case 134: /* startanonsub: %empty */ +#line 992 "perly.y" { (yyval.ival) = start_subparse(FALSE, CVf_ANON); SAVEFREESV(PL_compcv); } break; - case 132: /* startanonmethod: %empty */ -#line 1031 "perly.y" + case 135: /* startanonmethod: %empty */ +#line 997 "perly.y" { (yyval.ival) = start_subparse(FALSE, CVf_ANON|CVf_IsMETHOD); SAVEFREESV(PL_compcv); } break; - case 133: /* startformsub: %empty */ -#line 1036 "perly.y" + case 136: /* startformsub: %empty */ +#line 1002 "perly.y" { (yyval.ival) = start_subparse(TRUE, 0); SAVEFREESV(PL_compcv); } break; - case 139: /* subattrlist: COLONATTR THING */ -#line 1055 "perly.y" + case 142: /* subattrlist: COLONATTR THING */ +#line 1021 "perly.y" { OP *attrlist = (ps[0].val.opval); if(attrlist && !PL_parser->sig_seen) @@ -904,50 +893,50 @@ case 2: /* @1: %empty */ break; - case 140: /* subattrlist: COLONATTR */ -#line 1062 "perly.y" + case 143: /* subattrlist: COLONATTR */ +#line 1028 "perly.y" { (yyval.opval) = NULL; } break; - case 141: /* attrlist: COLONATTR THING */ -#line 1067 "perly.y" + case 144: /* attrlist: COLONATTR THING */ +#line 1033 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 142: /* attrlist: COLONATTR */ -#line 1069 "perly.y" + case 145: /* attrlist: COLONATTR */ +#line 1035 "perly.y" { (yyval.opval) = NULL; } break; - case 145: /* sigvar: %empty */ -#line 1084 "perly.y" + case 148: /* sigvar: %empty */ +#line 1050 "perly.y" { parser->in_my = 0; (yyval.ival) = 0; } break; - case 146: /* sigvar: PRIVATEREF */ -#line 1086 "perly.y" + case 149: /* sigvar: PRIVATEREF */ +#line 1052 "perly.y" { parser->in_my = 0; (yyval.ival) = (ps[0].val.opval)->op_targ; op_free((ps[0].val.opval)); } break; - case 147: /* sigslurpsigil: PERLY_SNAIL */ -#line 1091 "perly.y" + case 150: /* sigslurpsigil: PERLY_SNAIL */ +#line 1057 "perly.y" { (yyval.ival) = '@'; } break; - case 148: /* sigslurpsigil: PERLY_PERCENT_SIGN */ -#line 1093 "perly.y" + case 151: /* sigslurpsigil: PERLY_PERCENT_SIGN */ +#line 1059 "perly.y" { (yyval.ival) = '%'; } break; - case 149: /* sigslurpelem: sigslurpsigil sigvar */ -#line 1097 "perly.y" + case 152: /* sigslurpelem: sigslurpsigil sigvar */ +#line 1063 "perly.y" { subsignature_append_slurpy((ps[-1].val.ival), (ps[0].val.ival)); (yyval.opval) = NULL; @@ -955,36 +944,36 @@ case 2: /* @1: %empty */ break; - case 150: /* sigslurpelem: sigslurpsigil sigvar ASSIGNOP */ -#line 1102 "perly.y" + case 153: /* sigslurpelem: sigslurpsigil sigvar ASSIGNOP */ +#line 1068 "perly.y" { yyerror("A slurpy parameter may not have a default value"); } break; - case 151: /* sigslurpelem: sigslurpsigil sigvar ASSIGNOP term */ -#line 1106 "perly.y" + case 154: /* sigslurpelem: sigslurpsigil sigvar ASSIGNOP term */ +#line 1072 "perly.y" { yyerror("A slurpy parameter may not have a default value"); } break; - case 152: /* optcolon: %empty */ -#line 1112 "perly.y" + case 155: /* optcolon: %empty */ +#line 1078 "perly.y" { (yyval.ival) = 0; } break; - case 153: /* optcolon: PERLY_COLON */ -#line 1114 "perly.y" + case 156: /* optcolon: PERLY_COLON */ +#line 1080 "perly.y" { (yyval.ival) = ':'; } break; - case 154: /* sigscalarelem: optcolon PERLY_DOLLAR sigvar */ -#line 1120 "perly.y" + case 157: /* sigscalarelem: optcolon PERLY_DOLLAR sigvar */ +#line 1086 "perly.y" { if((ps[-2].val.ival)) { PADNAME *pn = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.ival)]; @@ -997,8 +986,8 @@ case 2: /* @1: %empty */ break; - case 155: /* sigscalarelem: optcolon PERLY_DOLLAR sigvar ASSIGNOP optsigscalardefault */ -#line 1130 "perly.y" + case 158: /* sigscalarelem: optcolon PERLY_DOLLAR sigvar ASSIGNOP optsigscalardefault */ +#line 1096 "perly.y" { if((ps[-4].val.ival)) { PADNAME *pn = PadnamelistARRAY(PL_comppad_name)[(ps[-2].val.ival)]; @@ -1011,32 +1000,32 @@ case 2: /* @1: %empty */ break; - case 156: /* optsigscalardefault: %empty */ -#line 1143 "perly.y" + case 159: /* optsigscalardefault: %empty */ +#line 1109 "perly.y" { (yyval.opval) = newOP(OP_NULL, 0); } break; - case 158: /* sigelem: sigscalarelem */ -#line 1150 "perly.y" + case 161: /* sigelem: sigscalarelem */ +#line 1116 "perly.y" { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; - case 159: /* sigelem: sigslurpelem */ -#line 1152 "perly.y" + case 162: /* sigelem: sigslurpelem */ +#line 1118 "perly.y" { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; - case 167: /* subsignature: PERLY_PAREN_OPEN subsigguts PERLY_PAREN_CLOSE */ -#line 1178 "perly.y" + case 170: /* subsignature: PERLY_PAREN_OPEN subsigguts PERLY_PAREN_CLOSE */ +#line 1144 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 168: /* $@20: %empty */ -#line 1181 "perly.y" + case 171: /* $@19: %empty */ +#line 1147 "perly.y" { ENTER; subsignature_start(); @@ -1045,8 +1034,8 @@ case 2: /* @1: %empty */ break; - case 169: /* subsigguts: $@20 optsiglist */ -#line 1187 "perly.y" + case 172: /* subsigguts: $@19 optsiglist */ +#line 1153 "perly.y" { if (!FEATURE_SIGNATURES_IS_ENABLED && !CvIsMETHOD(PL_compcv)) croak("Experimental " @@ -1073,14 +1062,14 @@ case 2: /* @1: %empty */ break; - case 171: /* optsubbody: PERLY_SEMICOLON */ -#line 1215 "perly.y" + case 174: /* optsubbody: PERLY_SEMICOLON */ +#line 1181 "perly.y" { (yyval.opval) = NULL; } break; - case 172: /* subbody: remember PERLY_BRACE_OPEN stmtseq PERLY_BRACE_CLOSE */ -#line 1221 "perly.y" + case 175: /* subbody: remember PERLY_BRACE_OPEN stmtseq PERLY_BRACE_CLOSE */ +#line 1187 "perly.y" { if (parser->copline > (line_t)(ps[-2].val.ival)) parser->copline = (line_t)(ps[-2].val.ival); @@ -1089,20 +1078,20 @@ case 2: /* @1: %empty */ break; - case 174: /* optsigsubbody: PERLY_SEMICOLON */ -#line 1233 "perly.y" + case 177: /* optsigsubbody: PERLY_SEMICOLON */ +#line 1199 "perly.y" { (yyval.opval) = NULL; } break; - case 175: /* $@21: %empty */ -#line 1238 "perly.y" + case 178: /* $@20: %empty */ +#line 1204 "perly.y" { PL_parser->sig_seen = FALSE; } break; - case 176: /* sigsubbody: remember optsubsignature PERLY_BRACE_OPEN $@21 stmtseq PERLY_BRACE_CLOSE */ -#line 1240 "perly.y" + case 179: /* sigsubbody: remember optsubsignature PERLY_BRACE_OPEN $@20 stmtseq PERLY_BRACE_CLOSE */ +#line 1206 "perly.y" { if (parser->copline > (line_t)(ps[-3].val.ival)) parser->copline = (line_t)(ps[-3].val.ival); @@ -1112,38 +1101,38 @@ case 2: /* @1: %empty */ break; - case 177: /* expr: expr ANDOP expr */ -#line 1251 "perly.y" + case 180: /* expr: expr ANDOP expr */ +#line 1217 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 178: /* expr: expr PLUGIN_LOGICAL_AND_LOW_OP expr */ -#line 1253 "perly.y" + case 181: /* expr: expr PLUGIN_LOGICAL_AND_LOW_OP expr */ +#line 1219 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 179: /* expr: expr OROP expr */ -#line 1255 "perly.y" + case 182: /* expr: expr OROP expr */ +#line 1221 "perly.y" { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 180: /* expr: expr PLUGIN_LOGICAL_OR_LOW_OP expr */ -#line 1257 "perly.y" + case 183: /* expr: expr PLUGIN_LOGICAL_OR_LOW_OP expr */ +#line 1223 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 182: /* listexpr: listexpr PERLY_COMMA */ -#line 1263 "perly.y" + case 185: /* listexpr: listexpr PERLY_COMMA */ +#line 1229 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 183: /* listexpr: listexpr PERLY_COMMA term */ -#line 1265 "perly.y" + case 186: /* listexpr: listexpr PERLY_COMMA term */ +#line 1231 "perly.y" { OP* term = (ps[0].val.opval); (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term); @@ -1151,32 +1140,32 @@ case 2: /* @1: %empty */ break; - case 185: /* listop: LSTOP indirob listexpr */ -#line 1274 "perly.y" + case 188: /* listop: LSTOP indirob listexpr */ +#line 1240 "perly.y" { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) ); } break; - case 186: /* listop: BLKLSTOP block listexpr */ -#line 1278 "perly.y" + case 189: /* listop: BLKLSTOP block listexpr */ +#line 1244 "perly.y" { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newUNOP(OP_NULL, 0, op_scope((ps[-1].val.opval))), (ps[0].val.opval)) ); } break; - case 187: /* listop: FUNC PERLY_PAREN_OPEN indirob expr PERLY_PAREN_CLOSE */ -#line 1282 "perly.y" + case 190: /* listop: FUNC PERLY_PAREN_OPEN indirob expr PERLY_PAREN_CLOSE */ +#line 1248 "perly.y" { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) ); } break; - case 188: /* listop: term ARROW methodname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1286 "perly.y" + case 191: /* listop: term ARROW methodname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1252 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)), @@ -1185,8 +1174,8 @@ case 2: /* @1: %empty */ break; - case 189: /* listop: term ARROW methodname */ -#line 1292 "perly.y" + case 192: /* listop: term ARROW methodname */ +#line 1258 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, scalar((ps[-2].val.opval)), newMETHOP(OP_METHOD, 0, (ps[0].val.opval)))); @@ -1194,8 +1183,8 @@ case 2: /* @1: %empty */ break; - case 190: /* listop: term ARROW PERLY_AMPERSAND subname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1297 "perly.y" + case 193: /* listop: term ARROW PERLY_AMPERSAND subname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1263 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar((ps[-6].val.opval)), (ps[-1].val.opval)), @@ -1204,8 +1193,8 @@ case 2: /* @1: %empty */ break; - case 191: /* listop: term ARROW PERLY_AMPERSAND subname */ -#line 1303 "perly.y" + case 194: /* listop: term ARROW PERLY_AMPERSAND subname */ +#line 1269 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, scalar((ps[-3].val.opval)), @@ -1214,8 +1203,8 @@ case 2: /* @1: %empty */ break; - case 192: /* listop: METHCALL0 indirob optlistexpr */ -#line 1309 "perly.y" + case 195: /* listop: METHCALL0 indirob optlistexpr */ +#line 1275 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), @@ -1224,8 +1213,8 @@ case 2: /* @1: %empty */ break; - case 193: /* listop: METHCALL indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1315 "perly.y" + case 196: /* listop: METHCALL indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1281 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)), @@ -1234,26 +1223,26 @@ case 2: /* @1: %empty */ break; - case 194: /* listop: LSTOP optlistexpr */ -#line 1321 "perly.y" + case 197: /* listop: LSTOP optlistexpr */ +#line 1287 "perly.y" { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 195: /* listop: FUNC PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1323 "perly.y" + case 198: /* listop: FUNC PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1289 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 196: /* listop: FUNC SUBLEXSTART optexpr SUBLEXEND */ -#line 1325 "perly.y" + case 199: /* listop: FUNC SUBLEXSTART optexpr SUBLEXEND */ +#line 1291 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 197: /* @22: %empty */ -#line 1327 "perly.y" + case 200: /* @21: %empty */ +#line 1293 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); /* prevent double op_free() if the following fails to parse */ @@ -1262,8 +1251,8 @@ case 2: /* @1: %empty */ break; - case 198: /* listop: LSTOPSUB startanonsub block @22 optlistexpr */ -#line 1333 "perly.y" + case 201: /* listop: LSTOPSUB startanonsub block @21 optlistexpr */ +#line 1299 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval))); @@ -1271,21 +1260,21 @@ case 2: /* @1: %empty */ break; - case 201: /* subscripted: gelem PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1348 "perly.y" + case 204: /* subscripted: gelem PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1314 "perly.y" { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } break; - case 202: /* subscripted: scalar PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1350 "perly.y" + case 205: /* subscripted: scalar PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1316 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); } break; - case 203: /* subscripted: term ARROW PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1353 "perly.y" + case 206: /* subscripted: term ARROW PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1319 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-4].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1293,8 +1282,8 @@ case 2: /* @1: %empty */ break; - case 204: /* subscripted: subscripted PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1358 "perly.y" + case 207: /* subscripted: subscripted PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1324 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-3].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1302,31 +1291,31 @@ case 2: /* @1: %empty */ break; - case 205: /* subscripted: scalar PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1363 "perly.y" + case 208: /* subscripted: scalar PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1329 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); } break; - case 206: /* subscripted: term ARROW PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1366 "perly.y" + case 209: /* subscripted: term ARROW PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1332 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } break; - case 207: /* subscripted: subscripted PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1370 "perly.y" + case 210: /* subscripted: subscripted PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1336 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } break; - case 208: /* subscripted: term ARROW PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1374 "perly.y" + case 211: /* subscripted: term ARROW PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1340 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-3].val.opval)))); if (parser->expect == XBLOCK) @@ -1335,8 +1324,8 @@ case 2: /* @1: %empty */ break; - case 209: /* subscripted: term ARROW PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1380 "perly.y" + case 212: /* subscripted: term ARROW PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1346 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-4].val.opval))))); @@ -1346,8 +1335,8 @@ case 2: /* @1: %empty */ break; - case 210: /* subscripted: subscripted PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1388 "perly.y" + case 213: /* subscripted: subscripted PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1354 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-3].val.opval))))); @@ -1357,8 +1346,8 @@ case 2: /* @1: %empty */ break; - case 211: /* subscripted: subscripted PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1395 "perly.y" + case 214: /* subscripted: subscripted PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1361 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-2].val.opval)))); if (parser->expect == XBLOCK) @@ -1367,56 +1356,56 @@ case 2: /* @1: %empty */ break; - case 212: /* subscripted: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1401 "perly.y" + case 215: /* subscripted: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1367 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } break; - case 213: /* subscripted: QWLIST PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1403 "perly.y" + case 216: /* subscripted: QWLIST PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1369 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } break; - case 214: /* subscripted: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1405 "perly.y" + case 217: /* subscripted: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1371 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); } break; - case 215: /* termbinop: term PLUGIN_HIGH_OP term */ -#line 1410 "perly.y" + case 218: /* termbinop: term PLUGIN_HIGH_OP term */ +#line 1376 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 216: /* termbinop: term ASSIGNOP term */ -#line 1412 "perly.y" + case 219: /* termbinop: term ASSIGNOP term */ +#line 1378 "perly.y" { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } break; - case 217: /* termbinop: term PLUGIN_ASSIGN_OP term */ -#line 1414 "perly.y" + case 220: /* termbinop: term PLUGIN_ASSIGN_OP term */ +#line 1380 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 218: /* termbinop: term POWOP term */ -#line 1416 "perly.y" + case 221: /* termbinop: term POWOP term */ +#line 1382 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 219: /* termbinop: term PLUGIN_POW_OP term */ -#line 1418 "perly.y" + case 222: /* termbinop: term PLUGIN_POW_OP term */ +#line 1384 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 220: /* termbinop: term MULOP term */ -#line 1420 "perly.y" + case 223: /* termbinop: term MULOP term */ +#line 1386 "perly.y" { if ((ps[-1].val.ival) != OP_REPEAT) scalar((ps[-2].val.opval)); (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval))); @@ -1424,220 +1413,220 @@ case 2: /* @1: %empty */ break; - case 221: /* termbinop: term PLUGIN_MUL_OP term */ -#line 1425 "perly.y" + case 224: /* termbinop: term PLUGIN_MUL_OP term */ +#line 1391 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 222: /* termbinop: term ADDOP term */ -#line 1427 "perly.y" + case 225: /* termbinop: term ADDOP term */ +#line 1393 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 223: /* termbinop: term PLUGIN_ADD_OP term */ -#line 1429 "perly.y" + case 226: /* termbinop: term PLUGIN_ADD_OP term */ +#line 1395 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 224: /* termbinop: term SHIFTOP term */ -#line 1431 "perly.y" + case 227: /* termbinop: term SHIFTOP term */ +#line 1397 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 225: /* termbinop: termrelop */ -#line 1433 "perly.y" + case 228: /* termbinop: termrelop */ +#line 1399 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 226: /* termbinop: termeqop */ -#line 1435 "perly.y" + case 229: /* termbinop: termeqop */ +#line 1401 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 227: /* termbinop: term BITANDOP term */ -#line 1437 "perly.y" + case 230: /* termbinop: term BITANDOP term */ +#line 1403 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 228: /* termbinop: term BITOROP term */ -#line 1439 "perly.y" + case 231: /* termbinop: term BITOROP term */ +#line 1405 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 229: /* termbinop: term DOTDOT term */ -#line 1441 "perly.y" + case 232: /* termbinop: term DOTDOT term */ +#line 1407 "perly.y" { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 230: /* termbinop: term ANDAND term */ -#line 1443 "perly.y" + case 233: /* termbinop: term ANDAND term */ +#line 1409 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 231: /* termbinop: term PLUGIN_LOGICAL_AND_OP term */ -#line 1445 "perly.y" + case 234: /* termbinop: term PLUGIN_LOGICAL_AND_OP term */ +#line 1411 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 232: /* termbinop: term OROR term */ -#line 1447 "perly.y" + case 235: /* termbinop: term OROR term */ +#line 1413 "perly.y" { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 233: /* termbinop: term PLUGIN_LOGICAL_OR_OP term */ -#line 1449 "perly.y" + case 236: /* termbinop: term PLUGIN_LOGICAL_OR_OP term */ +#line 1415 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 234: /* termbinop: term DORDOR term */ -#line 1451 "perly.y" + case 237: /* termbinop: term DORDOR term */ +#line 1417 "perly.y" { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 235: /* termbinop: term MATCHOP term */ -#line 1453 "perly.y" + case 238: /* termbinop: term MATCHOP term */ +#line 1419 "perly.y" { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 236: /* termbinop: term PLUGIN_LOW_OP term */ -#line 1455 "perly.y" + case 239: /* termbinop: term PLUGIN_LOW_OP term */ +#line 1421 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 237: /* termrelop: relopchain */ -#line 1459 "perly.y" + case 240: /* termrelop: relopchain */ +#line 1425 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; - case 238: /* termrelop: term NCRELOP term */ -#line 1461 "perly.y" + case 241: /* termrelop: term NCRELOP term */ +#line 1427 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 239: /* termrelop: termrelop NCRELOP */ -#line 1463 "perly.y" + case 242: /* termrelop: termrelop NCRELOP */ +#line 1429 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 240: /* termrelop: termrelop CHRELOP */ -#line 1465 "perly.y" + case 243: /* termrelop: termrelop CHRELOP */ +#line 1431 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 241: /* termrelop: term PLUGIN_REL_OP term */ -#line 1467 "perly.y" + case 244: /* termrelop: term PLUGIN_REL_OP term */ +#line 1433 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 242: /* relopchain: term CHRELOP term */ -#line 1471 "perly.y" + case 245: /* relopchain: term CHRELOP term */ +#line 1437 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 243: /* relopchain: relopchain CHRELOP term */ -#line 1473 "perly.y" + case 246: /* relopchain: relopchain CHRELOP term */ +#line 1439 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 244: /* termeqop: eqopchain */ -#line 1477 "perly.y" + case 247: /* termeqop: eqopchain */ +#line 1443 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; - case 245: /* termeqop: term NCEQOP term */ -#line 1479 "perly.y" + case 248: /* termeqop: term NCEQOP term */ +#line 1445 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 246: /* termeqop: termeqop NCEQOP */ -#line 1481 "perly.y" + case 249: /* termeqop: termeqop NCEQOP */ +#line 1447 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 247: /* termeqop: termeqop CHEQOP */ -#line 1483 "perly.y" + case 250: /* termeqop: termeqop CHEQOP */ +#line 1449 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 248: /* eqopchain: term CHEQOP term */ -#line 1487 "perly.y" + case 251: /* eqopchain: term CHEQOP term */ +#line 1453 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 249: /* eqopchain: eqopchain CHEQOP term */ -#line 1489 "perly.y" + case 252: /* eqopchain: eqopchain CHEQOP term */ +#line 1455 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 250: /* termunop: PERLY_MINUS term */ -#line 1494 "perly.y" + case 253: /* termunop: PERLY_MINUS term */ +#line 1460 "perly.y" { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } break; - case 251: /* termunop: PERLY_PLUS term */ -#line 1496 "perly.y" + case 254: /* termunop: PERLY_PLUS term */ +#line 1462 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 252: /* termunop: PERLY_EXCLAMATION_MARK term */ -#line 1499 "perly.y" + case 255: /* termunop: PERLY_EXCLAMATION_MARK term */ +#line 1465 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 253: /* termunop: PERLY_TILDE term */ -#line 1501 "perly.y" + case 256: /* termunop: PERLY_TILDE term */ +#line 1467 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } break; - case 254: /* termunop: term POSTINC */ -#line 1503 "perly.y" + case 257: /* termunop: term POSTINC */ +#line 1469 "perly.y" { (yyval.opval) = newUNOP(OP_POSTINC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } break; - case 255: /* termunop: term POSTDEC */ -#line 1506 "perly.y" + case 258: /* termunop: term POSTDEC */ +#line 1472 "perly.y" { (yyval.opval) = newUNOP(OP_POSTDEC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} break; - case 256: /* termunop: term POSTJOIN */ -#line 1509 "perly.y" + case 259: /* termunop: term POSTJOIN */ +#line 1475 "perly.y" { (yyval.opval) = op_convert_list(OP_JOIN, 0, op_append_elem( OP_LIST, @@ -1651,60 +1640,60 @@ case 2: /* @1: %empty */ break; - case 257: /* termunop: PREINC term */ -#line 1520 "perly.y" + case 260: /* termunop: PREINC term */ +#line 1486 "perly.y" { (yyval.opval) = newUNOP(OP_PREINC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } break; - case 258: /* termunop: PREDEC term */ -#line 1523 "perly.y" + case 261: /* termunop: PREDEC term */ +#line 1489 "perly.y" { (yyval.opval) = newUNOP(OP_PREDEC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } break; - case 259: /* anonymous: PERLY_BRACKET_OPEN optexpr PERLY_BRACKET_CLOSE */ -#line 1531 "perly.y" + case 262: /* anonymous: PERLY_BRACKET_OPEN optexpr PERLY_BRACKET_CLOSE */ +#line 1497 "perly.y" { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } break; - case 260: /* anonymous: HASHBRACK optexpr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1533 "perly.y" + case 263: /* anonymous: HASHBRACK optexpr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1499 "perly.y" { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } break; - case 261: /* anonymous: KW_SUB_anon startanonsub proto subattrlist subbody */ -#line 1535 "perly.y" + case 264: /* anonymous: KW_SUB_anon startanonsub proto subattrlist subbody */ +#line 1501 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); } break; - case 262: /* anonymous: KW_SUB_anon startanonsub proto subattrlist */ -#line 1538 "perly.y" + case 265: /* anonymous: KW_SUB_anon startanonsub proto subattrlist */ +#line 1504 "perly.y" { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } break; - case 263: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist sigsubbody */ -#line 1540 "perly.y" + case 266: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist sigsubbody */ +#line 1506 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); } break; - case 264: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist */ -#line 1543 "perly.y" + case 267: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist */ +#line 1509 "perly.y" { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } break; - case 265: /* anonymous: KW_METHOD_anon startanonmethod subattrlist sigsubbody */ -#line 1545 "perly.y" + case 268: /* anonymous: KW_METHOD_anon startanonmethod subattrlist sigsubbody */ +#line 1511 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); @@ -1712,104 +1701,104 @@ case 2: /* @1: %empty */ break; - case 266: /* anonymous: KW_METHOD_anon startanonmethod subattrlist */ -#line 1550 "perly.y" + case 269: /* anonymous: KW_METHOD_anon startanonmethod subattrlist */ +#line 1516 "perly.y" { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } break; - case 267: /* termdo: KW_DO term */ -#line 1555 "perly.y" + case 270: /* termdo: KW_DO term */ +#line 1521 "perly.y" { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} break; - case 268: /* termdo: KW_DO block */ -#line 1557 "perly.y" + case 271: /* termdo: KW_DO block */ +#line 1523 "perly.y" { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} break; - case 273: /* term: term PERLY_QUESTION_MARK term PERLY_COLON term */ -#line 1565 "perly.y" + case 276: /* term: term PERLY_QUESTION_MARK term PERLY_COLON term */ +#line 1531 "perly.y" { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 274: /* term: REFGEN term */ -#line 1567 "perly.y" + case 277: /* term: REFGEN term */ +#line 1533 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } break; - case 275: /* term: myattrterm */ -#line 1569 "perly.y" + case 278: /* term: myattrterm */ +#line 1535 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 276: /* term: KW_LOCAL term */ -#line 1571 "perly.y" + case 279: /* term: KW_LOCAL term */ +#line 1537 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),0); } break; - case 277: /* term: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1573 "perly.y" + case 280: /* term: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1539 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 278: /* term: QWLIST */ -#line 1575 "perly.y" + case 281: /* term: QWLIST */ +#line 1541 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 279: /* term: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1577 "perly.y" + case 282: /* term: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1543 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 280: /* term: scalar */ -#line 1579 "perly.y" + case 283: /* term: scalar */ +#line 1545 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 281: /* term: star */ -#line 1581 "perly.y" + case 284: /* term: star */ +#line 1547 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 282: /* term: hsh */ -#line 1583 "perly.y" + case 285: /* term: hsh */ +#line 1549 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 283: /* term: ary */ -#line 1585 "perly.y" + case 286: /* term: ary */ +#line 1551 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 284: /* term: arylen */ -#line 1587 "perly.y" + case 287: /* term: arylen */ +#line 1553 "perly.y" { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} break; - case 285: /* term: subscripted */ -#line 1589 "perly.y" + case 288: /* term: subscripted */ +#line 1555 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 286: /* term: sliceme PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1591 "perly.y" + case 289: /* term: sliceme PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1557 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1822,8 +1811,8 @@ case 2: /* @1: %empty */ break; - case 287: /* term: kvslice PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1601 "perly.y" + case 290: /* term: kvslice PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1567 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1836,8 +1825,8 @@ case 2: /* @1: %empty */ break; - case 288: /* term: sliceme PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1611 "perly.y" + case 291: /* term: sliceme PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1577 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1850,8 +1839,8 @@ case 2: /* @1: %empty */ break; - case 289: /* term: kvslice PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1621 "perly.y" + case 292: /* term: kvslice PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1587 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1864,27 +1853,27 @@ case 2: /* @1: %empty */ break; - case 290: /* term: THING */ -#line 1631 "perly.y" + case 293: /* term: THING */ +#line 1597 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 291: /* term: amper */ -#line 1633 "perly.y" + case 294: /* term: amper */ +#line 1599 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; - case 292: /* term: amper PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1635 "perly.y" + case 295: /* term: amper PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1601 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; - case 293: /* term: amper PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1638 "perly.y" + case 296: /* term: amper PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1604 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); @@ -1892,153 +1881,153 @@ case 2: /* @1: %empty */ break; - case 294: /* term: NOAMP subname optlistexpr */ -#line 1643 "perly.y" + case 297: /* term: NOAMP subname optlistexpr */ +#line 1609 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 295: /* term: term ARROW PERLY_DOLLAR PERLY_STAR */ -#line 1647 "perly.y" + case 298: /* term: term ARROW PERLY_DOLLAR PERLY_STAR */ +#line 1613 "perly.y" { (yyval.opval) = newSVREF((ps[-3].val.opval)); } break; - case 296: /* term: term ARROW PERLY_SNAIL PERLY_STAR */ -#line 1649 "perly.y" + case 299: /* term: term ARROW PERLY_SNAIL PERLY_STAR */ +#line 1615 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 297: /* term: term ARROW PERLY_PERCENT_SIGN PERLY_STAR */ -#line 1651 "perly.y" + case 300: /* term: term ARROW PERLY_PERCENT_SIGN PERLY_STAR */ +#line 1617 "perly.y" { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; - case 298: /* term: term ARROW PERLY_AMPERSAND PERLY_STAR */ -#line 1653 "perly.y" + case 301: /* term: term ARROW PERLY_AMPERSAND PERLY_STAR */ +#line 1619 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; - case 299: /* term: term ARROW PERLY_STAR PERLY_STAR */ -#line 1656 "perly.y" + case 302: /* term: term ARROW PERLY_STAR PERLY_STAR */ +#line 1622 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; - case 300: /* term: LOOPEX */ -#line 1658 "perly.y" + case 303: /* term: LOOPEX */ +#line 1624 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } break; - case 301: /* term: LOOPEX term */ -#line 1661 "perly.y" + case 304: /* term: LOOPEX term */ +#line 1627 "perly.y" { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 302: /* term: NOTOP listexpr */ -#line 1663 "perly.y" + case 305: /* term: NOTOP listexpr */ +#line 1629 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 303: /* term: UNIOP */ -#line 1665 "perly.y" + case 306: /* term: UNIOP */ +#line 1631 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 304: /* term: UNIOP block */ -#line 1667 "perly.y" + case 307: /* term: UNIOP block */ +#line 1633 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 305: /* term: UNIOP term */ -#line 1669 "perly.y" + case 308: /* term: UNIOP term */ +#line 1635 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 306: /* term: KW_REQUIRE */ -#line 1671 "perly.y" + case 309: /* term: KW_REQUIRE */ +#line 1637 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; - case 307: /* term: KW_REQUIRE term */ -#line 1673 "perly.y" + case 310: /* term: KW_REQUIRE term */ +#line 1639 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; - case 308: /* term: UNIOPSUB */ -#line 1675 "perly.y" + case 311: /* term: UNIOPSUB */ +#line 1641 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 309: /* term: UNIOPSUB term */ -#line 1677 "perly.y" + case 312: /* term: UNIOPSUB term */ +#line 1643 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 310: /* term: FUNC0 */ -#line 1680 "perly.y" + case 313: /* term: FUNC0 */ +#line 1646 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 311: /* term: FUNC0 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1682 "perly.y" + case 314: /* term: FUNC0 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1648 "perly.y" { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; - case 312: /* term: FUNC0OP */ -#line 1684 "perly.y" + case 315: /* term: FUNC0OP */ +#line 1650 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 313: /* term: FUNC0OP PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1686 "perly.y" + case 316: /* term: FUNC0OP PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1652 "perly.y" { (yyval.opval) = (ps[-2].val.opval); } break; - case 314: /* term: FUNC0SUB */ -#line 1688 "perly.y" + case 317: /* term: FUNC0SUB */ +#line 1654 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 315: /* term: FUNC1 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1690 "perly.y" + case 318: /* term: FUNC1 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1656 "perly.y" { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) : newOP((ps[-2].val.ival), OPf_SPECIAL); } break; - case 316: /* term: FUNC1 PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1694 "perly.y" + case 319: /* term: FUNC1 PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1660 "perly.y" { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 317: /* @23: %empty */ -#line 1696 "perly.y" + case 320: /* @22: %empty */ +#line 1662 "perly.y" { if ( (ps[0].val.opval)->op_type != OP_TRANS && (ps[0].val.opval)->op_type != OP_TRANSR @@ -2052,68 +2041,68 @@ case 2: /* @1: %empty */ break; - case 318: /* term: PMFUNC @23 SUBLEXSTART listexpr optrepl SUBLEXEND */ -#line 1707 "perly.y" + case 321: /* term: PMFUNC @22 SUBLEXSTART listexpr optrepl SUBLEXEND */ +#line 1673 "perly.y" { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; - case 322: /* myattrterm: KW_MY myterm attrlist */ -#line 1716 "perly.y" + case 325: /* myattrterm: KW_MY myterm attrlist */ +#line 1682 "perly.y" { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } break; - case 323: /* myattrterm: KW_MY myterm */ -#line 1718 "perly.y" + case 326: /* myattrterm: KW_MY myterm */ +#line 1684 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),1); } break; - case 324: /* myattrterm: KW_MY REFGEN myterm attrlist */ -#line 1720 "perly.y" + case 327: /* myattrterm: KW_MY REFGEN myterm attrlist */ +#line 1686 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } break; - case 325: /* myattrterm: KW_MY REFGEN term */ -#line 1722 "perly.y" + case 328: /* myattrterm: KW_MY REFGEN term */ +#line 1688 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } break; - case 326: /* myterm: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1727 "perly.y" + case 329: /* myterm: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1693 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 327: /* myterm: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1729 "perly.y" + case 330: /* myterm: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1695 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 328: /* myterm: scalar */ -#line 1732 "perly.y" + case 331: /* myterm: scalar */ +#line 1698 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 329: /* myterm: hsh */ -#line 1734 "perly.y" + case 332: /* myterm: hsh */ +#line 1700 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 330: /* myterm: ary */ -#line 1736 "perly.y" + case 333: /* myterm: ary */ +#line 1702 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 331: /* fieldvar: scalar */ -#line 1741 "perly.y" + case 334: /* fieldvar: scalar */ +#line 1707 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2121,8 +2110,8 @@ case 2: /* @1: %empty */ break; - case 332: /* fieldvar: hsh */ -#line 1746 "perly.y" + case 335: /* fieldvar: hsh */ +#line 1712 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2130,8 +2119,8 @@ case 2: /* @1: %empty */ break; - case 333: /* fieldvar: ary */ -#line 1751 "perly.y" + case 336: /* fieldvar: ary */ +#line 1717 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2139,8 +2128,8 @@ case 2: /* @1: %empty */ break; - case 334: /* fielddecl: KW_FIELD fieldvar optattrlist */ -#line 1759 "perly.y" + case 337: /* fielddecl: KW_FIELD fieldvar optattrlist */ +#line 1725 "perly.y" { parser->in_my = 0; if((ps[0].val.opval)) @@ -2150,8 +2139,8 @@ case 2: /* @1: %empty */ break; - case 335: /* $@24: %empty */ -#line 1766 "perly.y" + case 338: /* $@23: %empty */ +#line 1732 "perly.y" { parser->in_my = 0; if((ps[-1].val.opval)) @@ -2162,8 +2151,8 @@ case 2: /* @1: %empty */ break; - case 336: /* fielddecl: KW_FIELD fieldvar optattrlist ASSIGNOP $@24 term */ -#line 1774 "perly.y" + case 339: /* fielddecl: KW_FIELD fieldvar optattrlist ASSIGNOP $@23 term */ +#line 1740 "perly.y" { class_set_field_defop((PADNAME *)(ps[-4].val.pval), (ps[-2].val.ival), (ps[0].val.opval)); LEAVE; @@ -2172,122 +2161,122 @@ case 2: /* @1: %empty */ break; - case 342: /* optrepl: PERLY_SLASH expr */ -#line 1794 "perly.y" + case 345: /* optrepl: PERLY_SLASH expr */ +#line 1760 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 343: /* my_scalar: scalar */ -#line 1800 "perly.y" + case 346: /* my_scalar: scalar */ +#line 1766 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; - case 344: /* list_of_scalars: list_of_scalars PERLY_COMMA */ -#line 1805 "perly.y" + case 347: /* list_of_scalars: list_of_scalars PERLY_COMMA */ +#line 1771 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 345: /* list_of_scalars: list_of_scalars PERLY_COMMA scalar */ -#line 1807 "perly.y" + case 348: /* list_of_scalars: list_of_scalars PERLY_COMMA scalar */ +#line 1773 "perly.y" { (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 347: /* my_list_of_scalars: list_of_scalars */ -#line 1814 "perly.y" + case 350: /* my_list_of_scalars: list_of_scalars */ +#line 1780 "perly.y" { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } break; - case 355: /* amper: PERLY_AMPERSAND indirob */ -#line 1831 "perly.y" + case 358: /* amper: PERLY_AMPERSAND indirob */ +#line 1797 "perly.y" { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 356: /* scalar: PERLY_DOLLAR indirob */ -#line 1835 "perly.y" + case 359: /* scalar: PERLY_DOLLAR indirob */ +#line 1801 "perly.y" { (yyval.opval) = newSVREF((ps[0].val.opval)); } break; - case 357: /* ary: PERLY_SNAIL indirob */ -#line 1839 "perly.y" + case 360: /* ary: PERLY_SNAIL indirob */ +#line 1805 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 358: /* hsh: PERLY_PERCENT_SIGN indirob */ -#line 1845 "perly.y" + case 361: /* hsh: PERLY_PERCENT_SIGN indirob */ +#line 1811 "perly.y" { (yyval.opval) = newHVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 359: /* arylen: DOLSHARP indirob */ -#line 1851 "perly.y" + case 362: /* arylen: DOLSHARP indirob */ +#line 1817 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); } break; - case 360: /* arylen: term ARROW DOLSHARP PERLY_STAR */ -#line 1853 "perly.y" + case 363: /* arylen: term ARROW DOLSHARP PERLY_STAR */ +#line 1819 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 361: /* star: PERLY_STAR indirob */ -#line 1857 "perly.y" + case 364: /* star: PERLY_STAR indirob */ +#line 1823 "perly.y" { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } break; - case 363: /* sliceme: term ARROW PERLY_SNAIL */ -#line 1862 "perly.y" + case 366: /* sliceme: term ARROW PERLY_SNAIL */ +#line 1828 "perly.y" { (yyval.opval) = newAVREF((ps[-2].val.opval)); } break; - case 365: /* kvslice: term ARROW PERLY_PERCENT_SIGN */ -#line 1867 "perly.y" + case 368: /* kvslice: term ARROW PERLY_PERCENT_SIGN */ +#line 1833 "perly.y" { (yyval.opval) = newHVREF((ps[-2].val.opval)); } break; - case 367: /* gelem: term ARROW PERLY_STAR */ -#line 1872 "perly.y" + case 370: /* gelem: term ARROW PERLY_STAR */ +#line 1838 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } break; - case 368: /* indirob: BAREWORD */ -#line 1877 "perly.y" + case 371: /* indirob: BAREWORD */ +#line 1843 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 369: /* indirob: scalar */ -#line 1879 "perly.y" + case 372: /* indirob: scalar */ +#line 1845 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 370: /* indirob: block */ -#line 1881 "perly.y" + case 373: /* indirob: block */ +#line 1847 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 371: /* indirob: PRIVATEREF */ -#line 1884 "perly.y" + case 374: /* indirob: PRIVATEREF */ +#line 1850 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; @@ -2299,6 +2288,6 @@ case 2: /* @1: %empty */ /* Generated from: - * 57cc742fa623ae44e0575b737db1c674688361cd405620798cf50de0d81cadfc perly.y + * 79b790bd3089e5926f207bbe6d99198f140aaaf5a5a4bd4a6318360abb98a430 perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.h b/perly.h index efc4cef4ba22..4e0985949f49 100644 --- a/perly.h +++ b/perly.h @@ -246,6 +246,6 @@ int yyparse (void); /* Generated from: - * 57cc742fa623ae44e0575b737db1c674688361cd405620798cf50de0d81cadfc perly.y + * 79b790bd3089e5926f207bbe6d99198f140aaaf5a5a4bd4a6318360abb98a430 perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.tab b/perly.tab index 72a65ffcbd3d..4b1bf05d5a24 100644 --- a/perly.tab +++ b/perly.tab @@ -159,127 +159,130 @@ enum yysymbol_kind_t YYSYMBOL_bare_statement_expression = 148, /* bare_statement_expression */ YYSYMBOL_bare_statement_field_declaration = 149, /* bare_statement_field_declaration */ YYSYMBOL_bare_statement_for = 150, /* bare_statement_for */ - YYSYMBOL_151_9 = 151, /* $@9 */ - YYSYMBOL_152_10 = 152, /* $@10 */ - YYSYMBOL_153_11 = 153, /* @11 */ - YYSYMBOL_bare_statement_format = 154, /* bare_statement_format */ - YYSYMBOL_bare_statement_given = 155, /* bare_statement_given */ - YYSYMBOL_bare_statement_if = 156, /* bare_statement_if */ - YYSYMBOL_bare_statement_null = 157, /* bare_statement_null */ - YYSYMBOL_bare_statement_package_declaration = 158, /* bare_statement_package_declaration */ - YYSYMBOL_bare_statement_package_definition = 159, /* bare_statement_package_definition */ - YYSYMBOL_160_12 = 160, /* $@12 */ - YYSYMBOL_bare_statement_phaser = 161, /* bare_statement_phaser */ - YYSYMBOL_162_13 = 162, /* $@13 */ - YYSYMBOL_bare_statement_sub_signature = 163, /* bare_statement_sub_signature */ - YYSYMBOL_164_14 = 164, /* $@14 */ - YYSYMBOL_bare_statement_sub_traditional = 165, /* bare_statement_sub_traditional */ - YYSYMBOL_166_15 = 166, /* $@15 */ - YYSYMBOL_bare_statement_try_catch = 167, /* bare_statement_try_catch */ - YYSYMBOL_168_16 = 168, /* $@16 */ - YYSYMBOL_bare_statement_unless = 169, /* bare_statement_unless */ - YYSYMBOL_bare_statement_until = 170, /* bare_statement_until */ - YYSYMBOL_bare_statement_utilize = 171, /* bare_statement_utilize */ - YYSYMBOL_172_17 = 172, /* $@17 */ - YYSYMBOL_bare_statement_when = 173, /* bare_statement_when */ - YYSYMBOL_bare_statement_while = 174, /* bare_statement_while */ - YYSYMBOL_bare_statement_yadayada = 175, /* bare_statement_yadayada */ - YYSYMBOL_sigsub_or_method_named = 176, /* sigsub_or_method_named */ - YYSYMBOL_block = 177, /* block */ - YYSYMBOL_empty = 178, /* empty */ - YYSYMBOL_formblock = 179, /* formblock */ - YYSYMBOL_remember = 180, /* remember */ - YYSYMBOL_mblock = 181, /* mblock */ - YYSYMBOL_mremember = 182, /* mremember */ - YYSYMBOL_catch_paren = 183, /* catch_paren */ - YYSYMBOL_184_18 = 184, /* $@18 */ - YYSYMBOL_185_19 = 185, /* $@19 */ - YYSYMBOL_stmtseq = 186, /* stmtseq */ - YYSYMBOL_formstmtseq = 187, /* formstmtseq */ - YYSYMBOL_fullstmt = 188, /* fullstmt */ - YYSYMBOL_labfullstmt = 189, /* labfullstmt */ - YYSYMBOL_barestmt = 190, /* barestmt */ - YYSYMBOL_formline = 191, /* formline */ - YYSYMBOL_formarg = 192, /* formarg */ - YYSYMBOL_condition = 193, /* condition */ - YYSYMBOL_sideff = 194, /* sideff */ - YYSYMBOL_else = 195, /* else */ - YYSYMBOL_cont = 196, /* cont */ - YYSYMBOL_finally = 197, /* finally */ - YYSYMBOL_mintro = 198, /* mintro */ - YYSYMBOL_nexpr = 199, /* nexpr */ - YYSYMBOL_texpr = 200, /* texpr */ - YYSYMBOL_iexpr = 201, /* iexpr */ - YYSYMBOL_mexpr = 202, /* mexpr */ - YYSYMBOL_mnexpr = 203, /* mnexpr */ - YYSYMBOL_formname = 204, /* formname */ - YYSYMBOL_startsub = 205, /* startsub */ - YYSYMBOL_startanonsub = 206, /* startanonsub */ - YYSYMBOL_startanonmethod = 207, /* startanonmethod */ - YYSYMBOL_startformsub = 208, /* startformsub */ - YYSYMBOL_subname = 209, /* subname */ - YYSYMBOL_proto = 210, /* proto */ - YYSYMBOL_subattrlist = 211, /* subattrlist */ - YYSYMBOL_attrlist = 212, /* attrlist */ - YYSYMBOL_optattrlist = 213, /* optattrlist */ - YYSYMBOL_sigvar = 214, /* sigvar */ - YYSYMBOL_sigslurpsigil = 215, /* sigslurpsigil */ - YYSYMBOL_sigslurpelem = 216, /* sigslurpelem */ - YYSYMBOL_optcolon = 217, /* optcolon */ - YYSYMBOL_sigscalarelem = 218, /* sigscalarelem */ - YYSYMBOL_optsigscalardefault = 219, /* optsigscalardefault */ - YYSYMBOL_sigelem = 220, /* sigelem */ - YYSYMBOL_siglist = 221, /* siglist */ - YYSYMBOL_optsiglist = 222, /* optsiglist */ - YYSYMBOL_optsubsignature = 223, /* optsubsignature */ - YYSYMBOL_subsignature = 224, /* subsignature */ - YYSYMBOL_subsigguts = 225, /* subsigguts */ - YYSYMBOL_226_20 = 226, /* $@20 */ - YYSYMBOL_optsubbody = 227, /* optsubbody */ - YYSYMBOL_subbody = 228, /* subbody */ - YYSYMBOL_optsigsubbody = 229, /* optsigsubbody */ - YYSYMBOL_sigsubbody = 230, /* sigsubbody */ - YYSYMBOL_231_21 = 231, /* $@21 */ - YYSYMBOL_expr = 232, /* expr */ - YYSYMBOL_listexpr = 233, /* listexpr */ - YYSYMBOL_listop = 234, /* listop */ - YYSYMBOL_235_22 = 235, /* @22 */ - YYSYMBOL_methodname = 236, /* methodname */ - YYSYMBOL_subscripted = 237, /* subscripted */ - YYSYMBOL_termbinop = 238, /* termbinop */ - YYSYMBOL_termrelop = 239, /* termrelop */ - YYSYMBOL_relopchain = 240, /* relopchain */ - YYSYMBOL_termeqop = 241, /* termeqop */ - YYSYMBOL_eqopchain = 242, /* eqopchain */ - YYSYMBOL_termunop = 243, /* termunop */ - YYSYMBOL_anonymous = 244, /* anonymous */ - YYSYMBOL_termdo = 245, /* termdo */ - YYSYMBOL_term = 246, /* term */ - YYSYMBOL_247_23 = 247, /* @23 */ - YYSYMBOL_myattrterm = 248, /* myattrterm */ - YYSYMBOL_myterm = 249, /* myterm */ - YYSYMBOL_fieldvar = 250, /* fieldvar */ - YYSYMBOL_fielddecl = 251, /* fielddecl */ - YYSYMBOL_252_24 = 252, /* $@24 */ - YYSYMBOL_optlistexpr = 253, /* optlistexpr */ - YYSYMBOL_optexpr = 254, /* optexpr */ - YYSYMBOL_optrepl = 255, /* optrepl */ - YYSYMBOL_my_scalar = 256, /* my_scalar */ - YYSYMBOL_list_of_scalars = 257, /* list_of_scalars */ - YYSYMBOL_my_list_of_scalars = 258, /* my_list_of_scalars */ - YYSYMBOL_my_var = 259, /* my_var */ - YYSYMBOL_refgen_topic = 260, /* refgen_topic */ - YYSYMBOL_my_refgen = 261, /* my_refgen */ - YYSYMBOL_amper = 262, /* amper */ - YYSYMBOL_scalar = 263, /* scalar */ - YYSYMBOL_ary = 264, /* ary */ - YYSYMBOL_hsh = 265, /* hsh */ - YYSYMBOL_arylen = 266, /* arylen */ - YYSYMBOL_star = 267, /* star */ - YYSYMBOL_sliceme = 268, /* sliceme */ - YYSYMBOL_kvslice = 269, /* kvslice */ - YYSYMBOL_gelem = 270, /* gelem */ - YYSYMBOL_indirob = 271 /* indirob */ + YYSYMBOL_bare_statement_for_control = 151, /* bare_statement_for_control */ + YYSYMBOL_152_9 = 152, /* $@9 */ + YYSYMBOL_153_10 = 153, /* $@10 */ + YYSYMBOL_bare_statement_for_over = 154, /* bare_statement_for_over */ + YYSYMBOL_bare_statement_format = 155, /* bare_statement_format */ + YYSYMBOL_bare_statement_given = 156, /* bare_statement_given */ + YYSYMBOL_bare_statement_if = 157, /* bare_statement_if */ + YYSYMBOL_bare_statement_null = 158, /* bare_statement_null */ + YYSYMBOL_bare_statement_package_declaration = 159, /* bare_statement_package_declaration */ + YYSYMBOL_bare_statement_package_definition = 160, /* bare_statement_package_definition */ + YYSYMBOL_161_11 = 161, /* $@11 */ + YYSYMBOL_bare_statement_phaser = 162, /* bare_statement_phaser */ + YYSYMBOL_163_12 = 163, /* $@12 */ + YYSYMBOL_bare_statement_sub_signature = 164, /* bare_statement_sub_signature */ + YYSYMBOL_165_13 = 165, /* $@13 */ + YYSYMBOL_bare_statement_sub_traditional = 166, /* bare_statement_sub_traditional */ + YYSYMBOL_167_14 = 167, /* $@14 */ + YYSYMBOL_bare_statement_try_catch = 168, /* bare_statement_try_catch */ + YYSYMBOL_169_15 = 169, /* $@15 */ + YYSYMBOL_bare_statement_unless = 170, /* bare_statement_unless */ + YYSYMBOL_bare_statement_until = 171, /* bare_statement_until */ + YYSYMBOL_bare_statement_utilize = 172, /* bare_statement_utilize */ + YYSYMBOL_173_16 = 173, /* $@16 */ + YYSYMBOL_bare_statement_when = 174, /* bare_statement_when */ + YYSYMBOL_bare_statement_while = 175, /* bare_statement_while */ + YYSYMBOL_bare_statement_yadayada = 176, /* bare_statement_yadayada */ + YYSYMBOL_clause_for_over_cursor = 177, /* clause_for_over_cursor */ + YYSYMBOL_clause_mexpr = 178, /* clause_mexpr */ + YYSYMBOL_sigsub_or_method_named = 179, /* sigsub_or_method_named */ + YYSYMBOL_block = 180, /* block */ + YYSYMBOL_empty = 181, /* empty */ + YYSYMBOL_formblock = 182, /* formblock */ + YYSYMBOL_remember = 183, /* remember */ + YYSYMBOL_mblock = 184, /* mblock */ + YYSYMBOL_mremember = 185, /* mremember */ + YYSYMBOL_catch_paren = 186, /* catch_paren */ + YYSYMBOL_187_17 = 187, /* $@17 */ + YYSYMBOL_188_18 = 188, /* $@18 */ + YYSYMBOL_stmtseq = 189, /* stmtseq */ + YYSYMBOL_formstmtseq = 190, /* formstmtseq */ + YYSYMBOL_fullstmt = 191, /* fullstmt */ + YYSYMBOL_labfullstmt = 192, /* labfullstmt */ + YYSYMBOL_barestmt = 193, /* barestmt */ + YYSYMBOL_formline = 194, /* formline */ + YYSYMBOL_formarg = 195, /* formarg */ + YYSYMBOL_condition = 196, /* condition */ + YYSYMBOL_sideff = 197, /* sideff */ + YYSYMBOL_else = 198, /* else */ + YYSYMBOL_cont = 199, /* cont */ + YYSYMBOL_finally = 200, /* finally */ + YYSYMBOL_mintro = 201, /* mintro */ + YYSYMBOL_nexpr = 202, /* nexpr */ + YYSYMBOL_texpr = 203, /* texpr */ + YYSYMBOL_iexpr = 204, /* iexpr */ + YYSYMBOL_mexpr = 205, /* mexpr */ + YYSYMBOL_mnexpr = 206, /* mnexpr */ + YYSYMBOL_formname = 207, /* formname */ + YYSYMBOL_startsub = 208, /* startsub */ + YYSYMBOL_startanonsub = 209, /* startanonsub */ + YYSYMBOL_startanonmethod = 210, /* startanonmethod */ + YYSYMBOL_startformsub = 211, /* startformsub */ + YYSYMBOL_subname = 212, /* subname */ + YYSYMBOL_proto = 213, /* proto */ + YYSYMBOL_subattrlist = 214, /* subattrlist */ + YYSYMBOL_attrlist = 215, /* attrlist */ + YYSYMBOL_optattrlist = 216, /* optattrlist */ + YYSYMBOL_sigvar = 217, /* sigvar */ + YYSYMBOL_sigslurpsigil = 218, /* sigslurpsigil */ + YYSYMBOL_sigslurpelem = 219, /* sigslurpelem */ + YYSYMBOL_optcolon = 220, /* optcolon */ + YYSYMBOL_sigscalarelem = 221, /* sigscalarelem */ + YYSYMBOL_optsigscalardefault = 222, /* optsigscalardefault */ + YYSYMBOL_sigelem = 223, /* sigelem */ + YYSYMBOL_siglist = 224, /* siglist */ + YYSYMBOL_optsiglist = 225, /* optsiglist */ + YYSYMBOL_optsubsignature = 226, /* optsubsignature */ + YYSYMBOL_subsignature = 227, /* subsignature */ + YYSYMBOL_subsigguts = 228, /* subsigguts */ + YYSYMBOL_229_19 = 229, /* $@19 */ + YYSYMBOL_optsubbody = 230, /* optsubbody */ + YYSYMBOL_subbody = 231, /* subbody */ + YYSYMBOL_optsigsubbody = 232, /* optsigsubbody */ + YYSYMBOL_sigsubbody = 233, /* sigsubbody */ + YYSYMBOL_234_20 = 234, /* $@20 */ + YYSYMBOL_expr = 235, /* expr */ + YYSYMBOL_listexpr = 236, /* listexpr */ + YYSYMBOL_listop = 237, /* listop */ + YYSYMBOL_238_21 = 238, /* @21 */ + YYSYMBOL_methodname = 239, /* methodname */ + YYSYMBOL_subscripted = 240, /* subscripted */ + YYSYMBOL_termbinop = 241, /* termbinop */ + YYSYMBOL_termrelop = 242, /* termrelop */ + YYSYMBOL_relopchain = 243, /* relopchain */ + YYSYMBOL_termeqop = 244, /* termeqop */ + YYSYMBOL_eqopchain = 245, /* eqopchain */ + YYSYMBOL_termunop = 246, /* termunop */ + YYSYMBOL_anonymous = 247, /* anonymous */ + YYSYMBOL_termdo = 248, /* termdo */ + YYSYMBOL_term = 249, /* term */ + YYSYMBOL_250_22 = 250, /* @22 */ + YYSYMBOL_myattrterm = 251, /* myattrterm */ + YYSYMBOL_myterm = 252, /* myterm */ + YYSYMBOL_fieldvar = 253, /* fieldvar */ + YYSYMBOL_fielddecl = 254, /* fielddecl */ + YYSYMBOL_255_23 = 255, /* $@23 */ + YYSYMBOL_optlistexpr = 256, /* optlistexpr */ + YYSYMBOL_optexpr = 257, /* optexpr */ + YYSYMBOL_optrepl = 258, /* optrepl */ + YYSYMBOL_my_scalar = 259, /* my_scalar */ + YYSYMBOL_list_of_scalars = 260, /* list_of_scalars */ + YYSYMBOL_my_list_of_scalars = 261, /* my_list_of_scalars */ + YYSYMBOL_my_var = 262, /* my_var */ + YYSYMBOL_refgen_topic = 263, /* refgen_topic */ + YYSYMBOL_my_refgen = 264, /* my_refgen */ + YYSYMBOL_amper = 265, /* amper */ + YYSYMBOL_scalar = 266, /* scalar */ + YYSYMBOL_ary = 267, /* ary */ + YYSYMBOL_hsh = 268, /* hsh */ + YYSYMBOL_arylen = 269, /* arylen */ + YYSYMBOL_star = 270, /* star */ + YYSYMBOL_sliceme = 271, /* sliceme */ + YYSYMBOL_kvslice = 272, /* kvslice */ + YYSYMBOL_gelem = 273, /* gelem */ + YYSYMBOL_indirob = 274 /* indirob */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -288,16 +291,16 @@ typedef enum yysymbol_kind_t yysymbol_kind_t; #define YYFINAL 16 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3753 +#define YYLAST 3720 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 133 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 139 +#define YYNNTS 142 /* YYNRULES -- Number of rules. */ -#define YYNRULES 371 +#define YYNRULES 374 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 702 +#define YYNSTATES 670 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 387 @@ -359,44 +362,44 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 188, 188, 187, 199, 198, 209, 208, 222, 221, - 235, 234, 248, 247, 258, 257, 270, 278, 300, 294, - 317, 325, 333, 340, 353, 358, 348, 379, 392, 411, - 427, 423, 452, 474, 488, 504, 517, 531, 539, 560, - 555, 575, 573, 610, 607, 640, 637, 666, 661, 683, - 697, 714, 712, 730, 742, 757, 766, 768, 773, 781, - 785, 792, 797, 804, 810, 814, 816, 813, 823, 824, - 834, 835, 844, 848, 852, 859, 876, 877, 878, 879, - 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, - 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, - 900, 904, 922, 923, 927, 931, 933, 935, 937, 939, - 941, 943, 946, 952, 953, 958, 969, 970, 975, 977, - 982, 989, 990, 994, 998, 1002, 1007, 1011, 1015, 1016, - 1019, 1025, 1030, 1035, 1041, 1042, 1047, 1048, 1053, 1054, - 1061, 1066, 1068, 1073, 1074, 1083, 1085, 1090, 1092, 1096, - 1101, 1105, 1111, 1113, 1119, 1129, 1142, 1144, 1149, 1151, - 1159, 1160, 1161, 1166, 1167, 1172, 1173, 1177, 1181, 1181, - 1214, 1215, 1220, 1232, 1233, 1238, 1237, 1250, 1252, 1254, - 1256, 1258, 1262, 1264, 1269, 1273, 1277, 1281, 1285, 1291, - 1296, 1302, 1308, 1314, 1320, 1322, 1324, 1327, 1326, 1340, - 1341, 1345, 1349, 1352, 1357, 1362, 1365, 1369, 1373, 1379, - 1387, 1394, 1400, 1402, 1404, 1409, 1411, 1413, 1415, 1417, - 1419, 1424, 1426, 1428, 1430, 1432, 1434, 1436, 1438, 1440, - 1442, 1444, 1446, 1448, 1450, 1452, 1454, 1458, 1460, 1462, - 1464, 1466, 1470, 1472, 1476, 1478, 1480, 1482, 1486, 1488, - 1493, 1495, 1498, 1500, 1502, 1505, 1508, 1519, 1522, 1530, - 1532, 1534, 1537, 1539, 1542, 1544, 1549, 1554, 1556, 1560, - 1561, 1562, 1563, 1564, 1566, 1568, 1570, 1572, 1574, 1576, - 1578, 1580, 1582, 1584, 1586, 1588, 1590, 1600, 1610, 1620, - 1630, 1632, 1634, 1637, 1642, 1646, 1648, 1650, 1652, 1655, - 1657, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676, - 1679, 1681, 1683, 1685, 1687, 1689, 1693, 1696, 1695, 1708, - 1709, 1710, 1715, 1717, 1719, 1721, 1726, 1728, 1731, 1733, - 1735, 1740, 1745, 1750, 1758, 1766, 1765, 1783, 1784, 1788, - 1789, 1793, 1794, 1799, 1804, 1806, 1810, 1813, 1817, 1818, - 1819, 1822, 1823, 1826, 1827, 1830, 1834, 1838, 1844, 1850, - 1852, 1856, 1860, 1861, 1865, 1866, 1870, 1871, 1876, 1878, - 1880, 1883 + 0, 192, 192, 191, 203, 202, 213, 212, 226, 225, + 239, 238, 252, 251, 262, 261, 274, 282, 304, 298, + 321, 329, 337, 344, 352, 353, 362, 367, 357, 391, + 401, 413, 429, 440, 452, 460, 481, 476, 496, 494, + 531, 528, 561, 558, 587, 582, 604, 616, 633, 631, + 649, 659, 674, 682, 686, 691, 702, 711, 722, 732, + 734, 739, 747, 751, 758, 763, 770, 776, 780, 782, + 779, 789, 790, 800, 801, 810, 814, 818, 825, 842, + 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, + 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, + 863, 864, 865, 866, 870, 888, 889, 893, 897, 899, + 901, 903, 905, 907, 909, 912, 918, 919, 924, 935, + 936, 941, 943, 948, 955, 956, 960, 964, 968, 973, + 977, 981, 982, 985, 991, 996, 1001, 1007, 1008, 1013, + 1014, 1019, 1020, 1027, 1032, 1034, 1039, 1040, 1049, 1051, + 1056, 1058, 1062, 1067, 1071, 1077, 1079, 1085, 1095, 1108, + 1110, 1115, 1117, 1125, 1126, 1127, 1132, 1133, 1138, 1139, + 1143, 1147, 1147, 1180, 1181, 1186, 1198, 1199, 1204, 1203, + 1216, 1218, 1220, 1222, 1224, 1228, 1230, 1235, 1239, 1243, + 1247, 1251, 1257, 1262, 1268, 1274, 1280, 1286, 1288, 1290, + 1293, 1292, 1306, 1307, 1311, 1315, 1318, 1323, 1328, 1331, + 1335, 1339, 1345, 1353, 1360, 1366, 1368, 1370, 1375, 1377, + 1379, 1381, 1383, 1385, 1390, 1392, 1394, 1396, 1398, 1400, + 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, + 1424, 1426, 1428, 1430, 1432, 1436, 1438, 1442, 1444, 1446, + 1448, 1452, 1454, 1459, 1461, 1464, 1466, 1468, 1471, 1474, + 1485, 1488, 1496, 1498, 1500, 1503, 1505, 1508, 1510, 1515, + 1520, 1522, 1526, 1527, 1528, 1529, 1530, 1532, 1534, 1536, + 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1554, 1556, + 1566, 1576, 1586, 1596, 1598, 1600, 1603, 1608, 1612, 1614, + 1616, 1618, 1621, 1623, 1626, 1628, 1630, 1632, 1634, 1636, + 1638, 1640, 1642, 1645, 1647, 1649, 1651, 1653, 1655, 1659, + 1662, 1661, 1674, 1675, 1676, 1681, 1683, 1685, 1687, 1692, + 1694, 1697, 1699, 1701, 1706, 1711, 1716, 1724, 1732, 1731, + 1749, 1750, 1754, 1755, 1759, 1760, 1765, 1770, 1772, 1776, + 1779, 1783, 1784, 1785, 1788, 1789, 1792, 1793, 1796, 1800, + 1804, 1810, 1816, 1818, 1822, 1826, 1827, 1831, 1832, 1836, + 1837, 1842, 1844, 1846, 1849 }; #endif @@ -443,34 +446,34 @@ static const char *const yytname[] = "bare_statement_block", "bare_statement_class_declaration", "bare_statement_class_definition", "$@8", "bare_statement_default", "bare_statement_defer", "bare_statement_expression", - "bare_statement_field_declaration", "bare_statement_for", "$@9", "$@10", - "@11", "bare_statement_format", "bare_statement_given", - "bare_statement_if", "bare_statement_null", - "bare_statement_package_declaration", - "bare_statement_package_definition", "$@12", "bare_statement_phaser", - "$@13", "bare_statement_sub_signature", "$@14", - "bare_statement_sub_traditional", "$@15", "bare_statement_try_catch", - "$@16", "bare_statement_unless", "bare_statement_until", - "bare_statement_utilize", "$@17", "bare_statement_when", + "bare_statement_field_declaration", "bare_statement_for", + "bare_statement_for_control", "$@9", "$@10", "bare_statement_for_over", + "bare_statement_format", "bare_statement_given", "bare_statement_if", + "bare_statement_null", "bare_statement_package_declaration", + "bare_statement_package_definition", "$@11", "bare_statement_phaser", + "$@12", "bare_statement_sub_signature", "$@13", + "bare_statement_sub_traditional", "$@14", "bare_statement_try_catch", + "$@15", "bare_statement_unless", "bare_statement_until", + "bare_statement_utilize", "$@16", "bare_statement_when", "bare_statement_while", "bare_statement_yadayada", - "sigsub_or_method_named", "block", "empty", "formblock", "remember", - "mblock", "mremember", "catch_paren", "$@18", "$@19", "stmtseq", - "formstmtseq", "fullstmt", "labfullstmt", "barestmt", "formline", - "formarg", "condition", "sideff", "else", "cont", "finally", "mintro", - "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "formname", "startsub", - "startanonsub", "startanonmethod", "startformsub", "subname", "proto", - "subattrlist", "attrlist", "optattrlist", "sigvar", "sigslurpsigil", - "sigslurpelem", "optcolon", "sigscalarelem", "optsigscalardefault", - "sigelem", "siglist", "optsiglist", "optsubsignature", "subsignature", - "subsigguts", "$@20", "optsubbody", "subbody", "optsigsubbody", - "sigsubbody", "$@21", "expr", "listexpr", "listop", "@22", "methodname", - "subscripted", "termbinop", "termrelop", "relopchain", "termeqop", - "eqopchain", "termunop", "anonymous", "termdo", "term", "@23", - "myattrterm", "myterm", "fieldvar", "fielddecl", "$@24", "optlistexpr", - "optexpr", "optrepl", "my_scalar", "list_of_scalars", - "my_list_of_scalars", "my_var", "refgen_topic", "my_refgen", "amper", - "scalar", "ary", "hsh", "arylen", "star", "sliceme", "kvslice", "gelem", - "indirob", YY_NULLPTR + "clause_for_over_cursor", "clause_mexpr", "sigsub_or_method_named", + "block", "empty", "formblock", "remember", "mblock", "mremember", + "catch_paren", "$@17", "$@18", "stmtseq", "formstmtseq", "fullstmt", + "labfullstmt", "barestmt", "formline", "formarg", "condition", "sideff", + "else", "cont", "finally", "mintro", "nexpr", "texpr", "iexpr", "mexpr", + "mnexpr", "formname", "startsub", "startanonsub", "startanonmethod", + "startformsub", "subname", "proto", "subattrlist", "attrlist", + "optattrlist", "sigvar", "sigslurpsigil", "sigslurpelem", "optcolon", + "sigscalarelem", "optsigscalardefault", "sigelem", "siglist", + "optsiglist", "optsubsignature", "subsignature", "subsigguts", "$@19", + "optsubbody", "subbody", "optsigsubbody", "sigsubbody", "$@20", "expr", + "listexpr", "listop", "@21", "methodname", "subscripted", "termbinop", + "termrelop", "relopchain", "termeqop", "eqopchain", "termunop", + "anonymous", "termdo", "term", "@22", "myattrterm", "myterm", "fieldvar", + "fielddecl", "$@23", "optlistexpr", "optexpr", "optrepl", "my_scalar", + "list_of_scalars", "my_list_of_scalars", "my_var", "refgen_topic", + "my_refgen", "amper", "scalar", "ary", "hsh", "arylen", "star", + "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR }; static const char * @@ -480,12 +483,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-583) +#define YYPACT_NINF (-558) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-370) +#define YYTABLE_NINF (-373) #define yytable_value_is_error(Yyn) \ ((Yyn) == YYTABLE_NINF) @@ -494,77 +497,73 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 599, -583, -583, -583, -583, -583, -583, -583, 53, -583, - 3065, 46, 2007, 1890, -583, -583, -583, -583, 182, 3065, - 182, 3065, 182, 3065, 182, 182, 3065, 87, 3065, 2336, - -583, -583, -583, -583, 182, 182, -583, -583, 56, -34, - -583, 3065, -583, -583, 3065, -30, -24, -40, 2336, 2255, - 46, 182, 3065, 6, 3065, 3065, 3065, 3065, 3065, 3065, - 2417, -583, 530, 103, -583, 37, -583, -47, 45, -28, - 62, -583, -583, -583, 3257, -583, -583, 59, 114, 176, - 200, -583, 117, 207, 269, 177, -583, -583, -583, -583, - -583, 156, 173, 267, 105, 112, 13, 118, 124, 125, - 130, 46, 257, 257, -583, 6, -583, -583, -583, 255, - -583, -583, -583, -583, -583, -583, -583, -583, -583, -583, - -583, -583, -583, -583, -583, -583, -583, -583, -583, -583, - -583, -583, -583, -583, -583, 6, 242, -583, 262, 432, - 264, 1890, -583, -583, -583, -583, 686, -583, 35, 883, - -583, -583, -583, -583, -583, 275, -583, 366, -583, 366, - -583, -583, 3623, 3146, 2498, 212, -583, -583, -583, 3623, - -583, 3623, 246, 238, 238, 3065, 196, 243, 3065, 211, - 3623, 46, 3257, 213, 2579, 3065, 2255, -583, 3623, 3227, - -583, 103, -583, 2660, 3065, 3065, -583, 308, -583, -583, - 3065, 103, 366, 366, 366, 224, 224, 330, 241, 3065, - 3065, 3065, 3065, 3065, 3065, 3065, 2741, -583, -583, 3065, - -583, -583, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, - 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, - 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, -583, -583, - -583, 3065, 309, 2822, 3065, 3065, 3065, 3065, 3065, 3065, - 3065, -583, 302, 305, 307, 212, -583, -583, -583, -583, - -583, 249, 397, -583, -583, 228, -583, -583, -583, -583, - -583, -583, 321, -583, -583, -583, -583, -583, -583, 46, - -583, -583, -583, 3065, 3065, 3065, 3065, 3065, 3065, -583, - -583, -583, -583, -583, -583, -583, -583, 323, -583, 369, - -583, -583, 376, -583, -583, 2903, 366, 212, 82, 99, - 168, -583, 251, 338, -583, -583, -583, 238, 343, -583, - 1, 1, -583, 3065, 3065, 20, -583, -583, -583, -583, - 403, 316, 278, 3065, 103, 103, 399, -583, 3065, 401, - 100, 100, -583, -583, 3361, 273, 26, -583, 415, 3544, - 3584, 3465, 366, 358, 3431, 3309, 3361, 3361, 1034, 713, - 713, 713, 3504, 3504, 3526, 3565, 3584, 3584, 3544, 3544, - 3604, 1049, 3431, 358, 366, 366, 74, 63, 3065, 3065, - 80, 390, 395, 410, -583, 411, 2984, 290, -583, -583, - 436, 284, 64, 293, 120, 299, 139, 304, 1000, -583, - -583, 406, 162, 212, -583, -583, 329, 3065, 3065, -583, - 7, -583, -583, 310, -583, -583, -583, -583, 2093, 267, - -583, 3065, 3065, 3065, 3065, -583, -583, 381, -583, 417, - -583, -583, -583, 530, -583, -583, -583, 530, -583, -583, - -583, 341, 323, 35, 68, 460, -583, -583, -583, 434, - -583, 311, -583, -583, 327, 18, -583, 3065, -583, -583, - -583, 469, -583, 152, 3065, 440, -583, -583, 3065, -583, - 322, 335, 164, -583, -583, -583, -583, -583, -583, 485, - 3065, -583, 448, -583, 449, -583, 451, -583, 454, -583, - -583, -583, -583, -583, 199, -583, 340, 530, 346, 456, - 342, -583, -583, -583, -583, -583, 347, 457, 111, -583, - 3065, 352, 360, 530, 372, 373, 1188, 375, 462, 246, - -583, 494, -583, -583, 238, 3065, 414, -583, 88, -583, - -583, -583, 505, -583, -583, 3065, -583, 430, -583, -583, - -583, 169, -583, 3413, 3065, 509, -583, -583, 391, -583, - -583, -583, -583, 515, -583, -583, -583, 3065, 257, 257, - 523, 409, -583, 3065, 3065, 257, -583, 418, 420, -583, - -583, 257, 257, -583, -583, -583, -583, 3065, 238, -583, - 519, 3257, 3065, 421, -583, 530, -583, -583, 427, -583, - -583, 471, -583, -583, 3257, 190, 190, 456, 428, 431, - 438, 242, 3065, 3065, 257, 257, 257, -583, -583, 456, - 257, 520, 417, 1305, -583, -583, -583, -583, 3257, -583, - -583, -583, -583, 1422, -583, 257, 439, -583, -583, -583, - -583, 3065, 257, 257, -583, 550, 443, 242, 242, 242, - -583, 538, -583, -583, -583, 1539, -583, 5, -583, 1656, - -583, 3065, 453, 242, 242, -583, 257, -583, -583, -583, - 461, 46, -583, -583, 568, 500, -583, -583, 463, 257, - -583, -583, -583, 242, -583, -583, -583, -583, -583, -583, - 257, 242, 2174, -583, 1773, 190, -583, 466, -583, -583, - 257, -583 + 748, -558, -558, -558, -558, -558, -558, -558, 35, -558, + 3032, 40, 1974, 1857, -558, -558, -558, -558, 46, 3032, + 46, 3032, 46, 3032, 46, 46, 3032, 48, 3032, 2303, + -558, -558, -558, -558, 46, 46, -558, -558, 47, -65, + -558, 3032, -558, -558, 3032, -38, -9, -41, 2303, 2222, + 40, 46, 3032, 137, 3032, 3032, 3032, 3032, 3032, 3032, + 2384, -558, 536, 110, -558, 41, -558, 63, 42, 0, + 19, -558, -558, -558, 3224, -558, -558, 25, 50, 126, + 132, -558, 149, 188, 200, 152, -558, -558, -558, -558, + -558, 131, 140, 265, -558, -558, -558, 78, 113, -558, + -558, 40, 191, 191, -558, 137, -558, -558, -558, 226, + -558, -558, -558, -558, -558, -558, -558, -558, -558, -558, + -558, -558, -558, -558, -558, -558, -558, -558, -558, -558, + -558, -558, -558, -558, -558, -558, -558, 137, 216, -558, + 236, 420, 237, 1857, -558, -558, -558, -558, 758, -558, + 93, 875, -558, -558, -558, -558, -558, 246, -558, 279, + -558, 279, -558, -558, 3571, 3113, 2465, 180, -558, -558, + -558, 3571, -558, 3571, 212, 194, 194, 3032, 154, 195, + 3032, 159, 3571, 40, 3224, 165, 2546, 3032, 2222, -558, + 3571, 3194, -558, 110, -558, 2627, 3032, 3032, -558, 275, + -558, -558, 3032, 110, 279, 279, 279, 350, 350, 289, + 339, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 2708, -558, + -558, 3032, -558, -558, 3032, 3032, 3032, 3032, 3032, 3032, + 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, + 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, + -558, -558, -558, 3032, 111, 2789, 3032, 3032, 3032, 3032, + 3032, 3032, 3032, -558, 258, 264, 266, 180, -558, -558, + -558, 192, 192, 68, -558, -558, 192, 192, -558, -558, + 287, -558, -558, -558, -558, -558, -558, 40, -558, -558, + -558, 3032, 3032, 3032, 3032, 3032, 3032, -558, -558, -558, + -558, -558, -558, -558, -558, 271, -558, 307, -558, -558, + 319, -558, -558, 2870, 279, 180, 60, 65, 70, -558, + 344, 290, -558, -558, -558, 194, 292, -558, 12, 12, + -558, 3032, 3032, 112, -558, -558, -558, -558, 371, 270, + 221, 3032, 110, 110, 343, -558, 3032, 349, 23, 23, + -558, -558, 3328, 210, 120, -558, 400, 467, 3551, 3432, + 279, 262, 3398, 3276, 3328, 3328, 557, 902, 902, 902, + 3471, 3471, 3493, 3532, 3551, 3551, 467, 467, 3511, 3590, + 3398, 262, 279, 279, 97, 164, 3032, 3032, 325, 331, + 347, 348, -558, 354, 2951, 232, -558, -558, 440, 222, + 127, 231, 145, 243, 155, 249, 1038, -558, -558, 364, + 18, 180, -558, -558, 284, 3032, 191, 191, 16, 337, + 2060, 192, 191, 265, -558, 3032, 3032, 191, 191, -558, + -558, 356, -558, 365, -558, -558, -558, 536, -558, -558, + -558, 536, -558, -558, -558, 294, 271, 93, 28, 471, + -558, -558, -558, 388, -558, 283, -558, -558, 291, 89, + -558, 3032, -558, -558, -558, 504, -558, 167, 3032, 406, + -558, -558, 3032, -558, 293, 281, 198, -558, -558, -558, + -558, -558, -558, 509, 3032, -558, 409, -558, 412, -558, + 419, -558, 432, -558, -558, -558, -558, -558, 64, -558, + 316, 536, 203, 203, -558, 434, -558, -558, -558, -558, + -558, -558, -558, -558, -558, -558, -558, -558, 426, 333, + 191, 216, -558, 322, 323, 536, -558, -558, 1155, 327, + 404, 212, -558, 451, -558, -558, 194, 3032, 372, -558, + 61, -558, -558, -558, 452, -558, -558, 3032, -558, 382, + -558, -558, -558, 204, -558, 3380, 3032, 461, -558, -558, + 352, -558, -558, -558, -558, 459, -558, -558, -558, 3032, + -558, 191, 192, -558, -558, -558, 469, 355, -558, -558, + 216, -558, -558, -558, -558, -558, -558, -558, 3032, 194, + -558, 466, 3224, 3032, 359, -558, 536, -558, -558, 360, + -558, -558, 410, -558, -558, 3224, -558, 191, 434, -558, + 3032, -558, 191, 191, 434, 191, 481, 365, 1272, -558, + -558, -558, -558, 3224, -558, -558, -558, -558, 1389, -558, + 203, -558, 486, 216, 216, -558, 464, -558, -558, -558, + 1506, -558, 36, -558, 1623, -558, -558, -558, -558, 375, + 40, -558, -558, 501, 433, -558, -558, -558, -558, -558, + -558, -558, -558, -558, 2141, 1740, 391, -558, 191, -558 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -572,115 +571,113 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 0, 2, 4, 6, 8, 10, 12, 14, 0, 61, - 59, 0, 0, 0, 59, 168, 1, 59, 0, 59, - 0, 0, 0, 0, 0, 0, 0, 0, 306, 0, - 131, 131, 132, 319, 0, 0, 290, 317, 278, 312, - 314, 308, 131, 321, 300, 310, 0, 0, 303, 59, - 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, - 0, 339, 340, 181, 320, 285, 269, 225, 237, 226, - 244, 270, 271, 272, 184, 275, 5, 291, 280, 283, - 282, 284, 281, 0, 0, 0, 61, 7, 105, 37, - 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 130, 0, 56, 57, 76, 0, - 130, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 0, 59, 9, 0, 106, - 0, 0, 11, 73, 72, 68, 0, 15, 59, 0, - 368, 371, 370, 369, 355, 0, 356, 250, 358, 251, - 357, 361, 276, 0, 0, 323, 328, 330, 329, 307, - 268, 267, 59, 59, 59, 59, 0, 0, 0, 0, - 309, 0, 301, 0, 0, 59, 59, 304, 305, 319, - 337, 338, 194, 280, 0, 0, 359, 0, 134, 135, - 59, 302, 252, 253, 274, 257, 258, 279, 0, 0, - 0, 0, 0, 182, 0, 0, 0, 240, 239, 0, - 247, 246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 4, 6, 8, 10, 12, 14, 0, 64, + 62, 0, 0, 0, 62, 171, 1, 62, 0, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, + 134, 134, 135, 322, 0, 0, 293, 320, 281, 315, + 317, 311, 134, 324, 303, 313, 0, 0, 306, 62, + 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 342, 343, 184, 323, 288, 272, 228, 240, 229, + 247, 273, 274, 275, 187, 278, 5, 294, 283, 286, + 285, 287, 284, 0, 0, 0, 64, 7, 108, 34, + 136, 0, 0, 0, 64, 64, 64, 0, 0, 64, + 64, 0, 0, 0, 133, 0, 59, 60, 79, 0, + 133, 80, 81, 82, 83, 84, 85, 86, 87, 24, + 25, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 0, 62, 9, + 0, 109, 0, 0, 11, 76, 75, 71, 0, 15, + 62, 0, 371, 374, 373, 372, 358, 0, 359, 253, + 361, 254, 360, 364, 279, 0, 0, 326, 331, 333, + 332, 310, 271, 270, 62, 62, 62, 62, 0, 0, + 0, 0, 312, 0, 304, 0, 0, 62, 62, 307, + 308, 322, 340, 341, 197, 283, 0, 0, 362, 0, + 137, 138, 62, 305, 255, 256, 277, 260, 261, 282, + 0, 0, 0, 0, 0, 185, 0, 0, 0, 243, + 242, 0, 250, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, - 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 59, 59, 0, 0, 59, 331, 333, 332, 61, - 61, 61, 0, 61, 61, 0, 61, 61, 61, 61, - 20, 63, 0, 21, 51, 130, 55, 41, 130, 0, - 116, 16, 22, 0, 0, 0, 0, 0, 0, 23, - 75, 74, 69, 148, 147, 153, 163, 145, 159, 0, - 158, 162, 164, 169, 259, 0, 325, 0, 280, 283, - 282, 327, 0, 142, 322, 137, 136, 59, 140, 138, - 264, 266, 192, 59, 0, 0, 313, 197, 311, 315, - 0, 0, 0, 0, 185, 186, 0, 294, 0, 277, - 179, 180, 177, 178, 183, 0, 0, 211, 0, 243, - 249, 229, 218, 220, 222, 236, 216, 217, 0, 232, - 234, 233, 230, 231, 228, 227, 248, 245, 242, 238, - 241, 224, 223, 221, 235, 219, 215, 0, 0, 0, - 0, 365, 363, 367, 199, 0, 0, 189, 200, 292, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 129, 0, 0, 59, 143, 144, 334, 0, 0, 353, - 0, 354, 351, 0, 352, 348, 349, 350, 0, 0, - 61, 0, 123, 0, 0, 59, 61, 0, 45, 61, - 43, 117, 107, 104, 108, 111, 110, 125, 109, 112, - 146, 149, 145, 160, 279, 0, 324, 326, 141, 262, - 139, 59, 263, 265, 0, 59, 213, 59, 316, 196, - 195, 0, 260, 0, 0, 0, 204, 210, 0, 298, - 191, 0, 0, 295, 297, 296, 299, 360, 208, 0, - 59, 293, 0, 202, 0, 286, 0, 287, 0, 58, - 61, 34, 61, 38, 0, 335, 0, 126, 0, 0, - 0, 343, 61, 121, 122, 127, 0, 0, 106, 30, - 0, 0, 0, 124, 0, 0, 0, 59, 0, 59, - 171, 0, 42, 170, 59, 150, 154, 161, 277, 261, - 168, 165, 0, 166, 193, 0, 341, 0, 198, 187, - 214, 0, 207, 273, 59, 0, 203, 209, 0, 205, - 288, 289, 201, 0, 39, 61, 17, 0, 0, 0, - 347, 0, 346, 0, 0, 0, 24, 0, 0, 120, - 120, 0, 0, 62, 65, 64, 47, 59, 59, 59, - 61, 151, 156, 0, 175, 342, 318, 212, 0, 206, - 188, 0, 59, 18, 336, 59, 59, 344, 0, 0, - 0, 59, 123, 0, 0, 0, 0, 35, 53, 0, - 0, 0, 61, 0, 174, 44, 173, 155, 157, 167, - 59, 190, 59, 0, 59, 0, 0, 113, 36, 49, - 345, 0, 0, 0, 33, 0, 0, 59, 59, 59, - 66, 118, 52, 46, 172, 0, 70, 0, 40, 0, - 114, 0, 0, 59, 59, 25, 0, 29, 50, 54, - 0, 0, 48, 176, 0, 59, 71, 19, 0, 0, - 27, 32, 120, 59, 67, 119, 60, 59, 102, 101, - 0, 59, 0, 31, 0, 59, 28, 0, 103, 115, - 0, 26 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 257, 258, 259, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 62, 0, 0, 62, 334, 336, + 335, 0, 0, 0, 64, 64, 0, 0, 20, 66, + 0, 21, 48, 133, 52, 38, 133, 0, 119, 16, + 22, 0, 0, 0, 0, 0, 0, 23, 78, 77, + 72, 151, 150, 156, 166, 148, 162, 0, 161, 165, + 167, 172, 262, 0, 328, 0, 283, 286, 285, 330, + 0, 145, 325, 140, 139, 62, 143, 141, 267, 269, + 195, 62, 0, 0, 316, 200, 314, 318, 0, 0, + 0, 0, 188, 189, 0, 297, 0, 280, 182, 183, + 180, 181, 186, 0, 0, 214, 0, 246, 252, 232, + 221, 223, 225, 239, 219, 220, 0, 235, 237, 236, + 233, 234, 231, 230, 251, 248, 245, 241, 244, 227, + 226, 224, 238, 222, 218, 0, 0, 0, 0, 368, + 366, 370, 202, 0, 0, 192, 203, 295, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 131, 132, 0, + 0, 62, 146, 147, 337, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 0, 126, 0, 0, 62, + 64, 0, 42, 64, 40, 120, 110, 107, 111, 114, + 113, 128, 112, 115, 149, 152, 148, 163, 282, 0, + 327, 329, 144, 265, 142, 62, 266, 268, 0, 62, + 216, 62, 319, 199, 198, 0, 263, 0, 0, 0, + 207, 213, 0, 301, 194, 0, 0, 298, 300, 299, + 302, 363, 211, 0, 62, 296, 0, 205, 0, 289, + 0, 290, 0, 61, 64, 31, 64, 35, 0, 338, + 0, 129, 62, 62, 356, 0, 54, 346, 357, 354, + 57, 355, 351, 352, 353, 124, 125, 130, 0, 109, + 0, 62, 56, 0, 0, 127, 32, 50, 0, 62, + 0, 62, 174, 0, 39, 173, 62, 153, 157, 164, + 280, 264, 171, 168, 0, 169, 196, 0, 344, 0, + 201, 190, 217, 0, 210, 276, 62, 0, 206, 212, + 0, 208, 291, 292, 204, 0, 36, 64, 17, 0, + 58, 0, 0, 116, 33, 46, 350, 0, 349, 26, + 62, 30, 123, 123, 65, 68, 67, 44, 62, 62, + 62, 64, 154, 159, 0, 178, 345, 321, 215, 0, + 209, 191, 0, 62, 18, 339, 117, 0, 347, 55, + 126, 29, 0, 0, 0, 0, 0, 64, 0, 177, + 41, 176, 158, 160, 170, 62, 193, 62, 0, 62, + 62, 348, 0, 62, 62, 69, 121, 49, 43, 175, + 0, 73, 0, 37, 0, 118, 27, 47, 51, 0, + 0, 45, 179, 0, 62, 74, 19, 123, 70, 122, + 63, 62, 105, 104, 0, 0, 0, 106, 0, 28 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -583, -583, -583, -583, -583, -583, -583, -583, -583, -583, - -583, -583, -583, -583, -583, -583, -583, -583, -583, -583, - -583, -583, -583, -583, -583, -583, -583, -583, -583, -583, - -583, -583, -583, -583, -583, -583, -583, -583, -583, -583, - -583, -583, -583, -583, -4, -10, -583, 23, -67, -583, - -583, -583, -583, -16, -583, 580, 468, -1, -583, -583, - 79, -425, -582, -308, -583, -552, -583, -14, 179, -334, - -81, -583, -93, 44, -583, -583, -83, 84, -172, -150, - 202, 165, -583, -583, -583, -583, -583, 166, -583, -583, - -583, -583, 81, -583, -2, 171, -583, -312, -583, 16, - -44, -583, -583, -583, -583, -583, -583, -583, -583, -583, - -583, -583, -583, 635, -583, -583, 472, -583, -583, -583, - -162, -15, -583, -583, -583, -583, 203, -583, -583, 359, - 36, -21, -19, -583, -583, -583, -583, -583, 55 + -558, -558, -558, -558, -558, -558, -558, -558, -558, -558, + -558, -558, -558, -558, -558, -558, -558, -558, -558, -558, + -558, -558, -558, -558, -558, -558, -558, -558, -558, -558, + -558, -558, -558, -558, -558, -558, -558, -558, -558, -558, + -558, -558, -558, -558, -558, -239, -558, -4, -10, -558, + -7, 135, -558, -558, -558, -558, -16, -558, 510, 381, + 7, -558, -558, 102, -408, -481, -462, -558, -557, -558, + -83, 104, -558, -134, -558, -95, 54, -558, -558, -94, + 2, -170, -154, 134, 92, -558, -558, -558, -558, -558, + 103, -558, -558, -558, -558, 11, -558, -62, 105, -558, + -321, -558, 17, -44, -558, -558, -558, -558, -558, -558, + -558, -558, -558, -558, -558, -558, 484, -558, -558, 394, + -558, -558, -558, -174, -2, -558, -558, -558, -558, 133, + -558, -558, 142, 81, -23, -3, -558, -558, -558, -558, + -558, 31 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { 0, 8, 9, 10, 11, 12, 13, 14, 15, 111, - 112, 113, 634, 114, 115, 116, 117, 118, 612, 682, - 577, 119, 120, 121, 122, 123, 124, 602, 125, 439, - 126, 534, 127, 529, 128, 620, 129, 130, 131, 437, - 132, 133, 134, 135, 136, 145, 501, 461, 282, 435, - 586, 619, 670, 146, 657, 302, 143, 144, 676, 689, - 442, 138, 638, 291, 672, 615, 515, 522, 446, 506, - 517, 411, 284, 172, 174, 262, 200, 327, 330, 415, - 416, 451, 307, 308, 309, 310, 627, 311, 312, 313, - 542, 543, 147, 148, 532, 533, 625, 462, 630, 139, - 63, 64, 467, 397, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 177, 75, 165, 265, 140, 567, - 192, 76, 547, 510, 570, 571, 422, 423, 274, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 156 + 112, 113, 629, 114, 115, 116, 117, 118, 119, 610, + 657, 120, 121, 122, 123, 124, 125, 126, 603, 127, + 433, 128, 536, 129, 531, 130, 615, 131, 132, 133, + 431, 134, 135, 136, 421, 416, 137, 138, 147, 495, + 455, 280, 429, 587, 614, 649, 148, 642, 300, 145, + 146, 655, 663, 436, 140, 574, 289, 651, 612, 517, + 524, 440, 500, 518, 409, 282, 174, 176, 264, 202, + 325, 328, 413, 414, 445, 305, 306, 307, 308, 622, + 309, 310, 311, 544, 545, 149, 150, 534, 535, 620, + 456, 625, 141, 63, 64, 461, 395, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 179, 75, 167, + 267, 142, 569, 194, 76, 549, 506, 576, 577, 509, + 510, 423, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 158 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -688,193 +685,178 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 61, 149, 331, 514, 155, 191, 167, 87, 168, 61, - 201, 137, -61, 332, 152, 324, 152, 287, 152, 463, - 152, 152, 285, 20, 639, 170, 62, 674, 616, 20, - 152, 152, 17, 213, 466, 62, 283, 197, 347, 190, - 476, 545, 61, 271, 187, 152, 195, 152, 214, 185, - 215, -152, 288, 16, 153, 303, 153, 86, 153, 304, - 153, 153, 198, 166, 675, 217, 218, 199, 62, 178, - 153, 153, 267, 154, 268, 173, 208, 158, 493, 160, - 161, 348, 220, 221, 508, 193, 181, 153, 479, 175, - 176, 86, 186, 254, 516, 255, 20, 280, 179, 524, - 525, 474, 183, 20, 194, 483, 196, 22, 184, 261, - -362, 24, -362, 699, 209, 210, 211, 212, 213, 198, - 209, 210, 211, 212, 199, 254, 290, 255, -366, 266, - 692, 191, 275, -61, 495, 272, 150, 305, 306, 509, - 301, 151, 319, 293, 320, 273, 294, 295, 296, 297, - 344, 345, 298, 497, -327, 459, 191, 219, 209, 210, - 211, 212, 326, 329, 329, 190, 550, 456, -328, 216, - 341, 342, 222, 502, -326, 61, 61, 337, 556, -364, - 322, -364, 152, 597, 503, -330, 578, -362, 260, -362, - 190, 253, 438, 86, 335, 440, 211, 212, 20, 318, - 340, 62, 62, -370, 252, 209, 210, 211, 212, 163, - 565, -364, 263, -364, 209, 210, 211, 212, 256, 164, - 257, 566, 193, 635, 636, 350, 351, 352, 353, 264, - 355, 356, 358, 209, 210, 211, 212, 269, 150, 609, - 610, 343, -126, 151, 270, 408, 209, 210, 211, 212, - 276, 426, 410, 427, -329, 414, 277, 278, 209, 210, - 211, 212, 279, 209, 210, 211, 212, 514, 281, 400, - 401, 402, 403, 404, 405, 406, 407, 286, 626, 646, - 258, 289, 259, 20, 292, 441, 299, 22, 398, 314, - 465, 24, 417, 418, 420, 475, 428, 429, 323, 431, - 432, 433, 434, 644, 480, 548, 492, 662, 425, 443, - 443, 443, 447, 443, 443, 494, 325, 329, 464, 387, - 388, 496, 389, 61, 328, 390, 498, 678, 333, 391, - 346, 455, 334, 392, 393, 209, 210, 211, 212, 667, - 668, 669, 336, 348, 338, 209, 210, 211, 212, 62, - -370, -370, -370, 251, 252, 680, 681, 555, 409, 471, - 430, 412, 590, 413, 473, 436, 394, 209, 210, 211, - 212, 419, 349, 444, 445, 693, 448, 449, 209, 210, - 211, 212, 457, 696, 450, 452, 152, 209, 210, 211, - 212, 453, 395, 209, 210, 211, 212, 458, 209, 210, - 211, 212, 460, 414, 481, 482, 469, 18, 426, 470, - 427, 472, 489, 20, 474, 484, 622, 22, 513, 526, - 485, 24, 490, 191, 500, 621, 153, 421, 505, 209, - 210, 211, 212, 507, 507, 486, 487, 528, 224, 530, - 535, 396, 512, 540, 518, -61, 224, 447, 523, 507, - 507, 541, 552, 520, 554, 546, 511, 190, 544, 527, - 559, 560, 531, 561, 293, 425, 562, 294, 295, 296, - 297, 568, 20, 298, 573, 558, 246, 569, 575, 576, - 61, 247, 531, 579, 248, 249, 250, 251, 252, 247, - 551, 580, 248, 249, 250, 251, 252, 209, 210, 211, - 212, 605, 606, 581, 582, 589, 62, 584, 611, 209, - 210, 211, 212, 592, 617, 618, 594, 585, 587, 326, - 596, 599, 600, 563, 329, 564, 209, 210, 211, 212, - 209, 210, 211, 212, 468, 574, 507, 601, 607, 598, - 608, 624, 652, 191, 61, 572, 477, 647, 648, 649, - 613, 614, 629, 651, 209, 210, 211, 212, 631, 632, - 641, 595, 642, 209, 210, 211, 212, 491, 660, 643, - 62, 661, 665, 623, 666, 663, 664, 190, 329, 209, - 210, 211, 212, 671, 679, 686, 633, 687, 603, 507, - 507, 538, 684, 142, 690, 637, 637, 700, 645, 683, - 549, 290, 1, 2, 3, 4, 5, 6, 7, 300, - 521, 697, 691, 588, 655, 504, 557, 536, 659, 537, - 653, 593, 656, 695, 209, 210, 211, 212, 523, 507, - 539, 424, 519, 701, 0, 317, 0, 290, 290, 290, - 0, 0, 0, 640, 0, 531, 0, 0, 0, 0, - 0, 0, 0, 290, 290, 650, 157, 507, 159, 0, - 0, 162, 0, 169, 171, 688, 0, 685, 0, 0, - 0, 694, 0, 290, 0, 0, 180, 507, 0, 182, - 0, 290, 513, 188, 0, 637, -13, 88, 0, 0, - 202, 203, 204, 205, 206, 0, 18, 86, 0, 19, - 0, 0, 20, 0, 0, 21, 22, 23, 89, 0, - 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, - 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, - 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, - 107, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 108, 141, 0, 44, 0, 109, - 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, - 52, 53, 0, 0, 0, 0, 0, 110, 0, 0, - 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, - 0, 0, 0, 224, 225, 226, 0, 0, 316, 0, - 0, 0, 0, 0, 0, 55, 56, 0, 57, 0, - 58, 59, 0, 0, 0, 0, 0, 0, 60, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 0, 0, 0, 0, 247, 0, 0, 248, - 249, 250, 251, 252, 0, 0, 0, 0, 354, 0, - 0, 0, 0, 0, 359, 0, 0, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, -3, 88, 0, 386, 0, 0, 0, - 0, 0, 0, 18, 86, 0, 19, 0, 0, 20, - 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, - 91, 92, 26, 27, 93, 94, 0, 0, 95, 96, - 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, - 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, - 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, - 43, 108, 141, 0, 44, 0, 109, 45, 46, 47, - 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, - 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, - 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 151, 17, 330, 169, 193, 329, 87, 457, 61, + 203, 283, 516, 322, 154, 285, 154, 157, 154, 139, + 154, 154, 575, -64, 170, 172, 613, 62, 345, 496, + 154, 154, 20, 417, 422, 16, 62, 427, 428, 192, + 497, 346, 61, 286, 189, 154, 197, 154, 187, 156, + 199, 86, 216, 160, 217, 162, 163, 86, 653, 581, + 180, 256, 20, 257, 20, 177, 178, 181, 22, 62, + 269, 256, 24, 257, 468, 567, -365, 210, -365, 263, + 196, -367, 198, -367, 20, 175, 568, 271, 272, 273, + 270, 188, 276, 277, 185, 654, 183, 278, 418, 155, + 664, 155, 152, 155, 215, 155, 155, 153, 168, -155, + 222, 223, 547, 301, -330, 155, 155, 302, 611, 213, + 214, 385, 386, 186, 387, 215, 460, 388, 288, 224, + 195, 389, 155, 193, 470, 390, 391, -365, 504, -365, + 304, 487, 317, -367, -64, -367, -331, -329, 505, 645, + 299, -333, 342, 343, 221, 453, -332, 255, 193, 489, + -369, 450, 318, 262, 324, 327, 327, 192, 392, 491, + 165, 647, 648, 218, 268, 219, 220, 61, 61, 335, + 166, 552, 520, 320, 154, 339, 340, 265, 432, 473, + 419, 434, 192, 200, 393, 303, 266, 333, 201, 258, + 420, 259, 279, 338, 62, 62, 211, 212, 213, 214, + 274, 260, 558, 261, 211, 212, 213, 214, 598, 341, + 200, 211, 212, 213, 214, 201, -373, 254, 348, 349, + 350, 351, 469, 353, 354, 356, 571, 572, 281, 211, + 212, 213, 214, 394, 486, 275, 316, 406, 284, 211, + 212, 213, 214, 488, 408, 287, 516, 412, 290, 297, + 312, 211, 212, 213, 214, 490, 321, 425, 426, 195, + 621, 492, 398, 399, 400, 401, 402, 403, 404, 405, + 326, 20, 323, 435, 332, 22, 331, 550, 459, 24, + 334, 474, 211, 212, 213, 214, 336, 344, 211, 212, + 213, 214, 346, 557, 211, 212, 213, 214, 437, 437, + 437, 441, 437, 437, 407, 327, 211, 212, 213, 214, + 410, 61, 411, 446, 415, 211, 212, 213, 214, 458, + 449, 430, 444, 607, 447, 396, 86, 211, 212, 213, + 214, 20, 226, 211, 212, 213, 214, 18, 62, 452, + 477, 454, 464, 20, 424, 466, 478, 22, 465, 226, + 463, 24, 468, 467, 484, 291, 591, 508, 292, 293, + 294, 295, 479, 480, 296, 211, 212, 213, 214, 481, + 248, 152, 494, 499, 154, 249, 153, 532, 250, 251, + 252, 253, 254, 537, 438, 439, 513, 442, 443, -64, + 513, 412, 249, 475, 476, 250, 251, 252, 253, 254, + 515, 483, 530, 528, 616, 542, 514, 193, 554, 617, + 514, 561, 546, 529, 562, 556, 533, 211, 212, 213, + 214, 563, 501, 211, 212, 213, 214, 519, 211, 212, + 213, 214, 441, 525, 564, 543, 533, 570, 579, 548, + 20, 192, 291, 582, 583, 292, 293, 294, 295, 585, + 588, 296, 590, 595, -129, 211, 212, 213, 214, 155, + 347, 593, 597, 600, 61, 451, -373, -373, -373, 253, + 254, 602, 560, 601, 608, 553, 609, 565, 619, 566, + 624, 626, 573, 573, 211, 212, 213, 214, 627, 507, + 512, 62, 462, 637, 512, 159, 658, 161, 646, 650, + 164, 288, 171, 173, 211, 212, 213, 214, 660, 586, + 661, 324, 668, 144, 298, 182, 327, 632, 184, 523, + 666, 471, 190, 589, 211, 212, 213, 214, 538, 204, + 205, 206, 207, 208, 193, 498, 61, 226, 227, 228, + 539, 502, 503, 594, 599, 638, 522, 521, 541, 315, + 604, 511, 526, 527, 596, 211, 212, 213, 214, 0, + 288, 485, 0, 62, 618, 0, 0, 0, 192, 327, + 0, 244, 245, 246, 247, 248, 578, 628, 0, 0, + 249, 0, 0, 250, 251, 252, 253, 254, 211, 212, + 213, 214, 540, 211, 212, 213, 214, 0, 0, 640, + 533, 0, 0, 644, 0, 0, 0, 641, 0, 0, + 573, 0, 0, 288, 288, 0, 0, 525, 0, 225, + 211, 212, 213, 214, 0, 551, 0, 226, 227, 228, + 559, 0, 0, 0, 662, 665, 659, 0, 0, 314, + 229, 0, 0, 0, 515, 580, 230, 231, 232, 472, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 0, 0, 0, 0, + 249, 0, 0, 250, 251, 252, 253, 254, 0, 631, + 0, 0, 0, 0, 0, 635, 0, 0, 0, 352, + 0, 0, 0, 0, 0, 357, 606, 0, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 0, 0, 0, 384, 0, 0, + 0, 0, 630, 0, 0, 0, 0, 633, 634, 0, + 636, 1, 2, 3, 4, 5, 6, 7, -13, 88, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 86, + 0, 19, 0, 0, 20, 0, 0, 21, 22, 23, + 89, 0, 24, 25, 90, 91, 92, 26, 27, 93, + 94, 0, 0, 95, 96, 97, 98, 0, 99, 100, + 101, 102, 0, 669, 103, 28, 29, 104, 105, 106, + 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, + 38, 39, 40, 41, 42, 43, 108, 143, 0, 44, + 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, + 0, 51, 52, 53, 0, 0, 0, 0, 0, 110, + 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 88, 55, 56, 0, 57, 0, 58, 59, 0, - 18, 86, 499, 19, 0, 60, 20, 0, 0, 21, - 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, - 27, 93, 94, 0, 0, 95, 96, 97, 98, 0, - 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, - 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, - 37, 0, 38, 39, 40, 41, 42, 43, 108, 141, - 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, - 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, - 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, - 0, 0, 0, 553, 224, 225, 226, 0, 0, 55, - 56, 0, 57, 0, 58, 59, 0, 227, 0, 224, - 225, 226, 60, 228, 229, 230, 478, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 0, 0, 0, 0, 247, 0, 0, - 248, 249, 250, 251, 252, 244, 245, 246, 0, 0, - 591, 0, 247, 0, 0, 248, 249, 250, 251, 252, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, + 0, 0, 0, 0, 0, -3, 88, 55, 56, 0, + 57, 0, 58, 59, 0, 18, 86, 0, 19, 0, + 60, 20, 0, 0, 21, 22, 23, 89, 0, 24, + 25, 90, 91, 92, 26, 27, 93, 94, 0, 0, + 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, + 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, + 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, + 41, 42, 43, 108, 143, 0, 44, 0, 109, 45, + 46, 47, 48, 49, 50, 0, 555, 0, 51, 52, + 53, 0, 0, 0, 0, 0, 110, 0, 0, 0, + 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, + 0, 0, 226, 227, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, + 59, 0, 0, 0, 0, 0, 0, 60, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 592, 0, 0, 0, 249, 0, 0, 250, 251, + 252, 253, 254, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 18, 86, - 583, 19, 604, 0, 20, 0, 0, 21, 22, 23, + 493, 19, 0, 605, 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, 27, 93, - 94, 0, 0, 95, 96, 97, 98, 628, 99, 100, + 94, 0, 0, 95, 96, 97, 98, 623, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, - 38, 39, 40, 41, 42, 43, 108, 141, 0, 44, + 38, 39, 40, 41, 42, 43, 108, 143, 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, 0, - 57, 0, 58, 59, 0, 18, 86, 654, 19, 0, + 57, 0, 58, 59, 0, 18, 86, 584, 19, 0, 60, 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, - 41, 42, 43, 108, 141, 0, 44, 0, 109, 45, + 41, 42, 43, 108, 143, 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, 0, 57, 0, 58, - 59, 0, 18, 86, 658, 19, 0, 60, 20, 0, + 59, 0, 18, 86, 639, 19, 0, 60, 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, - 108, 141, 0, 44, 0, 109, 45, 46, 47, 48, + 108, 143, 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, 0, 57, 0, 58, 59, 0, 18, - 86, 673, 19, 0, 60, 20, 0, 0, 21, 22, + 86, 643, 19, 0, 60, 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, - 0, 38, 39, 40, 41, 42, 43, 108, 141, 0, + 0, 38, 39, 40, 41, 42, 43, 108, 143, 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, - 0, 57, 0, 58, 59, 0, 18, 86, 677, 19, + 0, 57, 0, 58, 59, 0, 18, 86, 652, 19, 0, 60, 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 108, 141, 0, 44, 0, 109, + 40, 41, 42, 43, 108, 143, 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, 0, 57, 0, - 58, 59, 0, 18, 86, 0, 19, 0, 60, 20, + 58, 59, 0, 18, 86, 656, 19, 0, 60, 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, - 43, 108, 141, 0, 44, 0, 109, 45, 46, 47, + 43, 108, 143, 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, - 0, 698, 0, 0, 110, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, 0, 57, 0, 58, 59, 0, @@ -883,9 +865,9 @@ static const yytype_int16 yytable[] = 27, 93, 94, 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, - 37, 0, 38, 39, 40, 41, 42, 43, 108, 141, + 37, 0, 38, 39, 40, 41, 42, 43, 108, 143, 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, - 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, + 0, 0, 0, 51, 52, 53, 0, 0, 667, 0, 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, @@ -895,17 +877,53 @@ static const yytype_int16 yytable[] = 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, 38, - 39, 40, 41, 42, 43, 108, 0, 0, 44, 0, + 39, 40, 41, 42, 43, 108, 143, 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, 0, - 51, 52, 53, 0, 88, 0, 0, 0, 110, 0, - 0, 0, 0, 18, 0, 54, 19, 0, 0, 20, - 0, 0, 21, 22, 23, -59, 0, 24, 25, 0, - 0, 0, 26, 27, 0, 0, 55, 56, 0, 57, - 0, 58, 59, 0, 0, 0, 0, 0, 0, 60, - 28, 29, 0, 0, 0, 30, 31, 0, 32, 33, + 51, 52, 53, 0, 0, 0, 0, 0, 110, 0, + 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 55, 56, 0, 57, + 0, 58, 59, 0, 18, 86, 0, 19, 0, 60, + 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, + 90, 91, 92, 26, 27, 93, 94, 0, 0, 95, + 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, + 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, + 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, + 42, 43, 108, 0, 0, 44, 0, 109, 45, 46, + 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, + 0, 88, 0, 0, 0, 110, 0, 0, 0, 0, + 18, 0, 54, 19, 0, 0, 20, 0, 0, 21, + 22, 23, -62, 0, 24, 25, 0, 0, 0, 26, + 27, 0, 0, 55, 56, 0, 57, 0, 58, 59, + 0, 0, 0, 0, 0, 0, 60, 28, 29, 0, + 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, + 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, + 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, + 0, 0, 88, 51, 52, 53, 0, 0, 0, 0, + 0, 18, 0, 0, 19, 0, 0, 20, 54, 0, + 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, + 26, 27, 0, 0, 0, 0, 0, 0, 0, 55, + 56, 0, 57, 0, 58, 59, 0, 0, 28, 29, + 0, 0, 60, 30, 31, 0, 32, 33, 34, 35, + 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, + 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, + 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, + 0, 0, 18, 86, 0, 19, 0, 0, 20, 54, + 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, + 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, + 55, 56, 0, 57, 0, 58, 59, 0, 0, 28, + 29, 0, -62, 60, 30, 31, 0, 32, 191, 34, + 35, 36, 37, 153, 38, 39, 40, 41, 42, 43, + 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 18, 86, 0, 19, 0, 0, 20, + 54, 0, 21, 22, 23, 0, 0, 24, 25, 0, + 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 0, 60, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, - 48, 49, 50, 0, 0, 88, 51, 52, 53, 0, + 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, @@ -914,35 +932,35 @@ static const yytype_int16 yytable[] = 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 0, 18, 86, 0, 19, 0, + 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, 59, - 0, 0, 28, 29, 0, -59, 60, 30, 31, 0, - 32, 189, 34, 35, 36, 37, 151, 38, 39, 40, + 0, 0, 28, 29, 0, 209, 60, 30, 31, 0, + 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 86, 0, 19, + 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 0, 60, 30, 31, + 59, 0, 0, 28, 29, 0, 319, 60, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, - 52, 53, 0, 0, 0, 0, 0, 18, 0, 0, - 19, 0, 0, 20, 54, 0, 21, 22, 23, 0, - 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, + 52, 53, 0, 0, 0, 0, 0, -372, 256, 0, + 257, 0, 0, -372, 54, 0, -372, -372, -372, 0, + 0, -372, -372, 0, 0, 0, -372, -372, 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, 57, 0, - 58, 59, 0, 0, 28, 29, 0, 0, 60, 30, - 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, - 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, - 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, - 51, 52, 53, 0, 0, 0, 0, 0, 18, 0, - 0, 19, 0, 0, 20, 54, 0, 21, 22, 23, + 58, 59, 0, 0, -372, -372, 0, 337, 60, -372, + -372, 0, -372, -372, -372, -372, -372, -372, 0, -372, + -372, -372, -372, -372, -372, 0, 0, 0, -372, 0, + 0, -372, -372, -372, -372, -372, -372, 0, 0, 0, + -372, -372, -372, 0, 0, 0, 0, 0, 18, 0, + 0, 19, 0, 0, 20, -372, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, - 0, 0, 0, 0, 0, 0, 55, 56, 0, 57, - 0, 58, 59, 0, 0, 28, 29, 0, 207, 60, + 0, 0, 0, 0, 0, 0, -372, -372, 0, -372, + 0, -372, -372, 0, 0, 28, 29, 0, 0, -372, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, @@ -950,24 +968,24 @@ static const yytype_int16 yytable[] = 0, 0, 19, 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, - 57, 0, 58, 59, 0, 0, 28, 29, 0, 321, + 57, 0, 58, 59, 0, 0, 28, 29, 0, 355, 60, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, - -369, 254, 0, 255, 0, 0, -369, 54, 0, -369, - -369, -369, 0, 0, -369, -369, 0, 0, 0, -369, - -369, 0, 0, 0, 0, 0, 0, 0, 55, 56, - 0, 57, 0, 58, 59, 0, 0, -369, -369, 0, - 339, 60, -369, -369, 0, -369, -369, -369, -369, -369, - -369, 0, -369, -369, -369, -369, -369, -369, 0, 0, - 0, -369, 0, 0, -369, -369, -369, -369, -369, -369, - 0, 0, 0, -369, -369, -369, 0, 0, 0, 0, - 0, 18, 0, 0, 19, 0, 0, 20, -369, 0, + 18, 0, 0, 19, 0, 0, 20, 54, 0, 21, + 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, + 27, 0, 0, 0, 0, 0, 0, 0, 55, 56, + 0, 57, 0, 58, 59, 0, 0, 28, 29, 0, + 397, 60, 30, 31, 0, 32, 33, 34, 35, 36, + 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, + 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, + 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, + 0, 18, 0, 0, 19, 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, - 26, 27, 0, 0, 0, 0, 0, 0, 0, -369, - -369, 0, -369, 0, -369, -369, 0, 0, 28, 29, - 0, 0, -369, 30, 31, 0, 32, 33, 34, 35, + 26, 27, 0, 0, 0, 0, 0, 0, 0, 55, + 56, 0, 57, 0, 58, 59, 0, 0, 28, 29, + 0, 448, 60, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, @@ -975,7 +993,7 @@ static const yytype_int16 yytable[] = 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, 28, - 29, 0, 357, 60, 30, 31, 0, 32, 33, 34, + 29, 0, 482, 60, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, @@ -983,214 +1001,175 @@ static const yytype_int16 yytable[] = 54, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, - 28, 29, 0, 399, 60, 30, 31, 0, 32, 33, + 28, 29, 0, 0, 60, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, - 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, - 20, 54, 0, 21, 22, 23, 0, 0, 24, 25, - 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -371, 0, 0, -371, 0, 0, + -371, 54, 0, -371, -371, -371, 0, 0, -371, -371, + 0, 0, 0, -371, -371, 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, 59, 0, - 0, 28, 29, 0, 454, 60, 30, 31, 0, 32, - 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, - 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, - 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, - 0, 20, 54, 0, 21, 22, 23, 0, 0, 24, - 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, - 0, 0, 0, 55, 56, 0, 57, 0, 58, 59, - 0, 0, 28, 29, 0, 488, 60, 30, 31, 0, - 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, - 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 0, 60, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, - 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, - 52, 53, 0, 0, 0, 0, 0, -368, 0, 0, - -368, 0, 0, -368, 54, 0, -368, -368, -368, 0, - 0, -368, -368, 0, 0, 0, -368, -368, 0, 0, - 0, 0, 0, 0, 0, 55, 56, 0, 57, 0, - 58, 59, 0, 0, -368, -368, 0, 0, 315, -368, - -368, 0, -368, -368, -368, -368, -368, -368, 0, -368, - -368, -368, -368, -368, -368, 0, 0, 0, -368, 0, - 0, -368, -368, -368, -368, -368, -368, 0, 0, 0, - -368, -368, -368, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -368, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 0, 0, 224, 225, 226, - 0, 0, 0, 0, 0, 0, -368, -368, 0, -368, - 227, -368, -368, 0, 0, 0, 228, 229, 230, -368, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 0, 0, 0, 0, - 247, 223, 0, 248, 249, 250, 251, 252, 0, 224, - 225, 226, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -370, 0, 0, 0, 0, 0, 228, 229, - 230, 0, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 0, 0, - 0, 0, 247, 223, 0, 248, 249, 250, 251, 252, - 0, 224, 225, 226, 0, 0, 0, 0, 0, 0, + 0, -371, -371, 0, 0, 313, -371, -371, 0, -371, + -371, -371, -371, -371, -371, 0, -371, -371, -371, -371, + -371, -371, 0, 0, 0, -371, 0, 0, -371, -371, + -371, -371, -371, -371, 0, 0, 0, -371, -371, -371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 229, 230, 0, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 0, 0, 0, 0, 247, 223, 0, 248, 249, 250, - 251, 252, 0, 224, 225, 226, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 225, 0, 230, 0, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 0, 0, 0, 0, 247, -370, 0, 248, - 249, 250, 251, 252, 0, 224, 225, 226, 245, 246, - 0, 0, 0, 0, 247, 0, 0, 248, 249, 250, - 251, 252, 0, 0, 0, 0, 0, 0, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 224, 225, 226, 0, 247, 0, - 0, 248, 249, 250, 251, 252, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 225, 226, 0, - 0, 0, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 0, 224, 225, 226, 247, 0, 0, - 248, 249, 250, 251, 252, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 224, 225, 226, 0, 247, - 0, 0, 248, 249, 250, 251, 252, 0, 242, 243, - 244, 245, 246, 0, 224, 225, 226, 247, 0, 0, - 248, 249, 250, 251, 252, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 224, 225, 226, 0, 247, 0, - 0, 248, 249, 250, 251, 252, 240, 241, 242, 243, - 244, 245, 246, 224, 225, 226, 0, 247, 0, 0, - 248, 249, 250, 251, 252, 0, 0, 0, -370, 243, - 244, 245, 246, 0, 0, 0, 0, 247, 0, 0, - 248, 249, 250, 251, 252, 0, 0, 0, 243, 244, - 245, 246, 0, 0, 0, 0, 247, 0, 0, 248, - 249, 250, 251, 252 + 0, 0, -371, 0, 0, 0, 225, 0, 0, 0, + 0, 0, 0, 0, 226, 227, 228, 0, 0, 0, + 0, 0, 0, -371, -371, 0, -371, 229, -371, -371, + 0, 0, 0, 230, 231, 232, -371, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 0, 0, 0, 0, 249, 225, 0, + 250, 251, 252, 253, 254, 0, 226, 227, 228, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -373, + 0, 0, 0, 0, 0, 230, 231, 232, 0, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 0, 0, 0, 0, 249, + 225, 0, 250, 251, 252, 253, 254, 0, 226, 227, + 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 230, 231, 232, + 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 0, 0, 0, + 0, 249, 225, 0, 250, 251, 252, 253, 254, 0, + 226, 227, 228, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 226, 227, + 0, 232, 0, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 0, + 0, 0, 0, 249, -373, 0, 250, 251, 252, 253, + 254, 0, 226, 227, 228, 247, 248, 0, 0, 0, + 0, 249, 0, 0, 250, 251, 252, 253, 254, 0, + 0, 0, 0, 0, 0, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 226, 227, 228, 0, 249, 0, 0, 250, 251, + 252, 253, 254, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 226, 227, 228, 0, 0, 0, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 0, 226, 227, 228, 249, 0, 0, 250, 251, 252, + 253, 254, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 226, 227, 228, 0, 249, 0, 0, 250, + 251, 252, 253, 254, 0, -373, 245, 246, 247, 248, + 0, 226, 227, 228, 249, 0, 0, 250, 251, 252, + 253, 254, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 226, 227, 228, 0, 249, 0, 0, 250, 251, + 252, 253, 254, 242, 243, 244, 245, 246, 247, 248, + 226, 227, 228, 0, 249, 0, 0, 250, 251, 252, + 253, 254, 0, 0, 0, 0, 245, 246, 247, 248, + 0, 0, 0, 0, 249, 0, 0, 250, 251, 252, + 253, 254, 0, 0, 0, 0, 246, 247, 248, 0, + 0, 0, 0, 249, 0, 0, 250, 251, 252, 253, + 254 }; static const yytype_int16 yycheck[] = { - 10, 17, 174, 428, 19, 49, 27, 11, 27, 19, - 54, 12, 11, 175, 18, 165, 20, 110, 22, 331, - 24, 25, 105, 16, 606, 29, 10, 22, 580, 16, - 34, 35, 9, 15, 14, 19, 103, 52, 200, 49, - 14, 23, 52, 30, 48, 49, 50, 51, 11, 89, - 13, 16, 135, 0, 18, 20, 20, 11, 22, 24, - 24, 25, 56, 27, 59, 112, 113, 61, 52, 13, - 34, 35, 93, 18, 93, 31, 60, 22, 14, 24, - 25, 13, 110, 111, 418, 49, 42, 51, 25, 34, - 35, 11, 132, 11, 428, 13, 16, 101, 132, 433, - 434, 13, 132, 16, 49, 25, 51, 20, 132, 86, - 11, 24, 13, 695, 94, 95, 96, 97, 15, 56, - 94, 95, 96, 97, 61, 11, 136, 13, 11, 93, - 682, 175, 96, 132, 14, 122, 56, 102, 148, 132, - 141, 61, 163, 32, 163, 132, 35, 36, 37, 38, - 194, 195, 41, 14, 86, 327, 200, 112, 94, 95, - 96, 97, 172, 173, 174, 175, 14, 317, 86, 132, - 185, 186, 110, 11, 86, 185, 186, 181, 14, 11, - 164, 13, 186, 14, 22, 86, 520, 11, 11, 13, - 200, 132, 285, 11, 178, 288, 96, 97, 16, 163, - 184, 185, 186, 129, 130, 94, 95, 96, 97, 122, - 11, 11, 56, 13, 94, 95, 96, 97, 11, 132, - 13, 22, 186, 33, 34, 209, 210, 211, 212, 56, - 214, 215, 216, 94, 95, 96, 97, 132, 56, 573, - 574, 186, 131, 61, 132, 261, 94, 95, 96, 97, - 132, 272, 262, 272, 86, 265, 132, 132, 94, 95, - 96, 97, 132, 94, 95, 96, 97, 692, 11, 253, - 254, 255, 256, 257, 258, 259, 260, 22, 590, 613, - 11, 39, 13, 16, 22, 289, 22, 20, 252, 14, - 334, 24, 269, 270, 271, 22, 273, 274, 86, 276, - 277, 278, 279, 611, 387, 467, 22, 641, 272, 293, - 294, 295, 296, 297, 298, 22, 70, 327, 333, 10, - 11, 22, 13, 333, 86, 16, 22, 661, 132, 20, - 22, 315, 89, 24, 25, 94, 95, 96, 97, 647, - 648, 649, 131, 13, 131, 94, 95, 96, 97, 333, - 126, 127, 128, 129, 130, 663, 664, 22, 56, 343, - 132, 56, 534, 56, 348, 44, 57, 94, 95, 96, - 97, 122, 131, 294, 295, 683, 297, 298, 94, 95, - 96, 97, 131, 691, 61, 16, 390, 94, 95, 96, - 97, 15, 83, 94, 95, 96, 97, 59, 94, 95, - 96, 97, 59, 413, 388, 389, 90, 10, 429, 131, - 429, 12, 396, 16, 13, 25, 588, 20, 428, 435, - 25, 24, 132, 467, 18, 587, 390, 30, 99, 94, - 95, 96, 97, 417, 418, 25, 25, 56, 80, 22, - 99, 132, 132, 132, 428, 11, 80, 431, 432, 433, - 434, 461, 12, 430, 132, 465, 420, 467, 131, 436, - 12, 12, 439, 12, 32, 429, 12, 35, 36, 37, - 38, 131, 16, 41, 132, 490, 118, 131, 131, 22, - 490, 123, 459, 131, 126, 127, 128, 129, 130, 123, - 474, 131, 126, 127, 128, 129, 130, 94, 95, 96, - 97, 568, 569, 131, 131, 11, 490, 132, 575, 94, - 95, 96, 97, 99, 581, 582, 11, 527, 56, 529, - 90, 12, 131, 500, 534, 502, 94, 95, 96, 97, - 94, 95, 96, 97, 131, 512, 520, 22, 15, 554, - 131, 22, 22, 587, 554, 509, 131, 614, 615, 616, - 132, 131, 131, 620, 94, 95, 96, 97, 131, 88, - 132, 545, 131, 94, 95, 96, 97, 131, 635, 131, - 554, 132, 22, 589, 131, 642, 643, 587, 588, 94, - 95, 96, 97, 45, 131, 17, 602, 87, 565, 573, - 574, 131, 131, 13, 131, 605, 606, 131, 612, 666, - 131, 611, 3, 4, 5, 6, 7, 8, 9, 141, - 431, 692, 679, 529, 630, 413, 131, 452, 634, 453, - 622, 540, 632, 690, 94, 95, 96, 97, 612, 613, - 459, 272, 429, 700, -1, 163, -1, 647, 648, 649, - -1, -1, -1, 607, -1, 622, -1, -1, -1, -1, - -1, -1, -1, 663, 664, 619, 21, 641, 23, -1, - -1, 26, -1, 28, 29, 675, -1, 671, -1, -1, - -1, 687, -1, 683, -1, -1, 41, 661, -1, 44, - -1, 691, 692, 48, -1, 695, 0, 1, -1, -1, - 55, 56, 57, 58, 59, -1, 10, 11, -1, 13, - -1, -1, 16, -1, -1, 19, 20, 21, 22, -1, - 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, - -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, - -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, 68, 69, -1, 71, -1, 73, - 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, - 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, - -1, -1, -1, 80, 81, 82, -1, -1, 163, -1, - -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, - 124, 125, -1, -1, -1, -1, -1, -1, 132, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, -1, -1, -1, -1, 123, -1, -1, 126, - 127, 128, 129, 130, -1, -1, -1, -1, 213, -1, - -1, -1, -1, -1, 219, -1, -1, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 0, 1, -1, 251, -1, -1, -1, - -1, -1, -1, 10, 11, -1, 13, -1, -1, 16, - -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, - 37, 38, -1, 40, 41, 42, 43, -1, -1, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, - 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, - 77, 78, 79, -1, -1, -1, 83, 84, 85, -1, - -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, - -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, + 10, 17, 9, 177, 27, 49, 176, 11, 329, 19, + 54, 105, 420, 167, 18, 110, 20, 19, 22, 12, + 24, 25, 503, 11, 27, 29, 583, 10, 202, 11, + 34, 35, 16, 272, 273, 0, 19, 276, 277, 49, + 22, 13, 52, 137, 48, 49, 50, 51, 89, 18, + 52, 11, 11, 22, 13, 24, 25, 11, 22, 521, + 13, 11, 16, 13, 16, 34, 35, 132, 20, 52, + 93, 11, 24, 13, 13, 11, 11, 60, 13, 86, + 49, 11, 51, 13, 16, 31, 22, 94, 95, 96, + 93, 132, 99, 100, 132, 59, 42, 101, 30, 18, + 657, 20, 56, 22, 15, 24, 25, 61, 27, 16, + 110, 111, 23, 20, 86, 34, 35, 24, 580, 96, + 97, 10, 11, 132, 13, 15, 14, 16, 138, 110, + 49, 20, 51, 177, 14, 24, 25, 11, 122, 13, + 150, 14, 165, 11, 132, 13, 86, 86, 132, 630, + 143, 86, 196, 197, 112, 325, 86, 132, 202, 14, + 11, 315, 165, 11, 174, 175, 176, 177, 57, 14, + 122, 633, 634, 132, 93, 112, 113, 187, 188, 183, + 132, 14, 421, 166, 188, 187, 188, 56, 283, 25, + 122, 286, 202, 56, 83, 102, 56, 180, 61, 11, + 132, 13, 11, 186, 187, 188, 94, 95, 96, 97, + 132, 11, 14, 13, 94, 95, 96, 97, 14, 188, + 56, 94, 95, 96, 97, 61, 129, 130, 211, 212, + 213, 214, 22, 216, 217, 218, 33, 34, 103, 94, + 95, 96, 97, 132, 22, 132, 165, 263, 22, 94, + 95, 96, 97, 22, 264, 39, 664, 267, 22, 22, + 14, 94, 95, 96, 97, 22, 86, 274, 275, 188, + 591, 22, 255, 256, 257, 258, 259, 260, 261, 262, + 86, 16, 70, 287, 89, 20, 132, 461, 332, 24, + 131, 385, 94, 95, 96, 97, 131, 22, 94, 95, + 96, 97, 13, 22, 94, 95, 96, 97, 291, 292, + 293, 294, 295, 296, 56, 325, 94, 95, 96, 97, + 56, 331, 56, 16, 132, 94, 95, 96, 97, 331, + 313, 44, 61, 572, 15, 254, 11, 94, 95, 96, + 97, 16, 80, 94, 95, 96, 97, 10, 331, 59, + 25, 59, 131, 16, 273, 12, 25, 20, 341, 80, + 90, 24, 13, 346, 132, 32, 536, 30, 35, 36, + 37, 38, 25, 25, 41, 94, 95, 96, 97, 25, + 118, 56, 18, 99, 388, 123, 61, 22, 126, 127, + 128, 129, 130, 99, 292, 293, 419, 295, 296, 11, + 423, 411, 123, 386, 387, 126, 127, 128, 129, 130, + 420, 394, 56, 429, 588, 132, 419, 461, 12, 589, + 423, 12, 131, 430, 12, 132, 433, 94, 95, 96, + 97, 12, 415, 94, 95, 96, 97, 420, 94, 95, + 96, 97, 425, 426, 12, 455, 453, 131, 22, 459, + 16, 461, 32, 131, 131, 35, 36, 37, 38, 132, + 56, 41, 11, 11, 131, 94, 95, 96, 97, 388, + 131, 99, 90, 12, 484, 131, 126, 127, 128, 129, + 130, 22, 484, 131, 15, 468, 131, 494, 22, 496, + 131, 131, 502, 503, 94, 95, 96, 97, 88, 418, + 419, 484, 131, 22, 423, 21, 131, 23, 22, 45, + 26, 521, 28, 29, 94, 95, 96, 97, 17, 529, + 87, 531, 131, 13, 143, 41, 536, 610, 44, 425, + 664, 131, 48, 531, 94, 95, 96, 97, 446, 55, + 56, 57, 58, 59, 588, 411, 556, 80, 81, 82, + 447, 416, 417, 542, 556, 617, 423, 422, 453, 165, + 567, 419, 427, 428, 547, 94, 95, 96, 97, -1, + 580, 131, -1, 556, 590, -1, -1, -1, 588, 589, + -1, 114, 115, 116, 117, 118, 505, 603, -1, -1, + 123, -1, -1, 126, 127, 128, 129, 130, 94, 95, + 96, 97, 131, 94, 95, 96, 97, -1, -1, 625, + 617, -1, -1, 629, -1, -1, -1, 627, -1, -1, + 630, -1, -1, 633, 634, -1, -1, 610, -1, 72, + 94, 95, 96, 97, -1, 131, -1, 80, 81, 82, + 131, -1, -1, -1, 654, 661, 650, -1, -1, 165, + 93, -1, -1, -1, 664, 520, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, + 123, -1, -1, 126, 127, 128, 129, 130, -1, 608, + -1, -1, -1, -1, -1, 614, -1, -1, -1, 215, + -1, -1, -1, -1, -1, 221, 571, -1, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, -1, -1, -1, 253, -1, -1, + -1, -1, 607, -1, -1, -1, -1, 612, 613, -1, + 615, 3, 4, 5, 6, 7, 8, 9, 0, 1, + -1, -1, -1, -1, -1, -1, -1, -1, 10, 11, + -1, 13, -1, -1, 16, -1, -1, 19, 20, 21, + 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, + 32, -1, -1, 35, 36, 37, 38, -1, 40, 41, + 42, 43, -1, 668, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, 68, 69, -1, 71, + -1, 73, 74, 75, 76, 77, 78, 79, -1, -1, + -1, 83, 84, 85, -1, -1, -1, -1, -1, 91, + -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1, 119, 120, -1, 122, -1, 124, 125, -1, - 10, 11, 12, 13, -1, 132, 16, -1, -1, 19, - 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, 35, 36, 37, 38, -1, - 40, 41, 42, 43, -1, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, - -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, - -1, -1, -1, 83, 84, 85, -1, -1, -1, -1, - -1, 91, -1, -1, -1, -1, -1, -1, 98, -1, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, - -1, -1, -1, 478, 80, 81, 82, -1, -1, 119, - 120, -1, 122, -1, 124, 125, -1, 93, -1, 80, - 81, 82, 132, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, -1, -1, -1, -1, 123, -1, -1, - 126, 127, 128, 129, 130, 116, 117, 118, -1, -1, - 535, -1, 123, -1, -1, 126, 127, 128, 129, 130, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, + -1, -1, -1, -1, -1, 0, 1, 119, 120, -1, + 122, -1, 124, 125, -1, 10, 11, -1, 13, -1, + 132, 16, -1, -1, 19, 20, 21, 22, -1, 24, + 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, + 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, + -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, + 75, 76, 77, 78, 79, -1, 472, -1, 83, 84, + 85, -1, -1, -1, -1, -1, 91, -1, -1, -1, + -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, + -1, -1, 80, 81, 82, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 119, 120, -1, 122, -1, 124, + 125, -1, -1, -1, -1, -1, -1, 132, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 537, -1, -1, -1, 123, -1, -1, 126, 127, + 128, 129, 130, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 11, - 12, 13, 567, -1, 16, -1, -1, 19, 20, 21, + 12, 13, -1, 569, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, - 32, -1, -1, 35, 36, 37, 38, 592, 40, 41, + 32, -1, -1, 35, 36, 37, 38, 593, 40, 41, 42, 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, -1, 71, @@ -1246,7 +1225,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 119, 120, -1, 122, -1, - 124, 125, -1, 10, 11, -1, 13, -1, 132, 16, + 124, 125, -1, 10, 11, 12, 13, -1, 132, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, -1, 46, @@ -1254,7 +1233,7 @@ static const yytype_int16 yycheck[] = 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, -1, - -1, 88, -1, -1, 91, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 119, 120, -1, 122, -1, 124, 125, -1, @@ -1265,7 +1244,7 @@ static const yytype_int16 yycheck[] = 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, - -1, -1, -1, 83, 84, 85, -1, -1, -1, -1, + -1, -1, -1, 83, 84, 85, -1, -1, 88, -1, -1, 91, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 119, @@ -1275,17 +1254,53 @@ static const yytype_int16 yycheck[] = -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, - 63, 64, 65, 66, 67, 68, -1, -1, 71, -1, + 63, 64, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, -1, -1, -1, - 83, 84, 85, -1, 1, -1, -1, -1, 91, -1, - -1, -1, -1, 10, -1, 98, 13, -1, -1, 16, - -1, -1, 19, 20, 21, 22, -1, 24, 25, -1, - -1, -1, 29, 30, -1, -1, 119, 120, -1, 122, - -1, 124, 125, -1, -1, -1, -1, -1, -1, 132, - 47, 48, -1, -1, -1, 52, 53, -1, 55, 56, + 83, 84, 85, -1, -1, -1, -1, -1, 91, -1, + -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1, 119, 120, -1, 122, + -1, 124, 125, -1, 10, 11, -1, 13, -1, 132, + 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, + 36, 37, 38, -1, 40, 41, 42, 43, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, + 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, + 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, + -1, 1, -1, -1, -1, 91, -1, -1, -1, -1, + 10, -1, 98, 13, -1, -1, 16, -1, -1, 19, + 20, 21, 22, -1, 24, 25, -1, -1, -1, 29, + 30, -1, -1, 119, 120, -1, 122, -1, 124, 125, + -1, -1, -1, -1, -1, -1, 132, 47, 48, -1, + -1, -1, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, + -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, + -1, -1, 1, 83, 84, 85, -1, -1, -1, -1, + -1, 10, -1, -1, 13, -1, -1, 16, 98, -1, + 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, + 29, 30, -1, -1, -1, -1, -1, -1, -1, 119, + 120, -1, 122, -1, 124, 125, -1, -1, 47, 48, + -1, -1, 132, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, + -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, + 79, -1, -1, -1, 83, 84, 85, -1, -1, -1, + -1, -1, 10, 11, -1, 13, -1, -1, 16, 98, + -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, + -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 119, 120, -1, 122, -1, 124, 125, -1, -1, 47, + 48, -1, 131, 132, 52, 53, -1, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, + 78, 79, -1, -1, -1, 83, 84, 85, -1, -1, + -1, -1, -1, 10, 11, -1, 13, -1, -1, 16, + 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, + -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, + -1, 119, 120, -1, 122, -1, 124, 125, -1, -1, + 47, 48, -1, -1, 132, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, - 77, 78, 79, -1, -1, 1, 83, 84, 85, -1, + 77, 78, 79, -1, -1, -1, 83, 84, 85, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, @@ -1294,27 +1309,27 @@ static const yytype_int16 yycheck[] = 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, - -1, -1, -1, -1, -1, 10, 11, -1, 13, -1, + -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, 124, 125, -1, -1, 47, 48, -1, 131, 132, 52, 53, -1, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, - 85, -1, -1, -1, -1, -1, 10, 11, -1, 13, + 85, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, 124, - 125, -1, -1, 47, 48, -1, -1, 132, 52, 53, + 125, -1, -1, 47, 48, -1, 131, 132, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, - 84, 85, -1, -1, -1, -1, -1, 10, -1, -1, + 84, 85, -1, -1, -1, -1, -1, 10, 11, -1, 13, -1, -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, - 124, 125, -1, -1, 47, 48, -1, -1, 132, 52, + 124, 125, -1, -1, 47, 48, -1, 131, 132, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, @@ -1322,7 +1337,7 @@ static const yytype_int16 yycheck[] = -1, 13, -1, -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, - -1, 124, 125, -1, -1, 47, 48, -1, 131, 132, + -1, 124, 125, -1, -1, 47, 48, -1, -1, 132, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, @@ -1335,7 +1350,7 @@ static const yytype_int16 yycheck[] = -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, -1, -1, -1, -1, -1, - 10, 11, -1, 13, -1, -1, 16, 98, -1, 19, + 10, -1, -1, 13, -1, -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, 124, 125, -1, -1, 47, 48, -1, @@ -1347,7 +1362,7 @@ static const yytype_int16 yycheck[] = 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, 124, 125, -1, -1, 47, 48, - -1, -1, 132, 52, 53, -1, 55, 56, 57, 58, + -1, 131, 132, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, -1, -1, -1, @@ -1363,7 +1378,7 @@ static const yytype_int16 yycheck[] = 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, 124, 125, -1, -1, - 47, 48, -1, 131, 132, 52, 53, -1, 55, 56, + 47, 48, -1, -1, 132, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, -1, @@ -1371,79 +1386,55 @@ static const yytype_int16 yycheck[] = 16, 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, 124, 125, -1, - -1, 47, 48, -1, 131, 132, 52, 53, -1, 55, + -1, 47, 48, -1, -1, 132, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, - -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, - -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, - 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, - -1, -1, -1, 119, 120, -1, 122, -1, 124, 125, - -1, -1, 47, 48, -1, 131, 132, 52, 53, -1, - 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, - 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, - 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, - 85, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 98, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 119, 120, -1, 122, -1, 124, - 125, -1, -1, 47, 48, -1, -1, 132, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, - 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, - 84, 85, -1, -1, -1, -1, -1, 10, -1, -1, - 13, -1, -1, 16, 98, -1, 19, 20, 21, -1, - -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, - -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, - 124, 125, -1, -1, 47, 48, -1, -1, 132, 52, - 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, - 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, - -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, - 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 98, -1, -1, -1, 72, - -1, -1, -1, -1, -1, -1, -1, 80, 81, 82, - -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, - 93, 124, 125, -1, -1, -1, 99, 100, 101, 132, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, - 123, 72, -1, 126, 127, 128, 129, 130, -1, 80, - 81, 82, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 93, -1, -1, -1, -1, -1, 99, 100, - 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, - -1, -1, 123, 72, -1, 126, 127, 128, 129, 130, - -1, 80, 81, 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, + -1, -1, 98, -1, -1, -1, 72, -1, -1, -1, + -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, + -1, -1, -1, 119, 120, -1, 122, 93, 124, 125, + -1, -1, -1, 99, 100, 101, 132, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, -1, -1, -1, -1, 123, 72, -1, + 126, 127, 128, 129, 130, -1, 80, 81, 82, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, + -1, -1, -1, -1, -1, 99, 100, 101, -1, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, -1, -1, -1, 123, + 72, -1, 126, 127, 128, 129, 130, -1, 80, 81, + 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 99, 100, 101, + -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, + -1, 123, 72, -1, 126, 127, 128, 129, 130, -1, + 80, 81, 82, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 80, 81, + -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, + -1, -1, -1, 123, 72, -1, 126, 127, 128, 129, + 130, -1, 80, 81, 82, 117, 118, -1, -1, -1, + -1, 123, -1, -1, 126, 127, 128, 129, 130, -1, + -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 80, 81, 82, -1, 123, -1, -1, 126, 127, + 128, 129, 130, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 80, 81, 82, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - -1, -1, -1, -1, 123, 72, -1, 126, 127, 128, - 129, 130, -1, 80, 81, 82, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 80, 81, -1, 101, -1, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, -1, -1, -1, -1, 123, 72, -1, 126, - 127, 128, 129, 130, -1, 80, 81, 82, 117, 118, + -1, 80, 81, 82, 123, -1, -1, 126, 127, 128, + 129, 130, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 80, 81, 82, -1, 123, -1, -1, 126, + 127, 128, 129, 130, -1, 114, 115, 116, 117, 118, + -1, 80, 81, 82, 123, -1, -1, 126, 127, 128, + 129, 130, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 80, 81, 82, -1, 123, -1, -1, 126, 127, + 128, 129, 130, 112, 113, 114, 115, 116, 117, 118, + 80, 81, 82, -1, 123, -1, -1, 126, 127, 128, + 129, 130, -1, -1, -1, -1, 115, 116, 117, 118, -1, -1, -1, -1, 123, -1, -1, 126, 127, 128, - 129, 130, -1, -1, -1, -1, -1, -1, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 80, 81, 82, -1, 123, -1, - -1, 126, 127, 128, 129, 130, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 80, 81, 82, -1, - -1, -1, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, -1, 80, 81, 82, 123, -1, -1, - 126, 127, 128, 129, 130, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 80, 81, 82, -1, 123, - -1, -1, 126, 127, 128, 129, 130, -1, 114, 115, - 116, 117, 118, -1, 80, 81, 82, 123, -1, -1, - 126, 127, 128, 129, 130, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 80, 81, 82, -1, 123, -1, - -1, 126, 127, 128, 129, 130, 112, 113, 114, 115, - 116, 117, 118, 80, 81, 82, -1, 123, -1, -1, - 126, 127, 128, 129, 130, -1, -1, -1, 114, 115, - 116, 117, 118, -1, -1, -1, -1, 123, -1, -1, - 126, 127, 128, 129, 130, -1, -1, -1, 115, 116, - 117, 118, -1, -1, -1, -1, 123, -1, -1, 126, - 127, 128, 129, 130 + 129, 130, -1, -1, -1, -1, 116, 117, 118, -1, + -1, -1, -1, 123, -1, -1, 126, 127, 128, 129, + 130 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -1451,76 +1442,72 @@ static const yytype_int16 yycheck[] = static const yytype_int16 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 9, 134, 135, - 136, 137, 138, 139, 140, 141, 0, 180, 10, 13, + 136, 137, 138, 139, 140, 141, 0, 183, 10, 13, 16, 19, 20, 21, 24, 25, 29, 30, 47, 48, 52, 53, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 71, 74, 75, 76, 77, 78, 79, 83, 84, 85, 98, 119, 120, 122, 124, 125, - 132, 178, 232, 233, 234, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 248, 254, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 11, 177, 1, 22, + 132, 181, 235, 236, 237, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 251, 257, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 11, 180, 1, 22, 26, 27, 28, 31, 32, 35, 36, 37, 38, 40, 41, 42, 43, 46, 49, 50, 51, 54, 68, 73, - 91, 142, 143, 144, 146, 147, 148, 149, 150, 154, - 155, 156, 157, 158, 159, 161, 163, 165, 167, 169, - 170, 171, 173, 174, 175, 176, 177, 190, 194, 232, - 251, 69, 188, 189, 190, 178, 186, 225, 226, 186, - 56, 61, 177, 263, 271, 254, 271, 246, 271, 246, - 271, 271, 246, 122, 132, 249, 263, 264, 265, 246, - 177, 246, 206, 206, 207, 271, 271, 247, 13, 132, - 246, 206, 246, 132, 132, 89, 132, 177, 246, 56, - 178, 233, 253, 263, 271, 177, 271, 254, 56, 61, - 209, 233, 246, 246, 246, 246, 246, 131, 232, 94, - 95, 96, 97, 15, 11, 13, 132, 112, 113, 112, - 110, 111, 110, 72, 80, 81, 82, 93, 99, 100, - 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 123, 126, 127, - 128, 129, 130, 132, 11, 13, 11, 13, 11, 13, - 11, 180, 208, 56, 56, 250, 263, 264, 265, 132, - 132, 30, 122, 132, 261, 263, 132, 132, 132, 132, - 177, 11, 181, 181, 205, 209, 22, 205, 209, 39, - 178, 196, 22, 32, 35, 36, 37, 38, 41, 22, - 189, 190, 188, 20, 24, 102, 178, 215, 216, 217, - 218, 220, 221, 222, 14, 132, 246, 249, 263, 264, - 265, 131, 232, 86, 212, 70, 178, 210, 86, 178, - 211, 211, 253, 132, 89, 232, 131, 177, 131, 131, - 232, 254, 254, 271, 233, 233, 22, 253, 13, 131, - 232, 232, 232, 232, 246, 232, 232, 131, 232, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 10, 11, 13, - 16, 20, 24, 25, 57, 83, 132, 236, 263, 131, - 232, 232, 232, 232, 232, 232, 232, 232, 186, 56, - 178, 204, 56, 56, 178, 212, 213, 180, 180, 122, - 180, 30, 259, 260, 262, 263, 264, 265, 180, 180, - 132, 180, 180, 180, 180, 182, 44, 172, 205, 162, - 205, 177, 193, 232, 193, 193, 201, 232, 193, 193, - 61, 214, 16, 15, 131, 232, 212, 131, 59, 211, - 59, 180, 230, 230, 254, 233, 14, 235, 131, 90, - 131, 232, 12, 232, 13, 22, 14, 131, 102, 25, - 209, 232, 232, 25, 25, 25, 25, 25, 131, 232, - 132, 131, 22, 14, 22, 14, 22, 14, 22, 12, - 18, 179, 11, 22, 213, 99, 202, 232, 202, 132, - 256, 263, 132, 178, 194, 199, 202, 203, 232, 259, - 180, 201, 200, 232, 202, 202, 186, 180, 56, 166, - 22, 180, 227, 228, 164, 99, 214, 220, 131, 228, - 132, 178, 223, 224, 131, 23, 178, 255, 253, 131, - 14, 232, 12, 246, 132, 22, 14, 131, 254, 12, - 12, 12, 12, 180, 180, 11, 22, 252, 131, 131, - 257, 258, 263, 132, 180, 131, 22, 153, 202, 131, - 131, 131, 131, 12, 132, 178, 183, 56, 210, 11, - 211, 246, 99, 225, 11, 232, 90, 14, 254, 12, - 131, 22, 160, 180, 246, 181, 181, 15, 131, 202, - 202, 181, 151, 132, 131, 198, 198, 181, 181, 184, - 168, 253, 211, 186, 22, 229, 230, 219, 246, 131, - 231, 131, 88, 186, 145, 33, 34, 178, 195, 195, - 263, 132, 131, 131, 196, 200, 202, 181, 181, 181, - 263, 181, 22, 227, 12, 186, 178, 187, 12, 186, - 181, 132, 202, 181, 181, 22, 131, 196, 196, 196, - 185, 45, 197, 12, 22, 59, 191, 12, 202, 131, - 196, 196, 152, 181, 131, 177, 17, 87, 178, 192, - 131, 181, 198, 196, 186, 181, 196, 203, 88, 195, - 131, 181 + 91, 142, 143, 144, 146, 147, 148, 149, 150, 151, + 154, 155, 156, 157, 158, 159, 160, 162, 164, 166, + 168, 170, 171, 172, 174, 175, 176, 179, 180, 193, + 197, 235, 254, 69, 191, 192, 193, 181, 189, 228, + 229, 189, 56, 61, 180, 266, 274, 257, 274, 249, + 274, 249, 274, 274, 249, 122, 132, 252, 266, 267, + 268, 249, 180, 249, 209, 209, 210, 274, 274, 250, + 13, 132, 249, 209, 249, 132, 132, 89, 132, 180, + 249, 56, 181, 236, 256, 266, 274, 180, 274, 257, + 56, 61, 212, 236, 249, 249, 249, 249, 249, 131, + 235, 94, 95, 96, 97, 15, 11, 13, 132, 112, + 113, 112, 110, 111, 110, 72, 80, 81, 82, 93, + 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 123, + 126, 127, 128, 129, 130, 132, 11, 13, 11, 13, + 11, 13, 11, 183, 211, 56, 56, 253, 266, 267, + 268, 183, 183, 183, 132, 132, 183, 183, 180, 11, + 184, 184, 208, 212, 22, 208, 212, 39, 181, 199, + 22, 32, 35, 36, 37, 38, 41, 22, 192, 193, + 191, 20, 24, 102, 181, 218, 219, 220, 221, 223, + 224, 225, 14, 132, 249, 252, 266, 267, 268, 131, + 235, 86, 215, 70, 181, 213, 86, 181, 214, 214, + 256, 132, 89, 235, 131, 180, 131, 131, 235, 257, + 257, 274, 236, 236, 22, 256, 13, 131, 235, 235, + 235, 235, 249, 235, 235, 131, 235, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 10, 11, 13, 16, 20, + 24, 25, 57, 83, 132, 239, 266, 131, 235, 235, + 235, 235, 235, 235, 235, 235, 189, 56, 181, 207, + 56, 56, 181, 215, 216, 132, 178, 178, 30, 122, + 132, 177, 178, 264, 266, 183, 183, 178, 178, 185, + 44, 173, 208, 163, 208, 180, 196, 235, 196, 196, + 204, 235, 196, 196, 61, 217, 16, 15, 131, 235, + 215, 131, 59, 214, 59, 183, 233, 233, 257, 236, + 14, 238, 131, 90, 131, 235, 12, 235, 13, 22, + 14, 131, 102, 25, 212, 235, 235, 25, 25, 25, + 25, 25, 131, 235, 132, 131, 22, 14, 22, 14, + 22, 14, 22, 12, 18, 182, 11, 22, 216, 99, + 205, 235, 184, 184, 122, 132, 259, 266, 30, 262, + 263, 265, 266, 267, 268, 181, 197, 202, 206, 235, + 178, 184, 262, 204, 203, 235, 184, 184, 189, 183, + 56, 167, 22, 183, 230, 231, 165, 99, 217, 223, + 131, 231, 132, 181, 226, 227, 131, 23, 181, 258, + 256, 131, 14, 235, 12, 249, 132, 22, 14, 131, + 257, 12, 12, 12, 12, 183, 183, 11, 22, 255, + 131, 33, 34, 181, 198, 198, 260, 261, 266, 22, + 184, 199, 131, 131, 12, 132, 181, 186, 56, 213, + 11, 214, 249, 99, 228, 11, 235, 90, 14, 257, + 12, 131, 22, 161, 183, 249, 184, 178, 15, 131, + 152, 199, 201, 201, 187, 169, 256, 214, 189, 22, + 232, 233, 222, 249, 131, 234, 131, 88, 189, 145, + 184, 266, 203, 184, 184, 266, 184, 22, 230, 12, + 189, 181, 190, 12, 189, 198, 22, 199, 199, 188, + 45, 200, 12, 22, 59, 194, 12, 153, 131, 180, + 17, 87, 181, 195, 201, 189, 206, 88, 131, 184 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -1528,42 +1515,42 @@ static const yytype_int16 yyr1[] = { 0, 133, 135, 134, 136, 134, 137, 134, 138, 134, 139, 134, 140, 134, 141, 134, 142, 143, 145, 144, - 146, 147, 148, 149, 151, 152, 150, 150, 150, 150, - 153, 150, 150, 150, 154, 155, 156, 157, 158, 160, - 159, 162, 161, 164, 163, 166, 165, 168, 167, 169, - 170, 172, 171, 173, 174, 175, 176, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 183, 186, 186, - 187, 187, 188, 188, 189, 189, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 191, 192, 192, 193, 194, 194, 194, 194, 194, - 194, 194, 194, 195, 195, 195, 196, 196, 197, 197, - 198, 199, 199, 200, 200, 201, 202, 203, 204, 204, - 205, 206, 207, 208, 209, 209, 210, 210, 211, 211, - 211, 212, 212, 213, 213, 214, 214, 215, 215, 216, - 216, 216, 217, 217, 218, 218, 219, 219, 220, 220, - 221, 221, 221, 222, 222, 223, 223, 224, 226, 225, - 227, 227, 228, 229, 229, 231, 230, 232, 232, 232, - 232, 232, 233, 233, 233, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 235, 234, 236, - 236, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 239, 239, 239, - 239, 239, 240, 240, 241, 241, 241, 241, 242, 242, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, - 244, 244, 244, 244, 244, 244, 244, 245, 245, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 247, 246, 246, - 246, 246, 248, 248, 248, 248, 249, 249, 249, 249, - 249, 250, 250, 250, 251, 252, 251, 253, 253, 254, - 254, 255, 255, 256, 257, 257, 257, 258, 259, 259, - 259, 260, 260, 261, 261, 262, 263, 264, 265, 266, - 266, 267, 268, 268, 269, 269, 270, 270, 271, 271, - 271, 271 + 146, 147, 148, 149, 150, 150, 152, 153, 151, 154, + 154, 155, 156, 157, 158, 159, 161, 160, 163, 162, + 165, 164, 167, 166, 169, 168, 170, 171, 173, 172, + 174, 175, 176, 177, 177, 177, 177, 177, 178, 179, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 186, 189, 189, 190, 190, 191, 191, 192, 192, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 194, 195, 195, 196, 197, 197, + 197, 197, 197, 197, 197, 197, 198, 198, 198, 199, + 199, 200, 200, 201, 202, 202, 203, 203, 204, 205, + 206, 207, 207, 208, 209, 210, 211, 212, 212, 213, + 213, 214, 214, 214, 215, 215, 216, 216, 217, 217, + 218, 218, 219, 219, 219, 220, 220, 221, 221, 222, + 222, 223, 223, 224, 224, 224, 225, 225, 226, 226, + 227, 229, 228, 230, 230, 231, 232, 232, 234, 233, + 235, 235, 235, 235, 235, 236, 236, 236, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 238, 237, 239, 239, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 242, 242, 242, 242, 242, 243, 243, 244, 244, 244, + 244, 245, 245, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, + 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 250, 249, 249, 249, 249, 251, 251, 251, 251, 252, + 252, 252, 252, 252, 253, 253, 253, 254, 255, 254, + 256, 256, 257, 257, 258, 258, 259, 260, 260, 260, + 261, 262, 262, 262, 263, 263, 264, 264, 265, 266, + 267, 268, 269, 269, 270, 271, 271, 272, 272, 273, + 273, 274, 274, 274, 274 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -1571,42 +1558,42 @@ static const yytype_int8 yyr2[] = { 0, 2, 0, 4, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 2, 5, 0, 9, - 2, 2, 2, 2, 0, 0, 13, 9, 11, 8, - 0, 10, 9, 7, 4, 6, 7, 1, 4, 0, - 8, 0, 4, 0, 6, 0, 7, 0, 8, 7, - 8, 0, 7, 6, 8, 2, 1, 1, 4, 0, - 7, 0, 4, 0, 1, 0, 0, 5, 1, 2, - 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, + 2, 2, 2, 2, 1, 1, 0, 0, 13, 6, + 5, 4, 4, 5, 1, 4, 0, 8, 0, 4, + 0, 6, 0, 7, 0, 8, 5, 8, 0, 7, + 4, 8, 2, 1, 2, 4, 2, 2, 3, 1, + 1, 4, 0, 7, 0, 4, 0, 1, 0, 0, + 5, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 3, 1, 1, 1, 3, 3, 3, - 3, 3, 3, 1, 2, 6, 1, 2, 0, 2, - 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, - 1, 2, 1, 1, 1, 0, 1, 1, 1, 2, - 3, 4, 0, 1, 3, 5, 0, 1, 1, 1, - 2, 3, 1, 1, 1, 1, 1, 3, 0, 2, - 1, 1, 4, 1, 1, 0, 6, 3, 3, 3, - 3, 1, 2, 3, 1, 3, 3, 5, 6, 3, - 7, 4, 3, 5, 2, 4, 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, 1, 1, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 1, 3, 2, - 2, 3, 3, 3, 1, 3, 2, 2, 3, 3, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 4, 5, 4, 4, 3, 4, 3, 2, 2, 1, - 1, 1, 1, 5, 2, 1, 2, 3, 1, 2, - 1, 1, 1, 1, 1, 1, 4, 4, 5, 5, - 1, 1, 3, 4, 3, 4, 4, 4, 4, 4, - 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, - 1, 3, 1, 3, 1, 3, 4, 0, 6, 1, - 1, 1, 3, 2, 4, 3, 3, 2, 1, 1, - 1, 1, 1, 1, 3, 0, 6, 1, 1, 1, - 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, - 4, 2, 1, 3, 1, 3, 1, 3, 1, 1, - 1, 1 + 1, 1, 1, 1, 2, 1, 3, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 1, 2, 4, 1, + 2, 0, 2, 0, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, + 1, 1, 2, 1, 2, 1, 1, 1, 0, 1, + 1, 1, 2, 3, 4, 0, 1, 3, 5, 0, + 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, + 3, 0, 2, 1, 1, 4, 1, 1, 0, 6, + 3, 3, 3, 3, 1, 2, 3, 1, 3, 3, + 5, 6, 3, 7, 4, 3, 5, 2, 4, 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, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 3, 2, 2, 3, 3, 3, 1, 3, 2, + 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 4, 5, 4, 4, 3, 4, 3, + 2, 2, 1, 1, 1, 1, 5, 2, 1, 2, + 3, 1, 2, 1, 1, 1, 1, 1, 1, 4, + 4, 5, 5, 1, 1, 3, 4, 3, 4, 4, + 4, 4, 4, 1, 2, 2, 1, 2, 2, 1, + 2, 1, 2, 1, 3, 1, 3, 1, 3, 4, + 0, 6, 1, 1, 1, 3, 2, 4, 3, 3, + 2, 1, 1, 1, 1, 1, 1, 3, 0, 6, + 1, 1, 1, 1, 1, 2, 1, 2, 3, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 4, 2, 1, 3, 1, 3, 1, + 3, 1, 1, 1, 1 }; typedef enum { @@ -1647,37 +1634,37 @@ static const toketypes yy_type_tab[] = toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_ival, toketype_ival, - toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, + toketype_opval, toketype_ival, toketype_ival, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, - toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_ival, - toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_ival, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, 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_ival, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, + toketype_opval, toketype_opval, toketype_ival, + toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_ival, + toketype_opval, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, + toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, 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_ival, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, + toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, - toketype_opval, toketype_opval, toketype_pval, toketype_opval, toketype_ival, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_pval, + toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval + toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval }; /* Generated from: - * 57cc742fa623ae44e0575b737db1c674688361cd405620798cf50de0d81cadfc perly.y + * 79b790bd3089e5926f207bbe6d99198f140aaaf5a5a4bd4a6318360abb98a430 perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.y b/perly.y index da5eb04280e2..6d845ebb8e91 100644 --- a/perly.y +++ b/perly.y @@ -103,6 +103,8 @@ %type bare_statement_expression %type bare_statement_field_declaration %type bare_statement_for +%type bare_statement_for_control +%type bare_statement_for_over %type bare_statement_format %type bare_statement_given %type bare_statement_if @@ -119,6 +121,8 @@ %type bare_statement_when %type bare_statement_while %type bare_statement_yadayada +%type clause_for_over_cursor +%type clause_mexpr %type startsub startanonsub startanonmethod startformsub @@ -345,9 +349,14 @@ bare_statement_field_declaration ; bare_statement_for + : bare_statement_for_control + | bare_statement_for_over + ; + +bare_statement_for_control : KW_FOR - PERLY_PAREN_OPEN remember + PERLY_PAREN_OPEN mnexpr[init_mnexpr] PERLY_SEMICOLON { @@ -376,106 +385,22 @@ bare_statement_for $$ = block_end($remember, forop); parser->copline = (line_t)$KW_FOR; } - | KW_FOR - KW_MY - remember - my_scalar - PERLY_PAREN_OPEN - mexpr - PERLY_PAREN_CLOSE - mblock - cont - { - $$ = block_end($remember, newFOROP(0, $my_scalar, $mexpr, $mblock, $cont)); - parser->copline = (line_t)$KW_FOR; - } - | KW_FOR - KW_MY - remember - PERLY_PAREN_OPEN - my_list_of_scalars - PERLY_PAREN_CLOSE - PERLY_PAREN_OPEN - mexpr - PERLY_PAREN_CLOSE - mblock - cont - { - if ($my_list_of_scalars->op_type == OP_PADSV) - /* degenerate case of 1 var: for my ($x) .... - Flag it so it can be special-cased in newFOROP */ - $my_list_of_scalars->op_flags |= OPf_PARENS; - $$ = block_end($remember, newFOROP(0, $my_list_of_scalars, $mexpr, $mblock, $cont)); - parser->copline = (line_t)$KW_FOR; - } - | KW_FOR - scalar - PERLY_PAREN_OPEN - remember - mexpr - PERLY_PAREN_CLOSE - mblock - cont - { - $$ = block_end($remember, newFOROP(0, op_lvalue($scalar, OP_ENTERLOOP), $mexpr, $mblock, $cont)); - parser->copline = (line_t)$KW_FOR; - } - | KW_FOR - my_refgen - remember - my_var - { - parser->in_my = 0; - $$ = my($my_var); - }[variable] - PERLY_PAREN_OPEN - mexpr - PERLY_PAREN_CLOSE - mblock - cont - { - $$ = block_end( - $remember, - newFOROP( - 0, - op_lvalue( - newUNOP(OP_REFGEN, 0, $variable), - OP_ENTERLOOP - ), - $mexpr, - $mblock, - $cont - ) - ); - parser->copline = (line_t)$KW_FOR; - } - | KW_FOR - REFGEN - refgen_topic - PERLY_PAREN_OPEN + ; + +bare_statement_for_over + : KW_FOR remember - mexpr - PERLY_PAREN_CLOSE + clause_for_over_cursor[cursor] + clause_mexpr[mexpr] mblock cont { - $$ = block_end ( - $remember, - newFOROP ( - 0, - op_lvalue (newUNOP(OP_REFGEN, 0, $refgen_topic), OP_ENTERLOOP), - $mexpr, - $mblock, - $cont - ) - ); + $$ = block_end($remember, newFOROP(0, $cursor, $mexpr, $mblock, $cont)); parser->copline = (line_t)$KW_FOR; } | KW_FOR - PERLY_PAREN_OPEN remember - mexpr - PERLY_PAREN_CLOSE + clause_mexpr[mexpr] mblock cont { @@ -502,10 +427,8 @@ bare_statement_format bare_statement_given : KW_GIVEN - PERLY_PAREN_OPEN remember - mexpr - PERLY_PAREN_CLOSE + clause_mexpr[mexpr] mblock { $$ = block_end($remember, newGIVENOP($mexpr, op_scope($mblock), 0)); @@ -515,10 +438,8 @@ bare_statement_given bare_statement_if : KW_IF - PERLY_PAREN_OPEN remember - mexpr - PERLY_PAREN_CLOSE + clause_mexpr[mexpr] mblock else { @@ -681,10 +602,8 @@ bare_statement_try_catch bare_statement_unless : KW_UNLESS - PERLY_PAREN_OPEN remember - mexpr - PERLY_PAREN_CLOSE + clause_mexpr[mexpr] mblock else { @@ -728,10 +647,8 @@ bare_statement_utilize bare_statement_when : KW_WHEN - PERLY_PAREN_OPEN remember - mexpr - PERLY_PAREN_CLOSE + clause_mexpr[mexpr] mblock { $$ = block_end($remember, newWHENOP($mexpr, op_scope($mblock))); @@ -761,6 +678,55 @@ bare_statement_yadayada } ; +clause_for_over_cursor + : scalar + { + $$ = op_lvalue ($scalar, OP_ENTERLOOP); + } + | KW_MY + my_scalar + { + $$ = $my_scalar; + } + | KW_MY + PERLY_PAREN_OPEN + my_list_of_scalars + PERLY_PAREN_CLOSE + { + if ($my_list_of_scalars->op_type == OP_PADSV) + /* degenerate case of 1 var: for my ($x) .... + Flag it so it can be special-cased in newFOROP */ + $my_list_of_scalars->op_flags |= OPf_PARENS; + $$ = $my_list_of_scalars; + } + | my_refgen + my_var + { + parser->in_my = 0; + $$ = op_lvalue ( + newUNOP (OP_REFGEN, 0, my ($my_var)), + OP_ENTERLOOP + ); + } + | REFGEN + refgen_topic + { + $$ = op_lvalue ( + newUNOP (OP_REFGEN, 0, $refgen_topic), + OP_ENTERLOOP + ); + } + ; + +clause_mexpr + : PERLY_PAREN_OPEN + mexpr + PERLY_PAREN_CLOSE + { + $$ = $mexpr; + } + ; + /* Either a signatured 'sub' or 'method' keyword */ sigsub_or_method_named : KW_SUB_named_sig @@ -955,7 +921,7 @@ else ($mblock)->op_flags |= OPf_PARENS; $$ = op_scope($mblock); } - | KW_ELSIF PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock else[else.recurse] + | KW_ELSIF clause_mexpr[mexpr] mblock else[else.recurse] { parser->copline = (line_t)$KW_ELSIF; $$ = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,$mexpr), diff --git a/t/op/for-control-scope.t b/t/op/for-control-scope.t new file mode 100644 index 000000000000..34846f216ec5 --- /dev/null +++ b/t/op/for-control-scope.t @@ -0,0 +1,74 @@ +#!./perl + +# Test lexical scope of `for` statement, variant: `for (init; control condition; post iterate)` + +BEGIN { + chdir 't' if -d 't'; + require "./test.pl"; + set_up_inc('../lib'); +} + +use v5.38; + +assume q ([for-control] modifies global variable) + => expect => q (3) + => eval => q { + no strict; + no warnings; + + for ($control_global = 1; $control_global < 3; ++$control_global) { } + + $control_global // q (undef); + }; + +assume q ([for-control] `my` variable is restricted into `for`'s lexical scope) + => expect => q (42) + => eval => q { + use strict; + use warnings FATAL => q (all); + + my $control_my = 42; + + for (my $control_my = 1; $control_my < 3; ++$control_my) { } + + $control_my; + }; + +assume q ([for-control] `our` variable declared inside `for` scope isn't visible outside) + => throws => qr (^Variable ".control_our" is not imported) + => eval => q { + use strict; + use warnings FATAL => q (all); + + for (our $control_our = 1; $control_our < 3; ++$control_our) { } + + $control_our; + }; + +assume q ([for-control] `our` variable inside `for` scope redeclares outer variable) + => throws => qr (^"our" variable .control_redeclared redeclared) + => eval => q { + use strict; + use warnings FATAL => q (all); + + our $control_redeclared = 42; + + for (our $control_redeclared = 1; $control_redeclared < 3; ++$control_redeclared) { } + + $control_redeclared; + }; + +assume q ([for-control] `local` localizes variable ) + => expect => q (3) + => eval => q { + use strict; + use warnings FATAL => q (all); + + our $control_local = 42; + + for (local $control_local = 1; $control_local < 3; ++$control_local) { } + + $control_local; + }; + +done_testing; diff --git a/t/op/for-over-scope.t b/t/op/for-over-scope.t new file mode 100644 index 000000000000..990abf6ebaec --- /dev/null +++ b/t/op/for-over-scope.t @@ -0,0 +1,163 @@ +#!./perl + +# Test lexical scope of `for` statement, variant: `for $var (@array)` (foreach) +# Tested behaviour: +# - capability to declare / use given cursor +# - visibility of given cursor in both for-block and continue-block +# - behaviour of cursor after for-loop (exists? what value?) + +BEGIN { + chdir 't' if -d 't'; + require "./test.pl"; + set_up_inc('../lib'); +} + +use v5.38; + +assume q ([for-over] global cursor is visible in `continue` block and its original value is preserved) + => expect => q (/Foo.Foo=42) + => eval => q { + my $cursor_global = 42; + + for $cursor_global (qw (Foo)) { + $result .= q (/) . $cursor_global; + } continue { + $result .= q (.) . $cursor_global; + } + + $result .= q (=) . ($cursor_global // q ([undef])); + }; + +assume q ([for-over] `our` cursor is visible in continue block) + => expect => q (/Foo.Foo) + => eval => q { + use warnings FATAL => q (all); + + for our $cursor_our_continue (qw (Foo)) { + $result .= q (/) . $cursor_our_continue; + } continue { + $result .= q (.) . $cursor_our_continue; + } + + $result; + }; + +assume q ([for-over] `our` cursor is not visible after `for` loop) + => throws => qr (^Variable "\$cursor_our_after" is not imported) + => eval => q { + use warnings FATAL => q (all); + + for our $cursor_our_after (qw (Foo)) { + } + + $result .= $cursor_our_after; + }; + +assume q ([for-over] `our` cursor redeclares already declared global variable) + => throws => qr (^"our" variable .cursor_redeclared redeclared) + => eval => q { + use warnings FATAL => q (all); + + our $cursor_redeclared = 42; + + for our $cursor_redeclared () { + } + }; + +assume q ([for-over] `my` cursor is visible in `continue` block) + => expect => q (/Foo.Foo) + => eval => q { + use warnings FATAL => q (all); + + for my $cursor_my (q (Foo)) { + $result .= q (/) . $cursor_my; + } continue { + $result .= q (.) . $cursor_my; + } + + $result; + }; + +assume q ([for-over] `my` cursor is not visible after `for` loop) + => throws => qr (^Global symbol "\$cursor_my_after" requires explicit package name) + => eval => q { + use strict; + use warnings; + + for my $cursor_my_after (q (Foo)) { + } + + $cursor_my_after; + }; + +assume q ([for-over] `my` multi-cursors are visible in `continue` block) + => expect => q (/FooBar.FooBar) + => eval => q { + use warnings FATAL => q (all); + + for my ($cursor_multi_1, $cursor_multi_2) (qw (Foo Bar)) { + $result .= q (/) . $cursor_multi_1 . $cursor_multi_2; + } continue { + $result .= q (.) . $cursor_multi_1 . $cursor_multi_2; + } + + $result; + }; + +assume q ([for-over] `my` multi-cursors are not visible after `for` loop) + => throws => qr (^Global symbol "\$cursor_my_multi_1" requires explicit package name) + => eval => q { + use warnings FATAL => q (all); + + for my ($cursor_my_multi_1, $cursor_my_multi_2) (qw (Foo Bar)) { + } continue { + } + + $cursor_my_multi_1; + }; + +assume q ([for-over] `refaliasing` global cursor doesn't preserve it's original value) + => expect => q (/Foo.Foo=Foo) + => eval => q { + use warnings FATAL => q (all); + use experimental qw (refaliasing); + + my $cursor_refalias = 42; + + for \ $cursor_refalias (\ qw (Foo)) { + $result .= q (/) . $cursor_refalias; + } continue { + $result .= q (.) . $cursor_refalias; + } + + $result . q (=) . $cursor_refalias; + }; + +assume q ([for-over] `declared_refs` is visible in continue block) + => expect => q (/Foo.Foo) + => eval => q { + use warnings FATAL => q (all); + use experimental qw (declared_refs); + + for my \ $cursor_refs (\ qw (Foo)) { + $result .= q (/) . $cursor_refs; + } continue { + $result .= q (.) . $cursor_refs; + } + + $result; + }; + +assume q ([for-over] `declared_refs` is not visible after loop) + => throws => qr (^Global symbol "\$cursor_refs_after" requires explicit package name) + => eval => q { + use warnings FATAL => q (all); + use experimental qw (declared_refs); + + for my \ $cursor_refs_after (\ qw (Foo)) { + } + + $cursor_refs_after; + }; + +done_testing; diff --git a/t/test.pl b/t/test.pl index af208c5de97b..2ac107e45db1 100644 --- a/t/test.pl +++ b/t/test.pl @@ -41,6 +41,11 @@ our $NO_ENDING = 0; our $Tests_Are_Passing = 1; +sub diag; +sub fail; +sub is; +sub like; + # Use this instead of print to avoid interference while testing globals. sub _print { local($\, $", $,) = (undef, ' ', ''); @@ -52,6 +57,68 @@ sub _print_stderr { print STDERR @_; } +sub assume { + my ($message, %args) = @_; + + # Single assert function which: + # - detects whether code should successed or faile + # - detect comparison method: `is` / `like` + + # Accept named arguments: + # + # eval => code + # - code to evaluate + # - code is evaluated with known and initialized variable: `my $result = q ()` + # + # expect => string / regex + # - when specified it expects evaluated code to not fail and validates result + # - when not specified it just expect evaluated to not fail + # - accepts string (acting as `is`) or regex (acting as `like`) + # + # throws => string / regex + # - when specified it expects evaluated code to fail and validates failure ($@) + # - accepts string (acting as `is`) or regex (acting as `like`) + + my $got; + my $lives = eval qq { + do { + use strict; + use warnings; + my \$result = q (); + \$got = do { $args{eval}; }; + }; + 1; + }; + my $error = $@; + + if (exists $args{throws}) { + if ($lives) { + my $rv = fail $message; + diag q (Expected to fail but it lives); + return $rv; + } + + return ref $args{throws} + ? like $@, $args{throws}, $message + : is $@, $args{throws}, $message + ; + } + + unless ($lives) { + my $rv = fail $message; + + diag q (Expected to live but it died:); + diag $error =~ s (^) ( )rmg; + + return $rv; + } + + return ref $args{expect} + ? like $got, $args{expect}, $message + : is $got, $args{expect}, $message + ; +} + sub plan { my $n; if (@_ == 1) {