diff --git a/MANIFEST b/MANIFEST index a07c286fce6f..d0002de53107 100644 --- a/MANIFEST +++ b/MANIFEST @@ -6349,7 +6349,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 23bb54a16b72..fa9a9d2322df 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 subattrlist 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 subattrlist 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); + (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 32: /* bare_statement_for: KW_FOR REFGEN refgen_topic PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont */ -#line 461 "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, - 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[-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 33: /* bare_statement_for: KW_FOR PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont */ -#line 481 "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); - } - - 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: /* myattrlist: COLONATTR THING */ -#line 1067 "perly.y" + case 144: /* myattrlist: COLONATTR THING */ +#line 1033 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 142: /* myattrlist: COLONATTR */ -#line 1069 "perly.y" + case 145: /* myattrlist: COLONATTR */ +#line 1035 "perly.y" { (yyval.opval) = NULL; } break; - case 143: /* sigvar: %empty */ -#line 1080 "perly.y" + case 146: /* sigvar: %empty */ +#line 1046 "perly.y" { parser->in_my = 0; (yyval.ival) = 0; } break; - case 144: /* sigvar: PRIVATEREF */ -#line 1082 "perly.y" + case 147: /* sigvar: PRIVATEREF */ +#line 1048 "perly.y" { parser->in_my = 0; (yyval.ival) = (ps[0].val.opval)->op_targ; op_free((ps[0].val.opval)); } break; - case 145: /* sigslurpsigil: PERLY_SNAIL */ -#line 1087 "perly.y" + case 148: /* sigslurpsigil: PERLY_SNAIL */ +#line 1053 "perly.y" { (yyval.ival) = '@'; } break; - case 146: /* sigslurpsigil: PERLY_PERCENT_SIGN */ -#line 1089 "perly.y" + case 149: /* sigslurpsigil: PERLY_PERCENT_SIGN */ +#line 1055 "perly.y" { (yyval.ival) = '%'; } break; - case 147: /* sigslurpelem: sigslurpsigil sigvar */ -#line 1093 "perly.y" + case 150: /* sigslurpelem: sigslurpsigil sigvar */ +#line 1059 "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 148: /* sigslurpelem: sigslurpsigil sigvar ASSIGNOP */ -#line 1098 "perly.y" + case 151: /* sigslurpelem: sigslurpsigil sigvar ASSIGNOP */ +#line 1064 "perly.y" { yyerror("A slurpy parameter may not have a default value"); } break; - case 149: /* sigslurpelem: sigslurpsigil sigvar ASSIGNOP term */ -#line 1102 "perly.y" + case 152: /* sigslurpelem: sigslurpsigil sigvar ASSIGNOP term */ +#line 1068 "perly.y" { yyerror("A slurpy parameter may not have a default value"); } break; - case 150: /* optcolon: %empty */ -#line 1108 "perly.y" + case 153: /* optcolon: %empty */ +#line 1074 "perly.y" { (yyval.ival) = 0; } break; - case 151: /* optcolon: PERLY_COLON */ -#line 1110 "perly.y" + case 154: /* optcolon: PERLY_COLON */ +#line 1076 "perly.y" { (yyval.ival) = ':'; } break; - case 152: /* sigscalarelem: optcolon PERLY_DOLLAR sigvar */ -#line 1116 "perly.y" + case 155: /* sigscalarelem: optcolon PERLY_DOLLAR sigvar */ +#line 1082 "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 153: /* sigscalarelem: optcolon PERLY_DOLLAR sigvar ASSIGNOP optsigscalardefault */ -#line 1126 "perly.y" + case 156: /* sigscalarelem: optcolon PERLY_DOLLAR sigvar ASSIGNOP optsigscalardefault */ +#line 1092 "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 154: /* optsigscalardefault: %empty */ -#line 1139 "perly.y" + case 157: /* optsigscalardefault: %empty */ +#line 1105 "perly.y" { (yyval.opval) = newOP(OP_NULL, 0); } break; - case 156: /* sigelem: sigscalarelem */ -#line 1146 "perly.y" + case 159: /* sigelem: sigscalarelem */ +#line 1112 "perly.y" { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; - case 157: /* sigelem: sigslurpelem */ -#line 1148 "perly.y" + case 160: /* sigelem: sigslurpelem */ +#line 1114 "perly.y" { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; - case 165: /* subsignature: PERLY_PAREN_OPEN subsigguts PERLY_PAREN_CLOSE */ -#line 1174 "perly.y" + case 168: /* subsignature: PERLY_PAREN_OPEN subsigguts PERLY_PAREN_CLOSE */ +#line 1140 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 166: /* $@20: %empty */ -#line 1177 "perly.y" + case 169: /* $@19: %empty */ +#line 1143 "perly.y" { ENTER; subsignature_start(); @@ -1045,8 +1034,8 @@ case 2: /* @1: %empty */ break; - case 167: /* subsigguts: $@20 optsiglist */ -#line 1183 "perly.y" + case 170: /* subsigguts: $@19 optsiglist */ +#line 1149 "perly.y" { if (!FEATURE_SIGNATURES_IS_ENABLED && !CvIsMETHOD(PL_compcv)) croak("Experimental " @@ -1073,14 +1062,14 @@ case 2: /* @1: %empty */ break; - case 169: /* optsubbody: PERLY_SEMICOLON */ -#line 1211 "perly.y" + case 172: /* optsubbody: PERLY_SEMICOLON */ +#line 1177 "perly.y" { (yyval.opval) = NULL; } break; - case 170: /* subbody: remember PERLY_BRACE_OPEN stmtseq PERLY_BRACE_CLOSE */ -#line 1217 "perly.y" + case 173: /* subbody: remember PERLY_BRACE_OPEN stmtseq PERLY_BRACE_CLOSE */ +#line 1183 "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 172: /* optsigsubbody: PERLY_SEMICOLON */ -#line 1229 "perly.y" + case 175: /* optsigsubbody: PERLY_SEMICOLON */ +#line 1195 "perly.y" { (yyval.opval) = NULL; } break; - case 173: /* $@21: %empty */ -#line 1234 "perly.y" + case 176: /* $@20: %empty */ +#line 1200 "perly.y" { PL_parser->sig_seen = FALSE; } break; - case 174: /* sigsubbody: remember optsubsignature PERLY_BRACE_OPEN $@21 stmtseq PERLY_BRACE_CLOSE */ -#line 1236 "perly.y" + case 177: /* sigsubbody: remember optsubsignature PERLY_BRACE_OPEN $@20 stmtseq PERLY_BRACE_CLOSE */ +#line 1202 "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 175: /* expr: expr ANDOP expr */ -#line 1247 "perly.y" + case 178: /* expr: expr ANDOP expr */ +#line 1213 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 176: /* expr: expr PLUGIN_LOGICAL_AND_LOW_OP expr */ -#line 1249 "perly.y" + case 179: /* expr: expr PLUGIN_LOGICAL_AND_LOW_OP expr */ +#line 1215 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 177: /* expr: expr OROP expr */ -#line 1251 "perly.y" + case 180: /* expr: expr OROP expr */ +#line 1217 "perly.y" { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 178: /* expr: expr PLUGIN_LOGICAL_OR_LOW_OP expr */ -#line 1253 "perly.y" + case 181: /* expr: expr PLUGIN_LOGICAL_OR_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 180: /* listexpr: listexpr PERLY_COMMA */ -#line 1259 "perly.y" + case 183: /* listexpr: listexpr PERLY_COMMA */ +#line 1225 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 181: /* listexpr: listexpr PERLY_COMMA term */ -#line 1261 "perly.y" + case 184: /* listexpr: listexpr PERLY_COMMA term */ +#line 1227 "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 183: /* listop: LSTOP indirob listexpr */ -#line 1270 "perly.y" + case 186: /* listop: LSTOP indirob listexpr */ +#line 1236 "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 184: /* listop: BLKLSTOP block listexpr */ -#line 1274 "perly.y" + case 187: /* listop: BLKLSTOP block listexpr */ +#line 1240 "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 185: /* listop: FUNC PERLY_PAREN_OPEN indirob expr PERLY_PAREN_CLOSE */ -#line 1278 "perly.y" + case 188: /* listop: FUNC PERLY_PAREN_OPEN indirob expr PERLY_PAREN_CLOSE */ +#line 1244 "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 186: /* listop: term ARROW methodname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1282 "perly.y" + case 189: /* listop: term ARROW methodname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1248 "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 187: /* listop: term ARROW methodname */ -#line 1288 "perly.y" + case 190: /* listop: term ARROW methodname */ +#line 1254 "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 188: /* listop: term ARROW PERLY_AMPERSAND subname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1293 "perly.y" + case 191: /* listop: term ARROW PERLY_AMPERSAND subname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1259 "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 189: /* listop: term ARROW PERLY_AMPERSAND subname */ -#line 1299 "perly.y" + case 192: /* listop: term ARROW PERLY_AMPERSAND subname */ +#line 1265 "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 190: /* listop: METHCALL0 indirob optlistexpr */ -#line 1305 "perly.y" + case 193: /* listop: METHCALL0 indirob optlistexpr */ +#line 1271 "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 191: /* listop: METHCALL indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1311 "perly.y" + case 194: /* listop: METHCALL indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1277 "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 192: /* listop: LSTOP optlistexpr */ -#line 1317 "perly.y" + case 195: /* listop: LSTOP optlistexpr */ +#line 1283 "perly.y" { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 193: /* listop: FUNC PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1319 "perly.y" + case 196: /* listop: FUNC PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1285 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 194: /* listop: FUNC SUBLEXSTART optexpr SUBLEXEND */ -#line 1321 "perly.y" + case 197: /* listop: FUNC SUBLEXSTART optexpr SUBLEXEND */ +#line 1287 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 195: /* @22: %empty */ -#line 1323 "perly.y" + case 198: /* @21: %empty */ +#line 1289 "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 196: /* listop: LSTOPSUB startanonsub block @22 optlistexpr */ -#line 1329 "perly.y" + case 199: /* listop: LSTOPSUB startanonsub block @21 optlistexpr */ +#line 1295 "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 199: /* subscripted: gelem PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1344 "perly.y" + case 202: /* subscripted: gelem PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1310 "perly.y" { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } break; - case 200: /* subscripted: scalar PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1346 "perly.y" + case 203: /* subscripted: scalar PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1312 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); } break; - case 201: /* subscripted: term ARROW PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1349 "perly.y" + case 204: /* subscripted: term ARROW PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1315 "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 202: /* subscripted: subscripted PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1354 "perly.y" + case 205: /* subscripted: subscripted PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1320 "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 203: /* subscripted: scalar PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1359 "perly.y" + case 206: /* subscripted: scalar PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1325 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); } break; - case 204: /* subscripted: term ARROW PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1362 "perly.y" + case 207: /* subscripted: term ARROW PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1328 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } break; - case 205: /* subscripted: subscripted PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1366 "perly.y" + case 208: /* subscripted: subscripted PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1332 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } break; - case 206: /* subscripted: term ARROW PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1370 "perly.y" + case 209: /* subscripted: term ARROW PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1336 "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 207: /* subscripted: term ARROW PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1376 "perly.y" + case 210: /* subscripted: term ARROW PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1342 "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 208: /* subscripted: subscripted PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1384 "perly.y" + case 211: /* subscripted: subscripted PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1350 "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 209: /* subscripted: subscripted PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1391 "perly.y" + case 212: /* subscripted: subscripted PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1357 "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 210: /* subscripted: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1397 "perly.y" + case 213: /* subscripted: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1363 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } break; - case 211: /* subscripted: QWLIST PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1399 "perly.y" + case 214: /* subscripted: QWLIST PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1365 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } break; - case 212: /* subscripted: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1401 "perly.y" + case 215: /* subscripted: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1367 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); } break; - case 213: /* termbinop: term PLUGIN_HIGH_OP term */ -#line 1406 "perly.y" + case 216: /* termbinop: term PLUGIN_HIGH_OP term */ +#line 1372 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 214: /* termbinop: term ASSIGNOP term */ -#line 1408 "perly.y" + case 217: /* termbinop: term ASSIGNOP term */ +#line 1374 "perly.y" { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } break; - case 215: /* termbinop: term PLUGIN_ASSIGN_OP term */ -#line 1410 "perly.y" + case 218: /* termbinop: term PLUGIN_ASSIGN_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 POWOP term */ -#line 1412 "perly.y" + case 219: /* termbinop: term POWOP term */ +#line 1378 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 217: /* termbinop: term PLUGIN_POW_OP term */ -#line 1414 "perly.y" + case 220: /* termbinop: term PLUGIN_POW_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 MULOP term */ -#line 1416 "perly.y" + case 221: /* termbinop: term MULOP term */ +#line 1382 "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 219: /* termbinop: term PLUGIN_MUL_OP term */ -#line 1421 "perly.y" + case 222: /* termbinop: term PLUGIN_MUL_OP term */ +#line 1387 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 220: /* termbinop: term ADDOP term */ -#line 1423 "perly.y" + case 223: /* termbinop: term ADDOP term */ +#line 1389 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 221: /* termbinop: term PLUGIN_ADD_OP term */ -#line 1425 "perly.y" + case 224: /* termbinop: term PLUGIN_ADD_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 SHIFTOP term */ -#line 1427 "perly.y" + case 225: /* termbinop: term SHIFTOP 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: termrelop */ -#line 1429 "perly.y" + case 226: /* termbinop: termrelop */ +#line 1395 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 224: /* termbinop: termeqop */ -#line 1431 "perly.y" + case 227: /* termbinop: termeqop */ +#line 1397 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 225: /* termbinop: term BITANDOP term */ -#line 1433 "perly.y" + case 228: /* termbinop: term BITANDOP term */ +#line 1399 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 226: /* termbinop: term BITOROP term */ -#line 1435 "perly.y" + case 229: /* termbinop: term BITOROP term */ +#line 1401 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 227: /* termbinop: term DOTDOT term */ -#line 1437 "perly.y" + case 230: /* termbinop: term DOTDOT term */ +#line 1403 "perly.y" { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 228: /* termbinop: term ANDAND term */ -#line 1439 "perly.y" + case 231: /* termbinop: term ANDAND term */ +#line 1405 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 229: /* termbinop: term PLUGIN_LOGICAL_AND_OP term */ -#line 1441 "perly.y" + case 232: /* termbinop: term PLUGIN_LOGICAL_AND_OP term */ +#line 1407 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 230: /* termbinop: term OROR term */ -#line 1443 "perly.y" + case 233: /* termbinop: term OROR term */ +#line 1409 "perly.y" { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 231: /* termbinop: term PLUGIN_LOGICAL_OR_OP term */ -#line 1445 "perly.y" + case 234: /* termbinop: term PLUGIN_LOGICAL_OR_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 DORDOR term */ -#line 1447 "perly.y" + case 235: /* termbinop: term DORDOR term */ +#line 1413 "perly.y" { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 233: /* termbinop: term MATCHOP term */ -#line 1449 "perly.y" + case 236: /* termbinop: term MATCHOP term */ +#line 1415 "perly.y" { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 234: /* termbinop: term PLUGIN_LOW_OP term */ -#line 1451 "perly.y" + case 237: /* termbinop: term PLUGIN_LOW_OP term */ +#line 1417 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 235: /* termrelop: relopchain */ -#line 1455 "perly.y" + case 238: /* termrelop: relopchain */ +#line 1421 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; - case 236: /* termrelop: term NCRELOP term */ -#line 1457 "perly.y" + case 239: /* termrelop: term NCRELOP term */ +#line 1423 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 237: /* termrelop: termrelop NCRELOP */ -#line 1459 "perly.y" + case 240: /* termrelop: termrelop NCRELOP */ +#line 1425 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 238: /* termrelop: termrelop CHRELOP */ -#line 1461 "perly.y" + case 241: /* termrelop: termrelop CHRELOP */ +#line 1427 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 239: /* termrelop: term PLUGIN_REL_OP term */ -#line 1463 "perly.y" + case 242: /* termrelop: term PLUGIN_REL_OP term */ +#line 1429 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 240: /* relopchain: term CHRELOP term */ -#line 1467 "perly.y" + case 243: /* relopchain: term CHRELOP term */ +#line 1433 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 241: /* relopchain: relopchain CHRELOP term */ -#line 1469 "perly.y" + case 244: /* relopchain: relopchain CHRELOP term */ +#line 1435 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 242: /* termeqop: eqopchain */ -#line 1473 "perly.y" + case 245: /* termeqop: eqopchain */ +#line 1439 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; - case 243: /* termeqop: term NCEQOP term */ -#line 1475 "perly.y" + case 246: /* termeqop: term NCEQOP term */ +#line 1441 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 244: /* termeqop: termeqop NCEQOP */ -#line 1477 "perly.y" + case 247: /* termeqop: termeqop NCEQOP */ +#line 1443 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 245: /* termeqop: termeqop CHEQOP */ -#line 1479 "perly.y" + case 248: /* termeqop: termeqop CHEQOP */ +#line 1445 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 246: /* eqopchain: term CHEQOP term */ -#line 1483 "perly.y" + case 249: /* eqopchain: term CHEQOP term */ +#line 1449 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 247: /* eqopchain: eqopchain CHEQOP term */ -#line 1485 "perly.y" + case 250: /* eqopchain: eqopchain CHEQOP term */ +#line 1451 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 248: /* termunop: PERLY_MINUS term */ -#line 1490 "perly.y" + case 251: /* termunop: PERLY_MINUS term */ +#line 1456 "perly.y" { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } break; - case 249: /* termunop: PERLY_PLUS term */ -#line 1492 "perly.y" + case 252: /* termunop: PERLY_PLUS term */ +#line 1458 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 250: /* termunop: PERLY_EXCLAMATION_MARK term */ -#line 1495 "perly.y" + case 253: /* termunop: PERLY_EXCLAMATION_MARK term */ +#line 1461 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 251: /* termunop: PERLY_TILDE term */ -#line 1497 "perly.y" + case 254: /* termunop: PERLY_TILDE term */ +#line 1463 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } break; - case 252: /* termunop: term POSTINC */ -#line 1499 "perly.y" + case 255: /* termunop: term POSTINC */ +#line 1465 "perly.y" { (yyval.opval) = newUNOP(OP_POSTINC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } break; - case 253: /* termunop: term POSTDEC */ -#line 1502 "perly.y" + case 256: /* termunop: term POSTDEC */ +#line 1468 "perly.y" { (yyval.opval) = newUNOP(OP_POSTDEC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} break; - case 254: /* termunop: term POSTJOIN */ -#line 1505 "perly.y" + case 257: /* termunop: term POSTJOIN */ +#line 1471 "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 255: /* termunop: PREINC term */ -#line 1516 "perly.y" + case 258: /* termunop: PREINC term */ +#line 1482 "perly.y" { (yyval.opval) = newUNOP(OP_PREINC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } break; - case 256: /* termunop: PREDEC term */ -#line 1519 "perly.y" + case 259: /* termunop: PREDEC term */ +#line 1485 "perly.y" { (yyval.opval) = newUNOP(OP_PREDEC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } break; - case 257: /* anonymous: PERLY_BRACKET_OPEN optexpr PERLY_BRACKET_CLOSE */ -#line 1527 "perly.y" + case 260: /* anonymous: PERLY_BRACKET_OPEN optexpr PERLY_BRACKET_CLOSE */ +#line 1493 "perly.y" { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } break; - case 258: /* anonymous: HASHBRACK optexpr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1529 "perly.y" + case 261: /* anonymous: HASHBRACK optexpr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1495 "perly.y" { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } break; - case 259: /* anonymous: KW_SUB_anon startanonsub proto subattrlist subbody */ -#line 1531 "perly.y" + case 262: /* anonymous: KW_SUB_anon startanonsub proto subattrlist subbody */ +#line 1497 "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 260: /* anonymous: KW_SUB_anon startanonsub proto subattrlist */ -#line 1534 "perly.y" + case 263: /* anonymous: KW_SUB_anon startanonsub proto subattrlist */ +#line 1500 "perly.y" { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } break; - case 261: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist sigsubbody */ -#line 1536 "perly.y" + case 264: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist sigsubbody */ +#line 1502 "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 262: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist */ -#line 1539 "perly.y" + case 265: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist */ +#line 1505 "perly.y" { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } break; - case 263: /* anonymous: KW_METHOD_anon startanonmethod subattrlist sigsubbody */ -#line 1541 "perly.y" + case 266: /* anonymous: KW_METHOD_anon startanonmethod subattrlist sigsubbody */ +#line 1507 "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 264: /* anonymous: KW_METHOD_anon startanonmethod subattrlist */ -#line 1546 "perly.y" + case 267: /* anonymous: KW_METHOD_anon startanonmethod subattrlist */ +#line 1512 "perly.y" { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } break; - case 265: /* termdo: KW_DO term */ -#line 1551 "perly.y" + case 268: /* termdo: KW_DO term */ +#line 1517 "perly.y" { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} break; - case 266: /* termdo: KW_DO block */ -#line 1553 "perly.y" + case 269: /* termdo: KW_DO block */ +#line 1519 "perly.y" { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} break; - case 271: /* term: term PERLY_QUESTION_MARK term PERLY_COLON term */ -#line 1561 "perly.y" + case 274: /* term: term PERLY_QUESTION_MARK term PERLY_COLON term */ +#line 1527 "perly.y" { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 272: /* term: REFGEN term */ -#line 1563 "perly.y" + case 275: /* term: REFGEN term */ +#line 1529 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } break; - case 273: /* term: myattrterm */ -#line 1565 "perly.y" + case 276: /* term: myattrterm */ +#line 1531 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 274: /* term: KW_LOCAL term */ -#line 1567 "perly.y" + case 277: /* term: KW_LOCAL term */ +#line 1533 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),0); } break; - case 275: /* term: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1569 "perly.y" + case 278: /* term: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1535 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 276: /* term: QWLIST */ -#line 1571 "perly.y" + case 279: /* term: QWLIST */ +#line 1537 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 277: /* term: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1573 "perly.y" + case 280: /* term: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1539 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 278: /* term: scalar */ -#line 1575 "perly.y" + case 281: /* term: scalar */ +#line 1541 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 279: /* term: star */ -#line 1577 "perly.y" + case 282: /* term: star */ +#line 1543 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 280: /* term: hsh */ -#line 1579 "perly.y" + case 283: /* term: hsh */ +#line 1545 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 281: /* term: ary */ -#line 1581 "perly.y" + case 284: /* term: ary */ +#line 1547 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 282: /* term: arylen */ -#line 1583 "perly.y" + case 285: /* term: arylen */ +#line 1549 "perly.y" { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} break; - case 283: /* term: subscripted */ -#line 1585 "perly.y" + case 286: /* term: subscripted */ +#line 1551 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 284: /* term: sliceme PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1587 "perly.y" + case 287: /* term: sliceme PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1553 "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 285: /* term: kvslice PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1597 "perly.y" + case 288: /* term: kvslice PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1563 "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 286: /* term: sliceme PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1607 "perly.y" + case 289: /* term: sliceme PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1573 "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 287: /* term: kvslice PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1617 "perly.y" + case 290: /* term: kvslice PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1583 "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 288: /* term: THING */ -#line 1627 "perly.y" + case 291: /* term: THING */ +#line 1593 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 289: /* term: amper */ -#line 1629 "perly.y" + case 292: /* term: amper */ +#line 1595 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; - case 290: /* term: amper PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1631 "perly.y" + case 293: /* term: amper PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1597 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; - case 291: /* term: amper PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1634 "perly.y" + case 294: /* term: amper PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1600 "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 292: /* term: NOAMP subname optlistexpr */ -#line 1639 "perly.y" + case 295: /* term: NOAMP subname optlistexpr */ +#line 1605 "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 293: /* term: term ARROW PERLY_DOLLAR PERLY_STAR */ -#line 1643 "perly.y" + case 296: /* term: term ARROW PERLY_DOLLAR PERLY_STAR */ +#line 1609 "perly.y" { (yyval.opval) = newSVREF((ps[-3].val.opval)); } break; - case 294: /* term: term ARROW PERLY_SNAIL PERLY_STAR */ -#line 1645 "perly.y" + case 297: /* term: term ARROW PERLY_SNAIL PERLY_STAR */ +#line 1611 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 295: /* term: term ARROW PERLY_PERCENT_SIGN PERLY_STAR */ -#line 1647 "perly.y" + case 298: /* term: term ARROW PERLY_PERCENT_SIGN PERLY_STAR */ +#line 1613 "perly.y" { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; - case 296: /* term: term ARROW PERLY_AMPERSAND PERLY_STAR */ -#line 1649 "perly.y" + case 299: /* term: term ARROW PERLY_AMPERSAND PERLY_STAR */ +#line 1615 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; - case 297: /* term: term ARROW PERLY_STAR PERLY_STAR */ -#line 1652 "perly.y" + case 300: /* term: term ARROW PERLY_STAR PERLY_STAR */ +#line 1618 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; - case 298: /* term: LOOPEX */ -#line 1654 "perly.y" + case 301: /* term: LOOPEX */ +#line 1620 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } break; - case 299: /* term: LOOPEX term */ -#line 1657 "perly.y" + case 302: /* term: LOOPEX term */ +#line 1623 "perly.y" { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 300: /* term: NOTOP listexpr */ -#line 1659 "perly.y" + case 303: /* term: NOTOP listexpr */ +#line 1625 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 301: /* term: UNIOP */ -#line 1661 "perly.y" + case 304: /* term: UNIOP */ +#line 1627 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 302: /* term: UNIOP block */ -#line 1663 "perly.y" + case 305: /* term: UNIOP block */ +#line 1629 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 303: /* term: UNIOP term */ -#line 1665 "perly.y" + case 306: /* term: UNIOP term */ +#line 1631 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 304: /* term: KW_REQUIRE */ -#line 1667 "perly.y" + case 307: /* term: KW_REQUIRE */ +#line 1633 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; - case 305: /* term: KW_REQUIRE term */ -#line 1669 "perly.y" + case 308: /* term: KW_REQUIRE term */ +#line 1635 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; - case 306: /* term: UNIOPSUB */ -#line 1671 "perly.y" + case 309: /* term: UNIOPSUB */ +#line 1637 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 307: /* term: UNIOPSUB term */ -#line 1673 "perly.y" + case 310: /* term: UNIOPSUB term */ +#line 1639 "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 308: /* term: FUNC0 */ -#line 1676 "perly.y" + case 311: /* term: FUNC0 */ +#line 1642 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 309: /* term: FUNC0 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1678 "perly.y" + case 312: /* term: FUNC0 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1644 "perly.y" { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; - case 310: /* term: FUNC0OP */ -#line 1680 "perly.y" + case 313: /* term: FUNC0OP */ +#line 1646 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 311: /* term: FUNC0OP PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1682 "perly.y" + case 314: /* term: FUNC0OP PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1648 "perly.y" { (yyval.opval) = (ps[-2].val.opval); } break; - case 312: /* term: FUNC0SUB */ -#line 1684 "perly.y" + case 315: /* term: FUNC0SUB */ +#line 1650 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 313: /* term: FUNC1 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1686 "perly.y" + case 316: /* term: FUNC1 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1652 "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 314: /* term: FUNC1 PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1690 "perly.y" + case 317: /* term: FUNC1 PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1656 "perly.y" { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 315: /* @23: %empty */ -#line 1692 "perly.y" + case 318: /* @22: %empty */ +#line 1658 "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 316: /* term: PMFUNC @23 SUBLEXSTART listexpr optrepl SUBLEXEND */ -#line 1703 "perly.y" + case 319: /* term: PMFUNC @22 SUBLEXSTART listexpr optrepl SUBLEXEND */ +#line 1669 "perly.y" { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; - case 320: /* myattrterm: KW_MY myterm myattrlist */ -#line 1712 "perly.y" + case 323: /* myattrterm: KW_MY myterm myattrlist */ +#line 1678 "perly.y" { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } break; - case 321: /* myattrterm: KW_MY myterm */ -#line 1714 "perly.y" + case 324: /* myattrterm: KW_MY myterm */ +#line 1680 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),1); } break; - case 322: /* myattrterm: KW_MY REFGEN myterm myattrlist */ -#line 1716 "perly.y" + case 325: /* myattrterm: KW_MY REFGEN myterm myattrlist */ +#line 1682 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } break; - case 323: /* myattrterm: KW_MY REFGEN term */ -#line 1718 "perly.y" + case 326: /* myattrterm: KW_MY REFGEN term */ +#line 1684 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } break; - case 324: /* myterm: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1723 "perly.y" + case 327: /* myterm: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1689 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 325: /* myterm: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1725 "perly.y" + case 328: /* myterm: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1691 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 326: /* myterm: scalar */ -#line 1728 "perly.y" + case 329: /* myterm: scalar */ +#line 1694 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 327: /* myterm: hsh */ -#line 1730 "perly.y" + case 330: /* myterm: hsh */ +#line 1696 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 328: /* myterm: ary */ -#line 1732 "perly.y" + case 331: /* myterm: ary */ +#line 1698 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 329: /* fieldvar: scalar */ -#line 1737 "perly.y" + case 332: /* fieldvar: scalar */ +#line 1703 "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 330: /* fieldvar: hsh */ -#line 1742 "perly.y" + case 333: /* fieldvar: hsh */ +#line 1708 "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 331: /* fieldvar: ary */ -#line 1747 "perly.y" + case 334: /* fieldvar: ary */ +#line 1713 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2139,20 +2128,20 @@ case 2: /* @1: %empty */ break; - case 332: /* optfieldattrlist: COLONATTR THING */ -#line 1755 "perly.y" + case 335: /* optfieldattrlist: COLONATTR THING */ +#line 1721 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 333: /* optfieldattrlist: COLONATTR */ -#line 1757 "perly.y" + case 336: /* optfieldattrlist: COLONATTR */ +#line 1723 "perly.y" { (yyval.opval) = NULL; } break; - case 335: /* fielddecl: KW_FIELD fieldvar optfieldattrlist */ -#line 1763 "perly.y" + case 338: /* fielddecl: KW_FIELD fieldvar optfieldattrlist */ +#line 1729 "perly.y" { parser->in_my = 0; if((ps[0].val.opval)) @@ -2162,8 +2151,8 @@ case 2: /* @1: %empty */ break; - case 336: /* $@24: %empty */ -#line 1770 "perly.y" + case 339: /* $@23: %empty */ +#line 1736 "perly.y" { parser->in_my = 0; if((ps[-1].val.opval)) @@ -2174,8 +2163,8 @@ case 2: /* @1: %empty */ break; - case 337: /* fielddecl: KW_FIELD fieldvar optfieldattrlist ASSIGNOP $@24 term */ -#line 1778 "perly.y" + case 340: /* fielddecl: KW_FIELD fieldvar optfieldattrlist ASSIGNOP $@23 term */ +#line 1744 "perly.y" { class_set_field_defop((PADNAME *)(ps[-4].val.pval), (ps[-2].val.ival), (ps[0].val.opval)); LEAVE; @@ -2184,122 +2173,122 @@ case 2: /* @1: %empty */ break; - case 343: /* optrepl: PERLY_SLASH expr */ -#line 1798 "perly.y" + case 346: /* optrepl: PERLY_SLASH expr */ +#line 1764 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 344: /* my_scalar: scalar */ -#line 1804 "perly.y" + case 347: /* my_scalar: scalar */ +#line 1770 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; - case 345: /* list_of_scalars: list_of_scalars PERLY_COMMA */ -#line 1809 "perly.y" + case 348: /* list_of_scalars: list_of_scalars PERLY_COMMA */ +#line 1775 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 346: /* list_of_scalars: list_of_scalars PERLY_COMMA scalar */ -#line 1811 "perly.y" + case 349: /* list_of_scalars: list_of_scalars PERLY_COMMA scalar */ +#line 1777 "perly.y" { (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 348: /* my_list_of_scalars: list_of_scalars */ -#line 1818 "perly.y" + case 351: /* my_list_of_scalars: list_of_scalars */ +#line 1784 "perly.y" { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } break; - case 356: /* amper: PERLY_AMPERSAND indirob */ -#line 1835 "perly.y" + case 359: /* amper: PERLY_AMPERSAND indirob */ +#line 1801 "perly.y" { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 357: /* scalar: PERLY_DOLLAR indirob */ -#line 1839 "perly.y" + case 360: /* scalar: PERLY_DOLLAR indirob */ +#line 1805 "perly.y" { (yyval.opval) = newSVREF((ps[0].val.opval)); } break; - case 358: /* ary: PERLY_SNAIL indirob */ -#line 1843 "perly.y" + case 361: /* ary: PERLY_SNAIL indirob */ +#line 1809 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 359: /* hsh: PERLY_PERCENT_SIGN indirob */ -#line 1849 "perly.y" + case 362: /* hsh: PERLY_PERCENT_SIGN indirob */ +#line 1815 "perly.y" { (yyval.opval) = newHVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 360: /* arylen: DOLSHARP indirob */ -#line 1855 "perly.y" + case 363: /* arylen: DOLSHARP indirob */ +#line 1821 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); } break; - case 361: /* arylen: term ARROW DOLSHARP PERLY_STAR */ -#line 1857 "perly.y" + case 364: /* arylen: term ARROW DOLSHARP PERLY_STAR */ +#line 1823 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 362: /* star: PERLY_STAR indirob */ -#line 1861 "perly.y" + case 365: /* star: PERLY_STAR indirob */ +#line 1827 "perly.y" { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } break; - case 364: /* sliceme: term ARROW PERLY_SNAIL */ -#line 1866 "perly.y" + case 367: /* sliceme: term ARROW PERLY_SNAIL */ +#line 1832 "perly.y" { (yyval.opval) = newAVREF((ps[-2].val.opval)); } break; - case 366: /* kvslice: term ARROW PERLY_PERCENT_SIGN */ -#line 1871 "perly.y" + case 369: /* kvslice: term ARROW PERLY_PERCENT_SIGN */ +#line 1837 "perly.y" { (yyval.opval) = newHVREF((ps[-2].val.opval)); } break; - case 368: /* gelem: term ARROW PERLY_STAR */ -#line 1876 "perly.y" + case 371: /* gelem: term ARROW PERLY_STAR */ +#line 1842 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } break; - case 369: /* indirob: BAREWORD */ -#line 1881 "perly.y" + case 372: /* indirob: BAREWORD */ +#line 1847 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 370: /* indirob: scalar */ -#line 1883 "perly.y" + case 373: /* indirob: scalar */ +#line 1849 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 371: /* indirob: block */ -#line 1885 "perly.y" + case 374: /* indirob: block */ +#line 1851 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 372: /* indirob: PRIVATEREF */ -#line 1888 "perly.y" + case 375: /* indirob: PRIVATEREF */ +#line 1854 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; @@ -2311,6 +2300,6 @@ case 2: /* @1: %empty */ /* Generated from: - * 1579ea304eb388b1cee0a714a2acd39920dbe5a8a06aa165703783e2c2dc2502 perly.y + * c08d7ddc9f8d45fec94e295fa24cd5221f4d8591daf0dbe06275a29e7b7a8352 perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.h b/perly.h index 078957226611..d6b0d277e9f4 100644 --- a/perly.h +++ b/perly.h @@ -246,6 +246,6 @@ int yyparse (void); /* Generated from: - * 1579ea304eb388b1cee0a714a2acd39920dbe5a8a06aa165703783e2c2dc2502 perly.y + * c08d7ddc9f8d45fec94e295fa24cd5221f4d8591daf0dbe06275a29e7b7a8352 perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.tab b/perly.tab index 7e573b5915e0..451e427a72a7 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_myattrlist = 212, /* myattrlist */ - YYSYMBOL_sigvar = 213, /* sigvar */ - YYSYMBOL_sigslurpsigil = 214, /* sigslurpsigil */ - YYSYMBOL_sigslurpelem = 215, /* sigslurpelem */ - YYSYMBOL_optcolon = 216, /* optcolon */ - YYSYMBOL_sigscalarelem = 217, /* sigscalarelem */ - YYSYMBOL_optsigscalardefault = 218, /* optsigscalardefault */ - YYSYMBOL_sigelem = 219, /* sigelem */ - YYSYMBOL_siglist = 220, /* siglist */ - YYSYMBOL_optsiglist = 221, /* optsiglist */ - YYSYMBOL_optsubsignature = 222, /* optsubsignature */ - YYSYMBOL_subsignature = 223, /* subsignature */ - YYSYMBOL_subsigguts = 224, /* subsigguts */ - YYSYMBOL_225_20 = 225, /* $@20 */ - YYSYMBOL_optsubbody = 226, /* optsubbody */ - YYSYMBOL_subbody = 227, /* subbody */ - YYSYMBOL_optsigsubbody = 228, /* optsigsubbody */ - YYSYMBOL_sigsubbody = 229, /* sigsubbody */ - YYSYMBOL_230_21 = 230, /* $@21 */ - YYSYMBOL_expr = 231, /* expr */ - YYSYMBOL_listexpr = 232, /* listexpr */ - YYSYMBOL_listop = 233, /* listop */ - YYSYMBOL_234_22 = 234, /* @22 */ - YYSYMBOL_methodname = 235, /* methodname */ - YYSYMBOL_subscripted = 236, /* subscripted */ - YYSYMBOL_termbinop = 237, /* termbinop */ - YYSYMBOL_termrelop = 238, /* termrelop */ - YYSYMBOL_relopchain = 239, /* relopchain */ - YYSYMBOL_termeqop = 240, /* termeqop */ - YYSYMBOL_eqopchain = 241, /* eqopchain */ - YYSYMBOL_termunop = 242, /* termunop */ - YYSYMBOL_anonymous = 243, /* anonymous */ - YYSYMBOL_termdo = 244, /* termdo */ - YYSYMBOL_term = 245, /* term */ - YYSYMBOL_246_23 = 246, /* @23 */ - YYSYMBOL_myattrterm = 247, /* myattrterm */ - YYSYMBOL_myterm = 248, /* myterm */ - YYSYMBOL_fieldvar = 249, /* fieldvar */ - YYSYMBOL_optfieldattrlist = 250, /* optfieldattrlist */ - 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_myattrlist = 215, /* myattrlist */ + YYSYMBOL_sigvar = 216, /* sigvar */ + YYSYMBOL_sigslurpsigil = 217, /* sigslurpsigil */ + YYSYMBOL_sigslurpelem = 218, /* sigslurpelem */ + YYSYMBOL_optcolon = 219, /* optcolon */ + YYSYMBOL_sigscalarelem = 220, /* sigscalarelem */ + YYSYMBOL_optsigscalardefault = 221, /* optsigscalardefault */ + YYSYMBOL_sigelem = 222, /* sigelem */ + YYSYMBOL_siglist = 223, /* siglist */ + YYSYMBOL_optsiglist = 224, /* optsiglist */ + YYSYMBOL_optsubsignature = 225, /* optsubsignature */ + YYSYMBOL_subsignature = 226, /* subsignature */ + YYSYMBOL_subsigguts = 227, /* subsigguts */ + YYSYMBOL_228_19 = 228, /* $@19 */ + YYSYMBOL_optsubbody = 229, /* optsubbody */ + YYSYMBOL_subbody = 230, /* subbody */ + YYSYMBOL_optsigsubbody = 231, /* optsigsubbody */ + YYSYMBOL_sigsubbody = 232, /* sigsubbody */ + YYSYMBOL_233_20 = 233, /* $@20 */ + YYSYMBOL_expr = 234, /* expr */ + YYSYMBOL_listexpr = 235, /* listexpr */ + YYSYMBOL_listop = 236, /* listop */ + YYSYMBOL_237_21 = 237, /* @21 */ + YYSYMBOL_methodname = 238, /* methodname */ + YYSYMBOL_subscripted = 239, /* subscripted */ + YYSYMBOL_termbinop = 240, /* termbinop */ + YYSYMBOL_termrelop = 241, /* termrelop */ + YYSYMBOL_relopchain = 242, /* relopchain */ + YYSYMBOL_termeqop = 243, /* termeqop */ + YYSYMBOL_eqopchain = 244, /* eqopchain */ + YYSYMBOL_termunop = 245, /* termunop */ + YYSYMBOL_anonymous = 246, /* anonymous */ + YYSYMBOL_termdo = 247, /* termdo */ + YYSYMBOL_term = 248, /* term */ + YYSYMBOL_249_22 = 249, /* @22 */ + YYSYMBOL_myattrterm = 250, /* myattrterm */ + YYSYMBOL_myterm = 251, /* myterm */ + YYSYMBOL_fieldvar = 252, /* fieldvar */ + YYSYMBOL_optfieldattrlist = 253, /* optfieldattrlist */ + 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 3755 +#define YYLAST 3673 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 133 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 139 +#define YYNNTS 142 /* YYNRULES -- Number of rules. */ -#define YYNRULES 372 +#define YYNRULES 375 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 703 +#define YYNSTATES 671 /* 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, 1079, 1081, 1086, 1088, 1092, 1097, 1101, - 1107, 1109, 1115, 1125, 1138, 1140, 1145, 1147, 1155, 1156, - 1157, 1162, 1163, 1168, 1169, 1173, 1177, 1177, 1210, 1211, - 1216, 1228, 1229, 1234, 1233, 1246, 1248, 1250, 1252, 1254, - 1258, 1260, 1265, 1269, 1273, 1277, 1281, 1287, 1292, 1298, - 1304, 1310, 1316, 1318, 1320, 1323, 1322, 1336, 1337, 1341, - 1345, 1348, 1353, 1358, 1361, 1365, 1369, 1375, 1383, 1390, - 1396, 1398, 1400, 1405, 1407, 1409, 1411, 1413, 1415, 1420, - 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436, 1438, 1440, - 1442, 1444, 1446, 1448, 1450, 1454, 1456, 1458, 1460, 1462, - 1466, 1468, 1472, 1474, 1476, 1478, 1482, 1484, 1489, 1491, - 1494, 1496, 1498, 1501, 1504, 1515, 1518, 1526, 1528, 1530, - 1533, 1535, 1538, 1540, 1545, 1550, 1552, 1556, 1557, 1558, - 1559, 1560, 1562, 1564, 1566, 1568, 1570, 1572, 1574, 1576, - 1578, 1580, 1582, 1584, 1586, 1596, 1606, 1616, 1626, 1628, - 1630, 1633, 1638, 1642, 1644, 1646, 1648, 1651, 1653, 1656, - 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1675, 1677, - 1679, 1681, 1683, 1685, 1689, 1692, 1691, 1704, 1705, 1706, - 1711, 1713, 1715, 1717, 1722, 1724, 1727, 1729, 1731, 1736, - 1741, 1746, 1754, 1756, 1758, 1762, 1770, 1769, 1787, 1788, - 1792, 1793, 1797, 1798, 1803, 1808, 1810, 1814, 1817, 1821, - 1822, 1823, 1826, 1827, 1830, 1831, 1834, 1838, 1842, 1848, - 1854, 1856, 1860, 1864, 1865, 1869, 1870, 1874, 1875, 1880, - 1882, 1884, 1887 + 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, 1045, 1047, 1052, 1054, + 1058, 1063, 1067, 1073, 1075, 1081, 1091, 1104, 1106, 1111, + 1113, 1121, 1122, 1123, 1128, 1129, 1134, 1135, 1139, 1143, + 1143, 1176, 1177, 1182, 1194, 1195, 1200, 1199, 1212, 1214, + 1216, 1218, 1220, 1224, 1226, 1231, 1235, 1239, 1243, 1247, + 1253, 1258, 1264, 1270, 1276, 1282, 1284, 1286, 1289, 1288, + 1302, 1303, 1307, 1311, 1314, 1319, 1324, 1327, 1331, 1335, + 1341, 1349, 1356, 1362, 1364, 1366, 1371, 1373, 1375, 1377, + 1379, 1381, 1386, 1388, 1390, 1392, 1394, 1396, 1398, 1400, + 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1420, 1422, + 1424, 1426, 1428, 1432, 1434, 1438, 1440, 1442, 1444, 1448, + 1450, 1455, 1457, 1460, 1462, 1464, 1467, 1470, 1481, 1484, + 1492, 1494, 1496, 1499, 1501, 1504, 1506, 1511, 1516, 1518, + 1522, 1523, 1524, 1525, 1526, 1528, 1530, 1532, 1534, 1536, + 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1562, 1572, + 1582, 1592, 1594, 1596, 1599, 1604, 1608, 1610, 1612, 1614, + 1617, 1619, 1622, 1624, 1626, 1628, 1630, 1632, 1634, 1636, + 1638, 1641, 1643, 1645, 1647, 1649, 1651, 1655, 1658, 1657, + 1670, 1671, 1672, 1677, 1679, 1681, 1683, 1688, 1690, 1693, + 1695, 1697, 1702, 1707, 1712, 1720, 1722, 1724, 1728, 1736, + 1735, 1753, 1754, 1758, 1759, 1763, 1764, 1769, 1774, 1776, + 1780, 1783, 1787, 1788, 1789, 1792, 1793, 1796, 1797, 1800, + 1804, 1808, 1814, 1820, 1822, 1826, 1830, 1831, 1835, 1836, + 1840, 1841, 1846, 1848, 1850, 1853 }; #endif @@ -443,33 +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", "myattrlist", "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", - "optfieldattrlist", "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", "myattrlist", + "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", "optfieldattrlist", + "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 * @@ -479,12 +483,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-584) +#define YYPACT_NINF (-534) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-371) +#define YYTABLE_NINF (-374) #define yytable_value_is_error(Yyn) \ ((Yyn) == YYTABLE_NINF) @@ -493,77 +497,74 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 783, -584, -584, -584, -584, -584, -584, -584, 32, -584, - 3067, 63, 2009, 1892, -584, -584, -584, -584, 51, 3067, - 51, 3067, 51, 3067, 51, 51, 3067, 49, 3067, 2338, - -584, -584, -584, -584, 51, 51, -584, -584, 67, -55, - -584, 3067, -584, -584, 3067, -48, -43, -49, 2338, 2257, - 63, 51, 3067, 85, 3067, 3067, 3067, 3067, 3067, 3067, - 2419, -584, 118, 79, -584, 2, -584, 61, -2, 94, - 47, -584, -584, -584, 3259, -584, -584, 17, 159, 180, - 309, -584, 168, 313, 321, 176, -584, -584, -584, -584, - -584, 136, 173, 222, 101, 124, 11, 155, 160, 203, - 209, 63, 185, 185, -584, 85, -584, -584, -584, 232, - -584, -584, -584, -584, -584, -584, -584, -584, -584, -584, - -584, -584, -584, -584, -584, -584, -584, -584, -584, -584, - -584, -584, -584, -584, -584, 85, 211, -584, 274, 404, - 324, 1892, -584, -584, -584, -584, 687, -584, 33, 884, - -584, -584, -584, -584, -584, 336, -584, 347, -584, 347, - -584, -584, 3625, 3148, 2500, 265, -584, -584, -584, 3625, - -584, 3625, 288, 279, 279, 3067, 234, 271, 3067, 240, - 3625, 63, 3259, 241, 2581, 3067, 2257, -584, 3625, 3229, - -584, 79, -584, 2662, 3067, 3067, -584, 351, -584, -584, - 3067, 79, 347, 347, 347, 520, 520, 361, 365, 3067, - 3067, 3067, 3067, 3067, 3067, 3067, 2743, -584, -584, 3067, - -584, -584, 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, - 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, - 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, -584, -584, - -584, 3067, 305, 2824, 3067, 3067, 3067, 3067, 3067, 3067, - 3067, -584, 323, 327, 328, 294, -584, -584, -584, -584, - -584, 263, 602, -584, -584, 255, -584, -584, -584, -584, - -584, -584, 352, -584, -584, -584, -584, -584, -584, 63, - -584, -584, -584, 3067, 3067, 3067, 3067, 3067, 3067, -584, - -584, -584, -584, -584, -584, -584, -584, 345, -584, 381, - -584, -584, 392, -584, -584, 2905, 347, 265, 37, 53, - 111, -584, 388, 350, -584, -584, -584, 279, 354, -584, - 12, 12, -584, 3067, 3067, 72, -584, -584, -584, -584, - 416, 320, 280, 3067, 79, 79, 403, -584, 3067, 409, - 170, 170, -584, -584, 3363, 21, 89, -584, 437, 3546, - 3586, 3467, 347, 302, 272, 3311, 3363, 3363, 1035, 714, - 714, 714, 3506, 3506, 3528, 3567, 3586, 3586, 3546, 3546, - 3606, 1050, 272, 302, 347, 347, 198, 34, 3067, 3067, - 228, 391, 399, 410, -584, 413, 2986, 311, -584, -584, - 470, 243, 113, 260, 122, 273, 140, 281, 1001, -584, - -584, 428, 82, 279, 393, -584, 355, 3067, 3067, -584, - 13, -584, -584, 331, -584, -584, -584, -584, 2095, 222, - -584, 3067, 3067, 3067, 3067, -584, -584, 397, -584, 444, - -584, -584, -584, 118, -584, -584, -584, 118, -584, -584, - -584, 369, 345, 33, 25, 486, -584, -584, -584, 458, - -584, 339, -584, -584, 341, 105, -584, 3067, -584, -584, - -584, 510, -584, 164, 3067, 466, -584, -584, 3067, -584, - 349, 297, 184, -584, -584, -584, -584, -584, -584, 514, - 3067, -584, 467, -584, 474, -584, 476, -584, 477, -584, - -584, -584, -584, -584, 87, -584, -584, 360, 118, 363, - 479, 372, -584, -584, -584, -584, -584, 366, 483, 64, - -584, 3067, 376, 377, 118, 383, 386, 1190, 389, 436, - 288, -584, 511, -584, -584, 279, 3067, 424, -584, 39, - -584, -584, -584, 513, -584, -584, 3067, -584, 439, -584, - -584, -584, 248, -584, 3415, 3067, 515, -584, -584, 395, - -584, -584, -584, -584, 516, -584, -584, -584, 3067, 185, - 185, 521, 408, -584, 3067, 3067, 185, -584, 411, 420, - -584, -584, 185, 185, -584, -584, -584, -584, 3067, 279, - -584, 518, 3259, 3067, 421, -584, 118, -584, -584, 422, - -584, -584, 447, -584, -584, 3259, 314, 314, 479, 423, - 425, 426, 211, 3067, 3067, 185, 185, 185, -584, -584, - 479, 185, 537, 444, 1307, -584, -584, -584, -584, 3259, - -584, -584, -584, -584, 1424, -584, 185, 429, -584, -584, - -584, -584, 3067, 185, 185, -584, 538, 432, 211, 211, - 211, -584, 497, -584, -584, -584, 1541, -584, 29, -584, - 1658, -584, 3067, 441, 211, 211, -584, 185, -584, -584, - -584, 442, 63, -584, -584, 553, 488, -584, -584, 453, - 185, -584, -584, -584, 211, -584, -584, -584, -584, -584, - -584, 185, 211, 2176, -584, 1775, 314, -584, 454, -584, - -584, 185, -584 + 1026, -534, -534, -534, -534, -534, -534, -534, 22, -534, + 3034, 30, 1976, 1859, -534, -534, -534, -534, 62, 3034, + 62, 3034, 62, 3034, 62, 62, 3034, 80, 3034, 2305, + -534, -534, -534, -534, 62, 62, -534, -534, 72, -58, + -534, 3034, -534, -534, 3034, -38, -22, -21, 2305, 2224, + 30, 62, 3034, 20, 3034, 3034, 3034, 3034, 3034, 3034, + 2386, -534, 344, 105, -534, 41, -534, -55, 45, -20, + 44, -534, -534, -534, 882, -534, -534, -3, 106, 212, + 229, -534, 161, 253, 269, 164, -534, -534, -534, -534, + -534, 143, 154, 265, -534, -534, -534, 88, 92, -534, + -534, 30, 216, 216, -534, 20, -534, -534, -534, 210, + -534, -534, -534, -534, -534, -534, -534, -534, -534, -534, + -534, -534, -534, -534, -534, -534, -534, -534, -534, -534, + -534, -534, -534, -534, -534, -534, -534, 20, 206, -534, + 226, 421, 233, 1859, -534, -534, -534, -534, 735, -534, + 43, 852, -534, -534, -534, -534, -534, 242, -534, 430, + -534, 430, -534, -534, 898, 3115, 2467, 173, -534, -534, + -534, 898, -534, 898, 195, 184, 184, 3034, 152, 197, + 3034, 159, 898, 30, 882, 191, 2548, 3034, 2224, -534, + 898, 3196, -534, 105, -534, 2629, 3034, 3034, -534, 270, + -534, -534, 3034, 105, 430, 430, 430, 565, 565, 284, + 247, 3034, 3034, 3034, 3034, 3034, 3034, 3034, 2710, -534, + -534, 3034, -534, -534, 3034, 3034, 3034, 3034, 3034, 3034, + 3034, 3034, 3034, 3034, 3034, 3034, 3034, 3034, 3034, 3034, + 3034, 3034, 3034, 3034, 3034, 3034, 3034, 3034, 3034, 3034, + -534, -534, -534, 3034, 111, 2791, 3034, 3034, 3034, 3034, + 3034, 3034, 3034, -534, 267, 268, 275, 246, -534, -534, + -534, 205, 205, 79, -534, -534, 205, 205, -534, -534, + 294, -534, -534, -534, -534, -534, -534, 30, -534, -534, + -534, 3034, 3034, 3034, 3034, 3034, 3034, -534, -534, -534, + -534, -534, -534, -534, -534, 286, -534, 320, -534, -534, + 334, -534, -534, 2872, 430, 173, 51, 73, 101, -534, + 472, 296, -534, -534, -534, 184, 300, -534, 12, 12, + -534, 3034, 3034, 112, -534, -534, -534, -534, 505, 263, + 237, 3034, 105, 105, 345, -534, 3034, 356, 42, 42, + -534, -534, 3278, 53, 120, -534, 510, 349, 3523, 3382, + 430, 716, 3348, 3226, 3278, 3278, 558, 3421, 3421, 3421, + 3444, 3444, 3483, 3504, 3523, 3523, 349, 349, 468, 3543, + 3348, 716, 430, 430, 66, 137, 3034, 3034, 165, 347, + 348, 354, -534, 357, 2953, 238, -534, -534, 608, 222, + 142, 231, 155, 292, 166, 298, 1040, -534, -534, 363, + 49, 184, 324, -534, 291, 3034, 216, 216, 19, 336, + 2062, 205, 216, 265, -534, 3034, 3034, 216, 216, -534, + -534, 329, -534, 369, -534, -534, -534, 344, -534, -534, + -534, 344, -534, -534, -534, 299, 286, 43, 16, 727, + -534, -534, -534, 386, -534, 277, -534, -534, 271, 148, + -534, 3034, -534, -534, -534, 733, -534, 199, 3034, 387, + -534, -534, 3034, -534, 280, 311, 204, -534, -534, -534, + -534, -534, -534, 754, 3034, -534, 402, -534, 404, -534, + 406, -534, 407, -534, -534, -534, -534, -534, 61, -534, + -534, 290, 344, 273, 273, -534, 409, -534, -534, -534, + -534, -534, -534, -534, -534, -534, -534, -534, -534, 400, + 339, 216, 206, -534, 316, 317, 344, -534, -534, 1157, + 295, 394, 195, -534, 441, -534, -534, 184, 3034, 355, + -534, 27, -534, -534, -534, 444, -534, -534, 3034, -534, + 370, -534, -534, -534, 208, -534, 3330, 3034, 449, -534, + -534, 337, -534, -534, -534, -534, 451, -534, -534, -534, + 3034, -534, 216, 205, -534, -534, -534, 456, 350, -534, + -534, 206, -534, -534, -534, -534, -534, -534, -534, 3034, + 184, -534, 458, 882, 3034, 352, -534, 344, -534, -534, + 353, -534, -534, 398, -534, -534, 882, -534, 216, 409, + -534, 3034, -534, 216, 216, 409, 216, 466, 369, 1274, + -534, -534, -534, -534, 882, -534, -534, -534, -534, 1391, + -534, 273, -534, 469, 206, 206, -534, 445, -534, -534, + -534, 1508, -534, 2, -534, 1625, -534, -534, -534, -534, + 361, 30, -534, -534, 479, 410, -534, -534, -534, -534, + -534, -534, -534, -534, -534, 2143, 1742, 367, -534, 216, + -534 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -571,115 +572,114 @@ 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, 166, 1, 59, 0, 59, - 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, - 131, 131, 132, 317, 0, 0, 288, 315, 276, 310, - 312, 306, 131, 319, 298, 308, 0, 0, 301, 59, - 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, - 0, 340, 341, 179, 318, 283, 267, 223, 235, 224, - 242, 268, 269, 270, 182, 273, 5, 289, 278, 281, - 280, 282, 279, 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, - 369, 372, 371, 370, 356, 0, 357, 248, 359, 249, - 358, 362, 274, 0, 0, 321, 326, 328, 327, 305, - 266, 265, 59, 59, 59, 59, 0, 0, 0, 0, - 307, 0, 299, 0, 0, 59, 59, 302, 303, 317, - 338, 339, 192, 278, 0, 0, 360, 0, 134, 135, - 59, 300, 250, 251, 272, 255, 256, 277, 0, 0, - 0, 0, 0, 180, 0, 0, 0, 238, 237, 0, - 245, 244, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 4, 6, 8, 10, 12, 14, 0, 64, + 62, 0, 0, 0, 62, 169, 1, 62, 0, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, + 134, 134, 135, 320, 0, 0, 291, 318, 279, 313, + 315, 309, 134, 322, 301, 311, 0, 0, 304, 62, + 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 343, 344, 182, 321, 286, 270, 226, 238, 227, + 245, 271, 272, 273, 185, 276, 5, 292, 281, 284, + 283, 285, 282, 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, 372, 375, 374, 373, 359, 0, 360, 251, + 362, 252, 361, 365, 277, 0, 0, 324, 329, 331, + 330, 308, 269, 268, 62, 62, 62, 62, 0, 0, + 0, 0, 310, 0, 302, 0, 0, 62, 62, 305, + 306, 320, 341, 342, 195, 281, 0, 0, 363, 0, + 137, 138, 62, 303, 253, 254, 275, 258, 259, 280, + 0, 0, 0, 0, 0, 183, 0, 0, 0, 241, + 240, 0, 248, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 252, 253, - 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 59, 59, 0, 0, 59, 329, 331, 330, 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, 146, 145, 151, 161, 143, 157, 0, - 156, 160, 162, 167, 257, 0, 323, 0, 278, 281, - 280, 325, 0, 142, 320, 137, 136, 59, 140, 138, - 262, 264, 190, 59, 0, 0, 311, 195, 309, 313, - 0, 0, 0, 0, 183, 184, 0, 292, 0, 275, - 177, 178, 175, 176, 181, 0, 0, 209, 0, 241, - 247, 227, 216, 218, 220, 234, 214, 215, 0, 230, - 232, 231, 228, 229, 226, 225, 246, 243, 240, 236, - 239, 222, 221, 219, 233, 217, 213, 0, 0, 0, - 0, 366, 364, 368, 197, 0, 0, 187, 198, 290, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 129, 0, 0, 59, 333, 334, 335, 0, 0, 354, - 0, 355, 352, 0, 353, 349, 350, 351, 0, 0, - 61, 0, 123, 0, 0, 59, 61, 0, 45, 61, - 43, 117, 107, 104, 108, 111, 110, 125, 109, 112, - 144, 147, 143, 158, 277, 0, 322, 324, 141, 260, - 139, 59, 261, 263, 0, 59, 211, 59, 314, 194, - 193, 0, 258, 0, 0, 0, 202, 208, 0, 296, - 189, 0, 0, 293, 295, 294, 297, 361, 206, 0, - 59, 291, 0, 200, 0, 284, 0, 285, 0, 58, - 61, 34, 61, 38, 0, 332, 336, 0, 126, 0, - 0, 0, 344, 61, 121, 122, 127, 0, 0, 106, - 30, 0, 0, 0, 124, 0, 0, 0, 59, 0, - 59, 169, 0, 42, 168, 59, 148, 152, 159, 275, - 259, 166, 163, 0, 164, 191, 0, 342, 0, 196, - 185, 212, 0, 205, 271, 59, 0, 201, 207, 0, - 203, 286, 287, 199, 0, 39, 61, 17, 0, 0, - 0, 348, 0, 347, 0, 0, 0, 24, 0, 0, - 120, 120, 0, 0, 62, 65, 64, 47, 59, 59, - 59, 61, 149, 154, 0, 173, 343, 316, 210, 0, - 204, 186, 0, 59, 18, 337, 59, 59, 345, 0, - 0, 0, 59, 123, 0, 0, 0, 0, 35, 53, - 0, 0, 0, 61, 0, 172, 44, 171, 153, 155, - 165, 59, 188, 59, 0, 59, 0, 0, 113, 36, - 49, 346, 0, 0, 0, 33, 0, 0, 59, 59, - 59, 66, 118, 52, 46, 170, 0, 70, 0, 40, - 0, 114, 0, 0, 59, 59, 25, 0, 29, 50, - 54, 0, 0, 48, 174, 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, + 255, 256, 257, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 62, 0, 0, 62, 332, 334, + 333, 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, 149, 148, 154, 164, 146, 160, 0, 159, 163, + 165, 170, 260, 0, 326, 0, 281, 284, 283, 328, + 0, 145, 323, 140, 139, 62, 143, 141, 265, 267, + 193, 62, 0, 0, 314, 198, 312, 316, 0, 0, + 0, 0, 186, 187, 0, 295, 0, 278, 180, 181, + 178, 179, 184, 0, 0, 212, 0, 244, 250, 230, + 219, 221, 223, 237, 217, 218, 0, 233, 235, 234, + 231, 232, 229, 228, 249, 246, 243, 239, 242, 225, + 224, 222, 236, 220, 216, 0, 0, 0, 0, 369, + 367, 371, 200, 0, 0, 190, 201, 293, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 131, 132, 0, + 0, 62, 336, 337, 338, 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, 147, 150, 146, 161, 280, 0, + 325, 327, 144, 263, 142, 62, 264, 266, 0, 62, + 214, 62, 317, 197, 196, 0, 261, 0, 0, 0, + 205, 211, 0, 299, 192, 0, 0, 296, 298, 297, + 300, 364, 209, 0, 62, 294, 0, 203, 0, 287, + 0, 288, 0, 61, 64, 31, 64, 35, 0, 335, + 339, 0, 129, 62, 62, 357, 0, 54, 347, 358, + 355, 57, 356, 352, 353, 354, 124, 125, 130, 0, + 109, 0, 62, 56, 0, 0, 127, 32, 50, 0, + 62, 0, 62, 172, 0, 39, 171, 62, 151, 155, + 162, 278, 262, 169, 166, 0, 167, 194, 0, 345, + 0, 199, 188, 215, 0, 208, 274, 62, 0, 204, + 210, 0, 206, 289, 290, 202, 0, 36, 64, 17, + 0, 58, 0, 0, 116, 33, 46, 351, 0, 350, + 26, 62, 30, 123, 123, 65, 68, 67, 44, 62, + 62, 62, 64, 152, 157, 0, 176, 346, 319, 213, + 0, 207, 189, 0, 62, 18, 340, 117, 0, 348, + 55, 126, 29, 0, 0, 0, 0, 0, 64, 0, + 175, 41, 174, 156, 158, 168, 62, 191, 62, 0, + 62, 62, 349, 0, 62, 62, 69, 121, 49, 43, + 173, 0, 73, 0, 37, 0, 118, 27, 47, 51, + 0, 0, 45, 177, 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[] = { - -584, -584, -584, -584, -584, -584, -584, -584, -584, -584, - -584, -584, -584, -584, -584, -584, -584, -584, -584, -584, - -584, -584, -584, -584, -584, -584, -584, -584, -584, -584, - -584, -584, -584, -584, -584, -584, -584, -584, -584, -584, - -584, -584, -584, -584, -4, -10, -584, 28, -67, -584, - -584, -584, -584, -16, -584, 573, 448, -1, -584, -584, - -74, -425, -583, -401, -584, -562, -584, -25, 161, -281, - -100, -584, -82, 88, -584, -584, -101, 65, -172, 282, - 146, -584, -584, -584, -584, -584, 150, -584, -584, -584, - -584, 73, -584, -7, 162, -584, -314, -584, 16, -44, - -584, -584, -584, -584, -584, -584, -584, -584, -584, -584, - -584, -584, 636, -584, -584, 457, -584, -584, -584, -584, - -167, 3, -584, -584, -584, -584, 196, -584, -584, 356, - 36, -21, -15, -584, -584, -584, -584, -584, 57 + -534, -534, -534, -534, -534, -534, -534, -534, -534, -534, + -534, -534, -534, -534, -534, -534, -534, -534, -534, -534, + -534, -534, -534, -534, -534, -534, -534, -534, -534, -534, + -534, -534, -534, -534, -534, -534, -534, -534, -534, -534, + -534, -534, -534, -534, -534, -239, -534, -4, -10, -534, + -7, -77, -534, -534, -534, -534, -16, -534, 489, 360, + 0, -534, -534, 69, -407, -485, -474, -534, -533, -534, + -106, 82, -534, -156, -534, -95, 158, -534, -534, -94, + -13, -170, 209, 75, -534, -534, -534, -534, -534, 76, + -534, -534, -534, -534, -18, -534, -90, 77, -534, -321, + -534, 17, -44, -534, -534, -534, -534, -534, -534, -534, + -534, -534, -534, -534, -534, 485, -534, -534, 373, -534, + -534, -534, -534, -174, -2, -534, -534, -534, -534, 109, + -534, -534, 115, 81, -23, 5, -534, -534, -534, -534, + -534, 31 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { 0, 8, 9, 10, 11, 12, 13, 14, 15, 111, - 112, 113, 635, 114, 115, 116, 117, 118, 613, 683, - 578, 119, 120, 121, 122, 123, 124, 603, 125, 439, - 126, 535, 127, 530, 128, 621, 129, 130, 131, 437, - 132, 133, 134, 135, 136, 145, 501, 461, 282, 435, - 587, 620, 671, 146, 658, 302, 143, 144, 677, 690, - 442, 138, 639, 291, 673, 616, 516, 523, 446, 507, - 518, 411, 284, 172, 174, 262, 200, 327, 330, 324, - 451, 307, 308, 309, 310, 628, 311, 312, 313, 543, - 544, 147, 148, 533, 534, 626, 462, 631, 139, 63, - 64, 467, 397, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 177, 75, 165, 265, 416, 140, 568, - 192, 76, 548, 511, 571, 572, 422, 423, 274, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 156 + 112, 113, 630, 114, 115, 116, 117, 118, 119, 611, + 658, 120, 121, 122, 123, 124, 125, 126, 604, 127, + 433, 128, 537, 129, 532, 130, 616, 131, 132, 133, + 431, 134, 135, 136, 421, 416, 137, 138, 147, 495, + 455, 280, 429, 588, 615, 650, 148, 643, 300, 145, + 146, 656, 664, 436, 140, 575, 289, 652, 613, 518, + 525, 440, 501, 519, 409, 282, 174, 176, 264, 202, + 325, 328, 322, 445, 305, 306, 307, 308, 623, 309, + 310, 311, 545, 546, 149, 150, 535, 536, 621, 456, + 626, 141, 63, 64, 461, 395, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 179, 75, 167, 267, + 414, 142, 570, 194, 76, 550, 507, 577, 578, 510, + 511, 423, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 158 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -687,193 +687,178 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 61, 149, 331, 515, 285, 191, 167, 87, 332, 61, - 201, 137, 168, 214, 152, 215, 152, 463, 152, 617, - 152, 152, 155, -61, 640, 170, 62, 20, 287, 20, - 152, 152, 16, 347, 288, 62, 283, 17, 348, 190, - 185, 271, 61, 475, 187, 152, 195, 152, 254, -150, - 255, 675, 474, 303, 153, 197, 153, 304, 153, 479, - 153, 153, 86, 166, -363, 20, -363, 20, 62, 22, - 153, 153, 267, 24, 86, 154, 208, 179, 268, 158, - 178, 160, 161, 186, 183, 193, 466, 153, 676, 184, - 198, 175, 176, 502, 213, 199, 293, 280, 566, 294, - 295, 296, 297, 476, 503, 298, 194, 150, 196, 567, - 219, -325, 151, 700, 261, 209, 210, 211, 212, 173, - 213, 693, -365, -326, -365, -324, 290, 493, 546, 266, - 181, 191, 275, 272, 216, 305, 495, 509, 306, -328, - 301, 198, 319, 273, -61, 510, 199, 517, 320, 253, - 344, 345, 525, 526, 497, 459, 191, 222, 209, 210, - 211, 212, 326, 329, 329, 190, 209, 210, 211, 212, - 254, 163, 255, 217, 218, 61, 61, 337, 551, -367, - 322, 164, 152, 209, 210, 211, 212, 260, 341, 342, - 190, -363, 263, -363, 335, -126, 281, -327, 557, 318, - 340, 62, 62, 438, 220, 221, 440, 209, 210, 211, - 212, 645, 209, 210, 211, 212, 209, 210, 211, 212, - 444, 445, 193, 448, 449, 350, 351, 352, 353, 264, - 355, 356, 358, 269, 209, 210, 211, 212, 20, 86, - 579, 504, 22, 343, 20, 408, 24, 668, 669, 670, - 289, 426, 410, 483, 286, 415, 270, 427, 209, 210, - 211, 212, 598, 681, 682, 492, 211, 212, 515, 400, - 401, 402, 403, 404, 405, 406, 407, 627, 209, 210, - 211, 212, 494, 694, 150, 441, 480, 276, 398, 151, - 465, 697, 277, 610, 611, 496, 292, 417, 418, 420, - 549, 428, 429, 498, 431, 432, 433, 434, 425, 443, - 443, 443, 447, 443, 443, 387, 388, 329, 389, 556, - -365, 390, -365, 61, 256, 391, 257, -371, 252, 392, - 393, 455, 258, 647, 259, 278, 464, 209, 210, 211, - 212, 279, 209, 210, 211, 212, 299, 636, 637, 62, - 314, 323, 224, 225, 209, 210, 211, 212, 325, 471, - 334, 663, 394, 591, 473, 328, 333, 209, 210, 211, - 212, 336, 338, 346, 348, 209, 210, 211, 212, 409, - 414, 679, 224, 412, 413, 419, 152, 430, 395, 245, - 246, 209, 210, 211, 212, 247, 436, 452, 248, 249, - 250, 251, 252, 329, 481, 482, 450, 453, 426, 458, - 469, 470, 489, 460, 427, 472, 484, 623, 514, 527, - 246, 622, 474, 191, 485, 247, 153, 224, 248, 249, - 250, 251, 252, 508, 508, 486, 293, 396, 487, 294, - 295, 296, 297, 490, 519, 298, 500, 447, 524, 508, - 508, 542, 505, 529, 506, 547, 512, 190, 521, 209, - 210, 211, 212, 513, 528, 425, 531, 532, 536, -61, - 247, 541, 545, 248, 249, 250, 251, 252, 553, 560, - 61, 555, 209, 210, 211, 212, 561, 532, 562, 563, - 552, 569, 588, 559, 570, 20, 349, 576, 209, 210, - 211, 212, 606, 607, 574, 577, 62, 580, 581, 612, - 209, 210, 211, 212, 582, 618, 619, 583, 586, 457, - 326, 585, 590, 593, 595, 329, 601, 600, 564, 597, - 565, 209, 210, 211, 212, 633, 608, 508, 602, 609, - 625, 575, 672, 614, 191, 61, 573, 468, 648, 649, - 650, 615, 630, 632, 652, 642, 643, 644, 599, 653, - 666, 662, 596, 667, 209, 210, 211, 212, 477, 661, - 687, 62, 680, 685, 624, 688, 664, 665, 190, 329, - 209, 210, 211, 212, 691, 701, 142, 634, 646, 300, - 508, 508, 522, 698, 604, 589, 638, 638, 537, 456, - 684, 491, 290, 538, 209, 210, 211, 212, 209, 210, - 211, 212, 18, 692, 594, 656, 654, 539, 20, 660, - 317, 540, 22, 657, 696, 520, 24, 0, 424, 524, - 508, 0, 421, 0, 702, 0, 0, 0, 290, 290, - 290, 550, 0, 0, 641, 558, -371, -371, -371, 251, - 252, 532, 0, 0, 290, 290, 651, 157, 508, 159, - 0, 0, 162, 0, 169, 171, 689, 0, 686, 0, - 0, 0, 695, 0, 290, 0, 0, 180, 508, 0, - 182, 0, 290, 514, 188, 0, 638, -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, 1, 2, 3, 4, - 5, 6, 7, 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, 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, 554, 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, 0, 592, 247, 0, 0, 248, 249, 250, 251, - 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 151, 17, 330, 169, 193, 329, 87, 457, 61, + 203, 283, 139, 517, 154, 285, 154, 157, 154, 576, + 154, 154, 16, -64, 654, 172, 281, 62, 345, 346, + 154, 154, 170, 417, 422, 20, 62, 427, 428, 192, + 468, 86, 61, 286, 189, 154, 197, 154, 582, 156, + 199, 614, 216, 160, 217, 162, 163, 219, 220, -153, + 496, 655, 256, 301, 257, 177, 178, 302, 187, 62, + 269, 497, 568, 86, 181, 469, 200, 210, 20, 263, + 196, 201, 198, 569, -366, 180, -366, 271, 272, 273, + 222, 223, 276, 277, 185, 20, 20, 278, 270, 155, + 22, 155, -328, 155, 24, 155, 155, 612, 168, 418, + 186, 188, -368, -327, -368, 155, 155, 256, 152, 257, + 215, 385, 386, 153, 387, 665, 460, 388, 288, 255, + 195, 389, 155, 193, 470, 390, 391, -329, 213, 214, + 304, 505, 317, 299, -64, 303, 646, 211, 212, 213, + 214, 506, 342, 343, 224, 453, 487, 221, 193, -331, + 648, 649, 473, 215, 324, 327, 327, 192, 392, 489, + 318, 548, -370, 218, 268, 262, 86, 61, 61, 335, + 491, 20, 521, 320, 154, 339, 340, -330, 432, 175, + 477, 434, 192, 200, 393, -374, 254, 333, 201, 265, + 183, 419, 165, 338, 62, 62, 211, 212, 213, 214, + 266, 420, 166, 553, 211, 212, 213, 214, 559, 341, + 274, 152, 599, -366, 275, -366, 153, 279, 348, 349, + 350, 351, 284, 353, 354, 356, 211, 212, 213, 214, + -368, 498, -368, 394, 486, 287, 316, 406, 290, 211, + 212, 213, 214, 488, 408, 297, 312, 413, 517, 321, + 211, 212, 213, 214, 258, 323, 259, 425, 426, 195, + 326, 622, 398, 399, 400, 401, 402, 403, 404, 405, + 260, 20, 261, 435, 331, 22, 332, 551, 459, 24, + 334, 474, 344, 211, 212, 213, 214, 346, 211, 212, + 213, 214, 211, 212, 213, 214, 572, 573, 437, 437, + 437, 441, 437, 437, 490, 327, 211, 212, 213, 214, + 492, 61, 336, 407, 410, 211, 212, 213, 214, 458, + 449, 411, 412, 558, 608, 396, 446, 415, 430, 503, + 504, 211, 212, 213, 214, 522, 18, 444, 62, 447, + 527, 528, 20, 463, 424, 452, 22, 466, 465, 454, + 24, 438, 439, 467, 442, 443, 509, 592, 464, 468, + 484, 291, 478, 479, 292, 293, 294, 295, 347, 480, + 296, 494, 481, 499, 154, 531, 211, 212, 213, 214, + 500, 533, 211, 212, 213, 214, 514, -64, 538, 555, + 514, 327, 547, 475, 476, 211, 212, 213, 214, 543, + 516, 483, 557, 529, 562, 617, 563, 193, 564, 565, + 618, 571, 580, 530, 515, 20, 534, 586, 515, 226, + 227, 228, 502, 211, 212, 213, 214, 520, 211, 212, + 213, 214, 441, 526, 581, 544, 534, 583, 584, 549, + 589, 192, 591, 291, 594, 596, 292, 293, 294, 295, + 598, 601, 296, 244, 245, 246, 247, 248, 602, 155, + -129, 609, 249, 603, 61, 250, 251, 252, 253, 254, + 620, 610, 561, 625, 627, 554, 628, 566, 638, 567, + 651, 647, 659, 574, 574, 607, 661, 662, 669, 508, + 513, 62, 144, 298, 513, 633, 159, 524, 161, 667, + 226, 164, 288, 171, 173, 211, 212, 213, 214, 590, + 587, 539, 324, 540, 450, 595, 182, 327, 639, 184, + 542, 631, 523, 190, 512, 0, 634, 635, 315, 637, + 204, 205, 206, 207, 208, 193, 0, 61, 226, 227, + 228, 0, 0, 249, 0, 600, 250, 251, 252, 253, + 254, 605, 0, 0, 0, 597, 211, 212, 213, 214, + 0, 288, 0, 0, 62, 619, 0, 0, 0, 192, + 327, 0, -374, 245, 246, 247, 248, 579, 629, 0, + 0, 249, 670, 0, 250, 251, 252, 253, 254, 211, + 212, 213, 214, 451, 211, 212, 213, 214, 0, 0, + 641, 534, 0, 0, 645, 0, 0, 0, 642, 0, + 0, 574, 0, 0, 288, 288, 0, 0, 526, 0, + 225, 0, 0, 0, 0, 0, 462, 0, 226, 227, + 228, 471, 0, 0, 0, 663, 666, 660, 0, 0, + 314, 229, 0, 0, 0, 516, 0, 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, + 632, -374, -374, -374, 253, 254, 636, 0, 0, 0, + 352, 0, 211, 212, 213, 214, 357, 0, 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, -13, 88, 0, 384, 485, + 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, 226, 38, 39, 40, + 41, 42, 43, 108, 143, 0, 44, 0, 109, 45, + 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, + 53, 211, 212, 213, 214, 0, 110, 211, 212, 213, + 214, 0, 0, 54, 248, 0, 0, 0, 0, 249, + 0, 0, 250, 251, 252, 253, 254, 0, 211, 212, + 213, 214, -3, 88, 55, 56, 0, 57, 541, 58, + 59, 0, 18, 86, 552, 19, 0, 60, 20, 0, + 0, 21, 22, 23, 89, 0, 24, 25, 90, 91, + 92, 26, 27, 93, 94, 560, 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, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, + 54, 0, 0, 0, 225, 0, 0, 556, 0, 0, + 0, 0, 226, 227, 228, 0, 0, 0, 0, 0, + 0, 55, 56, 0, 57, 229, 58, 59, 226, 227, + 228, 230, 231, 232, 60, 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, 245, 246, 247, 248, 0, 0, 0, + 0, 249, 0, 593, 250, 251, 252, 253, 254, 1, + 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, - 18, 86, 584, 19, 605, 0, 20, 0, 0, 21, + 18, 86, 493, 19, 0, 606, 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, - 27, 93, 94, 0, 0, 95, 96, 97, 98, 629, + 27, 93, 94, 0, 0, 95, 96, 97, 98, 624, 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, 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, 655, + 56, 0, 57, 0, 58, 59, 0, 18, 86, 585, 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, + 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, 659, 19, 0, 60, + 0, 58, 59, 0, 18, 86, 640, 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, + 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, 674, 19, 0, 60, 20, 0, 0, + 0, 18, 86, 644, 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, + 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, - 678, 19, 0, 60, 20, 0, 0, 21, 22, 23, + 653, 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, + 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, 0, 19, 0, + 57, 0, 58, 59, 0, 18, 86, 657, 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, 699, 0, 0, 110, 0, 0, 0, + 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, @@ -883,9 +868,9 @@ static const yytype_int16 yytable[] = 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, + 668, 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, @@ -894,17 +879,53 @@ static const yytype_int16 yytable[] = 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, + 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, 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, + 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, 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, + 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, @@ -913,36 +934,36 @@ static const yytype_int16 yytable[] = 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, + 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, -59, 60, 30, - 31, 0, 32, 189, 34, 35, 36, 37, 151, 38, + 58, 59, 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, + 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, + 0, 58, 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, 51, 52, 53, 0, 0, 0, 0, 0, -373, + 256, 0, 257, 0, 0, -373, 54, 0, -373, -373, + -373, 0, 0, -373, -373, 0, 0, 0, -373, -373, 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, + 57, 0, 58, 59, 0, 0, -373, -373, 0, 337, + 60, -373, -373, 0, -373, -373, -373, -373, -373, -373, + 0, -373, -373, -373, -373, -373, -373, 0, 0, 0, + -373, 0, 0, -373, -373, -373, -373, -373, -373, 0, + 0, 0, -373, -373, -373, 0, 0, 0, 0, 0, + 18, 0, 0, 19, 0, 0, 20, -373, 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, 30, 31, 0, 32, 33, 34, 35, 36, + 27, 0, 0, 0, 0, 0, 0, 0, -373, -373, + 0, -373, 0, -373, -373, 0, 0, 28, 29, 0, + 0, -373, 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, @@ -950,23 +971,23 @@ static const yytype_int16 yytable[] = 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, 60, 30, 31, 0, 32, 33, 34, 35, + 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, -370, 254, 0, 255, 0, 0, -370, 54, - 0, -370, -370, -370, 0, 0, -370, -370, 0, 0, - 0, -370, -370, 0, 0, 0, 0, 0, 0, 0, - 55, 56, 0, 57, 0, 58, 59, 0, 0, -370, - -370, 0, 339, 60, -370, -370, 0, -370, -370, -370, - -370, -370, -370, 0, -370, -370, -370, -370, -370, -370, - 0, 0, 0, -370, 0, 0, -370, -370, -370, -370, - -370, -370, 0, 0, 0, -370, -370, -370, 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, 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, - -370, 0, 21, 22, 23, 0, 0, 24, 25, 0, + 54, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, - 0, -370, -370, 0, -370, 0, -370, -370, 0, 0, - 28, 29, 0, 0, -370, 30, 31, 0, 32, 33, + 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, @@ -974,7 +995,7 @@ static const yytype_int16 yytable[] = 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, 357, 60, 30, 31, 0, 32, + 0, 28, 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, @@ -982,214 +1003,170 @@ static const yytype_int16 yytable[] = 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, 399, 60, 30, 31, 0, + 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, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 53, 0, 0, 0, 0, 0, -372, 0, 0, -372, + 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, 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, -369, - 0, 0, -369, 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, 0, - 315, -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, - 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 0, 0, 224, - 225, 226, 0, 0, 0, 0, 0, 0, -369, -369, - 0, -369, 227, -369, -369, 0, 0, 0, 228, 229, - 230, -369, 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, -371, 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, 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, 0, 0, 0, 230, 0, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 0, 0, 0, 0, 247, -371, - 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, 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, - -371, 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 + 59, 0, 0, -372, -372, 0, 0, 313, -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, 0, 0, 0, + 0, 0, 0, 0, -372, 0, 0, 0, 225, 0, + 0, 0, 0, 0, 0, 0, 226, 227, 228, 0, + 0, 0, 0, 0, 0, -372, -372, 0, -372, -374, + -372, -372, 0, 0, 0, 230, 231, 232, -372, 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, -374, 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, 0, 226, 227, 228, 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, 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, 226, 227, 228, 0, 0, 0, + 0, 0, 239, 240, 241, 242, 243, 244, 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, 0, 0, 0, 0, 249, 0, 0, 250, + 251, 252, 253, 254, 0, 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, 105, 49, 27, 11, 175, 19, - 54, 12, 27, 11, 18, 13, 20, 331, 22, 581, - 24, 25, 19, 11, 607, 29, 10, 16, 110, 16, - 34, 35, 0, 200, 135, 19, 103, 9, 13, 49, - 89, 30, 52, 22, 48, 49, 50, 51, 11, 16, - 13, 22, 13, 20, 18, 52, 20, 24, 22, 25, - 24, 25, 11, 27, 11, 16, 13, 16, 52, 20, - 34, 35, 93, 24, 11, 18, 60, 132, 93, 22, - 13, 24, 25, 132, 132, 49, 14, 51, 59, 132, - 56, 34, 35, 11, 15, 61, 32, 101, 11, 35, - 36, 37, 38, 14, 22, 41, 49, 56, 51, 22, - 112, 86, 61, 696, 86, 94, 95, 96, 97, 31, - 15, 683, 11, 86, 13, 86, 136, 14, 23, 93, - 42, 175, 96, 122, 132, 102, 14, 418, 148, 86, - 141, 56, 163, 132, 132, 132, 61, 428, 163, 132, - 194, 195, 433, 434, 14, 327, 200, 110, 94, 95, - 96, 97, 172, 173, 174, 175, 94, 95, 96, 97, - 11, 122, 13, 112, 113, 185, 186, 181, 14, 11, - 164, 132, 186, 94, 95, 96, 97, 11, 185, 186, - 200, 11, 56, 13, 178, 131, 11, 86, 14, 163, - 184, 185, 186, 285, 110, 111, 288, 94, 95, 96, - 97, 612, 94, 95, 96, 97, 94, 95, 96, 97, - 294, 295, 186, 297, 298, 209, 210, 211, 212, 56, - 214, 215, 216, 132, 94, 95, 96, 97, 16, 11, - 521, 413, 20, 186, 16, 261, 24, 648, 649, 650, - 39, 272, 262, 25, 22, 265, 132, 272, 94, 95, - 96, 97, 14, 664, 665, 22, 96, 97, 693, 253, - 254, 255, 256, 257, 258, 259, 260, 591, 94, 95, - 96, 97, 22, 684, 56, 289, 387, 132, 252, 61, - 334, 692, 132, 574, 575, 22, 22, 269, 270, 271, - 467, 273, 274, 22, 276, 277, 278, 279, 272, 293, - 294, 295, 296, 297, 298, 10, 11, 327, 13, 22, - 11, 16, 13, 333, 11, 20, 13, 129, 130, 24, - 25, 315, 11, 614, 13, 132, 333, 94, 95, 96, - 97, 132, 94, 95, 96, 97, 22, 33, 34, 333, - 14, 86, 80, 81, 94, 95, 96, 97, 70, 343, - 89, 642, 57, 535, 348, 86, 132, 94, 95, 96, - 97, 131, 131, 22, 13, 94, 95, 96, 97, 56, - 86, 662, 80, 56, 56, 122, 390, 132, 83, 117, - 118, 94, 95, 96, 97, 123, 44, 16, 126, 127, - 128, 129, 130, 413, 388, 389, 61, 15, 429, 59, - 90, 131, 396, 59, 429, 12, 25, 589, 428, 435, - 118, 588, 13, 467, 25, 123, 390, 80, 126, 127, - 128, 129, 130, 417, 418, 25, 32, 132, 25, 35, - 36, 37, 38, 132, 428, 41, 18, 431, 432, 433, - 434, 461, 59, 56, 99, 465, 420, 467, 430, 94, - 95, 96, 97, 132, 436, 429, 22, 439, 99, 11, - 123, 132, 131, 126, 127, 128, 129, 130, 12, 12, - 490, 132, 94, 95, 96, 97, 12, 459, 12, 12, - 474, 131, 56, 490, 131, 16, 131, 131, 94, 95, - 96, 97, 569, 570, 132, 22, 490, 131, 131, 576, - 94, 95, 96, 97, 131, 582, 583, 131, 528, 131, - 530, 132, 11, 99, 11, 535, 131, 12, 500, 90, - 502, 94, 95, 96, 97, 88, 15, 521, 22, 131, - 22, 513, 45, 132, 588, 555, 510, 131, 615, 616, - 617, 131, 131, 131, 621, 132, 131, 131, 555, 22, - 22, 132, 546, 131, 94, 95, 96, 97, 131, 636, - 17, 555, 131, 131, 590, 87, 643, 644, 588, 589, - 94, 95, 96, 97, 131, 131, 13, 603, 613, 141, - 574, 575, 431, 693, 566, 530, 606, 607, 452, 317, - 667, 131, 612, 453, 94, 95, 96, 97, 94, 95, - 96, 97, 10, 680, 541, 631, 623, 131, 16, 635, - 163, 459, 20, 633, 691, 429, 24, -1, 272, 613, - 614, -1, 30, -1, 701, -1, -1, -1, 648, 649, - 650, 131, -1, -1, 608, 131, 126, 127, 128, 129, - 130, 623, -1, -1, 664, 665, 620, 21, 642, 23, - -1, -1, 26, -1, 28, 29, 676, -1, 672, -1, - -1, -1, 688, -1, 684, -1, -1, 41, 662, -1, - 44, -1, 692, 693, 48, -1, 696, 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, 3, 4, 5, 6, - 7, 8, 9, -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, -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, -1, 536, 123, -1, -1, 126, 127, 128, 129, - 130, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 10, 17, 9, 177, 27, 49, 176, 11, 329, 19, + 54, 105, 12, 420, 18, 110, 20, 19, 22, 504, + 24, 25, 0, 11, 22, 29, 103, 10, 202, 13, + 34, 35, 27, 272, 273, 16, 19, 276, 277, 49, + 13, 11, 52, 137, 48, 49, 50, 51, 522, 18, + 52, 584, 11, 22, 13, 24, 25, 112, 113, 16, + 11, 59, 11, 20, 13, 34, 35, 24, 89, 52, + 93, 22, 11, 11, 132, 22, 56, 60, 16, 86, + 49, 61, 51, 22, 11, 13, 13, 94, 95, 96, + 110, 111, 99, 100, 132, 16, 16, 101, 93, 18, + 20, 20, 86, 22, 24, 24, 25, 581, 27, 30, + 132, 132, 11, 86, 13, 34, 35, 11, 56, 13, + 15, 10, 11, 61, 13, 658, 14, 16, 138, 132, + 49, 20, 51, 177, 14, 24, 25, 86, 96, 97, + 150, 122, 165, 143, 132, 102, 631, 94, 95, 96, + 97, 132, 196, 197, 110, 325, 14, 112, 202, 86, + 634, 635, 25, 15, 174, 175, 176, 177, 57, 14, + 165, 23, 11, 132, 93, 11, 11, 187, 188, 183, + 14, 16, 421, 166, 188, 187, 188, 86, 283, 31, + 25, 286, 202, 56, 83, 129, 130, 180, 61, 56, + 42, 122, 122, 186, 187, 188, 94, 95, 96, 97, + 56, 132, 132, 14, 94, 95, 96, 97, 14, 188, + 132, 56, 14, 11, 132, 13, 61, 11, 211, 212, + 213, 214, 22, 216, 217, 218, 94, 95, 96, 97, + 11, 411, 13, 132, 22, 39, 165, 263, 22, 94, + 95, 96, 97, 22, 264, 22, 14, 267, 665, 86, + 94, 95, 96, 97, 11, 70, 13, 274, 275, 188, + 86, 592, 255, 256, 257, 258, 259, 260, 261, 262, + 11, 16, 13, 287, 132, 20, 89, 461, 332, 24, + 131, 385, 22, 94, 95, 96, 97, 13, 94, 95, + 96, 97, 94, 95, 96, 97, 33, 34, 291, 292, + 293, 294, 295, 296, 22, 325, 94, 95, 96, 97, + 22, 331, 131, 56, 56, 94, 95, 96, 97, 331, + 313, 56, 86, 22, 573, 254, 16, 132, 44, 416, + 417, 94, 95, 96, 97, 422, 10, 61, 331, 15, + 427, 428, 16, 90, 273, 59, 20, 12, 341, 59, + 24, 292, 293, 346, 295, 296, 30, 537, 131, 13, + 132, 32, 25, 25, 35, 36, 37, 38, 131, 25, + 41, 18, 25, 59, 388, 56, 94, 95, 96, 97, + 99, 22, 94, 95, 96, 97, 419, 11, 99, 12, + 423, 411, 131, 386, 387, 94, 95, 96, 97, 132, + 420, 394, 132, 429, 12, 589, 12, 461, 12, 12, + 590, 131, 22, 430, 419, 16, 433, 132, 423, 80, + 81, 82, 415, 94, 95, 96, 97, 420, 94, 95, + 96, 97, 425, 426, 521, 455, 453, 131, 131, 459, + 56, 461, 11, 32, 99, 11, 35, 36, 37, 38, + 90, 12, 41, 114, 115, 116, 117, 118, 131, 388, + 131, 15, 123, 22, 484, 126, 127, 128, 129, 130, + 22, 131, 484, 131, 131, 468, 88, 494, 22, 496, + 45, 22, 131, 503, 504, 572, 17, 87, 131, 418, + 419, 484, 13, 143, 423, 611, 21, 425, 23, 665, + 80, 26, 522, 28, 29, 94, 95, 96, 97, 532, + 530, 446, 532, 447, 315, 543, 41, 537, 618, 44, + 453, 608, 423, 48, 419, -1, 613, 614, 165, 616, + 55, 56, 57, 58, 59, 589, -1, 557, 80, 81, + 82, -1, -1, 123, -1, 557, 126, 127, 128, 129, + 130, 568, -1, -1, -1, 548, 94, 95, 96, 97, + -1, 581, -1, -1, 557, 591, -1, -1, -1, 589, + 590, -1, 114, 115, 116, 117, 118, 506, 604, -1, + -1, 123, 669, -1, 126, 127, 128, 129, 130, 94, + 95, 96, 97, 131, 94, 95, 96, 97, -1, -1, + 626, 618, -1, -1, 630, -1, -1, -1, 628, -1, + -1, 631, -1, -1, 634, 635, -1, -1, 611, -1, + 72, -1, -1, -1, -1, -1, 131, -1, 80, 81, + 82, 131, -1, -1, -1, 655, 662, 651, -1, -1, + 165, 93, -1, -1, -1, 665, -1, 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, + 609, 126, 127, 128, 129, 130, 615, -1, -1, -1, + 215, -1, 94, 95, 96, 97, 221, -1, -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, 0, 1, -1, 253, 131, + -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, 80, 62, 63, 64, + 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, + 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, + 85, 94, 95, 96, 97, -1, 91, 94, 95, 96, + 97, -1, -1, 98, 118, -1, -1, -1, -1, 123, + -1, -1, 126, 127, 128, 129, 130, -1, 94, 95, + 96, 97, 0, 1, 119, 120, -1, 122, 131, 124, + 125, -1, 10, 11, 131, 13, -1, 132, 16, -1, + -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 131, -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, 72, -1, -1, 472, -1, -1, + -1, -1, 80, 81, 82, -1, -1, -1, -1, -1, + -1, 119, 120, -1, 122, 93, 124, 125, 80, 81, + 82, 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, -1, -1, 126, 127, + 128, 129, 130, 115, 116, 117, 118, -1, -1, -1, + -1, 123, -1, 538, 126, 127, 128, 129, 130, 3, + 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, - 10, 11, 12, 13, 568, -1, 16, -1, -1, 19, + 10, 11, 12, 13, -1, 570, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, 35, 36, 37, 38, 593, + 30, 31, 32, -1, -1, 35, 36, 37, 38, 594, 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, @@ -1245,7 +1222,7 @@ static const yytype_int16 yycheck[] = -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, + 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, @@ -1253,7 +1230,7 @@ static const yytype_int16 yycheck[] = 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, 88, -1, -1, 91, -1, -1, -1, + 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, @@ -1265,7 +1242,7 @@ static const yytype_int16 yycheck[] = 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, + 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, 120, -1, 122, -1, 124, 125, -1, 10, @@ -1274,17 +1251,53 @@ static const yytype_int16 yycheck[] = 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, + -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, 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, + -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, -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, + 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, @@ -1293,27 +1306,27 @@ static const yytype_int16 yycheck[] = -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, + 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, 61, 62, + 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, + 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, + -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, + 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, + 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, @@ -1322,7 +1335,7 @@ static const yytype_int16 yycheck[] = 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, + -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, @@ -1334,7 +1347,7 @@ static const yytype_int16 yycheck[] = 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, -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, @@ -1346,7 +1359,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, -1, 132, 52, 53, -1, 55, 56, + 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, @@ -1362,7 +1375,7 @@ static const yytype_int16 yycheck[] = -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, + -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, @@ -1370,79 +1383,50 @@ static const yytype_int16 yycheck[] = -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, + 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, 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, 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, -1, -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, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -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, + 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, -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, - 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, 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, - 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 + -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, -1, 80, 81, 82, 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, 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, 80, 81, 82, -1, -1, -1, + -1, -1, 109, 110, 111, 112, 113, 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, -1, -1, -1, -1, 123, -1, -1, 126, + 127, 128, 129, 130, -1, -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 @@ -1450,76 +1434,73 @@ 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, 231, 232, 233, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 247, 254, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 11, 177, 1, 22, + 132, 181, 234, 235, 236, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 250, 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, 231, - 251, 69, 188, 189, 190, 178, 186, 224, 225, 186, - 56, 61, 177, 263, 271, 254, 271, 245, 271, 245, - 271, 271, 245, 122, 132, 248, 263, 264, 265, 245, - 177, 245, 206, 206, 207, 271, 271, 246, 13, 132, - 245, 206, 245, 132, 132, 89, 132, 177, 245, 56, - 178, 232, 253, 263, 271, 177, 271, 254, 56, 61, - 209, 232, 245, 245, 245, 245, 245, 131, 231, 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, 249, 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, 214, 215, 216, - 217, 219, 220, 221, 14, 132, 245, 248, 263, 264, - 265, 131, 231, 86, 212, 70, 178, 210, 86, 178, - 211, 211, 253, 132, 89, 231, 131, 177, 131, 131, - 231, 254, 254, 271, 232, 232, 22, 253, 13, 131, - 231, 231, 231, 231, 245, 231, 231, 131, 231, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 10, 11, 13, - 16, 20, 24, 25, 57, 83, 132, 235, 263, 131, - 231, 231, 231, 231, 231, 231, 231, 231, 186, 56, - 178, 204, 56, 56, 86, 178, 250, 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, 231, 193, 193, 201, 231, 193, 193, - 61, 213, 16, 15, 131, 231, 212, 131, 59, 211, - 59, 180, 229, 229, 254, 232, 14, 234, 131, 90, - 131, 231, 12, 231, 13, 22, 14, 131, 102, 25, - 209, 231, 231, 25, 25, 25, 25, 25, 131, 231, - 132, 131, 22, 14, 22, 14, 22, 14, 22, 12, - 18, 179, 11, 22, 211, 59, 99, 202, 231, 202, - 132, 256, 263, 132, 178, 194, 199, 202, 203, 231, - 259, 180, 201, 200, 231, 202, 202, 186, 180, 56, - 166, 22, 180, 226, 227, 164, 99, 213, 219, 131, - 227, 132, 178, 222, 223, 131, 23, 178, 255, 253, - 131, 14, 231, 12, 245, 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, 245, 99, 224, 11, 231, 90, 14, 254, - 12, 131, 22, 160, 180, 245, 181, 181, 15, 131, - 202, 202, 181, 151, 132, 131, 198, 198, 181, 181, - 184, 168, 253, 211, 186, 22, 228, 229, 218, 245, - 131, 230, 131, 88, 186, 145, 33, 34, 178, 195, - 195, 263, 132, 131, 131, 196, 200, 202, 181, 181, - 181, 263, 181, 22, 226, 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, 234, 254, 69, 191, 192, 193, 181, 189, 227, + 228, 189, 56, 61, 180, 266, 274, 257, 274, 248, + 274, 248, 274, 274, 248, 122, 132, 251, 266, 267, + 268, 248, 180, 248, 209, 209, 210, 274, 274, 249, + 13, 132, 248, 209, 248, 132, 132, 89, 132, 180, + 248, 56, 181, 235, 256, 266, 274, 180, 274, 257, + 56, 61, 212, 235, 248, 248, 248, 248, 248, 131, + 234, 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, 252, 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, 217, 218, 219, 220, 222, + 223, 224, 14, 132, 248, 251, 266, 267, 268, 131, + 234, 86, 215, 70, 181, 213, 86, 181, 214, 214, + 256, 132, 89, 234, 131, 180, 131, 131, 234, 257, + 257, 274, 235, 235, 22, 256, 13, 131, 234, 234, + 234, 234, 248, 234, 234, 131, 234, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 10, 11, 13, 16, 20, + 24, 25, 57, 83, 132, 238, 266, 131, 234, 234, + 234, 234, 234, 234, 234, 234, 189, 56, 181, 207, + 56, 56, 86, 181, 253, 132, 178, 178, 30, 122, + 132, 177, 178, 264, 266, 183, 183, 178, 178, 185, + 44, 173, 208, 163, 208, 180, 196, 234, 196, 196, + 204, 234, 196, 196, 61, 216, 16, 15, 131, 234, + 215, 131, 59, 214, 59, 183, 232, 232, 257, 235, + 14, 237, 131, 90, 131, 234, 12, 234, 13, 22, + 14, 131, 102, 25, 212, 234, 234, 25, 25, 25, + 25, 25, 131, 234, 132, 131, 22, 14, 22, 14, + 22, 14, 22, 12, 18, 182, 11, 22, 214, 59, + 99, 205, 234, 184, 184, 122, 132, 259, 266, 30, + 262, 263, 265, 266, 267, 268, 181, 197, 202, 206, + 234, 178, 184, 262, 204, 203, 234, 184, 184, 189, + 183, 56, 167, 22, 183, 229, 230, 165, 99, 216, + 222, 131, 230, 132, 181, 225, 226, 131, 23, 181, + 258, 256, 131, 14, 234, 12, 248, 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, 248, 99, 227, 11, 234, 90, 14, + 257, 12, 131, 22, 161, 183, 248, 184, 178, 15, + 131, 152, 199, 201, 201, 187, 169, 256, 214, 189, + 22, 231, 232, 221, 248, 131, 233, 131, 88, 189, + 145, 184, 266, 203, 184, 184, 266, 184, 22, 229, + 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. */ @@ -1527,42 +1508,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, 215, - 216, 216, 217, 217, 218, 218, 219, 219, 220, 220, - 220, 221, 221, 222, 222, 223, 225, 224, 226, 226, - 227, 228, 228, 230, 229, 231, 231, 231, 231, 231, - 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 234, 233, 235, 235, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, - 239, 239, 240, 240, 240, 240, 241, 241, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, - 243, 243, 243, 243, 243, 244, 244, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 246, 245, 245, 245, 245, - 247, 247, 247, 247, 248, 248, 248, 248, 248, 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, 218, 219, 219, 220, 220, 221, 221, 222, + 222, 223, 223, 223, 224, 224, 225, 225, 226, 228, + 227, 229, 229, 230, 231, 231, 233, 232, 234, 234, + 234, 234, 234, 235, 235, 235, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 237, 236, + 238, 238, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, + 241, 241, 241, 242, 242, 243, 243, 243, 243, 244, + 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 249, 248, + 248, 248, 248, 250, 250, 250, 250, 251, 251, 251, + 251, 251, 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. */ @@ -1570,42 +1551,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, 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, 2, 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, 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, 2, 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 { @@ -1646,36 +1627,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_ival, 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_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_ival, toketype_opval, toketype_opval, toketype_pval, - toketype_opval, toketype_opval, toketype_ival, 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_ival, toketype_opval, toketype_opval, toketype_pval, 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 + toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval }; /* Generated from: - * 1579ea304eb388b1cee0a714a2acd39920dbe5a8a06aa165703783e2c2dc2502 perly.y + * c08d7ddc9f8d45fec94e295fa24cd5221f4d8591daf0dbe06275a29e7b7a8352 perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.y b/perly.y index f13efcd810e0..102d8c07e867 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..fb925f04ef9f 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,49 @@ sub _print_stderr { print STDERR @_; } +sub assume { + my ($message, %args) = @_; + + 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) {