summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--perly.act300
-rw-r--r--perly.h2
-rw-r--r--perly.tab36
-rw-r--r--perly.y28
4 files changed, 165 insertions, 201 deletions
diff --git a/perly.act b/perly.act
index 0f375efdfc..b0579676a7 100644
--- a/perly.act
+++ b/perly.act
@@ -949,18 +949,6 @@ case 2:
break;
- case 122:
-#line 822 "perly.y"
- { (yyval.opval) = (ps[0].val.opval); }
-
- break;
-
- case 124:
-#line 828 "perly.y"
- { (yyval.opval) = (ps[0].val.opval); }
-
- break;
-
case 125:
#line 832 "perly.y"
{ (yyval.opval) = (ps[-1].val.opval); }
@@ -1043,20 +1031,14 @@ case 2:
break;
- case 128:
-#line 905 "perly.y"
- { (yyval.opval) = (ps[0].val.opval); }
-
- break;
-
case 129:
-#line 906 "perly.y"
+#line 907 "perly.y"
{ (yyval.opval) = NULL; }
break;
case 130:
-#line 912 "perly.y"
+#line 913 "perly.y"
{
if (parser->copline > (line_t)(ps[-2].val.ival))
parser->copline = (line_t)(ps[-2].val.ival);
@@ -1065,20 +1047,14 @@ case 2:
break;
- case 131:
-#line 922 "perly.y"
- { (yyval.opval) = (ps[0].val.opval); }
-
- break;
-
case 132:
-#line 923 "perly.y"
+#line 925 "perly.y"
{ (yyval.opval) = NULL; }
break;
case 133:
-#line 927 "perly.y"
+#line 930 "perly.y"
{
if (parser->copline > (line_t)(ps[-2].val.ival))
parser->copline = (line_t)(ps[-2].val.ival);
@@ -1089,25 +1065,25 @@ case 2:
break;
case 134:
-#line 938 "perly.y"
+#line 941 "perly.y"
{ (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 135:
-#line 940 "perly.y"
+#line 943 "perly.y"
{ (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 137:
-#line 946 "perly.y"
+#line 949 "perly.y"
{ (yyval.opval) = (ps[-1].val.opval); }
break;
case 138:
-#line 948 "perly.y"
+#line 951 "perly.y"
{
OP* term = (ps[0].val.opval);
(yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term);
@@ -1116,7 +1092,7 @@ case 2:
break;
case 140:
-#line 957 "perly.y"
+#line 960 "perly.y"
{ (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) );
}
@@ -1124,7 +1100,7 @@ case 2:
break;
case 141:
-#line 961 "perly.y"
+#line 964 "perly.y"
{ (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) );
}
@@ -1132,7 +1108,7 @@ case 2:
break;
case 142:
-#line 965 "perly.y"
+#line 968 "perly.y"
{ (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST,
op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)),
@@ -1142,7 +1118,7 @@ case 2:
break;
case 143:
-#line 971 "perly.y"
+#line 974 "perly.y"
{ (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, scalar((ps[-2].val.opval)),
newMETHOP(OP_METHOD, 0, (ps[0].val.opval))));
@@ -1151,7 +1127,7 @@ case 2:
break;
case 144:
-#line 976 "perly.y"
+#line 979 "perly.y"
{ (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST,
op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)),
@@ -1161,7 +1137,7 @@ case 2:
break;
case 145:
-#line 982 "perly.y"
+#line 985 "perly.y"
{ (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST,
op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)),
@@ -1171,32 +1147,32 @@ case 2:
break;
case 146:
-#line 988 "perly.y"
+#line 991 "perly.y"
{ (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
break;
case 147:
-#line 990 "perly.y"
+#line 993 "perly.y"
{ (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
break;
case 148:
-#line 992 "perly.y"
+#line 995 "perly.y"
{ (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
break;
case 149:
-#line 994 "perly.y"
+#line 997 "perly.y"
{ SvREFCNT_inc_simple_void(PL_compcv);
(yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); }
break;
case 150:
-#line 997 "perly.y"
+#line 1000 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST,
op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval)));
@@ -1205,20 +1181,20 @@ case 2:
break;
case 153:
-#line 1012 "perly.y"
+#line 1015 "perly.y"
{ (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
break;
case 154:
-#line 1014 "perly.y"
+#line 1017 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
}
break;
case 155:
-#line 1017 "perly.y"
+#line 1020 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0,
ref(newAVREF((ps[-4].val.opval)),OP_RV2AV),
scalar((ps[-1].val.opval)));
@@ -1227,7 +1203,7 @@ case 2:
break;
case 156:
-#line 1022 "perly.y"
+#line 1025 "perly.y"
{ (yyval.opval) = newBINOP(OP_AELEM, 0,
ref(newAVREF((ps[-3].val.opval)),OP_RV2AV),
scalar((ps[-1].val.opval)));
@@ -1236,14 +1212,14 @@ case 2:
break;
case 157:
-#line 1027 "perly.y"
+#line 1030 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
}
break;
case 158:
-#line 1030 "perly.y"
+#line 1033 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0,
ref(newHVREF((ps[-5].val.opval)),OP_RV2HV),
jmaybe((ps[-2].val.opval))); }
@@ -1251,7 +1227,7 @@ case 2:
break;
case 159:
-#line 1034 "perly.y"
+#line 1037 "perly.y"
{ (yyval.opval) = newBINOP(OP_HELEM, 0,
ref(newHVREF((ps[-4].val.opval)),OP_RV2HV),
jmaybe((ps[-2].val.opval))); }
@@ -1259,7 +1235,7 @@ case 2:
break;
case 160:
-#line 1038 "perly.y"
+#line 1041 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar((ps[-3].val.opval))));
if (parser->expect == XBLOCK)
@@ -1269,7 +1245,7 @@ case 2:
break;
case 161:
-#line 1044 "perly.y"
+#line 1047 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, (ps[-1].val.opval),
newCVREF(0, scalar((ps[-4].val.opval)))));
@@ -1280,7 +1256,7 @@ case 2:
break;
case 162:
-#line 1052 "perly.y"
+#line 1055 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, (ps[-1].val.opval),
newCVREF(0, scalar((ps[-3].val.opval)))));
@@ -1291,7 +1267,7 @@ case 2:
break;
case 163:
-#line 1059 "perly.y"
+#line 1062 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar((ps[-2].val.opval))));
if (parser->expect == XBLOCK)
@@ -1301,37 +1277,37 @@ case 2:
break;
case 164:
-#line 1065 "perly.y"
+#line 1068 "perly.y"
{ (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
break;
case 165:
-#line 1067 "perly.y"
+#line 1070 "perly.y"
{ (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
break;
case 166:
-#line 1069 "perly.y"
+#line 1072 "perly.y"
{ (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); }
break;
case 167:
-#line 1074 "perly.y"
+#line 1077 "perly.y"
{ (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
break;
case 168:
-#line 1076 "perly.y"
+#line 1079 "perly.y"
{ (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
break;
case 169:
-#line 1078 "perly.y"
+#line 1081 "perly.y"
{ if ((ps[-1].val.ival) != OP_REPEAT)
scalar((ps[-2].val.opval));
(yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
@@ -1340,183 +1316,183 @@ case 2:
break;
case 170:
-#line 1083 "perly.y"
+#line 1086 "perly.y"
{ (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
break;
case 171:
-#line 1085 "perly.y"
+#line 1088 "perly.y"
{ (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
break;
case 172:
-#line 1087 "perly.y"
+#line 1090 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 173:
-#line 1089 "perly.y"
+#line 1092 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 174:
-#line 1091 "perly.y"
+#line 1094 "perly.y"
{ (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
break;
case 175:
-#line 1093 "perly.y"
+#line 1096 "perly.y"
{ (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
break;
case 176:
-#line 1095 "perly.y"
+#line 1098 "perly.y"
{ (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
break;
case 177:
-#line 1097 "perly.y"
+#line 1100 "perly.y"
{ (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 178:
-#line 1099 "perly.y"
+#line 1102 "perly.y"
{ (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 179:
-#line 1101 "perly.y"
+#line 1104 "perly.y"
{ (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 180:
-#line 1103 "perly.y"
+#line 1106 "perly.y"
{ (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 181:
-#line 1107 "perly.y"
+#line 1110 "perly.y"
{ (yyval.opval) = cmpchain_finish((ps[0].val.opval)); }
break;
case 182:
-#line 1109 "perly.y"
+#line 1112 "perly.y"
{ (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
break;
case 183:
-#line 1111 "perly.y"
+#line 1114 "perly.y"
{ yyerror("syntax error"); YYERROR; }
break;
case 184:
-#line 1113 "perly.y"
+#line 1116 "perly.y"
{ yyerror("syntax error"); YYERROR; }
break;
case 185:
-#line 1117 "perly.y"
+#line 1120 "perly.y"
{ (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 186:
-#line 1119 "perly.y"
+#line 1122 "perly.y"
{ (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 187:
-#line 1123 "perly.y"
+#line 1126 "perly.y"
{ (yyval.opval) = cmpchain_finish((ps[0].val.opval)); }
break;
case 188:
-#line 1125 "perly.y"
+#line 1128 "perly.y"
{ (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
break;
case 189:
-#line 1127 "perly.y"
+#line 1130 "perly.y"
{ yyerror("syntax error"); YYERROR; }
break;
case 190:
-#line 1129 "perly.y"
+#line 1132 "perly.y"
{ yyerror("syntax error"); YYERROR; }
break;
case 191:
-#line 1133 "perly.y"
+#line 1136 "perly.y"
{ (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 192:
-#line 1135 "perly.y"
+#line 1138 "perly.y"
{ (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 193:
-#line 1140 "perly.y"
+#line 1143 "perly.y"
{ (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
break;
case 194:
-#line 1142 "perly.y"
+#line 1145 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 195:
-#line 1145 "perly.y"
+#line 1148 "perly.y"
{ (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
break;
case 196:
-#line 1147 "perly.y"
+#line 1150 "perly.y"
{ (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
break;
case 197:
-#line 1149 "perly.y"
+#line 1152 "perly.y"
{ (yyval.opval) = newUNOP(OP_POSTINC, 0,
op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
break;
case 198:
-#line 1152 "perly.y"
+#line 1155 "perly.y"
{ (yyval.opval) = newUNOP(OP_POSTDEC, 0,
op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
break;
case 199:
-#line 1155 "perly.y"
+#line 1158 "perly.y"
{ (yyval.opval) = op_convert_list(OP_JOIN, 0,
op_append_elem(
OP_LIST,
@@ -1531,149 +1507,149 @@ case 2:
break;
case 200:
-#line 1166 "perly.y"
+#line 1169 "perly.y"
{ (yyval.opval) = newUNOP(OP_PREINC, 0,
op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
break;
case 201:
-#line 1169 "perly.y"
+#line 1172 "perly.y"
{ (yyval.opval) = newUNOP(OP_PREDEC, 0,
op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
break;
case 202:
-#line 1176 "perly.y"
+#line 1179 "perly.y"
{ (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
break;
case 203:
-#line 1178 "perly.y"
+#line 1181 "perly.y"
{ (yyval.opval) = newANONLIST(NULL);}
break;
case 204:
-#line 1180 "perly.y"
+#line 1183 "perly.y"
{ (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
break;
case 205:
-#line 1182 "perly.y"
+#line 1185 "perly.y"
{ (yyval.opval) = newANONHASH(NULL); }
break;
case 206:
-#line 1184 "perly.y"
+#line 1187 "perly.y"
{ SvREFCNT_inc_simple_void(PL_compcv);
(yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
break;
case 207:
-#line 1187 "perly.y"
+#line 1190 "perly.y"
{ SvREFCNT_inc_simple_void(PL_compcv);
(yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); }
break;
case 208:
-#line 1193 "perly.y"
+#line 1196 "perly.y"
{ (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
break;
case 209:
-#line 1195 "perly.y"
+#line 1198 "perly.y"
{ (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
break;
case 214:
-#line 1203 "perly.y"
+#line 1206 "perly.y"
{ (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
break;
case 215:
-#line 1205 "perly.y"
+#line 1208 "perly.y"
{ (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
break;
case 216:
-#line 1207 "perly.y"
+#line 1210 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 217:
-#line 1209 "perly.y"
+#line 1212 "perly.y"
{ (yyval.opval) = localize((ps[0].val.opval),0); }
break;
case 218:
-#line 1211 "perly.y"
+#line 1214 "perly.y"
{ (yyval.opval) = sawparens((ps[-1].val.opval)); }
break;
case 219:
-#line 1213 "perly.y"
+#line 1216 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 220:
-#line 1215 "perly.y"
+#line 1218 "perly.y"
{ (yyval.opval) = sawparens(newNULLLIST()); }
break;
case 221:
-#line 1217 "perly.y"
+#line 1220 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 222:
-#line 1219 "perly.y"
+#line 1222 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 223:
-#line 1221 "perly.y"
+#line 1224 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 224:
-#line 1223 "perly.y"
+#line 1226 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 225:
-#line 1225 "perly.y"
+#line 1228 "perly.y"
{ (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
break;
case 226:
-#line 1227 "perly.y"
+#line 1230 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 227:
-#line 1229 "perly.y"
+#line 1232 "perly.y"
{ (yyval.opval) = op_prepend_elem(OP_ASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_ASLICE, 0,
@@ -1687,7 +1663,7 @@ case 2:
break;
case 228:
-#line 1239 "perly.y"
+#line 1242 "perly.y"
{ (yyval.opval) = op_prepend_elem(OP_KVASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_KVASLICE, 0,
@@ -1701,7 +1677,7 @@ case 2:
break;
case 229:
-#line 1249 "perly.y"
+#line 1252 "perly.y"
{ (yyval.opval) = op_prepend_elem(OP_HSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_HSLICE, 0,
@@ -1715,7 +1691,7 @@ case 2:
break;
case 230:
-#line 1259 "perly.y"
+#line 1262 "perly.y"
{ (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_KVHSLICE, 0,
@@ -1729,26 +1705,26 @@ case 2:
break;
case 231:
-#line 1269 "perly.y"
+#line 1272 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 232:
-#line 1271 "perly.y"
+#line 1274 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
break;
case 233:
-#line 1273 "perly.y"
+#line 1276 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
}
break;
case 234:
-#line 1276 "perly.y"
+#line 1279 "perly.y"
{
(yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
@@ -1757,7 +1733,7 @@ case 2:
break;
case 235:
-#line 1281 "perly.y"
+#line 1284 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
}
@@ -1765,130 +1741,130 @@ case 2:
break;
case 236:
-#line 1285 "perly.y"
+#line 1288 "perly.y"
{ (yyval.opval) = newSVREF((ps[-3].val.opval)); }
break;
case 237:
-#line 1287 "perly.y"
+#line 1290 "perly.y"
{ (yyval.opval) = newAVREF((ps[-3].val.opval)); }
break;
case 238:
-#line 1289 "perly.y"
+#line 1292 "perly.y"
{ (yyval.opval) = newHVREF((ps[-3].val.opval)); }
break;
case 239:
-#line 1291 "perly.y"
+#line 1294 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
break;
case 240:
-#line 1294 "perly.y"
+#line 1297 "perly.y"
{ (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
break;
case 241:
-#line 1296 "perly.y"
+#line 1299 "perly.y"
{ (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
PL_hints |= HINT_BLOCK_SCOPE; }
break;
case 242:
-#line 1299 "perly.y"
+#line 1302 "perly.y"
{ (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
break;
case 243:
-#line 1301 "perly.y"
+#line 1304 "perly.y"
{ (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
break;
case 244:
-#line 1303 "perly.y"
+#line 1306 "perly.y"
{ (yyval.opval) = newOP((ps[0].val.ival), 0); }
break;
case 245:
-#line 1305 "perly.y"
+#line 1308 "perly.y"
{ (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
break;
case 246:
-#line 1307 "perly.y"
+#line 1310 "perly.y"
{ (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
break;
case 247:
-#line 1309 "perly.y"
+#line 1312 "perly.y"
{ (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
break;
case 248:
-#line 1311 "perly.y"
+#line 1314 "perly.y"
{ (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
break;
case 249:
-#line 1313 "perly.y"
+#line 1316 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
break;
case 250:
-#line 1315 "perly.y"
+#line 1318 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
break;
case 251:
-#line 1318 "perly.y"
+#line 1321 "perly.y"
{ (yyval.opval) = newOP((ps[0].val.ival), 0); }
break;
case 252:
-#line 1320 "perly.y"
+#line 1323 "perly.y"
{ (yyval.opval) = newOP((ps[-2].val.ival), 0);}
break;
case 253:
-#line 1322 "perly.y"
+#line 1325 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 254:
-#line 1324 "perly.y"
+#line 1327 "perly.y"
{ (yyval.opval) = (ps[-2].val.opval); }
break;
case 255:
-#line 1326 "perly.y"
+#line 1329 "perly.y"
{ (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
break;
case 256:
-#line 1328 "perly.y"
+#line 1331 "perly.y"
{ (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
: newOP((ps[-2].val.ival), OPf_SPECIAL); }
@@ -1896,13 +1872,13 @@ case 2:
break;
case 257:
-#line 1332 "perly.y"
+#line 1335 "perly.y"
{ (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
break;
case 258:
-#line 1334 "perly.y"
+#line 1337 "perly.y"
{
if ( (ps[0].val.opval)->op_type != OP_TRANS
&& (ps[0].val.opval)->op_type != OP_TRANSR
@@ -1917,73 +1893,61 @@ case 2:
break;
case 259:
-#line 1345 "perly.y"
+#line 1348 "perly.y"
{ (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
break;
case 263:
-#line 1354 "perly.y"
+#line 1357 "perly.y"
{ (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
break;
case 264:
-#line 1356 "perly.y"
+#line 1359 "perly.y"
{ (yyval.opval) = localize((ps[0].val.opval),1); }
break;
case 265:
-#line 1358 "perly.y"
+#line 1361 "perly.y"
{ (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
break;
case 266:
-#line 1360 "perly.y"
+#line 1363 "perly.y"
{ (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
break;
case 267:
-#line 1365 "perly.y"
+#line 1368 "perly.y"
{ (yyval.opval) = sawparens((ps[-1].val.opval)); }
break;
case 268:
-#line 1367 "perly.y"
+#line 1370 "perly.y"
{ (yyval.opval) = sawparens(newNULLLIST()); }
break;
case 269:
-#line 1370 "perly.y"
+#line 1373 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 270:
-#line 1372 "perly.y"
+#line 1375 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
case 271:
-#line 1374 "perly.y"
- { (yyval.opval) = (ps[0].val.opval); }
-
- break;
-
- case 273:
-#line 1381 "perly.y"
- { (yyval.opval) = (ps[0].val.opval); }
-
- break;
-
- case 275:
-#line 1387 "perly.y"
+#line 1377 "perly.y"
{ (yyval.opval) = (ps[0].val.opval); }
break;
@@ -2114,6 +2078,6 @@ case 2:
/* Generated from:
- * 6455352f94c7754fed7595fc369ec82073a67933c4a46ba1c07433f023b8cacd perly.y
+ * 2dfefce380093b4e965ea327b172cdeabe9d706bf879f0fea6e9388ee185bd32 perly.y
* acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl
* ex: set ro: */
diff --git a/perly.h b/perly.h
index 9e8b668142..82d673eee3 100644
--- a/perly.h
+++ b/perly.h
@@ -220,6 +220,6 @@ int yyparse (void);
/* Generated from:
- * 6455352f94c7754fed7595fc369ec82073a67933c4a46ba1c07433f023b8cacd perly.y
+ * 2dfefce380093b4e965ea327b172cdeabe9d706bf879f0fea6e9388ee185bd32 perly.y
* acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl
* ex: set ro: */
diff --git a/perly.tab b/perly.tab
index 8fb9b3ee56..874da32d91 100644
--- a/perly.tab
+++ b/perly.tab
@@ -84,22 +84,22 @@ static const yytype_uint16 yyrline[] =
626, 631, 635, 639, 640, 643, 649, 654, 660, 661,
666, 667, 672, 673, 675, 680, 682, 693, 695, 700,
702, 706, 726, 727, 729, 735, 800, 802, 808, 810,
- 814, 820, 821, 826, 827, 831, 835, 835, 905, 906,
- 911, 922, 923, 926, 937, 939, 941, 945, 947, 952,
- 956, 960, 964, 970, 975, 981, 987, 989, 991, 994,
- 993, 1004, 1005, 1009, 1013, 1016, 1021, 1026, 1029, 1033,
- 1037, 1043, 1051, 1058, 1064, 1066, 1068, 1073, 1075, 1077,
- 1082, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1098, 1100,
- 1102, 1106, 1108, 1110, 1112, 1116, 1118, 1122, 1124, 1126,
- 1128, 1132, 1134, 1139, 1141, 1144, 1146, 1148, 1151, 1154,
- 1165, 1168, 1175, 1177, 1179, 1181, 1183, 1186, 1192, 1194,
- 1198, 1199, 1200, 1201, 1202, 1204, 1206, 1208, 1210, 1212,
- 1214, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1238, 1248,
- 1258, 1268, 1270, 1272, 1275, 1280, 1284, 1286, 1288, 1290,
- 1293, 1295, 1298, 1300, 1302, 1304, 1306, 1308, 1310, 1312,
- 1314, 1317, 1319, 1321, 1323, 1325, 1327, 1331, 1334, 1333,
- 1346, 1347, 1348, 1353, 1355, 1357, 1359, 1364, 1366, 1369,
- 1371, 1373, 1379, 1380, 1385, 1386, 1391, 1392, 1398, 1403,
+ 814, 820, 821, 826, 827, 831, 835, 835, 906, 907,
+ 912, 924, 925, 929, 940, 942, 944, 948, 950, 955,
+ 959, 963, 967, 973, 978, 984, 990, 992, 994, 997,
+ 996, 1007, 1008, 1012, 1016, 1019, 1024, 1029, 1032, 1036,
+ 1040, 1046, 1054, 1061, 1067, 1069, 1071, 1076, 1078, 1080,
+ 1085, 1087, 1089, 1091, 1093, 1095, 1097, 1099, 1101, 1103,
+ 1105, 1109, 1111, 1113, 1115, 1119, 1121, 1125, 1127, 1129,
+ 1131, 1135, 1137, 1142, 1144, 1147, 1149, 1151, 1154, 1157,
+ 1168, 1171, 1178, 1180, 1182, 1184, 1186, 1189, 1195, 1197,
+ 1201, 1202, 1203, 1204, 1205, 1207, 1209, 1211, 1213, 1215,
+ 1217, 1219, 1221, 1223, 1225, 1227, 1229, 1231, 1241, 1251,
+ 1261, 1271, 1273, 1275, 1278, 1283, 1287, 1289, 1291, 1293,
+ 1296, 1298, 1301, 1303, 1305, 1307, 1309, 1311, 1313, 1315,
+ 1317, 1320, 1322, 1324, 1326, 1328, 1330, 1334, 1337, 1336,
+ 1349, 1350, 1351, 1356, 1358, 1360, 1362, 1367, 1369, 1372,
+ 1374, 1376, 1382, 1383, 1387, 1388, 1392, 1393, 1398, 1403,
1405, 1409, 1412, 1416, 1417, 1418, 1421, 1422, 1425, 1426,
1429, 1433, 1437, 1443, 1449, 1451, 1455, 1459, 1460, 1464,
1465, 1469, 1470, 1475, 1477, 1479, 1482
@@ -140,7 +140,7 @@ static const char *const yytname[] =
"mnexpr", "formname", "startsub", "startanonsub", "startformsub",
"subname", "proto", "subattrlist", "myattrlist", "sigvarname",
"sigslurpsigil", "sigslurpelem", "sigdefault", "sigscalarelem",
- "sigelem", "siglist", "siglistornull", "optsubsignature", "subsignature",
+ "sigelem", "siglist", "optsiglist", "optsubsignature", "subsignature",
"subsigguts", "$@17", "optsubbody", "subbody", "optsigsubbody",
"sigsubbody", "expr", "listexpr", "listop", "@18", "method",
"subscripted", "termbinop", "termrelop", "relopchain", "termeqop",
@@ -1248,6 +1248,6 @@ static const toketypes yy_type_tab[] =
};
/* Generated from:
- * 6455352f94c7754fed7595fc369ec82073a67933c4a46ba1c07433f023b8cacd perly.y
+ * 2dfefce380093b4e965ea327b172cdeabe9d706bf879f0fea6e9388ee185bd32 perly.y
* acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl
* ex: set ro: */
diff --git a/perly.y b/perly.y
index 8aea09b00f..3f63387952 100644
--- a/perly.y
+++ b/perly.y
@@ -98,7 +98,7 @@
%type <opval> termrelop relopchain termeqop eqopchain
%type <ival> sigslurpsigil
%type <opval> sigvarname sigdefault sigscalarelem sigslurpelem
-%type <opval> sigelem siglist siglistornull subsigguts subsignature optsubsignature
+%type <opval> sigelem siglist optsiglist subsigguts subsignature optsubsignature
%type <opval> subbody optsubbody sigsubbody optsigsubbody
%type <opval> formstmtseq formline formarg
@@ -816,16 +816,16 @@ siglist:
;
/* () or (....) */
-siglistornull
+optsiglist
: empty
| siglist
- { $$ = $siglist; }
+ ;
/* optional subroutine signature */
optsubsignature
: empty
| subsignature
- { $$ = $subsignature; }
+ ;
/* Subroutine signature */
subsignature: PERLY_PAREN_OPEN subsigguts PERLY_PAREN_CLOSE
@@ -842,9 +842,9 @@ subsigguts:
parser->sig_slurpy = 0;
parser->in_my = KEY_sigvar;
}
- siglistornull
+ optsiglist
{
- OP *sigops = $siglistornull;
+ OP *sigops = $optsiglist;
struct op_argcheck_aux *aux;
OP *check;
@@ -902,7 +902,8 @@ subsigguts:
;
/* Optional subroutine body (for named subroutine declaration) */
-optsubbody: subbody { $$ = $subbody; }
+optsubbody
+ : subbody
| PERLY_SEMICOLON { $$ = NULL; }
;
@@ -919,8 +920,10 @@ subbody: remember PERLY_BRACE_OPEN stmtseq PERLY_BRACE_CLOSE
/* optional [ Subroutine body with optional signature ] (for named
* subroutine declaration) */
-optsigsubbody: sigsubbody { $$ = $sigsubbody; }
+optsigsubbody
+ : sigsubbody
| PERLY_SEMICOLON { $$ = NULL; }
+ ;
/* Subroutine body with optional signature */
sigsubbody: remember optsubsignature PERLY_BRACE_OPEN stmtseq PERLY_BRACE_CLOSE
@@ -1376,21 +1379,18 @@ myterm : PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE
/* Basic list expressions */
optlistexpr
- : empty %prec PREC_LOW
- | listexpr %prec PREC_LOW
- { $$ = $listexpr; }
+ : empty %prec PREC_LOW
+ | listexpr %prec PREC_LOW
;
optexpr
: empty
| expr
- { $$ = $expr; }
;
optrepl
: empty
- | PERLY_SLASH expr
- { $$ = $expr; }
+ | PERLY_SLASH expr { $$ = $expr; }
;
/* A little bit of trickery to make "for my $foo (@bar)" actually be