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