This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Tracked down some other places to make the Unicode-Collate changes
[perl5.git] / perly.act
CommitLineData
0de566d7 1case 2:
8e720305 2#line 142 "perly.y"
727a8fe5
Z
3 {
4 PL_parser->expect = XSTATE;
5 ;}
0de566d7
DM
6 break;
7
8 case 3:
8e720305 9#line 146 "perly.y"
636def1f 10 {
727a8fe5
Z
11 newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval)));
12 (yyval.ival) = 0;
9eb5c532
Z
13 ;}
14 break;
15
16 case 4:
8e720305 17#line 151 "perly.y"
727a8fe5 18 {
78cdf107 19 parser->expect = XTERM;
727a8fe5
Z
20 ;}
21 break;
22
23 case 5:
8e720305 24#line 155 "perly.y"
9eb5c532
Z
25 {
26 PL_eval_root = (ps[(3) - (3)].val.opval);
636def1f 27 (yyval.ival) = 0;
636def1f
RGS
28 ;}
29 break;
30
727a8fe5 31 case 6:
8e720305 32#line 160 "perly.y"
07ffcb73 33 {
78cdf107 34 parser->expect = XBLOCK;
07ffcb73
Z
35 ;}
36 break;
37
727a8fe5 38 case 7:
8e720305 39#line 164 "perly.y"
07ffcb73 40 {
5f211341 41 PL_pad_reset_pending = TRUE;
a7aaec61 42 PL_eval_root = (ps[(3) - (3)].val.opval);
07ffcb73 43 (yyval.ival) = 0;
e53d8f76
Z
44 yyunlex();
45 parser->yychar = YYEOF;
07ffcb73
Z
46 ;}
47 break;
48
727a8fe5 49 case 8:
8e720305 50#line 172 "perly.y"
e53d8f76
Z
51 {
52 parser->expect = XSTATE;
53 ;}
636def1f
RGS
54 break;
55
727a8fe5 56 case 9:
8e720305 57#line 176 "perly.y"
e53d8f76 58 {
8359b381 59 PL_pad_reset_pending = TRUE;
e53d8f76
Z
60 PL_eval_root = (ps[(3) - (3)].val.opval);
61 (yyval.ival) = 0;
8359b381
Z
62 yyunlex();
63 parser->yychar = YYEOF;
e53d8f76
Z
64 ;}
65 break;
66
727a8fe5 67 case 10:
8e720305 68#line 184 "perly.y"
8359b381
Z
69 {
70 parser->expect = XSTATE;
71 ;}
e53d8f76
Z
72 break;
73
727a8fe5 74 case 11:
8e720305 75#line 188 "perly.y"
8359b381 76 {
78cdf107 77 PL_pad_reset_pending = TRUE;
8359b381
Z
78 PL_eval_root = (ps[(3) - (3)].val.opval);
79 (yyval.ival) = 0;
78cdf107
Z
80 yyunlex();
81 parser->yychar = YYEOF;
8359b381
Z
82 ;}
83 break;
84
8359b381 85 case 12:
8e720305 86#line 196 "perly.y"
78cdf107
Z
87 {
88 parser->expect = XSTATE;
89 ;}
90 break;
91
92 case 13:
8e720305 93#line 200 "perly.y"
78cdf107
Z
94 {
95 PL_eval_root = (ps[(3) - (3)].val.opval);
96 (yyval.ival) = 0;
97 ;}
98 break;
99
100 case 14:
8e720305 101#line 208 "perly.y"
53a7735b
DM
102 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
103 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
1654d593
DM
104 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
105 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
106 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
f05e27e5 107 ;}
0de566d7
DM
108 break;
109
78cdf107 110 case 15:
8e720305 111#line 217 "perly.y"
9eb5c532 112 { (yyval.ival) = block_start(TRUE); ;}
0d863452
RH
113 break;
114
78cdf107 115 case 16:
8e720305 116#line 221 "perly.y"
9eb5c532
Z
117 { (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;}
118 break;
119
78cdf107 120 case 17:
8e720305 121#line 225 "perly.y"
53a7735b
DM
122 { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
123 PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
1654d593
DM
124 (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
125 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
126 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
f05e27e5 127 ;}
0de566d7
DM
128 break;
129
78cdf107 130 case 18:
8e720305 131#line 234 "perly.y"
9a9798c2 132 { (yyval.ival) = block_start(FALSE); ;}
0de566d7
DM
133 break;
134
78cdf107 135 case 19:
8e720305 136#line 239 "perly.y"
bcabcc50 137 { (yyval.opval) = (OP*)NULL; ;}
0de566d7
DM
138 break;
139
78cdf107 140 case 20:
8e720305 141#line 241 "perly.y"
2fcb4757 142 { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
500bedb6 143 PL_pad_reset_pending = TRUE;
503de470
DM
144 if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
145 PL_hints |= HINT_BLOCK_SCOPE;
146 ;}
500bedb6
DM
147 break;
148
78cdf107 149 case 21:
8e720305 150#line 250 "perly.y"
eae48c89 151 {
8e720305
Z
152 if((ps[(1) - (1)].val.opval)) {
153 (yyval.opval) = newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval));
eae48c89 154 } else {
8e720305 155 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), NULL);
eae48c89
Z
156 }
157 ;}
0d863452
RH
158 break;
159
78cdf107 160 case 22:
8e720305 161#line 258 "perly.y"
1654d593 162 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0d863452
RH
163 break;
164
78cdf107 165 case 23:
8e720305
Z
166#line 262 "perly.y"
167 {
168 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
169 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),
170 (ps[(2) - (2)].val.opval) ? cLISTOPx((yyval.opval))->op_first : (yyval.opval), 'L');
171 ;}
172 break;
173
174 case 24:
175#line 268 "perly.y"
176 {
177 (yyval.opval) = newSTATEOP(0, PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
178 TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval), cLISTOPx((yyval.opval))->op_first, 'L');
179 ;}
180 break;
181
182 case 25:
183#line 276 "perly.y"
184 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
185 break;
186
187 case 26:
188#line 278 "perly.y"
eae48c89
Z
189 {
190 (yyval.opval) = newOP(OP_NULL,0);
191 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
192 ;}
193 break;
194
8e720305
Z
195 case 27:
196#line 283 "perly.y"
eae48c89
Z
197 {
198 CV *fmtcv = PL_compcv;
199 SvREFCNT_inc_simple_void(PL_compcv);
200#ifdef MAD
201 (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
202 prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
203 (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
204 token_free((ps[(1) - (4)].val.i_tkval));
205#else
206 newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
207 (yyval.opval) = (OP*)NULL;
208#endif
209 if (CvOUTSIDE(fmtcv) && !CvUNIQUE(CvOUTSIDE(fmtcv))) {
210 SvREFCNT_inc_simple_void(fmtcv);
211 pad_add_anon((SV*)fmtcv, OP_NULL);
212 }
213 ;}
0de566d7
DM
214 break;
215
8e720305
Z
216 case 28:
217#line 301 "perly.y"
f05e27e5 218 {
eae48c89
Z
219 SvREFCNT_inc_simple_void(PL_compcv);
220#ifdef MAD
221 {
222 OP* o = newSVOP(OP_ANONCODE, 0,
223 (SV*)newATTRSUB((ps[(2) - (6)].val.ival), (ps[(3) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), (ps[(6) - (6)].val.opval)));
224 (yyval.opval) = newOP(OP_NULL,0);
225 op_getmad(o,(yyval.opval),'&');
226 op_getmad((ps[(3) - (6)].val.opval),(yyval.opval),'n');
227 op_getmad((ps[(4) - (6)].val.opval),(yyval.opval),'s');
228 op_getmad((ps[(5) - (6)].val.opval),(yyval.opval),'a');
229 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
230 append_madprops((ps[(6) - (6)].val.opval)->op_madprop, (yyval.opval), 0);
231 (ps[(6) - (6)].val.opval)->op_madprop = 0;
f05e27e5 232 }
eae48c89
Z
233#else
234 newATTRSUB((ps[(2) - (6)].val.ival), (ps[(3) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), (ps[(6) - (6)].val.opval));
235 (yyval.opval) = (OP*)NULL;
236#endif
f05e27e5 237 ;}
0de566d7
DM
238 break;
239
8e720305
Z
240 case 29:
241#line 322 "perly.y"
f05e27e5 242 {
eae48c89
Z
243 /* Unimplemented "my sub foo { }" */
244 SvREFCNT_inc_simple_void(PL_compcv);
245#ifdef MAD
246 (yyval.opval) = newMYSUB((ps[(2) - (6)].val.ival), (ps[(3) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), (ps[(6) - (6)].val.opval));
247 token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
248#else
249 newMYSUB((ps[(2) - (6)].val.ival), (ps[(3) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), (ps[(6) - (6)].val.opval));
250 (yyval.opval) = (OP*)NULL;
251#endif
f05e27e5 252 ;}
0de566d7
DM
253 break;
254
8e720305
Z
255 case 30:
256#line 334 "perly.y"
eae48c89
Z
257 {
258#ifdef MAD
259 (yyval.opval) = package((ps[(3) - (4)].val.opval));
260 token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
261 if ((ps[(2) - (4)].val.opval))
262 package_version((ps[(2) - (4)].val.opval));
263 token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
264#else
265 package((ps[(3) - (4)].val.opval));
266 if ((ps[(2) - (4)].val.opval))
267 package_version((ps[(2) - (4)].val.opval));
268 (yyval.opval) = (OP*)NULL;
269#endif
270 ;}
0de566d7
DM
271 break;
272
8e720305
Z
273 case 31:
274#line 349 "perly.y"
eae48c89 275 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
0de566d7
DM
276 break;
277
8e720305
Z
278 case 32:
279#line 351 "perly.y"
5f211341 280 {
eae48c89
Z
281 SvREFCNT_inc_simple_void(PL_compcv);
282#ifdef MAD
283 (yyval.opval) = utilize(IVAL((ps[(1) - (7)].val.i_tkval)), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
284 token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
285 token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
286 if (PL_parser->rsfp_filters &&
287 AvFILLp(PL_parser->rsfp_filters) >= 0)
288 append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
289#else
290 utilize(IVAL((ps[(1) - (7)].val.i_tkval)), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
291 (yyval.opval) = (OP*)NULL;
292#endif
5f211341
Z
293 ;}
294 break;
295
8e720305
Z
296 case 33:
297#line 366 "perly.y"
eae48c89 298 {
3ad73efd
Z
299 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
300 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
eae48c89
Z
301 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
302 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
303 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
304 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
305 ;}
4098b6bb
JV
306 break;
307
8e720305
Z
308 case 34:
309#line 375 "perly.y"
eae48c89 310 {
3ad73efd
Z
311 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
312 newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
eae48c89
Z
313 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
314 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
315 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
316 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
317 ;}
4e4da3ac
Z
318 break;
319
8e720305
Z
320 case 35:
321#line 384 "perly.y"
eae48c89
Z
322 {
323 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
3ad73efd 324 newGIVENOP((ps[(5) - (7)].val.opval), op_scope((ps[(7) - (7)].val.opval)), (PADOFFSET)(ps[(4) - (7)].val.ival)));
eae48c89 325 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
f05e27e5 326 ;}
0de566d7
DM
327 break;
328
8e720305
Z
329 case 36:
330#line 390 "perly.y"
3ad73efd 331 { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
0de566d7
DM
332 break;
333
8e720305
Z
334 case 37:
335#line 392 "perly.y"
3ad73efd 336 { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
0de566d7
DM
337 break;
338
8e720305
Z
339 case 38:
340#line 394 "perly.y"
eae48c89
Z
341 {
342 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
343 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
94bf0465 344 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
eae48c89
Z
345 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
346 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
347 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
348 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
f05e27e5 349 ;}
0de566d7
DM
350 break;
351
8e720305
Z
352 case 39:
353#line 404 "perly.y"
eae48c89
Z
354 {
355 (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
94bf0465
Z
356 newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
357 (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
eae48c89
Z
358 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
359 TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
360 TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
361 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
f05e27e5 362 ;}
0de566d7
DM
363 break;
364
8e720305
Z
365 case 40:
366#line 415 "perly.y"
eae48c89
Z
367 {
368 OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval));
369 OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
94bf0465 370 scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
eae48c89
Z
371 if (initop) {
372 forop = op_prepend_elem(OP_LINESEQ, initop,
373 op_append_elem(OP_LINESEQ,
374 newOP(OP_UNSTACK, OPf_SPECIAL),
375 forop));
376 }
377 DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
378 (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
379 TOKEN_GETMAD((ps[(1) - (11)].val.i_tkval),(yyval.opval),'3');
380 TOKEN_GETMAD((ps[(2) - (11)].val.i_tkval),(yyval.opval),'(');
381 TOKEN_GETMAD((ps[(5) - (11)].val.i_tkval),(yyval.opval),'1');
382 TOKEN_GETMAD((ps[(7) - (11)].val.i_tkval),(yyval.opval),'2');
383 TOKEN_GETMAD((ps[(10) - (11)].val.i_tkval),(yyval.opval),')');
384 PL_parser->copline = (line_t)IVAL((ps[(1) - (11)].val.i_tkval));
385 ;}
0de566d7
DM
386 break;
387
8e720305
Z
388 case 41:
389#line 435 "perly.y"
eae48c89 390 {
94bf0465 391 (yyval.opval) = block_end((ps[(3) - (9)].val.ival), newFOROP(0, (ps[(4) - (9)].val.opval), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
eae48c89
Z
392 TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W');
393 TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),(yyval.opval),'d');
394 TOKEN_GETMAD((ps[(5) - (9)].val.i_tkval),(yyval.opval),'(');
395 TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),(yyval.opval),')');
396 PL_parser->copline = (line_t)IVAL((ps[(1) - (9)].val.i_tkval));
397 ;}
f20dcd76
VP
398 break;
399
8e720305
Z
400 case 42:
401#line 444 "perly.y"
eae48c89 402 {
94bf0465 403 (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
3ad73efd 404 op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
eae48c89
Z
405 TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
406 TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),(yyval.opval),'(');
407 TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),(yyval.opval),')');
408 PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
f05e27e5 409 ;}
0de566d7
DM
410 break;
411
8e720305
Z
412 case 43:
413#line 453 "perly.y"
eae48c89
Z
414 {
415 (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
94bf0465 416 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
eae48c89
Z
417 TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'W');
418 TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
419 TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
420 PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
f05e27e5 421 ;}
0de566d7
DM
422 break;
423
8e720305
Z
424 case 44:
425#line 462 "perly.y"
eae48c89
Z
426 {
427 /* a block is a loop that happens once */
428 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
94bf0465 429 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
f05e27e5 430 ;}
0de566d7
DM
431 break;
432
8e720305
Z
433 case 45:
434#line 468 "perly.y"
eae48c89
Z
435 {
436 int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree;
437 (ps[(3) - (5)].val.opval)->op_latefree = 1;
438 package((ps[(3) - (5)].val.opval));
439 (ps[(3) - (5)].val.opval)->op_latefree = save_3_latefree;
440 if ((ps[(2) - (5)].val.opval)) {
441 int save_2_latefree = (ps[(2) - (5)].val.opval)->op_latefree;
442 (ps[(2) - (5)].val.opval)->op_latefree = 1;
443 package_version((ps[(2) - (5)].val.opval));
444 (ps[(2) - (5)].val.opval)->op_latefree = save_2_latefree;
445 }
f05e27e5 446 ;}
0de566d7
DM
447 break;
448
8e720305
Z
449 case 46:
450#line 481 "perly.y"
eae48c89
Z
451 {
452 /* a block is a loop that happens once */
94bf0465 453 (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
eae48c89
Z
454 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
455 op_free((ps[(3) - (8)].val.opval));
456 if ((ps[(2) - (8)].val.opval))
457 op_free((ps[(2) - (8)].val.opval));
458 TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
459 TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
460 if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
461 PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
462 ;}
0d863452
RH
463 break;
464
8e720305
Z
465 case 47:
466#line 494 "perly.y"
eae48c89
Z
467 {
468 PL_parser->expect = XSTATE;
469 (yyval.opval) = (ps[(1) - (2)].val.opval);
470 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
471 ;}
0d863452
RH
472 break;
473
8e720305
Z
474 case 48:
475#line 500 "perly.y"
eae48c89
Z
476 {
477 PL_parser->expect = XSTATE;
478 (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
479 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
480 PL_parser->copline = NOLINE;
481 ;}
0de566d7
DM
482 break;
483
8e720305
Z
484 case 49:
485#line 510 "perly.y"
eae48c89 486 { (yyval.opval) = (OP*)NULL; ;}
0de566d7
DM
487 break;
488
8e720305
Z
489 case 50:
490#line 512 "perly.y"
eae48c89 491 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
492 break;
493
8e720305
Z
494 case 51:
495#line 514 "perly.y"
eae48c89
Z
496 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
497 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
f05e27e5 498 ;}
0de566d7
DM
499 break;
500
8e720305
Z
501 case 52:
502#line 518 "perly.y"
eae48c89
Z
503 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
504 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
f05e27e5 505 ;}
0de566d7
DM
506 break;
507
8e720305
Z
508 case 53:
509#line 522 "perly.y"
eae48c89
Z
510 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
511 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
f05e27e5 512 ;}
0de566d7
DM
513 break;
514
8e720305
Z
515 case 54:
516#line 526 "perly.y"
eae48c89
Z
517 { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
518 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
f05e27e5 519 ;}
0de566d7
DM
520 break;
521
8e720305
Z
522 case 55:
523#line 530 "perly.y"
94bf0465 524 { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
eae48c89 525 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
94bf0465 526 PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
eae48c89 527 ;}
0de566d7
DM
528 break;
529
8e720305
Z
530 case 56:
531#line 535 "perly.y"
3ad73efd 532 { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
0de566d7
DM
533 break;
534
8e720305
Z
535 case 57:
536#line 540 "perly.y"
eae48c89 537 { (yyval.opval) = (OP*)NULL; ;}
0d863452
RH
538 break;
539
8e720305
Z
540 case 58:
541#line 542 "perly.y"
3ad73efd
Z
542 {
543 ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
544 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
eae48c89
Z
545 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
546 ;}
547 break;
548
8e720305
Z
549 case 59:
550#line 548 "perly.y"
eae48c89 551 { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
3ad73efd
Z
552 (yyval.opval) = newCONDOP(0,
553 newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
554 op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
555 PL_hints |= HINT_BLOCK_SCOPE;
eae48c89
Z
556 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
557 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
558 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
559 ;}
560 break;
561
8e720305
Z
562 case 60:
563#line 561 "perly.y"
eae48c89
Z
564 { (yyval.opval) = (OP*)NULL; ;}
565 break;
566
8e720305
Z
567 case 61:
568#line 563 "perly.y"
3ad73efd
Z
569 {
570 (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
eae48c89
Z
571 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
572 ;}
573 break;
574
8e720305
Z
575 case 62:
576#line 571 "perly.y"
9a9798c2 577 { (yyval.ival) = (PL_min_intro_pending &&
a034e688
DM
578 PL_max_intro_pending >= PL_min_intro_pending);
579 intro_my(); ;}
0de566d7
DM
580 break;
581
8e720305
Z
582 case 63:
583#line 577 "perly.y"
bcabcc50 584 { (yyval.opval) = (OP*)NULL; ;}
0de566d7
DM
585 break;
586
8e720305
Z
587 case 65:
588#line 583 "perly.y"
f05e27e5
DM
589 { YYSTYPE tmplval;
590 (void)scan_num("1", &tmplval);
591 (yyval.opval) = tmplval.opval; ;}
0de566d7
DM
592 break;
593
8e720305
Z
594 case 67:
595#line 591 "perly.y"
9eb5c532 596 { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
f20dcd76
VP
597 break;
598
8e720305
Z
599 case 68:
600#line 596 "perly.y"
4098b6bb
JV
601 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
602 break;
603
8e720305
Z
604 case 69:
605#line 600 "perly.y"
4e4da3ac
Z
606 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
607 break;
608
8e720305
Z
609 case 70:
610#line 604 "perly.y"
9eb5c532
Z
611 { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
612 break;
613
8e720305
Z
614 case 71:
615#line 607 "perly.y"
f20dcd76
VP
616 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
617 break;
618
8e720305
Z
619 case 72:
620#line 608 "perly.y"
bcabcc50 621 { (yyval.opval) = (OP*)NULL; ;}
0de566d7
DM
622 break;
623
8e720305
Z
624 case 73:
625#line 612 "perly.y"
2af555bf 626 { (yyval.ival) = start_subparse(FALSE, 0);
a8ff2fa6 627 SAVEFREESV(PL_compcv); ;}
0de566d7
DM
628 break;
629
8e720305
Z
630 case 74:
631#line 618 "perly.y"
2af555bf 632 { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
a8ff2fa6 633 SAVEFREESV(PL_compcv); ;}
500bedb6
DM
634 break;
635
8e720305
Z
636 case 75:
637#line 623 "perly.y"
2af555bf
DM
638 { (yyval.ival) = start_subparse(TRUE, 0);
639 SAVEFREESV(PL_compcv); ;}
640 break;
641
8e720305
Z
642 case 76:
643#line 628 "perly.y"
1654d593 644 { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv);
0de566d7 645 if (strEQ(name, "BEGIN") || strEQ(name, "END")
3c10abe3
AG
646 || strEQ(name, "INIT") || strEQ(name, "CHECK")
647 || strEQ(name, "UNITCHECK"))
0de566d7 648 CvSPECIAL_on(PL_compcv);
1654d593 649 (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
650 break;
651
8e720305
Z
652 case 77:
653#line 638 "perly.y"
bcabcc50 654 { (yyval.opval) = (OP*)NULL; ;}
0de566d7
DM
655 break;
656
8e720305
Z
657 case 79:
658#line 644 "perly.y"
bcabcc50 659 { (yyval.opval) = (OP*)NULL; ;}
0de566d7
DM
660 break;
661
8e720305
Z
662 case 80:
663#line 646 "perly.y"
1654d593
DM
664 { (yyval.opval) = (ps[(2) - (2)].val.opval);
665 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
f05e27e5 666 ;}
0de566d7
DM
667 break;
668
8e720305
Z
669 case 81:
670#line 650 "perly.y"
f05e27e5
DM
671 { (yyval.opval) = IF_MAD(
672 newOP(OP_NULL, 0),
bcabcc50 673 (OP*)NULL
f05e27e5 674 );
1654d593 675 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
f05e27e5 676 ;}
0de566d7
DM
677 break;
678
8e720305
Z
679 case 82:
680#line 660 "perly.y"
1654d593
DM
681 { (yyval.opval) = (ps[(2) - (2)].val.opval);
682 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
f05e27e5 683 ;}
0de566d7
DM
684 break;
685
8e720305
Z
686 case 83:
687#line 664 "perly.y"
f05e27e5
DM
688 { (yyval.opval) = IF_MAD(
689 newOP(OP_NULL, 0),
bcabcc50 690 (OP*)NULL
f05e27e5 691 );
1654d593 692 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
f05e27e5 693 ;}
0de566d7
DM
694 break;
695
8e720305
Z
696 case 84:
697#line 673 "perly.y"
1654d593 698 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
699 break;
700
8e720305
Z
701 case 85:
702#line 674 "perly.y"
f05e27e5
DM
703 { (yyval.opval) = IF_MAD(
704 newOP(OP_NULL,0),
bcabcc50 705 (OP*)NULL
f05e27e5 706 );
53a7735b 707 PL_parser->expect = XSTATE;
1654d593 708 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
f05e27e5 709 ;}
0de566d7
DM
710 break;
711
8e720305
Z
712 case 86:
713#line 685 "perly.y"
1654d593
DM
714 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
715 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 716 ;}
0de566d7
DM
717 break;
718
8e720305
Z
719 case 87:
720#line 689 "perly.y"
1654d593
DM
721 { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
722 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 723 ;}
0de566d7
DM
724 break;
725
8e720305
Z
726 case 88:
727#line 693 "perly.y"
1654d593
DM
728 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
729 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 730 ;}
0de566d7
DM
731 break;
732
8e720305
Z
733 case 90:
734#line 701 "perly.y"
f05e27e5
DM
735 {
736#ifdef MAD
737 OP* op = newNULLLIST();
1654d593 738 token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
2fcb4757 739 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
f05e27e5 740#else
1654d593 741 (yyval.opval) = (ps[(1) - (2)].val.opval);
f05e27e5
DM
742#endif
743 ;}
0de566d7
DM
744 break;
745
8e720305
Z
746 case 91:
747#line 711 "perly.y"
f05e27e5 748 {
1654d593 749 OP* term = (ps[(3) - (3)].val.opval);
f05e27e5 750 DO_MAD(
29522234 751 term = newUNOP(OP_NULL, 0, term);
1654d593 752 token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
f05e27e5 753 )
2fcb4757 754 (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
f05e27e5 755 ;}
0de566d7
DM
756 break;
757
8e720305
Z
758 case 93:
759#line 724 "perly.y"
1654d593 760 { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
2fcb4757 761 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
1654d593 762 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 763 ;}
0de566d7
DM
764 break;
765
8e720305
Z
766 case 94:
767#line 729 "perly.y"
1654d593 768 { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
2fcb4757 769 op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
1654d593
DM
770 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
771 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
772 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
f05e27e5 773 ;}
0de566d7
DM
774 break;
775
8e720305
Z
776 case 95:
777#line 736 "perly.y"
9a9798c2 778 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
2fcb4757
Z
779 op_append_elem(OP_LIST,
780 op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
1654d593
DM
781 newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
782 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
783 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
784 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
f05e27e5 785 ;}
0de566d7
DM
786 break;
787
8e720305
Z
788 case 96:
789#line 745 "perly.y"
9a9798c2 790 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
2fcb4757 791 op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
1654d593
DM
792 newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
793 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
f05e27e5 794 ;}
0de566d7
DM
795 break;
796
8e720305
Z
797 case 97:
798#line 751 "perly.y"
f05e27e5 799 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
2fcb4757
Z
800 op_append_elem(OP_LIST,
801 op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
1654d593 802 newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
f05e27e5 803 ;}
0de566d7
DM
804 break;
805
8e720305
Z
806 case 98:
807#line 757 "perly.y"
f05e27e5 808 { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
2fcb4757
Z
809 op_append_elem(OP_LIST,
810 op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
1654d593
DM
811 newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
812 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
813 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
f05e27e5 814 ;}
0de566d7
DM
815 break;
816
8e720305
Z
817 case 99:
818#line 765 "perly.y"
1654d593
DM
819 { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
820 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 821 ;}
0de566d7
DM
822 break;
823
8e720305
Z
824 case 100:
825#line 769 "perly.y"
1654d593
DM
826 { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
827 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
828 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
829 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 830 ;}
0de566d7
DM
831 break;
832
8e720305
Z
833 case 101:
834#line 775 "perly.y"
5a5094bd 835 { SvREFCNT_inc_simple_void(PL_compcv);
bcabcc50 836 (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
0de566d7
DM
837 break;
838
8e720305
Z
839 case 102:
840#line 778 "perly.y"
f05e27e5 841 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
2fcb4757
Z
842 op_append_elem(OP_LIST,
843 op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
f05e27e5 844 ;}
0de566d7
DM
845 break;
846
8e720305
Z
847 case 105:
848#line 793 "perly.y"
1654d593 849 { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
53a7735b 850 PL_parser->expect = XOPERATOR;
1654d593
DM
851 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
852 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
853 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
f05e27e5 854 ;}
0de566d7
DM
855 break;
856
8e720305
Z
857 case 106:
858#line 800 "perly.y"
1654d593
DM
859 { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
860 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
861 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
f05e27e5 862 ;}
0de566d7
DM
863 break;
864
8e720305
Z
865 case 107:
866#line 805 "perly.y"
f05e27e5 867 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1654d593
DM
868 ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
869 scalar((ps[(4) - (5)].val.opval)));
870 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
871 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
872 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
f05e27e5 873 ;}
0de566d7
DM
874 break;
875
8e720305
Z
876 case 108:
877#line 813 "perly.y"
f05e27e5 878 { (yyval.opval) = newBINOP(OP_AELEM, 0,
1654d593
DM
879 ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
880 scalar((ps[(3) - (4)].val.opval)));
881 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
882 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
f05e27e5 883 ;}
0de566d7
DM
884 break;
885
8e720305
Z
886 case 109:
887#line 820 "perly.y"
1654d593 888 { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
53a7735b 889 PL_parser->expect = XOPERATOR;
1654d593
DM
890 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
891 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
892 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
f05e27e5 893 ;}
0de566d7
DM
894 break;
895
8e720305
Z
896 case 110:
897#line 827 "perly.y"
f05e27e5 898 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1654d593
DM
899 ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
900 jmaybe((ps[(4) - (6)].val.opval)));
53a7735b 901 PL_parser->expect = XOPERATOR;
1654d593
DM
902 TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
903 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
904 TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
905 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
f05e27e5 906 ;}
0de566d7
DM
907 break;
908
8e720305
Z
909 case 111:
910#line 837 "perly.y"
f05e27e5 911 { (yyval.opval) = newBINOP(OP_HELEM, 0,
1654d593
DM
912 ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
913 jmaybe((ps[(3) - (5)].val.opval)));
53a7735b 914 PL_parser->expect = XOPERATOR;
1654d593
DM
915 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
916 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
917 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
f05e27e5 918 ;}
0de566d7
DM
919 break;
920
8e720305
Z
921 case 112:
922#line 846 "perly.y"
9a9798c2 923 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593
DM
924 newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
925 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
926 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
927 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 928 ;}
0de566d7
DM
929 break;
930
8e720305
Z
931 case 113:
932#line 853 "perly.y"
9a9798c2 933 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
2fcb4757 934 op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
1654d593
DM
935 newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
936 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
937 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
938 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
f05e27e5 939 ;}
0de566d7
DM
940 break;
941
8e720305
Z
942 case 114:
943#line 862 "perly.y"
f05e27e5 944 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
2fcb4757 945 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
1654d593
DM
946 newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
947 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
948 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 949 ;}
0de566d7
DM
950 break;
951
8e720305
Z
952 case 115:
953#line 869 "perly.y"
f05e27e5 954 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593
DM
955 newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
956 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
957 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 958 ;}
0de566d7
DM
959 break;
960
8e720305
Z
961 case 116:
962#line 875 "perly.y"
1654d593
DM
963 { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
964 TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
965 TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
966 TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
967 TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
f05e27e5 968 ;}
0de566d7
DM
969 break;
970
8e720305
Z
971 case 117:
972#line 882 "perly.y"
ea25a9b2
Z
973 { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
974 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
975 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
976 ;}
977 break;
978
8e720305
Z
979 case 118:
980#line 887 "perly.y"
bcabcc50 981 { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
1654d593
DM
982 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
983 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
984 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
985 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
f05e27e5 986 ;}
0de566d7
DM
987 break;
988
8e720305
Z
989 case 119:
990#line 897 "perly.y"
9eb5c532 991 { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
1654d593 992 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 993 ;}
0de566d7
DM
994 break;
995
8e720305
Z
996 case 120:
997#line 901 "perly.y"
9eb5c532 998 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1654d593 999 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1000 ;}
0de566d7
DM
1001 break;
1002
8e720305
Z
1003 case 121:
1004#line 905 "perly.y"
9eb5c532
Z
1005 { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
1006 scalar((ps[(1) - (3)].val.opval));
1007 (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
1654d593 1008 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1009 ;}
0de566d7
DM
1010 break;
1011
78cdf107 1012 case 122:
8e720305 1013#line 911 "perly.y"
5f211341
Z
1014 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1015 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1016 ;}
1017 break;
1018
78cdf107 1019 case 123:
8e720305 1020#line 915 "perly.y"
1654d593
DM
1021 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1022 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1023 ;}
0de566d7
DM
1024 break;
1025
78cdf107 1026 case 124:
8e720305 1027#line 919 "perly.y"
1654d593
DM
1028 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1029 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1030 ;}
0de566d7
DM
1031 break;
1032
78cdf107 1033 case 125:
8e720305 1034#line 923 "perly.y"
f20dcd76
VP
1035 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1036 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1037 ;}
1038 break;
1039
78cdf107 1040 case 126:
8e720305 1041#line 927 "perly.y"
4098b6bb
JV
1042 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1043 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1044 ;}
1045 break;
1046
78cdf107 1047 case 127:
8e720305
Z
1048#line 931 "perly.y"
1049 { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
1050 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
1051 ;}
1052 break;
1053
1054 case 128:
1055#line 935 "perly.y"
f05e27e5 1056 {
1654d593 1057 (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
035e2bcc 1058 DO_MAD({
f05e27e5
DM
1059 UNOP *op;
1060 op = (UNOP*)(yyval.opval);
1061 op = (UNOP*)op->op_first; /* get to flop */
1062 op = (UNOP*)op->op_first; /* get to flip */
1063 op = (UNOP*)op->op_first; /* get to range */
1654d593 1064 token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
035e2bcc 1065 })
f05e27e5 1066 ;}
0de566d7
DM
1067 break;
1068
8e720305
Z
1069 case 129:
1070#line 947 "perly.y"
1654d593
DM
1071 { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1072 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1073 ;}
0de566d7
DM
1074 break;
1075
8e720305
Z
1076 case 130:
1077#line 951 "perly.y"
1654d593
DM
1078 { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1079 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1080 ;}
0de566d7
DM
1081 break;
1082
8e720305
Z
1083 case 131:
1084#line 955 "perly.y"
1654d593
DM
1085 { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1086 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1087 ;}
0de566d7
DM
1088 break;
1089
8e720305
Z
1090 case 132:
1091#line 959 "perly.y"
1654d593
DM
1092 { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
1093 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
f05e27e5
DM
1094 ((yyval.opval)->op_type == OP_NOT
1095 ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
1096 '~');
1097 ;}
500bedb6
DM
1098 break;
1099
8e720305
Z
1100 case 133:
1101#line 969 "perly.y"
1654d593
DM
1102 { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
1103 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1104 ;}
0de566d7
DM
1105 break;
1106
8e720305
Z
1107 case 134:
1108#line 973 "perly.y"
f05e27e5 1109 { (yyval.opval) = IF_MAD(
1654d593
DM
1110 newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
1111 (ps[(2) - (2)].val.opval)
f05e27e5 1112 );
1654d593 1113 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
f05e27e5 1114 ;}
0de566d7
DM
1115 break;
1116
8e720305
Z
1117 case 135:
1118#line 980 "perly.y"
1654d593
DM
1119 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1120 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1121 ;}
0de566d7
DM
1122 break;
1123
8e720305
Z
1124 case 136:
1125#line 984 "perly.y"
1654d593
DM
1126 { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
1127 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1128 ;}
0de566d7
DM
1129 break;
1130
8e720305
Z
1131 case 137:
1132#line 988 "perly.y"
f05e27e5 1133 { (yyval.opval) = newUNOP(OP_POSTINC, 0,
3ad73efd 1134 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
1654d593 1135 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1136 ;}
0de566d7
DM
1137 break;
1138
8e720305
Z
1139 case 138:
1140#line 993 "perly.y"
f05e27e5 1141 { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
3ad73efd 1142 op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
1654d593 1143 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1144 ;}
0de566d7
DM
1145 break;
1146
8e720305
Z
1147 case 139:
1148#line 998 "perly.y"
f05e27e5 1149 { (yyval.opval) = newUNOP(OP_PREINC, 0,
3ad73efd 1150 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
1654d593 1151 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1152 ;}
0de566d7
DM
1153 break;
1154
8e720305
Z
1155 case 140:
1156#line 1003 "perly.y"
f05e27e5 1157 { (yyval.opval) = newUNOP(OP_PREDEC, 0,
3ad73efd 1158 op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
1654d593 1159 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1160 ;}
0de566d7
DM
1161 break;
1162
8e720305
Z
1163 case 141:
1164#line 1012 "perly.y"
1654d593
DM
1165 { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
1166 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
1167 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
f05e27e5 1168 ;}
0de566d7
DM
1169 break;
1170
8e720305
Z
1171 case 142:
1172#line 1017 "perly.y"
bcabcc50 1173 { (yyval.opval) = newANONLIST((OP*)NULL);
1654d593
DM
1174 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
1175 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
f05e27e5 1176 ;}
0de566d7
DM
1177 break;
1178
8e720305
Z
1179 case 143:
1180#line 1022 "perly.y"
1654d593
DM
1181 { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
1182 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
1183 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
1184 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
f05e27e5 1185 ;}
0de566d7
DM
1186 break;
1187
8e720305
Z
1188 case 144:
1189#line 1028 "perly.y"
bcabcc50 1190 { (yyval.opval) = newANONHASH((OP*)NULL);
1654d593
DM
1191 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
1192 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
1193 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
f05e27e5 1194 ;}
9a9798c2
YST
1195 break;
1196
8e720305
Z
1197 case 145:
1198#line 1034 "perly.y"
5a5094bd 1199 { SvREFCNT_inc_simple_void(PL_compcv);
1654d593
DM
1200 (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1201 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1202 OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
1203 OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
f05e27e5 1204 ;}
9a9798c2
YST
1205 break;
1206
8e720305
Z
1207 case 146:
1208#line 1045 "perly.y"
1654d593
DM
1209 { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
1210 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5
DM
1211 ;}
1212 break;
1213
8e720305
Z
1214 case 147:
1215#line 1049 "perly.y"
3ad73efd 1216 { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
1654d593 1217 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
f05e27e5
DM
1218 ;}
1219 break;
1220
8e720305
Z
1221 case 148:
1222#line 1053 "perly.y"
9a9798c2 1223 { (yyval.opval) = newUNOP(OP_ENTERSUB,
0de566d7 1224 OPf_SPECIAL|OPf_STACKED,
2fcb4757 1225 op_prepend_elem(OP_LIST,
0de566d7
DM
1226 scalar(newCVREF(
1227 (OPpENTERSUB_AMPER<<8),
1654d593 1228 scalar((ps[(2) - (4)].val.opval))
bcabcc50 1229 )),(OP*)NULL)); dep();
1654d593
DM
1230 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1231 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1232 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 1233 ;}
0de566d7
DM
1234 break;
1235
8e720305
Z
1236 case 149:
1237#line 1065 "perly.y"
9a9798c2 1238 { (yyval.opval) = newUNOP(OP_ENTERSUB,
0de566d7 1239 OPf_SPECIAL|OPf_STACKED,
2fcb4757 1240 op_append_elem(OP_LIST,
1654d593 1241 (ps[(4) - (5)].val.opval),
0de566d7
DM
1242 scalar(newCVREF(
1243 (OPpENTERSUB_AMPER<<8),
1654d593 1244 scalar((ps[(2) - (5)].val.opval))
f05e27e5 1245 )))); dep();
1654d593
DM
1246 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1247 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1248 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
f05e27e5 1249 ;}
0de566d7
DM
1250 break;
1251
8e720305
Z
1252 case 150:
1253#line 1078 "perly.y"
9a9798c2 1254 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2fcb4757 1255 op_prepend_elem(OP_LIST,
bcabcc50 1256 scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep();
1654d593
DM
1257 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1258 TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
1259 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 1260 ;}
0de566d7
DM
1261 break;
1262
8e720305
Z
1263 case 151:
1264#line 1086 "perly.y"
9a9798c2 1265 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2fcb4757 1266 op_prepend_elem(OP_LIST,
1654d593
DM
1267 (ps[(4) - (5)].val.opval),
1268 scalar(newCVREF(0,scalar((ps[(2) - (5)].val.opval)))))); dep();
1269 TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
1270 TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
1271 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
f05e27e5 1272 ;}
0de566d7
DM
1273 break;
1274
8e720305
Z
1275 case 156:
1276#line 1102 "perly.y"
1654d593
DM
1277 { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
1278 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
1279 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
f05e27e5 1280 ;}
0de566d7
DM
1281 break;
1282
8e720305
Z
1283 case 157:
1284#line 1107 "perly.y"
3ad73efd 1285 { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
1654d593 1286 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1287 ;}
0de566d7
DM
1288 break;
1289
8e720305
Z
1290 case 158:
1291#line 1111 "perly.y"
1654d593 1292 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
1293 break;
1294
8e720305
Z
1295 case 159:
1296#line 1113 "perly.y"
1654d593 1297 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
dde83331 1298 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
f05e27e5 1299 ;}
0de566d7
DM
1300 break;
1301
8e720305
Z
1302 case 160:
1303#line 1117 "perly.y"
1654d593
DM
1304 { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
1305 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1306 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 1307 ;}
0de566d7
DM
1308 break;
1309
8e720305
Z
1310 case 161:
1311#line 1122 "perly.y"
ea25a9b2
Z
1312 { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;}
1313 break;
1314
8e720305
Z
1315 case 162:
1316#line 1124 "perly.y"
f05e27e5 1317 { (yyval.opval) = sawparens(newNULLLIST());
1654d593
DM
1318 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1319 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
f05e27e5 1320 ;}
0de566d7
DM
1321 break;
1322
78cdf107 1323 case 163:
8e720305 1324#line 1129 "perly.y"
5f211341
Z
1325 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1326 break;
1327
78cdf107 1328 case 164:
8e720305 1329#line 1131 "perly.y"
5f211341
Z
1330 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1331 break;
1332
78cdf107 1333 case 165:
8e720305 1334#line 1133 "perly.y"
1654d593 1335 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
1336 break;
1337
78cdf107 1338 case 166:
8e720305
Z
1339#line 1135 "perly.y"
1340 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
1341 break;
1342
78cdf107 1343 case 167:
8e720305
Z
1344#line 1137 "perly.y"
1345 { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
f20dcd76
VP
1346 break;
1347
78cdf107 1348 case 168:
8e720305
Z
1349#line 1139 "perly.y"
1350 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1351 break;
1352
1353 case 169:
1354#line 1141 "perly.y"
2fcb4757 1355 { (yyval.opval) = op_prepend_elem(OP_ASLICE,
f05e27e5
DM
1356 newOP(OP_PUSHMARK, 0),
1357 newLISTOP(OP_ASLICE, 0,
1654d593
DM
1358 list((ps[(3) - (4)].val.opval)),
1359 ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
1360 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
1361 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
f05e27e5 1362 ;}
0de566d7
DM
1363 break;
1364
8e720305
Z
1365 case 170:
1366#line 1150 "perly.y"
2fcb4757 1367 { (yyval.opval) = op_prepend_elem(OP_HSLICE,
f05e27e5
DM
1368 newOP(OP_PUSHMARK, 0),
1369 newLISTOP(OP_HSLICE, 0,
1654d593
DM
1370 list((ps[(3) - (5)].val.opval)),
1371 ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
53a7735b 1372 PL_parser->expect = XOPERATOR;
1654d593
DM
1373 TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
1374 TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
1375 TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
f05e27e5 1376 ;}
0de566d7
DM
1377 break;
1378
8e720305
Z
1379 case 171:
1380#line 1161 "perly.y"
1654d593 1381 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
1382 break;
1383
8e720305
Z
1384 case 172:
1385#line 1163 "perly.y"
1654d593 1386 { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
0de566d7
DM
1387 break;
1388
8e720305
Z
1389 case 173:
1390#line 1165 "perly.y"
1654d593
DM
1391 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
1392 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1393 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 1394 ;}
0de566d7
DM
1395 break;
1396
8e720305
Z
1397 case 174:
1398#line 1170 "perly.y"
f05e27e5
DM
1399 {
1400 (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
2fcb4757 1401 op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
035e2bcc 1402 DO_MAD({
f05e27e5
DM
1403 OP* op = (yyval.opval);
1404 if (op->op_type == OP_CONST) { /* defeat const fold */
1405 op = (OP*)op->op_madprop->mad_val;
1406 }
1654d593
DM
1407 token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
1408 token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
035e2bcc 1409 })
f05e27e5 1410 ;}
0de566d7
DM
1411 break;
1412
8e720305
Z
1413 case 175:
1414#line 1183 "perly.y"
f05e27e5 1415 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
2fcb4757 1416 op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
1654d593 1417 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1418 ;}
0de566d7
DM
1419 break;
1420
8e720305
Z
1421 case 176:
1422#line 1188 "perly.y"
1654d593 1423 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
f05e27e5 1424 PL_hints |= HINT_BLOCK_SCOPE;
1654d593 1425 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1426 ;}
0de566d7
DM
1427 break;
1428
8e720305
Z
1429 case 177:
1430#line 1193 "perly.y"
9eb5c532 1431 { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1654d593 1432 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1433 ;}
0de566d7
DM
1434 break;
1435
8e720305
Z
1436 case 178:
1437#line 1197 "perly.y"
9eb5c532
Z
1438 { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
1439 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1440 ;}
0de566d7
DM
1441 break;
1442
8e720305
Z
1443 case 179:
1444#line 1201 "perly.y"
9eb5c532
Z
1445 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1446 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1447 ;}
0de566d7
DM
1448 break;
1449
8e720305
Z
1450 case 180:
1451#line 1205 "perly.y"
1654d593
DM
1452 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1453 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1454 ;}
0de566d7
DM
1455 break;
1456
8e720305
Z
1457 case 181:
1458#line 1209 "perly.y"
9eb5c532
Z
1459 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
1460 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
d2fdf8fd 1461 ;}
0de566d7
DM
1462 break;
1463
8e720305
Z
1464 case 182:
1465#line 1213 "perly.y"
9eb5c532
Z
1466 { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
1467 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
d2fdf8fd 1468 ;}
0de566d7
DM
1469 break;
1470
8e720305
Z
1471 case 183:
1472#line 1217 "perly.y"
9eb5c532
Z
1473 { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
1474 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
1475 ;}
0de566d7
DM
1476 break;
1477
8e720305
Z
1478 case 184:
1479#line 1221 "perly.y"
9eb5c532
Z
1480 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
1481 break;
1482
8e720305
Z
1483 case 185:
1484#line 1223 "perly.y"
f05e27e5 1485 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
2fcb4757 1486 op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
0de566d7
DM
1487 break;
1488
8e720305
Z
1489 case 186:
1490#line 1226 "perly.y"
1654d593
DM
1491 { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
1492 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
f05e27e5 1493 ;}
0de566d7
DM
1494 break;
1495
8e720305
Z
1496 case 187:
1497#line 1230 "perly.y"
1654d593
DM
1498 { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
1499 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1500 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1501 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 1502 ;}
0de566d7
DM
1503 break;
1504
8e720305
Z
1505 case 188:
1506#line 1236 "perly.y"
f05e27e5 1507 { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
1654d593 1508 scalar((ps[(1) - (1)].val.opval))); ;}
0de566d7
DM
1509 break;
1510
8e720305
Z
1511 case 189:
1512#line 1239 "perly.y"
1654d593
DM
1513 { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
1514 ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
1515 : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
f05e27e5 1516
1654d593
DM
1517 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
1518 TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
1519 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 1520 ;}
0de566d7
DM
1521 break;
1522
8e720305
Z
1523 case 190:
1524#line 1248 "perly.y"
1654d593
DM
1525 { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
1526 TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
1527 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1528 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 1529 ;}
0de566d7
DM
1530 break;
1531
8e720305
Z
1532 case 191:
1533#line 1254 "perly.y"
1654d593
DM
1534 { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1);
1535 TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
1536 TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
f05e27e5 1537 ;}
0de566d7
DM
1538 break;
1539
8e720305
Z
1540 case 194:
1541#line 1261 "perly.y"
be25f609 1542 {
1543 (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
1544 newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
950f2ea2 1545 TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
be25f609 1546 ;}
1547 break;
1548
8e720305
Z
1549 case 196:
1550#line 1271 "perly.y"
1654d593 1551 { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
f05e27e5 1552 DO_MAD(
1654d593
DM
1553 token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
1554 append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
1555 (ps[(3) - (3)].val.opval)->op_madprop = 0;
f05e27e5
DM
1556 )
1557 ;}
0de566d7
DM
1558 break;
1559
8e720305
Z
1560 case 197:
1561#line 1279 "perly.y"
1654d593
DM
1562 { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
1563 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
f05e27e5 1564 ;}
0de566d7
DM
1565 break;
1566
8e720305
Z
1567 case 198:
1568#line 1286 "perly.y"
1654d593
DM
1569 { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
1570 TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
1571 TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
f05e27e5 1572 ;}
0de566d7
DM
1573 break;
1574
8e720305
Z
1575 case 199:
1576#line 1291 "perly.y"
f05e27e5 1577 { (yyval.opval) = sawparens(newNULLLIST());
1654d593
DM
1578 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
1579 TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
f05e27e5 1580 ;}
0de566d7
DM
1581 break;
1582
78cdf107 1583 case 200:
8e720305 1584#line 1296 "perly.y"
5f211341
Z
1585 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1586 break;
1587
78cdf107 1588 case 201:
8e720305 1589#line 1298 "perly.y"
5f211341
Z
1590 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
1591 break;
1592
78cdf107 1593 case 202:
8e720305
Z
1594#line 1300 "perly.y"
1595 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
0de566d7
DM
1596 break;
1597
78cdf107 1598 case 203:
8e720305
Z
1599#line 1305 "perly.y"
1600 { (yyval.opval) = (OP*)NULL; ;}
2af555bf
DM
1601 break;
1602
78cdf107 1603 case 204:
8e720305
Z
1604#line 1307 "perly.y"
1605 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
be25f609 1606 break;
1607
78cdf107 1608 case 205:
8e720305
Z
1609#line 1311 "perly.y"
1610 { (yyval.opval) = (OP*)NULL; ;}
f20dcd76
VP
1611 break;
1612
78cdf107 1613 case 206:
8e720305
Z
1614#line 1313 "perly.y"
1615 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
4098b6bb
JV
1616 break;
1617
78cdf107 1618 case 207:
8e720305
Z
1619#line 1317 "perly.y"
1620 { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;}
4098b6bb
JV
1621 break;
1622
78cdf107 1623 case 208:
8e720305
Z
1624#line 1319 "perly.y"
1625 { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;}
ea25a9b2
Z
1626 break;
1627
78cdf107 1628 case 209:
8e720305
Z
1629#line 1321 "perly.y"
1630 { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;}
ea25a9b2
Z
1631 break;
1632
78cdf107 1633 case 210:
8e720305
Z
1634#line 1327 "perly.y"
1635 { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
1636 break;
1637
1638 case 211:
1639#line 1331 "perly.y"
1654d593
DM
1640 { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
1641 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
f05e27e5 1642 ;}
0de566d7
DM
1643 break;
1644
8e720305
Z
1645 case 212:
1646#line 1337 "perly.y"
1654d593
DM
1647 { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
1648 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
f05e27e5 1649 ;}
0de566d7
DM
1650 break;
1651
8e720305
Z
1652 case 213:
1653#line 1343 "perly.y"
1654d593
DM
1654 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1655 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
f05e27e5 1656 ;}
0de566d7
DM
1657 break;
1658
8e720305
Z
1659 case 214:
1660#line 1349 "perly.y"
1654d593
DM
1661 { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
1662 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
f05e27e5 1663 ;}
500bedb6
DM
1664 break;
1665
8e720305
Z
1666 case 215:
1667#line 1355 "perly.y"
1654d593
DM
1668 { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
1669 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
f05e27e5 1670 ;}
a72a1c8b
RGS
1671 break;
1672
8e720305
Z
1673 case 216:
1674#line 1361 "perly.y"
1654d593
DM
1675 { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
1676 TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
f05e27e5 1677 ;}
a72a1c8b
RGS
1678 break;
1679
8e720305
Z
1680 case 217:
1681#line 1368 "perly.y"
503de470
DM
1682 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
1683 break;
1684
8e720305
Z
1685 case 218:
1686#line 1370 "perly.y"
1654d593 1687 { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
3cd0a11a
RGS
1688 break;
1689
8e720305
Z
1690 case 219:
1691#line 1372 "perly.y"
3ad73efd 1692 { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
f05e27e5
DM
1693 break;
1694
8e720305
Z
1695 case 220:
1696#line 1375 "perly.y"
1654d593 1697 { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
f05e27e5
DM
1698 break;
1699
4e4da3ac
Z
1700
1701/* Line 1267 of yacc.c. */
1702
20515881 1703 default: break;
0de566d7 1704