diff --git a/php7/php7.go b/php7/php7.go index 920653f..57dea94 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -1,5 +1,3 @@ -// Code generated by goyacc -o php7/php7.go php7/php7.y. DO NOT EDIT. - //line php7/php7.y:2 package php7 @@ -348,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php7/php7.y:5479 +//line php7/php7.y:5495 //line yacctab:1 var yyExca = [...]int{ @@ -3860,11 +3858,13 @@ yydefault: yyDollar[7].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[9].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].list[0].GetMeta().Cut(inheritMetaFilter).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 170: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:1514 + //line php7/php7.y:1516 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -3874,7 +3874,7 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.ClassToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) yyDollar[6].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[8].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) @@ -3883,7 +3883,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1534 + //line php7/php7.y:1536 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3891,7 +3891,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1540 + //line php7/php7.y:1542 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3899,7 +3899,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1549 + //line php7/php7.y:1551 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3913,7 +3913,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1561 + //line php7/php7.y:1563 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3927,7 +3927,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1576 + //line php7/php7.y:1578 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) @@ -3946,7 +3946,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1596 + //line php7/php7.y:1598 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[6].list, yyDollar[4].str) @@ -3965,7 +3965,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1616 + //line php7/php7.y:1618 { yyVAL.ClassExtends = nil @@ -3973,7 +3973,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1622 + //line php7/php7.y:1624 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3987,7 +3987,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1637 + //line php7/php7.y:1639 { yyVAL.InterfaceExtends = nil @@ -3995,7 +3995,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1643 + //line php7/php7.y:1645 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -4009,7 +4009,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1658 + //line php7/php7.y:1660 { yyVAL.ClassImplements = nil @@ -4017,7 +4017,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1664 + //line php7/php7.y:1666 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -4031,7 +4031,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1679 + //line php7/php7.y:1681 { yyVAL.node = yyDollar[1].node @@ -4039,7 +4039,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1685 + //line php7/php7.y:1687 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -4053,7 +4053,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1697 + //line php7/php7.y:1699 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -4069,7 +4069,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1711 + //line php7/php7.y:1713 { yyVAL.node = expr.NewShortList(yyDollar[2].list) @@ -4084,7 +4084,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1727 + //line php7/php7.y:1729 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -4095,7 +4095,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1736 + //line php7/php7.y:1738 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -4114,7 +4114,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1756 + //line php7/php7.y:1758 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -4125,7 +4125,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1765 + //line php7/php7.y:1767 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -4144,7 +4144,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1785 + //line php7/php7.y:1787 { yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) @@ -4155,7 +4155,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1794 + //line php7/php7.y:1796 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewDeclare(nil, stmtList, true) @@ -4174,7 +4174,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1814 + //line php7/php7.y:1816 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4191,7 +4191,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1829 + //line php7/php7.y:1831 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4210,7 +4210,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1846 + //line php7/php7.y:1848 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4229,7 +4229,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1863 + //line php7/php7.y:1865 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4251,7 +4251,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1886 + //line php7/php7.y:1888 { yyVAL.list = []node.Node{} @@ -4259,7 +4259,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1892 + //line php7/php7.y:1894 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4276,7 +4276,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1907 + //line php7/php7.y:1909 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4293,19 +4293,19 @@ yydefault: } case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1925 + //line php7/php7.y:1927 { yyVAL.token = yyDollar[1].token } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1929 + //line php7/php7.y:1931 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1936 + //line php7/php7.y:1938 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4316,7 +4316,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1945 + //line php7/php7.y:1947 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4335,7 +4335,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1965 + //line php7/php7.y:1967 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) @@ -4351,7 +4351,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1979 + //line php7/php7.y:1981 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) @@ -4369,7 +4369,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1998 + //line php7/php7.y:2000 { yyVAL.node = yyDollar[1].node @@ -4377,7 +4377,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2004 + //line php7/php7.y:2006 { _else := stmt.NewElse(yyDollar[3].node) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) @@ -4393,7 +4393,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2021 + //line php7/php7.y:2023 { stmts := stmt.NewStmtList(yyDollar[6].list) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) @@ -4412,7 +4412,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:2038 + //line php7/php7.y:2040 { stmts := stmt.NewStmtList(yyDollar[7].list) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) @@ -4432,7 +4432,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2059 + //line php7/php7.y:2061 { yyVAL.node = yyDollar[1].node @@ -4448,7 +4448,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2073 + //line php7/php7.y:2075 { stmts := stmt.NewStmtList(yyDollar[4].list) _else := stmt.NewAltElse(stmts) @@ -4470,7 +4470,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2096 + //line php7/php7.y:2098 { yyVAL.list = yyDollar[1].list @@ -4478,7 +4478,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2102 + //line php7/php7.y:2104 { yyVAL.list = nil @@ -4486,7 +4486,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2111 + //line php7/php7.y:2113 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4494,7 +4494,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2117 + //line php7/php7.y:2119 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4505,7 +4505,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2129 + //line php7/php7.y:2131 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4525,20 +4525,27 @@ yydefault: } // save comments + if yyDollar[1].node != nil { + yyDollar[1].node.GetMeta().Cut(inheritMetaFilter).PrependTo(yyVAL.node.GetMeta()) + } if yyDollar[2].token != nil { yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } if yyDollar[3].token != nil { yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } - yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + if yyDollar[1].node == nil && yyDollar[2].token == nil && yyDollar[3].token == nil { + yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + } else { + yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + } yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 217: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2160 + //line php7/php7.y:2169 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4558,13 +4565,20 @@ yydefault: } // save comments + if yyDollar[1].node != nil { + yyDollar[1].node.GetMeta().Cut(inheritMetaFilter).PrependTo(yyVAL.node.GetMeta()) + } if yyDollar[2].token != nil { yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } if yyDollar[3].token != nil { yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } - yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + if yyDollar[1].node == nil && yyDollar[2].token == nil && yyDollar[3].token == nil { + yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + } else { + yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + } yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[5].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) @@ -4572,7 +4586,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2195 + //line php7/php7.y:2211 { yyVAL.node = nil @@ -4580,7 +4594,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2201 + //line php7/php7.y:2217 { yyVAL.node = yyDollar[1].node @@ -4588,7 +4602,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2210 + //line php7/php7.y:2226 { yyVAL.node = yyDollar[1].node @@ -4596,7 +4610,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2216 + //line php7/php7.y:2232 { yyVAL.node = node.NewNullable(yyDollar[2].node) @@ -4610,7 +4624,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2231 + //line php7/php7.y:2247 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4624,7 +4638,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2243 + //line php7/php7.y:2259 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4638,7 +4652,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2255 + //line php7/php7.y:2271 { yyVAL.node = yyDollar[1].node @@ -4646,7 +4660,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2264 + //line php7/php7.y:2280 { yyVAL.node = nil @@ -4654,7 +4668,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2270 + //line php7/php7.y:2286 { yyVAL.node = yyDollar[2].node @@ -4665,7 +4679,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2282 + //line php7/php7.y:2298 { yyVAL.node = node.NewArgumentList(nil) @@ -4680,7 +4694,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2295 + //line php7/php7.y:2311 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4699,7 +4713,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2315 + //line php7/php7.y:2331 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4707,7 +4721,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2321 + //line php7/php7.y:2337 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4718,7 +4732,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2333 + //line php7/php7.y:2349 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4729,7 +4743,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2342 + //line php7/php7.y:2358 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4743,7 +4757,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2357 + //line php7/php7.y:2373 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4754,7 +4768,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2366 + //line php7/php7.y:2382 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4762,7 +4776,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2375 + //line php7/php7.y:2391 { yyVAL.node = yyDollar[1].node @@ -4770,7 +4784,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2384 + //line php7/php7.y:2400 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4781,7 +4795,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2393 + //line php7/php7.y:2409 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4789,7 +4803,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2402 + //line php7/php7.y:2418 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4808,7 +4822,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2419 + //line php7/php7.y:2435 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4828,7 +4842,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2440 + //line php7/php7.y:2456 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4836,7 +4850,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2446 + //line php7/php7.y:2462 { yyVAL.list = []node.Node{} @@ -4844,7 +4858,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2455 + //line php7/php7.y:2471 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4859,7 +4873,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2468 + //line php7/php7.y:2484 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) @@ -4875,7 +4889,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2482 + //line php7/php7.y:2498 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4889,7 +4903,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-10 : yypt+1] - //line php7/php7.y:2494 + //line php7/php7.y:2510 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node, yyDollar[5].str) @@ -4915,7 +4929,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2521 + //line php7/php7.y:2537 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4923,7 +4937,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2527 + //line php7/php7.y:2543 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4934,7 +4948,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2539 + //line php7/php7.y:2555 { yyVAL.node = stmt.NewNop() @@ -4948,7 +4962,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2552 + //line php7/php7.y:2568 { yyVAL.node = stmt.NewTraitAdaptationList(nil) @@ -4962,7 +4976,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2564 + //line php7/php7.y:2580 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4976,7 +4990,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2579 + //line php7/php7.y:2595 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4984,7 +4998,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2585 + //line php7/php7.y:2601 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4992,7 +5006,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2594 + //line php7/php7.y:2610 { yyVAL.node = yyDollar[1].node @@ -5004,7 +5018,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2604 + //line php7/php7.y:2620 { yyVAL.node = yyDollar[1].node @@ -5016,7 +5030,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2617 + //line php7/php7.y:2633 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -5030,7 +5044,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2632 + //line php7/php7.y:2648 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -5047,7 +5061,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2647 + //line php7/php7.y:2663 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -5064,7 +5078,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2662 + //line php7/php7.y:2678 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -5081,7 +5095,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2677 + //line php7/php7.y:2693 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5095,7 +5109,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2692 + //line php7/php7.y:2708 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5111,7 +5125,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2706 + //line php7/php7.y:2722 { yyVAL.node = yyDollar[1].node @@ -5119,7 +5133,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2715 + //line php7/php7.y:2731 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5136,7 +5150,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2733 + //line php7/php7.y:2749 { yyVAL.node = stmt.NewNop() @@ -5151,7 +5165,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2746 + //line php7/php7.y:2762 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5166,7 +5180,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2762 + //line php7/php7.y:2778 { yyVAL.list = yyDollar[1].list @@ -5174,7 +5188,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2768 + //line php7/php7.y:2784 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5189,7 +5203,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2784 + //line php7/php7.y:2800 { yyVAL.list = nil @@ -5197,7 +5211,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2790 + //line php7/php7.y:2806 { yyVAL.list = yyDollar[1].list @@ -5205,7 +5219,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2799 + //line php7/php7.y:2815 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5213,7 +5227,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2805 + //line php7/php7.y:2821 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5221,7 +5235,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2814 + //line php7/php7.y:2830 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5235,7 +5249,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2826 + //line php7/php7.y:2842 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5249,7 +5263,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2838 + //line php7/php7.y:2854 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5263,7 +5277,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2850 + //line php7/php7.y:2866 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5277,7 +5291,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2862 + //line php7/php7.y:2878 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5291,7 +5305,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2874 + //line php7/php7.y:2890 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5305,7 +5319,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2889 + //line php7/php7.y:2905 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5316,7 +5330,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2898 + //line php7/php7.y:2914 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5324,7 +5338,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2907 + //line php7/php7.y:2923 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5343,7 +5357,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2924 + //line php7/php7.y:2940 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5363,7 +5377,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2945 + //line php7/php7.y:2961 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5374,7 +5388,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2954 + //line php7/php7.y:2970 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5382,7 +5396,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2963 + //line php7/php7.y:2979 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5399,7 +5413,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2981 + //line php7/php7.y:2997 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5416,7 +5430,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2999 + //line php7/php7.y:3015 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5427,7 +5441,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3008 + //line php7/php7.y:3024 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5435,7 +5449,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3017 + //line php7/php7.y:3033 { yyVAL.node = yyDollar[1].node @@ -5443,7 +5457,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3026 + //line php7/php7.y:3042 { yyVAL.list = nil @@ -5451,7 +5465,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3032 + //line php7/php7.y:3048 { yyVAL.list = yyDollar[1].list @@ -5459,7 +5473,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3041 + //line php7/php7.y:3057 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5470,7 +5484,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3050 + //line php7/php7.y:3066 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5478,7 +5492,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:3059 + //line php7/php7.y:3075 { if yyDollar[2].node != nil { yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].node.(*node.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -5498,7 +5512,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3080 + //line php7/php7.y:3096 { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) @@ -5515,7 +5529,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3095 + //line php7/php7.y:3111 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -5529,7 +5543,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3110 + //line php7/php7.y:3126 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5548,7 +5562,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3127 + //line php7/php7.y:3143 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -5566,7 +5580,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3143 + //line php7/php7.y:3159 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5580,7 +5594,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3155 + //line php7/php7.y:3171 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5595,7 +5609,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3168 + //line php7/php7.y:3184 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5609,7 +5623,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3180 + //line php7/php7.y:3196 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5623,7 +5637,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3192 + //line php7/php7.y:3208 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5637,7 +5651,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3204 + //line php7/php7.y:3220 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5651,7 +5665,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3216 + //line php7/php7.y:3232 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5665,7 +5679,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3228 + //line php7/php7.y:3244 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5679,7 +5693,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3240 + //line php7/php7.y:3256 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5693,7 +5707,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3252 + //line php7/php7.y:3268 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5707,7 +5721,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3264 + //line php7/php7.y:3280 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5721,7 +5735,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3276 + //line php7/php7.y:3292 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5735,7 +5749,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3288 + //line php7/php7.y:3304 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5749,7 +5763,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3300 + //line php7/php7.y:3316 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5763,7 +5777,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3312 + //line php7/php7.y:3328 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5777,7 +5791,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3324 + //line php7/php7.y:3340 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5791,7 +5805,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3336 + //line php7/php7.y:3352 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5805,7 +5819,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3348 + //line php7/php7.y:3364 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5819,7 +5833,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3360 + //line php7/php7.y:3376 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5833,7 +5847,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3372 + //line php7/php7.y:3388 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5847,7 +5861,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3384 + //line php7/php7.y:3400 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5861,7 +5875,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3396 + //line php7/php7.y:3412 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5875,7 +5889,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3408 + //line php7/php7.y:3424 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5889,7 +5903,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3420 + //line php7/php7.y:3436 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5903,7 +5917,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3432 + //line php7/php7.y:3448 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5917,7 +5931,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3444 + //line php7/php7.y:3460 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5931,7 +5945,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3456 + //line php7/php7.y:3472 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5945,7 +5959,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3468 + //line php7/php7.y:3484 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5959,7 +5973,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3480 + //line php7/php7.y:3496 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5973,7 +5987,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3492 + //line php7/php7.y:3508 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5987,7 +6001,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3504 + //line php7/php7.y:3520 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -6001,7 +6015,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3516 + //line php7/php7.y:3532 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -6015,7 +6029,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3528 + //line php7/php7.y:3544 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -6029,7 +6043,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3540 + //line php7/php7.y:3556 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -6043,7 +6057,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3552 + //line php7/php7.y:3568 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6057,7 +6071,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3564 + //line php7/php7.y:3580 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6071,7 +6085,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3576 + //line php7/php7.y:3592 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6085,7 +6099,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3588 + //line php7/php7.y:3604 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6099,7 +6113,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3600 + //line php7/php7.y:3616 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6113,7 +6127,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3612 + //line php7/php7.y:3628 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6127,7 +6141,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3624 + //line php7/php7.y:3640 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6141,7 +6155,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3636 + //line php7/php7.y:3652 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6155,7 +6169,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3648 + //line php7/php7.y:3664 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6169,7 +6183,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3660 + //line php7/php7.y:3676 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6184,7 +6198,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3673 + //line php7/php7.y:3689 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6198,7 +6212,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3685 + //line php7/php7.y:3701 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6212,7 +6226,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3697 + //line php7/php7.y:3713 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6226,7 +6240,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3709 + //line php7/php7.y:3725 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6240,7 +6254,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3721 + //line php7/php7.y:3737 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -6254,7 +6268,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3733 + //line php7/php7.y:3749 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6268,7 +6282,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3745 + //line php7/php7.y:3761 { yyVAL.node = yyDollar[2].node @@ -6282,7 +6296,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3757 + //line php7/php7.y:3773 { yyVAL.node = yyDollar[1].node @@ -6290,7 +6304,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3763 + //line php7/php7.y:3779 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6305,7 +6319,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3776 + //line php7/php7.y:3792 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6320,7 +6334,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3789 + //line php7/php7.y:3805 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -6334,7 +6348,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3801 + //line php7/php7.y:3817 { yyVAL.node = yyDollar[1].node @@ -6342,7 +6356,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3807 + //line php7/php7.y:3823 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6357,7 +6371,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3820 + //line php7/php7.y:3836 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6372,7 +6386,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3833 + //line php7/php7.y:3849 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6387,7 +6401,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3846 + //line php7/php7.y:3862 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6402,7 +6416,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3859 + //line php7/php7.y:3875 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6417,7 +6431,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3872 + //line php7/php7.y:3888 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6432,7 +6446,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3885 + //line php7/php7.y:3901 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6447,7 +6461,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3898 + //line php7/php7.y:3914 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6476,7 +6490,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3925 + //line php7/php7.y:3941 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6490,7 +6504,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3937 + //line php7/php7.y:3953 { yyVAL.node = yyDollar[1].node @@ -6498,7 +6512,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3943 + //line php7/php7.y:3959 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6512,7 +6526,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3955 + //line php7/php7.y:3971 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6526,7 +6540,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3967 + //line php7/php7.y:3983 { yyVAL.node = expr.NewYield(nil, nil) @@ -6540,7 +6554,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3979 + //line php7/php7.y:3995 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6554,7 +6568,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3991 + //line php7/php7.y:4007 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6569,7 +6583,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4004 + //line php7/php7.y:4020 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -6583,7 +6597,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:4016 + //line php7/php7.y:4032 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].token != nil, yyDollar[3].str) @@ -6604,7 +6618,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:4035 + //line php7/php7.y:4051 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].ClosureUse, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].token != nil, yyDollar[4].str) @@ -6626,7 +6640,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4058 + //line php7/php7.y:4074 { yyVAL.str = yylex.(*Parser).PhpDocComment yylex.(*Parser).PhpDocComment = "" @@ -6635,19 +6649,19 @@ yydefault: } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4068 + //line php7/php7.y:4084 { yyVAL.token = nil } case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4072 + //line php7/php7.y:4088 { yyVAL.token = yyDollar[1].token } case 374: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4079 + //line php7/php7.y:4095 { yyVAL.ClosureUse = nil @@ -6655,7 +6669,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4085 + //line php7/php7.y:4101 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6671,7 +6685,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4102 + //line php7/php7.y:4118 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6682,7 +6696,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4111 + //line php7/php7.y:4127 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -6690,7 +6704,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4120 + //line php7/php7.y:4136 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -6707,7 +6721,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4135 + //line php7/php7.y:4151 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6727,7 +6741,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4156 + //line php7/php7.y:4172 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6738,7 +6752,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4165 + //line php7/php7.y:4181 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6752,7 +6766,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4177 + //line php7/php7.y:4193 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6766,7 +6780,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4189 + //line php7/php7.y:4205 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6777,7 +6791,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4201 + //line php7/php7.y:4217 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6791,7 +6805,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4213 + //line php7/php7.y:4229 { yyVAL.node = yyDollar[1].node @@ -6799,7 +6813,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4222 + //line php7/php7.y:4238 { yyVAL.node = yyDollar[1].node @@ -6807,7 +6821,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4228 + //line php7/php7.y:4244 { yyVAL.node = yyDollar[1].node @@ -6815,7 +6829,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4237 + //line php7/php7.y:4253 { yyVAL.node = nil @@ -6823,7 +6837,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4243 + //line php7/php7.y:4259 { yyVAL.node = expr.NewExit(yyDollar[2].node) @@ -6840,7 +6854,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4261 + //line php7/php7.y:4277 { yyVAL.list = []node.Node{} @@ -6848,7 +6862,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4267 + //line php7/php7.y:4283 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -6856,7 +6870,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4273 + //line php7/php7.y:4289 { yyVAL.list = yyDollar[1].list @@ -6864,7 +6878,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4282 + //line php7/php7.y:4298 { yyVAL.node = nil @@ -6872,7 +6886,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4288 + //line php7/php7.y:4304 { yyVAL.node = yyDollar[1].node @@ -6880,7 +6894,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4297 + //line php7/php7.y:4313 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6896,7 +6910,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4311 + //line php7/php7.y:4327 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6911,7 +6925,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4324 + //line php7/php7.y:4340 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6925,7 +6939,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4339 + //line php7/php7.y:4355 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -6939,7 +6953,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4351 + //line php7/php7.y:4367 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -6953,7 +6967,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4363 + //line php7/php7.y:4379 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6967,7 +6981,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4375 + //line php7/php7.y:4391 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6981,7 +6995,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4387 + //line php7/php7.y:4403 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6995,7 +7009,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4399 + //line php7/php7.y:4415 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7009,7 +7023,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4411 + //line php7/php7.y:4427 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7023,7 +7037,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4423 + //line php7/php7.y:4439 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7037,7 +7051,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4435 + //line php7/php7.y:4451 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7051,7 +7065,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4447 + //line php7/php7.y:4463 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7065,7 +7079,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4459 + //line php7/php7.y:4475 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7081,7 +7095,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4473 + //line php7/php7.y:4489 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7095,7 +7109,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4485 + //line php7/php7.y:4501 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -7109,7 +7123,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4497 + //line php7/php7.y:4513 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -7123,7 +7137,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4509 + //line php7/php7.y:4525 { yyVAL.node = yyDollar[1].node @@ -7131,7 +7145,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4515 + //line php7/php7.y:4531 { yyVAL.node = yyDollar[1].node @@ -7139,7 +7153,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4524 + //line php7/php7.y:4540 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) @@ -7150,7 +7164,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4533 + //line php7/php7.y:4549 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7167,7 +7181,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4548 + //line php7/php7.y:4564 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7184,7 +7198,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4566 + //line php7/php7.y:4582 { yyVAL.node = yyDollar[1].node @@ -7192,7 +7206,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4572 + //line php7/php7.y:4588 { yyVAL.node = yyDollar[1].node @@ -7200,7 +7214,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4581 + //line php7/php7.y:4597 { yyVAL.node = nil @@ -7208,7 +7222,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4587 + //line php7/php7.y:4603 { yyVAL.node = yyDollar[1].node @@ -7216,7 +7230,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4596 + //line php7/php7.y:4612 { yyVAL.node = yyDollar[1].node @@ -7224,7 +7238,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4605 + //line php7/php7.y:4621 { yyVAL.node = yyDollar[1].node @@ -7232,7 +7246,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4611 + //line php7/php7.y:4627 { yyVAL.node = yyDollar[2].node @@ -7246,7 +7260,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4623 + //line php7/php7.y:4639 { yyVAL.node = yyDollar[1].node @@ -7254,7 +7268,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4632 + //line php7/php7.y:4648 { yyVAL.node = yyDollar[1].node @@ -7262,7 +7276,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4638 + //line php7/php7.y:4654 { yyVAL.node = yyDollar[2].node @@ -7276,7 +7290,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4650 + //line php7/php7.y:4666 { yyVAL.node = yyDollar[1].node @@ -7284,7 +7298,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4659 + //line php7/php7.y:4675 { yyVAL.node = yyDollar[1].node @@ -7292,7 +7306,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4665 + //line php7/php7.y:4681 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7309,7 +7323,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4680 + //line php7/php7.y:4696 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7326,7 +7340,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4695 + //line php7/php7.y:4711 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7343,7 +7357,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4710 + //line php7/php7.y:4726 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7357,7 +7371,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4722 + //line php7/php7.y:4738 { yyVAL.node = yyDollar[1].node @@ -7365,7 +7379,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4731 + //line php7/php7.y:4747 { yyVAL.node = yyDollar[1].node @@ -7373,7 +7387,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4737 + //line php7/php7.y:4753 { yyVAL.node = yyDollar[1].node @@ -7381,7 +7395,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4743 + //line php7/php7.y:4759 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7395,7 +7409,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4758 + //line php7/php7.y:4774 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7412,7 +7426,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4773 + //line php7/php7.y:4789 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -7431,7 +7445,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4790 + //line php7/php7.y:4806 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7446,7 +7460,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4806 + //line php7/php7.y:4822 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7460,7 +7474,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4818 + //line php7/php7.y:4834 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7474,7 +7488,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4833 + //line php7/php7.y:4849 { yyVAL.node = yyDollar[1].node @@ -7482,7 +7496,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4839 + //line php7/php7.y:4855 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7499,7 +7513,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4854 + //line php7/php7.y:4870 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7516,7 +7530,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4869 + //line php7/php7.y:4885 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7530,7 +7544,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4881 + //line php7/php7.y:4897 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7544,7 +7558,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4893 + //line php7/php7.y:4909 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7558,7 +7572,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4908 + //line php7/php7.y:4924 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7572,7 +7586,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4920 + //line php7/php7.y:4936 { yyVAL.node = yyDollar[2].node @@ -7586,7 +7600,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4932 + //line php7/php7.y:4948 { yyVAL.node = yyDollar[1].node @@ -7594,7 +7608,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4941 + //line php7/php7.y:4957 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7608,7 +7622,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4953 + //line php7/php7.y:4969 { yyVAL.node = yyDollar[2].node @@ -7622,7 +7636,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4965 + //line php7/php7.y:4981 { yyVAL.node = yyDollar[1].node @@ -7630,7 +7644,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4974 + //line php7/php7.y:4990 { yyVAL.list = yyDollar[1].list @@ -7638,7 +7652,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4983 + //line php7/php7.y:4999 { yyVAL.node = expr.NewArrayItem(nil, nil) @@ -7646,7 +7660,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4989 + //line php7/php7.y:5005 { yyVAL.node = yyDollar[1].node @@ -7654,7 +7668,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4998 + //line php7/php7.y:5014 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} @@ -7669,7 +7683,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5011 + //line php7/php7.y:5027 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -7681,7 +7695,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5024 + //line php7/php7.y:5040 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) @@ -7695,7 +7709,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5036 + //line php7/php7.y:5052 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) @@ -7706,7 +7720,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5045 + //line php7/php7.y:5061 { reference := expr.NewReference(yyDollar[4].node) yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference) @@ -7723,7 +7737,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5060 + //line php7/php7.y:5076 { reference := expr.NewReference(yyDollar[2].node) yyVAL.node = expr.NewArrayItem(nil, reference) @@ -7739,7 +7753,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5074 + //line php7/php7.y:5090 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) @@ -7759,7 +7773,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5092 + //line php7/php7.y:5108 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) @@ -7778,7 +7792,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5112 + //line php7/php7.y:5128 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7786,7 +7800,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5118 + //line php7/php7.y:5134 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7801,7 +7815,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5131 + //line php7/php7.y:5147 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -7809,7 +7823,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5137 + //line php7/php7.y:5153 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -7824,7 +7838,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5153 + //line php7/php7.y:5169 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7841,7 +7855,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5168 + //line php7/php7.y:5184 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7864,7 +7878,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5189 + //line php7/php7.y:5205 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7887,7 +7901,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5210 + //line php7/php7.y:5226 { variable := expr.NewVariable(yyDollar[2].node) @@ -7906,7 +7920,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5227 + //line php7/php7.y:5243 { name := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(name) @@ -7928,7 +7942,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5247 + //line php7/php7.y:5263 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -7953,7 +7967,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5270 + //line php7/php7.y:5286 { yyVAL.node = yyDollar[2].node @@ -7967,7 +7981,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5285 + //line php7/php7.y:5301 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7981,7 +7995,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5297 + //line php7/php7.y:5313 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -7997,7 +8011,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5311 + //line php7/php7.y:5327 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -8025,7 +8039,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5337 + //line php7/php7.y:5353 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -8042,7 +8056,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:5355 + //line php7/php7.y:5371 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -8062,7 +8076,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5373 + //line php7/php7.y:5389 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -8078,7 +8092,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5387 + //line php7/php7.y:5403 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -8092,7 +8106,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5399 + //line php7/php7.y:5415 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -8106,7 +8120,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5411 + //line php7/php7.y:5427 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -8122,7 +8136,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5425 + //line php7/php7.y:5441 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -8136,7 +8150,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5437 + //line php7/php7.y:5453 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -8150,7 +8164,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5452 + //line php7/php7.y:5468 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8158,7 +8172,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5458 + //line php7/php7.y:5474 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8169,7 +8183,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5470 + //line php7/php7.y:5486 { yyVAL.node = yyDollar[1].node diff --git a/php7/php7.y b/php7/php7.y index a4ba1c3..62e396d 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -1508,6 +1508,8 @@ class_declaration_statement: $7.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) $9.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) + $1[0].GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' @@ -1520,7 +1522,7 @@ class_declaration_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments - $1.Meta.SetTokenName(meta.ClassToken).AppendTo($$.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) @@ -2145,13 +2147,20 @@ parameter: } // save comments + if $1 != nil { + $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + } if $2 != nil { $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } if $3 != nil { $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - $4.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + if $1 == nil && $2 == nil && $3 == nil { + $4.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + } else { + $4.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + } yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2176,13 +2185,20 @@ parameter: } // save comments + if $1 != nil { + $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + } if $2 != nil { $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } if $3 != nil { $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - $4.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + if $1 == nil && $2 == nil && $3 == nil { + $4.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + } else { + $4.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + } yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $5.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) diff --git a/visitor/dumper_test.go b/visitor/dumper_test.go index d785983..214f1d9 100644 --- a/visitor/dumper_test.go +++ b/visitor/dumper_test.go @@ -61,7 +61,7 @@ func ExampleDumper() { // | "Position": Pos{Line: 4-10 Pos: 29-139} // | "NamespacedName": "Foo\\Bar" // | "Meta": - // | "\n\t\t\t" before "ClassToken" + // | "\n\t\t\t" before "NodeStart" // | " " before "OpenCurlyBracesToken" // | "\n\t\t\t" before "CloseCurlyBracesToken" // | "PhpDocComment": "" diff --git a/visitor/go_dumper_test.go b/visitor/go_dumper_test.go index 03a6f4b..1765cee 100644 --- a/visitor/go_dumper_test.go +++ b/visitor/go_dumper_test.go @@ -146,7 +146,7 @@ func ExampleGoDumper() { // EndPos: 28, // }, // Value: "\n\t\t\t", - // TokenName: meta.ClassToken, + // TokenName: meta.NodeStart, // }, // &meta.Data{ // Type: meta.WhiteSpaceType, diff --git a/visitor/json_dumper_test.go b/visitor/json_dumper_test.go index 13435a7..4b6328a 100644 --- a/visitor/json_dumper_test.go +++ b/visitor/json_dumper_test.go @@ -37,5 +37,5 @@ func ExampleJsonDumper() { nodes.Walk(dumper) // Output: - // {"type":"*node.Root","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"Stmts":[{"type":"*stmt.Namespace","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"meta":[{"type":"*meta.TokenType","value":"