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