From bf740ca345e870ff62525bacbc6a7089b2ad2afc Mon Sep 17 00:00:00 2001 From: drussi Date: Fri, 22 Mar 2013 15:01:31 -0700 Subject: [PATCH] expose return type constraint (aka hint) from the AST to the runtime and reflection This is the first part of the work to expose type constraint and generic all the way to reflection. This first DIFF exposes the return type with generic types coming next. --- hphp/compiler/analysis/emitter.cpp | 17 +- hphp/compiler/analysis/file_scope.cpp | 2 +- hphp/compiler/parser/hphp.tab.cpp | 1350 ++++++++--------- hphp/compiler/parser/parser.cpp | 31 +- hphp/compiler/statement/class_constant.cpp | 5 +- hphp/compiler/statement/class_constant.h | 6 +- hphp/compiler/statement/class_variable.cpp | 6 +- hphp/compiler/statement/class_variable.h | 3 + .../compiler/statement/function_statement.cpp | 11 +- hphp/compiler/statement/function_statement.h | 5 +- hphp/compiler/statement/method_statement.cpp | 18 +- hphp/compiler/statement/method_statement.h | 16 +- hphp/runtime/ext/ext_reflection.cpp | 20 + hphp/runtime/vm/as.cpp | 4 +- hphp/runtime/vm/class.cpp | 32 +- hphp/runtime/vm/class.h | 33 +- hphp/runtime/vm/func.cpp | 18 +- hphp/runtime/vm/func.h | 11 + hphp/system/classes/reflection.php | 14 + hphp/test/test_code_run.cpp | 118 ++ hphp/test/vm/reflection2.php.exp | 24 +- hphp/util/parser/hphp.y | 12 +- hphp/util/parser/test/hphp.tab.cpp | 1350 ++++++++--------- 23 files changed, 1661 insertions(+), 1445 deletions(-) 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;