1*e0680481Safresh1/* -*- mode: C; buffer-read-only: t -*- 2898184e3Ssthen !!!!!!! DO NOT EDIT THIS FILE !!!!!!! 3898184e3Ssthen This file is built by regen_perly.pl from perly.y. 4898184e3Ssthen Any changes made here will be lost! 5898184e3Ssthen */ 6898184e3Ssthen 7850e2753Smillertcase 2: 8*e0680481Safresh1#line 161 "perly.y" 9898184e3Ssthen { 10b8851fccSafresh1 parser->expect = XSTATE; 119f11ffb7Safresh1 (yyval.ival) = 0; 1291f110e0Safresh1 } 139f11ffb7Safresh1 14850e2753Smillert break; 15850e2753Smillert 16850e2753Smillert case 3: 17*e0680481Safresh1#line 166 "perly.y" 18898184e3Ssthen { 199f11ffb7Safresh1 newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval))); 20b8851fccSafresh1 PL_compiling.cop_seq = 0; 21898184e3Ssthen (yyval.ival) = 0; 2291f110e0Safresh1 } 239f11ffb7Safresh1 24850e2753Smillert break; 25850e2753Smillert 26850e2753Smillert case 4: 27*e0680481Safresh1#line 172 "perly.y" 28898184e3Ssthen { 29898184e3Ssthen parser->expect = XTERM; 309f11ffb7Safresh1 (yyval.ival) = 0; 3191f110e0Safresh1 } 329f11ffb7Safresh1 33850e2753Smillert break; 34850e2753Smillert 35850e2753Smillert case 5: 36*e0680481Safresh1#line 177 "perly.y" 37898184e3Ssthen { 389f11ffb7Safresh1 PL_eval_root = (ps[0].val.opval); 39898184e3Ssthen (yyval.ival) = 0; 4091f110e0Safresh1 } 419f11ffb7Safresh1 42850e2753Smillert break; 43850e2753Smillert 44850e2753Smillert case 6: 45*e0680481Safresh1#line 182 "perly.y" 46850e2753Smillert { 47898184e3Ssthen parser->expect = XBLOCK; 489f11ffb7Safresh1 (yyval.ival) = 0; 4991f110e0Safresh1 } 509f11ffb7Safresh1 51850e2753Smillert break; 52850e2753Smillert 53850e2753Smillert case 7: 54*e0680481Safresh1#line 187 "perly.y" 55898184e3Ssthen { 56898184e3Ssthen PL_pad_reset_pending = TRUE; 579f11ffb7Safresh1 PL_eval_root = (ps[0].val.opval); 58898184e3Ssthen (yyval.ival) = 0; 59898184e3Ssthen yyunlex(); 609f11ffb7Safresh1 parser->yychar = yytoken = YYEOF; 6191f110e0Safresh1 } 629f11ffb7Safresh1 63898184e3Ssthen break; 64898184e3Ssthen 65898184e3Ssthen case 8: 66*e0680481Safresh1#line 195 "perly.y" 67898184e3Ssthen { 68898184e3Ssthen parser->expect = XSTATE; 699f11ffb7Safresh1 (yyval.ival) = 0; 7091f110e0Safresh1 } 719f11ffb7Safresh1 72898184e3Ssthen break; 73898184e3Ssthen 74898184e3Ssthen case 9: 75*e0680481Safresh1#line 200 "perly.y" 76898184e3Ssthen { 77898184e3Ssthen PL_pad_reset_pending = TRUE; 789f11ffb7Safresh1 PL_eval_root = (ps[0].val.opval); 79898184e3Ssthen (yyval.ival) = 0; 80898184e3Ssthen yyunlex(); 819f11ffb7Safresh1 parser->yychar = yytoken = YYEOF; 8291f110e0Safresh1 } 839f11ffb7Safresh1 84898184e3Ssthen break; 85898184e3Ssthen 86898184e3Ssthen case 10: 87*e0680481Safresh1#line 208 "perly.y" 88898184e3Ssthen { 89898184e3Ssthen parser->expect = XSTATE; 909f11ffb7Safresh1 (yyval.ival) = 0; 9191f110e0Safresh1 } 929f11ffb7Safresh1 93898184e3Ssthen break; 94898184e3Ssthen 95898184e3Ssthen case 11: 96*e0680481Safresh1#line 213 "perly.y" 97898184e3Ssthen { 98898184e3Ssthen PL_pad_reset_pending = TRUE; 999f11ffb7Safresh1 PL_eval_root = (ps[0].val.opval); 100898184e3Ssthen (yyval.ival) = 0; 101898184e3Ssthen yyunlex(); 1029f11ffb7Safresh1 parser->yychar = yytoken = YYEOF; 10391f110e0Safresh1 } 1049f11ffb7Safresh1 105898184e3Ssthen break; 106898184e3Ssthen 107898184e3Ssthen case 12: 108*e0680481Safresh1#line 221 "perly.y" 109898184e3Ssthen { 110898184e3Ssthen parser->expect = XSTATE; 1119f11ffb7Safresh1 (yyval.ival) = 0; 11291f110e0Safresh1 } 1139f11ffb7Safresh1 114898184e3Ssthen break; 115898184e3Ssthen 116898184e3Ssthen case 13: 117*e0680481Safresh1#line 226 "perly.y" 118898184e3Ssthen { 1199f11ffb7Safresh1 PL_eval_root = (ps[0].val.opval); 120898184e3Ssthen (yyval.ival) = 0; 12191f110e0Safresh1 } 1229f11ffb7Safresh1 123898184e3Ssthen break; 124898184e3Ssthen 125898184e3Ssthen case 14: 126*e0680481Safresh1#line 231 "perly.y" 12756d68f1eSafresh1 { 12856d68f1eSafresh1 parser->expect = XSTATE; 12956d68f1eSafresh1 (yyval.ival) = 0; 13056d68f1eSafresh1 } 13156d68f1eSafresh1 13256d68f1eSafresh1 break; 13356d68f1eSafresh1 13456d68f1eSafresh1 case 15: 135*e0680481Safresh1#line 236 "perly.y" 13656d68f1eSafresh1 { 13756d68f1eSafresh1 PL_eval_root = (ps[0].val.opval); 13856d68f1eSafresh1 (yyval.ival) = 0; 13956d68f1eSafresh1 } 14056d68f1eSafresh1 14156d68f1eSafresh1 break; 14256d68f1eSafresh1 14356d68f1eSafresh1 case 16: 144*e0680481Safresh1#line 245 "perly.y" 145*e0680481Safresh1 { (yyval.ival) = KW_SUB_named_sig; } 146*e0680481Safresh1 147*e0680481Safresh1 break; 148*e0680481Safresh1 149*e0680481Safresh1 case 17: 150*e0680481Safresh1#line 247 "perly.y" 151*e0680481Safresh1 { (yyval.ival) = KW_METHOD_named; } 152*e0680481Safresh1 153*e0680481Safresh1 break; 154*e0680481Safresh1 155*e0680481Safresh1 case 18: 156*e0680481Safresh1#line 252 "perly.y" 1579f11ffb7Safresh1 { if (parser->copline > (line_t)(ps[-3].val.ival)) 1589f11ffb7Safresh1 parser->copline = (line_t)(ps[-3].val.ival); 1599f11ffb7Safresh1 (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); 16091f110e0Safresh1 } 1619f11ffb7Safresh1 162850e2753Smillert break; 163850e2753Smillert 164*e0680481Safresh1 case 19: 165*e0680481Safresh1#line 259 "perly.y" 166eac174f2Safresh1 { (yyval.opval) = NULL; } 167eac174f2Safresh1 168eac174f2Safresh1 break; 169eac174f2Safresh1 170*e0680481Safresh1 case 20: 171*e0680481Safresh1#line 264 "perly.y" 1729f11ffb7Safresh1 { if (parser->copline > (line_t)(ps[-6].val.ival)) 1739f11ffb7Safresh1 parser->copline = (line_t)(ps[-6].val.ival); 1749f11ffb7Safresh1 (yyval.opval) = block_end((ps[-5].val.ival), (ps[-2].val.opval)); 17591f110e0Safresh1 } 1769f11ffb7Safresh1 177850e2753Smillert break; 178850e2753Smillert 179*e0680481Safresh1 case 21: 180*e0680481Safresh1#line 271 "perly.y" 181b8851fccSafresh1 { (yyval.ival) = block_start(TRUE); 182b8851fccSafresh1 parser->parsed_sub = 0; } 1839f11ffb7Safresh1 184850e2753Smillert break; 185850e2753Smillert 186*e0680481Safresh1 case 22: 187*e0680481Safresh1#line 276 "perly.y" 1889f11ffb7Safresh1 { if (parser->copline > (line_t)(ps[-3].val.ival)) 1899f11ffb7Safresh1 parser->copline = (line_t)(ps[-3].val.ival); 1909f11ffb7Safresh1 (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); 19191f110e0Safresh1 } 1929f11ffb7Safresh1 193850e2753Smillert break; 194850e2753Smillert 195*e0680481Safresh1 case 23: 196*e0680481Safresh1#line 283 "perly.y" 197b8851fccSafresh1 { (yyval.ival) = block_start(FALSE); 198b8851fccSafresh1 parser->parsed_sub = 0; } 1999f11ffb7Safresh1 200898184e3Ssthen break; 201898184e3Ssthen 20256d68f1eSafresh1 case 25: 203*e0680481Safresh1#line 292 "perly.y" 204*e0680481Safresh1 { parser->in_my = 1; } 205eac174f2Safresh1 206eac174f2Safresh1 break; 207eac174f2Safresh1 208eac174f2Safresh1 case 26: 209*e0680481Safresh1#line 294 "perly.y" 210*e0680481Safresh1 { parser->in_my = 0; intro_my(); } 211*e0680481Safresh1 212*e0680481Safresh1 break; 213*e0680481Safresh1 214*e0680481Safresh1 case 27: 215*e0680481Safresh1#line 296 "perly.y" 216*e0680481Safresh1 { (yyval.opval) = (ps[-2].val.opval); } 217*e0680481Safresh1 218*e0680481Safresh1 break; 219*e0680481Safresh1 220*e0680481Safresh1 case 29: 221*e0680481Safresh1#line 303 "perly.y" 222*e0680481Safresh1 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); 223*e0680481Safresh1 PL_pad_reset_pending = TRUE; 224*e0680481Safresh1 if ((ps[-1].val.opval) && (ps[0].val.opval)) 225*e0680481Safresh1 PL_hints |= HINT_BLOCK_SCOPE; 226*e0680481Safresh1 } 227*e0680481Safresh1 228*e0680481Safresh1 break; 229*e0680481Safresh1 230*e0680481Safresh1 case 31: 231*e0680481Safresh1#line 314 "perly.y" 232*e0680481Safresh1 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); 233*e0680481Safresh1 PL_pad_reset_pending = TRUE; 234*e0680481Safresh1 if ((ps[-1].val.opval) && (ps[0].val.opval)) 235*e0680481Safresh1 PL_hints |= HINT_BLOCK_SCOPE; 236*e0680481Safresh1 } 237*e0680481Safresh1 238*e0680481Safresh1 break; 239*e0680481Safresh1 240*e0680481Safresh1 case 32: 241*e0680481Safresh1#line 323 "perly.y" 242898184e3Ssthen { 2439f11ffb7Safresh1 (yyval.opval) = (ps[0].val.opval) ? newSTATEOP(0, NULL, (ps[0].val.opval)) : NULL; 24491f110e0Safresh1 } 2459f11ffb7Safresh1 246850e2753Smillert break; 247850e2753Smillert 248*e0680481Safresh1 case 33: 249*e0680481Safresh1#line 327 "perly.y" 25056d68f1eSafresh1 { (yyval.opval) = (ps[0].val.opval); } 2519f11ffb7Safresh1 252850e2753Smillert break; 253850e2753Smillert 254*e0680481Safresh1 case 34: 255*e0680481Safresh1#line 331 "perly.y" 25656d68f1eSafresh1 { 25756d68f1eSafresh1 SV *label = cSVOPx_sv((ps[-1].val.opval)); 25856d68f1eSafresh1 (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8, 25956d68f1eSafresh1 savepv(SvPVX_const(label)), (ps[0].val.opval)); 26056d68f1eSafresh1 op_free((ps[-1].val.opval)); 26156d68f1eSafresh1 } 26256d68f1eSafresh1 26356d68f1eSafresh1 break; 26456d68f1eSafresh1 265*e0680481Safresh1 case 35: 266*e0680481Safresh1#line 338 "perly.y" 267eac174f2Safresh1 { 268eac174f2Safresh1 SV *label = cSVOPx_sv((ps[-1].val.opval)); 269eac174f2Safresh1 (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8, 270eac174f2Safresh1 savepv(SvPVX_const(label)), (ps[0].val.opval)); 271eac174f2Safresh1 op_free((ps[-1].val.opval)); 272eac174f2Safresh1 } 27356d68f1eSafresh1 27456d68f1eSafresh1 break; 27556d68f1eSafresh1 276*e0680481Safresh1 case 36: 277*e0680481Safresh1#line 348 "perly.y" 278eac174f2Safresh1 { (yyval.opval) = (ps[0].val.opval); } 279eac174f2Safresh1 280eac174f2Safresh1 break; 281eac174f2Safresh1 282*e0680481Safresh1 case 37: 283*e0680481Safresh1#line 350 "perly.y" 28491f110e0Safresh1 { 285b8851fccSafresh1 CV *fmtcv = PL_compcv; 2869f11ffb7Safresh1 newFORM((ps[-2].val.ival), (ps[-1].val.opval), (ps[0].val.opval)); 2879f11ffb7Safresh1 (yyval.opval) = NULL; 288b8851fccSafresh1 if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) { 289b8851fccSafresh1 pad_add_weakref(fmtcv); 290b8851fccSafresh1 } 291b8851fccSafresh1 parser->parsed_sub = 1; 29291f110e0Safresh1 } 2939f11ffb7Safresh1 29491f110e0Safresh1 break; 29591f110e0Safresh1 296*e0680481Safresh1 case 38: 297*e0680481Safresh1#line 362 "perly.y" 29891f110e0Safresh1 { 2999f11ffb7Safresh1 init_named_cv(PL_compcv, (ps[-1].val.opval)); 300b8851fccSafresh1 parser->in_my = 0; 301b8851fccSafresh1 parser->in_my_stash = NULL; 302b8851fccSafresh1 } 3039f11ffb7Safresh1 304b8851fccSafresh1 break; 305b8851fccSafresh1 306*e0680481Safresh1 case 39: 307*e0680481Safresh1#line 368 "perly.y" 308b8851fccSafresh1 { 309b8851fccSafresh1 SvREFCNT_inc_simple_void(PL_compcv); 3109f11ffb7Safresh1 (ps[-5].val.opval)->op_type == OP_CONST 3119f11ffb7Safresh1 ? newATTRSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)) 3129f11ffb7Safresh1 : newMYSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)) 313b8851fccSafresh1 ; 3149f11ffb7Safresh1 (yyval.opval) = NULL; 315b8851fccSafresh1 intro_my(); 316b8851fccSafresh1 parser->parsed_sub = 1; 31791f110e0Safresh1 } 3189f11ffb7Safresh1 31991f110e0Safresh1 break; 32091f110e0Safresh1 321*e0680481Safresh1 case 40: 322*e0680481Safresh1#line 383 "perly.y" 323898184e3Ssthen { 3249f11ffb7Safresh1 init_named_cv(PL_compcv, (ps[-1].val.opval)); 325*e0680481Safresh1 if((ps[-2].val.ival) == KW_METHOD_named) { 326*e0680481Safresh1 croak_kw_unless_class("method"); 327*e0680481Safresh1 class_prepare_method_parse(PL_compcv); 328*e0680481Safresh1 } 329b8851fccSafresh1 parser->in_my = 0; 330b8851fccSafresh1 parser->in_my_stash = NULL; 33191f110e0Safresh1 } 3329f11ffb7Safresh1 333850e2753Smillert break; 334850e2753Smillert 335*e0680481Safresh1 case 41: 336*e0680481Safresh1#line 393 "perly.y" 337850e2753Smillert { 338*e0680481Safresh1 OP *body = (ps[0].val.opval); 339*e0680481Safresh1 340b8851fccSafresh1 SvREFCNT_inc_simple_void(PL_compcv); 3419f11ffb7Safresh1 (ps[-4].val.opval)->op_type == OP_CONST 342*e0680481Safresh1 ? newATTRSUB((ps[-3].val.ival), (ps[-4].val.opval), NULL, (ps[-1].val.opval), body) 343*e0680481Safresh1 : newMYSUB( (ps[-3].val.ival), (ps[-4].val.opval), NULL, (ps[-1].val.opval), body) 344b8851fccSafresh1 ; 3459f11ffb7Safresh1 (yyval.opval) = NULL; 346b8851fccSafresh1 intro_my(); 347b8851fccSafresh1 parser->parsed_sub = 1; 34891f110e0Safresh1 } 3499f11ffb7Safresh1 350850e2753Smillert break; 351850e2753Smillert 352*e0680481Safresh1 case 42: 353*e0680481Safresh1#line 406 "perly.y" 354*e0680481Safresh1 { 355*e0680481Safresh1 switch((ps[-1].val.ival)) { 356*e0680481Safresh1 case KEY_ADJUST: 357*e0680481Safresh1 croak_kw_unless_class("ADJUST"); 358*e0680481Safresh1 class_prepare_method_parse(PL_compcv); 359*e0680481Safresh1 break; 360*e0680481Safresh1 default: 361*e0680481Safresh1 NOT_REACHED; 362*e0680481Safresh1 } 363*e0680481Safresh1 } 364*e0680481Safresh1 365*e0680481Safresh1 break; 366*e0680481Safresh1 367*e0680481Safresh1 case 43: 368*e0680481Safresh1#line 417 "perly.y" 369*e0680481Safresh1 { 370*e0680481Safresh1 OP *body = (ps[0].val.opval); 371*e0680481Safresh1 SvREFCNT_inc_simple_void(PL_compcv); 372*e0680481Safresh1 373*e0680481Safresh1 CV *cv; 374*e0680481Safresh1 375*e0680481Safresh1 switch((ps[-3].val.ival)) { 376*e0680481Safresh1 case KEY_ADJUST: 377*e0680481Safresh1 cv = newATTRSUB((ps[-2].val.ival), NULL, NULL, NULL, body); 378*e0680481Safresh1 class_add_ADJUST(PL_curstash, cv); 379*e0680481Safresh1 break; 380*e0680481Safresh1 } 381*e0680481Safresh1 (yyval.opval) = NULL; 382*e0680481Safresh1 } 383*e0680481Safresh1 384*e0680481Safresh1 break; 385*e0680481Safresh1 386*e0680481Safresh1 case 44: 387*e0680481Safresh1#line 436 "perly.y" 388898184e3Ssthen { 3899f11ffb7Safresh1 package((ps[-1].val.opval)); 3909f11ffb7Safresh1 if ((ps[-2].val.opval)) 3919f11ffb7Safresh1 package_version((ps[-2].val.opval)); 3929f11ffb7Safresh1 (yyval.opval) = NULL; 39391f110e0Safresh1 } 3949f11ffb7Safresh1 395898184e3Ssthen break; 396898184e3Ssthen 397*e0680481Safresh1 case 45: 398*e0680481Safresh1#line 443 "perly.y" 399*e0680481Safresh1 { 400*e0680481Safresh1 package((ps[-2].val.opval)); 401*e0680481Safresh1 if ((ps[-3].val.opval)) 402*e0680481Safresh1 package_version((ps[-3].val.opval)); 403*e0680481Safresh1 (yyval.opval) = NULL; 404*e0680481Safresh1 class_setup_stash(PL_curstash); 405*e0680481Safresh1 if ((ps[-1].val.opval)) { 406*e0680481Safresh1 class_apply_attributes(PL_curstash, (ps[-1].val.opval)); 407*e0680481Safresh1 } 408*e0680481Safresh1 } 409*e0680481Safresh1 410*e0680481Safresh1 break; 411*e0680481Safresh1 412*e0680481Safresh1 case 46: 413*e0680481Safresh1#line 454 "perly.y" 414b8851fccSafresh1 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } 4159f11ffb7Safresh1 416b8851fccSafresh1 break; 417b8851fccSafresh1 418*e0680481Safresh1 case 47: 419*e0680481Safresh1#line 458 "perly.y" 420898184e3Ssthen { 421b8851fccSafresh1 SvREFCNT_inc_simple_void(PL_compcv); 4229f11ffb7Safresh1 utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval)); 423b8851fccSafresh1 parser->parsed_sub = 1; 4249f11ffb7Safresh1 (yyval.opval) = NULL; 42591f110e0Safresh1 } 4269f11ffb7Safresh1 427898184e3Ssthen break; 428898184e3Ssthen 429*e0680481Safresh1 case 48: 430*e0680481Safresh1#line 465 "perly.y" 43191f110e0Safresh1 { 4329f11ffb7Safresh1 (yyval.opval) = block_end((ps[-4].val.ival), 4339f11ffb7Safresh1 newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval))); 4349f11ffb7Safresh1 parser->copline = (line_t)(ps[-6].val.ival); 43591f110e0Safresh1 } 4369f11ffb7Safresh1 437898184e3Ssthen break; 438898184e3Ssthen 439*e0680481Safresh1 case 49: 440*e0680481Safresh1#line 471 "perly.y" 44191f110e0Safresh1 { 4429f11ffb7Safresh1 (yyval.opval) = block_end((ps[-4].val.ival), 4439f11ffb7Safresh1 newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval)))); 4449f11ffb7Safresh1 parser->copline = (line_t)(ps[-6].val.ival); 44591f110e0Safresh1 } 4469f11ffb7Safresh1 447898184e3Ssthen break; 448898184e3Ssthen 449*e0680481Safresh1 case 50: 450*e0680481Safresh1#line 477 "perly.y" 451898184e3Ssthen { 4529f11ffb7Safresh1 (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0)); 4539f11ffb7Safresh1 parser->copline = (line_t)(ps[-5].val.ival); 45491f110e0Safresh1 } 4559f11ffb7Safresh1 456898184e3Ssthen break; 457898184e3Ssthen 458*e0680481Safresh1 case 51: 459*e0680481Safresh1#line 482 "perly.y" 4609f11ffb7Safresh1 { (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); } 4619f11ffb7Safresh1 462b8851fccSafresh1 break; 463b8851fccSafresh1 464*e0680481Safresh1 case 52: 465*e0680481Safresh1#line 484 "perly.y" 4669f11ffb7Safresh1 { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); } 4679f11ffb7Safresh1 468b8851fccSafresh1 break; 469b8851fccSafresh1 470*e0680481Safresh1 case 53: 471*e0680481Safresh1#line 486 "perly.y" 47256d68f1eSafresh1 { 47356d68f1eSafresh1 (yyval.opval) = block_end((ps[-5].val.ival), 47456d68f1eSafresh1 newWHILEOP(0, 1, NULL, 47556d68f1eSafresh1 (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival))); 47656d68f1eSafresh1 parser->copline = (line_t)(ps[-7].val.ival); 47756d68f1eSafresh1 } 4789f11ffb7Safresh1 479b8851fccSafresh1 break; 480b8851fccSafresh1 481*e0680481Safresh1 case 54: 482*e0680481Safresh1#line 493 "perly.y" 483eac174f2Safresh1 { 484eac174f2Safresh1 (yyval.opval) = block_end((ps[-5].val.ival), 485eac174f2Safresh1 newWHILEOP(0, 1, NULL, 486eac174f2Safresh1 (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival))); 487eac174f2Safresh1 parser->copline = (line_t)(ps[-7].val.ival); 488eac174f2Safresh1 } 48956d68f1eSafresh1 49056d68f1eSafresh1 break; 49156d68f1eSafresh1 492*e0680481Safresh1 case 55: 493*e0680481Safresh1#line 500 "perly.y" 49456d68f1eSafresh1 { parser->expect = XTERM; } 49556d68f1eSafresh1 49656d68f1eSafresh1 break; 49756d68f1eSafresh1 498*e0680481Safresh1 case 56: 499*e0680481Safresh1#line 502 "perly.y" 500eac174f2Safresh1 { parser->expect = XTERM; } 501eac174f2Safresh1 502eac174f2Safresh1 break; 503eac174f2Safresh1 504*e0680481Safresh1 case 57: 505*e0680481Safresh1#line 505 "perly.y" 506b8851fccSafresh1 { 5079f11ffb7Safresh1 OP *initop = (ps[-9].val.opval); 5089f11ffb7Safresh1 OP *forop = newWHILEOP(0, 1, NULL, 5099f11ffb7Safresh1 scalar((ps[-6].val.opval)), (ps[0].val.opval), (ps[-2].val.opval), (ps[-3].val.ival)); 510898184e3Ssthen if (initop) { 511898184e3Ssthen forop = op_prepend_elem(OP_LINESEQ, initop, 512898184e3Ssthen op_append_elem(OP_LINESEQ, 513898184e3Ssthen newOP(OP_UNSTACK, OPf_SPECIAL), 514898184e3Ssthen forop)); 515898184e3Ssthen } 516b8851fccSafresh1 PL_hints |= HINT_BLOCK_SCOPE; 5179f11ffb7Safresh1 (yyval.opval) = block_end((ps[-10].val.ival), forop); 5189f11ffb7Safresh1 parser->copline = (line_t)(ps[-12].val.ival); 51991f110e0Safresh1 } 5209f11ffb7Safresh1 521898184e3Ssthen break; 522898184e3Ssthen 523*e0680481Safresh1 case 58: 524*e0680481Safresh1#line 520 "perly.y" 525b8851fccSafresh1 { 5269f11ffb7Safresh1 (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))); 5279f11ffb7Safresh1 parser->copline = (line_t)(ps[-8].val.ival); 528b8851fccSafresh1 } 5299f11ffb7Safresh1 530b8851fccSafresh1 break; 531b8851fccSafresh1 532*e0680481Safresh1 case 59: 533*e0680481Safresh1#line 525 "perly.y" 534eac174f2Safresh1 { 535eac174f2Safresh1 if ((ps[-6].val.opval)->op_type == OP_PADSV) 536eac174f2Safresh1 /* degenerate case of 1 var: for my ($x) .... 537eac174f2Safresh1 Flag it so it can be special-cased in newFOROP */ 538eac174f2Safresh1 (ps[-6].val.opval)->op_flags |= OPf_PARENS; 539eac174f2Safresh1 (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))); 540eac174f2Safresh1 parser->copline = (line_t)(ps[-10].val.ival); 541eac174f2Safresh1 } 542eac174f2Safresh1 543eac174f2Safresh1 break; 544eac174f2Safresh1 545*e0680481Safresh1 case 60: 546*e0680481Safresh1#line 534 "perly.y" 547b8851fccSafresh1 { 5489f11ffb7Safresh1 (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, 5499f11ffb7Safresh1 op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); 5509f11ffb7Safresh1 parser->copline = (line_t)(ps[-7].val.ival); 551b8851fccSafresh1 } 5529f11ffb7Safresh1 553b8851fccSafresh1 break; 554b8851fccSafresh1 555*e0680481Safresh1 case 61: 556*e0680481Safresh1#line 540 "perly.y" 5579f11ffb7Safresh1 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } 5589f11ffb7Safresh1 559b8851fccSafresh1 break; 560b8851fccSafresh1 561*e0680481Safresh1 case 62: 562*e0680481Safresh1#line 542 "perly.y" 563b8851fccSafresh1 { 564b8851fccSafresh1 (yyval.opval) = block_end( 5659f11ffb7Safresh1 (ps[-7].val.ival), 566b8851fccSafresh1 newFOROP(0, 567b8851fccSafresh1 op_lvalue( 568b8851fccSafresh1 newUNOP(OP_REFGEN, 0, 5699f11ffb7Safresh1 (ps[-5].val.opval)), 570b8851fccSafresh1 OP_ENTERLOOP), 5719f11ffb7Safresh1 (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)) 572b8851fccSafresh1 ); 5739f11ffb7Safresh1 parser->copline = (line_t)(ps[-9].val.ival); 574b8851fccSafresh1 } 5759f11ffb7Safresh1 576b8851fccSafresh1 break; 577b8851fccSafresh1 578*e0680481Safresh1 case 63: 579*e0680481Safresh1#line 555 "perly.y" 580b8851fccSafresh1 { 5819f11ffb7Safresh1 (yyval.opval) = block_end((ps[-4].val.ival), newFOROP( 582b8851fccSafresh1 0, op_lvalue(newUNOP(OP_REFGEN, 0, 5839f11ffb7Safresh1 (ps[-6].val.opval)), 5849f11ffb7Safresh1 OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); 5859f11ffb7Safresh1 parser->copline = (line_t)(ps[-8].val.ival); 586b8851fccSafresh1 } 5879f11ffb7Safresh1 588b8851fccSafresh1 break; 589b8851fccSafresh1 590*e0680481Safresh1 case 64: 591*e0680481Safresh1#line 563 "perly.y" 592b8851fccSafresh1 { 5939f11ffb7Safresh1 (yyval.opval) = block_end((ps[-4].val.ival), 5949f11ffb7Safresh1 newFOROP(0, NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); 5959f11ffb7Safresh1 parser->copline = (line_t)(ps[-6].val.ival); 596b8851fccSafresh1 } 5979f11ffb7Safresh1 598b8851fccSafresh1 break; 599b8851fccSafresh1 600*e0680481Safresh1 case 65: 601*e0680481Safresh1#line 569 "perly.y" 602eac174f2Safresh1 { 603*e0680481Safresh1 if(!(ps[0].val.opval)) { 604*e0680481Safresh1 yyerror("catch block requires a (VAR)"); 605*e0680481Safresh1 YYERROR; 606*e0680481Safresh1 } 607eac174f2Safresh1 } 608eac174f2Safresh1 609eac174f2Safresh1 break; 610eac174f2Safresh1 611*e0680481Safresh1 case 66: 612*e0680481Safresh1#line 576 "perly.y" 613*e0680481Safresh1 { 614*e0680481Safresh1 (yyval.opval) = newTRYCATCHOP(0, 615*e0680481Safresh1 (ps[-6].val.opval), (ps[-3].val.opval), block_end((ps[-4].val.ival), op_scope((ps[-1].val.opval)))); 616*e0680481Safresh1 if((ps[0].val.opval)) 617*e0680481Safresh1 (yyval.opval) = op_wrap_finally((yyval.opval), (ps[0].val.opval)); 618*e0680481Safresh1 parser->copline = (line_t)(ps[-7].val.ival); 619*e0680481Safresh1 } 620*e0680481Safresh1 621*e0680481Safresh1 break; 622*e0680481Safresh1 623*e0680481Safresh1 case 67: 624*e0680481Safresh1#line 584 "perly.y" 625898184e3Ssthen { 626898184e3Ssthen /* a block is a loop that happens once */ 6279f11ffb7Safresh1 (yyval.opval) = newWHILEOP(0, 1, NULL, 6289f11ffb7Safresh1 NULL, (ps[-1].val.opval), (ps[0].val.opval), 0); 629898184e3Ssthen } 6309f11ffb7Safresh1 631898184e3Ssthen break; 632898184e3Ssthen 633*e0680481Safresh1 case 68: 634*e0680481Safresh1#line 590 "perly.y" 63591f110e0Safresh1 { 6369f11ffb7Safresh1 package((ps[-2].val.opval)); 6379f11ffb7Safresh1 if ((ps[-3].val.opval)) { 6389f11ffb7Safresh1 package_version((ps[-3].val.opval)); 63991f110e0Safresh1 } 64091f110e0Safresh1 } 6419f11ffb7Safresh1 64291f110e0Safresh1 break; 64391f110e0Safresh1 644*e0680481Safresh1 case 69: 645*e0680481Safresh1#line 597 "perly.y" 646898184e3Ssthen { 647898184e3Ssthen /* a block is a loop that happens once */ 6489f11ffb7Safresh1 (yyval.opval) = newWHILEOP(0, 1, NULL, 6499f11ffb7Safresh1 NULL, block_end((ps[-3].val.ival), (ps[-1].val.opval)), NULL, 0); 6509f11ffb7Safresh1 if (parser->copline > (line_t)(ps[-4].val.ival)) 6519f11ffb7Safresh1 parser->copline = (line_t)(ps[-4].val.ival); 65291f110e0Safresh1 } 6539f11ffb7Safresh1 654898184e3Ssthen break; 655898184e3Ssthen 656*e0680481Safresh1 case 70: 657*e0680481Safresh1#line 605 "perly.y" 658*e0680481Safresh1 { 659*e0680481Safresh1 package((ps[-3].val.opval)); 660*e0680481Safresh1 661*e0680481Safresh1 if ((ps[-4].val.opval)) { 662*e0680481Safresh1 package_version((ps[-4].val.opval)); 663*e0680481Safresh1 } 664*e0680481Safresh1 class_setup_stash(PL_curstash); 665*e0680481Safresh1 if ((ps[-2].val.opval)) { 666*e0680481Safresh1 class_apply_attributes(PL_curstash, (ps[-2].val.opval)); 667*e0680481Safresh1 } 668*e0680481Safresh1 } 669*e0680481Safresh1 670*e0680481Safresh1 break; 671*e0680481Safresh1 672*e0680481Safresh1 case 71: 673*e0680481Safresh1#line 617 "perly.y" 674*e0680481Safresh1 { 675*e0680481Safresh1 /* a block is a loop that happens once */ 676*e0680481Safresh1 (yyval.opval) = newWHILEOP(0, 1, NULL, 677*e0680481Safresh1 NULL, block_end((ps[-3].val.ival), (ps[-1].val.opval)), NULL, 0); 678*e0680481Safresh1 if (parser->copline > (line_t)(ps[-4].val.ival)) 679*e0680481Safresh1 parser->copline = (line_t)(ps[-4].val.ival); 680*e0680481Safresh1 } 681*e0680481Safresh1 682*e0680481Safresh1 break; 683*e0680481Safresh1 684*e0680481Safresh1 case 72: 685*e0680481Safresh1#line 625 "perly.y" 686b8851fccSafresh1 { 6879f11ffb7Safresh1 (yyval.opval) = (ps[-1].val.opval); 688b8851fccSafresh1 } 6899f11ffb7Safresh1 690898184e3Ssthen break; 691898184e3Ssthen 692*e0680481Safresh1 case 73: 693*e0680481Safresh1#line 629 "perly.y" 694*e0680481Safresh1 { 695*e0680481Safresh1 (yyval.opval) = (ps[-1].val.opval); 696*e0680481Safresh1 } 697*e0680481Safresh1 698*e0680481Safresh1 break; 699*e0680481Safresh1 700*e0680481Safresh1 case 74: 701*e0680481Safresh1#line 633 "perly.y" 702eac174f2Safresh1 { 703eac174f2Safresh1 (yyval.opval) = newDEFEROP(0, op_scope((ps[0].val.opval))); 704eac174f2Safresh1 } 705eac174f2Safresh1 706eac174f2Safresh1 break; 707eac174f2Safresh1 708*e0680481Safresh1 case 75: 709*e0680481Safresh1#line 637 "perly.y" 710b8851fccSafresh1 { 711*e0680481Safresh1 /* diag_listed_as: Unimplemented */ 7129f11ffb7Safresh1 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), 7139f11ffb7Safresh1 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); 71491f110e0Safresh1 } 7159f11ffb7Safresh1 716898184e3Ssthen break; 717898184e3Ssthen 718*e0680481Safresh1 case 76: 719*e0680481Safresh1#line 643 "perly.y" 7209f11ffb7Safresh1 { 7219f11ffb7Safresh1 (yyval.opval) = NULL; 7229f11ffb7Safresh1 parser->copline = NOLINE; 7239f11ffb7Safresh1 } 7249f11ffb7Safresh1 7259f11ffb7Safresh1 break; 7269f11ffb7Safresh1 727*e0680481Safresh1 case 77: 728*e0680481Safresh1#line 651 "perly.y" 729b8851fccSafresh1 { OP *list; 7309f11ffb7Safresh1 if ((ps[0].val.opval)) { 7319f11ffb7Safresh1 OP *term = (ps[0].val.opval); 7329f11ffb7Safresh1 list = op_append_elem(OP_LIST, (ps[-1].val.opval), term); 733b8851fccSafresh1 } 734b8851fccSafresh1 else { 7359f11ffb7Safresh1 list = (ps[-1].val.opval); 736b8851fccSafresh1 } 737b8851fccSafresh1 if (parser->copline == NOLINE) 738b8851fccSafresh1 parser->copline = CopLINE(PL_curcop)-1; 739b8851fccSafresh1 else parser->copline--; 740b8851fccSafresh1 (yyval.opval) = newSTATEOP(0, NULL, 741b8851fccSafresh1 op_convert_list(OP_FORMLINE, 0, list)); 74291f110e0Safresh1 } 743898184e3Ssthen 74491f110e0Safresh1 break; 74591f110e0Safresh1 746*e0680481Safresh1 case 79: 747*e0680481Safresh1#line 670 "perly.y" 74856d68f1eSafresh1 { (yyval.opval) = op_unscope((ps[-1].val.opval)); } 7499f11ffb7Safresh1 750b8851fccSafresh1 break; 751b8851fccSafresh1 752*e0680481Safresh1 case 81: 753*e0680481Safresh1#line 678 "perly.y" 75456d68f1eSafresh1 { (yyval.opval) = NULL; } 7559f11ffb7Safresh1 756898184e3Ssthen break; 757898184e3Ssthen 758*e0680481Safresh1 case 82: 759*e0680481Safresh1#line 680 "perly.y" 76056d68f1eSafresh1 { (yyval.opval) = (ps[0].val.opval); } 7619f11ffb7Safresh1 762b8851fccSafresh1 break; 763b8851fccSafresh1 764*e0680481Safresh1 case 83: 765*e0680481Safresh1#line 682 "perly.y" 76656d68f1eSafresh1 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); } 7679f11ffb7Safresh1 768b8851fccSafresh1 break; 769b8851fccSafresh1 770*e0680481Safresh1 case 84: 771*e0680481Safresh1#line 684 "perly.y" 77256d68f1eSafresh1 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); } 7739f11ffb7Safresh1 774b8851fccSafresh1 break; 775b8851fccSafresh1 776*e0680481Safresh1 case 85: 777*e0680481Safresh1#line 686 "perly.y" 77856d68f1eSafresh1 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); } 77956d68f1eSafresh1 78056d68f1eSafresh1 break; 78156d68f1eSafresh1 782*e0680481Safresh1 case 86: 783*e0680481Safresh1#line 688 "perly.y" 78456d68f1eSafresh1 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); } 78556d68f1eSafresh1 78656d68f1eSafresh1 break; 78756d68f1eSafresh1 788*e0680481Safresh1 case 87: 789*e0680481Safresh1#line 690 "perly.y" 7909f11ffb7Safresh1 { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL); 7919f11ffb7Safresh1 parser->copline = (line_t)(ps[-1].val.ival); } 7929f11ffb7Safresh1 793b8851fccSafresh1 break; 794b8851fccSafresh1 795*e0680481Safresh1 case 88: 796*e0680481Safresh1#line 693 "perly.y" 7979f11ffb7Safresh1 { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); } 7989f11ffb7Safresh1 799b8851fccSafresh1 break; 800b8851fccSafresh1 801*e0680481Safresh1 case 90: 802*e0680481Safresh1#line 700 "perly.y" 8039f11ffb7Safresh1 { 8049f11ffb7Safresh1 ((ps[0].val.opval))->op_flags |= OPf_PARENS; 8059f11ffb7Safresh1 (yyval.opval) = op_scope((ps[0].val.opval)); 80691f110e0Safresh1 } 8079f11ffb7Safresh1 808898184e3Ssthen break; 809898184e3Ssthen 810*e0680481Safresh1 case 91: 811*e0680481Safresh1#line 705 "perly.y" 8129f11ffb7Safresh1 { parser->copline = (line_t)(ps[-5].val.ival); 8139f11ffb7Safresh1 (yyval.opval) = newCONDOP(0, 8149f11ffb7Safresh1 newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)), 8159f11ffb7Safresh1 op_scope((ps[-1].val.opval)), (ps[0].val.opval)); 8169f11ffb7Safresh1 PL_hints |= HINT_BLOCK_SCOPE; 8179f11ffb7Safresh1 } 8189f11ffb7Safresh1 81991f110e0Safresh1 break; 82091f110e0Safresh1 821*e0680481Safresh1 case 93: 822*e0680481Safresh1#line 717 "perly.y" 8239f11ffb7Safresh1 { (yyval.opval) = op_scope((ps[0].val.opval)); } 8249f11ffb7Safresh1 825898184e3Ssthen break; 826898184e3Ssthen 827*e0680481Safresh1 case 94: 828*e0680481Safresh1#line 722 "perly.y" 829eac174f2Safresh1 { (yyval.opval) = NULL; } 830eac174f2Safresh1 831eac174f2Safresh1 break; 832eac174f2Safresh1 833*e0680481Safresh1 case 95: 834*e0680481Safresh1#line 724 "perly.y" 835eac174f2Safresh1 { (yyval.opval) = op_scope((ps[0].val.opval)); } 836eac174f2Safresh1 837eac174f2Safresh1 break; 838eac174f2Safresh1 839*e0680481Safresh1 case 96: 840*e0680481Safresh1#line 729 "perly.y" 8419f11ffb7Safresh1 { (yyval.ival) = (PL_min_intro_pending && 8429f11ffb7Safresh1 PL_max_intro_pending >= PL_min_intro_pending); 8439f11ffb7Safresh1 intro_my(); } 8449f11ffb7Safresh1 845898184e3Ssthen break; 846898184e3Ssthen 847*e0680481Safresh1 case 99: 848*e0680481Safresh1#line 741 "perly.y" 84991f110e0Safresh1 { YYSTYPE tmplval; 85091f110e0Safresh1 (void)scan_num("1", &tmplval); 85191f110e0Safresh1 (yyval.opval) = tmplval.opval; } 852898184e3Ssthen 853898184e3Ssthen break; 854898184e3Ssthen 855*e0680481Safresh1 case 101: 856*e0680481Safresh1#line 749 "perly.y" 8579f11ffb7Safresh1 { (yyval.opval) = invert(scalar((ps[0].val.opval))); } 8589f11ffb7Safresh1 859898184e3Ssthen break; 860898184e3Ssthen 861*e0680481Safresh1 case 102: 862*e0680481Safresh1#line 754 "perly.y" 863eac174f2Safresh1 { (yyval.opval) = (ps[0].val.opval); intro_my(); } 864eac174f2Safresh1 865eac174f2Safresh1 break; 866eac174f2Safresh1 867eac174f2Safresh1 case 103: 868*e0680481Safresh1#line 758 "perly.y" 869*e0680481Safresh1 { (yyval.opval) = (ps[0].val.opval); intro_my(); } 870eac174f2Safresh1 871eac174f2Safresh1 break; 872eac174f2Safresh1 873eac174f2Safresh1 case 104: 874*e0680481Safresh1#line 761 "perly.y" 875eac174f2Safresh1 { (yyval.opval) = (ps[0].val.opval); } 876eac174f2Safresh1 877eac174f2Safresh1 break; 878eac174f2Safresh1 879eac174f2Safresh1 case 106: 880*e0680481Safresh1#line 766 "perly.y" 881*e0680481Safresh1 { (yyval.ival) = start_subparse(FALSE, 0); 882*e0680481Safresh1 SAVEFREESV(PL_compcv); } 883eac174f2Safresh1 884eac174f2Safresh1 break; 885eac174f2Safresh1 886eac174f2Safresh1 case 107: 887*e0680481Safresh1#line 772 "perly.y" 888*e0680481Safresh1 { (yyval.ival) = start_subparse(FALSE, CVf_ANON); 889*e0680481Safresh1 SAVEFREESV(PL_compcv); } 8909f11ffb7Safresh1 891b8851fccSafresh1 break; 892b8851fccSafresh1 893eac174f2Safresh1 case 108: 894*e0680481Safresh1#line 777 "perly.y" 895*e0680481Safresh1 { (yyval.ival) = start_subparse(FALSE, CVf_ANON|CVf_IsMETHOD); 896*e0680481Safresh1 SAVEFREESV(PL_compcv); } 8979f11ffb7Safresh1 898850e2753Smillert break; 899850e2753Smillert 900eac174f2Safresh1 case 109: 901*e0680481Safresh1#line 782 "perly.y" 902*e0680481Safresh1 { (yyval.ival) = start_subparse(TRUE, 0); 903*e0680481Safresh1 SAVEFREESV(PL_compcv); } 904*e0680481Safresh1 905*e0680481Safresh1 break; 906*e0680481Safresh1 907*e0680481Safresh1 case 115: 908*e0680481Safresh1#line 801 "perly.y" 909*e0680481Safresh1 { 910*e0680481Safresh1 OP *attrlist = (ps[0].val.opval); 911*e0680481Safresh1 if(attrlist && !PL_parser->sig_seen) 912*e0680481Safresh1 attrlist = apply_builtin_cv_attributes(PL_compcv, attrlist); 913*e0680481Safresh1 (yyval.opval) = attrlist; 914*e0680481Safresh1 } 915*e0680481Safresh1 916*e0680481Safresh1 break; 917*e0680481Safresh1 918*e0680481Safresh1 case 116: 919*e0680481Safresh1#line 808 "perly.y" 920*e0680481Safresh1 { (yyval.opval) = NULL; } 921*e0680481Safresh1 922*e0680481Safresh1 break; 923*e0680481Safresh1 924*e0680481Safresh1 case 117: 925*e0680481Safresh1#line 813 "perly.y" 926*e0680481Safresh1 { (yyval.opval) = (ps[0].val.opval); } 927*e0680481Safresh1 928*e0680481Safresh1 break; 929*e0680481Safresh1 930*e0680481Safresh1 case 118: 931*e0680481Safresh1#line 815 "perly.y" 932*e0680481Safresh1 { (yyval.opval) = NULL; } 933*e0680481Safresh1 934*e0680481Safresh1 break; 935*e0680481Safresh1 936*e0680481Safresh1 case 119: 937*e0680481Safresh1#line 826 "perly.y" 938*e0680481Safresh1 { parser->in_my = 0; (yyval.opval) = NULL; } 939*e0680481Safresh1 940*e0680481Safresh1 break; 941*e0680481Safresh1 942*e0680481Safresh1 case 120: 943*e0680481Safresh1#line 828 "perly.y" 944*e0680481Safresh1 { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } 945*e0680481Safresh1 946*e0680481Safresh1 break; 947*e0680481Safresh1 948*e0680481Safresh1 case 121: 949*e0680481Safresh1#line 833 "perly.y" 95056d68f1eSafresh1 { (yyval.ival) = '@'; } 95156d68f1eSafresh1 95256d68f1eSafresh1 break; 95356d68f1eSafresh1 954*e0680481Safresh1 case 122: 955*e0680481Safresh1#line 835 "perly.y" 95656d68f1eSafresh1 { (yyval.ival) = '%'; } 95756d68f1eSafresh1 95856d68f1eSafresh1 break; 95956d68f1eSafresh1 960*e0680481Safresh1 case 123: 961*e0680481Safresh1#line 839 "perly.y" 9629f11ffb7Safresh1 { 9639f11ffb7Safresh1 I32 sigil = (ps[-2].val.ival); 9649f11ffb7Safresh1 OP *var = (ps[-1].val.opval); 965*e0680481Safresh1 OP *defop = (ps[0].val.opval); 9669f11ffb7Safresh1 9679f11ffb7Safresh1 if (parser->sig_slurpy) 9689f11ffb7Safresh1 yyerror("Multiple slurpy parameters not allowed"); 9699f11ffb7Safresh1 parser->sig_slurpy = (char)sigil; 9709f11ffb7Safresh1 971*e0680481Safresh1 if (defop) 9729f11ffb7Safresh1 yyerror("A slurpy parameter may not have " 9739f11ffb7Safresh1 "a default value"); 9749f11ffb7Safresh1 9759f11ffb7Safresh1 (yyval.opval) = var ? newSTATEOP(0, NULL, var) : NULL; 9769f11ffb7Safresh1 } 9779f11ffb7Safresh1 978850e2753Smillert break; 979850e2753Smillert 980*e0680481Safresh1 case 125: 981*e0680481Safresh1#line 860 "perly.y" 982*e0680481Safresh1 { (yyval.opval) = newARGDEFELEMOP(0, newOP(OP_NULL, 0), parser->sig_elems); } 9839f11ffb7Safresh1 984b8851fccSafresh1 break; 985b8851fccSafresh1 986*e0680481Safresh1 case 126: 987*e0680481Safresh1#line 862 "perly.y" 988*e0680481Safresh1 { 989*e0680481Safresh1 I32 flags = 0; 990*e0680481Safresh1 if ((ps[-1].val.ival) == OP_DORASSIGN) 991*e0680481Safresh1 flags |= OPpARG_IF_UNDEF << 8; 992*e0680481Safresh1 if ((ps[-1].val.ival) == OP_ORASSIGN) 993*e0680481Safresh1 flags |= OPpARG_IF_FALSE << 8; 994*e0680481Safresh1 (yyval.opval) = newARGDEFELEMOP(flags, (ps[0].val.opval), parser->sig_elems); 995*e0680481Safresh1 } 9969f11ffb7Safresh1 997b8851fccSafresh1 break; 998b8851fccSafresh1 999*e0680481Safresh1 case 127: 1000*e0680481Safresh1#line 875 "perly.y" 1001850e2753Smillert { 10029f11ffb7Safresh1 OP *var = (ps[-1].val.opval); 1003*e0680481Safresh1 OP *defop = (ps[0].val.opval); 10049f11ffb7Safresh1 10059f11ffb7Safresh1 if (parser->sig_slurpy) 10069f11ffb7Safresh1 yyerror("Slurpy parameter not last"); 10079f11ffb7Safresh1 10089f11ffb7Safresh1 parser->sig_elems++; 10099f11ffb7Safresh1 1010*e0680481Safresh1 if (defop) { 10119f11ffb7Safresh1 parser->sig_optelems++; 10129f11ffb7Safresh1 1013*e0680481Safresh1 OP *defexpr = cLOGOPx(defop)->op_first; 1014*e0680481Safresh1 10159f11ffb7Safresh1 if ( defexpr->op_type == OP_NULL 10169f11ffb7Safresh1 && !(defexpr->op_flags & OPf_KIDS)) 10179f11ffb7Safresh1 { 10189f11ffb7Safresh1 /* handle '$=' special case */ 10199f11ffb7Safresh1 if (var) 10209f11ffb7Safresh1 yyerror("Optional parameter " 10219f11ffb7Safresh1 "lacks default expression"); 1022*e0680481Safresh1 op_free(defop); 102391f110e0Safresh1 } 10249f11ffb7Safresh1 else { 10259f11ffb7Safresh1 /* a normal '=default' expression */ 10269f11ffb7Safresh1 if (var) { 10279f11ffb7Safresh1 var->op_flags |= OPf_STACKED; 10289f11ffb7Safresh1 (void)op_sibling_splice(var, 10299f11ffb7Safresh1 NULL, 0, defop); 10309f11ffb7Safresh1 scalar(defop); 10319f11ffb7Safresh1 } 10329f11ffb7Safresh1 else 10339f11ffb7Safresh1 var = newUNOP(OP_NULL, 0, defop); 10349f11ffb7Safresh1 10359f11ffb7Safresh1 LINKLIST(var); 10369f11ffb7Safresh1 /* NB: normally the first child of a 10379f11ffb7Safresh1 * logop is executed before the logop, 10389f11ffb7Safresh1 * and it pushes a boolean result 10399f11ffb7Safresh1 * ready for the logop. For ARGDEFELEM, 10409f11ffb7Safresh1 * the op itself does the boolean 10419f11ffb7Safresh1 * calculation, so set the first op to 10429f11ffb7Safresh1 * it instead. 10439f11ffb7Safresh1 */ 10449f11ffb7Safresh1 var->op_next = defop; 10459f11ffb7Safresh1 defexpr->op_next = var; 10469f11ffb7Safresh1 } 10479f11ffb7Safresh1 } 10489f11ffb7Safresh1 else { 10499f11ffb7Safresh1 if (parser->sig_optelems) 10509f11ffb7Safresh1 yyerror("Mandatory parameter " 10519f11ffb7Safresh1 "follows optional parameter"); 10529f11ffb7Safresh1 } 10539f11ffb7Safresh1 10549f11ffb7Safresh1 (yyval.opval) = var ? newSTATEOP(0, NULL, var) : NULL; 10559f11ffb7Safresh1 } 10569f11ffb7Safresh1 10579f11ffb7Safresh1 break; 10589f11ffb7Safresh1 1059*e0680481Safresh1 case 128: 1060*e0680481Safresh1#line 935 "perly.y" 106156d68f1eSafresh1 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } 10629f11ffb7Safresh1 1063850e2753Smillert break; 1064850e2753Smillert 1065*e0680481Safresh1 case 129: 1066*e0680481Safresh1#line 937 "perly.y" 106756d68f1eSafresh1 { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } 106856d68f1eSafresh1 106956d68f1eSafresh1 break; 107056d68f1eSafresh1 1071*e0680481Safresh1 case 130: 1072*e0680481Safresh1#line 943 "perly.y" 107356d68f1eSafresh1 { (yyval.opval) = (ps[-1].val.opval); } 107456d68f1eSafresh1 107556d68f1eSafresh1 break; 107656d68f1eSafresh1 1077*e0680481Safresh1 case 131: 1078*e0680481Safresh1#line 945 "perly.y" 10799f11ffb7Safresh1 { 10809f11ffb7Safresh1 (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval)); 108191f110e0Safresh1 } 10829f11ffb7Safresh1 1083850e2753Smillert break; 1084850e2753Smillert 1085*e0680481Safresh1 case 132: 1086*e0680481Safresh1#line 949 "perly.y" 10879f11ffb7Safresh1 { (yyval.opval) = (ps[0].val.opval); } 10889f11ffb7Safresh1 1089b8851fccSafresh1 break; 1090b8851fccSafresh1 1091*e0680481Safresh1 case 137: 1092*e0680481Safresh1#line 966 "perly.y" 109356d68f1eSafresh1 { (yyval.opval) = (ps[-1].val.opval); } 109456d68f1eSafresh1 109556d68f1eSafresh1 break; 109656d68f1eSafresh1 1097*e0680481Safresh1 case 138: 1098*e0680481Safresh1#line 969 "perly.y" 10999f11ffb7Safresh1 { 11009f11ffb7Safresh1 ENTER; 11019f11ffb7Safresh1 SAVEIV(parser->sig_elems); 11029f11ffb7Safresh1 SAVEIV(parser->sig_optelems); 11039f11ffb7Safresh1 SAVEI8(parser->sig_slurpy); 11049f11ffb7Safresh1 parser->sig_elems = 0; 11059f11ffb7Safresh1 parser->sig_optelems = 0; 11069f11ffb7Safresh1 parser->sig_slurpy = 0; 11079f11ffb7Safresh1 parser->in_my = KEY_sigvar; 11089f11ffb7Safresh1 } 11099f11ffb7Safresh1 1110850e2753Smillert break; 1111850e2753Smillert 1112*e0680481Safresh1 case 139: 1113*e0680481Safresh1#line 980 "perly.y" 11149f11ffb7Safresh1 { 111556d68f1eSafresh1 OP *sigops = (ps[0].val.opval); 111656d68f1eSafresh1 struct op_argcheck_aux *aux; 11179f11ffb7Safresh1 OP *check; 11189f11ffb7Safresh1 1119*e0680481Safresh1 if (!FEATURE_SIGNATURES_IS_ENABLED && !CvIsMETHOD(PL_compcv)) 11209f11ffb7Safresh1 Perl_croak(aTHX_ "Experimental " 11219f11ffb7Safresh1 "subroutine signatures not enabled"); 11229f11ffb7Safresh1 11239f11ffb7Safresh1 /* We shouldn't get here otherwise */ 112456d68f1eSafresh1 aux = (struct op_argcheck_aux*) 112556d68f1eSafresh1 PerlMemShared_malloc( 112656d68f1eSafresh1 sizeof(struct op_argcheck_aux)); 112756d68f1eSafresh1 aux->params = parser->sig_elems; 112856d68f1eSafresh1 aux->opt_params = parser->sig_optelems; 112956d68f1eSafresh1 aux->slurpy = parser->sig_slurpy; 113056d68f1eSafresh1 check = newUNOP_AUX(OP_ARGCHECK, 0, NULL, 113156d68f1eSafresh1 (UNOP_AUX_item *)aux); 11329f11ffb7Safresh1 sigops = op_prepend_elem(OP_LINESEQ, check, sigops); 11339f11ffb7Safresh1 sigops = op_prepend_elem(OP_LINESEQ, 11349f11ffb7Safresh1 newSTATEOP(0, NULL, NULL), 11359f11ffb7Safresh1 sigops); 11369f11ffb7Safresh1 /* a nextstate at the end handles context 11379f11ffb7Safresh1 * correctly for an empty sub body */ 113856d68f1eSafresh1 sigops = op_append_elem(OP_LINESEQ, 11399f11ffb7Safresh1 sigops, 11409f11ffb7Safresh1 newSTATEOP(0, NULL, NULL)); 114156d68f1eSafresh1 /* wrap the list of arg ops in a NULL aux op. 114256d68f1eSafresh1 This serves two purposes. First, it makes 114356d68f1eSafresh1 the arg list a separate subtree from the 114456d68f1eSafresh1 body of the sub, and secondly the null op 114556d68f1eSafresh1 may in future be upgraded to an OP_SIGNATURE 114656d68f1eSafresh1 when implemented. For now leave it as 114756d68f1eSafresh1 ex-argcheck */ 114856d68f1eSafresh1 (yyval.opval) = newUNOP_AUX(OP_ARGCHECK, 0, sigops, NULL); 114956d68f1eSafresh1 op_null((yyval.opval)); 11509f11ffb7Safresh1 1151eac174f2Safresh1 CvSIGNATURE_on(PL_compcv); 1152eac174f2Safresh1 11539f11ffb7Safresh1 parser->in_my = 0; 11549f11ffb7Safresh1 /* tell the toker that attrributes can follow 11559f11ffb7Safresh1 * this sig, but only so that the toker 11569f11ffb7Safresh1 * can skip through any (illegal) trailing 11579f11ffb7Safresh1 * attribute text then give a useful error 11589f11ffb7Safresh1 * message about "attributes before sig", 11599f11ffb7Safresh1 * rather than falling over ina mess at 11609f11ffb7Safresh1 * unrecognised syntax. 11619f11ffb7Safresh1 */ 11629f11ffb7Safresh1 parser->expect = XATTRBLOCK; 11639f11ffb7Safresh1 parser->sig_seen = TRUE; 11649f11ffb7Safresh1 LEAVE; 116591f110e0Safresh1 } 11669f11ffb7Safresh1 11679f11ffb7Safresh1 break; 11689f11ffb7Safresh1 1169*e0680481Safresh1 case 141: 1170*e0680481Safresh1#line 1037 "perly.y" 11719f11ffb7Safresh1 { (yyval.opval) = NULL; } 11729f11ffb7Safresh1 1173850e2753Smillert break; 1174850e2753Smillert 1175*e0680481Safresh1 case 142: 1176*e0680481Safresh1#line 1043 "perly.y" 11779f11ffb7Safresh1 { 11789f11ffb7Safresh1 if (parser->copline > (line_t)(ps[-2].val.ival)) 11799f11ffb7Safresh1 parser->copline = (line_t)(ps[-2].val.ival); 11809f11ffb7Safresh1 (yyval.opval) = block_end((ps[-3].val.ival), (ps[-1].val.opval)); 11819f11ffb7Safresh1 } 11829f11ffb7Safresh1 1183850e2753Smillert break; 1184850e2753Smillert 1185*e0680481Safresh1 case 144: 1186*e0680481Safresh1#line 1055 "perly.y" 11879f11ffb7Safresh1 { (yyval.opval) = NULL; } 11889f11ffb7Safresh1 1189850e2753Smillert break; 1190850e2753Smillert 1191*e0680481Safresh1 case 145: 1192*e0680481Safresh1#line 1060 "perly.y" 11939f11ffb7Safresh1 { 11949f11ffb7Safresh1 if (parser->copline > (line_t)(ps[-2].val.ival)) 11959f11ffb7Safresh1 parser->copline = (line_t)(ps[-2].val.ival); 11969f11ffb7Safresh1 (yyval.opval) = block_end((ps[-4].val.ival), 11979f11ffb7Safresh1 op_append_list(OP_LINESEQ, (ps[-3].val.opval), (ps[-1].val.opval))); 119891f110e0Safresh1 } 11999f11ffb7Safresh1 1200850e2753Smillert break; 1201850e2753Smillert 1202*e0680481Safresh1 case 146: 1203*e0680481Safresh1#line 1071 "perly.y" 12049f11ffb7Safresh1 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } 12059f11ffb7Safresh1 1206850e2753Smillert break; 1207850e2753Smillert 1208*e0680481Safresh1 case 147: 1209*e0680481Safresh1#line 1073 "perly.y" 1210*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 1211*e0680481Safresh1 1212*e0680481Safresh1 break; 1213*e0680481Safresh1 1214*e0680481Safresh1 case 148: 1215*e0680481Safresh1#line 1075 "perly.y" 12169f11ffb7Safresh1 { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } 12179f11ffb7Safresh1 1218850e2753Smillert break; 1219850e2753Smillert 1220*e0680481Safresh1 case 149: 1221*e0680481Safresh1#line 1077 "perly.y" 1222*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 1223*e0680481Safresh1 1224*e0680481Safresh1 break; 1225*e0680481Safresh1 1226*e0680481Safresh1 case 151: 1227*e0680481Safresh1#line 1083 "perly.y" 12289f11ffb7Safresh1 { (yyval.opval) = (ps[-1].val.opval); } 12299f11ffb7Safresh1 1230850e2753Smillert break; 1231850e2753Smillert 1232*e0680481Safresh1 case 152: 1233*e0680481Safresh1#line 1085 "perly.y" 12349f11ffb7Safresh1 { 12359f11ffb7Safresh1 OP* term = (ps[0].val.opval); 12369f11ffb7Safresh1 (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term); 12379f11ffb7Safresh1 } 1238898184e3Ssthen 1239850e2753Smillert break; 1240850e2753Smillert 1241*e0680481Safresh1 case 154: 1242*e0680481Safresh1#line 1094 "perly.y" 12439f11ffb7Safresh1 { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, 12449f11ffb7Safresh1 op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) ); 12459f11ffb7Safresh1 } 12469f11ffb7Safresh1 1247850e2753Smillert break; 1248850e2753Smillert 1249*e0680481Safresh1 case 155: 1250*e0680481Safresh1#line 1098 "perly.y" 12519f11ffb7Safresh1 { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED, 12529f11ffb7Safresh1 op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) ); 12539f11ffb7Safresh1 } 12549f11ffb7Safresh1 1255850e2753Smillert break; 1256850e2753Smillert 1257*e0680481Safresh1 case 156: 1258*e0680481Safresh1#line 1102 "perly.y" 12599f11ffb7Safresh1 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, 12609f11ffb7Safresh1 op_append_elem(OP_LIST, 12619f11ffb7Safresh1 op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)), 12629f11ffb7Safresh1 newMETHOP(OP_METHOD, 0, (ps[-3].val.opval)))); 12639f11ffb7Safresh1 } 12649f11ffb7Safresh1 1265898184e3Ssthen break; 1266898184e3Ssthen 1267*e0680481Safresh1 case 157: 1268*e0680481Safresh1#line 1108 "perly.y" 12699f11ffb7Safresh1 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, 12709f11ffb7Safresh1 op_append_elem(OP_LIST, scalar((ps[-2].val.opval)), 12719f11ffb7Safresh1 newMETHOP(OP_METHOD, 0, (ps[0].val.opval)))); 12729f11ffb7Safresh1 } 12739f11ffb7Safresh1 127491f110e0Safresh1 break; 127591f110e0Safresh1 1276*e0680481Safresh1 case 158: 1277*e0680481Safresh1#line 1113 "perly.y" 12789f11ffb7Safresh1 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, 12799f11ffb7Safresh1 op_append_elem(OP_LIST, 12809f11ffb7Safresh1 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), 12819f11ffb7Safresh1 newMETHOP(OP_METHOD, 0, (ps[-2].val.opval)))); 12829f11ffb7Safresh1 } 12839f11ffb7Safresh1 128491f110e0Safresh1 break; 128591f110e0Safresh1 1286*e0680481Safresh1 case 159: 1287*e0680481Safresh1#line 1119 "perly.y" 12889f11ffb7Safresh1 { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, 12899f11ffb7Safresh1 op_append_elem(OP_LIST, 12909f11ffb7Safresh1 op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)), 12919f11ffb7Safresh1 newMETHOP(OP_METHOD, 0, (ps[-4].val.opval)))); 12926fb12b70Safresh1 } 12939f11ffb7Safresh1 12946fb12b70Safresh1 break; 12956fb12b70Safresh1 1296*e0680481Safresh1 case 160: 1297*e0680481Safresh1#line 1125 "perly.y" 12989f11ffb7Safresh1 { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } 12999f11ffb7Safresh1 13006fb12b70Safresh1 break; 13016fb12b70Safresh1 1302*e0680481Safresh1 case 161: 1303*e0680481Safresh1#line 1127 "perly.y" 13049f11ffb7Safresh1 { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } 13059f11ffb7Safresh1 13066fb12b70Safresh1 break; 13076fb12b70Safresh1 1308*e0680481Safresh1 case 162: 1309*e0680481Safresh1#line 1129 "perly.y" 131056d68f1eSafresh1 { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } 131156d68f1eSafresh1 131256d68f1eSafresh1 break; 131356d68f1eSafresh1 1314*e0680481Safresh1 case 163: 1315*e0680481Safresh1#line 1131 "perly.y" 13169f11ffb7Safresh1 { SvREFCNT_inc_simple_void(PL_compcv); 13179f11ffb7Safresh1 (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); } 13189f11ffb7Safresh1 13196fb12b70Safresh1 break; 13206fb12b70Safresh1 1321*e0680481Safresh1 case 164: 1322*e0680481Safresh1#line 1134 "perly.y" 13239f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 13249f11ffb7Safresh1 op_append_elem(OP_LIST, 13259f11ffb7Safresh1 op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval))); 13269f11ffb7Safresh1 } 1327850e2753Smillert 1328850e2753Smillert break; 1329850e2753Smillert 1330*e0680481Safresh1 case 167: 1331*e0680481Safresh1#line 1149 "perly.y" 13329f11ffb7Safresh1 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } 13339f11ffb7Safresh1 1334850e2753Smillert break; 1335850e2753Smillert 1336*e0680481Safresh1 case 168: 1337*e0680481Safresh1#line 1151 "perly.y" 13389f11ffb7Safresh1 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); 13399f11ffb7Safresh1 } 13409f11ffb7Safresh1 1341850e2753Smillert break; 1342850e2753Smillert 1343*e0680481Safresh1 case 169: 1344*e0680481Safresh1#line 1154 "perly.y" 13459f11ffb7Safresh1 { (yyval.opval) = newBINOP(OP_AELEM, 0, 13469f11ffb7Safresh1 ref(newAVREF((ps[-4].val.opval)),OP_RV2AV), 13479f11ffb7Safresh1 scalar((ps[-1].val.opval))); 13489f11ffb7Safresh1 } 13499f11ffb7Safresh1 1350850e2753Smillert break; 1351850e2753Smillert 1352*e0680481Safresh1 case 170: 1353*e0680481Safresh1#line 1159 "perly.y" 13549f11ffb7Safresh1 { (yyval.opval) = newBINOP(OP_AELEM, 0, 13559f11ffb7Safresh1 ref(newAVREF((ps[-3].val.opval)),OP_RV2AV), 13569f11ffb7Safresh1 scalar((ps[-1].val.opval))); 13579f11ffb7Safresh1 } 13589f11ffb7Safresh1 1359898184e3Ssthen break; 1360898184e3Ssthen 1361*e0680481Safresh1 case 171: 1362*e0680481Safresh1#line 1164 "perly.y" 13639f11ffb7Safresh1 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); 13649f11ffb7Safresh1 } 13659f11ffb7Safresh1 1366850e2753Smillert break; 1367850e2753Smillert 1368*e0680481Safresh1 case 172: 1369*e0680481Safresh1#line 1167 "perly.y" 13709f11ffb7Safresh1 { (yyval.opval) = newBINOP(OP_HELEM, 0, 13719f11ffb7Safresh1 ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), 13729f11ffb7Safresh1 jmaybe((ps[-2].val.opval))); } 13739f11ffb7Safresh1 1374850e2753Smillert break; 1375850e2753Smillert 1376*e0680481Safresh1 case 173: 1377*e0680481Safresh1#line 1171 "perly.y" 13789f11ffb7Safresh1 { (yyval.opval) = newBINOP(OP_HELEM, 0, 13799f11ffb7Safresh1 ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), 13809f11ffb7Safresh1 jmaybe((ps[-2].val.opval))); } 13819f11ffb7Safresh1 138291f110e0Safresh1 break; 138391f110e0Safresh1 1384*e0680481Safresh1 case 174: 1385*e0680481Safresh1#line 1175 "perly.y" 13869f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 13879f11ffb7Safresh1 newCVREF(0, scalar((ps[-3].val.opval)))); 13889f11ffb7Safresh1 if (parser->expect == XBLOCK) 13899f11ffb7Safresh1 parser->expect = XOPERATOR; 13909f11ffb7Safresh1 } 13919f11ffb7Safresh1 139291f110e0Safresh1 break; 139391f110e0Safresh1 1394*e0680481Safresh1 case 175: 1395*e0680481Safresh1#line 1181 "perly.y" 13969f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 13979f11ffb7Safresh1 op_append_elem(OP_LIST, (ps[-1].val.opval), 13989f11ffb7Safresh1 newCVREF(0, scalar((ps[-4].val.opval))))); 13999f11ffb7Safresh1 if (parser->expect == XBLOCK) 14009f11ffb7Safresh1 parser->expect = XOPERATOR; 14019f11ffb7Safresh1 } 14029f11ffb7Safresh1 1403b8851fccSafresh1 break; 1404b8851fccSafresh1 1405*e0680481Safresh1 case 176: 1406*e0680481Safresh1#line 1189 "perly.y" 14079f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 14089f11ffb7Safresh1 op_append_elem(OP_LIST, (ps[-1].val.opval), 14099f11ffb7Safresh1 newCVREF(0, scalar((ps[-3].val.opval))))); 14109f11ffb7Safresh1 if (parser->expect == XBLOCK) 14119f11ffb7Safresh1 parser->expect = XOPERATOR; 14129f11ffb7Safresh1 } 14139f11ffb7Safresh1 1414b8851fccSafresh1 break; 1415b8851fccSafresh1 1416*e0680481Safresh1 case 177: 1417*e0680481Safresh1#line 1196 "perly.y" 14189f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 14199f11ffb7Safresh1 newCVREF(0, scalar((ps[-2].val.opval)))); 14209f11ffb7Safresh1 if (parser->expect == XBLOCK) 14219f11ffb7Safresh1 parser->expect = XOPERATOR; 14229f11ffb7Safresh1 } 14239f11ffb7Safresh1 1424b8851fccSafresh1 break; 1425b8851fccSafresh1 1426*e0680481Safresh1 case 178: 1427*e0680481Safresh1#line 1202 "perly.y" 14289f11ffb7Safresh1 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } 14299f11ffb7Safresh1 14309f11ffb7Safresh1 break; 14319f11ffb7Safresh1 1432*e0680481Safresh1 case 179: 1433*e0680481Safresh1#line 1204 "perly.y" 14349f11ffb7Safresh1 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } 14359f11ffb7Safresh1 14369f11ffb7Safresh1 break; 14379f11ffb7Safresh1 1438*e0680481Safresh1 case 180: 1439*e0680481Safresh1#line 1206 "perly.y" 14409f11ffb7Safresh1 { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); } 14419f11ffb7Safresh1 14429f11ffb7Safresh1 break; 14439f11ffb7Safresh1 1444*e0680481Safresh1 case 181: 1445*e0680481Safresh1#line 1211 "perly.y" 1446*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 1447*e0680481Safresh1 1448*e0680481Safresh1 break; 1449*e0680481Safresh1 1450*e0680481Safresh1 case 182: 1451*e0680481Safresh1#line 1213 "perly.y" 14529f11ffb7Safresh1 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } 14539f11ffb7Safresh1 14549f11ffb7Safresh1 break; 14559f11ffb7Safresh1 1456*e0680481Safresh1 case 183: 1457*e0680481Safresh1#line 1215 "perly.y" 1458*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 1459*e0680481Safresh1 1460*e0680481Safresh1 break; 1461*e0680481Safresh1 1462*e0680481Safresh1 case 184: 1463*e0680481Safresh1#line 1217 "perly.y" 14649f11ffb7Safresh1 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 14659f11ffb7Safresh1 14669f11ffb7Safresh1 break; 14679f11ffb7Safresh1 1468*e0680481Safresh1 case 185: 1469*e0680481Safresh1#line 1219 "perly.y" 1470*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 1471*e0680481Safresh1 1472*e0680481Safresh1 break; 1473*e0680481Safresh1 1474*e0680481Safresh1 case 186: 1475*e0680481Safresh1#line 1221 "perly.y" 14769f11ffb7Safresh1 { if ((ps[-1].val.ival) != OP_REPEAT) 14779f11ffb7Safresh1 scalar((ps[-2].val.opval)); 14789f11ffb7Safresh1 (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval))); 14799f11ffb7Safresh1 } 14809f11ffb7Safresh1 14819f11ffb7Safresh1 break; 14829f11ffb7Safresh1 148356d68f1eSafresh1 case 187: 1484*e0680481Safresh1#line 1226 "perly.y" 1485*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 148656d68f1eSafresh1 148756d68f1eSafresh1 break; 148856d68f1eSafresh1 148956d68f1eSafresh1 case 188: 1490*e0680481Safresh1#line 1228 "perly.y" 1491eac174f2Safresh1 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 149256d68f1eSafresh1 149356d68f1eSafresh1 break; 149456d68f1eSafresh1 149556d68f1eSafresh1 case 189: 1496*e0680481Safresh1#line 1230 "perly.y" 1497*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 1498eac174f2Safresh1 1499eac174f2Safresh1 break; 1500eac174f2Safresh1 1501eac174f2Safresh1 case 190: 1502*e0680481Safresh1#line 1232 "perly.y" 1503*e0680481Safresh1 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1504eac174f2Safresh1 1505eac174f2Safresh1 break; 1506eac174f2Safresh1 1507eac174f2Safresh1 case 191: 1508*e0680481Safresh1#line 1234 "perly.y" 1509eac174f2Safresh1 { (yyval.opval) = (ps[0].val.opval); } 1510eac174f2Safresh1 1511eac174f2Safresh1 break; 1512eac174f2Safresh1 1513*e0680481Safresh1 case 192: 1514*e0680481Safresh1#line 1236 "perly.y" 1515*e0680481Safresh1 { (yyval.opval) = (ps[0].val.opval); } 1516*e0680481Safresh1 1517*e0680481Safresh1 break; 1518*e0680481Safresh1 1519*e0680481Safresh1 case 193: 1520*e0680481Safresh1#line 1238 "perly.y" 1521*e0680481Safresh1 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1522*e0680481Safresh1 1523*e0680481Safresh1 break; 1524*e0680481Safresh1 1525*e0680481Safresh1 case 194: 1526*e0680481Safresh1#line 1240 "perly.y" 1527*e0680481Safresh1 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1528*e0680481Safresh1 1529*e0680481Safresh1 break; 1530*e0680481Safresh1 1531eac174f2Safresh1 case 195: 1532*e0680481Safresh1#line 1242 "perly.y" 1533*e0680481Safresh1 { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1534eac174f2Safresh1 1535eac174f2Safresh1 break; 1536eac174f2Safresh1 1537eac174f2Safresh1 case 196: 1538*e0680481Safresh1#line 1244 "perly.y" 1539*e0680481Safresh1 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } 1540eac174f2Safresh1 1541eac174f2Safresh1 break; 1542eac174f2Safresh1 1543eac174f2Safresh1 case 197: 1544*e0680481Safresh1#line 1246 "perly.y" 1545*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 1546*e0680481Safresh1 1547*e0680481Safresh1 break; 1548*e0680481Safresh1 1549*e0680481Safresh1 case 198: 1550*e0680481Safresh1#line 1248 "perly.y" 1551*e0680481Safresh1 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } 1552*e0680481Safresh1 1553*e0680481Safresh1 break; 1554*e0680481Safresh1 1555*e0680481Safresh1 case 199: 1556*e0680481Safresh1#line 1250 "perly.y" 1557*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 1558*e0680481Safresh1 1559*e0680481Safresh1 break; 1560*e0680481Safresh1 1561*e0680481Safresh1 case 200: 1562*e0680481Safresh1#line 1252 "perly.y" 1563*e0680481Safresh1 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } 1564*e0680481Safresh1 1565*e0680481Safresh1 break; 1566*e0680481Safresh1 1567*e0680481Safresh1 case 201: 1568*e0680481Safresh1#line 1254 "perly.y" 1569*e0680481Safresh1 { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } 1570*e0680481Safresh1 1571*e0680481Safresh1 break; 1572*e0680481Safresh1 1573*e0680481Safresh1 case 202: 1574*e0680481Safresh1#line 1256 "perly.y" 1575*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 1576*e0680481Safresh1 1577*e0680481Safresh1 break; 1578*e0680481Safresh1 1579*e0680481Safresh1 case 203: 1580*e0680481Safresh1#line 1260 "perly.y" 1581*e0680481Safresh1 { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } 1582*e0680481Safresh1 1583*e0680481Safresh1 break; 1584*e0680481Safresh1 1585*e0680481Safresh1 case 204: 1586*e0680481Safresh1#line 1262 "perly.y" 1587*e0680481Safresh1 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1588*e0680481Safresh1 1589*e0680481Safresh1 break; 1590*e0680481Safresh1 1591*e0680481Safresh1 case 205: 1592*e0680481Safresh1#line 1264 "perly.y" 1593*e0680481Safresh1 { yyerror("syntax error"); YYERROR; } 1594*e0680481Safresh1 1595*e0680481Safresh1 break; 1596*e0680481Safresh1 1597*e0680481Safresh1 case 206: 1598*e0680481Safresh1#line 1266 "perly.y" 1599*e0680481Safresh1 { yyerror("syntax error"); YYERROR; } 1600*e0680481Safresh1 1601*e0680481Safresh1 break; 1602*e0680481Safresh1 1603*e0680481Safresh1 case 207: 1604*e0680481Safresh1#line 1268 "perly.y" 1605*e0680481Safresh1 { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } 1606*e0680481Safresh1 1607*e0680481Safresh1 break; 1608*e0680481Safresh1 1609*e0680481Safresh1 case 208: 1610*e0680481Safresh1#line 1272 "perly.y" 1611*e0680481Safresh1 { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } 1612*e0680481Safresh1 1613*e0680481Safresh1 break; 1614*e0680481Safresh1 1615*e0680481Safresh1 case 209: 1616*e0680481Safresh1#line 1274 "perly.y" 1617*e0680481Safresh1 { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } 1618*e0680481Safresh1 1619*e0680481Safresh1 break; 1620*e0680481Safresh1 1621*e0680481Safresh1 case 210: 1622*e0680481Safresh1#line 1278 "perly.y" 1623*e0680481Safresh1 { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } 1624*e0680481Safresh1 1625*e0680481Safresh1 break; 1626*e0680481Safresh1 1627*e0680481Safresh1 case 211: 1628*e0680481Safresh1#line 1280 "perly.y" 1629*e0680481Safresh1 { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } 1630*e0680481Safresh1 1631*e0680481Safresh1 break; 1632*e0680481Safresh1 1633*e0680481Safresh1 case 212: 1634*e0680481Safresh1#line 1282 "perly.y" 1635*e0680481Safresh1 { yyerror("syntax error"); YYERROR; } 1636*e0680481Safresh1 1637*e0680481Safresh1 break; 1638*e0680481Safresh1 1639*e0680481Safresh1 case 213: 1640*e0680481Safresh1#line 1284 "perly.y" 1641*e0680481Safresh1 { yyerror("syntax error"); YYERROR; } 1642*e0680481Safresh1 1643*e0680481Safresh1 break; 1644*e0680481Safresh1 1645*e0680481Safresh1 case 214: 1646*e0680481Safresh1#line 1288 "perly.y" 1647*e0680481Safresh1 { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } 1648*e0680481Safresh1 1649*e0680481Safresh1 break; 1650*e0680481Safresh1 1651*e0680481Safresh1 case 215: 1652*e0680481Safresh1#line 1290 "perly.y" 1653*e0680481Safresh1 { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } 1654*e0680481Safresh1 1655*e0680481Safresh1 break; 1656*e0680481Safresh1 1657*e0680481Safresh1 case 216: 1658*e0680481Safresh1#line 1295 "perly.y" 1659*e0680481Safresh1 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } 1660*e0680481Safresh1 1661*e0680481Safresh1 break; 1662*e0680481Safresh1 1663*e0680481Safresh1 case 217: 1664*e0680481Safresh1#line 1297 "perly.y" 1665*e0680481Safresh1 { (yyval.opval) = (ps[0].val.opval); } 1666*e0680481Safresh1 1667*e0680481Safresh1 break; 1668*e0680481Safresh1 1669*e0680481Safresh1 case 218: 1670*e0680481Safresh1#line 1300 "perly.y" 1671*e0680481Safresh1 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } 1672*e0680481Safresh1 1673*e0680481Safresh1 break; 1674*e0680481Safresh1 1675*e0680481Safresh1 case 219: 1676*e0680481Safresh1#line 1302 "perly.y" 1677*e0680481Safresh1 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } 1678*e0680481Safresh1 1679*e0680481Safresh1 break; 1680*e0680481Safresh1 1681*e0680481Safresh1 case 220: 1682*e0680481Safresh1#line 1304 "perly.y" 16839f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_POSTINC, 0, 16849f11ffb7Safresh1 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } 16859f11ffb7Safresh1 16869f11ffb7Safresh1 break; 16879f11ffb7Safresh1 1688*e0680481Safresh1 case 221: 1689*e0680481Safresh1#line 1307 "perly.y" 16909f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_POSTDEC, 0, 16919f11ffb7Safresh1 op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} 16929f11ffb7Safresh1 16939f11ffb7Safresh1 break; 16949f11ffb7Safresh1 1695*e0680481Safresh1 case 222: 1696*e0680481Safresh1#line 1310 "perly.y" 1697b8851fccSafresh1 { (yyval.opval) = op_convert_list(OP_JOIN, 0, 16986fb12b70Safresh1 op_append_elem( 16996fb12b70Safresh1 OP_LIST, 17006fb12b70Safresh1 newSVREF(scalar( 17016fb12b70Safresh1 newSVOP(OP_CONST,0, 17026fb12b70Safresh1 newSVpvs("\"")) 17036fb12b70Safresh1 )), 17049f11ffb7Safresh1 (ps[-1].val.opval) 17056fb12b70Safresh1 )); 170691f110e0Safresh1 } 170791f110e0Safresh1 17086fb12b70Safresh1 break; 17096fb12b70Safresh1 1710*e0680481Safresh1 case 223: 1711*e0680481Safresh1#line 1321 "perly.y" 17129f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_PREINC, 0, 17139f11ffb7Safresh1 op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } 17149f11ffb7Safresh1 1715b8851fccSafresh1 break; 1716b8851fccSafresh1 1717*e0680481Safresh1 case 224: 1718*e0680481Safresh1#line 1324 "perly.y" 17199f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_PREDEC, 0, 17209f11ffb7Safresh1 op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } 17219f11ffb7Safresh1 1722b8851fccSafresh1 break; 1723b8851fccSafresh1 1724*e0680481Safresh1 case 225: 1725*e0680481Safresh1#line 1332 "perly.y" 17269f11ffb7Safresh1 { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } 17279f11ffb7Safresh1 1728b8851fccSafresh1 break; 1729b8851fccSafresh1 1730*e0680481Safresh1 case 226: 1731*e0680481Safresh1#line 1334 "perly.y" 17329f11ffb7Safresh1 { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } 17339f11ffb7Safresh1 1734850e2753Smillert break; 1735850e2753Smillert 1736*e0680481Safresh1 case 227: 1737*e0680481Safresh1#line 1336 "perly.y" 17389f11ffb7Safresh1 { SvREFCNT_inc_simple_void(PL_compcv); 17399f11ffb7Safresh1 (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); } 17409f11ffb7Safresh1 1741850e2753Smillert break; 1742850e2753Smillert 1743*e0680481Safresh1 case 228: 1744*e0680481Safresh1#line 1339 "perly.y" 17459f11ffb7Safresh1 { SvREFCNT_inc_simple_void(PL_compcv); 17469f11ffb7Safresh1 (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); } 17479f11ffb7Safresh1 1748850e2753Smillert break; 1749850e2753Smillert 1750*e0680481Safresh1 case 229: 1751*e0680481Safresh1#line 1342 "perly.y" 1752*e0680481Safresh1 { 1753*e0680481Safresh1 SvREFCNT_inc_simple_void(PL_compcv); 1754*e0680481Safresh1 (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); 1755*e0680481Safresh1 } 1756*e0680481Safresh1 1757*e0680481Safresh1 break; 1758*e0680481Safresh1 1759*e0680481Safresh1 case 230: 1760*e0680481Safresh1#line 1350 "perly.y" 17619f11ffb7Safresh1 { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} 17629f11ffb7Safresh1 1763850e2753Smillert break; 1764850e2753Smillert 1765*e0680481Safresh1 case 231: 1766*e0680481Safresh1#line 1352 "perly.y" 17679f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} 17686fb12b70Safresh1 17696fb12b70Safresh1 break; 17706fb12b70Safresh1 1771*e0680481Safresh1 case 236: 1772*e0680481Safresh1#line 1360 "perly.y" 17739f11ffb7Safresh1 { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } 17749f11ffb7Safresh1 1775850e2753Smillert break; 1776850e2753Smillert 1777*e0680481Safresh1 case 237: 1778*e0680481Safresh1#line 1362 "perly.y" 17799f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } 17809f11ffb7Safresh1 1781b39c5158Smillert break; 1782b39c5158Smillert 1783*e0680481Safresh1 case 238: 1784*e0680481Safresh1#line 1364 "perly.y" 17859f11ffb7Safresh1 { (yyval.opval) = (ps[0].val.opval); } 17869f11ffb7Safresh1 178791f110e0Safresh1 break; 178891f110e0Safresh1 1789*e0680481Safresh1 case 239: 1790*e0680481Safresh1#line 1366 "perly.y" 1791eac174f2Safresh1 { (yyval.opval) = localize((ps[0].val.opval),0); } 17929f11ffb7Safresh1 1793b8851fccSafresh1 break; 1794b8851fccSafresh1 1795*e0680481Safresh1 case 240: 1796*e0680481Safresh1#line 1368 "perly.y" 1797eac174f2Safresh1 { (yyval.opval) = sawparens((ps[-1].val.opval)); } 17989f11ffb7Safresh1 1799b8851fccSafresh1 break; 1800b8851fccSafresh1 1801*e0680481Safresh1 case 241: 1802*e0680481Safresh1#line 1370 "perly.y" 18039f11ffb7Safresh1 { (yyval.opval) = (ps[0].val.opval); } 18049f11ffb7Safresh1 1805b8851fccSafresh1 break; 1806b8851fccSafresh1 1807*e0680481Safresh1 case 242: 1808*e0680481Safresh1#line 1372 "perly.y" 1809eac174f2Safresh1 { (yyval.opval) = sawparens(newNULLLIST()); } 18109f11ffb7Safresh1 1811b8851fccSafresh1 break; 1812b8851fccSafresh1 1813*e0680481Safresh1 case 243: 1814*e0680481Safresh1#line 1374 "perly.y" 18159f11ffb7Safresh1 { (yyval.opval) = (ps[0].val.opval); } 18169f11ffb7Safresh1 181791f110e0Safresh1 break; 181891f110e0Safresh1 1819*e0680481Safresh1 case 244: 1820*e0680481Safresh1#line 1376 "perly.y" 1821eac174f2Safresh1 { (yyval.opval) = (ps[0].val.opval); } 1822eac174f2Safresh1 1823eac174f2Safresh1 break; 1824eac174f2Safresh1 1825*e0680481Safresh1 case 245: 1826*e0680481Safresh1#line 1378 "perly.y" 1827eac174f2Safresh1 { (yyval.opval) = (ps[0].val.opval); } 1828eac174f2Safresh1 1829eac174f2Safresh1 break; 1830eac174f2Safresh1 1831*e0680481Safresh1 case 246: 1832*e0680481Safresh1#line 1380 "perly.y" 1833eac174f2Safresh1 { (yyval.opval) = (ps[0].val.opval); } 1834eac174f2Safresh1 1835eac174f2Safresh1 break; 1836eac174f2Safresh1 1837*e0680481Safresh1 case 247: 1838*e0680481Safresh1#line 1382 "perly.y" 1839eac174f2Safresh1 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} 1840eac174f2Safresh1 1841eac174f2Safresh1 break; 1842eac174f2Safresh1 1843*e0680481Safresh1 case 248: 1844*e0680481Safresh1#line 1384 "perly.y" 1845eac174f2Safresh1 { (yyval.opval) = (ps[0].val.opval); } 1846eac174f2Safresh1 1847eac174f2Safresh1 break; 1848eac174f2Safresh1 1849*e0680481Safresh1 case 249: 1850*e0680481Safresh1#line 1386 "perly.y" 18519f11ffb7Safresh1 { (yyval.opval) = op_prepend_elem(OP_ASLICE, 18529f11ffb7Safresh1 newOP(OP_PUSHMARK, 0), 18539f11ffb7Safresh1 newLISTOP(OP_ASLICE, 0, 18549f11ffb7Safresh1 list((ps[-1].val.opval)), 18559f11ffb7Safresh1 ref((ps[-3].val.opval), OP_ASLICE))); 18569f11ffb7Safresh1 if ((yyval.opval) && (ps[-3].val.opval)) 18579f11ffb7Safresh1 (yyval.opval)->op_private |= 18589f11ffb7Safresh1 (ps[-3].val.opval)->op_private & OPpSLICEWARNING; 18599f11ffb7Safresh1 } 18609f11ffb7Safresh1 1861850e2753Smillert break; 1862850e2753Smillert 1863*e0680481Safresh1 case 250: 1864*e0680481Safresh1#line 1396 "perly.y" 18659f11ffb7Safresh1 { (yyval.opval) = op_prepend_elem(OP_KVASLICE, 18669f11ffb7Safresh1 newOP(OP_PUSHMARK, 0), 18679f11ffb7Safresh1 newLISTOP(OP_KVASLICE, 0, 18689f11ffb7Safresh1 list((ps[-1].val.opval)), 18699f11ffb7Safresh1 ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE))); 18709f11ffb7Safresh1 if ((yyval.opval) && (ps[-3].val.opval)) 18719f11ffb7Safresh1 (yyval.opval)->op_private |= 18729f11ffb7Safresh1 (ps[-3].val.opval)->op_private & OPpSLICEWARNING; 18739f11ffb7Safresh1 } 18749f11ffb7Safresh1 1875850e2753Smillert break; 1876850e2753Smillert 1877*e0680481Safresh1 case 251: 1878*e0680481Safresh1#line 1406 "perly.y" 18799f11ffb7Safresh1 { (yyval.opval) = op_prepend_elem(OP_HSLICE, 18809f11ffb7Safresh1 newOP(OP_PUSHMARK, 0), 18819f11ffb7Safresh1 newLISTOP(OP_HSLICE, 0, 18829f11ffb7Safresh1 list((ps[-2].val.opval)), 18839f11ffb7Safresh1 ref(oopsHV((ps[-4].val.opval)), OP_HSLICE))); 18849f11ffb7Safresh1 if ((yyval.opval) && (ps[-4].val.opval)) 18859f11ffb7Safresh1 (yyval.opval)->op_private |= 18869f11ffb7Safresh1 (ps[-4].val.opval)->op_private & OPpSLICEWARNING; 18879f11ffb7Safresh1 } 18889f11ffb7Safresh1 1889850e2753Smillert break; 1890850e2753Smillert 1891*e0680481Safresh1 case 252: 1892*e0680481Safresh1#line 1416 "perly.y" 18939f11ffb7Safresh1 { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, 18949f11ffb7Safresh1 newOP(OP_PUSHMARK, 0), 18959f11ffb7Safresh1 newLISTOP(OP_KVHSLICE, 0, 18969f11ffb7Safresh1 list((ps[-2].val.opval)), 18979f11ffb7Safresh1 ref((ps[-4].val.opval), OP_KVHSLICE))); 18989f11ffb7Safresh1 if ((yyval.opval) && (ps[-4].val.opval)) 18999f11ffb7Safresh1 (yyval.opval)->op_private |= 19009f11ffb7Safresh1 (ps[-4].val.opval)->op_private & OPpSLICEWARNING; 19019f11ffb7Safresh1 } 19029f11ffb7Safresh1 1903b8851fccSafresh1 break; 1904b8851fccSafresh1 1905*e0680481Safresh1 case 253: 1906*e0680481Safresh1#line 1426 "perly.y" 19079f11ffb7Safresh1 { (yyval.opval) = (ps[0].val.opval); } 19089f11ffb7Safresh1 1909b8851fccSafresh1 break; 1910b8851fccSafresh1 1911*e0680481Safresh1 case 254: 1912*e0680481Safresh1#line 1428 "perly.y" 19139f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } 19149f11ffb7Safresh1 1915b8851fccSafresh1 break; 1916b8851fccSafresh1 1917*e0680481Safresh1 case 255: 1918*e0680481Safresh1#line 1430 "perly.y" 19199f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); 19209f11ffb7Safresh1 } 19219f11ffb7Safresh1 1922b8851fccSafresh1 break; 1923b8851fccSafresh1 1924*e0680481Safresh1 case 256: 1925*e0680481Safresh1#line 1433 "perly.y" 192691f110e0Safresh1 { 19279f11ffb7Safresh1 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 19289f11ffb7Safresh1 op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); 19299f11ffb7Safresh1 } 19309f11ffb7Safresh1 19319f11ffb7Safresh1 break; 19329f11ffb7Safresh1 1933*e0680481Safresh1 case 257: 1934*e0680481Safresh1#line 1438 "perly.y" 19359f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 19369f11ffb7Safresh1 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); 19379f11ffb7Safresh1 } 19389f11ffb7Safresh1 19399f11ffb7Safresh1 break; 19409f11ffb7Safresh1 1941*e0680481Safresh1 case 258: 1942*e0680481Safresh1#line 1442 "perly.y" 19439f11ffb7Safresh1 { (yyval.opval) = newSVREF((ps[-3].val.opval)); } 19449f11ffb7Safresh1 19459f11ffb7Safresh1 break; 19469f11ffb7Safresh1 1947*e0680481Safresh1 case 259: 1948*e0680481Safresh1#line 1444 "perly.y" 19499f11ffb7Safresh1 { (yyval.opval) = newAVREF((ps[-3].val.opval)); } 19509f11ffb7Safresh1 19519f11ffb7Safresh1 break; 19529f11ffb7Safresh1 1953*e0680481Safresh1 case 260: 1954*e0680481Safresh1#line 1446 "perly.y" 19559f11ffb7Safresh1 { (yyval.opval) = newHVREF((ps[-3].val.opval)); } 19569f11ffb7Safresh1 19579f11ffb7Safresh1 break; 19589f11ffb7Safresh1 1959*e0680481Safresh1 case 261: 1960*e0680481Safresh1#line 1448 "perly.y" 19619f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, 19629f11ffb7Safresh1 scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } 19639f11ffb7Safresh1 19649f11ffb7Safresh1 break; 19659f11ffb7Safresh1 1966*e0680481Safresh1 case 262: 1967*e0680481Safresh1#line 1451 "perly.y" 19689f11ffb7Safresh1 { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } 19699f11ffb7Safresh1 19709f11ffb7Safresh1 break; 19719f11ffb7Safresh1 1972*e0680481Safresh1 case 263: 1973*e0680481Safresh1#line 1453 "perly.y" 19749f11ffb7Safresh1 { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); 19759f11ffb7Safresh1 PL_hints |= HINT_BLOCK_SCOPE; } 19769f11ffb7Safresh1 19779f11ffb7Safresh1 break; 19789f11ffb7Safresh1 1979*e0680481Safresh1 case 264: 1980*e0680481Safresh1#line 1456 "perly.y" 19819f11ffb7Safresh1 { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } 19829f11ffb7Safresh1 19839f11ffb7Safresh1 break; 19849f11ffb7Safresh1 1985*e0680481Safresh1 case 265: 1986*e0680481Safresh1#line 1458 "perly.y" 19879f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } 19889f11ffb7Safresh1 19899f11ffb7Safresh1 break; 19909f11ffb7Safresh1 1991*e0680481Safresh1 case 266: 1992*e0680481Safresh1#line 1460 "perly.y" 19939f11ffb7Safresh1 { (yyval.opval) = newOP((ps[0].val.ival), 0); } 19949f11ffb7Safresh1 19959f11ffb7Safresh1 break; 19969f11ffb7Safresh1 1997*e0680481Safresh1 case 267: 1998*e0680481Safresh1#line 1462 "perly.y" 19999f11ffb7Safresh1 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } 20009f11ffb7Safresh1 20019f11ffb7Safresh1 break; 20029f11ffb7Safresh1 2003*e0680481Safresh1 case 268: 2004*e0680481Safresh1#line 1464 "perly.y" 20059f11ffb7Safresh1 { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } 20069f11ffb7Safresh1 20079f11ffb7Safresh1 break; 20089f11ffb7Safresh1 2009*e0680481Safresh1 case 269: 2010*e0680481Safresh1#line 1466 "perly.y" 20119f11ffb7Safresh1 { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } 20129f11ffb7Safresh1 20139f11ffb7Safresh1 break; 20149f11ffb7Safresh1 2015*e0680481Safresh1 case 270: 2016*e0680481Safresh1#line 1468 "perly.y" 20179f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } 20189f11ffb7Safresh1 20199f11ffb7Safresh1 break; 20209f11ffb7Safresh1 2021*e0680481Safresh1 case 271: 2022*e0680481Safresh1#line 1470 "perly.y" 20239f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } 20249f11ffb7Safresh1 20259f11ffb7Safresh1 break; 20269f11ffb7Safresh1 2027*e0680481Safresh1 case 272: 2028*e0680481Safresh1#line 1472 "perly.y" 20299f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, 20309f11ffb7Safresh1 op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } 20319f11ffb7Safresh1 20329f11ffb7Safresh1 break; 20339f11ffb7Safresh1 2034*e0680481Safresh1 case 273: 2035*e0680481Safresh1#line 1475 "perly.y" 20369f11ffb7Safresh1 { (yyval.opval) = newOP((ps[0].val.ival), 0); } 20379f11ffb7Safresh1 20389f11ffb7Safresh1 break; 20399f11ffb7Safresh1 2040*e0680481Safresh1 case 274: 2041*e0680481Safresh1#line 1477 "perly.y" 20429f11ffb7Safresh1 { (yyval.opval) = newOP((ps[-2].val.ival), 0);} 20439f11ffb7Safresh1 20449f11ffb7Safresh1 break; 20459f11ffb7Safresh1 2046*e0680481Safresh1 case 275: 2047*e0680481Safresh1#line 1479 "perly.y" 20489f11ffb7Safresh1 { (yyval.opval) = (ps[0].val.opval); } 20499f11ffb7Safresh1 20509f11ffb7Safresh1 break; 20519f11ffb7Safresh1 2052*e0680481Safresh1 case 276: 2053*e0680481Safresh1#line 1481 "perly.y" 20549f11ffb7Safresh1 { (yyval.opval) = (ps[-2].val.opval); } 20559f11ffb7Safresh1 20569f11ffb7Safresh1 break; 20579f11ffb7Safresh1 2058*e0680481Safresh1 case 277: 2059*e0680481Safresh1#line 1483 "perly.y" 20609f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } 20619f11ffb7Safresh1 20629f11ffb7Safresh1 break; 20639f11ffb7Safresh1 2064*e0680481Safresh1 case 278: 2065*e0680481Safresh1#line 1485 "perly.y" 20669f11ffb7Safresh1 { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) 20679f11ffb7Safresh1 ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) 20689f11ffb7Safresh1 : newOP((ps[-2].val.ival), OPf_SPECIAL); } 20699f11ffb7Safresh1 20709f11ffb7Safresh1 break; 20719f11ffb7Safresh1 2072*e0680481Safresh1 case 279: 2073*e0680481Safresh1#line 1489 "perly.y" 20749f11ffb7Safresh1 { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } 20759f11ffb7Safresh1 20769f11ffb7Safresh1 break; 20779f11ffb7Safresh1 2078*e0680481Safresh1 case 280: 2079*e0680481Safresh1#line 1491 "perly.y" 20809f11ffb7Safresh1 { 20819f11ffb7Safresh1 if ( (ps[0].val.opval)->op_type != OP_TRANS 20829f11ffb7Safresh1 && (ps[0].val.opval)->op_type != OP_TRANSR 20839f11ffb7Safresh1 && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV)) 208491f110e0Safresh1 { 208591f110e0Safresh1 (yyval.ival) = start_subparse(FALSE, CVf_ANON); 208691f110e0Safresh1 SAVEFREESV(PL_compcv); 208791f110e0Safresh1 } else 208891f110e0Safresh1 (yyval.ival) = 0; 208991f110e0Safresh1 } 2090850e2753Smillert 20916fb12b70Safresh1 break; 20926fb12b70Safresh1 2093*e0680481Safresh1 case 281: 2094*e0680481Safresh1#line 1502 "perly.y" 20959f11ffb7Safresh1 { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } 20966fb12b70Safresh1 209791f110e0Safresh1 break; 209891f110e0Safresh1 2099*e0680481Safresh1 case 285: 2100*e0680481Safresh1#line 1511 "perly.y" 21019f11ffb7Safresh1 { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } 21029f11ffb7Safresh1 210391f110e0Safresh1 break; 210491f110e0Safresh1 2105*e0680481Safresh1 case 286: 2106*e0680481Safresh1#line 1513 "perly.y" 21079f11ffb7Safresh1 { (yyval.opval) = localize((ps[0].val.opval),1); } 21089f11ffb7Safresh1 2109b8851fccSafresh1 break; 2110b8851fccSafresh1 2111*e0680481Safresh1 case 287: 2112*e0680481Safresh1#line 1515 "perly.y" 21139f11ffb7Safresh1 { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } 21149f11ffb7Safresh1 21159f11ffb7Safresh1 break; 21169f11ffb7Safresh1 2117*e0680481Safresh1 case 288: 2118*e0680481Safresh1#line 1517 "perly.y" 2119eac174f2Safresh1 { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } 212056d68f1eSafresh1 212156d68f1eSafresh1 break; 212256d68f1eSafresh1 2123*e0680481Safresh1 case 289: 2124*e0680481Safresh1#line 1522 "perly.y" 2125eac174f2Safresh1 { (yyval.opval) = sawparens((ps[-1].val.opval)); } 212656d68f1eSafresh1 212756d68f1eSafresh1 break; 212856d68f1eSafresh1 2129*e0680481Safresh1 case 290: 2130*e0680481Safresh1#line 1524 "perly.y" 2131eac174f2Safresh1 { (yyval.opval) = sawparens(newNULLLIST()); } 213256d68f1eSafresh1 213356d68f1eSafresh1 break; 213456d68f1eSafresh1 2135*e0680481Safresh1 case 291: 2136*e0680481Safresh1#line 1527 "perly.y" 213756d68f1eSafresh1 { (yyval.opval) = (ps[0].val.opval); } 213856d68f1eSafresh1 213956d68f1eSafresh1 break; 214056d68f1eSafresh1 2141*e0680481Safresh1 case 292: 2142*e0680481Safresh1#line 1529 "perly.y" 214356d68f1eSafresh1 { (yyval.opval) = (ps[0].val.opval); } 214456d68f1eSafresh1 214556d68f1eSafresh1 break; 214656d68f1eSafresh1 2147*e0680481Safresh1 case 293: 2148*e0680481Safresh1#line 1531 "perly.y" 2149eac174f2Safresh1 { (yyval.opval) = (ps[0].val.opval); } 2150eac174f2Safresh1 2151eac174f2Safresh1 break; 2152eac174f2Safresh1 2153*e0680481Safresh1 case 294: 2154*e0680481Safresh1#line 1536 "perly.y" 2155*e0680481Safresh1 { 2156*e0680481Safresh1 (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; 2157*e0680481Safresh1 op_free((ps[0].val.opval)); 2158*e0680481Safresh1 } 2159*e0680481Safresh1 2160*e0680481Safresh1 break; 2161*e0680481Safresh1 2162*e0680481Safresh1 case 295: 2163*e0680481Safresh1#line 1541 "perly.y" 2164*e0680481Safresh1 { 2165*e0680481Safresh1 (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; 2166*e0680481Safresh1 op_free((ps[0].val.opval)); 2167*e0680481Safresh1 } 2168*e0680481Safresh1 2169*e0680481Safresh1 break; 2170*e0680481Safresh1 2171*e0680481Safresh1 case 296: 2172*e0680481Safresh1#line 1546 "perly.y" 2173*e0680481Safresh1 { 2174*e0680481Safresh1 (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; 2175*e0680481Safresh1 op_free((ps[0].val.opval)); 2176*e0680481Safresh1 } 2177*e0680481Safresh1 2178*e0680481Safresh1 break; 2179*e0680481Safresh1 2180*e0680481Safresh1 case 297: 2181*e0680481Safresh1#line 1554 "perly.y" 2182eac174f2Safresh1 { (yyval.opval) = (ps[0].val.opval); } 2183eac174f2Safresh1 2184eac174f2Safresh1 break; 2185eac174f2Safresh1 2186*e0680481Safresh1 case 298: 2187*e0680481Safresh1#line 1556 "perly.y" 2188*e0680481Safresh1 { (yyval.opval) = NULL; } 2189*e0680481Safresh1 2190*e0680481Safresh1 break; 2191*e0680481Safresh1 2192*e0680481Safresh1 case 300: 2193*e0680481Safresh1#line 1562 "perly.y" 2194*e0680481Safresh1 { 2195*e0680481Safresh1 parser->in_my = 0; 2196*e0680481Safresh1 if((ps[0].val.opval)) 2197*e0680481Safresh1 class_apply_field_attributes((PADNAME *)(ps[-1].val.pval), (ps[0].val.opval)); 2198*e0680481Safresh1 (yyval.opval) = newOP(OP_NULL, 0); 2199*e0680481Safresh1 } 2200*e0680481Safresh1 2201*e0680481Safresh1 break; 2202*e0680481Safresh1 2203*e0680481Safresh1 case 301: 2204*e0680481Safresh1#line 1569 "perly.y" 2205*e0680481Safresh1 { 2206*e0680481Safresh1 parser->in_my = 0; 2207*e0680481Safresh1 if((ps[-1].val.opval)) 2208*e0680481Safresh1 class_apply_field_attributes((PADNAME *)(ps[-2].val.pval), (ps[-1].val.opval)); 2209*e0680481Safresh1 ENTER; 2210*e0680481Safresh1 class_prepare_initfield_parse(); 2211*e0680481Safresh1 } 2212*e0680481Safresh1 2213*e0680481Safresh1 break; 2214*e0680481Safresh1 2215*e0680481Safresh1 case 302: 2216*e0680481Safresh1#line 1577 "perly.y" 2217*e0680481Safresh1 { 2218*e0680481Safresh1 class_set_field_defop((PADNAME *)(ps[-4].val.pval), (ps[-2].val.ival), (ps[0].val.opval)); 2219*e0680481Safresh1 LEAVE; 2220*e0680481Safresh1 (yyval.opval) = newOP(OP_NULL, 0); 2221*e0680481Safresh1 } 2222*e0680481Safresh1 2223*e0680481Safresh1 break; 2224*e0680481Safresh1 2225*e0680481Safresh1 case 308: 2226*e0680481Safresh1#line 1597 "perly.y" 2227*e0680481Safresh1 { (yyval.opval) = (ps[0].val.opval); } 2228*e0680481Safresh1 2229*e0680481Safresh1 break; 2230*e0680481Safresh1 2231*e0680481Safresh1 case 309: 2232*e0680481Safresh1#line 1603 "perly.y" 223356d68f1eSafresh1 { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } 223456d68f1eSafresh1 223556d68f1eSafresh1 break; 223656d68f1eSafresh1 2237*e0680481Safresh1 case 310: 2238*e0680481Safresh1#line 1608 "perly.y" 2239eac174f2Safresh1 { (yyval.opval) = (ps[-1].val.opval); } 224056d68f1eSafresh1 224156d68f1eSafresh1 break; 224256d68f1eSafresh1 2243*e0680481Safresh1 case 311: 2244*e0680481Safresh1#line 1610 "perly.y" 2245eac174f2Safresh1 { 2246eac174f2Safresh1 (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), (ps[0].val.opval)); 2247eac174f2Safresh1 } 224856d68f1eSafresh1 224956d68f1eSafresh1 break; 225056d68f1eSafresh1 2251*e0680481Safresh1 case 313: 2252*e0680481Safresh1#line 1617 "perly.y" 2253eac174f2Safresh1 { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } 2254eac174f2Safresh1 2255eac174f2Safresh1 break; 2256eac174f2Safresh1 2257*e0680481Safresh1 case 321: 2258*e0680481Safresh1#line 1634 "perly.y" 2259eac174f2Safresh1 { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } 2260eac174f2Safresh1 2261eac174f2Safresh1 break; 2262eac174f2Safresh1 2263*e0680481Safresh1 case 322: 2264*e0680481Safresh1#line 1638 "perly.y" 2265eac174f2Safresh1 { (yyval.opval) = newSVREF((ps[0].val.opval)); } 2266eac174f2Safresh1 2267eac174f2Safresh1 break; 2268eac174f2Safresh1 2269*e0680481Safresh1 case 323: 2270*e0680481Safresh1#line 1642 "perly.y" 22719f11ffb7Safresh1 { (yyval.opval) = newAVREF((ps[0].val.opval)); 22729f11ffb7Safresh1 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); 22739f11ffb7Safresh1 } 22749f11ffb7Safresh1 22759f11ffb7Safresh1 break; 22769f11ffb7Safresh1 2277*e0680481Safresh1 case 324: 2278*e0680481Safresh1#line 1648 "perly.y" 22799f11ffb7Safresh1 { (yyval.opval) = newHVREF((ps[0].val.opval)); 22809f11ffb7Safresh1 if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); 22819f11ffb7Safresh1 } 22829f11ffb7Safresh1 22839f11ffb7Safresh1 break; 22849f11ffb7Safresh1 2285*e0680481Safresh1 case 325: 2286*e0680481Safresh1#line 1654 "perly.y" 22879f11ffb7Safresh1 { (yyval.opval) = newAVREF((ps[0].val.opval)); } 22889f11ffb7Safresh1 22899f11ffb7Safresh1 break; 22909f11ffb7Safresh1 2291*e0680481Safresh1 case 326: 2292*e0680481Safresh1#line 1656 "perly.y" 22939f11ffb7Safresh1 { (yyval.opval) = newAVREF((ps[-3].val.opval)); } 22949f11ffb7Safresh1 22959f11ffb7Safresh1 break; 22969f11ffb7Safresh1 2297*e0680481Safresh1 case 327: 2298*e0680481Safresh1#line 1660 "perly.y" 22999f11ffb7Safresh1 { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } 23009f11ffb7Safresh1 23019f11ffb7Safresh1 break; 23029f11ffb7Safresh1 2303*e0680481Safresh1 case 329: 2304*e0680481Safresh1#line 1665 "perly.y" 23059f11ffb7Safresh1 { (yyval.opval) = newAVREF((ps[-2].val.opval)); } 23069f11ffb7Safresh1 23079f11ffb7Safresh1 break; 23089f11ffb7Safresh1 2309*e0680481Safresh1 case 331: 2310*e0680481Safresh1#line 1670 "perly.y" 23119f11ffb7Safresh1 { (yyval.opval) = newHVREF((ps[-2].val.opval)); } 23129f11ffb7Safresh1 23139f11ffb7Safresh1 break; 23149f11ffb7Safresh1 2315*e0680481Safresh1 case 333: 2316*e0680481Safresh1#line 1675 "perly.y" 23179f11ffb7Safresh1 { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } 23189f11ffb7Safresh1 23199f11ffb7Safresh1 break; 23209f11ffb7Safresh1 2321*e0680481Safresh1 case 334: 2322*e0680481Safresh1#line 1680 "perly.y" 23239f11ffb7Safresh1 { (yyval.opval) = scalar((ps[0].val.opval)); } 23249f11ffb7Safresh1 23259f11ffb7Safresh1 break; 23269f11ffb7Safresh1 2327*e0680481Safresh1 case 335: 2328*e0680481Safresh1#line 1682 "perly.y" 23299f11ffb7Safresh1 { (yyval.opval) = scalar((ps[0].val.opval)); } 23309f11ffb7Safresh1 23319f11ffb7Safresh1 break; 23329f11ffb7Safresh1 2333*e0680481Safresh1 case 336: 2334*e0680481Safresh1#line 1684 "perly.y" 23359f11ffb7Safresh1 { (yyval.opval) = op_scope((ps[0].val.opval)); } 23369f11ffb7Safresh1 23379f11ffb7Safresh1 break; 23389f11ffb7Safresh1 2339*e0680481Safresh1 case 337: 2340*e0680481Safresh1#line 1687 "perly.y" 23419f11ffb7Safresh1 { (yyval.opval) = (ps[0].val.opval); } 23429f11ffb7Safresh1 23439f11ffb7Safresh1 break; 23449f11ffb7Safresh1 23459f11ffb7Safresh1 23469f11ffb7Safresh1 2347850e2753Smillert default: break; 2348850e2753Smillert 2349898184e3Ssthen 2350898184e3Ssthen/* Generated from: 2351*e0680481Safresh1 * 0a5fcd15cf0b7afb57ade6ceaf68037a38dd194acd9d60d3e4ad99c15233af75 perly.y 2352eac174f2Safresh1 * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl 2353*e0680481Safresh1 * ex: set ro ft=c: */ 2354