- (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));
- token_getmad((ps[(1) - (6)].val.i_tkval),(yyval.opval),'d');
+ {
+ OP* o = newSVOP(OP_ANONCODE, 0,
+ (SV*)(
+#endif
+ (ps[(2) - (7)].val.opval)->op_type == OP_CONST
+ ? 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))
+ : newMYSUB((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))
+#ifdef MAD
+ ));
+ (yyval.opval) = newOP(OP_NULL,0);
+ op_getmad(o,(yyval.opval),'&');
+ op_getmad((ps[(2) - (7)].val.opval),(yyval.opval),'n');
+ op_getmad((ps[(5) - (7)].val.opval),(yyval.opval),'s');
+ op_getmad((ps[(6) - (7)].val.opval),(yyval.opval),'a');
+ token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'d');
+ append_madprops((ps[(7) - (7)].val.opval)->op_madprop, (yyval.opval), 0);
+ (ps[(7) - (7)].val.opval)->op_madprop = 0;
+ }