diff --git a/hphp/compiler/analysis/emitter.cpp b/hphp/compiler/analysis/emitter.cpp index ecec37f45..da291d346 100644 --- a/hphp/compiler/analysis/emitter.cpp +++ b/hphp/compiler/analysis/emitter.cpp @@ -3816,7 +3816,7 @@ bool EmitterVisitor::visitImpl(ConstructPtr node) { TypedValue uninit; tvWriteUninit(&uninit); for (auto& useVar : useVars) { - pce->addProperty(useVar.first, AttrPrivate, nullptr, &uninit); + pce->addProperty(useVar.first, AttrPrivate, nullptr, nullptr, &uninit); } // The constructor. This is entirely generated; all it does is stash its @@ -5273,6 +5273,9 @@ void EmitterVisitor::emitPostponedMeths() { pi.setRef(par->isRef()); fe->appendParam(parName, pi); } + // add return type hint + fe->setReturnTypeConstraint( + StringData::GetStaticString(p.m_meth->getReturnTypeConstraint())); m_curFunc = fe; @@ -6203,6 +6206,8 @@ PreClass::Hoistable EmitterVisitor::emitClass(Emitter& e, ClassScopePtr cNode, ModifierExpressionPtr mod(cv->getModifiers()); ExpressionListPtr el(cv->getVarList()); Attr attrs = buildAttrs(mod); + StringData* typeConstraint = StringData::GetStaticString( + cv->getTypeConstraint()); int nVars = el->getCount(); for (int ii = 0; ii < nVars; ii++) { ExpressionPtr exp((*el)[ii]); @@ -6244,12 +6249,14 @@ PreClass::Hoistable EmitterVisitor::emitClass(Emitter& e, ClassScopePtr cNode, tvWriteNull(&tvVal); } bool added UNUSED = - pce->addProperty(propName, attrs, propDoc, &tvVal); + pce->addProperty(propName, attrs, typeConstraint, propDoc, &tvVal); assert(added); } } else if (ClassConstantPtr cc = dynamic_pointer_cast((*stmts)[i])) { ExpressionListPtr el(cc->getConList()); + StringData* typeConstraint = StringData::GetStaticString( + cc->getTypeConstraint()); int nCons = el->getCount(); for (int ii = 0; ii < nCons; ii++) { AssignmentExpressionPtr ae( @@ -6278,7 +6285,8 @@ PreClass::Hoistable EmitterVisitor::emitClass(Emitter& e, ClassScopePtr cNode, AnalysisResultPtr ar(new AnalysisResult()); vNode->outputPHP(cg, ar); bool added UNUSED = pce->addConstant( - constName, &tvVal, StringData::GetStaticString(os.str())); + constName, typeConstraint, &tvVal, + StringData::GetStaticString(os.str())); assert(added); } } else if (UseTraitStatementPtr useStmt = @@ -7181,7 +7189,7 @@ static Unit* emitHHBCNativeClassUnit(const HhbcExtClassInfo* builtinClasses, assert(false); } pce->addConstant( - cnsInfo->name.get(), (TypedValue*)(&val), empty_string.get()); + cnsInfo->name.get(), nullptr, (TypedValue*)(&val), empty_string.get()); } } { @@ -7200,6 +7208,7 @@ static Unit* emitHHBCNativeClassUnit(const HhbcExtClassInfo* builtinClasses, pce->addProperty( propInfo->name.get(), Attr(attr), + nullptr, propInfo->docComment ? StringData::GetStaticString(propInfo->docComment) : nullptr, &tvNull ); diff --git a/hphp/compiler/analysis/file_scope.cpp b/hphp/compiler/analysis/file_scope.cpp index 188670eb3..8781101bb 100644 --- a/hphp/compiler/analysis/file_scope.cpp +++ b/hphp/compiler/analysis/file_scope.cpp @@ -398,7 +398,7 @@ FunctionScopePtr FileScope::createPseudoMain(AnalysisResultConstPtr ar) { (new FunctionStatement(BlockScopePtr(), LocationPtr(), ModifierExpressionPtr(), false, pseudoMainName(), - ExpressionListPtr(), st, 0, "", + ExpressionListPtr(), "", st, 0, "", ExpressionListPtr())); f->setFileLevel(); FunctionScopePtr pseudoMain( diff --git a/hphp/compiler/parser/hphp.tab.cpp b/hphp/compiler/parser/hphp.tab.cpp index 21a41d9b2..d5cf43625 100644 --- a/hphp/compiler/parser/hphp.tab.cpp +++ b/hphp/compiler/parser/hphp.tab.cpp @@ -1568,68 +1568,68 @@ static const yytype_uint16 yyrline[] = 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 955, 953, 958, 960, 968, 971, 972, 976, 977, 978, 979, 980, 987, 993, 997, 997, 1003, 1004, 1008, 1009, - 1013, 1018, 1017, 1028, 1027, 1041, 1040, 1059, 1057, 1076, - 1075, 1084, 1082, 1094, 1093, 1104, 1102, 1114, 1115, 1119, - 1122, 1125, 1126, 1127, 1130, 1132, 1135, 1136, 1139, 1140, - 1143, 1144, 1148, 1149, 1154, 1155, 1158, 1159, 1163, 1164, - 1168, 1169, 1173, 1174, 1178, 1179, 1184, 1185, 1190, 1191, - 1192, 1193, 1196, 1199, 1201, 1204, 1205, 1209, 1211, 1214, - 1217, 1220, 1221, 1224, 1225, 1229, 1231, 1233, 1234, 1238, - 1240, 1242, 1245, 1248, 1251, 1254, 1258, 1265, 1267, 1270, - 1271, 1272, 1274, 1279, 1280, 1283, 1284, 1285, 1289, 1290, - 1292, 1293, 1297, 1299, 1302, 1302, 1306, 1305, 1309, 1313, - 1311, 1325, 1322, 1334, 1336, 1338, 1340, 1342, 1346, 1347, - 1348, 1351, 1357, 1360, 1366, 1369, 1374, 1376, 1381, 1386, - 1390, 1391, 1397, 1398, 1403, 1404, 1409, 1410, 1414, 1415, - 1419, 1421, 1427, 1432, 1433, 1435, 1439, 1440, 1441, 1442, - 1446, 1447, 1448, 1449, 1450, 1451, 1453, 1458, 1461, 1462, - 1466, 1467, 1470, 1471, 1474, 1475, 1478, 1479, 1483, 1484, - 1485, 1486, 1487, 1488, 1491, 1493, 1495, 1496, 1499, 1501, - 1505, 1507, 1511, 1515, 1516, 1520, 1521, 1525, 1529, 1533, - 1538, 1539, 1540, 1543, 1545, 1546, 1547, 1550, 1551, 1552, - 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, - 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, - 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, - 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1593, - 1594, 1596, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, - 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, - 1617, 1616, 1625, 1624, 1632, 1633, 1634, 1638, 1643, 1650, - 1655, 1662, 1664, 1668, 1670, 1674, 1679, 1683, 1690, 1697, - 1699, 1704, 1705, 1706, 1710, 1714, 1718, 1719, 1720, 1721, - 1725, 1731, 1736, 1745, 1746, 1749, 1752, 1755, 1756, 1759, - 1763, 1766, 1769, 1776, 1777, 1781, 1782, 1784, 1788, 1789, - 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, - 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, - 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, - 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, - 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, - 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, - 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, - 1860, 1861, 1865, 1870, 1871, 1874, 1875, 1876, 1880, 1881, - 1882, 1886, 1887, 1888, 1892, 1893, 1894, 1897, 1899, 1903, - 1904, 1905, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, - 1915, 1918, 1923, 1924, 1925, 1926, 1927, 1929, 1932, 1933, - 1937, 1940, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1957, - 1959, 1963, 1964, 1967, 1968, 1972, 1975, 1977, 1979, 1983, - 1984, 1985, 1987, 1990, 1994, 1995, 1996, 1999, 2000, 2001, - 2002, 2003, 2005, 2011, 2013, 2016, 2019, 2021, 2023, 2026, - 2028, 2032, 2034, 2037, 2041, 2048, 2050, 2053, 2054, 2059, - 2062, 2066, 2066, 2071, 2074, 2075, 2079, 2080, 2085, 2086, - 2090, 2091, 2095, 2096, 2100, 2102, 2106, 2107, 2108, 2109, - 2110, 2111, 2112, 2113, 2116, 2118, 2122, 2123, 2124, 2125, - 2126, 2128, 2130, 2132, 2136, 2137, 2138, 2142, 2145, 2148, - 2151, 2154, 2157, 2163, 2167, 2174, 2175, 2180, 2182, 2183, - 2186, 2187, 2190, 2191, 2195, 2196, 2200, 2201, 2202, 2203, - 2204, 2207, 2210, 2211, 2212, 2214, 2216, 2220, 2221, 2222, - 2224, 2225, 2226, 2230, 2232, 2235, 2237, 2238, 2239, 2240, - 2243, 2245, 2246, 2250, 2252, 2255, 2257, 2258, 2259, 2263, - 2265, 2268, 2271, 2273, 2275, 2279, 2280, 2282, 2283, 2289, - 2290, 2292, 2294, 2296, 2298, 2301, 2302, 2303, 2307, 2308, - 2309, 2310, 2311, 2312, 2313, 2317, 2318, 2322, 2331, 2336, - 2337, 2343, 2344, 2352, 2355, 2359, 2360, 2364, 2365, 2366, - 2367, 2371, 2372, 2376, 2377, 2378, 2380, 2382, 2383, 2387, - 2393, 2395, 2399, 2402, 2405, 2414, 2415, 2416, 2427, 2428, - 2429, 2432, 2435, 2436, 2439, 2444, 2445 + 1013, 1018, 1017, 1027, 1026, 1039, 1038, 1057, 1055, 1074, + 1073, 1082, 1080, 1092, 1091, 1102, 1100, 1112, 1113, 1117, + 1120, 1123, 1124, 1125, 1128, 1130, 1133, 1134, 1137, 1138, + 1141, 1142, 1146, 1147, 1152, 1153, 1156, 1157, 1161, 1162, + 1166, 1167, 1171, 1172, 1176, 1177, 1182, 1183, 1188, 1189, + 1190, 1191, 1194, 1197, 1199, 1202, 1203, 1207, 1209, 1212, + 1215, 1218, 1219, 1222, 1223, 1227, 1229, 1231, 1232, 1236, + 1238, 1240, 1243, 1246, 1249, 1252, 1256, 1263, 1265, 1268, + 1269, 1270, 1272, 1277, 1278, 1281, 1282, 1283, 1287, 1288, + 1290, 1291, 1295, 1297, 1300, 1300, 1304, 1303, 1307, 1311, + 1309, 1322, 1319, 1330, 1332, 1334, 1336, 1338, 1342, 1343, + 1344, 1347, 1353, 1356, 1362, 1365, 1370, 1372, 1377, 1382, + 1386, 1387, 1393, 1394, 1399, 1400, 1405, 1406, 1410, 1411, + 1415, 1417, 1423, 1428, 1429, 1431, 1435, 1436, 1437, 1438, + 1442, 1443, 1444, 1445, 1446, 1447, 1449, 1454, 1457, 1458, + 1462, 1463, 1466, 1467, 1470, 1471, 1474, 1475, 1479, 1480, + 1481, 1482, 1483, 1484, 1487, 1489, 1491, 1492, 1495, 1497, + 1501, 1503, 1507, 1511, 1512, 1516, 1517, 1521, 1525, 1529, + 1534, 1535, 1536, 1539, 1541, 1542, 1543, 1546, 1547, 1548, + 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, + 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, + 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, + 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1589, + 1590, 1592, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, + 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, + 1613, 1612, 1621, 1620, 1628, 1629, 1630, 1634, 1639, 1646, + 1651, 1658, 1660, 1664, 1666, 1670, 1675, 1679, 1686, 1693, + 1695, 1700, 1701, 1702, 1706, 1710, 1714, 1715, 1716, 1717, + 1721, 1727, 1732, 1741, 1742, 1745, 1748, 1751, 1752, 1755, + 1759, 1762, 1765, 1772, 1773, 1777, 1778, 1780, 1784, 1785, + 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, + 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, + 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, + 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, + 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, + 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, + 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, + 1856, 1857, 1861, 1866, 1867, 1870, 1871, 1872, 1876, 1877, + 1878, 1882, 1883, 1884, 1888, 1889, 1890, 1893, 1895, 1899, + 1900, 1901, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, + 1911, 1914, 1919, 1920, 1921, 1922, 1923, 1925, 1928, 1929, + 1933, 1936, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1953, + 1955, 1959, 1960, 1963, 1964, 1968, 1971, 1973, 1975, 1979, + 1980, 1981, 1983, 1986, 1990, 1991, 1992, 1995, 1996, 1997, + 1998, 1999, 2001, 2007, 2009, 2012, 2015, 2017, 2019, 2022, + 2024, 2028, 2030, 2033, 2037, 2044, 2046, 2049, 2050, 2055, + 2058, 2062, 2062, 2067, 2070, 2071, 2075, 2076, 2081, 2082, + 2086, 2087, 2091, 2092, 2096, 2098, 2102, 2103, 2104, 2105, + 2106, 2107, 2108, 2109, 2112, 2114, 2118, 2119, 2120, 2121, + 2122, 2124, 2126, 2128, 2132, 2133, 2134, 2138, 2141, 2144, + 2147, 2150, 2153, 2159, 2163, 2170, 2171, 2176, 2178, 2179, + 2182, 2183, 2186, 2187, 2191, 2192, 2196, 2197, 2198, 2199, + 2200, 2203, 2206, 2207, 2208, 2210, 2212, 2216, 2217, 2218, + 2220, 2221, 2222, 2226, 2228, 2231, 2233, 2234, 2235, 2236, + 2239, 2241, 2242, 2246, 2248, 2251, 2253, 2254, 2255, 2259, + 2261, 2264, 2267, 2269, 2271, 2275, 2276, 2278, 2279, 2285, + 2286, 2288, 2290, 2292, 2294, 2297, 2298, 2299, 2303, 2304, + 2305, 2306, 2307, 2308, 2309, 2313, 2314, 2318, 2327, 2332, + 2333, 2339, 2340, 2348, 2351, 2355, 2356, 2360, 2361, 2362, + 2363, 2367, 2368, 2372, 2373, 2374, 2376, 2378, 2379, 2383, + 2389, 2391, 2395, 2398, 2401, 2410, 2411, 2412, 2423, 2424, + 2425, 2428, 2431, 2432, 2435, 2440, 2441 }; #endif @@ -5991,8 +5991,7 @@ yyreduce: /* Line 1455 of yacc.c */ #line 1023 "../../../hphp/util/parser/hphp.y" - { Token t; t.reset(); - _p->onFunction((yyval),0,t,(yyvsp[(2) - (11)]),(yyvsp[(3) - (11)]),(yyvsp[(6) - (11)]),(yyvsp[(10) - (11)]),0); + { _p->onFunction((yyval),0,(yyvsp[(8) - (11)]),(yyvsp[(2) - (11)]),(yyvsp[(3) - (11)]),(yyvsp[(6) - (11)]),(yyvsp[(10) - (11)]),0); _p->popLabelInfo(); _p->popTypeScope();;} break; @@ -6000,7 +5999,7 @@ yyreduce: case 93: /* Line 1455 of yacc.c */ -#line 1028 "../../../hphp/util/parser/hphp.y" +#line 1027 "../../../hphp/util/parser/hphp.y" { (yyvsp[(4) - (4)]).setText(_p->nsDecl((yyvsp[(4) - (4)]).text())); _p->onFunctionStart((yyvsp[(4) - (4)])); _p->pushLabelInfo();;} @@ -6009,9 +6008,8 @@ yyreduce: case 94: /* Line 1455 of yacc.c */ -#line 1033 "../../../hphp/util/parser/hphp.y" - { Token t; t.reset(); - _p->onFunction((yyval),0,t,(yyvsp[(3) - (12)]),(yyvsp[(4) - (12)]),(yyvsp[(7) - (12)]),(yyvsp[(11) - (12)]),&(yyvsp[(1) - (12)])); +#line 1032 "../../../hphp/util/parser/hphp.y" + { _p->onFunction((yyval),0,(yyvsp[(9) - (12)]),(yyvsp[(3) - (12)]),(yyvsp[(4) - (12)]),(yyvsp[(7) - (12)]),(yyvsp[(11) - (12)]),&(yyvsp[(1) - (12)])); _p->popLabelInfo(); _p->popTypeScope();;} break; @@ -6019,7 +6017,7 @@ yyreduce: case 95: /* Line 1455 of yacc.c */ -#line 1041 "../../../hphp/util/parser/hphp.y" +#line 1039 "../../../hphp/util/parser/hphp.y" { (yyvsp[(2) - (2)]).setText(_p->nsDecl((yyvsp[(2) - (2)]).text())); _p->onClassStart((yyvsp[(1) - (2)]).num(),(yyvsp[(2) - (2)]));;} break; @@ -6027,7 +6025,7 @@ yyreduce: case 96: /* Line 1455 of yacc.c */ -#line 1044 "../../../hphp/util/parser/hphp.y" +#line 1042 "../../../hphp/util/parser/hphp.y" { Token stmts; if (_p->peekClass()) { xhp_collect_attributes(_p,stmts,(yyvsp[(7) - (8)])); @@ -6046,7 +6044,7 @@ yyreduce: case 97: /* Line 1455 of yacc.c */ -#line 1059 "../../../hphp/util/parser/hphp.y" +#line 1057 "../../../hphp/util/parser/hphp.y" { (yyvsp[(3) - (3)]).setText(_p->nsDecl((yyvsp[(3) - (3)]).text())); _p->onClassStart((yyvsp[(2) - (3)]).num(),(yyvsp[(3) - (3)]));;} break; @@ -6054,7 +6052,7 @@ yyreduce: case 98: /* Line 1455 of yacc.c */ -#line 1062 "../../../hphp/util/parser/hphp.y" +#line 1060 "../../../hphp/util/parser/hphp.y" { Token stmts; if (_p->peekClass()) { xhp_collect_attributes(_p,stmts,(yyvsp[(8) - (9)])); @@ -6073,7 +6071,7 @@ yyreduce: case 99: /* Line 1455 of yacc.c */ -#line 1076 "../../../hphp/util/parser/hphp.y" +#line 1074 "../../../hphp/util/parser/hphp.y" { (yyvsp[(2) - (2)]).setText(_p->nsDecl((yyvsp[(2) - (2)]).text())); _p->onClassStart(T_INTERFACE,(yyvsp[(2) - (2)]));;} break; @@ -6081,7 +6079,7 @@ yyreduce: case 100: /* Line 1455 of yacc.c */ -#line 1079 "../../../hphp/util/parser/hphp.y" +#line 1077 "../../../hphp/util/parser/hphp.y" { _p->onInterface((yyval),(yyvsp[(2) - (7)]),(yyvsp[(4) - (7)]),(yyvsp[(6) - (7)]),0); _p->popClass(); _p->popTypeScope();;} @@ -6090,7 +6088,7 @@ yyreduce: case 101: /* Line 1455 of yacc.c */ -#line 1084 "../../../hphp/util/parser/hphp.y" +#line 1082 "../../../hphp/util/parser/hphp.y" { (yyvsp[(3) - (3)]).setText(_p->nsDecl((yyvsp[(3) - (3)]).text())); _p->onClassStart(T_INTERFACE,(yyvsp[(3) - (3)]));;} break; @@ -6098,7 +6096,7 @@ yyreduce: case 102: /* Line 1455 of yacc.c */ -#line 1087 "../../../hphp/util/parser/hphp.y" +#line 1085 "../../../hphp/util/parser/hphp.y" { _p->onInterface((yyval),(yyvsp[(3) - (8)]),(yyvsp[(5) - (8)]),(yyvsp[(7) - (8)]),&(yyvsp[(1) - (8)])); _p->popClass(); _p->popTypeScope();;} @@ -6107,7 +6105,7 @@ yyreduce: case 103: /* Line 1455 of yacc.c */ -#line 1094 "../../../hphp/util/parser/hphp.y" +#line 1092 "../../../hphp/util/parser/hphp.y" { (yyvsp[(2) - (2)]).setText(_p->nsDecl((yyvsp[(2) - (2)]).text())); _p->onClassStart(T_TRAIT, (yyvsp[(2) - (2)]));;} break; @@ -6115,7 +6113,7 @@ yyreduce: case 104: /* Line 1455 of yacc.c */ -#line 1096 "../../../hphp/util/parser/hphp.y" +#line 1094 "../../../hphp/util/parser/hphp.y" { Token t_ext, t_imp; t_ext.reset(); t_imp.reset(); _p->onClass((yyval),T_TRAIT,(yyvsp[(2) - (6)]),t_ext,t_imp, @@ -6127,7 +6125,7 @@ yyreduce: case 105: /* Line 1455 of yacc.c */ -#line 1104 "../../../hphp/util/parser/hphp.y" +#line 1102 "../../../hphp/util/parser/hphp.y" { (yyvsp[(3) - (3)]).setText(_p->nsDecl((yyvsp[(3) - (3)]).text())); _p->onClassStart(T_TRAIT, (yyvsp[(3) - (3)]));;} break; @@ -6135,7 +6133,7 @@ yyreduce: case 106: /* Line 1455 of yacc.c */ -#line 1106 "../../../hphp/util/parser/hphp.y" +#line 1104 "../../../hphp/util/parser/hphp.y" { Token t_ext, t_imp; t_ext.reset(); t_imp.reset(); _p->onClass((yyval),T_TRAIT,(yyvsp[(3) - (7)]),t_ext,t_imp, @@ -6147,14 +6145,14 @@ yyreduce: case 107: /* Line 1455 of yacc.c */ -#line 1114 "../../../hphp/util/parser/hphp.y" +#line 1112 "../../../hphp/util/parser/hphp.y" { _p->pushClass(false); (yyval) = (yyvsp[(1) - (1)]);;} break; case 108: /* Line 1455 of yacc.c */ -#line 1115 "../../../hphp/util/parser/hphp.y" +#line 1113 "../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpLabel(); _p->pushTypeScope(); _p->pushClass(true); (yyval) = (yyvsp[(1) - (1)]);;} break; @@ -6162,525 +6160,525 @@ yyreduce: case 109: /* Line 1455 of yacc.c */ -#line 1119 "../../../hphp/util/parser/hphp.y" +#line 1117 "../../../hphp/util/parser/hphp.y" { _p->pushClass(false); (yyval) = (yyvsp[(1) - (1)]);;} break; case 110: /* Line 1455 of yacc.c */ -#line 1122 "../../../hphp/util/parser/hphp.y" +#line 1120 "../../../hphp/util/parser/hphp.y" { _p->pushClass(false); (yyval) = (yyvsp[(1) - (1)]);;} break; case 111: /* Line 1455 of yacc.c */ -#line 1125 "../../../hphp/util/parser/hphp.y" +#line 1123 "../../../hphp/util/parser/hphp.y" { (yyval) = T_CLASS;;} break; case 112: /* Line 1455 of yacc.c */ -#line 1126 "../../../hphp/util/parser/hphp.y" +#line 1124 "../../../hphp/util/parser/hphp.y" { (yyval) = T_ABSTRACT;;} break; case 113: /* Line 1455 of yacc.c */ -#line 1127 "../../../hphp/util/parser/hphp.y" +#line 1125 "../../../hphp/util/parser/hphp.y" { (yyval) = T_FINAL;;} break; case 114: /* Line 1455 of yacc.c */ -#line 1131 "../../../hphp/util/parser/hphp.y" +#line 1129 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 115: /* Line 1455 of yacc.c */ -#line 1132 "../../../hphp/util/parser/hphp.y" +#line 1130 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 116: /* Line 1455 of yacc.c */ -#line 1135 "../../../hphp/util/parser/hphp.y" +#line 1133 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 117: /* Line 1455 of yacc.c */ -#line 1136 "../../../hphp/util/parser/hphp.y" +#line 1134 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 118: /* Line 1455 of yacc.c */ -#line 1139 "../../../hphp/util/parser/hphp.y" +#line 1137 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 119: /* Line 1455 of yacc.c */ -#line 1140 "../../../hphp/util/parser/hphp.y" +#line 1138 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 120: /* Line 1455 of yacc.c */ -#line 1143 "../../../hphp/util/parser/hphp.y" +#line 1141 "../../../hphp/util/parser/hphp.y" { _p->onInterfaceName((yyval), NULL, (yyvsp[(1) - (1)]));;} break; case 121: /* Line 1455 of yacc.c */ -#line 1145 "../../../hphp/util/parser/hphp.y" +#line 1143 "../../../hphp/util/parser/hphp.y" { _p->onInterfaceName((yyval), &(yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 122: /* Line 1455 of yacc.c */ -#line 1148 "../../../hphp/util/parser/hphp.y" +#line 1146 "../../../hphp/util/parser/hphp.y" { _p->onTraitName((yyval), NULL, (yyvsp[(1) - (1)]));;} break; case 123: /* Line 1455 of yacc.c */ -#line 1150 "../../../hphp/util/parser/hphp.y" +#line 1148 "../../../hphp/util/parser/hphp.y" { _p->onTraitName((yyval), &(yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 124: /* Line 1455 of yacc.c */ -#line 1154 "../../../hphp/util/parser/hphp.y" +#line 1152 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 125: /* Line 1455 of yacc.c */ -#line 1155 "../../../hphp/util/parser/hphp.y" +#line 1153 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 126: /* Line 1455 of yacc.c */ -#line 1158 "../../../hphp/util/parser/hphp.y" +#line 1156 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 127: /* Line 1455 of yacc.c */ -#line 1159 "../../../hphp/util/parser/hphp.y" +#line 1157 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]); (yyval) = 1;;} break; case 128: /* Line 1455 of yacc.c */ -#line 1163 "../../../hphp/util/parser/hphp.y" +#line 1161 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 129: /* Line 1455 of yacc.c */ -#line 1165 "../../../hphp/util/parser/hphp.y" +#line 1163 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (4)]);;} break; case 130: /* Line 1455 of yacc.c */ -#line 1168 "../../../hphp/util/parser/hphp.y" +#line 1166 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 131: /* Line 1455 of yacc.c */ -#line 1170 "../../../hphp/util/parser/hphp.y" +#line 1168 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (4)]);;} break; case 132: /* Line 1455 of yacc.c */ -#line 1173 "../../../hphp/util/parser/hphp.y" +#line 1171 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 133: /* Line 1455 of yacc.c */ -#line 1175 "../../../hphp/util/parser/hphp.y" +#line 1173 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (4)]);;} break; case 134: /* Line 1455 of yacc.c */ -#line 1178 "../../../hphp/util/parser/hphp.y" +#line 1176 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 135: /* Line 1455 of yacc.c */ -#line 1180 "../../../hphp/util/parser/hphp.y" +#line 1178 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (4)]);;} break; case 138: /* Line 1455 of yacc.c */ -#line 1190 "../../../hphp/util/parser/hphp.y" +#line 1188 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 139: /* Line 1455 of yacc.c */ -#line 1191 "../../../hphp/util/parser/hphp.y" +#line 1189 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (4)]);;} break; case 140: /* Line 1455 of yacc.c */ -#line 1192 "../../../hphp/util/parser/hphp.y" +#line 1190 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (4)]);;} break; case 141: /* Line 1455 of yacc.c */ -#line 1193 "../../../hphp/util/parser/hphp.y" +#line 1191 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (5)]);;} break; case 142: /* Line 1455 of yacc.c */ -#line 1198 "../../../hphp/util/parser/hphp.y" +#line 1196 "../../../hphp/util/parser/hphp.y" { _p->onCase((yyval),(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]));;} break; case 143: /* Line 1455 of yacc.c */ -#line 1200 "../../../hphp/util/parser/hphp.y" +#line 1198 "../../../hphp/util/parser/hphp.y" { _p->onCase((yyval),(yyvsp[(1) - (4)]),NULL,(yyvsp[(4) - (4)]));;} break; case 144: /* Line 1455 of yacc.c */ -#line 1201 "../../../hphp/util/parser/hphp.y" +#line 1199 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 145: /* Line 1455 of yacc.c */ -#line 1204 "../../../hphp/util/parser/hphp.y" +#line 1202 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 146: /* Line 1455 of yacc.c */ -#line 1205 "../../../hphp/util/parser/hphp.y" +#line 1203 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 147: /* Line 1455 of yacc.c */ -#line 1210 "../../../hphp/util/parser/hphp.y" +#line 1208 "../../../hphp/util/parser/hphp.y" { _p->onElseIf((yyval),(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),(yyvsp[(4) - (4)]));;} break; case 148: /* Line 1455 of yacc.c */ -#line 1211 "../../../hphp/util/parser/hphp.y" +#line 1209 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 149: /* Line 1455 of yacc.c */ -#line 1216 "../../../hphp/util/parser/hphp.y" +#line 1214 "../../../hphp/util/parser/hphp.y" { _p->onElseIf((yyval),(yyvsp[(1) - (5)]),(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]));;} break; case 150: /* Line 1455 of yacc.c */ -#line 1217 "../../../hphp/util/parser/hphp.y" +#line 1215 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 151: /* Line 1455 of yacc.c */ -#line 1220 "../../../hphp/util/parser/hphp.y" +#line 1218 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 152: /* Line 1455 of yacc.c */ -#line 1221 "../../../hphp/util/parser/hphp.y" +#line 1219 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 153: /* Line 1455 of yacc.c */ -#line 1224 "../../../hphp/util/parser/hphp.y" +#line 1222 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (3)]);;} break; case 154: /* Line 1455 of yacc.c */ -#line 1225 "../../../hphp/util/parser/hphp.y" +#line 1223 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 155: /* Line 1455 of yacc.c */ -#line 1230 "../../../hphp/util/parser/hphp.y" +#line 1228 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval) = (yyvsp[(1) - (3)]); ;} break; case 156: /* Line 1455 of yacc.c */ -#line 1232 "../../../hphp/util/parser/hphp.y" +#line 1230 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 157: /* Line 1455 of yacc.c */ -#line 1233 "../../../hphp/util/parser/hphp.y" +#line 1231 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).reset(); ;} break; case 158: /* Line 1455 of yacc.c */ -#line 1234 "../../../hphp/util/parser/hphp.y" +#line 1232 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 159: /* Line 1455 of yacc.c */ -#line 1239 "../../../hphp/util/parser/hphp.y" +#line 1237 "../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),NULL,(yyvsp[(2) - (3)]),(yyvsp[(3) - (3)]),0,NULL,&(yyvsp[(1) - (3)]));;} break; case 160: /* Line 1455 of yacc.c */ -#line 1241 "../../../hphp/util/parser/hphp.y" +#line 1239 "../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),NULL,(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]),1,NULL,&(yyvsp[(1) - (4)]));;} break; case 161: /* Line 1455 of yacc.c */ -#line 1244 "../../../hphp/util/parser/hphp.y" +#line 1242 "../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),NULL,(yyvsp[(2) - (6)]),(yyvsp[(4) - (6)]),1,&(yyvsp[(6) - (6)]),&(yyvsp[(1) - (6)]));;} break; case 162: /* Line 1455 of yacc.c */ -#line 1247 "../../../hphp/util/parser/hphp.y" +#line 1245 "../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),NULL,(yyvsp[(2) - (5)]),(yyvsp[(3) - (5)]),0,&(yyvsp[(5) - (5)]),&(yyvsp[(1) - (5)]));;} break; case 163: /* Line 1455 of yacc.c */ -#line 1250 "../../../hphp/util/parser/hphp.y" +#line 1248 "../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),&(yyvsp[(1) - (5)]),(yyvsp[(4) - (5)]),(yyvsp[(5) - (5)]),0,NULL,&(yyvsp[(3) - (5)]));;} break; case 164: /* Line 1455 of yacc.c */ -#line 1253 "../../../hphp/util/parser/hphp.y" +#line 1251 "../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),&(yyvsp[(1) - (6)]),(yyvsp[(4) - (6)]),(yyvsp[(6) - (6)]),1,NULL,&(yyvsp[(3) - (6)]));;} break; case 165: /* Line 1455 of yacc.c */ -#line 1257 "../../../hphp/util/parser/hphp.y" +#line 1255 "../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),&(yyvsp[(1) - (8)]),(yyvsp[(4) - (8)]),(yyvsp[(6) - (8)]),1,&(yyvsp[(8) - (8)]),&(yyvsp[(3) - (8)]));;} break; case 166: /* Line 1455 of yacc.c */ -#line 1261 "../../../hphp/util/parser/hphp.y" +#line 1259 "../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),&(yyvsp[(1) - (7)]),(yyvsp[(4) - (7)]),(yyvsp[(5) - (7)]),0,&(yyvsp[(7) - (7)]),&(yyvsp[(3) - (7)]));;} break; case 167: /* Line 1455 of yacc.c */ -#line 1266 "../../../hphp/util/parser/hphp.y" +#line 1264 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 168: /* Line 1455 of yacc.c */ -#line 1267 "../../../hphp/util/parser/hphp.y" +#line 1265 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 169: /* Line 1455 of yacc.c */ -#line 1270 "../../../hphp/util/parser/hphp.y" +#line 1268 "../../../hphp/util/parser/hphp.y" { _p->onCallParam((yyval),NULL,(yyvsp[(1) - (1)]),0);;} break; case 170: /* Line 1455 of yacc.c */ -#line 1271 "../../../hphp/util/parser/hphp.y" +#line 1269 "../../../hphp/util/parser/hphp.y" { _p->onCallParam((yyval),NULL,(yyvsp[(2) - (2)]),1);;} break; case 171: /* Line 1455 of yacc.c */ -#line 1273 "../../../hphp/util/parser/hphp.y" +#line 1271 "../../../hphp/util/parser/hphp.y" { _p->onCallParam((yyval),&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 172: /* Line 1455 of yacc.c */ -#line 1275 "../../../hphp/util/parser/hphp.y" +#line 1273 "../../../hphp/util/parser/hphp.y" { _p->onCallParam((yyval),&(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),1);;} break; case 173: /* Line 1455 of yacc.c */ -#line 1279 "../../../hphp/util/parser/hphp.y" +#line 1277 "../../../hphp/util/parser/hphp.y" { _p->onGlobalVar((yyval), &(yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 174: /* Line 1455 of yacc.c */ -#line 1280 "../../../hphp/util/parser/hphp.y" +#line 1278 "../../../hphp/util/parser/hphp.y" { _p->onGlobalVar((yyval), NULL, (yyvsp[(1) - (1)]));;} break; case 175: /* Line 1455 of yacc.c */ -#line 1283 "../../../hphp/util/parser/hphp.y" +#line 1281 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 176: /* Line 1455 of yacc.c */ -#line 1284 "../../../hphp/util/parser/hphp.y" +#line 1282 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]); (yyval) = 1;;} break; case 177: /* Line 1455 of yacc.c */ -#line 1285 "../../../hphp/util/parser/hphp.y" +#line 1283 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (4)]); (yyval) = 1;;} break; case 178: /* Line 1455 of yacc.c */ -#line 1289 "../../../hphp/util/parser/hphp.y" +#line 1287 "../../../hphp/util/parser/hphp.y" { _p->onStaticVariable((yyval),&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 179: /* Line 1455 of yacc.c */ -#line 1291 "../../../hphp/util/parser/hphp.y" +#line 1289 "../../../hphp/util/parser/hphp.y" { _p->onStaticVariable((yyval),&(yyvsp[(1) - (5)]),(yyvsp[(3) - (5)]),&(yyvsp[(5) - (5)]));;} break; case 180: /* Line 1455 of yacc.c */ -#line 1292 "../../../hphp/util/parser/hphp.y" +#line 1290 "../../../hphp/util/parser/hphp.y" { _p->onStaticVariable((yyval),0,(yyvsp[(1) - (1)]),0);;} break; case 181: /* Line 1455 of yacc.c */ -#line 1293 "../../../hphp/util/parser/hphp.y" +#line 1291 "../../../hphp/util/parser/hphp.y" { _p->onStaticVariable((yyval),0,(yyvsp[(1) - (3)]),&(yyvsp[(3) - (3)]));;} break; case 182: /* Line 1455 of yacc.c */ -#line 1298 "../../../hphp/util/parser/hphp.y" +#line 1296 "../../../hphp/util/parser/hphp.y" { _p->onClassStatement((yyval), (yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));;} break; case 183: /* Line 1455 of yacc.c */ -#line 1299 "../../../hphp/util/parser/hphp.y" +#line 1297 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 184: /* Line 1455 of yacc.c */ -#line 1302 "../../../hphp/util/parser/hphp.y" +#line 1300 "../../../hphp/util/parser/hphp.y" { _p->onClassVariableModifer((yyvsp[(1) - (1)]));;} break; case 185: /* Line 1455 of yacc.c */ -#line 1303 "../../../hphp/util/parser/hphp.y" +#line 1301 "../../../hphp/util/parser/hphp.y" { _p->onClassVariableStart ((yyval),&(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),NULL);;} break; @@ -6688,14 +6686,14 @@ yyreduce: case 186: /* Line 1455 of yacc.c */ -#line 1306 "../../../hphp/util/parser/hphp.y" +#line 1304 "../../../hphp/util/parser/hphp.y" { _p->onClassVariableModifer((yyvsp[(1) - (2)]));;} break; case 187: /* Line 1455 of yacc.c */ -#line 1307 "../../../hphp/util/parser/hphp.y" +#line 1305 "../../../hphp/util/parser/hphp.y" { _p->onClassVariableStart ((yyval),&(yyvsp[(1) - (5)]),(yyvsp[(4) - (5)]),&(yyvsp[(2) - (5)]));;} break; @@ -6703,7 +6701,7 @@ yyreduce: case 188: /* Line 1455 of yacc.c */ -#line 1309 "../../../hphp/util/parser/hphp.y" +#line 1307 "../../../hphp/util/parser/hphp.y" { _p->onClassVariableStart ((yyval),NULL,(yyvsp[(1) - (2)]),NULL);;} break; @@ -6711,7 +6709,7 @@ yyreduce: case 189: /* Line 1455 of yacc.c */ -#line 1313 "../../../hphp/util/parser/hphp.y" +#line 1311 "../../../hphp/util/parser/hphp.y" { _p->onMethodStart((yyvsp[(4) - (5)]), (yyvsp[(1) - (5)])); _p->pushLabelInfo();;} break; @@ -6719,9 +6717,8 @@ yyreduce: case 190: /* Line 1455 of yacc.c */ -#line 1318 "../../../hphp/util/parser/hphp.y" - { Token t; t.reset(); - _p->onMethod((yyval),(yyvsp[(1) - (10)]),t,(yyvsp[(3) - (10)]),(yyvsp[(4) - (10)]),(yyvsp[(7) - (10)]),(yyvsp[(10) - (10)]),0); +#line 1316 "../../../hphp/util/parser/hphp.y" + { _p->onMethod((yyval),(yyvsp[(1) - (10)]),(yyvsp[(9) - (10)]),(yyvsp[(3) - (10)]),(yyvsp[(4) - (10)]),(yyvsp[(7) - (10)]),(yyvsp[(10) - (10)]),0); _p->popLabelInfo(); _p->popTypeScope();;} break; @@ -6729,7 +6726,7 @@ yyreduce: case 191: /* Line 1455 of yacc.c */ -#line 1325 "../../../hphp/util/parser/hphp.y" +#line 1322 "../../../hphp/util/parser/hphp.y" { _p->onMethodStart((yyvsp[(5) - (6)]), (yyvsp[(2) - (6)])); _p->pushLabelInfo();;} break; @@ -6737,9 +6734,8 @@ yyreduce: case 192: /* Line 1455 of yacc.c */ -#line 1330 "../../../hphp/util/parser/hphp.y" - { Token t; t.reset(); - _p->onMethod((yyval),(yyvsp[(2) - (11)]),t,(yyvsp[(4) - (11)]),(yyvsp[(5) - (11)]),(yyvsp[(8) - (11)]),(yyvsp[(11) - (11)]),&(yyvsp[(1) - (11)])); +#line 1327 "../../../hphp/util/parser/hphp.y" + { _p->onMethod((yyval),(yyvsp[(2) - (11)]),(yyvsp[(10) - (11)]),(yyvsp[(4) - (11)]),(yyvsp[(5) - (11)]),(yyvsp[(8) - (11)]),(yyvsp[(11) - (11)]),&(yyvsp[(1) - (11)])); _p->popLabelInfo(); _p->popTypeScope();;} break; @@ -6747,28 +6743,28 @@ yyreduce: case 193: /* Line 1455 of yacc.c */ -#line 1335 "../../../hphp/util/parser/hphp.y" +#line 1331 "../../../hphp/util/parser/hphp.y" { _p->xhpSetAttributes((yyvsp[(2) - (3)]));;} break; case 194: /* Line 1455 of yacc.c */ -#line 1337 "../../../hphp/util/parser/hphp.y" +#line 1333 "../../../hphp/util/parser/hphp.y" { xhp_category_stmt(_p,(yyval),(yyvsp[(2) - (3)]));;} break; case 195: /* Line 1455 of yacc.c */ -#line 1339 "../../../hphp/util/parser/hphp.y" +#line 1335 "../../../hphp/util/parser/hphp.y" { xhp_children_stmt(_p,(yyval),(yyvsp[(2) - (3)]));;} break; case 196: /* Line 1455 of yacc.c */ -#line 1340 "../../../hphp/util/parser/hphp.y" +#line 1336 "../../../hphp/util/parser/hphp.y" { Token t; t.reset(); _p->onTraitUse((yyval),(yyvsp[(2) - (3)]),t); ;} break; @@ -6776,42 +6772,42 @@ yyreduce: case 197: /* Line 1455 of yacc.c */ -#line 1343 "../../../hphp/util/parser/hphp.y" +#line 1339 "../../../hphp/util/parser/hphp.y" { _p->onTraitUse((yyval),(yyvsp[(2) - (5)]),(yyvsp[(4) - (5)])); ;} break; case 198: /* Line 1455 of yacc.c */ -#line 1346 "../../../hphp/util/parser/hphp.y" +#line 1342 "../../../hphp/util/parser/hphp.y" { _p->onTraitRule((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;} break; case 199: /* Line 1455 of yacc.c */ -#line 1347 "../../../hphp/util/parser/hphp.y" +#line 1343 "../../../hphp/util/parser/hphp.y" { _p->onTraitRule((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;} break; case 200: /* Line 1455 of yacc.c */ -#line 1348 "../../../hphp/util/parser/hphp.y" +#line 1344 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 201: /* Line 1455 of yacc.c */ -#line 1354 "../../../hphp/util/parser/hphp.y" +#line 1350 "../../../hphp/util/parser/hphp.y" { _p->onTraitPrecRule((yyval),(yyvsp[(1) - (6)]),(yyvsp[(3) - (6)]),(yyvsp[(5) - (6)]));;} break; case 202: /* Line 1455 of yacc.c */ -#line 1358 "../../../hphp/util/parser/hphp.y" +#line 1354 "../../../hphp/util/parser/hphp.y" { _p->onTraitAliasRuleModify((yyval),(yyvsp[(1) - (5)]),(yyvsp[(3) - (5)]), (yyvsp[(4) - (5)]));;} break; @@ -6819,7 +6815,7 @@ yyreduce: case 203: /* Line 1455 of yacc.c */ -#line 1361 "../../../hphp/util/parser/hphp.y" +#line 1357 "../../../hphp/util/parser/hphp.y" { Token t; t.reset(); _p->onTraitAliasRuleModify((yyval),(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]), t);;} @@ -6828,14 +6824,14 @@ yyreduce: case 204: /* Line 1455 of yacc.c */ -#line 1368 "../../../hphp/util/parser/hphp.y" +#line 1364 "../../../hphp/util/parser/hphp.y" { _p->onTraitAliasRuleStart((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 205: /* Line 1455 of yacc.c */ -#line 1369 "../../../hphp/util/parser/hphp.y" +#line 1365 "../../../hphp/util/parser/hphp.y" { Token t; t.reset(); _p->onTraitAliasRuleStart((yyval),t,(yyvsp[(1) - (1)]));;} break; @@ -6843,7 +6839,7 @@ yyreduce: case 206: /* Line 1455 of yacc.c */ -#line 1374 "../../../hphp/util/parser/hphp.y" +#line 1370 "../../../hphp/util/parser/hphp.y" { xhp_attribute_list(_p,(yyval), _p->xhpGetAttributes(),(yyvsp[(1) - (1)]));;} break; @@ -6851,14 +6847,14 @@ yyreduce: case 207: /* Line 1455 of yacc.c */ -#line 1377 "../../../hphp/util/parser/hphp.y" +#line 1373 "../../../hphp/util/parser/hphp.y" { xhp_attribute_list(_p,(yyval), &(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 208: /* Line 1455 of yacc.c */ -#line 1384 "../../../hphp/util/parser/hphp.y" +#line 1380 "../../../hphp/util/parser/hphp.y" { xhp_attribute(_p,(yyval),(yyvsp[(1) - (4)]),(yyvsp[(2) - (4)]),(yyvsp[(3) - (4)]),(yyvsp[(4) - (4)])); (yyval) = 1;;} break; @@ -6866,21 +6862,21 @@ yyreduce: case 209: /* Line 1455 of yacc.c */ -#line 1386 "../../../hphp/util/parser/hphp.y" +#line 1382 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); (yyval) = 0;;} break; case 210: /* Line 1455 of yacc.c */ -#line 1390 "../../../hphp/util/parser/hphp.y" +#line 1386 "../../../hphp/util/parser/hphp.y" { (yyval) = 4;;} break; case 211: /* Line 1455 of yacc.c */ -#line 1391 "../../../hphp/util/parser/hphp.y" +#line 1387 "../../../hphp/util/parser/hphp.y" { /* This case handles all types other than "array", "var" and "enum". For now we just use type code 5; @@ -6892,63 +6888,63 @@ yyreduce: case 212: /* Line 1455 of yacc.c */ -#line 1397 "../../../hphp/util/parser/hphp.y" +#line 1393 "../../../hphp/util/parser/hphp.y" { (yyval) = 6;;} break; case 213: /* Line 1455 of yacc.c */ -#line 1399 "../../../hphp/util/parser/hphp.y" +#line 1395 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (4)]); (yyval) = 7;;} break; case 214: /* Line 1455 of yacc.c */ -#line 1403 "../../../hphp/util/parser/hphp.y" +#line 1399 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0,0,(yyvsp[(1) - (1)]),0);;} break; case 215: /* Line 1455 of yacc.c */ -#line 1405 "../../../hphp/util/parser/hphp.y" +#line 1401 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]),0,(yyvsp[(3) - (3)]),0);;} break; case 216: /* Line 1455 of yacc.c */ -#line 1409 "../../../hphp/util/parser/hphp.y" +#line 1405 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 217: /* Line 1455 of yacc.c */ -#line 1410 "../../../hphp/util/parser/hphp.y" +#line 1406 "../../../hphp/util/parser/hphp.y" { scalar_null(_p, (yyval));;} break; case 218: /* Line 1455 of yacc.c */ -#line 1414 "../../../hphp/util/parser/hphp.y" +#line 1410 "../../../hphp/util/parser/hphp.y" { scalar_num(_p, (yyval), "1");;} break; case 219: /* Line 1455 of yacc.c */ -#line 1415 "../../../hphp/util/parser/hphp.y" +#line 1411 "../../../hphp/util/parser/hphp.y" { scalar_num(_p, (yyval), "0");;} break; case 220: /* Line 1455 of yacc.c */ -#line 1419 "../../../hphp/util/parser/hphp.y" +#line 1415 "../../../hphp/util/parser/hphp.y" { Token t; scalar_num(_p, t, "1"); _p->onArrayPair((yyval),0,&(yyvsp[(1) - (1)]),t,0);;} break; @@ -6956,7 +6952,7 @@ yyreduce: case 221: /* Line 1455 of yacc.c */ -#line 1422 "../../../hphp/util/parser/hphp.y" +#line 1418 "../../../hphp/util/parser/hphp.y" { Token t; scalar_num(_p, t, "1"); _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]),&(yyvsp[(3) - (3)]),t,0);;} break; @@ -6964,7 +6960,7 @@ yyreduce: case 222: /* Line 1455 of yacc.c */ -#line 1427 "../../../hphp/util/parser/hphp.y" +#line 1423 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(1) - (1)]));;} break; @@ -6972,14 +6968,14 @@ yyreduce: case 223: /* Line 1455 of yacc.c */ -#line 1432 "../../../hphp/util/parser/hphp.y" +#line 1428 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); (yyval) = 2;;} break; case 224: /* Line 1455 of yacc.c */ -#line 1433 "../../../hphp/util/parser/hphp.y" +#line 1429 "../../../hphp/util/parser/hphp.y" { (yyval) = -1; if ((yyvsp[(1) - (1)]).same("any")) (yyval) = 1;;} break; @@ -6987,91 +6983,91 @@ yyreduce: case 225: /* Line 1455 of yacc.c */ -#line 1435 "../../../hphp/util/parser/hphp.y" +#line 1431 "../../../hphp/util/parser/hphp.y" { (yyval) = 0;;} break; case 226: /* Line 1455 of yacc.c */ -#line 1439 "../../../hphp/util/parser/hphp.y" +#line 1435 "../../../hphp/util/parser/hphp.y" { xhp_children_paren(_p, (yyval), (yyvsp[(2) - (3)]), 0);;} break; case 227: /* Line 1455 of yacc.c */ -#line 1440 "../../../hphp/util/parser/hphp.y" +#line 1436 "../../../hphp/util/parser/hphp.y" { xhp_children_paren(_p, (yyval), (yyvsp[(2) - (4)]), 1);;} break; case 228: /* Line 1455 of yacc.c */ -#line 1441 "../../../hphp/util/parser/hphp.y" +#line 1437 "../../../hphp/util/parser/hphp.y" { xhp_children_paren(_p, (yyval), (yyvsp[(2) - (4)]), 2);;} break; case 229: /* Line 1455 of yacc.c */ -#line 1442 "../../../hphp/util/parser/hphp.y" +#line 1438 "../../../hphp/util/parser/hphp.y" { xhp_children_paren(_p, (yyval), (yyvsp[(2) - (4)]), 3);;} break; case 230: /* Line 1455 of yacc.c */ -#line 1446 "../../../hphp/util/parser/hphp.y" +#line 1442 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 231: /* Line 1455 of yacc.c */ -#line 1447 "../../../hphp/util/parser/hphp.y" +#line 1443 "../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (1)]),0, 0);;} break; case 232: /* Line 1455 of yacc.c */ -#line 1448 "../../../hphp/util/parser/hphp.y" +#line 1444 "../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (2)]),1, 0);;} break; case 233: /* Line 1455 of yacc.c */ -#line 1449 "../../../hphp/util/parser/hphp.y" +#line 1445 "../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (2)]),2, 0);;} break; case 234: /* Line 1455 of yacc.c */ -#line 1450 "../../../hphp/util/parser/hphp.y" +#line 1446 "../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (2)]),3, 0);;} break; case 235: /* Line 1455 of yacc.c */ -#line 1452 "../../../hphp/util/parser/hphp.y" +#line 1448 "../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (3)]),4,&(yyvsp[(3) - (3)]));;} break; case 236: /* Line 1455 of yacc.c */ -#line 1454 "../../../hphp/util/parser/hphp.y" +#line 1450 "../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (3)]),5,&(yyvsp[(3) - (3)]));;} break; case 237: /* Line 1455 of yacc.c */ -#line 1458 "../../../hphp/util/parser/hphp.y" +#line 1454 "../../../hphp/util/parser/hphp.y" { (yyval) = -1; if ((yyvsp[(1) - (1)]).same("any")) (yyval) = 1; else if ((yyvsp[(1) - (1)]).same("pcdata")) (yyval) = 2;;} @@ -7080,567 +7076,567 @@ yyreduce: case 238: /* Line 1455 of yacc.c */ -#line 1461 "../../../hphp/util/parser/hphp.y" +#line 1457 "../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpLabel(); (yyval) = (yyvsp[(1) - (1)]); (yyval) = 3;;} break; case 239: /* Line 1455 of yacc.c */ -#line 1462 "../../../hphp/util/parser/hphp.y" +#line 1458 "../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpLabel(0); (yyval) = (yyvsp[(1) - (1)]); (yyval) = 4;;} break; case 240: /* Line 1455 of yacc.c */ -#line 1466 "../../../hphp/util/parser/hphp.y" +#line 1462 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 241: /* Line 1455 of yacc.c */ -#line 1467 "../../../hphp/util/parser/hphp.y" +#line 1463 "../../../hphp/util/parser/hphp.y" { _p->finishStatement((yyval), (yyvsp[(2) - (3)])); (yyval) = 1;;} break; case 242: /* Line 1455 of yacc.c */ -#line 1470 "../../../hphp/util/parser/hphp.y" +#line 1466 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 243: /* Line 1455 of yacc.c */ -#line 1471 "../../../hphp/util/parser/hphp.y" +#line 1467 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 244: /* Line 1455 of yacc.c */ -#line 1474 "../../../hphp/util/parser/hphp.y" +#line 1470 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 245: /* Line 1455 of yacc.c */ -#line 1475 "../../../hphp/util/parser/hphp.y" +#line 1471 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 246: /* Line 1455 of yacc.c */ -#line 1478 "../../../hphp/util/parser/hphp.y" +#line 1474 "../../../hphp/util/parser/hphp.y" { _p->onMemberModifier((yyval),NULL,(yyvsp[(1) - (1)]));;} break; case 247: /* Line 1455 of yacc.c */ -#line 1480 "../../../hphp/util/parser/hphp.y" +#line 1476 "../../../hphp/util/parser/hphp.y" { _p->onMemberModifier((yyval),&(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 248: /* Line 1455 of yacc.c */ -#line 1483 "../../../hphp/util/parser/hphp.y" +#line 1479 "../../../hphp/util/parser/hphp.y" { (yyval) = T_PUBLIC;;} break; case 249: /* Line 1455 of yacc.c */ -#line 1484 "../../../hphp/util/parser/hphp.y" +#line 1480 "../../../hphp/util/parser/hphp.y" { (yyval) = T_PROTECTED;;} break; case 250: /* Line 1455 of yacc.c */ -#line 1485 "../../../hphp/util/parser/hphp.y" +#line 1481 "../../../hphp/util/parser/hphp.y" { (yyval) = T_PRIVATE;;} break; case 251: /* Line 1455 of yacc.c */ -#line 1486 "../../../hphp/util/parser/hphp.y" +#line 1482 "../../../hphp/util/parser/hphp.y" { (yyval) = T_STATIC;;} break; case 252: /* Line 1455 of yacc.c */ -#line 1487 "../../../hphp/util/parser/hphp.y" +#line 1483 "../../../hphp/util/parser/hphp.y" { (yyval) = T_ABSTRACT;;} break; case 253: /* Line 1455 of yacc.c */ -#line 1488 "../../../hphp/util/parser/hphp.y" +#line 1484 "../../../hphp/util/parser/hphp.y" { (yyval) = T_FINAL;;} break; case 254: /* Line 1455 of yacc.c */ -#line 1492 "../../../hphp/util/parser/hphp.y" +#line 1488 "../../../hphp/util/parser/hphp.y" { _p->onClassVariable((yyval),&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 255: /* Line 1455 of yacc.c */ -#line 1494 "../../../hphp/util/parser/hphp.y" +#line 1490 "../../../hphp/util/parser/hphp.y" { _p->onClassVariable((yyval),&(yyvsp[(1) - (5)]),(yyvsp[(3) - (5)]),&(yyvsp[(5) - (5)]));;} break; case 256: /* Line 1455 of yacc.c */ -#line 1495 "../../../hphp/util/parser/hphp.y" +#line 1491 "../../../hphp/util/parser/hphp.y" { _p->onClassVariable((yyval),0,(yyvsp[(1) - (1)]),0);;} break; case 257: /* Line 1455 of yacc.c */ -#line 1496 "../../../hphp/util/parser/hphp.y" +#line 1492 "../../../hphp/util/parser/hphp.y" { _p->onClassVariable((yyval),0,(yyvsp[(1) - (3)]),&(yyvsp[(3) - (3)]));;} break; case 258: /* Line 1455 of yacc.c */ -#line 1500 "../../../hphp/util/parser/hphp.y" +#line 1496 "../../../hphp/util/parser/hphp.y" { _p->onClassConstant((yyval),&(yyvsp[(1) - (5)]),(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]));;} break; case 259: /* Line 1455 of yacc.c */ -#line 1501 "../../../hphp/util/parser/hphp.y" +#line 1497 "../../../hphp/util/parser/hphp.y" { _p->onClassConstant((yyval),0,(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]));;} break; case 260: /* Line 1455 of yacc.c */ -#line 1506 "../../../hphp/util/parser/hphp.y" +#line 1502 "../../../hphp/util/parser/hphp.y" { _p->onNewObject((yyval), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));;} break; case 261: /* Line 1455 of yacc.c */ -#line 1507 "../../../hphp/util/parser/hphp.y" +#line 1503 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 262: /* Line 1455 of yacc.c */ -#line 1511 "../../../hphp/util/parser/hphp.y" +#line 1507 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 263: /* Line 1455 of yacc.c */ -#line 1515 "../../../hphp/util/parser/hphp.y" +#line 1511 "../../../hphp/util/parser/hphp.y" { _p->onExprListElem((yyval), &(yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 264: /* Line 1455 of yacc.c */ -#line 1516 "../../../hphp/util/parser/hphp.y" +#line 1512 "../../../hphp/util/parser/hphp.y" { _p->onExprListElem((yyval), NULL, (yyvsp[(1) - (1)]));;} break; case 265: /* Line 1455 of yacc.c */ -#line 1520 "../../../hphp/util/parser/hphp.y" +#line 1516 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 266: /* Line 1455 of yacc.c */ -#line 1521 "../../../hphp/util/parser/hphp.y" +#line 1517 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 267: /* Line 1455 of yacc.c */ -#line 1525 "../../../hphp/util/parser/hphp.y" +#line 1521 "../../../hphp/util/parser/hphp.y" { _p->onYield((yyval), (yyvsp[(2) - (2)]));;} break; case 268: /* Line 1455 of yacc.c */ -#line 1529 "../../../hphp/util/parser/hphp.y" +#line 1525 "../../../hphp/util/parser/hphp.y" { _p->onAssign((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), 0, true);;} break; case 269: /* Line 1455 of yacc.c */ -#line 1534 "../../../hphp/util/parser/hphp.y" +#line 1530 "../../../hphp/util/parser/hphp.y" { _p->onListAssignment((yyval), (yyvsp[(3) - (6)]), &(yyvsp[(6) - (6)]), true);;} break; case 270: /* Line 1455 of yacc.c */ -#line 1538 "../../../hphp/util/parser/hphp.y" +#line 1534 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 271: /* Line 1455 of yacc.c */ -#line 1539 "../../../hphp/util/parser/hphp.y" +#line 1535 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 272: /* Line 1455 of yacc.c */ -#line 1540 "../../../hphp/util/parser/hphp.y" +#line 1536 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 273: /* Line 1455 of yacc.c */ -#line 1544 "../../../hphp/util/parser/hphp.y" +#line 1540 "../../../hphp/util/parser/hphp.y" { _p->onListAssignment((yyval), (yyvsp[(3) - (6)]), &(yyvsp[(6) - (6)]));;} break; case 274: /* Line 1455 of yacc.c */ -#line 1545 "../../../hphp/util/parser/hphp.y" +#line 1541 "../../../hphp/util/parser/hphp.y" { _p->onAssign((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), 0);;} break; case 275: /* Line 1455 of yacc.c */ -#line 1546 "../../../hphp/util/parser/hphp.y" +#line 1542 "../../../hphp/util/parser/hphp.y" { _p->onAssign((yyval), (yyvsp[(1) - (4)]), (yyvsp[(4) - (4)]), 1);;} break; case 276: /* Line 1455 of yacc.c */ -#line 1549 "../../../hphp/util/parser/hphp.y" +#line 1545 "../../../hphp/util/parser/hphp.y" { _p->onAssignNew((yyval),(yyvsp[(1) - (6)]),(yyvsp[(5) - (6)]),(yyvsp[(6) - (6)]));;} break; case 277: /* Line 1455 of yacc.c */ -#line 1550 "../../../hphp/util/parser/hphp.y" +#line 1546 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_CLONE,1);;} break; case 278: /* Line 1455 of yacc.c */ -#line 1551 "../../../hphp/util/parser/hphp.y" +#line 1547 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_PLUS_EQUAL);;} break; case 279: /* Line 1455 of yacc.c */ -#line 1552 "../../../hphp/util/parser/hphp.y" +#line 1548 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_MINUS_EQUAL);;} break; case 280: /* Line 1455 of yacc.c */ -#line 1553 "../../../hphp/util/parser/hphp.y" +#line 1549 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_MUL_EQUAL);;} break; case 281: /* Line 1455 of yacc.c */ -#line 1554 "../../../hphp/util/parser/hphp.y" +#line 1550 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_DIV_EQUAL);;} break; case 282: /* Line 1455 of yacc.c */ -#line 1555 "../../../hphp/util/parser/hphp.y" +#line 1551 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_CONCAT_EQUAL);;} break; case 283: /* Line 1455 of yacc.c */ -#line 1556 "../../../hphp/util/parser/hphp.y" +#line 1552 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_MOD_EQUAL);;} break; case 284: /* Line 1455 of yacc.c */ -#line 1557 "../../../hphp/util/parser/hphp.y" +#line 1553 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_AND_EQUAL);;} break; case 285: /* Line 1455 of yacc.c */ -#line 1558 "../../../hphp/util/parser/hphp.y" +#line 1554 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_OR_EQUAL);;} break; case 286: /* Line 1455 of yacc.c */ -#line 1559 "../../../hphp/util/parser/hphp.y" +#line 1555 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_XOR_EQUAL);;} break; case 287: /* Line 1455 of yacc.c */ -#line 1560 "../../../hphp/util/parser/hphp.y" +#line 1556 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_SL_EQUAL);;} break; case 288: /* Line 1455 of yacc.c */ -#line 1561 "../../../hphp/util/parser/hphp.y" +#line 1557 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_SR_EQUAL);;} break; case 289: /* Line 1455 of yacc.c */ -#line 1562 "../../../hphp/util/parser/hphp.y" +#line 1558 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(1) - (2)]),T_INC,0);;} break; case 290: /* Line 1455 of yacc.c */ -#line 1563 "../../../hphp/util/parser/hphp.y" +#line 1559 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_INC,1);;} break; case 291: /* Line 1455 of yacc.c */ -#line 1564 "../../../hphp/util/parser/hphp.y" +#line 1560 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(1) - (2)]),T_DEC,0);;} break; case 292: /* Line 1455 of yacc.c */ -#line 1565 "../../../hphp/util/parser/hphp.y" +#line 1561 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_DEC,1);;} break; case 293: /* Line 1455 of yacc.c */ -#line 1566 "../../../hphp/util/parser/hphp.y" +#line 1562 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_BOOLEAN_OR);;} break; case 294: /* Line 1455 of yacc.c */ -#line 1567 "../../../hphp/util/parser/hphp.y" +#line 1563 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_BOOLEAN_AND);;} break; case 295: /* Line 1455 of yacc.c */ -#line 1568 "../../../hphp/util/parser/hphp.y" +#line 1564 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_LOGICAL_OR);;} break; case 296: /* Line 1455 of yacc.c */ -#line 1569 "../../../hphp/util/parser/hphp.y" +#line 1565 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_LOGICAL_AND);;} break; case 297: /* Line 1455 of yacc.c */ -#line 1570 "../../../hphp/util/parser/hphp.y" +#line 1566 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_LOGICAL_XOR);;} break; case 298: /* Line 1455 of yacc.c */ -#line 1571 "../../../hphp/util/parser/hphp.y" +#line 1567 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'|');;} break; case 299: /* Line 1455 of yacc.c */ -#line 1572 "../../../hphp/util/parser/hphp.y" +#line 1568 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'&');;} break; case 300: /* Line 1455 of yacc.c */ -#line 1573 "../../../hphp/util/parser/hphp.y" +#line 1569 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'^');;} break; case 301: /* Line 1455 of yacc.c */ -#line 1574 "../../../hphp/util/parser/hphp.y" +#line 1570 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'.');;} break; case 302: /* Line 1455 of yacc.c */ -#line 1575 "../../../hphp/util/parser/hphp.y" +#line 1571 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'+');;} break; case 303: /* Line 1455 of yacc.c */ -#line 1576 "../../../hphp/util/parser/hphp.y" +#line 1572 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'-');;} break; case 304: /* Line 1455 of yacc.c */ -#line 1577 "../../../hphp/util/parser/hphp.y" +#line 1573 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'*');;} break; case 305: /* Line 1455 of yacc.c */ -#line 1578 "../../../hphp/util/parser/hphp.y" +#line 1574 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'/');;} break; case 306: /* Line 1455 of yacc.c */ -#line 1579 "../../../hphp/util/parser/hphp.y" +#line 1575 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'%');;} break; case 307: /* Line 1455 of yacc.c */ -#line 1580 "../../../hphp/util/parser/hphp.y" +#line 1576 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_SL);;} break; case 308: /* Line 1455 of yacc.c */ -#line 1581 "../../../hphp/util/parser/hphp.y" +#line 1577 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_SR);;} break; case 309: /* Line 1455 of yacc.c */ -#line 1582 "../../../hphp/util/parser/hphp.y" +#line 1578 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'+',1);;} break; case 310: /* Line 1455 of yacc.c */ -#line 1583 "../../../hphp/util/parser/hphp.y" +#line 1579 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'-',1);;} break; case 311: /* Line 1455 of yacc.c */ -#line 1584 "../../../hphp/util/parser/hphp.y" +#line 1580 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'!',1);;} break; case 312: /* Line 1455 of yacc.c */ -#line 1585 "../../../hphp/util/parser/hphp.y" +#line 1581 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'~',1);;} break; case 313: /* Line 1455 of yacc.c */ -#line 1586 "../../../hphp/util/parser/hphp.y" +#line 1582 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_IS_IDENTICAL);;} break; case 314: /* Line 1455 of yacc.c */ -#line 1587 "../../../hphp/util/parser/hphp.y" +#line 1583 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_IS_NOT_IDENTICAL);;} break; case 315: /* Line 1455 of yacc.c */ -#line 1588 "../../../hphp/util/parser/hphp.y" +#line 1584 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_IS_EQUAL);;} break; case 316: /* Line 1455 of yacc.c */ -#line 1589 "../../../hphp/util/parser/hphp.y" +#line 1585 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_IS_NOT_EQUAL);;} break; case 317: /* Line 1455 of yacc.c */ -#line 1590 "../../../hphp/util/parser/hphp.y" +#line 1586 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'<');;} break; case 318: /* Line 1455 of yacc.c */ -#line 1591 "../../../hphp/util/parser/hphp.y" +#line 1587 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]), T_IS_SMALLER_OR_EQUAL);;} break; @@ -7648,14 +7644,14 @@ yyreduce: case 319: /* Line 1455 of yacc.c */ -#line 1593 "../../../hphp/util/parser/hphp.y" +#line 1589 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'>');;} break; case 320: /* Line 1455 of yacc.c */ -#line 1594 "../../../hphp/util/parser/hphp.y" +#line 1590 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]), T_IS_GREATER_OR_EQUAL);;} break; @@ -7663,140 +7659,140 @@ yyreduce: case 321: /* Line 1455 of yacc.c */ -#line 1597 "../../../hphp/util/parser/hphp.y" +#line 1593 "../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_INSTANCEOF);;} break; case 322: /* Line 1455 of yacc.c */ -#line 1598 "../../../hphp/util/parser/hphp.y" +#line 1594 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 323: /* Line 1455 of yacc.c */ -#line 1599 "../../../hphp/util/parser/hphp.y" +#line 1595 "../../../hphp/util/parser/hphp.y" { _p->onQOp((yyval), (yyvsp[(1) - (5)]), &(yyvsp[(3) - (5)]), (yyvsp[(5) - (5)]));;} break; case 324: /* Line 1455 of yacc.c */ -#line 1600 "../../../hphp/util/parser/hphp.y" +#line 1596 "../../../hphp/util/parser/hphp.y" { _p->onQOp((yyval), (yyvsp[(1) - (4)]), 0, (yyvsp[(4) - (4)]));;} break; case 325: /* Line 1455 of yacc.c */ -#line 1601 "../../../hphp/util/parser/hphp.y" +#line 1597 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 326: /* Line 1455 of yacc.c */ -#line 1602 "../../../hphp/util/parser/hphp.y" +#line 1598 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_INT_CAST,1);;} break; case 327: /* Line 1455 of yacc.c */ -#line 1603 "../../../hphp/util/parser/hphp.y" +#line 1599 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_DOUBLE_CAST,1);;} break; case 328: /* Line 1455 of yacc.c */ -#line 1604 "../../../hphp/util/parser/hphp.y" +#line 1600 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_STRING_CAST,1);;} break; case 329: /* Line 1455 of yacc.c */ -#line 1605 "../../../hphp/util/parser/hphp.y" +#line 1601 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_ARRAY_CAST,1);;} break; case 330: /* Line 1455 of yacc.c */ -#line 1606 "../../../hphp/util/parser/hphp.y" +#line 1602 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_OBJECT_CAST,1);;} break; case 331: /* Line 1455 of yacc.c */ -#line 1607 "../../../hphp/util/parser/hphp.y" +#line 1603 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_BOOL_CAST,1);;} break; case 332: /* Line 1455 of yacc.c */ -#line 1608 "../../../hphp/util/parser/hphp.y" +#line 1604 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_UNSET_CAST,1);;} break; case 333: /* Line 1455 of yacc.c */ -#line 1609 "../../../hphp/util/parser/hphp.y" +#line 1605 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_EXIT,1);;} break; case 334: /* Line 1455 of yacc.c */ -#line 1610 "../../../hphp/util/parser/hphp.y" +#line 1606 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'@',1);;} break; case 335: /* Line 1455 of yacc.c */ -#line 1611 "../../../hphp/util/parser/hphp.y" +#line 1607 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 336: /* Line 1455 of yacc.c */ -#line 1612 "../../../hphp/util/parser/hphp.y" +#line 1608 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 337: /* Line 1455 of yacc.c */ -#line 1613 "../../../hphp/util/parser/hphp.y" +#line 1609 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 338: /* Line 1455 of yacc.c */ -#line 1614 "../../../hphp/util/parser/hphp.y" +#line 1610 "../../../hphp/util/parser/hphp.y" { _p->onEncapsList((yyval),'`',(yyvsp[(2) - (3)]));;} break; case 339: /* Line 1455 of yacc.c */ -#line 1615 "../../../hphp/util/parser/hphp.y" +#line 1611 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_PRINT,1);;} break; case 340: /* Line 1455 of yacc.c */ -#line 1617 "../../../hphp/util/parser/hphp.y" +#line 1613 "../../../hphp/util/parser/hphp.y" { Token t; _p->onClosureStart(t); _p->pushLabelInfo();;} break; @@ -7804,7 +7800,7 @@ yyreduce: case 341: /* Line 1455 of yacc.c */ -#line 1621 "../../../hphp/util/parser/hphp.y" +#line 1617 "../../../hphp/util/parser/hphp.y" { Token u; u.reset(); _p->onClosure((yyval),u,(yyvsp[(2) - (11)]),(yyvsp[(5) - (11)]),(yyvsp[(8) - (11)]),(yyvsp[(10) - (11)]),0); _p->popLabelInfo();;} @@ -7813,7 +7809,7 @@ yyreduce: case 342: /* Line 1455 of yacc.c */ -#line 1625 "../../../hphp/util/parser/hphp.y" +#line 1621 "../../../hphp/util/parser/hphp.y" { Token t; _p->onClosureStart(t); _p->pushLabelInfo();;} break; @@ -7821,7 +7817,7 @@ yyreduce: case 343: /* Line 1455 of yacc.c */ -#line 1629 "../../../hphp/util/parser/hphp.y" +#line 1625 "../../../hphp/util/parser/hphp.y" { Token u; u.reset(); _p->onClosure((yyval),u,(yyvsp[(3) - (12)]),(yyvsp[(6) - (12)]),(yyvsp[(9) - (12)]),(yyvsp[(11) - (12)]),1); _p->popLabelInfo();;} @@ -7830,28 +7826,28 @@ yyreduce: case 344: /* Line 1455 of yacc.c */ -#line 1632 "../../../hphp/util/parser/hphp.y" +#line 1628 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 345: /* Line 1455 of yacc.c */ -#line 1633 "../../../hphp/util/parser/hphp.y" +#line 1629 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 346: /* Line 1455 of yacc.c */ -#line 1634 "../../../hphp/util/parser/hphp.y" +#line 1630 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 347: /* Line 1455 of yacc.c */ -#line 1641 "../../../hphp/util/parser/hphp.y" +#line 1637 "../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(3) - (5)]), _p); _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0); ;} break; @@ -7859,7 +7855,7 @@ yyreduce: case 348: /* Line 1455 of yacc.c */ -#line 1645 "../../../hphp/util/parser/hphp.y" +#line 1641 "../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(1) - (3)]), _p); _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0); ;} break; @@ -7867,7 +7863,7 @@ yyreduce: case 349: /* Line 1455 of yacc.c */ -#line 1653 "../../../hphp/util/parser/hphp.y" +#line 1649 "../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(3) - (5)]), _p); _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0); ;} break; @@ -7875,7 +7871,7 @@ yyreduce: case 350: /* Line 1455 of yacc.c */ -#line 1657 "../../../hphp/util/parser/hphp.y" +#line 1653 "../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(1) - (3)]), _p); _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0); ;} break; @@ -7883,35 +7879,35 @@ yyreduce: case 351: /* Line 1455 of yacc.c */ -#line 1663 "../../../hphp/util/parser/hphp.y" +#line 1659 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]); ;} break; case 352: /* Line 1455 of yacc.c */ -#line 1664 "../../../hphp/util/parser/hphp.y" +#line 1660 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 353: /* Line 1455 of yacc.c */ -#line 1669 "../../../hphp/util/parser/hphp.y" +#line 1665 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]); ;} break; case 354: /* Line 1455 of yacc.c */ -#line 1670 "../../../hphp/util/parser/hphp.y" +#line 1666 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 355: /* Line 1455 of yacc.c */ -#line 1674 "../../../hphp/util/parser/hphp.y" +#line 1670 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); _p->onArray((yyval), (yyvsp[(3) - (4)]), T_ARRAY); ;} break; @@ -7919,14 +7915,14 @@ yyreduce: case 356: /* Line 1455 of yacc.c */ -#line 1679 "../../../hphp/util/parser/hphp.y" +#line 1675 "../../../hphp/util/parser/hphp.y" { _p->onArray((yyval),(yyvsp[(3) - (4)]),T_ARRAY);;} break; case 357: /* Line 1455 of yacc.c */ -#line 1684 "../../../hphp/util/parser/hphp.y" +#line 1680 "../../../hphp/util/parser/hphp.y" { Token t; _p->onName(t,(yyvsp[(1) - (4)]),Parser::StringName); BEXP((yyval),t,(yyvsp[(3) - (4)]),T_COLLECTION);;} @@ -7935,7 +7931,7 @@ yyreduce: case 358: /* Line 1455 of yacc.c */ -#line 1691 "../../../hphp/util/parser/hphp.y" +#line 1687 "../../../hphp/util/parser/hphp.y" { Token t; _p->onName(t,(yyvsp[(1) - (4)]),Parser::StringName); BEXP((yyval),t,(yyvsp[(3) - (4)]),T_COLLECTION);;} @@ -7944,91 +7940,91 @@ yyreduce: case 359: /* Line 1455 of yacc.c */ -#line 1698 "../../../hphp/util/parser/hphp.y" +#line 1694 "../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (4)]), (yyvsp[(3) - (4)]));;} break; case 360: /* Line 1455 of yacc.c */ -#line 1700 "../../../hphp/util/parser/hphp.y" +#line 1696 "../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (4)]), (yyvsp[(3) - (4)]));;} break; case 361: /* Line 1455 of yacc.c */ -#line 1704 "../../../hphp/util/parser/hphp.y" +#line 1700 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 362: /* Line 1455 of yacc.c */ -#line 1705 "../../../hphp/util/parser/hphp.y" +#line 1701 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 363: /* Line 1455 of yacc.c */ -#line 1706 "../../../hphp/util/parser/hphp.y" +#line 1702 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 364: /* Line 1455 of yacc.c */ -#line 1713 "../../../hphp/util/parser/hphp.y" +#line 1709 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (5)]);;} break; case 365: /* Line 1455 of yacc.c */ -#line 1714 "../../../hphp/util/parser/hphp.y" +#line 1710 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 366: /* Line 1455 of yacc.c */ -#line 1718 "../../../hphp/util/parser/hphp.y" +#line 1714 "../../../hphp/util/parser/hphp.y" { _p->onClosureParam((yyval),&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 367: /* Line 1455 of yacc.c */ -#line 1719 "../../../hphp/util/parser/hphp.y" +#line 1715 "../../../hphp/util/parser/hphp.y" { _p->onClosureParam((yyval),&(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),1);;} break; case 368: /* Line 1455 of yacc.c */ -#line 1720 "../../../hphp/util/parser/hphp.y" +#line 1716 "../../../hphp/util/parser/hphp.y" { _p->onClosureParam((yyval), 0,(yyvsp[(1) - (1)]),0);;} break; case 369: /* Line 1455 of yacc.c */ -#line 1721 "../../../hphp/util/parser/hphp.y" +#line 1717 "../../../hphp/util/parser/hphp.y" { _p->onClosureParam((yyval), 0,(yyvsp[(2) - (2)]),1);;} break; case 370: /* Line 1455 of yacc.c */ -#line 1728 "../../../hphp/util/parser/hphp.y" +#line 1724 "../../../hphp/util/parser/hphp.y" { xhp_tag(_p,(yyval),(yyvsp[(2) - (4)]),(yyvsp[(3) - (4)]));;} break; case 371: /* Line 1455 of yacc.c */ -#line 1731 "../../../hphp/util/parser/hphp.y" +#line 1727 "../../../hphp/util/parser/hphp.y" { Token t1; _p->onArray(t1,(yyvsp[(1) - (2)])); Token t2; _p->onArray(t2,(yyvsp[(2) - (2)])); _p->onCallParam((yyvsp[(1) - (2)]),NULL,t1,0); @@ -8039,7 +8035,7 @@ yyreduce: case 372: /* Line 1455 of yacc.c */ -#line 1738 "../../../hphp/util/parser/hphp.y" +#line 1734 "../../../hphp/util/parser/hphp.y" { _p->onArray((yyvsp[(4) - (6)]),(yyvsp[(1) - (6)])); _p->onArray((yyvsp[(5) - (6)]),(yyvsp[(3) - (6)])); _p->onCallParam((yyvsp[(2) - (6)]),NULL,(yyvsp[(4) - (6)]),0); @@ -8050,49 +8046,49 @@ yyreduce: case 373: /* Line 1455 of yacc.c */ -#line 1745 "../../../hphp/util/parser/hphp.y" +#line 1741 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); (yyval).setText("");;} break; case 374: /* Line 1455 of yacc.c */ -#line 1746 "../../../hphp/util/parser/hphp.y" +#line 1742 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); (yyval).setText((yyvsp[(1) - (1)]));;} break; case 375: /* Line 1455 of yacc.c */ -#line 1751 "../../../hphp/util/parser/hphp.y" +#line 1747 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (4)]),&(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]),0);;} break; case 376: /* Line 1455 of yacc.c */ -#line 1752 "../../../hphp/util/parser/hphp.y" +#line 1748 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 377: /* Line 1455 of yacc.c */ -#line 1755 "../../../hphp/util/parser/hphp.y" +#line 1751 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (2)]),0,(yyvsp[(2) - (2)]),0);;} break; case 378: /* Line 1455 of yacc.c */ -#line 1756 "../../../hphp/util/parser/hphp.y" +#line 1752 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 379: /* Line 1455 of yacc.c */ -#line 1759 "../../../hphp/util/parser/hphp.y" +#line 1755 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(1) - (1)]));;} break; @@ -8100,7 +8096,7 @@ yyreduce: case 380: /* Line 1455 of yacc.c */ -#line 1763 "../../../hphp/util/parser/hphp.y" +#line 1759 "../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpDecode(); _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(1) - (1)]));;} @@ -8109,14 +8105,14 @@ yyreduce: case 381: /* Line 1455 of yacc.c */ -#line 1766 "../../../hphp/util/parser/hphp.y" +#line 1762 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 382: /* Line 1455 of yacc.c */ -#line 1769 "../../../hphp/util/parser/hphp.y" +#line 1765 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); if ((yyvsp[(1) - (1)]).htmlTrim()) { (yyvsp[(1) - (1)]).xhpDecode(); @@ -8129,595 +8125,595 @@ yyreduce: case 383: /* Line 1455 of yacc.c */ -#line 1776 "../../../hphp/util/parser/hphp.y" +#line 1772 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]); ;} break; case 384: /* Line 1455 of yacc.c */ -#line 1777 "../../../hphp/util/parser/hphp.y" +#line 1773 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 385: /* Line 1455 of yacc.c */ -#line 1781 "../../../hphp/util/parser/hphp.y" +#line 1777 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 386: /* Line 1455 of yacc.c */ -#line 1783 "../../../hphp/util/parser/hphp.y" +#line 1779 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (3)]) + ":" + (yyvsp[(3) - (3)]);;} break; case 387: /* Line 1455 of yacc.c */ -#line 1785 "../../../hphp/util/parser/hphp.y" +#line 1781 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (3)]) + "-" + (yyvsp[(3) - (3)]);;} break; case 388: /* Line 1455 of yacc.c */ -#line 1788 "../../../hphp/util/parser/hphp.y" +#line 1784 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 389: /* Line 1455 of yacc.c */ -#line 1789 "../../../hphp/util/parser/hphp.y" +#line 1785 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 390: /* Line 1455 of yacc.c */ -#line 1790 "../../../hphp/util/parser/hphp.y" +#line 1786 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 391: /* Line 1455 of yacc.c */ -#line 1791 "../../../hphp/util/parser/hphp.y" +#line 1787 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 392: /* Line 1455 of yacc.c */ -#line 1792 "../../../hphp/util/parser/hphp.y" +#line 1788 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 393: /* Line 1455 of yacc.c */ -#line 1793 "../../../hphp/util/parser/hphp.y" +#line 1789 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 394: /* Line 1455 of yacc.c */ -#line 1794 "../../../hphp/util/parser/hphp.y" +#line 1790 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 395: /* Line 1455 of yacc.c */ -#line 1795 "../../../hphp/util/parser/hphp.y" +#line 1791 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 396: /* Line 1455 of yacc.c */ -#line 1796 "../../../hphp/util/parser/hphp.y" +#line 1792 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 397: /* Line 1455 of yacc.c */ -#line 1797 "../../../hphp/util/parser/hphp.y" +#line 1793 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 398: /* Line 1455 of yacc.c */ -#line 1798 "../../../hphp/util/parser/hphp.y" +#line 1794 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 399: /* Line 1455 of yacc.c */ -#line 1799 "../../../hphp/util/parser/hphp.y" +#line 1795 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 400: /* Line 1455 of yacc.c */ -#line 1800 "../../../hphp/util/parser/hphp.y" +#line 1796 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 401: /* Line 1455 of yacc.c */ -#line 1801 "../../../hphp/util/parser/hphp.y" +#line 1797 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 402: /* Line 1455 of yacc.c */ -#line 1802 "../../../hphp/util/parser/hphp.y" +#line 1798 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 403: /* Line 1455 of yacc.c */ -#line 1803 "../../../hphp/util/parser/hphp.y" +#line 1799 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 404: /* Line 1455 of yacc.c */ -#line 1804 "../../../hphp/util/parser/hphp.y" +#line 1800 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 405: /* Line 1455 of yacc.c */ -#line 1805 "../../../hphp/util/parser/hphp.y" +#line 1801 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 406: /* Line 1455 of yacc.c */ -#line 1806 "../../../hphp/util/parser/hphp.y" +#line 1802 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 407: /* Line 1455 of yacc.c */ -#line 1807 "../../../hphp/util/parser/hphp.y" +#line 1803 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 408: /* Line 1455 of yacc.c */ -#line 1808 "../../../hphp/util/parser/hphp.y" +#line 1804 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 409: /* Line 1455 of yacc.c */ -#line 1809 "../../../hphp/util/parser/hphp.y" +#line 1805 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 410: /* Line 1455 of yacc.c */ -#line 1810 "../../../hphp/util/parser/hphp.y" +#line 1806 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 411: /* Line 1455 of yacc.c */ -#line 1811 "../../../hphp/util/parser/hphp.y" +#line 1807 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 412: /* Line 1455 of yacc.c */ -#line 1812 "../../../hphp/util/parser/hphp.y" +#line 1808 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 413: /* Line 1455 of yacc.c */ -#line 1813 "../../../hphp/util/parser/hphp.y" +#line 1809 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 414: /* Line 1455 of yacc.c */ -#line 1814 "../../../hphp/util/parser/hphp.y" +#line 1810 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 415: /* Line 1455 of yacc.c */ -#line 1815 "../../../hphp/util/parser/hphp.y" +#line 1811 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 416: /* Line 1455 of yacc.c */ -#line 1816 "../../../hphp/util/parser/hphp.y" +#line 1812 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 417: /* Line 1455 of yacc.c */ -#line 1817 "../../../hphp/util/parser/hphp.y" +#line 1813 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 418: /* Line 1455 of yacc.c */ -#line 1818 "../../../hphp/util/parser/hphp.y" +#line 1814 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 419: /* Line 1455 of yacc.c */ -#line 1819 "../../../hphp/util/parser/hphp.y" +#line 1815 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 420: /* Line 1455 of yacc.c */ -#line 1820 "../../../hphp/util/parser/hphp.y" +#line 1816 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 421: /* Line 1455 of yacc.c */ -#line 1821 "../../../hphp/util/parser/hphp.y" +#line 1817 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 422: /* Line 1455 of yacc.c */ -#line 1822 "../../../hphp/util/parser/hphp.y" +#line 1818 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 423: /* Line 1455 of yacc.c */ -#line 1823 "../../../hphp/util/parser/hphp.y" +#line 1819 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 424: /* Line 1455 of yacc.c */ -#line 1824 "../../../hphp/util/parser/hphp.y" +#line 1820 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 425: /* Line 1455 of yacc.c */ -#line 1825 "../../../hphp/util/parser/hphp.y" +#line 1821 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 426: /* Line 1455 of yacc.c */ -#line 1826 "../../../hphp/util/parser/hphp.y" +#line 1822 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 427: /* Line 1455 of yacc.c */ -#line 1827 "../../../hphp/util/parser/hphp.y" +#line 1823 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 428: /* Line 1455 of yacc.c */ -#line 1828 "../../../hphp/util/parser/hphp.y" +#line 1824 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 429: /* Line 1455 of yacc.c */ -#line 1829 "../../../hphp/util/parser/hphp.y" +#line 1825 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 430: /* Line 1455 of yacc.c */ -#line 1830 "../../../hphp/util/parser/hphp.y" +#line 1826 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 431: /* Line 1455 of yacc.c */ -#line 1831 "../../../hphp/util/parser/hphp.y" +#line 1827 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 432: /* Line 1455 of yacc.c */ -#line 1832 "../../../hphp/util/parser/hphp.y" +#line 1828 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 433: /* Line 1455 of yacc.c */ -#line 1833 "../../../hphp/util/parser/hphp.y" +#line 1829 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 434: /* Line 1455 of yacc.c */ -#line 1834 "../../../hphp/util/parser/hphp.y" +#line 1830 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 435: /* Line 1455 of yacc.c */ -#line 1835 "../../../hphp/util/parser/hphp.y" +#line 1831 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 436: /* Line 1455 of yacc.c */ -#line 1836 "../../../hphp/util/parser/hphp.y" +#line 1832 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 437: /* Line 1455 of yacc.c */ -#line 1837 "../../../hphp/util/parser/hphp.y" +#line 1833 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 438: /* Line 1455 of yacc.c */ -#line 1838 "../../../hphp/util/parser/hphp.y" +#line 1834 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 439: /* Line 1455 of yacc.c */ -#line 1839 "../../../hphp/util/parser/hphp.y" +#line 1835 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 440: /* Line 1455 of yacc.c */ -#line 1840 "../../../hphp/util/parser/hphp.y" +#line 1836 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 441: /* Line 1455 of yacc.c */ -#line 1841 "../../../hphp/util/parser/hphp.y" +#line 1837 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 442: /* Line 1455 of yacc.c */ -#line 1842 "../../../hphp/util/parser/hphp.y" +#line 1838 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 443: /* Line 1455 of yacc.c */ -#line 1843 "../../../hphp/util/parser/hphp.y" +#line 1839 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 444: /* Line 1455 of yacc.c */ -#line 1844 "../../../hphp/util/parser/hphp.y" +#line 1840 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 445: /* Line 1455 of yacc.c */ -#line 1845 "../../../hphp/util/parser/hphp.y" +#line 1841 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 446: /* Line 1455 of yacc.c */ -#line 1846 "../../../hphp/util/parser/hphp.y" +#line 1842 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 447: /* Line 1455 of yacc.c */ -#line 1847 "../../../hphp/util/parser/hphp.y" +#line 1843 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 448: /* Line 1455 of yacc.c */ -#line 1848 "../../../hphp/util/parser/hphp.y" +#line 1844 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 449: /* Line 1455 of yacc.c */ -#line 1849 "../../../hphp/util/parser/hphp.y" +#line 1845 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 450: /* Line 1455 of yacc.c */ -#line 1850 "../../../hphp/util/parser/hphp.y" +#line 1846 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 451: /* Line 1455 of yacc.c */ -#line 1851 "../../../hphp/util/parser/hphp.y" +#line 1847 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 452: /* Line 1455 of yacc.c */ -#line 1852 "../../../hphp/util/parser/hphp.y" +#line 1848 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 453: /* Line 1455 of yacc.c */ -#line 1853 "../../../hphp/util/parser/hphp.y" +#line 1849 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 454: /* Line 1455 of yacc.c */ -#line 1854 "../../../hphp/util/parser/hphp.y" +#line 1850 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 455: /* Line 1455 of yacc.c */ -#line 1855 "../../../hphp/util/parser/hphp.y" +#line 1851 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 456: /* Line 1455 of yacc.c */ -#line 1856 "../../../hphp/util/parser/hphp.y" +#line 1852 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 457: /* Line 1455 of yacc.c */ -#line 1857 "../../../hphp/util/parser/hphp.y" +#line 1853 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 458: /* Line 1455 of yacc.c */ -#line 1858 "../../../hphp/util/parser/hphp.y" +#line 1854 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 459: /* Line 1455 of yacc.c */ -#line 1859 "../../../hphp/util/parser/hphp.y" +#line 1855 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 460: /* Line 1455 of yacc.c */ -#line 1860 "../../../hphp/util/parser/hphp.y" +#line 1856 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 461: /* Line 1455 of yacc.c */ -#line 1861 "../../../hphp/util/parser/hphp.y" +#line 1857 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 462: /* Line 1455 of yacc.c */ -#line 1866 "../../../hphp/util/parser/hphp.y" +#line 1862 "../../../hphp/util/parser/hphp.y" { _p->onCall((yyval),0,(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),NULL);;} break; case 463: /* Line 1455 of yacc.c */ -#line 1870 "../../../hphp/util/parser/hphp.y" +#line 1866 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 464: /* Line 1455 of yacc.c */ -#line 1871 "../../../hphp/util/parser/hphp.y" +#line 1867 "../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpLabel(); (yyval) = (yyvsp[(1) - (1)]);;} break; case 465: /* Line 1455 of yacc.c */ -#line 1874 "../../../hphp/util/parser/hphp.y" +#line 1870 "../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]),Parser::StringName);;} break; case 466: /* Line 1455 of yacc.c */ -#line 1875 "../../../hphp/util/parser/hphp.y" +#line 1871 "../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]),Parser::StaticName);;} break; case 467: /* Line 1455 of yacc.c */ -#line 1876 "../../../hphp/util/parser/hphp.y" +#line 1872 "../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]), Parser::StaticClassExprName);;} break; @@ -8725,98 +8721,98 @@ yyreduce: case 468: /* Line 1455 of yacc.c */ -#line 1880 "../../../hphp/util/parser/hphp.y" +#line 1876 "../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]),Parser::StringName);;} break; case 469: /* Line 1455 of yacc.c */ -#line 1881 "../../../hphp/util/parser/hphp.y" +#line 1877 "../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]),Parser::StaticName);;} break; case 470: /* Line 1455 of yacc.c */ -#line 1882 "../../../hphp/util/parser/hphp.y" +#line 1878 "../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]),Parser::ExprName);;} break; case 471: /* Line 1455 of yacc.c */ -#line 1886 "../../../hphp/util/parser/hphp.y" +#line 1882 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 472: /* Line 1455 of yacc.c */ -#line 1887 "../../../hphp/util/parser/hphp.y" +#line 1883 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 473: /* Line 1455 of yacc.c */ -#line 1888 "../../../hphp/util/parser/hphp.y" +#line 1884 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 474: /* Line 1455 of yacc.c */ -#line 1892 "../../../hphp/util/parser/hphp.y" +#line 1888 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 475: /* Line 1455 of yacc.c */ -#line 1893 "../../../hphp/util/parser/hphp.y" +#line 1889 "../../../hphp/util/parser/hphp.y" { _p->addEncap((yyval), NULL, (yyvsp[(1) - (1)]), 0);;} break; case 476: /* Line 1455 of yacc.c */ -#line 1894 "../../../hphp/util/parser/hphp.y" +#line 1890 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 477: /* Line 1455 of yacc.c */ -#line 1898 "../../../hphp/util/parser/hphp.y" +#line 1894 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 478: /* Line 1455 of yacc.c */ -#line 1899 "../../../hphp/util/parser/hphp.y" +#line 1895 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 479: /* Line 1455 of yacc.c */ -#line 1903 "../../../hphp/util/parser/hphp.y" +#line 1899 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_LNUMBER, (yyvsp[(1) - (1)]));;} break; case 480: /* Line 1455 of yacc.c */ -#line 1904 "../../../hphp/util/parser/hphp.y" +#line 1900 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_DNUMBER, (yyvsp[(1) - (1)]));;} break; case 481: /* Line 1455 of yacc.c */ -#line 1905 "../../../hphp/util/parser/hphp.y" +#line 1901 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(1) - (1)]));;} break; @@ -8824,112 +8820,112 @@ yyreduce: case 482: /* Line 1455 of yacc.c */ -#line 1907 "../../../hphp/util/parser/hphp.y" +#line 1903 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_LINE, (yyvsp[(1) - (1)]));;} break; case 483: /* Line 1455 of yacc.c */ -#line 1908 "../../../hphp/util/parser/hphp.y" +#line 1904 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_FILE, (yyvsp[(1) - (1)]));;} break; case 484: /* Line 1455 of yacc.c */ -#line 1909 "../../../hphp/util/parser/hphp.y" +#line 1905 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_DIR, (yyvsp[(1) - (1)]));;} break; case 485: /* Line 1455 of yacc.c */ -#line 1910 "../../../hphp/util/parser/hphp.y" +#line 1906 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CLASS_C, (yyvsp[(1) - (1)]));;} break; case 486: /* Line 1455 of yacc.c */ -#line 1911 "../../../hphp/util/parser/hphp.y" +#line 1907 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_TRAIT_C, (yyvsp[(1) - (1)]));;} break; case 487: /* Line 1455 of yacc.c */ -#line 1912 "../../../hphp/util/parser/hphp.y" +#line 1908 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_METHOD_C, (yyvsp[(1) - (1)]));;} break; case 488: /* Line 1455 of yacc.c */ -#line 1913 "../../../hphp/util/parser/hphp.y" +#line 1909 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_FUNC_C, (yyvsp[(1) - (1)]));;} break; case 489: /* Line 1455 of yacc.c */ -#line 1914 "../../../hphp/util/parser/hphp.y" +#line 1910 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_NS_C, (yyvsp[(1) - (1)]));;} break; case 490: /* Line 1455 of yacc.c */ -#line 1917 "../../../hphp/util/parser/hphp.y" +#line 1913 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(2) - (3)]));;} break; case 491: /* Line 1455 of yacc.c */ -#line 1919 "../../../hphp/util/parser/hphp.y" +#line 1915 "../../../hphp/util/parser/hphp.y" { (yyval).setText(""); _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyval));;} break; case 492: /* Line 1455 of yacc.c */ -#line 1923 "../../../hphp/util/parser/hphp.y" +#line 1919 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 493: /* Line 1455 of yacc.c */ -#line 1924 "../../../hphp/util/parser/hphp.y" +#line 1920 "../../../hphp/util/parser/hphp.y" { _p->onConstantValue((yyval), (yyvsp[(1) - (1)]));;} break; case 494: /* Line 1455 of yacc.c */ -#line 1925 "../../../hphp/util/parser/hphp.y" +#line 1921 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'+',1);;} break; case 495: /* Line 1455 of yacc.c */ -#line 1926 "../../../hphp/util/parser/hphp.y" +#line 1922 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'-',1);;} break; case 496: /* Line 1455 of yacc.c */ -#line 1928 "../../../hphp/util/parser/hphp.y" +#line 1924 "../../../hphp/util/parser/hphp.y" { _p->onArray((yyval),(yyvsp[(3) - (4)]),T_ARRAY); ;} break; case 497: /* Line 1455 of yacc.c */ -#line 1930 "../../../hphp/util/parser/hphp.y" +#line 1926 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); _p->onArray((yyval),(yyvsp[(3) - (4)]),T_ARRAY); ;} break; @@ -8937,28 +8933,28 @@ yyreduce: case 498: /* Line 1455 of yacc.c */ -#line 1932 "../../../hphp/util/parser/hphp.y" +#line 1928 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 499: /* Line 1455 of yacc.c */ -#line 1933 "../../../hphp/util/parser/hphp.y" +#line 1929 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 500: /* Line 1455 of yacc.c */ -#line 1939 "../../../hphp/util/parser/hphp.y" +#line 1935 "../../../hphp/util/parser/hphp.y" { _p->onClassConst((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), 1);;} break; case 501: /* Line 1455 of yacc.c */ -#line 1941 "../../../hphp/util/parser/hphp.y" +#line 1937 "../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (3)]).xhpLabel(); _p->onClassConst((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), 1);;} break; @@ -8966,49 +8962,49 @@ yyreduce: case 502: /* Line 1455 of yacc.c */ -#line 1946 "../../../hphp/util/parser/hphp.y" +#line 1942 "../../../hphp/util/parser/hphp.y" { _p->onConstantValue((yyval), (yyvsp[(1) - (1)]));;} break; case 503: /* Line 1455 of yacc.c */ -#line 1947 "../../../hphp/util/parser/hphp.y" +#line 1943 "../../../hphp/util/parser/hphp.y" { _p->onConstantValue((yyval), (yyvsp[(1) - (1)]));;} break; case 504: /* Line 1455 of yacc.c */ -#line 1948 "../../../hphp/util/parser/hphp.y" +#line 1944 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 505: /* Line 1455 of yacc.c */ -#line 1949 "../../../hphp/util/parser/hphp.y" +#line 1945 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 506: /* Line 1455 of yacc.c */ -#line 1950 "../../../hphp/util/parser/hphp.y" +#line 1946 "../../../hphp/util/parser/hphp.y" { _p->onEncapsList((yyval),'"',(yyvsp[(2) - (3)]));;} break; case 507: /* Line 1455 of yacc.c */ -#line 1951 "../../../hphp/util/parser/hphp.y" +#line 1947 "../../../hphp/util/parser/hphp.y" { _p->onEncapsList((yyval),'\'',(yyvsp[(2) - (3)]));;} break; case 508: /* Line 1455 of yacc.c */ -#line 1953 "../../../hphp/util/parser/hphp.y" +#line 1949 "../../../hphp/util/parser/hphp.y" { _p->onEncapsList((yyval),T_START_HEREDOC, (yyvsp[(2) - (3)]));;} break; @@ -9016,91 +9012,91 @@ yyreduce: case 509: /* Line 1455 of yacc.c */ -#line 1958 "../../../hphp/util/parser/hphp.y" +#line 1954 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 510: /* Line 1455 of yacc.c */ -#line 1959 "../../../hphp/util/parser/hphp.y" +#line 1955 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 511: /* Line 1455 of yacc.c */ -#line 1963 "../../../hphp/util/parser/hphp.y" +#line 1959 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 512: /* Line 1455 of yacc.c */ -#line 1964 "../../../hphp/util/parser/hphp.y" +#line 1960 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 513: /* Line 1455 of yacc.c */ -#line 1967 "../../../hphp/util/parser/hphp.y" +#line 1963 "../../../hphp/util/parser/hphp.y" { only_in_hphp_syntax(_p); (yyval).reset();;} break; case 514: /* Line 1455 of yacc.c */ -#line 1968 "../../../hphp/util/parser/hphp.y" +#line 1964 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 515: /* Line 1455 of yacc.c */ -#line 1974 "../../../hphp/util/parser/hphp.y" +#line 1970 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0);;} break; case 516: /* Line 1455 of yacc.c */ -#line 1976 "../../../hphp/util/parser/hphp.y" +#line 1972 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]),0);;} break; case 517: /* Line 1455 of yacc.c */ -#line 1978 "../../../hphp/util/parser/hphp.y" +#line 1974 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 518: /* Line 1455 of yacc.c */ -#line 1979 "../../../hphp/util/parser/hphp.y" +#line 1975 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0, 0,(yyvsp[(1) - (1)]),0);;} break; case 519: /* Line 1455 of yacc.c */ -#line 1983 "../../../hphp/util/parser/hphp.y" +#line 1979 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_LNUMBER, (yyvsp[(1) - (1)]));;} break; case 520: /* Line 1455 of yacc.c */ -#line 1984 "../../../hphp/util/parser/hphp.y" +#line 1980 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_DNUMBER, (yyvsp[(1) - (1)]));;} break; case 521: /* Line 1455 of yacc.c */ -#line 1985 "../../../hphp/util/parser/hphp.y" +#line 1981 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(1) - (1)]));;} break; @@ -9108,77 +9104,77 @@ yyreduce: case 522: /* Line 1455 of yacc.c */ -#line 1989 "../../../hphp/util/parser/hphp.y" +#line 1985 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(2) - (3)]));;} break; case 523: /* Line 1455 of yacc.c */ -#line 1991 "../../../hphp/util/parser/hphp.y" +#line 1987 "../../../hphp/util/parser/hphp.y" { (yyval).setText(""); _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyval));;} break; case 524: /* Line 1455 of yacc.c */ -#line 1994 "../../../hphp/util/parser/hphp.y" +#line 1990 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval),T_LNUMBER,(yyvsp[(1) - (1)]));;} break; case 525: /* Line 1455 of yacc.c */ -#line 1995 "../../../hphp/util/parser/hphp.y" +#line 1991 "../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval),T_DNUMBER,(yyvsp[(1) - (1)]));;} break; case 526: /* Line 1455 of yacc.c */ -#line 1996 "../../../hphp/util/parser/hphp.y" +#line 1992 "../../../hphp/util/parser/hphp.y" { constant_ae(_p,(yyval),(yyvsp[(1) - (1)]));;} break; case 527: /* Line 1455 of yacc.c */ -#line 1999 "../../../hphp/util/parser/hphp.y" +#line 1995 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 528: /* Line 1455 of yacc.c */ -#line 2000 "../../../hphp/util/parser/hphp.y" +#line 1996 "../../../hphp/util/parser/hphp.y" { constant_ae(_p,(yyval),(yyvsp[(1) - (1)]));;} break; case 529: /* Line 1455 of yacc.c */ -#line 2001 "../../../hphp/util/parser/hphp.y" +#line 1997 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'+',1);;} break; case 530: /* Line 1455 of yacc.c */ -#line 2002 "../../../hphp/util/parser/hphp.y" +#line 1998 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'-',1);;} break; case 531: /* Line 1455 of yacc.c */ -#line 2004 "../../../hphp/util/parser/hphp.y" +#line 2000 "../../../hphp/util/parser/hphp.y" { _p->onArray((yyval),(yyvsp[(3) - (4)]),T_ARRAY);;} break; case 532: /* Line 1455 of yacc.c */ -#line 2006 "../../../hphp/util/parser/hphp.y" +#line 2002 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); _p->onArray((yyval),(yyvsp[(3) - (4)]),T_ARRAY); ;} break; @@ -9186,77 +9182,77 @@ yyreduce: case 533: /* Line 1455 of yacc.c */ -#line 2012 "../../../hphp/util/parser/hphp.y" +#line 2008 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 534: /* Line 1455 of yacc.c */ -#line 2013 "../../../hphp/util/parser/hphp.y" +#line 2009 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 535: /* Line 1455 of yacc.c */ -#line 2018 "../../../hphp/util/parser/hphp.y" +#line 2014 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0);;} break; case 536: /* Line 1455 of yacc.c */ -#line 2020 "../../../hphp/util/parser/hphp.y" +#line 2016 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]),0);;} break; case 537: /* Line 1455 of yacc.c */ -#line 2022 "../../../hphp/util/parser/hphp.y" +#line 2018 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 538: /* Line 1455 of yacc.c */ -#line 2023 "../../../hphp/util/parser/hphp.y" +#line 2019 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0, 0,(yyvsp[(1) - (1)]),0);;} break; case 539: /* Line 1455 of yacc.c */ -#line 2027 "../../../hphp/util/parser/hphp.y" +#line 2023 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]),0);;} break; case 540: /* Line 1455 of yacc.c */ -#line 2028 "../../../hphp/util/parser/hphp.y" +#line 2024 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0, 0,(yyvsp[(1) - (1)]),0);;} break; case 541: /* Line 1455 of yacc.c */ -#line 2033 "../../../hphp/util/parser/hphp.y" +#line 2029 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]); ;} break; case 542: /* Line 1455 of yacc.c */ -#line 2034 "../../../hphp/util/parser/hphp.y" +#line 2030 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 543: /* Line 1455 of yacc.c */ -#line 2039 "../../../hphp/util/parser/hphp.y" +#line 2035 "../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(3) - (5)]), _p); _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0); ;} break; @@ -9264,7 +9260,7 @@ yyreduce: case 544: /* Line 1455 of yacc.c */ -#line 2043 "../../../hphp/util/parser/hphp.y" +#line 2039 "../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(1) - (3)]), _p); _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0); ;} break; @@ -9272,28 +9268,28 @@ yyreduce: case 545: /* Line 1455 of yacc.c */ -#line 2049 "../../../hphp/util/parser/hphp.y" +#line 2045 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 546: /* Line 1455 of yacc.c */ -#line 2050 "../../../hphp/util/parser/hphp.y" +#line 2046 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 547: /* Line 1455 of yacc.c */ -#line 2053 "../../../hphp/util/parser/hphp.y" +#line 2049 "../../../hphp/util/parser/hphp.y" { _p->onArray((yyval),(yyvsp[(2) - (3)]),T_ARRAY);;} break; case 548: /* Line 1455 of yacc.c */ -#line 2054 "../../../hphp/util/parser/hphp.y" +#line 2050 "../../../hphp/util/parser/hphp.y" { Token t; t.reset(); _p->onArray((yyval),t,T_ARRAY);;} break; @@ -9301,693 +9297,693 @@ yyreduce: case 549: /* Line 1455 of yacc.c */ -#line 2061 "../../../hphp/util/parser/hphp.y" +#line 2057 "../../../hphp/util/parser/hphp.y" { _p->onUserAttribute((yyval),&(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),(yyvsp[(4) - (4)]));;} break; case 550: /* Line 1455 of yacc.c */ -#line 2063 "../../../hphp/util/parser/hphp.y" +#line 2059 "../../../hphp/util/parser/hphp.y" { _p->onUserAttribute((yyval), 0,(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 551: /* Line 1455 of yacc.c */ -#line 2066 "../../../hphp/util/parser/hphp.y" +#line 2062 "../../../hphp/util/parser/hphp.y" { user_attribute_check(_p);;} break; case 552: /* Line 1455 of yacc.c */ -#line 2068 "../../../hphp/util/parser/hphp.y" +#line 2064 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 553: /* Line 1455 of yacc.c */ -#line 2071 "../../../hphp/util/parser/hphp.y" +#line 2067 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 554: /* Line 1455 of yacc.c */ -#line 2074 "../../../hphp/util/parser/hphp.y" +#line 2070 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 555: /* Line 1455 of yacc.c */ -#line 2075 "../../../hphp/util/parser/hphp.y" +#line 2071 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 556: /* Line 1455 of yacc.c */ -#line 2079 "../../../hphp/util/parser/hphp.y" +#line 2075 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 557: /* Line 1455 of yacc.c */ -#line 2081 "../../../hphp/util/parser/hphp.y" +#line 2077 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 558: /* Line 1455 of yacc.c */ -#line 2085 "../../../hphp/util/parser/hphp.y" +#line 2081 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 559: /* Line 1455 of yacc.c */ -#line 2086 "../../../hphp/util/parser/hphp.y" +#line 2082 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (4)]);;} break; case 560: /* Line 1455 of yacc.c */ -#line 2090 "../../../hphp/util/parser/hphp.y" +#line 2086 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 561: /* Line 1455 of yacc.c */ -#line 2091 "../../../hphp/util/parser/hphp.y" +#line 2087 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 562: /* Line 1455 of yacc.c */ -#line 2095 "../../../hphp/util/parser/hphp.y" +#line 2091 "../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));;} break; case 563: /* Line 1455 of yacc.c */ -#line 2096 "../../../hphp/util/parser/hphp.y" +#line 2092 "../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(2) - (4)]), (yyvsp[(4) - (4)]));;} break; case 564: /* Line 1455 of yacc.c */ -#line 2101 "../../../hphp/util/parser/hphp.y" +#line 2097 "../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));;} break; case 565: /* Line 1455 of yacc.c */ -#line 2102 "../../../hphp/util/parser/hphp.y" +#line 2098 "../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(2) - (4)]), (yyvsp[(4) - (4)]));;} break; case 566: /* Line 1455 of yacc.c */ -#line 2106 "../../../hphp/util/parser/hphp.y" +#line 2102 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 567: /* Line 1455 of yacc.c */ -#line 2107 "../../../hphp/util/parser/hphp.y" +#line 2103 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 568: /* Line 1455 of yacc.c */ -#line 2108 "../../../hphp/util/parser/hphp.y" +#line 2104 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 569: /* Line 1455 of yacc.c */ -#line 2109 "../../../hphp/util/parser/hphp.y" +#line 2105 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 570: /* Line 1455 of yacc.c */ -#line 2110 "../../../hphp/util/parser/hphp.y" +#line 2106 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 571: /* Line 1455 of yacc.c */ -#line 2111 "../../../hphp/util/parser/hphp.y" +#line 2107 "../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 572: /* Line 1455 of yacc.c */ -#line 2112 "../../../hphp/util/parser/hphp.y" +#line 2108 "../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]));;} break; case 573: /* Line 1455 of yacc.c */ -#line 2115 "../../../hphp/util/parser/hphp.y" +#line 2111 "../../../hphp/util/parser/hphp.y" { _p->onStaticMember((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 574: /* Line 1455 of yacc.c */ -#line 2117 "../../../hphp/util/parser/hphp.y" +#line 2113 "../../../hphp/util/parser/hphp.y" { _p->onCall((yyval),1,(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),NULL);;} break; case 575: /* Line 1455 of yacc.c */ -#line 2118 "../../../hphp/util/parser/hphp.y" +#line 2114 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 576: /* Line 1455 of yacc.c */ -#line 2122 "../../../hphp/util/parser/hphp.y" +#line 2118 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 577: /* Line 1455 of yacc.c */ -#line 2123 "../../../hphp/util/parser/hphp.y" +#line 2119 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 578: /* Line 1455 of yacc.c */ -#line 2124 "../../../hphp/util/parser/hphp.y" +#line 2120 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 579: /* Line 1455 of yacc.c */ -#line 2125 "../../../hphp/util/parser/hphp.y" +#line 2121 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 580: /* Line 1455 of yacc.c */ -#line 2127 "../../../hphp/util/parser/hphp.y" +#line 2123 "../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 581: /* Line 1455 of yacc.c */ -#line 2129 "../../../hphp/util/parser/hphp.y" +#line 2125 "../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]));;} break; case 582: /* Line 1455 of yacc.c */ -#line 2131 "../../../hphp/util/parser/hphp.y" +#line 2127 "../../../hphp/util/parser/hphp.y" { _p->onCall((yyval),1,(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),NULL);;} break; case 583: /* Line 1455 of yacc.c */ -#line 2132 "../../../hphp/util/parser/hphp.y" +#line 2128 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 584: /* Line 1455 of yacc.c */ -#line 2136 "../../../hphp/util/parser/hphp.y" +#line 2132 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 585: /* Line 1455 of yacc.c */ -#line 2137 "../../../hphp/util/parser/hphp.y" +#line 2133 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 586: /* Line 1455 of yacc.c */ -#line 2138 "../../../hphp/util/parser/hphp.y" +#line 2134 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 587: /* Line 1455 of yacc.c */ -#line 2144 "../../../hphp/util/parser/hphp.y" +#line 2140 "../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(1) - (7)]),(yyvsp[(3) - (7)]),(yyvsp[(6) - (7)]));;} break; case 588: /* Line 1455 of yacc.c */ -#line 2147 "../../../hphp/util/parser/hphp.y" +#line 2143 "../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(1) - (6)]),(yyvsp[(3) - (6)]),(yyvsp[(5) - (6)]));;} break; case 589: /* Line 1455 of yacc.c */ -#line 2150 "../../../hphp/util/parser/hphp.y" +#line 2146 "../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(1) - (8)]),(yyvsp[(4) - (8)]),(yyvsp[(7) - (8)]));;} break; case 590: /* Line 1455 of yacc.c */ -#line 2153 "../../../hphp/util/parser/hphp.y" +#line 2149 "../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(2) - (9)]),(yyvsp[(5) - (9)]),(yyvsp[(8) - (9)]));;} break; case 591: /* Line 1455 of yacc.c */ -#line 2156 "../../../hphp/util/parser/hphp.y" +#line 2152 "../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(2) - (8)]),(yyvsp[(5) - (8)]),(yyvsp[(7) - (8)]));;} break; case 592: /* Line 1455 of yacc.c */ -#line 2159 "../../../hphp/util/parser/hphp.y" +#line 2155 "../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(2) - (10)]),(yyvsp[(6) - (10)]),(yyvsp[(9) - (10)]));;} break; case 593: /* Line 1455 of yacc.c */ -#line 2166 "../../../hphp/util/parser/hphp.y" +#line 2162 "../../../hphp/util/parser/hphp.y" { _p->onCall((yyval),0,(yyvsp[(3) - (7)]),(yyvsp[(6) - (7)]),&(yyvsp[(1) - (7)]));;} break; case 594: /* Line 1455 of yacc.c */ -#line 2170 "../../../hphp/util/parser/hphp.y" +#line 2166 "../../../hphp/util/parser/hphp.y" { _p->onCall((yyval),1,(yyvsp[(3) - (6)]),(yyvsp[(5) - (6)]),&(yyvsp[(1) - (6)]));;} break; case 595: /* Line 1455 of yacc.c */ -#line 2174 "../../../hphp/util/parser/hphp.y" +#line 2170 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 596: /* Line 1455 of yacc.c */ -#line 2176 "../../../hphp/util/parser/hphp.y" +#line 2172 "../../../hphp/util/parser/hphp.y" { _p->onIndirectRef((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 597: /* Line 1455 of yacc.c */ -#line 2181 "../../../hphp/util/parser/hphp.y" +#line 2177 "../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (4)]), (yyvsp[(3) - (4)]));;} break; case 598: /* Line 1455 of yacc.c */ -#line 2182 "../../../hphp/util/parser/hphp.y" +#line 2178 "../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (4)]), (yyvsp[(3) - (4)]));;} break; case 599: /* Line 1455 of yacc.c */ -#line 2183 "../../../hphp/util/parser/hphp.y" +#line 2179 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 600: /* Line 1455 of yacc.c */ -#line 2186 "../../../hphp/util/parser/hphp.y" +#line 2182 "../../../hphp/util/parser/hphp.y" { _p->onSimpleVariable((yyval), (yyvsp[(1) - (1)]));;} break; case 601: /* Line 1455 of yacc.c */ -#line 2187 "../../../hphp/util/parser/hphp.y" +#line 2183 "../../../hphp/util/parser/hphp.y" { _p->onDynamicVariable((yyval), (yyvsp[(3) - (4)]), 0);;} break; case 602: /* Line 1455 of yacc.c */ -#line 2190 "../../../hphp/util/parser/hphp.y" +#line 2186 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 603: /* Line 1455 of yacc.c */ -#line 2191 "../../../hphp/util/parser/hphp.y" +#line 2187 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 604: /* Line 1455 of yacc.c */ -#line 2195 "../../../hphp/util/parser/hphp.y" +#line 2191 "../../../hphp/util/parser/hphp.y" { (yyval) = 1;;} break; case 605: /* Line 1455 of yacc.c */ -#line 2196 "../../../hphp/util/parser/hphp.y" +#line 2192 "../../../hphp/util/parser/hphp.y" { (yyval)++;;} break; case 606: /* Line 1455 of yacc.c */ -#line 2200 "../../../hphp/util/parser/hphp.y" +#line 2196 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 607: /* Line 1455 of yacc.c */ -#line 2201 "../../../hphp/util/parser/hphp.y" +#line 2197 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 608: /* Line 1455 of yacc.c */ -#line 2202 "../../../hphp/util/parser/hphp.y" +#line 2198 "../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 609: /* Line 1455 of yacc.c */ -#line 2203 "../../../hphp/util/parser/hphp.y" +#line 2199 "../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]));;} break; case 610: /* Line 1455 of yacc.c */ -#line 2206 "../../../hphp/util/parser/hphp.y" +#line 2202 "../../../hphp/util/parser/hphp.y" { _p->onStaticMember((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 611: /* Line 1455 of yacc.c */ -#line 2207 "../../../hphp/util/parser/hphp.y" +#line 2203 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 613: /* Line 1455 of yacc.c */ -#line 2211 "../../../hphp/util/parser/hphp.y" +#line 2207 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 614: /* Line 1455 of yacc.c */ -#line 2213 "../../../hphp/util/parser/hphp.y" +#line 2209 "../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 615: /* Line 1455 of yacc.c */ -#line 2215 "../../../hphp/util/parser/hphp.y" +#line 2211 "../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]));;} break; case 616: /* Line 1455 of yacc.c */ -#line 2216 "../../../hphp/util/parser/hphp.y" +#line 2212 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 617: /* Line 1455 of yacc.c */ -#line 2220 "../../../hphp/util/parser/hphp.y" +#line 2216 "../../../hphp/util/parser/hphp.y" { _p->onAListVar((yyval),&(yyvsp[(1) - (2)]),NULL);;} break; case 618: /* Line 1455 of yacc.c */ -#line 2221 "../../../hphp/util/parser/hphp.y" +#line 2217 "../../../hphp/util/parser/hphp.y" { _p->onAListVar((yyval),&(yyvsp[(1) - (3)]),&(yyvsp[(3) - (3)]));;} break; case 619: /* Line 1455 of yacc.c */ -#line 2223 "../../../hphp/util/parser/hphp.y" +#line 2219 "../../../hphp/util/parser/hphp.y" { _p->onAListSub((yyval),&(yyvsp[(1) - (6)]),(yyvsp[(5) - (6)]));;} break; case 620: /* Line 1455 of yacc.c */ -#line 2224 "../../../hphp/util/parser/hphp.y" +#line 2220 "../../../hphp/util/parser/hphp.y" { _p->onAListVar((yyval),NULL,NULL);;} break; case 621: /* Line 1455 of yacc.c */ -#line 2225 "../../../hphp/util/parser/hphp.y" +#line 2221 "../../../hphp/util/parser/hphp.y" { _p->onAListVar((yyval),NULL,&(yyvsp[(1) - (1)]));;} break; case 622: /* Line 1455 of yacc.c */ -#line 2226 "../../../hphp/util/parser/hphp.y" +#line 2222 "../../../hphp/util/parser/hphp.y" { _p->onAListSub((yyval),NULL,(yyvsp[(3) - (4)]));;} break; case 623: /* Line 1455 of yacc.c */ -#line 2231 "../../../hphp/util/parser/hphp.y" +#line 2227 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 624: /* Line 1455 of yacc.c */ -#line 2232 "../../../hphp/util/parser/hphp.y" +#line 2228 "../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 625: /* Line 1455 of yacc.c */ -#line 2236 "../../../hphp/util/parser/hphp.y" +#line 2232 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0);;} break; case 626: /* Line 1455 of yacc.c */ -#line 2237 "../../../hphp/util/parser/hphp.y" +#line 2233 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]),0);;} break; case 627: /* Line 1455 of yacc.c */ -#line 2238 "../../../hphp/util/parser/hphp.y" +#line 2234 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 628: /* Line 1455 of yacc.c */ -#line 2239 "../../../hphp/util/parser/hphp.y" +#line 2235 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0, 0,(yyvsp[(1) - (1)]),0);;} break; case 629: /* Line 1455 of yacc.c */ -#line 2242 "../../../hphp/util/parser/hphp.y" +#line 2238 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (6)]),&(yyvsp[(3) - (6)]),(yyvsp[(6) - (6)]),1);;} break; case 630: /* Line 1455 of yacc.c */ -#line 2244 "../../../hphp/util/parser/hphp.y" +#line 2240 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (4)]), 0,(yyvsp[(4) - (4)]),1);;} break; case 631: /* Line 1455 of yacc.c */ -#line 2245 "../../../hphp/util/parser/hphp.y" +#line 2241 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),1);;} break; case 632: /* Line 1455 of yacc.c */ -#line 2246 "../../../hphp/util/parser/hphp.y" +#line 2242 "../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0, 0,(yyvsp[(2) - (2)]),1);;} break; case 633: /* Line 1455 of yacc.c */ -#line 2251 "../../../hphp/util/parser/hphp.y" +#line 2247 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 634: /* Line 1455 of yacc.c */ -#line 2252 "../../../hphp/util/parser/hphp.y" +#line 2248 "../../../hphp/util/parser/hphp.y" { _p->onEmptyCollection((yyval));;} break; case 635: /* Line 1455 of yacc.c */ -#line 2256 "../../../hphp/util/parser/hphp.y" +#line 2252 "../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]));;} break; case 636: /* Line 1455 of yacc.c */ -#line 2257 "../../../hphp/util/parser/hphp.y" +#line 2253 "../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]));;} break; case 637: /* Line 1455 of yacc.c */ -#line 2258 "../../../hphp/util/parser/hphp.y" +#line 2254 "../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 638: /* Line 1455 of yacc.c */ -#line 2259 "../../../hphp/util/parser/hphp.y" +#line 2255 "../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval), 0, 0,(yyvsp[(1) - (1)]));;} break; case 639: /* Line 1455 of yacc.c */ -#line 2264 "../../../hphp/util/parser/hphp.y" +#line 2260 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 640: /* Line 1455 of yacc.c */ -#line 2265 "../../../hphp/util/parser/hphp.y" +#line 2261 "../../../hphp/util/parser/hphp.y" { _p->onEmptyCollection((yyval));;} break; case 641: /* Line 1455 of yacc.c */ -#line 2270 "../../../hphp/util/parser/hphp.y" +#line 2266 "../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]));;} break; case 642: /* Line 1455 of yacc.c */ -#line 2272 "../../../hphp/util/parser/hphp.y" +#line 2268 "../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]));;} break; case 643: /* Line 1455 of yacc.c */ -#line 2274 "../../../hphp/util/parser/hphp.y" +#line 2270 "../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 644: /* Line 1455 of yacc.c */ -#line 2275 "../../../hphp/util/parser/hphp.y" +#line 2271 "../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval), 0, 0,(yyvsp[(1) - (1)]));;} break; case 645: /* Line 1455 of yacc.c */ -#line 2279 "../../../hphp/util/parser/hphp.y" +#line 2275 "../../../hphp/util/parser/hphp.y" { _p->addEncap((yyval), &(yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]), -1);;} break; case 646: /* Line 1455 of yacc.c */ -#line 2281 "../../../hphp/util/parser/hphp.y" +#line 2277 "../../../hphp/util/parser/hphp.y" { _p->addEncap((yyval), &(yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]), 0);;} break; case 647: /* Line 1455 of yacc.c */ -#line 2282 "../../../hphp/util/parser/hphp.y" +#line 2278 "../../../hphp/util/parser/hphp.y" { _p->addEncap((yyval), NULL, (yyvsp[(1) - (1)]), -1);;} break; case 648: /* Line 1455 of yacc.c */ -#line 2284 "../../../hphp/util/parser/hphp.y" +#line 2280 "../../../hphp/util/parser/hphp.y" { _p->addEncap((yyval), NULL, (yyvsp[(1) - (2)]), 0); _p->addEncap((yyval), &(yyval), (yyvsp[(2) - (2)]), -1); ;} break; @@ -9995,140 +9991,140 @@ yyreduce: case 649: /* Line 1455 of yacc.c */ -#line 2289 "../../../hphp/util/parser/hphp.y" +#line 2285 "../../../hphp/util/parser/hphp.y" { _p->onSimpleVariable((yyval), (yyvsp[(1) - (1)]));;} break; case 650: /* Line 1455 of yacc.c */ -#line 2291 "../../../hphp/util/parser/hphp.y" +#line 2287 "../../../hphp/util/parser/hphp.y" { _p->encapRefDim((yyval), (yyvsp[(1) - (4)]), (yyvsp[(3) - (4)]));;} break; case 651: /* Line 1455 of yacc.c */ -#line 2293 "../../../hphp/util/parser/hphp.y" +#line 2289 "../../../hphp/util/parser/hphp.y" { _p->encapObjProp((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 652: /* Line 1455 of yacc.c */ -#line 2295 "../../../hphp/util/parser/hphp.y" +#line 2291 "../../../hphp/util/parser/hphp.y" { _p->onDynamicVariable((yyval), (yyvsp[(2) - (3)]), 1);;} break; case 653: /* Line 1455 of yacc.c */ -#line 2297 "../../../hphp/util/parser/hphp.y" +#line 2293 "../../../hphp/util/parser/hphp.y" { _p->encapArray((yyval), (yyvsp[(2) - (6)]), (yyvsp[(4) - (6)]));;} break; case 654: /* Line 1455 of yacc.c */ -#line 2298 "../../../hphp/util/parser/hphp.y" +#line 2294 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 655: /* Line 1455 of yacc.c */ -#line 2301 "../../../hphp/util/parser/hphp.y" +#line 2297 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); (yyval) = T_STRING;;} break; case 656: /* Line 1455 of yacc.c */ -#line 2302 "../../../hphp/util/parser/hphp.y" +#line 2298 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); (yyval) = T_NUM_STRING;;} break; case 657: /* Line 1455 of yacc.c */ -#line 2303 "../../../hphp/util/parser/hphp.y" +#line 2299 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); (yyval) = T_VARIABLE;;} break; case 658: /* Line 1455 of yacc.c */ -#line 2307 "../../../hphp/util/parser/hphp.y" +#line 2303 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(3) - (4)]),T_ISSET,1);;} break; case 659: /* Line 1455 of yacc.c */ -#line 2308 "../../../hphp/util/parser/hphp.y" +#line 2304 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(3) - (4)]),T_EMPTY,1);;} break; case 660: /* Line 1455 of yacc.c */ -#line 2309 "../../../hphp/util/parser/hphp.y" +#line 2305 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_INCLUDE,1);;} break; case 661: /* Line 1455 of yacc.c */ -#line 2310 "../../../hphp/util/parser/hphp.y" +#line 2306 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_INCLUDE_ONCE,1);;} break; case 662: /* Line 1455 of yacc.c */ -#line 2311 "../../../hphp/util/parser/hphp.y" +#line 2307 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(3) - (4)]),T_EVAL,1);;} break; case 663: /* Line 1455 of yacc.c */ -#line 2312 "../../../hphp/util/parser/hphp.y" +#line 2308 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_REQUIRE,1);;} break; case 664: /* Line 1455 of yacc.c */ -#line 2313 "../../../hphp/util/parser/hphp.y" +#line 2309 "../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_REQUIRE_ONCE,1);;} break; case 665: /* Line 1455 of yacc.c */ -#line 2317 "../../../hphp/util/parser/hphp.y" +#line 2313 "../../../hphp/util/parser/hphp.y" { _p->onExprListElem((yyval), NULL, (yyvsp[(1) - (1)]));;} break; case 666: /* Line 1455 of yacc.c */ -#line 2318 "../../../hphp/util/parser/hphp.y" +#line 2314 "../../../hphp/util/parser/hphp.y" { _p->onExprListElem((yyval), &(yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 667: /* Line 1455 of yacc.c */ -#line 2323 "../../../hphp/util/parser/hphp.y" +#line 2319 "../../../hphp/util/parser/hphp.y" { _p->onClassConst((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), 0);;} break; case 668: /* Line 1455 of yacc.c */ -#line 2331 "../../../hphp/util/parser/hphp.y" +#line 2327 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); _p->onTypedef((yyval), (yyvsp[(2) - (5)]), (yyvsp[(4) - (5)])); ;} break; @@ -10136,28 +10132,28 @@ yyreduce: case 669: /* Line 1455 of yacc.c */ -#line 2336 "../../../hphp/util/parser/hphp.y" +#line 2332 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 670: /* Line 1455 of yacc.c */ -#line 2337 "../../../hphp/util/parser/hphp.y" +#line 2333 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval) = (yyvsp[(2) - (2)]); ;} break; case 671: /* Line 1455 of yacc.c */ -#line 2343 "../../../hphp/util/parser/hphp.y" +#line 2339 "../../../hphp/util/parser/hphp.y" { _p->pushTypeScope(); (yyval) = (yyvsp[(1) - (1)]); ;} break; case 672: /* Line 1455 of yacc.c */ -#line 2347 "../../../hphp/util/parser/hphp.y" +#line 2343 "../../../hphp/util/parser/hphp.y" { _p->pushTypeScope(); (yyval) = (yyvsp[(1) - (4)]); only_in_strict_mode(_p); ;} break; @@ -10165,112 +10161,112 @@ yyreduce: case 673: /* Line 1455 of yacc.c */ -#line 2354 "../../../hphp/util/parser/hphp.y" +#line 2350 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval) = (yyvsp[(2) - (3)]); ;} break; case 674: /* Line 1455 of yacc.c */ -#line 2355 "../../../hphp/util/parser/hphp.y" +#line 2351 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 677: /* Line 1455 of yacc.c */ -#line 2364 "../../../hphp/util/parser/hphp.y" +#line 2360 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 678: /* Line 1455 of yacc.c */ -#line 2365 "../../../hphp/util/parser/hphp.y" +#line 2361 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 679: /* Line 1455 of yacc.c */ -#line 2366 "../../../hphp/util/parser/hphp.y" +#line 2362 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 680: /* Line 1455 of yacc.c */ -#line 2367 "../../../hphp/util/parser/hphp.y" +#line 2363 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 681: /* Line 1455 of yacc.c */ -#line 2371 "../../../hphp/util/parser/hphp.y" +#line 2367 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 682: /* Line 1455 of yacc.c */ -#line 2372 "../../../hphp/util/parser/hphp.y" +#line 2368 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval) = (yyvsp[(2) - (2)]); ;} break; case 683: /* Line 1455 of yacc.c */ -#line 2376 "../../../hphp/util/parser/hphp.y" +#line 2372 "../../../hphp/util/parser/hphp.y" { _p->addTypeVar((yyvsp[(1) - (3)]).text()); ;} break; case 684: /* Line 1455 of yacc.c */ -#line 2377 "../../../hphp/util/parser/hphp.y" +#line 2373 "../../../hphp/util/parser/hphp.y" { _p->addTypeVar((yyvsp[(1) - (1)]).text()); ;} break; case 686: /* Line 1455 of yacc.c */ -#line 2381 "../../../hphp/util/parser/hphp.y" +#line 2377 "../../../hphp/util/parser/hphp.y" { _p->addTypeVar((yyvsp[(1) - (5)]).text()); ;} break; case 687: /* Line 1455 of yacc.c */ -#line 2382 "../../../hphp/util/parser/hphp.y" +#line 2378 "../../../hphp/util/parser/hphp.y" { _p->addTypeVar((yyvsp[(1) - (3)]).text()); ;} break; case 689: /* Line 1455 of yacc.c */ -#line 2389 "../../../hphp/util/parser/hphp.y" +#line 2385 "../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(1) - (3)]), _p); ;} break; case 692: /* Line 1455 of yacc.c */ -#line 2400 "../../../hphp/util/parser/hphp.y" +#line 2396 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]); ;} break; case 693: /* Line 1455 of yacc.c */ -#line 2402 "../../../hphp/util/parser/hphp.y" +#line 2398 "../../../hphp/util/parser/hphp.y" {;} break; case 694: /* Line 1455 of yacc.c */ -#line 2406 "../../../hphp/util/parser/hphp.y" +#line 2402 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).setText("array"); ;} break; @@ -10278,21 +10274,21 @@ yyreduce: case 695: /* Line 1455 of yacc.c */ -#line 2414 "../../../hphp/util/parser/hphp.y" +#line 2410 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).reset(); ;} break; case 696: /* Line 1455 of yacc.c */ -#line 2415 "../../../hphp/util/parser/hphp.y" +#line 2411 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).reset(); ;} break; case 697: /* Line 1455 of yacc.c */ -#line 2416 "../../../hphp/util/parser/hphp.y" +#line 2412 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]); /* if the type annotation is a bound typevar we have to strip it */ @@ -10309,21 +10305,21 @@ yyreduce: case 698: /* Line 1455 of yacc.c */ -#line 2427 "../../../hphp/util/parser/hphp.y" +#line 2423 "../../../hphp/util/parser/hphp.y" { (yyval).setText("array"); ;} break; case 699: /* Line 1455 of yacc.c */ -#line 2428 "../../../hphp/util/parser/hphp.y" +#line 2424 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 700: /* Line 1455 of yacc.c */ -#line 2430 "../../../hphp/util/parser/hphp.y" +#line 2426 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).setText("array"); ;} break; @@ -10331,7 +10327,7 @@ yyreduce: case 701: /* Line 1455 of yacc.c */ -#line 2433 "../../../hphp/util/parser/hphp.y" +#line 2429 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).setText("array"); ;} break; @@ -10339,21 +10335,21 @@ yyreduce: case 702: /* Line 1455 of yacc.c */ -#line 2435 "../../../hphp/util/parser/hphp.y" +#line 2431 "../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpLabel(); (yyval) = (yyvsp[(1) - (1)]); ;} break; case 703: /* Line 1455 of yacc.c */ -#line 2438 "../../../hphp/util/parser/hphp.y" +#line 2434 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).reset(); ;} break; case 704: /* Line 1455 of yacc.c */ -#line 2439 "../../../hphp/util/parser/hphp.y" +#line 2435 "../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).setText("array"); ;} break; @@ -10361,21 +10357,21 @@ yyreduce: case 705: /* Line 1455 of yacc.c */ -#line 2444 "../../../hphp/util/parser/hphp.y" +#line 2440 "../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 706: /* Line 1455 of yacc.c */ -#line 2445 "../../../hphp/util/parser/hphp.y" +#line 2441 "../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; /* Line 1455 of yacc.c */ -#line 10378 "hphp.tab.cpp" +#line 10374 "hphp.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -10595,7 +10591,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 2448 "../../../hphp/util/parser/hphp.y" +#line 2444 "../../../hphp/util/parser/hphp.y" bool Parser::parseImpl() { return yyparse(this) == 0; diff --git a/hphp/compiler/parser/parser.cpp b/hphp/compiler/parser/parser.cpp index a4b44b4e2..d2f488e21 100644 --- a/hphp/compiler/parser/parser.cpp +++ b/hphp/compiler/parser/parser.cpp @@ -787,15 +787,10 @@ void Parser::fixStaticVars() { void Parser::onFunction(Token &out, Token *modifiers, Token &ret, Token &ref, Token &name, Token ¶ms, Token &stmt, Token *attr) { - ModifierExpressionPtr exp = modifiers? dynamic_pointer_cast(modifiers->exp) : NEW_EXP0(ModifierExpression); - const string &retType = ret.text(); - if (!retType.empty() && !ret.check()) { - PARSE_ERROR("Return type hint is not supported yet"); - } if (!stmt->stmt) { stmt->stmt = NEW_STMT0(StatementList); } @@ -828,6 +823,7 @@ void Parser::onFunction(Token &out, Token *modifiers, Token &ret, Token &ref, func = NEW_STMT(FunctionStatement, exp, ref->num(), closureName, dynamic_pointer_cast(new_params->exp), + ret.text(), dynamic_pointer_cast(stmt->stmt), attribute, comment, ExpressionListPtr()); out->stmt = func; @@ -878,7 +874,8 @@ void Parser::onFunction(Token &out, Token *modifiers, Token &ret, Token &ref, } func = NEW_STMT(FunctionStatement, exp, ref->num(), funcName, - old_params, dynamic_pointer_cast(stmt->stmt), + old_params, ret.text(), + dynamic_pointer_cast(stmt->stmt), attribute, comment, attrList); out->stmt = func; @@ -895,10 +892,6 @@ void Parser::onFunction(Token &out, Token *modifiers, Token &ret, Token &ref, out->stmt = NEW_STMT0(StatementList); } } - - if (hasType(ret)) { - // TODO - } } void Parser::onParam(Token &out, Token *params, Token &type, Token &var, @@ -1080,14 +1073,12 @@ void Parser::onClassVariableStart(Token &out, Token *modifiers, Token &decl, : NEW_EXP0(ModifierExpression); out->stmt = NEW_STMT - (ClassVariable, exp, dynamic_pointer_cast(decl->exp)); + (ClassVariable, exp, (type) ? type->text() : "", + dynamic_pointer_cast(decl->exp)); } else { out->stmt = - NEW_STMT(ClassConstant, dynamic_pointer_cast(decl->exp)); - } - - if (type && hasType(*type)) { - // TODO + NEW_STMT(ClassConstant, (type) ? type->text() : "", + dynamic_pointer_cast(decl->exp)); } } @@ -1130,6 +1121,7 @@ void Parser::onMethod(Token &out, Token &modifiers, Token &ret, Token &ref, ModifierExpressionPtr exp2 = Construct::Clone(exp); mth = NEW_STMT(MethodStatement, exp2, ref->num(), closureName, dynamic_pointer_cast(new_params->exp), + ret.text(), dynamic_pointer_cast(stmt->stmt), attribute, comment, ExpressionListPtr()); out->stmt = mth; @@ -1161,7 +1153,8 @@ void Parser::onMethod(Token &out, Token &modifiers, Token &ret, Token &ref, attrList = dynamic_pointer_cast(attr->exp); } mth = NEW_STMT(MethodStatement, exp, ref->num(), name->text(), - old_params, stmts, attribute, comment, attrList); + old_params, ret.text(), stmts, attribute, comment, + attrList); out->stmt = mth; if (reloc) { mth->getLocation()->line0 = loc->line0; @@ -1169,10 +1162,6 @@ void Parser::onMethod(Token &out, Token &modifiers, Token &ret, Token &ref, } completeScope(mth->onInitialParse(m_ar, m_file)); } - - if (hasType(ret)) { - // TODO - } } void Parser::onMemberModifier(Token &out, Token *modifiers, Token &modifier) { diff --git a/hphp/compiler/statement/class_constant.cpp b/hphp/compiler/statement/class_constant.cpp index de5937b03..2bb6b599e 100644 --- a/hphp/compiler/statement/class_constant.cpp +++ b/hphp/compiler/statement/class_constant.cpp @@ -30,9 +30,10 @@ using namespace HPHP; // constructors/destructors ClassConstant::ClassConstant -(STATEMENT_CONSTRUCTOR_PARAMETERS, ExpressionListPtr exp) +(STATEMENT_CONSTRUCTOR_PARAMETERS, std::string typeConstraint, + ExpressionListPtr exp) : Statement(STATEMENT_CONSTRUCTOR_PARAMETER_VALUES(ClassConstant)), - m_exp(exp) { + m_typeConstraint(typeConstraint), m_exp(exp) { } StatementPtr ClassConstant::clone() { diff --git a/hphp/compiler/statement/class_constant.h b/hphp/compiler/statement/class_constant.h index 32f23c4b2..f1027a5f6 100644 --- a/hphp/compiler/statement/class_constant.h +++ b/hphp/compiler/statement/class_constant.h @@ -27,7 +27,8 @@ DECLARE_BOOST_TYPES(ClassConstant); class ClassConstant : public Statement, public IParseHandler { public: - ClassConstant(STATEMENT_CONSTRUCTOR_PARAMETERS, ExpressionListPtr exp); + ClassConstant(STATEMENT_CONSTRUCTOR_PARAMETERS, std::string typeConstraint, + ExpressionListPtr exp); DECLARE_STATEMENT_VIRTUAL_FUNCTIONS; StatementPtr preOptimize(AnalysisResultConstPtr ar); @@ -35,8 +36,11 @@ public: // implementing IParseHandler virtual void onParseRecur(AnalysisResultConstPtr ar, ClassScopePtr scope); + std::string getTypeConstraint() const { return m_typeConstraint; } + ExpressionListPtr getConList() { return m_exp; } private: + std::string m_typeConstraint; ExpressionListPtr m_exp; }; diff --git a/hphp/compiler/statement/class_variable.cpp b/hphp/compiler/statement/class_variable.cpp index 06f94827b..804936410 100644 --- a/hphp/compiler/statement/class_variable.cpp +++ b/hphp/compiler/statement/class_variable.cpp @@ -32,9 +32,11 @@ using namespace HPHP; ClassVariable::ClassVariable (STATEMENT_CONSTRUCTOR_PARAMETERS, - ModifierExpressionPtr modifiers, ExpressionListPtr declaration) + ModifierExpressionPtr modifiers, std::string typeConstraint, + ExpressionListPtr declaration) : Statement(STATEMENT_CONSTRUCTOR_PARAMETER_VALUES(ClassVariable)), - m_modifiers(modifiers), m_declaration(declaration) { + m_modifiers(modifiers), m_typeConstraint(typeConstraint), + m_declaration(declaration) { } StatementPtr ClassVariable::clone() { diff --git a/hphp/compiler/statement/class_variable.h b/hphp/compiler/statement/class_variable.h index df5ac3de7..7b0b4eff3 100644 --- a/hphp/compiler/statement/class_variable.h +++ b/hphp/compiler/statement/class_variable.h @@ -31,6 +31,7 @@ class ClassVariable : public Statement, public IParseHandler { public: ClassVariable(STATEMENT_CONSTRUCTOR_PARAMETERS, ModifierExpressionPtr modifiers, + std::string typeConstraint, ExpressionListPtr declaration); DECLARE_STATEMENT_VIRTUAL_FUNCTIONS; @@ -39,6 +40,7 @@ public: // implementing IParseHandler virtual void onParseRecur(AnalysisResultConstPtr ar, ClassScopePtr scope); + std::string getTypeConstraint() const { return m_typeConstraint; } ExpressionListPtr getVarList() const { return m_declaration; } ModifierExpressionPtr getModifiers() const { return m_modifiers; } @@ -47,6 +49,7 @@ public: private: ModifierExpressionPtr m_modifiers; + std::string m_typeConstraint; ExpressionListPtr m_declaration; }; diff --git a/hphp/compiler/statement/function_statement.cpp b/hphp/compiler/statement/function_statement.cpp index edb316c0f..05ede6679 100644 --- a/hphp/compiler/statement/function_statement.cpp +++ b/hphp/compiler/statement/function_statement.cpp @@ -35,12 +35,13 @@ using namespace HPHP; FunctionStatement::FunctionStatement (STATEMENT_CONSTRUCTOR_PARAMETERS, - ModifierExpressionPtr modifiers, bool ref, const std::string &name, - ExpressionListPtr params, StatementListPtr stmt, int attr, const - std::string &docComment, ExpressionListPtr attrList) + ModifierExpressionPtr modifiers, bool ref, const std::string &name, + ExpressionListPtr params, const std::string &retTypeConstraint, + StatementListPtr stmt, int attr, const std::string &docComment, + ExpressionListPtr attrList) : MethodStatement(STATEMENT_CONSTRUCTOR_PARAMETER_VALUES(FunctionStatement), - modifiers, ref, name, params, stmt, attr, - docComment, attrList, false), m_ignored(false) { + modifiers, ref, name, params, retTypeConstraint, stmt, + attr, docComment, attrList, false), m_ignored(false) { } StatementPtr FunctionStatement::clone() { diff --git a/hphp/compiler/statement/function_statement.h b/hphp/compiler/statement/function_statement.h index cec92696f..7fa4b8d47 100644 --- a/hphp/compiler/statement/function_statement.h +++ b/hphp/compiler/statement/function_statement.h @@ -31,8 +31,9 @@ DECLARE_BOOST_TYPES(FunctionStatement); class FunctionStatement : public MethodStatement { public: FunctionStatement(STATEMENT_CONSTRUCTOR_PARAMETERS, - ModifierExpressionPtr modifiers, bool ref, - const std::string &name, ExpressionListPtr params, + ModifierExpressionPtr modifiers, bool ref, + const std::string &name, ExpressionListPtr params, + const std::string &retTypeConstraint, StatementListPtr stmt, int attr, const std::string &docComment, ExpressionListPtr attrList); diff --git a/hphp/compiler/statement/method_statement.cpp b/hphp/compiler/statement/method_statement.cpp index dd810cb86..7a9dc8a3a 100644 --- a/hphp/compiler/statement/method_statement.cpp +++ b/hphp/compiler/statement/method_statement.cpp @@ -59,13 +59,14 @@ using std::map; MethodStatement::MethodStatement (STATEMENT_CONSTRUCTOR_BASE_PARAMETERS, ModifierExpressionPtr modifiers, bool ref, const string &name, - ExpressionListPtr params, StatementListPtr stmt, int attr, - const string &docComment, ExpressionListPtr attrList, - bool method /* = true */) + ExpressionListPtr params, const std::string &retTypeConstraint, + StatementListPtr stmt, int attr, const string &docComment, + ExpressionListPtr attrList, bool method /* = true */) : Statement(STATEMENT_CONSTRUCTOR_BASE_PARAMETER_VALUES), m_method(method), m_ref(ref), m_attribute(attr), m_cppLength(-1), m_modifiers(modifiers), - m_originalName(name), m_params(params), m_stmt(stmt), + m_originalName(name), m_params(params), + m_retTypeConstraint(retTypeConstraint), m_stmt(stmt), m_docComment(docComment), m_attrList(attrList) { m_name = Util::toLower(name); } @@ -73,14 +74,15 @@ MethodStatement::MethodStatement MethodStatement::MethodStatement (STATEMENT_CONSTRUCTOR_PARAMETERS, ModifierExpressionPtr modifiers, bool ref, const string &name, - ExpressionListPtr params, StatementListPtr stmt, int attr, - const string &docComment, ExpressionListPtr attrList, + ExpressionListPtr params, const std::string &retTypeConstraint, + StatementListPtr stmt, + int attr, const string &docComment, ExpressionListPtr attrList, bool method /* = true */) : Statement(STATEMENT_CONSTRUCTOR_PARAMETER_VALUES(MethodStatement)), m_method(method), m_ref(ref), m_attribute(attr), m_cppLength(-1), m_modifiers(modifiers), m_originalName(name), - m_params(params), m_stmt(stmt), - m_docComment(docComment), m_attrList(attrList) { + m_params(params), m_retTypeConstraint(retTypeConstraint), + m_stmt(stmt), m_docComment(docComment), m_attrList(attrList) { m_name = Util::toLower(name); } diff --git a/hphp/compiler/statement/method_statement.h b/hphp/compiler/statement/method_statement.h index eff88d777..5afb426b5 100644 --- a/hphp/compiler/statement/method_statement.h +++ b/hphp/compiler/statement/method_statement.h @@ -34,16 +34,16 @@ protected: MethodStatement(STATEMENT_CONSTRUCTOR_BASE_PARAMETERS, ModifierExpressionPtr modifiers, bool ref, const std::string &name, ExpressionListPtr params, - StatementListPtr stmt, int attr, - const std::string &docComment, ExpressionListPtr attrList, - bool method = true); + const std::string &retTypeConstraint, StatementListPtr stmt, + int attr, const std::string &docComment, + ExpressionListPtr attrList, bool method = true); public: MethodStatement(STATEMENT_CONSTRUCTOR_PARAMETERS, ModifierExpressionPtr modifiers, bool ref, const std::string &name, ExpressionListPtr params, - StatementListPtr stmt, int attr, - const std::string &docComment, ExpressionListPtr attrList, - bool method = true); + const std::string &retTypeConstraint, StatementListPtr stmt, + int attr, const std::string &docComment, + ExpressionListPtr attrList, bool method = true); DECLARE_STATEMENT_VIRTUAL_FUNCTIONS; void inferFunctionTypes(AnalysisResultPtr ar); @@ -63,6 +63,9 @@ public: std::string getOriginalFullName() const; std::string getOriginalFullNameForInjection() const; ExpressionListPtr getParams() { return m_params;} + const std::string getReturnTypeConstraint() const { + return m_retTypeConstraint; + } StatementListPtr getStmts() { return m_stmt;} bool isRef(int index = -1) const; @@ -131,6 +134,7 @@ protected: std::string m_className; std::string m_originalClassName; ExpressionListPtr m_params; + std::string m_retTypeConstraint; StatementListPtr m_stmt; std::string m_docComment; MethodStatementRawPtr m_origGeneratorFunc; diff --git a/hphp/runtime/ext/ext_reflection.cpp b/hphp/runtime/ext/ext_reflection.cpp index d19a0cfd1..29d554230 100644 --- a/hphp/runtime/ext/ext_reflection.cpp +++ b/hphp/runtime/ext/ext_reflection.cpp @@ -82,6 +82,7 @@ static StaticString s_closure("closure"); static StaticString s___invoke("__invoke"); static StaticString s_closure_in_braces("{closure}"); static StaticString s_closureobj("closureobj"); +static StaticString s_return_type("return_type"); static const VM::Class* get_cls(CVarRef class_or_object) { VM::Class* cls = NULL; @@ -183,6 +184,14 @@ static void set_doc_comment(Array &ret, const StringData* comment) { } } +static void set_return_type_constraint(Array &ret, const StringData* retType) { + if (retType && retType->size()) { + ret.set(s_return_type, VarNR(retType)); + } else { + ret.set(s_return_type, false_varNR); + } +} + static void set_property_info(Array &ret, ClassInfo::PropertyInfo *info, const ClassInfo *cls) { ret.set(s_name, info->name); @@ -197,6 +206,11 @@ static void set_instance_prop_info(Array &ret, const VM::Class::Prop* prop) { set_attrs(ret, get_modifiers(prop->m_attrs, false) & ~0x66); ret.set(s_class, VarNR(prop->m_class->name())); set_doc_comment(ret, prop->m_docComment); + if (prop->m_typeConstraint && prop->m_typeConstraint->size()) { + ret.set(s_type, VarNR(prop->m_typeConstraint)); + } else { + ret.set(s_type, false_varNR); + } } static void set_static_prop_info(Array &ret, const VM::Class::SProp* prop) { @@ -204,6 +218,11 @@ static void set_static_prop_info(Array &ret, const VM::Class::SProp* prop) { set_attrs(ret, get_modifiers(prop->m_attrs, false) & ~0x66); ret.set(s_class, VarNR(prop->m_class->name())); set_doc_comment(ret, prop->m_docComment); + if (prop->m_typeConstraint && prop->m_typeConstraint->size()) { + ret.set(s_type, VarNR(prop->m_typeConstraint)); + } else { + ret.set(s_type, false_varNR); + } } static void set_function_info(Array &ret, const ClassInfo::MethodInfo *info, @@ -313,6 +332,7 @@ static void set_function_info(Array &ret, const VM::Func* func) { ret.set(s_hphp, true_varNR); } } + set_return_type_constraint(ret, func->returnTypeConstraint()); // doc comments set_doc_comment(ret, func->docComment()); diff --git a/hphp/runtime/vm/as.cpp b/hphp/runtime/vm/as.cpp index 02cf3f419..375ecf530 100644 --- a/hphp/runtime/vm/as.cpp +++ b/hphp/runtime/vm/as.cpp @@ -1515,7 +1515,7 @@ void parse_property(AsmState& as) { TypedValue tvInit = parse_member_tv_initializer(as); as.pce->addProperty(StringData::GetStaticString(name), - attrs, + attrs, empty_string.get(), empty_string.get(), &tvInit); } @@ -1534,7 +1534,7 @@ void parse_constant(AsmState& as) { TypedValue tvInit = parse_member_tv_initializer(as); as.pce->addConstant(StringData::GetStaticString(name), - &tvInit, + empty_string.get(), &tvInit, empty_string.get()); } diff --git a/hphp/runtime/vm/class.cpp b/hphp/runtime/vm/class.cpp index 999e85bcb..b62268c7d 100644 --- a/hphp/runtime/vm/class.cpp +++ b/hphp/runtime/vm/class.cpp @@ -85,9 +85,10 @@ static const StringData* manglePropName(const StringData* className, // PreClass::Prop. PreClass::Prop::Prop(PreClass* preClass, const StringData* n, Attr attrs, + const StringData* typeConstraint, const StringData* docComment, const TypedValue& val) : m_preClass(preClass), m_name(n), m_attrs(attrs), - m_docComment(docComment) { + m_typeConstraint(typeConstraint), m_docComment(docComment) { m_mangledName = manglePropName(preClass->name(), n, attrs); memcpy(&m_val, &val, sizeof(TypedValue)); } @@ -113,8 +114,10 @@ void PreClass::Prop::prettyPrint(std::ostream& out) const { // PreClass::Const. PreClass::Const::Const(PreClass* preClass, const StringData* n, + const StringData* typeConstraint, const TypedValue& val, const StringData* phpCode) - : m_preClass(preClass), m_name(n), m_phpCode(phpCode) { + : m_preClass(preClass), m_name(n), m_typeConstraint(typeConstraint), + m_phpCode(phpCode) { memcpy(&m_val, &val, sizeof(TypedValue)); } @@ -191,9 +194,10 @@ void PreClass::prettyPrint(std::ostream &out) const { // PreClassEmitter::Prop. PreClassEmitter::Prop::Prop(const PreClassEmitter* pce, const StringData* n, - Attr attrs, const StringData* docComment, - TypedValue* val) - : m_name(n), m_attrs(attrs), m_docComment(docComment) { + Attr attrs, const StringData* typeConstraint, + const StringData* docComment, TypedValue* val) + : m_name(n), m_attrs(attrs), m_typeConstraint(typeConstraint), + m_docComment(docComment) { m_mangledName = manglePropName(pce->name(), n, attrs); memcpy(&m_val, val, sizeof(TypedValue)); } @@ -249,13 +253,14 @@ bool PreClassEmitter::addMethod(FuncEmitter* method) { } bool PreClassEmitter::addProperty(const StringData* n, Attr attrs, + const StringData* typeConstraint, const StringData* docComment, TypedValue* val) { PropMap::Builder::const_iterator it = m_propMap.find(n); if (it != m_propMap.end()) { return false; } - PreClassEmitter::Prop prop(this, n, attrs, docComment, val); + PreClassEmitter::Prop prop(this, n, attrs, typeConstraint, docComment, val); m_propMap.add(prop.name(), prop); return true; } @@ -268,13 +273,15 @@ PreClassEmitter::lookupProp(const StringData* propName) const { return m_propMap[idx]; } -bool PreClassEmitter::addConstant(const StringData* n, TypedValue* val, +bool PreClassEmitter::addConstant(const StringData* n, + const StringData* typeConstraint, + TypedValue* val, const StringData* phpCode) { ConstMap::Builder::const_iterator it = m_constMap.find(n); if (it != m_constMap.end()) { return false; } - PreClassEmitter::Const const_(n, val, phpCode); + PreClassEmitter::Const const_(n, typeConstraint, val, phpCode); m_constMap.add(const_.name(), const_); return true; } @@ -359,6 +366,7 @@ PreClass* PreClassEmitter::create(Unit& unit) const { propBuild.add(prop.name(), PreClass::Prop(pc, prop.name(), prop.attrs(), + prop.typeConstraint(), prop.docComment(), prop.val())); } @@ -369,6 +377,7 @@ PreClass* PreClassEmitter::create(Unit& unit) const { const Const& const_ = m_constMap[i]; constBuild.add(const_.name(), PreClass::Const(pc, const_.name(), + const_.typeConstraint(), const_.val(), const_.phpCode())); } @@ -1830,6 +1839,7 @@ void Class::setProperties() { prop.m_originalMangledName = parentProp.m_originalMangledName; prop.m_attrs = parentProp.m_attrs; prop.m_docComment = parentProp.m_docComment; + prop.m_typeConstraint = parentProp.m_typeConstraint; prop.m_name = parentProp.m_name; if (!(parentProp.m_attrs & AttrPrivate)) { curPropMap.add(prop.m_name, prop); @@ -1847,6 +1857,7 @@ void Class::setProperties() { SProp sProp; sProp.m_name = parentProp.m_name; sProp.m_attrs = parentProp.m_attrs; + sProp.m_typeConstraint = parentProp.m_typeConstraint; sProp.m_docComment = parentProp.m_docComment; sProp.m_class = parentProp.m_class; tvWriteUninit(&sProp.m_val); @@ -1901,6 +1912,7 @@ void Class::setProperties() { prop.m_attrs = preProp->attrs(); // This is the first class to declare this property prop.m_class = this; + prop.m_typeConstraint = preProp->typeConstraint(); prop.m_docComment = preProp->docComment(); curPropMap.add(preProp->name(), prop); m_declPropInit.push_back(m_preClass->lookupProp(preProp->name()) @@ -1927,6 +1939,7 @@ void Class::setProperties() { prop.m_mangledName = preProp->mangledName(); prop.m_originalMangledName = preProp->mangledName(); prop.m_attrs = preProp->attrs(); + prop.m_typeConstraint = preProp->typeConstraint(); // This is the first class to declare this property prop.m_class = this; prop.m_docComment = preProp->docComment(); @@ -1947,6 +1960,7 @@ void Class::setProperties() { prop.m_mangledName = preProp->mangledName(); prop.m_originalMangledName = preProp->mangledName(); prop.m_attrs = Attr(prop.m_attrs ^ (AttrProtected|AttrPublic)); + prop.m_typeConstraint = preProp->typeConstraint(); } const TypedValue& tv = m_preClass->lookupProp(preProp->name())->val(); TypedValueAux& tvaux = m_declPropInit[it2->second]; @@ -1961,6 +1975,7 @@ void Class::setProperties() { prop.m_mangledName = preProp->mangledName(); prop.m_originalMangledName = preProp->mangledName(); prop.m_attrs = preProp->attrs(); + prop.m_typeConstraint = preProp->typeConstraint(); // This is the first class to declare this property prop.m_class = this; prop.m_docComment = preProp->docComment(); @@ -2013,6 +2028,7 @@ void Class::setProperties() { SProp& sProp = curSPropMap[sPropInd]; // Finish initializing. sProp.m_attrs = preProp->attrs(); + sProp.m_typeConstraint = preProp->typeConstraint(); sProp.m_docComment = preProp->docComment(); sProp.m_class = this; sProp.m_val = m_preClass->lookupProp(preProp->name())->val(); diff --git a/hphp/runtime/vm/class.h b/hphp/runtime/vm/class.h index 2efa4e0d9..7c9058820 100644 --- a/hphp/runtime/vm/class.h +++ b/hphp/runtime/vm/class.h @@ -123,7 +123,8 @@ class PreClass : public AtomicCountable { struct Prop { Prop() {} Prop(PreClass* preClass, const StringData* n, Attr attrs, - const StringData* docComment, const TypedValue& val); + const StringData* typeConstraint, const StringData* docComment, + const TypedValue& val); void prettyPrint(std::ostream& out) const; @@ -133,6 +134,7 @@ class PreClass : public AtomicCountable { const StringData* mangledName() const { return m_mangledName; } CStrRef mangledNameRef() const { return *(String*)(&m_mangledName); } Attr attrs() const { return m_attrs; } + const StringData* typeConstraint() const { return m_typeConstraint; } const StringData* docComment() const { return m_docComment; } const TypedValue& val() const { return m_val; } @@ -141,13 +143,15 @@ class PreClass : public AtomicCountable { const StringData* m_name; const StringData* m_mangledName; Attr m_attrs; + const StringData* m_typeConstraint; const StringData* m_docComment; TypedValue m_val; }; struct Const { Const() {} - Const(PreClass* preClass, const StringData* n, const TypedValue& val, + Const(PreClass* preClass, const StringData* n, + const StringData* typeConstraint, const TypedValue& val, const StringData* phpCode); void prettyPrint(std::ostream& out) const; @@ -155,12 +159,14 @@ class PreClass : public AtomicCountable { PreClass* preClass() const { return m_preClass; } const StringData* name() const { return m_name; } CStrRef nameRef() const { return *(String*)&m_name; } + const StringData* typeConstraint() const { return m_typeConstraint; } const TypedValue& val() const { return m_val; } const StringData* phpCode() const { return m_phpCode; } private: PreClass* m_preClass; const StringData* m_name; + const StringData* m_typeConstraint; TypedValue m_val; const StringData* m_phpCode; }; @@ -359,16 +365,19 @@ class PreClassEmitter { : m_name(0) , m_mangledName(0) , m_attrs(AttrNone) + , m_typeConstraint(0) , m_docComment(0) {} Prop(const PreClassEmitter* pce, const StringData* n, Attr attrs, - const StringData* docComment, TypedValue* val); + const StringData* typeConstraint, const StringData* docComment, + TypedValue* val); ~Prop(); const StringData* name() const { return m_name; } const StringData* mangledName() const { return m_mangledName; } Attr attrs() const { return m_attrs; } + const StringData* typeConstraint() const { return m_typeConstraint; } const StringData* docComment() const { return m_docComment; } const TypedValue& val() const { return m_val; } @@ -376,6 +385,7 @@ class PreClassEmitter { sd(m_name) (m_mangledName) (m_attrs) + (m_typeConstraint) (m_docComment) (m_val) ; @@ -385,6 +395,7 @@ class PreClassEmitter { const StringData* m_name; const StringData* m_mangledName; Attr m_attrs; + const StringData* m_typeConstraint; const StringData* m_docComment; TypedValue m_val; }; @@ -393,15 +404,18 @@ class PreClassEmitter { public: Const() : m_name(0) + , m_typeConstraint(0) , m_phpCode(0) {} - Const(const StringData* n, TypedValue* val, const StringData* phpCode) - : m_name(n), m_phpCode(phpCode) { + Const(const StringData* n, const StringData* typeConstraint, + TypedValue* val, const StringData* phpCode) + : m_name(n), m_typeConstraint(typeConstraint), m_phpCode(phpCode) { memcpy(&m_val, val, sizeof(TypedValue)); } ~Const() {} const StringData* name() const { return m_name; } + const StringData* typeConstraint() const { return m_typeConstraint; } const TypedValue& val() const { return m_val; } const StringData* phpCode() const { return m_phpCode; } @@ -411,6 +425,7 @@ class PreClassEmitter { private: const StringData* m_name; + const StringData* m_typeConstraint; TypedValue m_val; const StringData* m_phpCode; }; @@ -432,10 +447,11 @@ class PreClassEmitter { void addInterface(const StringData* n); bool addMethod(FuncEmitter* method); bool addProperty(const StringData* n, Attr attrs, + const StringData* typeConstraint, const StringData* docComment, TypedValue* val); const Prop& lookupProp(const StringData* propName) const; - bool addConstant(const StringData* n, TypedValue* val, - const StringData* phpCode); + bool addConstant(const StringData* n, const StringData* typeConstraint, + TypedValue* val, const StringData* phpCode); void addUsedTrait(const StringData* traitName); void addTraitPrecRule(const PreClass::TraitPrecRule &rule); void addTraitAliasRule(const PreClass::TraitAliasRule &rule); @@ -544,12 +560,14 @@ public: const StringData* m_originalMangledName; Class* m_class; // First parent class that declares this property. Attr m_attrs; + const StringData* m_typeConstraint; const StringData* m_docComment; }; struct SProp { const StringData* m_name; Attr m_attrs; + const StringData* m_typeConstraint; const StringData* m_docComment; Class* m_class; // Most derived class that declared this property. TypedValue m_val; // Used if (m_class == this). @@ -560,6 +578,7 @@ public: const StringData* m_name; TypedValue m_val; const StringData* m_phpCode; + const StringData* m_typeConstraint; CStrRef nameRef() const { return *(String*)&m_name; } }; diff --git a/hphp/runtime/vm/func.cpp b/hphp/runtime/vm/func.cpp index 174a9aebc..dc14d4b58 100644 --- a/hphp/runtime/vm/func.cpp +++ b/hphp/runtime/vm/func.cpp @@ -673,20 +673,20 @@ const Func* Func::getGeneratorBody(const StringData* name) const { FuncEmitter::FuncEmitter(UnitEmitter& ue, int sn, Id id, const StringData* n) : m_ue(ue), m_pce(nullptr), m_sn(sn), m_id(id), m_name(n), m_numLocals(0), m_numUnnamedLocals(0), m_activeUnnamedLocals(0), m_numIterators(0), - m_nextFreeIterator(0), m_returnType(KindOfInvalid), m_top(false), - m_isClosureBody(false), m_isGenerator(false), - m_isGeneratorFromClosure(false), m_hasGeneratorAsBody(false), m_info(nullptr), - m_builtinFuncPtr(nullptr) { + m_nextFreeIterator(0), m_retTypeConstraint(nullptr), + m_returnType(KindOfInvalid), m_top(false), m_isClosureBody(false), + m_isGenerator(false), m_isGeneratorFromClosure(false), + m_hasGeneratorAsBody(false), m_info(nullptr), m_builtinFuncPtr(nullptr) { } FuncEmitter::FuncEmitter(UnitEmitter& ue, int sn, const StringData* n, PreClassEmitter* pce) : m_ue(ue), m_pce(pce), m_sn(sn), m_name(n), m_numLocals(0), m_numUnnamedLocals(0), m_activeUnnamedLocals(0), m_numIterators(0), - m_nextFreeIterator(0), m_returnType(KindOfInvalid), m_top(false), - m_isClosureBody(false), m_isGenerator(false), - m_isGeneratorFromClosure(false), m_hasGeneratorAsBody(false), m_info(nullptr), - m_builtinFuncPtr(nullptr) { + m_nextFreeIterator(0), m_retTypeConstraint(nullptr), + m_returnType(KindOfInvalid), m_top(false), m_isClosureBody(false), + m_isGenerator(false), m_isGeneratorFromClosure(false), + m_hasGeneratorAsBody(false), m_info(nullptr), m_builtinFuncPtr(nullptr) { } FuncEmitter::~FuncEmitter() { @@ -915,6 +915,7 @@ Func* FuncEmitter::create(Unit& unit, PreClass* preClass /* = NULL */) const { f->shared()->m_userAttributes = m_userAttributes; f->shared()->m_builtinFuncPtr = m_builtinFuncPtr; f->shared()->m_nativeFuncPtr = m_nativeFuncPtr; + f->shared()->m_retTypeConstraint = m_retTypeConstraint; return f; } @@ -999,6 +1000,7 @@ void FuncEmitter::serdeMetaData(SerDe& sd) { (m_ehtab) (m_fpitab) (m_userAttributes) + (m_retTypeConstraint) ; } diff --git a/hphp/runtime/vm/func.h b/hphp/runtime/vm/func.h index 9ec27f225..b8ae888ed 100644 --- a/hphp/runtime/vm/func.h +++ b/hphp/runtime/vm/func.h @@ -313,6 +313,10 @@ struct Func { return id < numNamedLocals() ? shared()->m_localNames[id] : 0; } + const StringData* returnTypeConstraint() const { + return shared()->m_retTypeConstraint; + } + int numIterators() const { return shared()->m_numIterators; } const EHEntVec& ehtab() const { return shared()->m_ehtab; } const FPIEntVec& fpitab() const { return shared()->m_fpitab; } @@ -457,6 +461,7 @@ private: bool m_isGeneratorFromClosure : 1; bool m_hasGeneratorAsBody : 1; UserAttributeMap m_userAttributes; + const StringData* m_retTypeConstraint; SharedData(PreClass* preClass, Id id, Offset base, Offset past, int line1, int line2, bool top, const StringData* docComment); @@ -567,6 +572,10 @@ public: bool hasVar(const StringData* name) const; Id numParams() const { return m_params.size(); } + void setReturnTypeConstraint(const StringData* retTypeConstraint) { + m_retTypeConstraint = retTypeConstraint; + } + Id allocIterator(); void freeIterator(Id id); void setNumIterators(Id numIterators); @@ -651,6 +660,8 @@ private: int m_maxStackCells; SVInfoVec m_staticVars; + const StringData* m_retTypeConstraint; + EHEntVec m_ehtab; FPIEntVec m_fpitab; diff --git a/hphp/system/classes/reflection.php b/hphp/system/classes/reflection.php index c2c35cb8f..9c1566b39 100644 --- a/hphp/system/classes/reflection.php +++ b/hphp/system/classes/reflection.php @@ -534,6 +534,13 @@ class ReflectionFunctionAbstract { } return $count; } + + public function getReturnTypehintText() { + if (isset($this->info['return_type'])) { + return $this->info['return_type']; + } + return ''; + } } /////////////////////////////////////////////////////////////////////////////// @@ -1769,6 +1776,13 @@ class ReflectionProperty implements Reflector { public function getDocComment() { return $this->info['doc']; } + + public function getTypehintText() { + if (isset($this->info['type'])) { + return $this->info['type']; + } + return ''; + } } /////////////////////////////////////////////////////////////////////////////// diff --git a/hphp/test/test_code_run.cpp b/hphp/test/test_code_run.cpp index 78c08d551..84aa0c26c 100644 --- a/hphp/test/test_code_run.cpp +++ b/hphp/test/test_code_run.cpp @@ -13799,6 +13799,124 @@ bool TestCodeRun::TestReflectionClasses() { "$a = $r->getProperties(ReflectionProperty::IS_PROTECTED); f($a);\n" "$a = $r->getProperties(ReflectionProperty::IS_STATIC); f($a);\n"); + // return type constraints (hints) + MVCRO(" $z): Vector { " + " return $z; " + "} " + "$rf = new ReflectionFunction('foo'); " + "var_dump($rf->getReturnTypehintText()); " + "class C { " + " function goo(): int { return 0; } " + "} " + "$rc = new ReflectionClass('C'); " + "$rm = $rc->getMethod('goo'); " + "var_dump($rm->getReturnTypehintText()); " + "class C1 extends C { " + " function goo() { return 0; } " + "} " + "$rc = new ReflectionClass('C1'); " + "$rm = $rc->getMethod('goo'); " + "var_dump($rm->getReturnTypehintText()); " + "class C2 extends C1 { " + " function goo(): string { return '0'; } " + "} " + "$rc = new ReflectionClass('C2'); " + "$rm = $rc->getMethod('goo'); " + "var_dump($rm->getReturnTypehintText()); " + "interface I { " + " function m(): string; " + "} " + "$rc = new ReflectionClass('I'); " + "$rm = $rc->getMethod('m'); " + "var_dump($rm->getReturnTypehintText()); " + "interface I1 { " + " function m(): T; " + "} " + "$rc = new ReflectionClass('I1'); " + "$rm = $rc->getMethod('m'); " + "var_dump($rm->getReturnTypehintText()); " + "trait T { " + " function t(): C { " + " return new C(); " + " } " + "} " + "class UseT { " + " use T; " + "} " + "$rc = new ReflectionClass('UseT'); " + "$rm = $rc->getMethod('t'); " + "var_dump($rm->getReturnTypehintText());" + , + "string(6) \"Vector\"\n" + "string(3) \"int\"\n" + "bool(false)\n" + "string(6) \"string\"\n" + "string(6) \"string\"\n" + "bool(false)\n" + "string(1) \"C\"\n"); + + // field type constraints (hints) + MVCRO("getProperty('pp'); " + "var_dump($rp->getTypehintText()); " + "$rp = $rc->getProperty('pField'); " + "var_dump($rp->getTypehintText()); " + "$rp = $rc->getProperty('field'); " + "var_dump($rp->getTypehintText()); " + "$rp = $rc->getProperty('field1'); " + "var_dump($rp->getTypehintText()); " + "$rp = $rc->getProperty('sField'); " + "var_dump($rp->getTypehintText()); " + "class C2 extends C1 { " + " public int $field; " + " private int $pField; " + "} " + "$rc = new ReflectionClass('C2'); " + "$rp = $rc->getProperty('field'); " + "var_dump($rp->getTypehintText()); " + "$rp = $rc->getProperty('field1'); " + "var_dump($rp->getTypehintText()); " + "$rp = $rc->getProperty('pField'); " + "var_dump($rp->getTypehintText()); " + "$rp = $rc->getProperty('sField'); " + "var_dump($rp->getTypehintText()); " + "var_dump($rc->hasProperty('pp')); " + "trait T { " + " public C1 $tField; " + " private C2 $tField1; " + "} " + "class TI { " + " use T; " + " public string $tField; " + "} " + "$rc = new ReflectionClass('TI'); " + "$rp = $rc->getProperty('tField'); " + "var_dump($rp->getTypehintText()); " + "$rp = $rc->getProperty('tField1'); " + "var_dump($rp->getTypehintText()); " + , + "string(3) \"int\"\n" + "string(6) \"string\"\n" + "string(6) \"string\"\n" + "string(3) \"int\"\n" + "string(3) \"int\"\n" + "string(6) \"string\"\n" + "string(3) \"int\"\n" + "string(3) \"int\"\n" + "string(3) \"int\"\n" + "bool(false)\n" + "string(6) \"string\"\n" + "string(2) \"C2\"\n"); + { HipHopSyntax w(this); MVCROF( diff --git a/hphp/test/vm/reflection2.php.exp b/hphp/test/vm/reflection2.php.exp index 36f9e9258..a5afe6b84 100644 --- a/hphp/test/vm/reflection2.php.exp +++ b/hphp/test/vm/reflection2.php.exp @@ -6,7 +6,7 @@ array(6) { ["class"]=> string(8) "my_child" ["info"]=> - array(13) { + array(14) { ["name"]=> string(17) "my_other_override" ["access"]=> @@ -15,6 +15,8 @@ array(6) { int(256) ["class"]=> string(8) "my_child" + ["return_type"]=> + bool(false) ["doc"]=> bool(false) ["params"]=> @@ -45,7 +47,7 @@ array(6) { ["class"]=> string(8) "my_child" ["info"]=> - array(13) { + array(14) { ["name"]=> string(15) "my_child_method" ["access"]=> @@ -54,6 +56,8 @@ array(6) { int(256) ["class"]=> string(8) "my_child" + ["return_type"]=> + bool(false) ["doc"]=> bool(false) ["params"]=> @@ -84,7 +88,7 @@ array(6) { ["class"]=> string(8) "my_class" ["info"]=> - array(13) { + array(14) { ["name"]=> string(9) "my_method" ["access"]=> @@ -93,6 +97,8 @@ array(6) { int(256) ["class"]=> string(8) "my_class" + ["return_type"]=> + bool(false) ["doc"]=> bool(false) ["params"]=> @@ -123,7 +129,7 @@ array(6) { ["class"]=> string(8) "my_class" ["info"]=> - array(13) { + array(14) { ["name"]=> string(18) "my_override_method" ["access"]=> @@ -132,6 +138,8 @@ array(6) { int(256) ["class"]=> string(8) "my_class" + ["return_type"]=> + bool(false) ["doc"]=> bool(false) ["params"]=> @@ -162,7 +170,7 @@ array(6) { ["class"]=> string(8) "my_class" ["info"]=> - array(13) { + array(14) { ["name"]=> string(15) "my_trait_method" ["access"]=> @@ -171,6 +179,8 @@ array(6) { int(256) ["class"]=> string(8) "my_class" + ["return_type"]=> + bool(false) ["doc"]=> bool(false) ["params"]=> @@ -201,7 +211,7 @@ array(6) { ["class"]=> string(7) "my_base" ["info"]=> - array(13) { + array(14) { ["name"]=> string(14) "my_base_method" ["access"]=> @@ -210,6 +220,8 @@ array(6) { int(256) ["class"]=> string(7) "my_base" + ["return_type"]=> + bool(false) ["doc"]=> bool(false) ["params"]=> diff --git a/hphp/util/parser/hphp.y b/hphp/util/parser/hphp.y index c84ecf783..63d2da42c 100644 --- a/hphp/util/parser/hphp.y +++ b/hphp/util/parser/hphp.y @@ -1020,8 +1020,7 @@ function_declaration_statement: _p->pushLabelInfo();} '(' parameter_list ')' sm_opt_return_type - '{' inner_statement_list '}' { Token t; t.reset(); - _p->onFunction($$,0,t,$2,$3,$6,$10,0); + '{' inner_statement_list '}' { _p->onFunction($$,0,$8,$2,$3,$6,$10,0); _p->popLabelInfo(); _p->popTypeScope();} | non_empty_user_attributes function_loc @@ -1030,8 +1029,7 @@ function_declaration_statement: _p->pushLabelInfo();} '(' parameter_list ')' sm_opt_return_type - '{' inner_statement_list '}' { Token t; t.reset(); - _p->onFunction($$,0,t,$3,$4,$7,$11,&$1); + '{' inner_statement_list '}' { _p->onFunction($$,0,$9,$3,$4,$7,$11,&$1); _p->popLabelInfo(); _p->popTypeScope();} ; @@ -1315,8 +1313,7 @@ class_statement: parameter_list ')' sm_opt_return_type method_body - { Token t; t.reset(); - _p->onMethod($$,$1,t,$3,$4,$7,$10,0); + { _p->onMethod($$,$1,$9,$3,$4,$7,$10,0); _p->popLabelInfo(); _p->popTypeScope();} | non_empty_user_attributes @@ -1327,8 +1324,7 @@ class_statement: parameter_list ')' sm_opt_return_type method_body - { Token t; t.reset(); - _p->onMethod($$,$2,t,$4,$5,$8,$11,&$1); + { _p->onMethod($$,$2,$10,$4,$5,$8,$11,&$1); _p->popLabelInfo(); _p->popTypeScope();} | T_XHP_ATTRIBUTE diff --git a/hphp/util/parser/test/hphp.tab.cpp b/hphp/util/parser/test/hphp.tab.cpp index affab36f3..cb2a9c554 100644 --- a/hphp/util/parser/test/hphp.tab.cpp +++ b/hphp/util/parser/test/hphp.tab.cpp @@ -1564,68 +1564,68 @@ static const yytype_uint16 yyrline[] = 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 955, 953, 958, 960, 968, 971, 972, 976, 977, 978, 979, 980, 987, 993, 997, 997, 1003, 1004, 1008, 1009, - 1013, 1018, 1017, 1028, 1027, 1041, 1040, 1059, 1057, 1076, - 1075, 1084, 1082, 1094, 1093, 1104, 1102, 1114, 1115, 1119, - 1122, 1125, 1126, 1127, 1130, 1132, 1135, 1136, 1139, 1140, - 1143, 1144, 1148, 1149, 1154, 1155, 1158, 1159, 1163, 1164, - 1168, 1169, 1173, 1174, 1178, 1179, 1184, 1185, 1190, 1191, - 1192, 1193, 1196, 1199, 1201, 1204, 1205, 1209, 1211, 1214, - 1217, 1220, 1221, 1224, 1225, 1229, 1231, 1233, 1234, 1238, - 1240, 1242, 1245, 1248, 1251, 1254, 1258, 1265, 1267, 1270, - 1271, 1272, 1274, 1279, 1280, 1283, 1284, 1285, 1289, 1290, - 1292, 1293, 1297, 1299, 1302, 1302, 1306, 1305, 1309, 1313, - 1311, 1325, 1322, 1334, 1336, 1338, 1340, 1342, 1346, 1347, - 1348, 1351, 1357, 1360, 1366, 1369, 1374, 1376, 1381, 1386, - 1390, 1391, 1397, 1398, 1403, 1404, 1409, 1410, 1414, 1415, - 1419, 1421, 1427, 1432, 1433, 1435, 1439, 1440, 1441, 1442, - 1446, 1447, 1448, 1449, 1450, 1451, 1453, 1458, 1461, 1462, - 1466, 1467, 1470, 1471, 1474, 1475, 1478, 1479, 1483, 1484, - 1485, 1486, 1487, 1488, 1491, 1493, 1495, 1496, 1499, 1501, - 1505, 1507, 1511, 1515, 1516, 1520, 1521, 1525, 1529, 1533, - 1538, 1539, 1540, 1543, 1545, 1546, 1547, 1550, 1551, 1552, - 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, - 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, - 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, - 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1593, - 1594, 1596, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, - 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, - 1617, 1616, 1625, 1624, 1632, 1633, 1634, 1638, 1643, 1650, - 1655, 1662, 1664, 1668, 1670, 1674, 1679, 1683, 1690, 1697, - 1699, 1704, 1705, 1706, 1710, 1714, 1718, 1719, 1720, 1721, - 1725, 1731, 1736, 1745, 1746, 1749, 1752, 1755, 1756, 1759, - 1763, 1766, 1769, 1776, 1777, 1781, 1782, 1784, 1788, 1789, - 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, - 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, - 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, - 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, - 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, - 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, - 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, - 1860, 1861, 1865, 1870, 1871, 1874, 1875, 1876, 1880, 1881, - 1882, 1886, 1887, 1888, 1892, 1893, 1894, 1897, 1899, 1903, - 1904, 1905, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, - 1915, 1918, 1923, 1924, 1925, 1926, 1927, 1929, 1932, 1933, - 1937, 1940, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1957, - 1959, 1963, 1964, 1967, 1968, 1972, 1975, 1977, 1979, 1983, - 1984, 1985, 1987, 1990, 1994, 1995, 1996, 1999, 2000, 2001, - 2002, 2003, 2005, 2011, 2013, 2016, 2019, 2021, 2023, 2026, - 2028, 2032, 2034, 2037, 2041, 2048, 2050, 2053, 2054, 2059, - 2062, 2066, 2066, 2071, 2074, 2075, 2079, 2080, 2085, 2086, - 2090, 2091, 2095, 2096, 2100, 2102, 2106, 2107, 2108, 2109, - 2110, 2111, 2112, 2113, 2116, 2118, 2122, 2123, 2124, 2125, - 2126, 2128, 2130, 2132, 2136, 2137, 2138, 2142, 2145, 2148, - 2151, 2154, 2157, 2163, 2167, 2174, 2175, 2180, 2182, 2183, - 2186, 2187, 2190, 2191, 2195, 2196, 2200, 2201, 2202, 2203, - 2204, 2207, 2210, 2211, 2212, 2214, 2216, 2220, 2221, 2222, - 2224, 2225, 2226, 2230, 2232, 2235, 2237, 2238, 2239, 2240, - 2243, 2245, 2246, 2250, 2252, 2255, 2257, 2258, 2259, 2263, - 2265, 2268, 2271, 2273, 2275, 2279, 2280, 2282, 2283, 2289, - 2290, 2292, 2294, 2296, 2298, 2301, 2302, 2303, 2307, 2308, - 2309, 2310, 2311, 2312, 2313, 2317, 2318, 2322, 2331, 2336, - 2337, 2343, 2344, 2352, 2355, 2359, 2360, 2364, 2365, 2366, - 2367, 2371, 2372, 2376, 2377, 2378, 2380, 2382, 2383, 2387, - 2393, 2395, 2399, 2402, 2405, 2414, 2415, 2416, 2427, 2428, - 2429, 2432, 2435, 2436, 2439, 2444, 2445 + 1013, 1018, 1017, 1027, 1026, 1039, 1038, 1057, 1055, 1074, + 1073, 1082, 1080, 1092, 1091, 1102, 1100, 1112, 1113, 1117, + 1120, 1123, 1124, 1125, 1128, 1130, 1133, 1134, 1137, 1138, + 1141, 1142, 1146, 1147, 1152, 1153, 1156, 1157, 1161, 1162, + 1166, 1167, 1171, 1172, 1176, 1177, 1182, 1183, 1188, 1189, + 1190, 1191, 1194, 1197, 1199, 1202, 1203, 1207, 1209, 1212, + 1215, 1218, 1219, 1222, 1223, 1227, 1229, 1231, 1232, 1236, + 1238, 1240, 1243, 1246, 1249, 1252, 1256, 1263, 1265, 1268, + 1269, 1270, 1272, 1277, 1278, 1281, 1282, 1283, 1287, 1288, + 1290, 1291, 1295, 1297, 1300, 1300, 1304, 1303, 1307, 1311, + 1309, 1322, 1319, 1330, 1332, 1334, 1336, 1338, 1342, 1343, + 1344, 1347, 1353, 1356, 1362, 1365, 1370, 1372, 1377, 1382, + 1386, 1387, 1393, 1394, 1399, 1400, 1405, 1406, 1410, 1411, + 1415, 1417, 1423, 1428, 1429, 1431, 1435, 1436, 1437, 1438, + 1442, 1443, 1444, 1445, 1446, 1447, 1449, 1454, 1457, 1458, + 1462, 1463, 1466, 1467, 1470, 1471, 1474, 1475, 1479, 1480, + 1481, 1482, 1483, 1484, 1487, 1489, 1491, 1492, 1495, 1497, + 1501, 1503, 1507, 1511, 1512, 1516, 1517, 1521, 1525, 1529, + 1534, 1535, 1536, 1539, 1541, 1542, 1543, 1546, 1547, 1548, + 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, + 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, + 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, + 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1589, + 1590, 1592, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, + 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, + 1613, 1612, 1621, 1620, 1628, 1629, 1630, 1634, 1639, 1646, + 1651, 1658, 1660, 1664, 1666, 1670, 1675, 1679, 1686, 1693, + 1695, 1700, 1701, 1702, 1706, 1710, 1714, 1715, 1716, 1717, + 1721, 1727, 1732, 1741, 1742, 1745, 1748, 1751, 1752, 1755, + 1759, 1762, 1765, 1772, 1773, 1777, 1778, 1780, 1784, 1785, + 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, + 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, + 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, + 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, + 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, + 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, + 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, + 1856, 1857, 1861, 1866, 1867, 1870, 1871, 1872, 1876, 1877, + 1878, 1882, 1883, 1884, 1888, 1889, 1890, 1893, 1895, 1899, + 1900, 1901, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, + 1911, 1914, 1919, 1920, 1921, 1922, 1923, 1925, 1928, 1929, + 1933, 1936, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1953, + 1955, 1959, 1960, 1963, 1964, 1968, 1971, 1973, 1975, 1979, + 1980, 1981, 1983, 1986, 1990, 1991, 1992, 1995, 1996, 1997, + 1998, 1999, 2001, 2007, 2009, 2012, 2015, 2017, 2019, 2022, + 2024, 2028, 2030, 2033, 2037, 2044, 2046, 2049, 2050, 2055, + 2058, 2062, 2062, 2067, 2070, 2071, 2075, 2076, 2081, 2082, + 2086, 2087, 2091, 2092, 2096, 2098, 2102, 2103, 2104, 2105, + 2106, 2107, 2108, 2109, 2112, 2114, 2118, 2119, 2120, 2121, + 2122, 2124, 2126, 2128, 2132, 2133, 2134, 2138, 2141, 2144, + 2147, 2150, 2153, 2159, 2163, 2170, 2171, 2176, 2178, 2179, + 2182, 2183, 2186, 2187, 2191, 2192, 2196, 2197, 2198, 2199, + 2200, 2203, 2206, 2207, 2208, 2210, 2212, 2216, 2217, 2218, + 2220, 2221, 2222, 2226, 2228, 2231, 2233, 2234, 2235, 2236, + 2239, 2241, 2242, 2246, 2248, 2251, 2253, 2254, 2255, 2259, + 2261, 2264, 2267, 2269, 2271, 2275, 2276, 2278, 2279, 2285, + 2286, 2288, 2290, 2292, 2294, 2297, 2298, 2299, 2303, 2304, + 2305, 2306, 2307, 2308, 2309, 2313, 2314, 2318, 2327, 2332, + 2333, 2339, 2340, 2348, 2351, 2355, 2356, 2360, 2361, 2362, + 2363, 2367, 2368, 2372, 2373, 2374, 2376, 2378, 2379, 2383, + 2389, 2391, 2395, 2398, 2401, 2410, 2411, 2412, 2423, 2424, + 2425, 2428, 2431, 2432, 2435, 2440, 2441 }; #endif @@ -5987,8 +5987,7 @@ yyreduce: /* Line 1455 of yacc.c */ #line 1023 "../../../../hphp/util/parser/hphp.y" - { Token t; t.reset(); - _p->onFunction((yyval),0,t,(yyvsp[(2) - (11)]),(yyvsp[(3) - (11)]),(yyvsp[(6) - (11)]),(yyvsp[(10) - (11)]),0); + { _p->onFunction((yyval),0,(yyvsp[(8) - (11)]),(yyvsp[(2) - (11)]),(yyvsp[(3) - (11)]),(yyvsp[(6) - (11)]),(yyvsp[(10) - (11)]),0); _p->popLabelInfo(); _p->popTypeScope();;} break; @@ -5996,7 +5995,7 @@ yyreduce: case 93: /* Line 1455 of yacc.c */ -#line 1028 "../../../../hphp/util/parser/hphp.y" +#line 1027 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(4) - (4)]).setText(_p->nsDecl((yyvsp[(4) - (4)]).text())); _p->onFunctionStart((yyvsp[(4) - (4)])); _p->pushLabelInfo();;} @@ -6005,9 +6004,8 @@ yyreduce: case 94: /* Line 1455 of yacc.c */ -#line 1033 "../../../../hphp/util/parser/hphp.y" - { Token t; t.reset(); - _p->onFunction((yyval),0,t,(yyvsp[(3) - (12)]),(yyvsp[(4) - (12)]),(yyvsp[(7) - (12)]),(yyvsp[(11) - (12)]),&(yyvsp[(1) - (12)])); +#line 1032 "../../../../hphp/util/parser/hphp.y" + { _p->onFunction((yyval),0,(yyvsp[(9) - (12)]),(yyvsp[(3) - (12)]),(yyvsp[(4) - (12)]),(yyvsp[(7) - (12)]),(yyvsp[(11) - (12)]),&(yyvsp[(1) - (12)])); _p->popLabelInfo(); _p->popTypeScope();;} break; @@ -6015,7 +6013,7 @@ yyreduce: case 95: /* Line 1455 of yacc.c */ -#line 1041 "../../../../hphp/util/parser/hphp.y" +#line 1039 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(2) - (2)]).setText(_p->nsDecl((yyvsp[(2) - (2)]).text())); _p->onClassStart((yyvsp[(1) - (2)]).num(),(yyvsp[(2) - (2)]));;} break; @@ -6023,7 +6021,7 @@ yyreduce: case 96: /* Line 1455 of yacc.c */ -#line 1044 "../../../../hphp/util/parser/hphp.y" +#line 1042 "../../../../hphp/util/parser/hphp.y" { Token stmts; if (_p->peekClass()) { xhp_collect_attributes(_p,stmts,(yyvsp[(7) - (8)])); @@ -6042,7 +6040,7 @@ yyreduce: case 97: /* Line 1455 of yacc.c */ -#line 1059 "../../../../hphp/util/parser/hphp.y" +#line 1057 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(3) - (3)]).setText(_p->nsDecl((yyvsp[(3) - (3)]).text())); _p->onClassStart((yyvsp[(2) - (3)]).num(),(yyvsp[(3) - (3)]));;} break; @@ -6050,7 +6048,7 @@ yyreduce: case 98: /* Line 1455 of yacc.c */ -#line 1062 "../../../../hphp/util/parser/hphp.y" +#line 1060 "../../../../hphp/util/parser/hphp.y" { Token stmts; if (_p->peekClass()) { xhp_collect_attributes(_p,stmts,(yyvsp[(8) - (9)])); @@ -6069,7 +6067,7 @@ yyreduce: case 99: /* Line 1455 of yacc.c */ -#line 1076 "../../../../hphp/util/parser/hphp.y" +#line 1074 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(2) - (2)]).setText(_p->nsDecl((yyvsp[(2) - (2)]).text())); _p->onClassStart(T_INTERFACE,(yyvsp[(2) - (2)]));;} break; @@ -6077,7 +6075,7 @@ yyreduce: case 100: /* Line 1455 of yacc.c */ -#line 1079 "../../../../hphp/util/parser/hphp.y" +#line 1077 "../../../../hphp/util/parser/hphp.y" { _p->onInterface((yyval),(yyvsp[(2) - (7)]),(yyvsp[(4) - (7)]),(yyvsp[(6) - (7)]),0); _p->popClass(); _p->popTypeScope();;} @@ -6086,7 +6084,7 @@ yyreduce: case 101: /* Line 1455 of yacc.c */ -#line 1084 "../../../../hphp/util/parser/hphp.y" +#line 1082 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(3) - (3)]).setText(_p->nsDecl((yyvsp[(3) - (3)]).text())); _p->onClassStart(T_INTERFACE,(yyvsp[(3) - (3)]));;} break; @@ -6094,7 +6092,7 @@ yyreduce: case 102: /* Line 1455 of yacc.c */ -#line 1087 "../../../../hphp/util/parser/hphp.y" +#line 1085 "../../../../hphp/util/parser/hphp.y" { _p->onInterface((yyval),(yyvsp[(3) - (8)]),(yyvsp[(5) - (8)]),(yyvsp[(7) - (8)]),&(yyvsp[(1) - (8)])); _p->popClass(); _p->popTypeScope();;} @@ -6103,7 +6101,7 @@ yyreduce: case 103: /* Line 1455 of yacc.c */ -#line 1094 "../../../../hphp/util/parser/hphp.y" +#line 1092 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(2) - (2)]).setText(_p->nsDecl((yyvsp[(2) - (2)]).text())); _p->onClassStart(T_TRAIT, (yyvsp[(2) - (2)]));;} break; @@ -6111,7 +6109,7 @@ yyreduce: case 104: /* Line 1455 of yacc.c */ -#line 1096 "../../../../hphp/util/parser/hphp.y" +#line 1094 "../../../../hphp/util/parser/hphp.y" { Token t_ext, t_imp; t_ext.reset(); t_imp.reset(); _p->onClass((yyval),T_TRAIT,(yyvsp[(2) - (6)]),t_ext,t_imp, @@ -6123,7 +6121,7 @@ yyreduce: case 105: /* Line 1455 of yacc.c */ -#line 1104 "../../../../hphp/util/parser/hphp.y" +#line 1102 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(3) - (3)]).setText(_p->nsDecl((yyvsp[(3) - (3)]).text())); _p->onClassStart(T_TRAIT, (yyvsp[(3) - (3)]));;} break; @@ -6131,7 +6129,7 @@ yyreduce: case 106: /* Line 1455 of yacc.c */ -#line 1106 "../../../../hphp/util/parser/hphp.y" +#line 1104 "../../../../hphp/util/parser/hphp.y" { Token t_ext, t_imp; t_ext.reset(); t_imp.reset(); _p->onClass((yyval),T_TRAIT,(yyvsp[(3) - (7)]),t_ext,t_imp, @@ -6143,14 +6141,14 @@ yyreduce: case 107: /* Line 1455 of yacc.c */ -#line 1114 "../../../../hphp/util/parser/hphp.y" +#line 1112 "../../../../hphp/util/parser/hphp.y" { _p->pushClass(false); (yyval) = (yyvsp[(1) - (1)]);;} break; case 108: /* Line 1455 of yacc.c */ -#line 1115 "../../../../hphp/util/parser/hphp.y" +#line 1113 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpLabel(); _p->pushTypeScope(); _p->pushClass(true); (yyval) = (yyvsp[(1) - (1)]);;} break; @@ -6158,525 +6156,525 @@ yyreduce: case 109: /* Line 1455 of yacc.c */ -#line 1119 "../../../../hphp/util/parser/hphp.y" +#line 1117 "../../../../hphp/util/parser/hphp.y" { _p->pushClass(false); (yyval) = (yyvsp[(1) - (1)]);;} break; case 110: /* Line 1455 of yacc.c */ -#line 1122 "../../../../hphp/util/parser/hphp.y" +#line 1120 "../../../../hphp/util/parser/hphp.y" { _p->pushClass(false); (yyval) = (yyvsp[(1) - (1)]);;} break; case 111: /* Line 1455 of yacc.c */ -#line 1125 "../../../../hphp/util/parser/hphp.y" +#line 1123 "../../../../hphp/util/parser/hphp.y" { (yyval) = T_CLASS;;} break; case 112: /* Line 1455 of yacc.c */ -#line 1126 "../../../../hphp/util/parser/hphp.y" +#line 1124 "../../../../hphp/util/parser/hphp.y" { (yyval) = T_ABSTRACT;;} break; case 113: /* Line 1455 of yacc.c */ -#line 1127 "../../../../hphp/util/parser/hphp.y" +#line 1125 "../../../../hphp/util/parser/hphp.y" { (yyval) = T_FINAL;;} break; case 114: /* Line 1455 of yacc.c */ -#line 1131 "../../../../hphp/util/parser/hphp.y" +#line 1129 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 115: /* Line 1455 of yacc.c */ -#line 1132 "../../../../hphp/util/parser/hphp.y" +#line 1130 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 116: /* Line 1455 of yacc.c */ -#line 1135 "../../../../hphp/util/parser/hphp.y" +#line 1133 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 117: /* Line 1455 of yacc.c */ -#line 1136 "../../../../hphp/util/parser/hphp.y" +#line 1134 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 118: /* Line 1455 of yacc.c */ -#line 1139 "../../../../hphp/util/parser/hphp.y" +#line 1137 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 119: /* Line 1455 of yacc.c */ -#line 1140 "../../../../hphp/util/parser/hphp.y" +#line 1138 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 120: /* Line 1455 of yacc.c */ -#line 1143 "../../../../hphp/util/parser/hphp.y" +#line 1141 "../../../../hphp/util/parser/hphp.y" { _p->onInterfaceName((yyval), NULL, (yyvsp[(1) - (1)]));;} break; case 121: /* Line 1455 of yacc.c */ -#line 1145 "../../../../hphp/util/parser/hphp.y" +#line 1143 "../../../../hphp/util/parser/hphp.y" { _p->onInterfaceName((yyval), &(yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 122: /* Line 1455 of yacc.c */ -#line 1148 "../../../../hphp/util/parser/hphp.y" +#line 1146 "../../../../hphp/util/parser/hphp.y" { _p->onTraitName((yyval), NULL, (yyvsp[(1) - (1)]));;} break; case 123: /* Line 1455 of yacc.c */ -#line 1150 "../../../../hphp/util/parser/hphp.y" +#line 1148 "../../../../hphp/util/parser/hphp.y" { _p->onTraitName((yyval), &(yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 124: /* Line 1455 of yacc.c */ -#line 1154 "../../../../hphp/util/parser/hphp.y" +#line 1152 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 125: /* Line 1455 of yacc.c */ -#line 1155 "../../../../hphp/util/parser/hphp.y" +#line 1153 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 126: /* Line 1455 of yacc.c */ -#line 1158 "../../../../hphp/util/parser/hphp.y" +#line 1156 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 127: /* Line 1455 of yacc.c */ -#line 1159 "../../../../hphp/util/parser/hphp.y" +#line 1157 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]); (yyval) = 1;;} break; case 128: /* Line 1455 of yacc.c */ -#line 1163 "../../../../hphp/util/parser/hphp.y" +#line 1161 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 129: /* Line 1455 of yacc.c */ -#line 1165 "../../../../hphp/util/parser/hphp.y" +#line 1163 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (4)]);;} break; case 130: /* Line 1455 of yacc.c */ -#line 1168 "../../../../hphp/util/parser/hphp.y" +#line 1166 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 131: /* Line 1455 of yacc.c */ -#line 1170 "../../../../hphp/util/parser/hphp.y" +#line 1168 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (4)]);;} break; case 132: /* Line 1455 of yacc.c */ -#line 1173 "../../../../hphp/util/parser/hphp.y" +#line 1171 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 133: /* Line 1455 of yacc.c */ -#line 1175 "../../../../hphp/util/parser/hphp.y" +#line 1173 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (4)]);;} break; case 134: /* Line 1455 of yacc.c */ -#line 1178 "../../../../hphp/util/parser/hphp.y" +#line 1176 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 135: /* Line 1455 of yacc.c */ -#line 1180 "../../../../hphp/util/parser/hphp.y" +#line 1178 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (4)]);;} break; case 138: /* Line 1455 of yacc.c */ -#line 1190 "../../../../hphp/util/parser/hphp.y" +#line 1188 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 139: /* Line 1455 of yacc.c */ -#line 1191 "../../../../hphp/util/parser/hphp.y" +#line 1189 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (4)]);;} break; case 140: /* Line 1455 of yacc.c */ -#line 1192 "../../../../hphp/util/parser/hphp.y" +#line 1190 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (4)]);;} break; case 141: /* Line 1455 of yacc.c */ -#line 1193 "../../../../hphp/util/parser/hphp.y" +#line 1191 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (5)]);;} break; case 142: /* Line 1455 of yacc.c */ -#line 1198 "../../../../hphp/util/parser/hphp.y" +#line 1196 "../../../../hphp/util/parser/hphp.y" { _p->onCase((yyval),(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]));;} break; case 143: /* Line 1455 of yacc.c */ -#line 1200 "../../../../hphp/util/parser/hphp.y" +#line 1198 "../../../../hphp/util/parser/hphp.y" { _p->onCase((yyval),(yyvsp[(1) - (4)]),NULL,(yyvsp[(4) - (4)]));;} break; case 144: /* Line 1455 of yacc.c */ -#line 1201 "../../../../hphp/util/parser/hphp.y" +#line 1199 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 145: /* Line 1455 of yacc.c */ -#line 1204 "../../../../hphp/util/parser/hphp.y" +#line 1202 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 146: /* Line 1455 of yacc.c */ -#line 1205 "../../../../hphp/util/parser/hphp.y" +#line 1203 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 147: /* Line 1455 of yacc.c */ -#line 1210 "../../../../hphp/util/parser/hphp.y" +#line 1208 "../../../../hphp/util/parser/hphp.y" { _p->onElseIf((yyval),(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),(yyvsp[(4) - (4)]));;} break; case 148: /* Line 1455 of yacc.c */ -#line 1211 "../../../../hphp/util/parser/hphp.y" +#line 1209 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 149: /* Line 1455 of yacc.c */ -#line 1216 "../../../../hphp/util/parser/hphp.y" +#line 1214 "../../../../hphp/util/parser/hphp.y" { _p->onElseIf((yyval),(yyvsp[(1) - (5)]),(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]));;} break; case 150: /* Line 1455 of yacc.c */ -#line 1217 "../../../../hphp/util/parser/hphp.y" +#line 1215 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 151: /* Line 1455 of yacc.c */ -#line 1220 "../../../../hphp/util/parser/hphp.y" +#line 1218 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 152: /* Line 1455 of yacc.c */ -#line 1221 "../../../../hphp/util/parser/hphp.y" +#line 1219 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 153: /* Line 1455 of yacc.c */ -#line 1224 "../../../../hphp/util/parser/hphp.y" +#line 1222 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (3)]);;} break; case 154: /* Line 1455 of yacc.c */ -#line 1225 "../../../../hphp/util/parser/hphp.y" +#line 1223 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 155: /* Line 1455 of yacc.c */ -#line 1230 "../../../../hphp/util/parser/hphp.y" +#line 1228 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval) = (yyvsp[(1) - (3)]); ;} break; case 156: /* Line 1455 of yacc.c */ -#line 1232 "../../../../hphp/util/parser/hphp.y" +#line 1230 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 157: /* Line 1455 of yacc.c */ -#line 1233 "../../../../hphp/util/parser/hphp.y" +#line 1231 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).reset(); ;} break; case 158: /* Line 1455 of yacc.c */ -#line 1234 "../../../../hphp/util/parser/hphp.y" +#line 1232 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 159: /* Line 1455 of yacc.c */ -#line 1239 "../../../../hphp/util/parser/hphp.y" +#line 1237 "../../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),NULL,(yyvsp[(2) - (3)]),(yyvsp[(3) - (3)]),0,NULL,&(yyvsp[(1) - (3)]));;} break; case 160: /* Line 1455 of yacc.c */ -#line 1241 "../../../../hphp/util/parser/hphp.y" +#line 1239 "../../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),NULL,(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]),1,NULL,&(yyvsp[(1) - (4)]));;} break; case 161: /* Line 1455 of yacc.c */ -#line 1244 "../../../../hphp/util/parser/hphp.y" +#line 1242 "../../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),NULL,(yyvsp[(2) - (6)]),(yyvsp[(4) - (6)]),1,&(yyvsp[(6) - (6)]),&(yyvsp[(1) - (6)]));;} break; case 162: /* Line 1455 of yacc.c */ -#line 1247 "../../../../hphp/util/parser/hphp.y" +#line 1245 "../../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),NULL,(yyvsp[(2) - (5)]),(yyvsp[(3) - (5)]),0,&(yyvsp[(5) - (5)]),&(yyvsp[(1) - (5)]));;} break; case 163: /* Line 1455 of yacc.c */ -#line 1250 "../../../../hphp/util/parser/hphp.y" +#line 1248 "../../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),&(yyvsp[(1) - (5)]),(yyvsp[(4) - (5)]),(yyvsp[(5) - (5)]),0,NULL,&(yyvsp[(3) - (5)]));;} break; case 164: /* Line 1455 of yacc.c */ -#line 1253 "../../../../hphp/util/parser/hphp.y" +#line 1251 "../../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),&(yyvsp[(1) - (6)]),(yyvsp[(4) - (6)]),(yyvsp[(6) - (6)]),1,NULL,&(yyvsp[(3) - (6)]));;} break; case 165: /* Line 1455 of yacc.c */ -#line 1257 "../../../../hphp/util/parser/hphp.y" +#line 1255 "../../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),&(yyvsp[(1) - (8)]),(yyvsp[(4) - (8)]),(yyvsp[(6) - (8)]),1,&(yyvsp[(8) - (8)]),&(yyvsp[(3) - (8)]));;} break; case 166: /* Line 1455 of yacc.c */ -#line 1261 "../../../../hphp/util/parser/hphp.y" +#line 1259 "../../../../hphp/util/parser/hphp.y" { _p->onParam((yyval),&(yyvsp[(1) - (7)]),(yyvsp[(4) - (7)]),(yyvsp[(5) - (7)]),0,&(yyvsp[(7) - (7)]),&(yyvsp[(3) - (7)]));;} break; case 167: /* Line 1455 of yacc.c */ -#line 1266 "../../../../hphp/util/parser/hphp.y" +#line 1264 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 168: /* Line 1455 of yacc.c */ -#line 1267 "../../../../hphp/util/parser/hphp.y" +#line 1265 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 169: /* Line 1455 of yacc.c */ -#line 1270 "../../../../hphp/util/parser/hphp.y" +#line 1268 "../../../../hphp/util/parser/hphp.y" { _p->onCallParam((yyval),NULL,(yyvsp[(1) - (1)]),0);;} break; case 170: /* Line 1455 of yacc.c */ -#line 1271 "../../../../hphp/util/parser/hphp.y" +#line 1269 "../../../../hphp/util/parser/hphp.y" { _p->onCallParam((yyval),NULL,(yyvsp[(2) - (2)]),1);;} break; case 171: /* Line 1455 of yacc.c */ -#line 1273 "../../../../hphp/util/parser/hphp.y" +#line 1271 "../../../../hphp/util/parser/hphp.y" { _p->onCallParam((yyval),&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 172: /* Line 1455 of yacc.c */ -#line 1275 "../../../../hphp/util/parser/hphp.y" +#line 1273 "../../../../hphp/util/parser/hphp.y" { _p->onCallParam((yyval),&(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),1);;} break; case 173: /* Line 1455 of yacc.c */ -#line 1279 "../../../../hphp/util/parser/hphp.y" +#line 1277 "../../../../hphp/util/parser/hphp.y" { _p->onGlobalVar((yyval), &(yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 174: /* Line 1455 of yacc.c */ -#line 1280 "../../../../hphp/util/parser/hphp.y" +#line 1278 "../../../../hphp/util/parser/hphp.y" { _p->onGlobalVar((yyval), NULL, (yyvsp[(1) - (1)]));;} break; case 175: /* Line 1455 of yacc.c */ -#line 1283 "../../../../hphp/util/parser/hphp.y" +#line 1281 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 176: /* Line 1455 of yacc.c */ -#line 1284 "../../../../hphp/util/parser/hphp.y" +#line 1282 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]); (yyval) = 1;;} break; case 177: /* Line 1455 of yacc.c */ -#line 1285 "../../../../hphp/util/parser/hphp.y" +#line 1283 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (4)]); (yyval) = 1;;} break; case 178: /* Line 1455 of yacc.c */ -#line 1289 "../../../../hphp/util/parser/hphp.y" +#line 1287 "../../../../hphp/util/parser/hphp.y" { _p->onStaticVariable((yyval),&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 179: /* Line 1455 of yacc.c */ -#line 1291 "../../../../hphp/util/parser/hphp.y" +#line 1289 "../../../../hphp/util/parser/hphp.y" { _p->onStaticVariable((yyval),&(yyvsp[(1) - (5)]),(yyvsp[(3) - (5)]),&(yyvsp[(5) - (5)]));;} break; case 180: /* Line 1455 of yacc.c */ -#line 1292 "../../../../hphp/util/parser/hphp.y" +#line 1290 "../../../../hphp/util/parser/hphp.y" { _p->onStaticVariable((yyval),0,(yyvsp[(1) - (1)]),0);;} break; case 181: /* Line 1455 of yacc.c */ -#line 1293 "../../../../hphp/util/parser/hphp.y" +#line 1291 "../../../../hphp/util/parser/hphp.y" { _p->onStaticVariable((yyval),0,(yyvsp[(1) - (3)]),&(yyvsp[(3) - (3)]));;} break; case 182: /* Line 1455 of yacc.c */ -#line 1298 "../../../../hphp/util/parser/hphp.y" +#line 1296 "../../../../hphp/util/parser/hphp.y" { _p->onClassStatement((yyval), (yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));;} break; case 183: /* Line 1455 of yacc.c */ -#line 1299 "../../../../hphp/util/parser/hphp.y" +#line 1297 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 184: /* Line 1455 of yacc.c */ -#line 1302 "../../../../hphp/util/parser/hphp.y" +#line 1300 "../../../../hphp/util/parser/hphp.y" { _p->onClassVariableModifer((yyvsp[(1) - (1)]));;} break; case 185: /* Line 1455 of yacc.c */ -#line 1303 "../../../../hphp/util/parser/hphp.y" +#line 1301 "../../../../hphp/util/parser/hphp.y" { _p->onClassVariableStart ((yyval),&(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),NULL);;} break; @@ -6684,14 +6682,14 @@ yyreduce: case 186: /* Line 1455 of yacc.c */ -#line 1306 "../../../../hphp/util/parser/hphp.y" +#line 1304 "../../../../hphp/util/parser/hphp.y" { _p->onClassVariableModifer((yyvsp[(1) - (2)]));;} break; case 187: /* Line 1455 of yacc.c */ -#line 1307 "../../../../hphp/util/parser/hphp.y" +#line 1305 "../../../../hphp/util/parser/hphp.y" { _p->onClassVariableStart ((yyval),&(yyvsp[(1) - (5)]),(yyvsp[(4) - (5)]),&(yyvsp[(2) - (5)]));;} break; @@ -6699,7 +6697,7 @@ yyreduce: case 188: /* Line 1455 of yacc.c */ -#line 1309 "../../../../hphp/util/parser/hphp.y" +#line 1307 "../../../../hphp/util/parser/hphp.y" { _p->onClassVariableStart ((yyval),NULL,(yyvsp[(1) - (2)]),NULL);;} break; @@ -6707,7 +6705,7 @@ yyreduce: case 189: /* Line 1455 of yacc.c */ -#line 1313 "../../../../hphp/util/parser/hphp.y" +#line 1311 "../../../../hphp/util/parser/hphp.y" { _p->onMethodStart((yyvsp[(4) - (5)]), (yyvsp[(1) - (5)])); _p->pushLabelInfo();;} break; @@ -6715,9 +6713,8 @@ yyreduce: case 190: /* Line 1455 of yacc.c */ -#line 1318 "../../../../hphp/util/parser/hphp.y" - { Token t; t.reset(); - _p->onMethod((yyval),(yyvsp[(1) - (10)]),t,(yyvsp[(3) - (10)]),(yyvsp[(4) - (10)]),(yyvsp[(7) - (10)]),(yyvsp[(10) - (10)]),0); +#line 1316 "../../../../hphp/util/parser/hphp.y" + { _p->onMethod((yyval),(yyvsp[(1) - (10)]),(yyvsp[(9) - (10)]),(yyvsp[(3) - (10)]),(yyvsp[(4) - (10)]),(yyvsp[(7) - (10)]),(yyvsp[(10) - (10)]),0); _p->popLabelInfo(); _p->popTypeScope();;} break; @@ -6725,7 +6722,7 @@ yyreduce: case 191: /* Line 1455 of yacc.c */ -#line 1325 "../../../../hphp/util/parser/hphp.y" +#line 1322 "../../../../hphp/util/parser/hphp.y" { _p->onMethodStart((yyvsp[(5) - (6)]), (yyvsp[(2) - (6)])); _p->pushLabelInfo();;} break; @@ -6733,9 +6730,8 @@ yyreduce: case 192: /* Line 1455 of yacc.c */ -#line 1330 "../../../../hphp/util/parser/hphp.y" - { Token t; t.reset(); - _p->onMethod((yyval),(yyvsp[(2) - (11)]),t,(yyvsp[(4) - (11)]),(yyvsp[(5) - (11)]),(yyvsp[(8) - (11)]),(yyvsp[(11) - (11)]),&(yyvsp[(1) - (11)])); +#line 1327 "../../../../hphp/util/parser/hphp.y" + { _p->onMethod((yyval),(yyvsp[(2) - (11)]),(yyvsp[(10) - (11)]),(yyvsp[(4) - (11)]),(yyvsp[(5) - (11)]),(yyvsp[(8) - (11)]),(yyvsp[(11) - (11)]),&(yyvsp[(1) - (11)])); _p->popLabelInfo(); _p->popTypeScope();;} break; @@ -6743,28 +6739,28 @@ yyreduce: case 193: /* Line 1455 of yacc.c */ -#line 1335 "../../../../hphp/util/parser/hphp.y" +#line 1331 "../../../../hphp/util/parser/hphp.y" { _p->xhpSetAttributes((yyvsp[(2) - (3)]));;} break; case 194: /* Line 1455 of yacc.c */ -#line 1337 "../../../../hphp/util/parser/hphp.y" +#line 1333 "../../../../hphp/util/parser/hphp.y" { xhp_category_stmt(_p,(yyval),(yyvsp[(2) - (3)]));;} break; case 195: /* Line 1455 of yacc.c */ -#line 1339 "../../../../hphp/util/parser/hphp.y" +#line 1335 "../../../../hphp/util/parser/hphp.y" { xhp_children_stmt(_p,(yyval),(yyvsp[(2) - (3)]));;} break; case 196: /* Line 1455 of yacc.c */ -#line 1340 "../../../../hphp/util/parser/hphp.y" +#line 1336 "../../../../hphp/util/parser/hphp.y" { Token t; t.reset(); _p->onTraitUse((yyval),(yyvsp[(2) - (3)]),t); ;} break; @@ -6772,42 +6768,42 @@ yyreduce: case 197: /* Line 1455 of yacc.c */ -#line 1343 "../../../../hphp/util/parser/hphp.y" +#line 1339 "../../../../hphp/util/parser/hphp.y" { _p->onTraitUse((yyval),(yyvsp[(2) - (5)]),(yyvsp[(4) - (5)])); ;} break; case 198: /* Line 1455 of yacc.c */ -#line 1346 "../../../../hphp/util/parser/hphp.y" +#line 1342 "../../../../hphp/util/parser/hphp.y" { _p->onTraitRule((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;} break; case 199: /* Line 1455 of yacc.c */ -#line 1347 "../../../../hphp/util/parser/hphp.y" +#line 1343 "../../../../hphp/util/parser/hphp.y" { _p->onTraitRule((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)])); ;} break; case 200: /* Line 1455 of yacc.c */ -#line 1348 "../../../../hphp/util/parser/hphp.y" +#line 1344 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 201: /* Line 1455 of yacc.c */ -#line 1354 "../../../../hphp/util/parser/hphp.y" +#line 1350 "../../../../hphp/util/parser/hphp.y" { _p->onTraitPrecRule((yyval),(yyvsp[(1) - (6)]),(yyvsp[(3) - (6)]),(yyvsp[(5) - (6)]));;} break; case 202: /* Line 1455 of yacc.c */ -#line 1358 "../../../../hphp/util/parser/hphp.y" +#line 1354 "../../../../hphp/util/parser/hphp.y" { _p->onTraitAliasRuleModify((yyval),(yyvsp[(1) - (5)]),(yyvsp[(3) - (5)]), (yyvsp[(4) - (5)]));;} break; @@ -6815,7 +6811,7 @@ yyreduce: case 203: /* Line 1455 of yacc.c */ -#line 1361 "../../../../hphp/util/parser/hphp.y" +#line 1357 "../../../../hphp/util/parser/hphp.y" { Token t; t.reset(); _p->onTraitAliasRuleModify((yyval),(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]), t);;} @@ -6824,14 +6820,14 @@ yyreduce: case 204: /* Line 1455 of yacc.c */ -#line 1368 "../../../../hphp/util/parser/hphp.y" +#line 1364 "../../../../hphp/util/parser/hphp.y" { _p->onTraitAliasRuleStart((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 205: /* Line 1455 of yacc.c */ -#line 1369 "../../../../hphp/util/parser/hphp.y" +#line 1365 "../../../../hphp/util/parser/hphp.y" { Token t; t.reset(); _p->onTraitAliasRuleStart((yyval),t,(yyvsp[(1) - (1)]));;} break; @@ -6839,7 +6835,7 @@ yyreduce: case 206: /* Line 1455 of yacc.c */ -#line 1374 "../../../../hphp/util/parser/hphp.y" +#line 1370 "../../../../hphp/util/parser/hphp.y" { xhp_attribute_list(_p,(yyval), _p->xhpGetAttributes(),(yyvsp[(1) - (1)]));;} break; @@ -6847,14 +6843,14 @@ yyreduce: case 207: /* Line 1455 of yacc.c */ -#line 1377 "../../../../hphp/util/parser/hphp.y" +#line 1373 "../../../../hphp/util/parser/hphp.y" { xhp_attribute_list(_p,(yyval), &(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 208: /* Line 1455 of yacc.c */ -#line 1384 "../../../../hphp/util/parser/hphp.y" +#line 1380 "../../../../hphp/util/parser/hphp.y" { xhp_attribute(_p,(yyval),(yyvsp[(1) - (4)]),(yyvsp[(2) - (4)]),(yyvsp[(3) - (4)]),(yyvsp[(4) - (4)])); (yyval) = 1;;} break; @@ -6862,21 +6858,21 @@ yyreduce: case 209: /* Line 1455 of yacc.c */ -#line 1386 "../../../../hphp/util/parser/hphp.y" +#line 1382 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); (yyval) = 0;;} break; case 210: /* Line 1455 of yacc.c */ -#line 1390 "../../../../hphp/util/parser/hphp.y" +#line 1386 "../../../../hphp/util/parser/hphp.y" { (yyval) = 4;;} break; case 211: /* Line 1455 of yacc.c */ -#line 1391 "../../../../hphp/util/parser/hphp.y" +#line 1387 "../../../../hphp/util/parser/hphp.y" { /* This case handles all types other than "array", "var" and "enum". For now we just use type code 5; @@ -6888,63 +6884,63 @@ yyreduce: case 212: /* Line 1455 of yacc.c */ -#line 1397 "../../../../hphp/util/parser/hphp.y" +#line 1393 "../../../../hphp/util/parser/hphp.y" { (yyval) = 6;;} break; case 213: /* Line 1455 of yacc.c */ -#line 1399 "../../../../hphp/util/parser/hphp.y" +#line 1395 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (4)]); (yyval) = 7;;} break; case 214: /* Line 1455 of yacc.c */ -#line 1403 "../../../../hphp/util/parser/hphp.y" +#line 1399 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0,0,(yyvsp[(1) - (1)]),0);;} break; case 215: /* Line 1455 of yacc.c */ -#line 1405 "../../../../hphp/util/parser/hphp.y" +#line 1401 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]),0,(yyvsp[(3) - (3)]),0);;} break; case 216: /* Line 1455 of yacc.c */ -#line 1409 "../../../../hphp/util/parser/hphp.y" +#line 1405 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 217: /* Line 1455 of yacc.c */ -#line 1410 "../../../../hphp/util/parser/hphp.y" +#line 1406 "../../../../hphp/util/parser/hphp.y" { scalar_null(_p, (yyval));;} break; case 218: /* Line 1455 of yacc.c */ -#line 1414 "../../../../hphp/util/parser/hphp.y" +#line 1410 "../../../../hphp/util/parser/hphp.y" { scalar_num(_p, (yyval), "1");;} break; case 219: /* Line 1455 of yacc.c */ -#line 1415 "../../../../hphp/util/parser/hphp.y" +#line 1411 "../../../../hphp/util/parser/hphp.y" { scalar_num(_p, (yyval), "0");;} break; case 220: /* Line 1455 of yacc.c */ -#line 1419 "../../../../hphp/util/parser/hphp.y" +#line 1415 "../../../../hphp/util/parser/hphp.y" { Token t; scalar_num(_p, t, "1"); _p->onArrayPair((yyval),0,&(yyvsp[(1) - (1)]),t,0);;} break; @@ -6952,7 +6948,7 @@ yyreduce: case 221: /* Line 1455 of yacc.c */ -#line 1422 "../../../../hphp/util/parser/hphp.y" +#line 1418 "../../../../hphp/util/parser/hphp.y" { Token t; scalar_num(_p, t, "1"); _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]),&(yyvsp[(3) - (3)]),t,0);;} break; @@ -6960,7 +6956,7 @@ yyreduce: case 222: /* Line 1455 of yacc.c */ -#line 1427 "../../../../hphp/util/parser/hphp.y" +#line 1423 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(1) - (1)]));;} break; @@ -6968,14 +6964,14 @@ yyreduce: case 223: /* Line 1455 of yacc.c */ -#line 1432 "../../../../hphp/util/parser/hphp.y" +#line 1428 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); (yyval) = 2;;} break; case 224: /* Line 1455 of yacc.c */ -#line 1433 "../../../../hphp/util/parser/hphp.y" +#line 1429 "../../../../hphp/util/parser/hphp.y" { (yyval) = -1; if ((yyvsp[(1) - (1)]).same("any")) (yyval) = 1;;} break; @@ -6983,91 +6979,91 @@ yyreduce: case 225: /* Line 1455 of yacc.c */ -#line 1435 "../../../../hphp/util/parser/hphp.y" +#line 1431 "../../../../hphp/util/parser/hphp.y" { (yyval) = 0;;} break; case 226: /* Line 1455 of yacc.c */ -#line 1439 "../../../../hphp/util/parser/hphp.y" +#line 1435 "../../../../hphp/util/parser/hphp.y" { xhp_children_paren(_p, (yyval), (yyvsp[(2) - (3)]), 0);;} break; case 227: /* Line 1455 of yacc.c */ -#line 1440 "../../../../hphp/util/parser/hphp.y" +#line 1436 "../../../../hphp/util/parser/hphp.y" { xhp_children_paren(_p, (yyval), (yyvsp[(2) - (4)]), 1);;} break; case 228: /* Line 1455 of yacc.c */ -#line 1441 "../../../../hphp/util/parser/hphp.y" +#line 1437 "../../../../hphp/util/parser/hphp.y" { xhp_children_paren(_p, (yyval), (yyvsp[(2) - (4)]), 2);;} break; case 229: /* Line 1455 of yacc.c */ -#line 1442 "../../../../hphp/util/parser/hphp.y" +#line 1438 "../../../../hphp/util/parser/hphp.y" { xhp_children_paren(_p, (yyval), (yyvsp[(2) - (4)]), 3);;} break; case 230: /* Line 1455 of yacc.c */ -#line 1446 "../../../../hphp/util/parser/hphp.y" +#line 1442 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 231: /* Line 1455 of yacc.c */ -#line 1447 "../../../../hphp/util/parser/hphp.y" +#line 1443 "../../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (1)]),0, 0);;} break; case 232: /* Line 1455 of yacc.c */ -#line 1448 "../../../../hphp/util/parser/hphp.y" +#line 1444 "../../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (2)]),1, 0);;} break; case 233: /* Line 1455 of yacc.c */ -#line 1449 "../../../../hphp/util/parser/hphp.y" +#line 1445 "../../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (2)]),2, 0);;} break; case 234: /* Line 1455 of yacc.c */ -#line 1450 "../../../../hphp/util/parser/hphp.y" +#line 1446 "../../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (2)]),3, 0);;} break; case 235: /* Line 1455 of yacc.c */ -#line 1452 "../../../../hphp/util/parser/hphp.y" +#line 1448 "../../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (3)]),4,&(yyvsp[(3) - (3)]));;} break; case 236: /* Line 1455 of yacc.c */ -#line 1454 "../../../../hphp/util/parser/hphp.y" +#line 1450 "../../../../hphp/util/parser/hphp.y" { xhp_children_decl(_p,(yyval),(yyvsp[(1) - (3)]),5,&(yyvsp[(3) - (3)]));;} break; case 237: /* Line 1455 of yacc.c */ -#line 1458 "../../../../hphp/util/parser/hphp.y" +#line 1454 "../../../../hphp/util/parser/hphp.y" { (yyval) = -1; if ((yyvsp[(1) - (1)]).same("any")) (yyval) = 1; else if ((yyvsp[(1) - (1)]).same("pcdata")) (yyval) = 2;;} @@ -7076,567 +7072,567 @@ yyreduce: case 238: /* Line 1455 of yacc.c */ -#line 1461 "../../../../hphp/util/parser/hphp.y" +#line 1457 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpLabel(); (yyval) = (yyvsp[(1) - (1)]); (yyval) = 3;;} break; case 239: /* Line 1455 of yacc.c */ -#line 1462 "../../../../hphp/util/parser/hphp.y" +#line 1458 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpLabel(0); (yyval) = (yyvsp[(1) - (1)]); (yyval) = 4;;} break; case 240: /* Line 1455 of yacc.c */ -#line 1466 "../../../../hphp/util/parser/hphp.y" +#line 1462 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 241: /* Line 1455 of yacc.c */ -#line 1467 "../../../../hphp/util/parser/hphp.y" +#line 1463 "../../../../hphp/util/parser/hphp.y" { _p->finishStatement((yyval), (yyvsp[(2) - (3)])); (yyval) = 1;;} break; case 242: /* Line 1455 of yacc.c */ -#line 1470 "../../../../hphp/util/parser/hphp.y" +#line 1466 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 243: /* Line 1455 of yacc.c */ -#line 1471 "../../../../hphp/util/parser/hphp.y" +#line 1467 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 244: /* Line 1455 of yacc.c */ -#line 1474 "../../../../hphp/util/parser/hphp.y" +#line 1470 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 245: /* Line 1455 of yacc.c */ -#line 1475 "../../../../hphp/util/parser/hphp.y" +#line 1471 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 246: /* Line 1455 of yacc.c */ -#line 1478 "../../../../hphp/util/parser/hphp.y" +#line 1474 "../../../../hphp/util/parser/hphp.y" { _p->onMemberModifier((yyval),NULL,(yyvsp[(1) - (1)]));;} break; case 247: /* Line 1455 of yacc.c */ -#line 1480 "../../../../hphp/util/parser/hphp.y" +#line 1476 "../../../../hphp/util/parser/hphp.y" { _p->onMemberModifier((yyval),&(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 248: /* Line 1455 of yacc.c */ -#line 1483 "../../../../hphp/util/parser/hphp.y" +#line 1479 "../../../../hphp/util/parser/hphp.y" { (yyval) = T_PUBLIC;;} break; case 249: /* Line 1455 of yacc.c */ -#line 1484 "../../../../hphp/util/parser/hphp.y" +#line 1480 "../../../../hphp/util/parser/hphp.y" { (yyval) = T_PROTECTED;;} break; case 250: /* Line 1455 of yacc.c */ -#line 1485 "../../../../hphp/util/parser/hphp.y" +#line 1481 "../../../../hphp/util/parser/hphp.y" { (yyval) = T_PRIVATE;;} break; case 251: /* Line 1455 of yacc.c */ -#line 1486 "../../../../hphp/util/parser/hphp.y" +#line 1482 "../../../../hphp/util/parser/hphp.y" { (yyval) = T_STATIC;;} break; case 252: /* Line 1455 of yacc.c */ -#line 1487 "../../../../hphp/util/parser/hphp.y" +#line 1483 "../../../../hphp/util/parser/hphp.y" { (yyval) = T_ABSTRACT;;} break; case 253: /* Line 1455 of yacc.c */ -#line 1488 "../../../../hphp/util/parser/hphp.y" +#line 1484 "../../../../hphp/util/parser/hphp.y" { (yyval) = T_FINAL;;} break; case 254: /* Line 1455 of yacc.c */ -#line 1492 "../../../../hphp/util/parser/hphp.y" +#line 1488 "../../../../hphp/util/parser/hphp.y" { _p->onClassVariable((yyval),&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 255: /* Line 1455 of yacc.c */ -#line 1494 "../../../../hphp/util/parser/hphp.y" +#line 1490 "../../../../hphp/util/parser/hphp.y" { _p->onClassVariable((yyval),&(yyvsp[(1) - (5)]),(yyvsp[(3) - (5)]),&(yyvsp[(5) - (5)]));;} break; case 256: /* Line 1455 of yacc.c */ -#line 1495 "../../../../hphp/util/parser/hphp.y" +#line 1491 "../../../../hphp/util/parser/hphp.y" { _p->onClassVariable((yyval),0,(yyvsp[(1) - (1)]),0);;} break; case 257: /* Line 1455 of yacc.c */ -#line 1496 "../../../../hphp/util/parser/hphp.y" +#line 1492 "../../../../hphp/util/parser/hphp.y" { _p->onClassVariable((yyval),0,(yyvsp[(1) - (3)]),&(yyvsp[(3) - (3)]));;} break; case 258: /* Line 1455 of yacc.c */ -#line 1500 "../../../../hphp/util/parser/hphp.y" +#line 1496 "../../../../hphp/util/parser/hphp.y" { _p->onClassConstant((yyval),&(yyvsp[(1) - (5)]),(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]));;} break; case 259: /* Line 1455 of yacc.c */ -#line 1501 "../../../../hphp/util/parser/hphp.y" +#line 1497 "../../../../hphp/util/parser/hphp.y" { _p->onClassConstant((yyval),0,(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]));;} break; case 260: /* Line 1455 of yacc.c */ -#line 1506 "../../../../hphp/util/parser/hphp.y" +#line 1502 "../../../../hphp/util/parser/hphp.y" { _p->onNewObject((yyval), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));;} break; case 261: /* Line 1455 of yacc.c */ -#line 1507 "../../../../hphp/util/parser/hphp.y" +#line 1503 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 262: /* Line 1455 of yacc.c */ -#line 1511 "../../../../hphp/util/parser/hphp.y" +#line 1507 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 263: /* Line 1455 of yacc.c */ -#line 1515 "../../../../hphp/util/parser/hphp.y" +#line 1511 "../../../../hphp/util/parser/hphp.y" { _p->onExprListElem((yyval), &(yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 264: /* Line 1455 of yacc.c */ -#line 1516 "../../../../hphp/util/parser/hphp.y" +#line 1512 "../../../../hphp/util/parser/hphp.y" { _p->onExprListElem((yyval), NULL, (yyvsp[(1) - (1)]));;} break; case 265: /* Line 1455 of yacc.c */ -#line 1520 "../../../../hphp/util/parser/hphp.y" +#line 1516 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 266: /* Line 1455 of yacc.c */ -#line 1521 "../../../../hphp/util/parser/hphp.y" +#line 1517 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 267: /* Line 1455 of yacc.c */ -#line 1525 "../../../../hphp/util/parser/hphp.y" +#line 1521 "../../../../hphp/util/parser/hphp.y" { _p->onYield((yyval), (yyvsp[(2) - (2)]));;} break; case 268: /* Line 1455 of yacc.c */ -#line 1529 "../../../../hphp/util/parser/hphp.y" +#line 1525 "../../../../hphp/util/parser/hphp.y" { _p->onAssign((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), 0, true);;} break; case 269: /* Line 1455 of yacc.c */ -#line 1534 "../../../../hphp/util/parser/hphp.y" +#line 1530 "../../../../hphp/util/parser/hphp.y" { _p->onListAssignment((yyval), (yyvsp[(3) - (6)]), &(yyvsp[(6) - (6)]), true);;} break; case 270: /* Line 1455 of yacc.c */ -#line 1538 "../../../../hphp/util/parser/hphp.y" +#line 1534 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 271: /* Line 1455 of yacc.c */ -#line 1539 "../../../../hphp/util/parser/hphp.y" +#line 1535 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 272: /* Line 1455 of yacc.c */ -#line 1540 "../../../../hphp/util/parser/hphp.y" +#line 1536 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 273: /* Line 1455 of yacc.c */ -#line 1544 "../../../../hphp/util/parser/hphp.y" +#line 1540 "../../../../hphp/util/parser/hphp.y" { _p->onListAssignment((yyval), (yyvsp[(3) - (6)]), &(yyvsp[(6) - (6)]));;} break; case 274: /* Line 1455 of yacc.c */ -#line 1545 "../../../../hphp/util/parser/hphp.y" +#line 1541 "../../../../hphp/util/parser/hphp.y" { _p->onAssign((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), 0);;} break; case 275: /* Line 1455 of yacc.c */ -#line 1546 "../../../../hphp/util/parser/hphp.y" +#line 1542 "../../../../hphp/util/parser/hphp.y" { _p->onAssign((yyval), (yyvsp[(1) - (4)]), (yyvsp[(4) - (4)]), 1);;} break; case 276: /* Line 1455 of yacc.c */ -#line 1549 "../../../../hphp/util/parser/hphp.y" +#line 1545 "../../../../hphp/util/parser/hphp.y" { _p->onAssignNew((yyval),(yyvsp[(1) - (6)]),(yyvsp[(5) - (6)]),(yyvsp[(6) - (6)]));;} break; case 277: /* Line 1455 of yacc.c */ -#line 1550 "../../../../hphp/util/parser/hphp.y" +#line 1546 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_CLONE,1);;} break; case 278: /* Line 1455 of yacc.c */ -#line 1551 "../../../../hphp/util/parser/hphp.y" +#line 1547 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_PLUS_EQUAL);;} break; case 279: /* Line 1455 of yacc.c */ -#line 1552 "../../../../hphp/util/parser/hphp.y" +#line 1548 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_MINUS_EQUAL);;} break; case 280: /* Line 1455 of yacc.c */ -#line 1553 "../../../../hphp/util/parser/hphp.y" +#line 1549 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_MUL_EQUAL);;} break; case 281: /* Line 1455 of yacc.c */ -#line 1554 "../../../../hphp/util/parser/hphp.y" +#line 1550 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_DIV_EQUAL);;} break; case 282: /* Line 1455 of yacc.c */ -#line 1555 "../../../../hphp/util/parser/hphp.y" +#line 1551 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_CONCAT_EQUAL);;} break; case 283: /* Line 1455 of yacc.c */ -#line 1556 "../../../../hphp/util/parser/hphp.y" +#line 1552 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_MOD_EQUAL);;} break; case 284: /* Line 1455 of yacc.c */ -#line 1557 "../../../../hphp/util/parser/hphp.y" +#line 1553 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_AND_EQUAL);;} break; case 285: /* Line 1455 of yacc.c */ -#line 1558 "../../../../hphp/util/parser/hphp.y" +#line 1554 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_OR_EQUAL);;} break; case 286: /* Line 1455 of yacc.c */ -#line 1559 "../../../../hphp/util/parser/hphp.y" +#line 1555 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_XOR_EQUAL);;} break; case 287: /* Line 1455 of yacc.c */ -#line 1560 "../../../../hphp/util/parser/hphp.y" +#line 1556 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_SL_EQUAL);;} break; case 288: /* Line 1455 of yacc.c */ -#line 1561 "../../../../hphp/util/parser/hphp.y" +#line 1557 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_SR_EQUAL);;} break; case 289: /* Line 1455 of yacc.c */ -#line 1562 "../../../../hphp/util/parser/hphp.y" +#line 1558 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(1) - (2)]),T_INC,0);;} break; case 290: /* Line 1455 of yacc.c */ -#line 1563 "../../../../hphp/util/parser/hphp.y" +#line 1559 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_INC,1);;} break; case 291: /* Line 1455 of yacc.c */ -#line 1564 "../../../../hphp/util/parser/hphp.y" +#line 1560 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(1) - (2)]),T_DEC,0);;} break; case 292: /* Line 1455 of yacc.c */ -#line 1565 "../../../../hphp/util/parser/hphp.y" +#line 1561 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_DEC,1);;} break; case 293: /* Line 1455 of yacc.c */ -#line 1566 "../../../../hphp/util/parser/hphp.y" +#line 1562 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_BOOLEAN_OR);;} break; case 294: /* Line 1455 of yacc.c */ -#line 1567 "../../../../hphp/util/parser/hphp.y" +#line 1563 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_BOOLEAN_AND);;} break; case 295: /* Line 1455 of yacc.c */ -#line 1568 "../../../../hphp/util/parser/hphp.y" +#line 1564 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_LOGICAL_OR);;} break; case 296: /* Line 1455 of yacc.c */ -#line 1569 "../../../../hphp/util/parser/hphp.y" +#line 1565 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_LOGICAL_AND);;} break; case 297: /* Line 1455 of yacc.c */ -#line 1570 "../../../../hphp/util/parser/hphp.y" +#line 1566 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_LOGICAL_XOR);;} break; case 298: /* Line 1455 of yacc.c */ -#line 1571 "../../../../hphp/util/parser/hphp.y" +#line 1567 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'|');;} break; case 299: /* Line 1455 of yacc.c */ -#line 1572 "../../../../hphp/util/parser/hphp.y" +#line 1568 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'&');;} break; case 300: /* Line 1455 of yacc.c */ -#line 1573 "../../../../hphp/util/parser/hphp.y" +#line 1569 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'^');;} break; case 301: /* Line 1455 of yacc.c */ -#line 1574 "../../../../hphp/util/parser/hphp.y" +#line 1570 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'.');;} break; case 302: /* Line 1455 of yacc.c */ -#line 1575 "../../../../hphp/util/parser/hphp.y" +#line 1571 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'+');;} break; case 303: /* Line 1455 of yacc.c */ -#line 1576 "../../../../hphp/util/parser/hphp.y" +#line 1572 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'-');;} break; case 304: /* Line 1455 of yacc.c */ -#line 1577 "../../../../hphp/util/parser/hphp.y" +#line 1573 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'*');;} break; case 305: /* Line 1455 of yacc.c */ -#line 1578 "../../../../hphp/util/parser/hphp.y" +#line 1574 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'/');;} break; case 306: /* Line 1455 of yacc.c */ -#line 1579 "../../../../hphp/util/parser/hphp.y" +#line 1575 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'%');;} break; case 307: /* Line 1455 of yacc.c */ -#line 1580 "../../../../hphp/util/parser/hphp.y" +#line 1576 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_SL);;} break; case 308: /* Line 1455 of yacc.c */ -#line 1581 "../../../../hphp/util/parser/hphp.y" +#line 1577 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_SR);;} break; case 309: /* Line 1455 of yacc.c */ -#line 1582 "../../../../hphp/util/parser/hphp.y" +#line 1578 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'+',1);;} break; case 310: /* Line 1455 of yacc.c */ -#line 1583 "../../../../hphp/util/parser/hphp.y" +#line 1579 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'-',1);;} break; case 311: /* Line 1455 of yacc.c */ -#line 1584 "../../../../hphp/util/parser/hphp.y" +#line 1580 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'!',1);;} break; case 312: /* Line 1455 of yacc.c */ -#line 1585 "../../../../hphp/util/parser/hphp.y" +#line 1581 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'~',1);;} break; case 313: /* Line 1455 of yacc.c */ -#line 1586 "../../../../hphp/util/parser/hphp.y" +#line 1582 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_IS_IDENTICAL);;} break; case 314: /* Line 1455 of yacc.c */ -#line 1587 "../../../../hphp/util/parser/hphp.y" +#line 1583 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_IS_NOT_IDENTICAL);;} break; case 315: /* Line 1455 of yacc.c */ -#line 1588 "../../../../hphp/util/parser/hphp.y" +#line 1584 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_IS_EQUAL);;} break; case 316: /* Line 1455 of yacc.c */ -#line 1589 "../../../../hphp/util/parser/hphp.y" +#line 1585 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_IS_NOT_EQUAL);;} break; case 317: /* Line 1455 of yacc.c */ -#line 1590 "../../../../hphp/util/parser/hphp.y" +#line 1586 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'<');;} break; case 318: /* Line 1455 of yacc.c */ -#line 1591 "../../../../hphp/util/parser/hphp.y" +#line 1587 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]), T_IS_SMALLER_OR_EQUAL);;} break; @@ -7644,14 +7640,14 @@ yyreduce: case 319: /* Line 1455 of yacc.c */ -#line 1593 "../../../../hphp/util/parser/hphp.y" +#line 1589 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),'>');;} break; case 320: /* Line 1455 of yacc.c */ -#line 1594 "../../../../hphp/util/parser/hphp.y" +#line 1590 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]), T_IS_GREATER_OR_EQUAL);;} break; @@ -7659,140 +7655,140 @@ yyreduce: case 321: /* Line 1455 of yacc.c */ -#line 1597 "../../../../hphp/util/parser/hphp.y" +#line 1593 "../../../../hphp/util/parser/hphp.y" { BEXP((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),T_INSTANCEOF);;} break; case 322: /* Line 1455 of yacc.c */ -#line 1598 "../../../../hphp/util/parser/hphp.y" +#line 1594 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 323: /* Line 1455 of yacc.c */ -#line 1599 "../../../../hphp/util/parser/hphp.y" +#line 1595 "../../../../hphp/util/parser/hphp.y" { _p->onQOp((yyval), (yyvsp[(1) - (5)]), &(yyvsp[(3) - (5)]), (yyvsp[(5) - (5)]));;} break; case 324: /* Line 1455 of yacc.c */ -#line 1600 "../../../../hphp/util/parser/hphp.y" +#line 1596 "../../../../hphp/util/parser/hphp.y" { _p->onQOp((yyval), (yyvsp[(1) - (4)]), 0, (yyvsp[(4) - (4)]));;} break; case 325: /* Line 1455 of yacc.c */ -#line 1601 "../../../../hphp/util/parser/hphp.y" +#line 1597 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 326: /* Line 1455 of yacc.c */ -#line 1602 "../../../../hphp/util/parser/hphp.y" +#line 1598 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_INT_CAST,1);;} break; case 327: /* Line 1455 of yacc.c */ -#line 1603 "../../../../hphp/util/parser/hphp.y" +#line 1599 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_DOUBLE_CAST,1);;} break; case 328: /* Line 1455 of yacc.c */ -#line 1604 "../../../../hphp/util/parser/hphp.y" +#line 1600 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_STRING_CAST,1);;} break; case 329: /* Line 1455 of yacc.c */ -#line 1605 "../../../../hphp/util/parser/hphp.y" +#line 1601 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_ARRAY_CAST,1);;} break; case 330: /* Line 1455 of yacc.c */ -#line 1606 "../../../../hphp/util/parser/hphp.y" +#line 1602 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_OBJECT_CAST,1);;} break; case 331: /* Line 1455 of yacc.c */ -#line 1607 "../../../../hphp/util/parser/hphp.y" +#line 1603 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_BOOL_CAST,1);;} break; case 332: /* Line 1455 of yacc.c */ -#line 1608 "../../../../hphp/util/parser/hphp.y" +#line 1604 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_UNSET_CAST,1);;} break; case 333: /* Line 1455 of yacc.c */ -#line 1609 "../../../../hphp/util/parser/hphp.y" +#line 1605 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_EXIT,1);;} break; case 334: /* Line 1455 of yacc.c */ -#line 1610 "../../../../hphp/util/parser/hphp.y" +#line 1606 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'@',1);;} break; case 335: /* Line 1455 of yacc.c */ -#line 1611 "../../../../hphp/util/parser/hphp.y" +#line 1607 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 336: /* Line 1455 of yacc.c */ -#line 1612 "../../../../hphp/util/parser/hphp.y" +#line 1608 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 337: /* Line 1455 of yacc.c */ -#line 1613 "../../../../hphp/util/parser/hphp.y" +#line 1609 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 338: /* Line 1455 of yacc.c */ -#line 1614 "../../../../hphp/util/parser/hphp.y" +#line 1610 "../../../../hphp/util/parser/hphp.y" { _p->onEncapsList((yyval),'`',(yyvsp[(2) - (3)]));;} break; case 339: /* Line 1455 of yacc.c */ -#line 1615 "../../../../hphp/util/parser/hphp.y" +#line 1611 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_PRINT,1);;} break; case 340: /* Line 1455 of yacc.c */ -#line 1617 "../../../../hphp/util/parser/hphp.y" +#line 1613 "../../../../hphp/util/parser/hphp.y" { Token t; _p->onClosureStart(t); _p->pushLabelInfo();;} break; @@ -7800,7 +7796,7 @@ yyreduce: case 341: /* Line 1455 of yacc.c */ -#line 1621 "../../../../hphp/util/parser/hphp.y" +#line 1617 "../../../../hphp/util/parser/hphp.y" { Token u; u.reset(); _p->onClosure((yyval),u,(yyvsp[(2) - (11)]),(yyvsp[(5) - (11)]),(yyvsp[(8) - (11)]),(yyvsp[(10) - (11)]),0); _p->popLabelInfo();;} @@ -7809,7 +7805,7 @@ yyreduce: case 342: /* Line 1455 of yacc.c */ -#line 1625 "../../../../hphp/util/parser/hphp.y" +#line 1621 "../../../../hphp/util/parser/hphp.y" { Token t; _p->onClosureStart(t); _p->pushLabelInfo();;} break; @@ -7817,7 +7813,7 @@ yyreduce: case 343: /* Line 1455 of yacc.c */ -#line 1629 "../../../../hphp/util/parser/hphp.y" +#line 1625 "../../../../hphp/util/parser/hphp.y" { Token u; u.reset(); _p->onClosure((yyval),u,(yyvsp[(3) - (12)]),(yyvsp[(6) - (12)]),(yyvsp[(9) - (12)]),(yyvsp[(11) - (12)]),1); _p->popLabelInfo();;} @@ -7826,28 +7822,28 @@ yyreduce: case 344: /* Line 1455 of yacc.c */ -#line 1632 "../../../../hphp/util/parser/hphp.y" +#line 1628 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 345: /* Line 1455 of yacc.c */ -#line 1633 "../../../../hphp/util/parser/hphp.y" +#line 1629 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 346: /* Line 1455 of yacc.c */ -#line 1634 "../../../../hphp/util/parser/hphp.y" +#line 1630 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 347: /* Line 1455 of yacc.c */ -#line 1641 "../../../../hphp/util/parser/hphp.y" +#line 1637 "../../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(3) - (5)]), _p); _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0); ;} break; @@ -7855,7 +7851,7 @@ yyreduce: case 348: /* Line 1455 of yacc.c */ -#line 1645 "../../../../hphp/util/parser/hphp.y" +#line 1641 "../../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(1) - (3)]), _p); _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0); ;} break; @@ -7863,7 +7859,7 @@ yyreduce: case 349: /* Line 1455 of yacc.c */ -#line 1653 "../../../../hphp/util/parser/hphp.y" +#line 1649 "../../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(3) - (5)]), _p); _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0); ;} break; @@ -7871,7 +7867,7 @@ yyreduce: case 350: /* Line 1455 of yacc.c */ -#line 1657 "../../../../hphp/util/parser/hphp.y" +#line 1653 "../../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(1) - (3)]), _p); _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0); ;} break; @@ -7879,35 +7875,35 @@ yyreduce: case 351: /* Line 1455 of yacc.c */ -#line 1663 "../../../../hphp/util/parser/hphp.y" +#line 1659 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]); ;} break; case 352: /* Line 1455 of yacc.c */ -#line 1664 "../../../../hphp/util/parser/hphp.y" +#line 1660 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 353: /* Line 1455 of yacc.c */ -#line 1669 "../../../../hphp/util/parser/hphp.y" +#line 1665 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]); ;} break; case 354: /* Line 1455 of yacc.c */ -#line 1670 "../../../../hphp/util/parser/hphp.y" +#line 1666 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 355: /* Line 1455 of yacc.c */ -#line 1674 "../../../../hphp/util/parser/hphp.y" +#line 1670 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); _p->onArray((yyval), (yyvsp[(3) - (4)]), T_ARRAY); ;} break; @@ -7915,14 +7911,14 @@ yyreduce: case 356: /* Line 1455 of yacc.c */ -#line 1679 "../../../../hphp/util/parser/hphp.y" +#line 1675 "../../../../hphp/util/parser/hphp.y" { _p->onArray((yyval),(yyvsp[(3) - (4)]),T_ARRAY);;} break; case 357: /* Line 1455 of yacc.c */ -#line 1684 "../../../../hphp/util/parser/hphp.y" +#line 1680 "../../../../hphp/util/parser/hphp.y" { Token t; _p->onName(t,(yyvsp[(1) - (4)]),Parser::StringName); BEXP((yyval),t,(yyvsp[(3) - (4)]),T_COLLECTION);;} @@ -7931,7 +7927,7 @@ yyreduce: case 358: /* Line 1455 of yacc.c */ -#line 1691 "../../../../hphp/util/parser/hphp.y" +#line 1687 "../../../../hphp/util/parser/hphp.y" { Token t; _p->onName(t,(yyvsp[(1) - (4)]),Parser::StringName); BEXP((yyval),t,(yyvsp[(3) - (4)]),T_COLLECTION);;} @@ -7940,91 +7936,91 @@ yyreduce: case 359: /* Line 1455 of yacc.c */ -#line 1698 "../../../../hphp/util/parser/hphp.y" +#line 1694 "../../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (4)]), (yyvsp[(3) - (4)]));;} break; case 360: /* Line 1455 of yacc.c */ -#line 1700 "../../../../hphp/util/parser/hphp.y" +#line 1696 "../../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (4)]), (yyvsp[(3) - (4)]));;} break; case 361: /* Line 1455 of yacc.c */ -#line 1704 "../../../../hphp/util/parser/hphp.y" +#line 1700 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 362: /* Line 1455 of yacc.c */ -#line 1705 "../../../../hphp/util/parser/hphp.y" +#line 1701 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 363: /* Line 1455 of yacc.c */ -#line 1706 "../../../../hphp/util/parser/hphp.y" +#line 1702 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 364: /* Line 1455 of yacc.c */ -#line 1713 "../../../../hphp/util/parser/hphp.y" +#line 1709 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (5)]);;} break; case 365: /* Line 1455 of yacc.c */ -#line 1714 "../../../../hphp/util/parser/hphp.y" +#line 1710 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 366: /* Line 1455 of yacc.c */ -#line 1718 "../../../../hphp/util/parser/hphp.y" +#line 1714 "../../../../hphp/util/parser/hphp.y" { _p->onClosureParam((yyval),&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 367: /* Line 1455 of yacc.c */ -#line 1719 "../../../../hphp/util/parser/hphp.y" +#line 1715 "../../../../hphp/util/parser/hphp.y" { _p->onClosureParam((yyval),&(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),1);;} break; case 368: /* Line 1455 of yacc.c */ -#line 1720 "../../../../hphp/util/parser/hphp.y" +#line 1716 "../../../../hphp/util/parser/hphp.y" { _p->onClosureParam((yyval), 0,(yyvsp[(1) - (1)]),0);;} break; case 369: /* Line 1455 of yacc.c */ -#line 1721 "../../../../hphp/util/parser/hphp.y" +#line 1717 "../../../../hphp/util/parser/hphp.y" { _p->onClosureParam((yyval), 0,(yyvsp[(2) - (2)]),1);;} break; case 370: /* Line 1455 of yacc.c */ -#line 1728 "../../../../hphp/util/parser/hphp.y" +#line 1724 "../../../../hphp/util/parser/hphp.y" { xhp_tag(_p,(yyval),(yyvsp[(2) - (4)]),(yyvsp[(3) - (4)]));;} break; case 371: /* Line 1455 of yacc.c */ -#line 1731 "../../../../hphp/util/parser/hphp.y" +#line 1727 "../../../../hphp/util/parser/hphp.y" { Token t1; _p->onArray(t1,(yyvsp[(1) - (2)])); Token t2; _p->onArray(t2,(yyvsp[(2) - (2)])); _p->onCallParam((yyvsp[(1) - (2)]),NULL,t1,0); @@ -8035,7 +8031,7 @@ yyreduce: case 372: /* Line 1455 of yacc.c */ -#line 1738 "../../../../hphp/util/parser/hphp.y" +#line 1734 "../../../../hphp/util/parser/hphp.y" { _p->onArray((yyvsp[(4) - (6)]),(yyvsp[(1) - (6)])); _p->onArray((yyvsp[(5) - (6)]),(yyvsp[(3) - (6)])); _p->onCallParam((yyvsp[(2) - (6)]),NULL,(yyvsp[(4) - (6)]),0); @@ -8046,49 +8042,49 @@ yyreduce: case 373: /* Line 1455 of yacc.c */ -#line 1745 "../../../../hphp/util/parser/hphp.y" +#line 1741 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); (yyval).setText("");;} break; case 374: /* Line 1455 of yacc.c */ -#line 1746 "../../../../hphp/util/parser/hphp.y" +#line 1742 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); (yyval).setText((yyvsp[(1) - (1)]));;} break; case 375: /* Line 1455 of yacc.c */ -#line 1751 "../../../../hphp/util/parser/hphp.y" +#line 1747 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (4)]),&(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]),0);;} break; case 376: /* Line 1455 of yacc.c */ -#line 1752 "../../../../hphp/util/parser/hphp.y" +#line 1748 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 377: /* Line 1455 of yacc.c */ -#line 1755 "../../../../hphp/util/parser/hphp.y" +#line 1751 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (2)]),0,(yyvsp[(2) - (2)]),0);;} break; case 378: /* Line 1455 of yacc.c */ -#line 1756 "../../../../hphp/util/parser/hphp.y" +#line 1752 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 379: /* Line 1455 of yacc.c */ -#line 1759 "../../../../hphp/util/parser/hphp.y" +#line 1755 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(1) - (1)]));;} break; @@ -8096,7 +8092,7 @@ yyreduce: case 380: /* Line 1455 of yacc.c */ -#line 1763 "../../../../hphp/util/parser/hphp.y" +#line 1759 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpDecode(); _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(1) - (1)]));;} @@ -8105,14 +8101,14 @@ yyreduce: case 381: /* Line 1455 of yacc.c */ -#line 1766 "../../../../hphp/util/parser/hphp.y" +#line 1762 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 382: /* Line 1455 of yacc.c */ -#line 1769 "../../../../hphp/util/parser/hphp.y" +#line 1765 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); if ((yyvsp[(1) - (1)]).htmlTrim()) { (yyvsp[(1) - (1)]).xhpDecode(); @@ -8125,595 +8121,595 @@ yyreduce: case 383: /* Line 1455 of yacc.c */ -#line 1776 "../../../../hphp/util/parser/hphp.y" +#line 1772 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]); ;} break; case 384: /* Line 1455 of yacc.c */ -#line 1777 "../../../../hphp/util/parser/hphp.y" +#line 1773 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 385: /* Line 1455 of yacc.c */ -#line 1781 "../../../../hphp/util/parser/hphp.y" +#line 1777 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 386: /* Line 1455 of yacc.c */ -#line 1783 "../../../../hphp/util/parser/hphp.y" +#line 1779 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (3)]) + ":" + (yyvsp[(3) - (3)]);;} break; case 387: /* Line 1455 of yacc.c */ -#line 1785 "../../../../hphp/util/parser/hphp.y" +#line 1781 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (3)]) + "-" + (yyvsp[(3) - (3)]);;} break; case 388: /* Line 1455 of yacc.c */ -#line 1788 "../../../../hphp/util/parser/hphp.y" +#line 1784 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 389: /* Line 1455 of yacc.c */ -#line 1789 "../../../../hphp/util/parser/hphp.y" +#line 1785 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 390: /* Line 1455 of yacc.c */ -#line 1790 "../../../../hphp/util/parser/hphp.y" +#line 1786 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 391: /* Line 1455 of yacc.c */ -#line 1791 "../../../../hphp/util/parser/hphp.y" +#line 1787 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 392: /* Line 1455 of yacc.c */ -#line 1792 "../../../../hphp/util/parser/hphp.y" +#line 1788 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 393: /* Line 1455 of yacc.c */ -#line 1793 "../../../../hphp/util/parser/hphp.y" +#line 1789 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 394: /* Line 1455 of yacc.c */ -#line 1794 "../../../../hphp/util/parser/hphp.y" +#line 1790 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 395: /* Line 1455 of yacc.c */ -#line 1795 "../../../../hphp/util/parser/hphp.y" +#line 1791 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 396: /* Line 1455 of yacc.c */ -#line 1796 "../../../../hphp/util/parser/hphp.y" +#line 1792 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 397: /* Line 1455 of yacc.c */ -#line 1797 "../../../../hphp/util/parser/hphp.y" +#line 1793 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 398: /* Line 1455 of yacc.c */ -#line 1798 "../../../../hphp/util/parser/hphp.y" +#line 1794 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 399: /* Line 1455 of yacc.c */ -#line 1799 "../../../../hphp/util/parser/hphp.y" +#line 1795 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 400: /* Line 1455 of yacc.c */ -#line 1800 "../../../../hphp/util/parser/hphp.y" +#line 1796 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 401: /* Line 1455 of yacc.c */ -#line 1801 "../../../../hphp/util/parser/hphp.y" +#line 1797 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 402: /* Line 1455 of yacc.c */ -#line 1802 "../../../../hphp/util/parser/hphp.y" +#line 1798 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 403: /* Line 1455 of yacc.c */ -#line 1803 "../../../../hphp/util/parser/hphp.y" +#line 1799 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 404: /* Line 1455 of yacc.c */ -#line 1804 "../../../../hphp/util/parser/hphp.y" +#line 1800 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 405: /* Line 1455 of yacc.c */ -#line 1805 "../../../../hphp/util/parser/hphp.y" +#line 1801 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 406: /* Line 1455 of yacc.c */ -#line 1806 "../../../../hphp/util/parser/hphp.y" +#line 1802 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 407: /* Line 1455 of yacc.c */ -#line 1807 "../../../../hphp/util/parser/hphp.y" +#line 1803 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 408: /* Line 1455 of yacc.c */ -#line 1808 "../../../../hphp/util/parser/hphp.y" +#line 1804 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 409: /* Line 1455 of yacc.c */ -#line 1809 "../../../../hphp/util/parser/hphp.y" +#line 1805 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 410: /* Line 1455 of yacc.c */ -#line 1810 "../../../../hphp/util/parser/hphp.y" +#line 1806 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 411: /* Line 1455 of yacc.c */ -#line 1811 "../../../../hphp/util/parser/hphp.y" +#line 1807 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 412: /* Line 1455 of yacc.c */ -#line 1812 "../../../../hphp/util/parser/hphp.y" +#line 1808 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 413: /* Line 1455 of yacc.c */ -#line 1813 "../../../../hphp/util/parser/hphp.y" +#line 1809 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 414: /* Line 1455 of yacc.c */ -#line 1814 "../../../../hphp/util/parser/hphp.y" +#line 1810 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 415: /* Line 1455 of yacc.c */ -#line 1815 "../../../../hphp/util/parser/hphp.y" +#line 1811 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 416: /* Line 1455 of yacc.c */ -#line 1816 "../../../../hphp/util/parser/hphp.y" +#line 1812 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 417: /* Line 1455 of yacc.c */ -#line 1817 "../../../../hphp/util/parser/hphp.y" +#line 1813 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 418: /* Line 1455 of yacc.c */ -#line 1818 "../../../../hphp/util/parser/hphp.y" +#line 1814 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 419: /* Line 1455 of yacc.c */ -#line 1819 "../../../../hphp/util/parser/hphp.y" +#line 1815 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 420: /* Line 1455 of yacc.c */ -#line 1820 "../../../../hphp/util/parser/hphp.y" +#line 1816 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 421: /* Line 1455 of yacc.c */ -#line 1821 "../../../../hphp/util/parser/hphp.y" +#line 1817 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 422: /* Line 1455 of yacc.c */ -#line 1822 "../../../../hphp/util/parser/hphp.y" +#line 1818 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 423: /* Line 1455 of yacc.c */ -#line 1823 "../../../../hphp/util/parser/hphp.y" +#line 1819 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 424: /* Line 1455 of yacc.c */ -#line 1824 "../../../../hphp/util/parser/hphp.y" +#line 1820 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 425: /* Line 1455 of yacc.c */ -#line 1825 "../../../../hphp/util/parser/hphp.y" +#line 1821 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 426: /* Line 1455 of yacc.c */ -#line 1826 "../../../../hphp/util/parser/hphp.y" +#line 1822 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 427: /* Line 1455 of yacc.c */ -#line 1827 "../../../../hphp/util/parser/hphp.y" +#line 1823 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 428: /* Line 1455 of yacc.c */ -#line 1828 "../../../../hphp/util/parser/hphp.y" +#line 1824 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 429: /* Line 1455 of yacc.c */ -#line 1829 "../../../../hphp/util/parser/hphp.y" +#line 1825 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 430: /* Line 1455 of yacc.c */ -#line 1830 "../../../../hphp/util/parser/hphp.y" +#line 1826 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 431: /* Line 1455 of yacc.c */ -#line 1831 "../../../../hphp/util/parser/hphp.y" +#line 1827 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 432: /* Line 1455 of yacc.c */ -#line 1832 "../../../../hphp/util/parser/hphp.y" +#line 1828 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 433: /* Line 1455 of yacc.c */ -#line 1833 "../../../../hphp/util/parser/hphp.y" +#line 1829 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 434: /* Line 1455 of yacc.c */ -#line 1834 "../../../../hphp/util/parser/hphp.y" +#line 1830 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 435: /* Line 1455 of yacc.c */ -#line 1835 "../../../../hphp/util/parser/hphp.y" +#line 1831 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 436: /* Line 1455 of yacc.c */ -#line 1836 "../../../../hphp/util/parser/hphp.y" +#line 1832 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 437: /* Line 1455 of yacc.c */ -#line 1837 "../../../../hphp/util/parser/hphp.y" +#line 1833 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 438: /* Line 1455 of yacc.c */ -#line 1838 "../../../../hphp/util/parser/hphp.y" +#line 1834 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 439: /* Line 1455 of yacc.c */ -#line 1839 "../../../../hphp/util/parser/hphp.y" +#line 1835 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 440: /* Line 1455 of yacc.c */ -#line 1840 "../../../../hphp/util/parser/hphp.y" +#line 1836 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 441: /* Line 1455 of yacc.c */ -#line 1841 "../../../../hphp/util/parser/hphp.y" +#line 1837 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 442: /* Line 1455 of yacc.c */ -#line 1842 "../../../../hphp/util/parser/hphp.y" +#line 1838 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 443: /* Line 1455 of yacc.c */ -#line 1843 "../../../../hphp/util/parser/hphp.y" +#line 1839 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 444: /* Line 1455 of yacc.c */ -#line 1844 "../../../../hphp/util/parser/hphp.y" +#line 1840 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 445: /* Line 1455 of yacc.c */ -#line 1845 "../../../../hphp/util/parser/hphp.y" +#line 1841 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 446: /* Line 1455 of yacc.c */ -#line 1846 "../../../../hphp/util/parser/hphp.y" +#line 1842 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 447: /* Line 1455 of yacc.c */ -#line 1847 "../../../../hphp/util/parser/hphp.y" +#line 1843 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 448: /* Line 1455 of yacc.c */ -#line 1848 "../../../../hphp/util/parser/hphp.y" +#line 1844 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 449: /* Line 1455 of yacc.c */ -#line 1849 "../../../../hphp/util/parser/hphp.y" +#line 1845 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 450: /* Line 1455 of yacc.c */ -#line 1850 "../../../../hphp/util/parser/hphp.y" +#line 1846 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 451: /* Line 1455 of yacc.c */ -#line 1851 "../../../../hphp/util/parser/hphp.y" +#line 1847 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 452: /* Line 1455 of yacc.c */ -#line 1852 "../../../../hphp/util/parser/hphp.y" +#line 1848 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 453: /* Line 1455 of yacc.c */ -#line 1853 "../../../../hphp/util/parser/hphp.y" +#line 1849 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 454: /* Line 1455 of yacc.c */ -#line 1854 "../../../../hphp/util/parser/hphp.y" +#line 1850 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 455: /* Line 1455 of yacc.c */ -#line 1855 "../../../../hphp/util/parser/hphp.y" +#line 1851 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 456: /* Line 1455 of yacc.c */ -#line 1856 "../../../../hphp/util/parser/hphp.y" +#line 1852 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 457: /* Line 1455 of yacc.c */ -#line 1857 "../../../../hphp/util/parser/hphp.y" +#line 1853 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 458: /* Line 1455 of yacc.c */ -#line 1858 "../../../../hphp/util/parser/hphp.y" +#line 1854 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 459: /* Line 1455 of yacc.c */ -#line 1859 "../../../../hphp/util/parser/hphp.y" +#line 1855 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 460: /* Line 1455 of yacc.c */ -#line 1860 "../../../../hphp/util/parser/hphp.y" +#line 1856 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 461: /* Line 1455 of yacc.c */ -#line 1861 "../../../../hphp/util/parser/hphp.y" +#line 1857 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 462: /* Line 1455 of yacc.c */ -#line 1866 "../../../../hphp/util/parser/hphp.y" +#line 1862 "../../../../hphp/util/parser/hphp.y" { _p->onCall((yyval),0,(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),NULL);;} break; case 463: /* Line 1455 of yacc.c */ -#line 1870 "../../../../hphp/util/parser/hphp.y" +#line 1866 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 464: /* Line 1455 of yacc.c */ -#line 1871 "../../../../hphp/util/parser/hphp.y" +#line 1867 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpLabel(); (yyval) = (yyvsp[(1) - (1)]);;} break; case 465: /* Line 1455 of yacc.c */ -#line 1874 "../../../../hphp/util/parser/hphp.y" +#line 1870 "../../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]),Parser::StringName);;} break; case 466: /* Line 1455 of yacc.c */ -#line 1875 "../../../../hphp/util/parser/hphp.y" +#line 1871 "../../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]),Parser::StaticName);;} break; case 467: /* Line 1455 of yacc.c */ -#line 1876 "../../../../hphp/util/parser/hphp.y" +#line 1872 "../../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]), Parser::StaticClassExprName);;} break; @@ -8721,98 +8717,98 @@ yyreduce: case 468: /* Line 1455 of yacc.c */ -#line 1880 "../../../../hphp/util/parser/hphp.y" +#line 1876 "../../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]),Parser::StringName);;} break; case 469: /* Line 1455 of yacc.c */ -#line 1881 "../../../../hphp/util/parser/hphp.y" +#line 1877 "../../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]),Parser::StaticName);;} break; case 470: /* Line 1455 of yacc.c */ -#line 1882 "../../../../hphp/util/parser/hphp.y" +#line 1878 "../../../../hphp/util/parser/hphp.y" { _p->onName((yyval),(yyvsp[(1) - (1)]),Parser::ExprName);;} break; case 471: /* Line 1455 of yacc.c */ -#line 1886 "../../../../hphp/util/parser/hphp.y" +#line 1882 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 472: /* Line 1455 of yacc.c */ -#line 1887 "../../../../hphp/util/parser/hphp.y" +#line 1883 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 473: /* Line 1455 of yacc.c */ -#line 1888 "../../../../hphp/util/parser/hphp.y" +#line 1884 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 474: /* Line 1455 of yacc.c */ -#line 1892 "../../../../hphp/util/parser/hphp.y" +#line 1888 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 475: /* Line 1455 of yacc.c */ -#line 1893 "../../../../hphp/util/parser/hphp.y" +#line 1889 "../../../../hphp/util/parser/hphp.y" { _p->addEncap((yyval), NULL, (yyvsp[(1) - (1)]), 0);;} break; case 476: /* Line 1455 of yacc.c */ -#line 1894 "../../../../hphp/util/parser/hphp.y" +#line 1890 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 477: /* Line 1455 of yacc.c */ -#line 1898 "../../../../hphp/util/parser/hphp.y" +#line 1894 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 478: /* Line 1455 of yacc.c */ -#line 1899 "../../../../hphp/util/parser/hphp.y" +#line 1895 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 479: /* Line 1455 of yacc.c */ -#line 1903 "../../../../hphp/util/parser/hphp.y" +#line 1899 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_LNUMBER, (yyvsp[(1) - (1)]));;} break; case 480: /* Line 1455 of yacc.c */ -#line 1904 "../../../../hphp/util/parser/hphp.y" +#line 1900 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_DNUMBER, (yyvsp[(1) - (1)]));;} break; case 481: /* Line 1455 of yacc.c */ -#line 1905 "../../../../hphp/util/parser/hphp.y" +#line 1901 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(1) - (1)]));;} break; @@ -8820,112 +8816,112 @@ yyreduce: case 482: /* Line 1455 of yacc.c */ -#line 1907 "../../../../hphp/util/parser/hphp.y" +#line 1903 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_LINE, (yyvsp[(1) - (1)]));;} break; case 483: /* Line 1455 of yacc.c */ -#line 1908 "../../../../hphp/util/parser/hphp.y" +#line 1904 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_FILE, (yyvsp[(1) - (1)]));;} break; case 484: /* Line 1455 of yacc.c */ -#line 1909 "../../../../hphp/util/parser/hphp.y" +#line 1905 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_DIR, (yyvsp[(1) - (1)]));;} break; case 485: /* Line 1455 of yacc.c */ -#line 1910 "../../../../hphp/util/parser/hphp.y" +#line 1906 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CLASS_C, (yyvsp[(1) - (1)]));;} break; case 486: /* Line 1455 of yacc.c */ -#line 1911 "../../../../hphp/util/parser/hphp.y" +#line 1907 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_TRAIT_C, (yyvsp[(1) - (1)]));;} break; case 487: /* Line 1455 of yacc.c */ -#line 1912 "../../../../hphp/util/parser/hphp.y" +#line 1908 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_METHOD_C, (yyvsp[(1) - (1)]));;} break; case 488: /* Line 1455 of yacc.c */ -#line 1913 "../../../../hphp/util/parser/hphp.y" +#line 1909 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_FUNC_C, (yyvsp[(1) - (1)]));;} break; case 489: /* Line 1455 of yacc.c */ -#line 1914 "../../../../hphp/util/parser/hphp.y" +#line 1910 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_NS_C, (yyvsp[(1) - (1)]));;} break; case 490: /* Line 1455 of yacc.c */ -#line 1917 "../../../../hphp/util/parser/hphp.y" +#line 1913 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(2) - (3)]));;} break; case 491: /* Line 1455 of yacc.c */ -#line 1919 "../../../../hphp/util/parser/hphp.y" +#line 1915 "../../../../hphp/util/parser/hphp.y" { (yyval).setText(""); _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyval));;} break; case 492: /* Line 1455 of yacc.c */ -#line 1923 "../../../../hphp/util/parser/hphp.y" +#line 1919 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 493: /* Line 1455 of yacc.c */ -#line 1924 "../../../../hphp/util/parser/hphp.y" +#line 1920 "../../../../hphp/util/parser/hphp.y" { _p->onConstantValue((yyval), (yyvsp[(1) - (1)]));;} break; case 494: /* Line 1455 of yacc.c */ -#line 1925 "../../../../hphp/util/parser/hphp.y" +#line 1921 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'+',1);;} break; case 495: /* Line 1455 of yacc.c */ -#line 1926 "../../../../hphp/util/parser/hphp.y" +#line 1922 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'-',1);;} break; case 496: /* Line 1455 of yacc.c */ -#line 1928 "../../../../hphp/util/parser/hphp.y" +#line 1924 "../../../../hphp/util/parser/hphp.y" { _p->onArray((yyval),(yyvsp[(3) - (4)]),T_ARRAY); ;} break; case 497: /* Line 1455 of yacc.c */ -#line 1930 "../../../../hphp/util/parser/hphp.y" +#line 1926 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); _p->onArray((yyval),(yyvsp[(3) - (4)]),T_ARRAY); ;} break; @@ -8933,28 +8929,28 @@ yyreduce: case 498: /* Line 1455 of yacc.c */ -#line 1932 "../../../../hphp/util/parser/hphp.y" +#line 1928 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 499: /* Line 1455 of yacc.c */ -#line 1933 "../../../../hphp/util/parser/hphp.y" +#line 1929 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 500: /* Line 1455 of yacc.c */ -#line 1939 "../../../../hphp/util/parser/hphp.y" +#line 1935 "../../../../hphp/util/parser/hphp.y" { _p->onClassConst((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), 1);;} break; case 501: /* Line 1455 of yacc.c */ -#line 1941 "../../../../hphp/util/parser/hphp.y" +#line 1937 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (3)]).xhpLabel(); _p->onClassConst((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), 1);;} break; @@ -8962,49 +8958,49 @@ yyreduce: case 502: /* Line 1455 of yacc.c */ -#line 1946 "../../../../hphp/util/parser/hphp.y" +#line 1942 "../../../../hphp/util/parser/hphp.y" { _p->onConstantValue((yyval), (yyvsp[(1) - (1)]));;} break; case 503: /* Line 1455 of yacc.c */ -#line 1947 "../../../../hphp/util/parser/hphp.y" +#line 1943 "../../../../hphp/util/parser/hphp.y" { _p->onConstantValue((yyval), (yyvsp[(1) - (1)]));;} break; case 504: /* Line 1455 of yacc.c */ -#line 1948 "../../../../hphp/util/parser/hphp.y" +#line 1944 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 505: /* Line 1455 of yacc.c */ -#line 1949 "../../../../hphp/util/parser/hphp.y" +#line 1945 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 506: /* Line 1455 of yacc.c */ -#line 1950 "../../../../hphp/util/parser/hphp.y" +#line 1946 "../../../../hphp/util/parser/hphp.y" { _p->onEncapsList((yyval),'"',(yyvsp[(2) - (3)]));;} break; case 507: /* Line 1455 of yacc.c */ -#line 1951 "../../../../hphp/util/parser/hphp.y" +#line 1947 "../../../../hphp/util/parser/hphp.y" { _p->onEncapsList((yyval),'\'',(yyvsp[(2) - (3)]));;} break; case 508: /* Line 1455 of yacc.c */ -#line 1953 "../../../../hphp/util/parser/hphp.y" +#line 1949 "../../../../hphp/util/parser/hphp.y" { _p->onEncapsList((yyval),T_START_HEREDOC, (yyvsp[(2) - (3)]));;} break; @@ -9012,91 +9008,91 @@ yyreduce: case 509: /* Line 1455 of yacc.c */ -#line 1958 "../../../../hphp/util/parser/hphp.y" +#line 1954 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 510: /* Line 1455 of yacc.c */ -#line 1959 "../../../../hphp/util/parser/hphp.y" +#line 1955 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 511: /* Line 1455 of yacc.c */ -#line 1963 "../../../../hphp/util/parser/hphp.y" +#line 1959 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 512: /* Line 1455 of yacc.c */ -#line 1964 "../../../../hphp/util/parser/hphp.y" +#line 1960 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 513: /* Line 1455 of yacc.c */ -#line 1967 "../../../../hphp/util/parser/hphp.y" +#line 1963 "../../../../hphp/util/parser/hphp.y" { only_in_hphp_syntax(_p); (yyval).reset();;} break; case 514: /* Line 1455 of yacc.c */ -#line 1968 "../../../../hphp/util/parser/hphp.y" +#line 1964 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 515: /* Line 1455 of yacc.c */ -#line 1974 "../../../../hphp/util/parser/hphp.y" +#line 1970 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0);;} break; case 516: /* Line 1455 of yacc.c */ -#line 1976 "../../../../hphp/util/parser/hphp.y" +#line 1972 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]),0);;} break; case 517: /* Line 1455 of yacc.c */ -#line 1978 "../../../../hphp/util/parser/hphp.y" +#line 1974 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 518: /* Line 1455 of yacc.c */ -#line 1979 "../../../../hphp/util/parser/hphp.y" +#line 1975 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0, 0,(yyvsp[(1) - (1)]),0);;} break; case 519: /* Line 1455 of yacc.c */ -#line 1983 "../../../../hphp/util/parser/hphp.y" +#line 1979 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_LNUMBER, (yyvsp[(1) - (1)]));;} break; case 520: /* Line 1455 of yacc.c */ -#line 1984 "../../../../hphp/util/parser/hphp.y" +#line 1980 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_DNUMBER, (yyvsp[(1) - (1)]));;} break; case 521: /* Line 1455 of yacc.c */ -#line 1985 "../../../../hphp/util/parser/hphp.y" +#line 1981 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(1) - (1)]));;} break; @@ -9104,77 +9100,77 @@ yyreduce: case 522: /* Line 1455 of yacc.c */ -#line 1989 "../../../../hphp/util/parser/hphp.y" +#line 1985 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyvsp[(2) - (3)]));;} break; case 523: /* Line 1455 of yacc.c */ -#line 1991 "../../../../hphp/util/parser/hphp.y" +#line 1987 "../../../../hphp/util/parser/hphp.y" { (yyval).setText(""); _p->onScalar((yyval), T_CONSTANT_ENCAPSED_STRING, (yyval));;} break; case 524: /* Line 1455 of yacc.c */ -#line 1994 "../../../../hphp/util/parser/hphp.y" +#line 1990 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval),T_LNUMBER,(yyvsp[(1) - (1)]));;} break; case 525: /* Line 1455 of yacc.c */ -#line 1995 "../../../../hphp/util/parser/hphp.y" +#line 1991 "../../../../hphp/util/parser/hphp.y" { _p->onScalar((yyval),T_DNUMBER,(yyvsp[(1) - (1)]));;} break; case 526: /* Line 1455 of yacc.c */ -#line 1996 "../../../../hphp/util/parser/hphp.y" +#line 1992 "../../../../hphp/util/parser/hphp.y" { constant_ae(_p,(yyval),(yyvsp[(1) - (1)]));;} break; case 527: /* Line 1455 of yacc.c */ -#line 1999 "../../../../hphp/util/parser/hphp.y" +#line 1995 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 528: /* Line 1455 of yacc.c */ -#line 2000 "../../../../hphp/util/parser/hphp.y" +#line 1996 "../../../../hphp/util/parser/hphp.y" { constant_ae(_p,(yyval),(yyvsp[(1) - (1)]));;} break; case 529: /* Line 1455 of yacc.c */ -#line 2001 "../../../../hphp/util/parser/hphp.y" +#line 1997 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'+',1);;} break; case 530: /* Line 1455 of yacc.c */ -#line 2002 "../../../../hphp/util/parser/hphp.y" +#line 1998 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),'-',1);;} break; case 531: /* Line 1455 of yacc.c */ -#line 2004 "../../../../hphp/util/parser/hphp.y" +#line 2000 "../../../../hphp/util/parser/hphp.y" { _p->onArray((yyval),(yyvsp[(3) - (4)]),T_ARRAY);;} break; case 532: /* Line 1455 of yacc.c */ -#line 2006 "../../../../hphp/util/parser/hphp.y" +#line 2002 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); _p->onArray((yyval),(yyvsp[(3) - (4)]),T_ARRAY); ;} break; @@ -9182,77 +9178,77 @@ yyreduce: case 533: /* Line 1455 of yacc.c */ -#line 2012 "../../../../hphp/util/parser/hphp.y" +#line 2008 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 534: /* Line 1455 of yacc.c */ -#line 2013 "../../../../hphp/util/parser/hphp.y" +#line 2009 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 535: /* Line 1455 of yacc.c */ -#line 2018 "../../../../hphp/util/parser/hphp.y" +#line 2014 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0);;} break; case 536: /* Line 1455 of yacc.c */ -#line 2020 "../../../../hphp/util/parser/hphp.y" +#line 2016 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]),0);;} break; case 537: /* Line 1455 of yacc.c */ -#line 2022 "../../../../hphp/util/parser/hphp.y" +#line 2018 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 538: /* Line 1455 of yacc.c */ -#line 2023 "../../../../hphp/util/parser/hphp.y" +#line 2019 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0, 0,(yyvsp[(1) - (1)]),0);;} break; case 539: /* Line 1455 of yacc.c */ -#line 2027 "../../../../hphp/util/parser/hphp.y" +#line 2023 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]),0);;} break; case 540: /* Line 1455 of yacc.c */ -#line 2028 "../../../../hphp/util/parser/hphp.y" +#line 2024 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0, 0,(yyvsp[(1) - (1)]),0);;} break; case 541: /* Line 1455 of yacc.c */ -#line 2033 "../../../../hphp/util/parser/hphp.y" +#line 2029 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]); ;} break; case 542: /* Line 1455 of yacc.c */ -#line 2034 "../../../../hphp/util/parser/hphp.y" +#line 2030 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 543: /* Line 1455 of yacc.c */ -#line 2039 "../../../../hphp/util/parser/hphp.y" +#line 2035 "../../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(3) - (5)]), _p); _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0); ;} break; @@ -9260,7 +9256,7 @@ yyreduce: case 544: /* Line 1455 of yacc.c */ -#line 2043 "../../../../hphp/util/parser/hphp.y" +#line 2039 "../../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(1) - (3)]), _p); _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0); ;} break; @@ -9268,28 +9264,28 @@ yyreduce: case 545: /* Line 1455 of yacc.c */ -#line 2049 "../../../../hphp/util/parser/hphp.y" +#line 2045 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 546: /* Line 1455 of yacc.c */ -#line 2050 "../../../../hphp/util/parser/hphp.y" +#line 2046 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 547: /* Line 1455 of yacc.c */ -#line 2053 "../../../../hphp/util/parser/hphp.y" +#line 2049 "../../../../hphp/util/parser/hphp.y" { _p->onArray((yyval),(yyvsp[(2) - (3)]),T_ARRAY);;} break; case 548: /* Line 1455 of yacc.c */ -#line 2054 "../../../../hphp/util/parser/hphp.y" +#line 2050 "../../../../hphp/util/parser/hphp.y" { Token t; t.reset(); _p->onArray((yyval),t,T_ARRAY);;} break; @@ -9297,693 +9293,693 @@ yyreduce: case 549: /* Line 1455 of yacc.c */ -#line 2061 "../../../../hphp/util/parser/hphp.y" +#line 2057 "../../../../hphp/util/parser/hphp.y" { _p->onUserAttribute((yyval),&(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),(yyvsp[(4) - (4)]));;} break; case 550: /* Line 1455 of yacc.c */ -#line 2063 "../../../../hphp/util/parser/hphp.y" +#line 2059 "../../../../hphp/util/parser/hphp.y" { _p->onUserAttribute((yyval), 0,(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 551: /* Line 1455 of yacc.c */ -#line 2066 "../../../../hphp/util/parser/hphp.y" +#line 2062 "../../../../hphp/util/parser/hphp.y" { user_attribute_check(_p);;} break; case 552: /* Line 1455 of yacc.c */ -#line 2068 "../../../../hphp/util/parser/hphp.y" +#line 2064 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 553: /* Line 1455 of yacc.c */ -#line 2071 "../../../../hphp/util/parser/hphp.y" +#line 2067 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 554: /* Line 1455 of yacc.c */ -#line 2074 "../../../../hphp/util/parser/hphp.y" +#line 2070 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 555: /* Line 1455 of yacc.c */ -#line 2075 "../../../../hphp/util/parser/hphp.y" +#line 2071 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 556: /* Line 1455 of yacc.c */ -#line 2079 "../../../../hphp/util/parser/hphp.y" +#line 2075 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 557: /* Line 1455 of yacc.c */ -#line 2081 "../../../../hphp/util/parser/hphp.y" +#line 2077 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 558: /* Line 1455 of yacc.c */ -#line 2085 "../../../../hphp/util/parser/hphp.y" +#line 2081 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (2)]);;} break; case 559: /* Line 1455 of yacc.c */ -#line 2086 "../../../../hphp/util/parser/hphp.y" +#line 2082 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(3) - (4)]);;} break; case 560: /* Line 1455 of yacc.c */ -#line 2090 "../../../../hphp/util/parser/hphp.y" +#line 2086 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 561: /* Line 1455 of yacc.c */ -#line 2091 "../../../../hphp/util/parser/hphp.y" +#line 2087 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 562: /* Line 1455 of yacc.c */ -#line 2095 "../../../../hphp/util/parser/hphp.y" +#line 2091 "../../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));;} break; case 563: /* Line 1455 of yacc.c */ -#line 2096 "../../../../hphp/util/parser/hphp.y" +#line 2092 "../../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(2) - (4)]), (yyvsp[(4) - (4)]));;} break; case 564: /* Line 1455 of yacc.c */ -#line 2101 "../../../../hphp/util/parser/hphp.y" +#line 2097 "../../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));;} break; case 565: /* Line 1455 of yacc.c */ -#line 2102 "../../../../hphp/util/parser/hphp.y" +#line 2098 "../../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(2) - (4)]), (yyvsp[(4) - (4)]));;} break; case 566: /* Line 1455 of yacc.c */ -#line 2106 "../../../../hphp/util/parser/hphp.y" +#line 2102 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 567: /* Line 1455 of yacc.c */ -#line 2107 "../../../../hphp/util/parser/hphp.y" +#line 2103 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 568: /* Line 1455 of yacc.c */ -#line 2108 "../../../../hphp/util/parser/hphp.y" +#line 2104 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 569: /* Line 1455 of yacc.c */ -#line 2109 "../../../../hphp/util/parser/hphp.y" +#line 2105 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 570: /* Line 1455 of yacc.c */ -#line 2110 "../../../../hphp/util/parser/hphp.y" +#line 2106 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 571: /* Line 1455 of yacc.c */ -#line 2111 "../../../../hphp/util/parser/hphp.y" +#line 2107 "../../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 572: /* Line 1455 of yacc.c */ -#line 2112 "../../../../hphp/util/parser/hphp.y" +#line 2108 "../../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]));;} break; case 573: /* Line 1455 of yacc.c */ -#line 2115 "../../../../hphp/util/parser/hphp.y" +#line 2111 "../../../../hphp/util/parser/hphp.y" { _p->onStaticMember((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 574: /* Line 1455 of yacc.c */ -#line 2117 "../../../../hphp/util/parser/hphp.y" +#line 2113 "../../../../hphp/util/parser/hphp.y" { _p->onCall((yyval),1,(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),NULL);;} break; case 575: /* Line 1455 of yacc.c */ -#line 2118 "../../../../hphp/util/parser/hphp.y" +#line 2114 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 576: /* Line 1455 of yacc.c */ -#line 2122 "../../../../hphp/util/parser/hphp.y" +#line 2118 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 577: /* Line 1455 of yacc.c */ -#line 2123 "../../../../hphp/util/parser/hphp.y" +#line 2119 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 578: /* Line 1455 of yacc.c */ -#line 2124 "../../../../hphp/util/parser/hphp.y" +#line 2120 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 579: /* Line 1455 of yacc.c */ -#line 2125 "../../../../hphp/util/parser/hphp.y" +#line 2121 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 580: /* Line 1455 of yacc.c */ -#line 2127 "../../../../hphp/util/parser/hphp.y" +#line 2123 "../../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 581: /* Line 1455 of yacc.c */ -#line 2129 "../../../../hphp/util/parser/hphp.y" +#line 2125 "../../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]));;} break; case 582: /* Line 1455 of yacc.c */ -#line 2131 "../../../../hphp/util/parser/hphp.y" +#line 2127 "../../../../hphp/util/parser/hphp.y" { _p->onCall((yyval),1,(yyvsp[(1) - (4)]),(yyvsp[(3) - (4)]),NULL);;} break; case 583: /* Line 1455 of yacc.c */ -#line 2132 "../../../../hphp/util/parser/hphp.y" +#line 2128 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 584: /* Line 1455 of yacc.c */ -#line 2136 "../../../../hphp/util/parser/hphp.y" +#line 2132 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 585: /* Line 1455 of yacc.c */ -#line 2137 "../../../../hphp/util/parser/hphp.y" +#line 2133 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 586: /* Line 1455 of yacc.c */ -#line 2138 "../../../../hphp/util/parser/hphp.y" +#line 2134 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 587: /* Line 1455 of yacc.c */ -#line 2144 "../../../../hphp/util/parser/hphp.y" +#line 2140 "../../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(1) - (7)]),(yyvsp[(3) - (7)]),(yyvsp[(6) - (7)]));;} break; case 588: /* Line 1455 of yacc.c */ -#line 2147 "../../../../hphp/util/parser/hphp.y" +#line 2143 "../../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(1) - (6)]),(yyvsp[(3) - (6)]),(yyvsp[(5) - (6)]));;} break; case 589: /* Line 1455 of yacc.c */ -#line 2150 "../../../../hphp/util/parser/hphp.y" +#line 2146 "../../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(1) - (8)]),(yyvsp[(4) - (8)]),(yyvsp[(7) - (8)]));;} break; case 590: /* Line 1455 of yacc.c */ -#line 2153 "../../../../hphp/util/parser/hphp.y" +#line 2149 "../../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(2) - (9)]),(yyvsp[(5) - (9)]),(yyvsp[(8) - (9)]));;} break; case 591: /* Line 1455 of yacc.c */ -#line 2156 "../../../../hphp/util/parser/hphp.y" +#line 2152 "../../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(2) - (8)]),(yyvsp[(5) - (8)]),(yyvsp[(7) - (8)]));;} break; case 592: /* Line 1455 of yacc.c */ -#line 2159 "../../../../hphp/util/parser/hphp.y" +#line 2155 "../../../../hphp/util/parser/hphp.y" { _p->onObjectMethodCall((yyval),(yyvsp[(2) - (10)]),(yyvsp[(6) - (10)]),(yyvsp[(9) - (10)]));;} break; case 593: /* Line 1455 of yacc.c */ -#line 2166 "../../../../hphp/util/parser/hphp.y" +#line 2162 "../../../../hphp/util/parser/hphp.y" { _p->onCall((yyval),0,(yyvsp[(3) - (7)]),(yyvsp[(6) - (7)]),&(yyvsp[(1) - (7)]));;} break; case 594: /* Line 1455 of yacc.c */ -#line 2170 "../../../../hphp/util/parser/hphp.y" +#line 2166 "../../../../hphp/util/parser/hphp.y" { _p->onCall((yyval),1,(yyvsp[(3) - (6)]),(yyvsp[(5) - (6)]),&(yyvsp[(1) - (6)]));;} break; case 595: /* Line 1455 of yacc.c */ -#line 2174 "../../../../hphp/util/parser/hphp.y" +#line 2170 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 596: /* Line 1455 of yacc.c */ -#line 2176 "../../../../hphp/util/parser/hphp.y" +#line 2172 "../../../../hphp/util/parser/hphp.y" { _p->onIndirectRef((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 597: /* Line 1455 of yacc.c */ -#line 2181 "../../../../hphp/util/parser/hphp.y" +#line 2177 "../../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (4)]), (yyvsp[(3) - (4)]));;} break; case 598: /* Line 1455 of yacc.c */ -#line 2182 "../../../../hphp/util/parser/hphp.y" +#line 2178 "../../../../hphp/util/parser/hphp.y" { _p->onRefDim((yyval), (yyvsp[(1) - (4)]), (yyvsp[(3) - (4)]));;} break; case 599: /* Line 1455 of yacc.c */ -#line 2183 "../../../../hphp/util/parser/hphp.y" +#line 2179 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 600: /* Line 1455 of yacc.c */ -#line 2186 "../../../../hphp/util/parser/hphp.y" +#line 2182 "../../../../hphp/util/parser/hphp.y" { _p->onSimpleVariable((yyval), (yyvsp[(1) - (1)]));;} break; case 601: /* Line 1455 of yacc.c */ -#line 2187 "../../../../hphp/util/parser/hphp.y" +#line 2183 "../../../../hphp/util/parser/hphp.y" { _p->onDynamicVariable((yyval), (yyvsp[(3) - (4)]), 0);;} break; case 602: /* Line 1455 of yacc.c */ -#line 2190 "../../../../hphp/util/parser/hphp.y" +#line 2186 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 603: /* Line 1455 of yacc.c */ -#line 2191 "../../../../hphp/util/parser/hphp.y" +#line 2187 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 604: /* Line 1455 of yacc.c */ -#line 2195 "../../../../hphp/util/parser/hphp.y" +#line 2191 "../../../../hphp/util/parser/hphp.y" { (yyval) = 1;;} break; case 605: /* Line 1455 of yacc.c */ -#line 2196 "../../../../hphp/util/parser/hphp.y" +#line 2192 "../../../../hphp/util/parser/hphp.y" { (yyval)++;;} break; case 606: /* Line 1455 of yacc.c */ -#line 2200 "../../../../hphp/util/parser/hphp.y" +#line 2196 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 607: /* Line 1455 of yacc.c */ -#line 2201 "../../../../hphp/util/parser/hphp.y" +#line 2197 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 608: /* Line 1455 of yacc.c */ -#line 2202 "../../../../hphp/util/parser/hphp.y" +#line 2198 "../../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 609: /* Line 1455 of yacc.c */ -#line 2203 "../../../../hphp/util/parser/hphp.y" +#line 2199 "../../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]));;} break; case 610: /* Line 1455 of yacc.c */ -#line 2206 "../../../../hphp/util/parser/hphp.y" +#line 2202 "../../../../hphp/util/parser/hphp.y" { _p->onStaticMember((yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 611: /* Line 1455 of yacc.c */ -#line 2207 "../../../../hphp/util/parser/hphp.y" +#line 2203 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 613: /* Line 1455 of yacc.c */ -#line 2211 "../../../../hphp/util/parser/hphp.y" +#line 2207 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]);;} break; case 614: /* Line 1455 of yacc.c */ -#line 2213 "../../../../hphp/util/parser/hphp.y" +#line 2209 "../../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(1) - (2)]),(yyvsp[(2) - (2)]));;} break; case 615: /* Line 1455 of yacc.c */ -#line 2215 "../../../../hphp/util/parser/hphp.y" +#line 2211 "../../../../hphp/util/parser/hphp.y" { _p->onObjectProperty((yyval),(yyvsp[(2) - (4)]),(yyvsp[(4) - (4)]));;} break; case 616: /* Line 1455 of yacc.c */ -#line 2216 "../../../../hphp/util/parser/hphp.y" +#line 2212 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 617: /* Line 1455 of yacc.c */ -#line 2220 "../../../../hphp/util/parser/hphp.y" +#line 2216 "../../../../hphp/util/parser/hphp.y" { _p->onAListVar((yyval),&(yyvsp[(1) - (2)]),NULL);;} break; case 618: /* Line 1455 of yacc.c */ -#line 2221 "../../../../hphp/util/parser/hphp.y" +#line 2217 "../../../../hphp/util/parser/hphp.y" { _p->onAListVar((yyval),&(yyvsp[(1) - (3)]),&(yyvsp[(3) - (3)]));;} break; case 619: /* Line 1455 of yacc.c */ -#line 2223 "../../../../hphp/util/parser/hphp.y" +#line 2219 "../../../../hphp/util/parser/hphp.y" { _p->onAListSub((yyval),&(yyvsp[(1) - (6)]),(yyvsp[(5) - (6)]));;} break; case 620: /* Line 1455 of yacc.c */ -#line 2224 "../../../../hphp/util/parser/hphp.y" +#line 2220 "../../../../hphp/util/parser/hphp.y" { _p->onAListVar((yyval),NULL,NULL);;} break; case 621: /* Line 1455 of yacc.c */ -#line 2225 "../../../../hphp/util/parser/hphp.y" +#line 2221 "../../../../hphp/util/parser/hphp.y" { _p->onAListVar((yyval),NULL,&(yyvsp[(1) - (1)]));;} break; case 622: /* Line 1455 of yacc.c */ -#line 2226 "../../../../hphp/util/parser/hphp.y" +#line 2222 "../../../../hphp/util/parser/hphp.y" { _p->onAListSub((yyval),NULL,(yyvsp[(3) - (4)]));;} break; case 623: /* Line 1455 of yacc.c */ -#line 2231 "../../../../hphp/util/parser/hphp.y" +#line 2227 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 624: /* Line 1455 of yacc.c */ -#line 2232 "../../../../hphp/util/parser/hphp.y" +#line 2228 "../../../../hphp/util/parser/hphp.y" { (yyval).reset();;} break; case 625: /* Line 1455 of yacc.c */ -#line 2236 "../../../../hphp/util/parser/hphp.y" +#line 2232 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]),0);;} break; case 626: /* Line 1455 of yacc.c */ -#line 2237 "../../../../hphp/util/parser/hphp.y" +#line 2233 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]),0);;} break; case 627: /* Line 1455 of yacc.c */ -#line 2238 "../../../../hphp/util/parser/hphp.y" +#line 2234 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),0);;} break; case 628: /* Line 1455 of yacc.c */ -#line 2239 "../../../../hphp/util/parser/hphp.y" +#line 2235 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0, 0,(yyvsp[(1) - (1)]),0);;} break; case 629: /* Line 1455 of yacc.c */ -#line 2242 "../../../../hphp/util/parser/hphp.y" +#line 2238 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (6)]),&(yyvsp[(3) - (6)]),(yyvsp[(6) - (6)]),1);;} break; case 630: /* Line 1455 of yacc.c */ -#line 2244 "../../../../hphp/util/parser/hphp.y" +#line 2240 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval),&(yyvsp[(1) - (4)]), 0,(yyvsp[(4) - (4)]),1);;} break; case 631: /* Line 1455 of yacc.c */ -#line 2245 "../../../../hphp/util/parser/hphp.y" +#line 2241 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0,&(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),1);;} break; case 632: /* Line 1455 of yacc.c */ -#line 2246 "../../../../hphp/util/parser/hphp.y" +#line 2242 "../../../../hphp/util/parser/hphp.y" { _p->onArrayPair((yyval), 0, 0,(yyvsp[(2) - (2)]),1);;} break; case 633: /* Line 1455 of yacc.c */ -#line 2251 "../../../../hphp/util/parser/hphp.y" +#line 2247 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 634: /* Line 1455 of yacc.c */ -#line 2252 "../../../../hphp/util/parser/hphp.y" +#line 2248 "../../../../hphp/util/parser/hphp.y" { _p->onEmptyCollection((yyval));;} break; case 635: /* Line 1455 of yacc.c */ -#line 2256 "../../../../hphp/util/parser/hphp.y" +#line 2252 "../../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]));;} break; case 636: /* Line 1455 of yacc.c */ -#line 2257 "../../../../hphp/util/parser/hphp.y" +#line 2253 "../../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]));;} break; case 637: /* Line 1455 of yacc.c */ -#line 2258 "../../../../hphp/util/parser/hphp.y" +#line 2254 "../../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 638: /* Line 1455 of yacc.c */ -#line 2259 "../../../../hphp/util/parser/hphp.y" +#line 2255 "../../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval), 0, 0,(yyvsp[(1) - (1)]));;} break; case 639: /* Line 1455 of yacc.c */ -#line 2264 "../../../../hphp/util/parser/hphp.y" +#line 2260 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]);;} break; case 640: /* Line 1455 of yacc.c */ -#line 2265 "../../../../hphp/util/parser/hphp.y" +#line 2261 "../../../../hphp/util/parser/hphp.y" { _p->onEmptyCollection((yyval));;} break; case 641: /* Line 1455 of yacc.c */ -#line 2270 "../../../../hphp/util/parser/hphp.y" +#line 2266 "../../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval),&(yyvsp[(1) - (5)]),&(yyvsp[(3) - (5)]),(yyvsp[(5) - (5)]));;} break; case 642: /* Line 1455 of yacc.c */ -#line 2272 "../../../../hphp/util/parser/hphp.y" +#line 2268 "../../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval),&(yyvsp[(1) - (3)]), 0,(yyvsp[(3) - (3)]));;} break; case 643: /* Line 1455 of yacc.c */ -#line 2274 "../../../../hphp/util/parser/hphp.y" +#line 2270 "../../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval), 0,&(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]));;} break; case 644: /* Line 1455 of yacc.c */ -#line 2275 "../../../../hphp/util/parser/hphp.y" +#line 2271 "../../../../hphp/util/parser/hphp.y" { _p->onCollectionPair((yyval), 0, 0,(yyvsp[(1) - (1)]));;} break; case 645: /* Line 1455 of yacc.c */ -#line 2279 "../../../../hphp/util/parser/hphp.y" +#line 2275 "../../../../hphp/util/parser/hphp.y" { _p->addEncap((yyval), &(yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]), -1);;} break; case 646: /* Line 1455 of yacc.c */ -#line 2281 "../../../../hphp/util/parser/hphp.y" +#line 2277 "../../../../hphp/util/parser/hphp.y" { _p->addEncap((yyval), &(yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]), 0);;} break; case 647: /* Line 1455 of yacc.c */ -#line 2282 "../../../../hphp/util/parser/hphp.y" +#line 2278 "../../../../hphp/util/parser/hphp.y" { _p->addEncap((yyval), NULL, (yyvsp[(1) - (1)]), -1);;} break; case 648: /* Line 1455 of yacc.c */ -#line 2284 "../../../../hphp/util/parser/hphp.y" +#line 2280 "../../../../hphp/util/parser/hphp.y" { _p->addEncap((yyval), NULL, (yyvsp[(1) - (2)]), 0); _p->addEncap((yyval), &(yyval), (yyvsp[(2) - (2)]), -1); ;} break; @@ -9991,140 +9987,140 @@ yyreduce: case 649: /* Line 1455 of yacc.c */ -#line 2289 "../../../../hphp/util/parser/hphp.y" +#line 2285 "../../../../hphp/util/parser/hphp.y" { _p->onSimpleVariable((yyval), (yyvsp[(1) - (1)]));;} break; case 650: /* Line 1455 of yacc.c */ -#line 2291 "../../../../hphp/util/parser/hphp.y" +#line 2287 "../../../../hphp/util/parser/hphp.y" { _p->encapRefDim((yyval), (yyvsp[(1) - (4)]), (yyvsp[(3) - (4)]));;} break; case 651: /* Line 1455 of yacc.c */ -#line 2293 "../../../../hphp/util/parser/hphp.y" +#line 2289 "../../../../hphp/util/parser/hphp.y" { _p->encapObjProp((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 652: /* Line 1455 of yacc.c */ -#line 2295 "../../../../hphp/util/parser/hphp.y" +#line 2291 "../../../../hphp/util/parser/hphp.y" { _p->onDynamicVariable((yyval), (yyvsp[(2) - (3)]), 1);;} break; case 653: /* Line 1455 of yacc.c */ -#line 2297 "../../../../hphp/util/parser/hphp.y" +#line 2293 "../../../../hphp/util/parser/hphp.y" { _p->encapArray((yyval), (yyvsp[(2) - (6)]), (yyvsp[(4) - (6)]));;} break; case 654: /* Line 1455 of yacc.c */ -#line 2298 "../../../../hphp/util/parser/hphp.y" +#line 2294 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(2) - (3)]);;} break; case 655: /* Line 1455 of yacc.c */ -#line 2301 "../../../../hphp/util/parser/hphp.y" +#line 2297 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); (yyval) = T_STRING;;} break; case 656: /* Line 1455 of yacc.c */ -#line 2302 "../../../../hphp/util/parser/hphp.y" +#line 2298 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); (yyval) = T_NUM_STRING;;} break; case 657: /* Line 1455 of yacc.c */ -#line 2303 "../../../../hphp/util/parser/hphp.y" +#line 2299 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); (yyval) = T_VARIABLE;;} break; case 658: /* Line 1455 of yacc.c */ -#line 2307 "../../../../hphp/util/parser/hphp.y" +#line 2303 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(3) - (4)]),T_ISSET,1);;} break; case 659: /* Line 1455 of yacc.c */ -#line 2308 "../../../../hphp/util/parser/hphp.y" +#line 2304 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(3) - (4)]),T_EMPTY,1);;} break; case 660: /* Line 1455 of yacc.c */ -#line 2309 "../../../../hphp/util/parser/hphp.y" +#line 2305 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_INCLUDE,1);;} break; case 661: /* Line 1455 of yacc.c */ -#line 2310 "../../../../hphp/util/parser/hphp.y" +#line 2306 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_INCLUDE_ONCE,1);;} break; case 662: /* Line 1455 of yacc.c */ -#line 2311 "../../../../hphp/util/parser/hphp.y" +#line 2307 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(3) - (4)]),T_EVAL,1);;} break; case 663: /* Line 1455 of yacc.c */ -#line 2312 "../../../../hphp/util/parser/hphp.y" +#line 2308 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_REQUIRE,1);;} break; case 664: /* Line 1455 of yacc.c */ -#line 2313 "../../../../hphp/util/parser/hphp.y" +#line 2309 "../../../../hphp/util/parser/hphp.y" { UEXP((yyval),(yyvsp[(2) - (2)]),T_REQUIRE_ONCE,1);;} break; case 665: /* Line 1455 of yacc.c */ -#line 2317 "../../../../hphp/util/parser/hphp.y" +#line 2313 "../../../../hphp/util/parser/hphp.y" { _p->onExprListElem((yyval), NULL, (yyvsp[(1) - (1)]));;} break; case 666: /* Line 1455 of yacc.c */ -#line 2318 "../../../../hphp/util/parser/hphp.y" +#line 2314 "../../../../hphp/util/parser/hphp.y" { _p->onExprListElem((yyval), &(yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;} break; case 667: /* Line 1455 of yacc.c */ -#line 2323 "../../../../hphp/util/parser/hphp.y" +#line 2319 "../../../../hphp/util/parser/hphp.y" { _p->onClassConst((yyval), (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), 0);;} break; case 668: /* Line 1455 of yacc.c */ -#line 2331 "../../../../hphp/util/parser/hphp.y" +#line 2327 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); _p->onTypedef((yyval), (yyvsp[(2) - (5)]), (yyvsp[(4) - (5)])); ;} break; @@ -10132,28 +10128,28 @@ yyreduce: case 669: /* Line 1455 of yacc.c */ -#line 2336 "../../../../hphp/util/parser/hphp.y" +#line 2332 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 670: /* Line 1455 of yacc.c */ -#line 2337 "../../../../hphp/util/parser/hphp.y" +#line 2333 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval) = (yyvsp[(2) - (2)]); ;} break; case 671: /* Line 1455 of yacc.c */ -#line 2343 "../../../../hphp/util/parser/hphp.y" +#line 2339 "../../../../hphp/util/parser/hphp.y" { _p->pushTypeScope(); (yyval) = (yyvsp[(1) - (1)]); ;} break; case 672: /* Line 1455 of yacc.c */ -#line 2347 "../../../../hphp/util/parser/hphp.y" +#line 2343 "../../../../hphp/util/parser/hphp.y" { _p->pushTypeScope(); (yyval) = (yyvsp[(1) - (4)]); only_in_strict_mode(_p); ;} break; @@ -10161,112 +10157,112 @@ yyreduce: case 673: /* Line 1455 of yacc.c */ -#line 2354 "../../../../hphp/util/parser/hphp.y" +#line 2350 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval) = (yyvsp[(2) - (3)]); ;} break; case 674: /* Line 1455 of yacc.c */ -#line 2355 "../../../../hphp/util/parser/hphp.y" +#line 2351 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 677: /* Line 1455 of yacc.c */ -#line 2364 "../../../../hphp/util/parser/hphp.y" +#line 2360 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 678: /* Line 1455 of yacc.c */ -#line 2365 "../../../../hphp/util/parser/hphp.y" +#line 2361 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 679: /* Line 1455 of yacc.c */ -#line 2366 "../../../../hphp/util/parser/hphp.y" +#line 2362 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 680: /* Line 1455 of yacc.c */ -#line 2367 "../../../../hphp/util/parser/hphp.y" +#line 2363 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 681: /* Line 1455 of yacc.c */ -#line 2371 "../../../../hphp/util/parser/hphp.y" +#line 2367 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; case 682: /* Line 1455 of yacc.c */ -#line 2372 "../../../../hphp/util/parser/hphp.y" +#line 2368 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval) = (yyvsp[(2) - (2)]); ;} break; case 683: /* Line 1455 of yacc.c */ -#line 2376 "../../../../hphp/util/parser/hphp.y" +#line 2372 "../../../../hphp/util/parser/hphp.y" { _p->addTypeVar((yyvsp[(1) - (3)]).text()); ;} break; case 684: /* Line 1455 of yacc.c */ -#line 2377 "../../../../hphp/util/parser/hphp.y" +#line 2373 "../../../../hphp/util/parser/hphp.y" { _p->addTypeVar((yyvsp[(1) - (1)]).text()); ;} break; case 686: /* Line 1455 of yacc.c */ -#line 2381 "../../../../hphp/util/parser/hphp.y" +#line 2377 "../../../../hphp/util/parser/hphp.y" { _p->addTypeVar((yyvsp[(1) - (5)]).text()); ;} break; case 687: /* Line 1455 of yacc.c */ -#line 2382 "../../../../hphp/util/parser/hphp.y" +#line 2378 "../../../../hphp/util/parser/hphp.y" { _p->addTypeVar((yyvsp[(1) - (3)]).text()); ;} break; case 689: /* Line 1455 of yacc.c */ -#line 2389 "../../../../hphp/util/parser/hphp.y" +#line 2385 "../../../../hphp/util/parser/hphp.y" { validate_shape_keyname((yyvsp[(1) - (3)]), _p); ;} break; case 692: /* Line 1455 of yacc.c */ -#line 2400 "../../../../hphp/util/parser/hphp.y" +#line 2396 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]); ;} break; case 693: /* Line 1455 of yacc.c */ -#line 2402 "../../../../hphp/util/parser/hphp.y" +#line 2398 "../../../../hphp/util/parser/hphp.y" {;} break; case 694: /* Line 1455 of yacc.c */ -#line 2406 "../../../../hphp/util/parser/hphp.y" +#line 2402 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).setText("array"); ;} break; @@ -10274,21 +10270,21 @@ yyreduce: case 695: /* Line 1455 of yacc.c */ -#line 2414 "../../../../hphp/util/parser/hphp.y" +#line 2410 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).reset(); ;} break; case 696: /* Line 1455 of yacc.c */ -#line 2415 "../../../../hphp/util/parser/hphp.y" +#line 2411 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).reset(); ;} break; case 697: /* Line 1455 of yacc.c */ -#line 2416 "../../../../hphp/util/parser/hphp.y" +#line 2412 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (2)]); /* if the type annotation is a bound typevar we have to strip it */ @@ -10305,21 +10301,21 @@ yyreduce: case 698: /* Line 1455 of yacc.c */ -#line 2427 "../../../../hphp/util/parser/hphp.y" +#line 2423 "../../../../hphp/util/parser/hphp.y" { (yyval).setText("array"); ;} break; case 699: /* Line 1455 of yacc.c */ -#line 2428 "../../../../hphp/util/parser/hphp.y" +#line 2424 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 700: /* Line 1455 of yacc.c */ -#line 2430 "../../../../hphp/util/parser/hphp.y" +#line 2426 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).setText("array"); ;} break; @@ -10327,7 +10323,7 @@ yyreduce: case 701: /* Line 1455 of yacc.c */ -#line 2433 "../../../../hphp/util/parser/hphp.y" +#line 2429 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).setText("array"); ;} break; @@ -10335,21 +10331,21 @@ yyreduce: case 702: /* Line 1455 of yacc.c */ -#line 2435 "../../../../hphp/util/parser/hphp.y" +#line 2431 "../../../../hphp/util/parser/hphp.y" { (yyvsp[(1) - (1)]).xhpLabel(); (yyval) = (yyvsp[(1) - (1)]); ;} break; case 703: /* Line 1455 of yacc.c */ -#line 2438 "../../../../hphp/util/parser/hphp.y" +#line 2434 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).reset(); ;} break; case 704: /* Line 1455 of yacc.c */ -#line 2439 "../../../../hphp/util/parser/hphp.y" +#line 2435 "../../../../hphp/util/parser/hphp.y" { only_in_strict_mode(_p); (yyval).setText("array"); ;} break; @@ -10357,21 +10353,21 @@ yyreduce: case 705: /* Line 1455 of yacc.c */ -#line 2444 "../../../../hphp/util/parser/hphp.y" +#line 2440 "../../../../hphp/util/parser/hphp.y" { (yyval) = (yyvsp[(1) - (1)]); ;} break; case 706: /* Line 1455 of yacc.c */ -#line 2445 "../../../../hphp/util/parser/hphp.y" +#line 2441 "../../../../hphp/util/parser/hphp.y" { (yyval).reset(); ;} break; /* Line 1455 of yacc.c */ -#line 10378 "hphp.tab.cpp" +#line 10374 "hphp.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -10591,7 +10587,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 2448 "../../../../hphp/util/parser/hphp.y" +#line 2444 "../../../../hphp/util/parser/hphp.y" bool Parser::parseImpl() { return yyparse(this) == 0;