diff options
-rw-r--r-- | perly.act | 300 | ||||
-rw-r--r-- | perly.h | 2 | ||||
-rw-r--r-- | perly.tab | 36 | ||||
-rw-r--r-- | perly.y | 28 |
4 files changed, 165 insertions, 201 deletions
@@ -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: */ @@ -220,6 +220,6 @@ int yyparse (void); /* Generated from: - * 6455352f94c7754fed7595fc369ec82073a67933c4a46ba1c07433f023b8cacd perly.y + * 2dfefce380093b4e965ea327b172cdeabe9d706bf879f0fea6e9388ee185bd32 perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ @@ -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: */ @@ -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 |