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