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