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