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