diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 908d035..466cd09 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7127 +// line internal/php5/php5.y:7142 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3027,33 +3027,42 @@ yydefault: yyDollar = yyS[yypt-8 : yypt+1] // line internal/php5/php5.y:932 { + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} - yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + yyVAL.node = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, yyDollar[5].list, yyDollar[6].node} // save position + exprBrackets.GetNode().Position = position.NewNodePosition(yyDollar[2].node) stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[3].token, yyDollar[4].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.Tokens) + if yyDollar[6].node != nil { + yylex.(*Parser).setFreeFloating(yyDollar[6].node.(*ast.StmtAltElse).Stmt, token.End, append(yyDollar[7].token.Tokens, yyDollar[8].token.Tokens...)) + } else if len(yyDollar[5].list) > 0 { + yylex.(*Parser).setFreeFloating(yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtAltElseIf).Stmt, token.End, append(yyDollar[7].token.Tokens, yyDollar[8].token.Tokens...)) + } else { + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append(yyDollar[7].token.Tokens, yyDollar[8].token.Tokens...)) + } yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:956 + // line internal/php5/php5.y:965 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3082,7 +3091,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:981 + // line internal/php5/php5.y:990 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3107,7 +3116,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1002 + // line internal/php5/php5.y:1011 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3136,7 +3145,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1029 + // line internal/php5/php5.y:1038 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3167,7 +3176,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1056 + // line internal/php5/php5.y:1065 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3183,7 +3192,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1070 + // line internal/php5/php5.y:1079 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3199,7 +3208,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1084 + // line internal/php5/php5.y:1093 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3215,7 +3224,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1098 + // line internal/php5/php5.y:1107 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3231,7 +3240,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1112 + // line internal/php5/php5.y:1121 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3247,7 +3256,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1126 + // line internal/php5/php5.y:1135 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3263,7 +3272,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1140 + // line internal/php5/php5.y:1149 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3279,7 +3288,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1154 + // line internal/php5/php5.y:1163 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3295,7 +3304,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1168 + // line internal/php5/php5.y:1177 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3311,7 +3320,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1182 + // line internal/php5/php5.y:1191 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3327,7 +3336,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1196 + // line internal/php5/php5.y:1205 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3344,7 +3353,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1211 + // line internal/php5/php5.y:1220 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3358,7 +3367,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1223 + // line internal/php5/php5.y:1232 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3374,7 +3383,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1237 + // line internal/php5/php5.y:1246 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3392,7 +3401,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1253 + // line internal/php5/php5.y:1262 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3435,7 +3444,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1293 + // line internal/php5/php5.y:1302 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3478,7 +3487,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1333 + // line internal/php5/php5.y:1342 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3495,7 +3504,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1348 + // line internal/php5/php5.y:1357 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3510,7 +3519,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1370 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3530,7 +3539,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1388 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3546,7 +3555,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1393 + // line internal/php5/php5.y:1402 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3565,7 +3574,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1413 + // line internal/php5/php5.y:1422 { yyVAL.list = []ast.Vertex{} @@ -3573,7 +3582,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1419 + // line internal/php5/php5.y:1428 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3597,7 +3606,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1444 + // line internal/php5/php5.y:1453 { yyVAL.node = nil @@ -3605,7 +3614,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1450 + // line internal/php5/php5.y:1459 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3621,7 +3630,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1467 + // line internal/php5/php5.y:1476 { yyVAL.list = yyDollar[1].list @@ -3629,7 +3638,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1473 + // line internal/php5/php5.y:1482 { yyVAL.list = []ast.Vertex{} @@ -3637,7 +3646,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1482 + // line internal/php5/php5.y:1491 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3645,7 +3654,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1488 + // line internal/php5/php5.y:1497 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3653,7 +3662,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1497 + // line internal/php5/php5.y:1506 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3676,7 +3685,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1521 + // line internal/php5/php5.y:1530 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3684,7 +3693,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1527 + // line internal/php5/php5.y:1536 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3695,7 +3704,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1539 + // line internal/php5/php5.y:1548 { yyVAL.node = yyDollar[1].node @@ -3703,7 +3712,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1548 + // line internal/php5/php5.y:1557 { yyVAL.node = yyDollar[1].node @@ -3711,7 +3720,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1557 + // line internal/php5/php5.y:1566 { yyVAL.node = yyDollar[1].node @@ -3719,31 +3728,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1566 + // line internal/php5/php5.y:1575 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1570 + // line internal/php5/php5.y:1579 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1577 + // line internal/php5/php5.y:1586 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1581 + // line internal/php5/php5.y:1590 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1588 + // line internal/php5/php5.y:1597 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3769,7 +3778,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1615 + // line internal/php5/php5.y:1624 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3799,7 +3808,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1643 + // line internal/php5/php5.y:1652 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3818,7 +3827,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1664 + // line internal/php5/php5.y:1673 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3832,7 +3841,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1676 + // line internal/php5/php5.y:1685 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3849,7 +3858,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1691 + // line internal/php5/php5.y:1700 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3863,7 +3872,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1703 + // line internal/php5/php5.y:1712 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3880,7 +3889,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1721 + // line internal/php5/php5.y:1730 { yyVAL.ClassExtends = nil @@ -3888,7 +3897,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1727 + // line internal/php5/php5.y:1736 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3902,13 +3911,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1742 + // line internal/php5/php5.y:1751 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1749 + // line internal/php5/php5.y:1758 { yyVAL.InterfaceExtends = nil @@ -3916,7 +3925,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1755 + // line internal/php5/php5.y:1764 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3930,7 +3939,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1770 + // line internal/php5/php5.y:1779 { yyVAL.ClassImplements = nil @@ -3938,7 +3947,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1776 + // line internal/php5/php5.y:1785 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3952,7 +3961,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1791 + // line internal/php5/php5.y:1800 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3960,7 +3969,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1797 + // line internal/php5/php5.y:1806 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3971,7 +3980,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1809 + // line internal/php5/php5.y:1818 { yyVAL.node = nil @@ -3979,7 +3988,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1815 + // line internal/php5/php5.y:1824 { yyVAL.node = yyDollar[2].node @@ -3990,7 +3999,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1827 + // line internal/php5/php5.y:1836 { yyVAL.node = yyDollar[1].node @@ -3998,7 +4007,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1833 + // line internal/php5/php5.y:1842 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4012,7 +4021,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1845 + // line internal/php5/php5.y:1854 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4028,7 +4037,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1862 + // line internal/php5/php5.y:1871 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4039,7 +4048,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1871 + // line internal/php5/php5.y:1880 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4058,7 +4067,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1891 + // line internal/php5/php5.y:1900 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4069,7 +4078,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1900 + // line internal/php5/php5.y:1909 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4088,7 +4097,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1921 + // line internal/php5/php5.y:1930 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4099,7 +4108,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1930 + // line internal/php5/php5.y:1939 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4118,7 +4127,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1951 + // line internal/php5/php5.y:1960 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4136,7 +4145,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1967 + // line internal/php5/php5.y:1976 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4155,7 +4164,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1988 + // line internal/php5/php5.y:1997 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4172,7 +4181,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2003 + // line internal/php5/php5.y:2012 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4190,7 +4199,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2019 + // line internal/php5/php5.y:2028 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4209,7 +4218,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2036 + // line internal/php5/php5.y:2045 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4230,7 +4239,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2059 + // line internal/php5/php5.y:2068 { yyVAL.list = []ast.Vertex{} @@ -4238,7 +4247,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2065 + // line internal/php5/php5.y:2074 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4255,7 +4264,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2080 + // line internal/php5/php5.y:2089 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4272,19 +4281,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2099 + // line internal/php5/php5.y:2108 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2103 + // line internal/php5/php5.y:2112 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2111 + // line internal/php5/php5.y:2120 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4295,7 +4304,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2120 + // line internal/php5/php5.y:2129 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4314,7 +4323,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2142 + // line internal/php5/php5.y:2151 { yyVAL.list = nil @@ -4322,7 +4331,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2148 + // line internal/php5/php5.y:2157 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4345,7 +4354,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2171 + // line internal/php5/php5.y:2180 { yyVAL.list = nil @@ -4353,33 +4362,37 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2177 + // line internal/php5/php5.y:2186 { + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} yyVAL.list = append(yyDollar[1].list, _elseIf) // save position + exprBrackets.GetNode().Position = position.NewNodePosition(yyDollar[3].node) stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) + exprBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[4].token, yyDollar[5].list) _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) if len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) delete(yyDollar[3].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.Expr, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) delete(yyDollar[3].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2203 + // line internal/php5/php5.y:2216 { yyVAL.node = nil @@ -4387,7 +4400,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2209 + // line internal/php5/php5.y:2222 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4401,7 +4414,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2225 + // line internal/php5/php5.y:2238 { yyVAL.node = nil @@ -4409,24 +4422,26 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2231 + // line internal/php5/php5.y:2244 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} - yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmtsBrackets} // save position stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[3].list) yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Else, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2250 + // line internal/php5/php5.y:2265 { yyVAL.list = yyDollar[1].list @@ -4434,7 +4449,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2256 + // line internal/php5/php5.y:2271 { yyVAL.list = nil @@ -4442,7 +4457,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2265 + // line internal/php5/php5.y:2280 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4450,7 +4465,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2271 + // line internal/php5/php5.y:2286 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4461,7 +4476,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2283 + // line internal/php5/php5.y:2298 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4499,7 +4514,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2319 + // line internal/php5/php5.y:2334 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4538,7 +4553,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2360 + // line internal/php5/php5.y:2375 { yyVAL.node = nil @@ -4546,7 +4561,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2366 + // line internal/php5/php5.y:2381 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4560,7 +4575,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2378 + // line internal/php5/php5.y:2393 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4574,7 +4589,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2390 + // line internal/php5/php5.y:2405 { yyVAL.node = yyDollar[1].node @@ -4582,7 +4597,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2400 + // line internal/php5/php5.y:2415 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4597,7 +4612,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2413 + // line internal/php5/php5.y:2428 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4612,7 +4627,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2426 + // line internal/php5/php5.y:2441 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4629,7 +4644,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2445 + // line internal/php5/php5.y:2460 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4637,7 +4652,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2451 + // line internal/php5/php5.y:2466 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4648,7 +4663,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2463 + // line internal/php5/php5.y:2478 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4662,7 +4677,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2475 + // line internal/php5/php5.y:2490 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4676,7 +4691,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2487 + // line internal/php5/php5.y:2502 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4690,7 +4705,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2499 + // line internal/php5/php5.y:2514 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4704,7 +4719,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2514 + // line internal/php5/php5.y:2529 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4715,7 +4730,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2523 + // line internal/php5/php5.y:2538 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4723,7 +4738,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2533 + // line internal/php5/php5.y:2548 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4739,7 +4754,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2547 + // line internal/php5/php5.y:2562 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4753,7 +4768,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2559 + // line internal/php5/php5.y:2574 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4769,7 +4784,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2577 + // line internal/php5/php5.y:2592 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4789,7 +4804,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2595 + // line internal/php5/php5.y:2610 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4810,7 +4825,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2614 + // line internal/php5/php5.y:2629 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4829,7 +4844,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2631 + // line internal/php5/php5.y:2646 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4849,7 +4864,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2653 + // line internal/php5/php5.y:2668 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4857,7 +4872,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2659 + // line internal/php5/php5.y:2674 { yyVAL.list = []ast.Vertex{} @@ -4865,7 +4880,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2669 + // line internal/php5/php5.y:2684 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4881,7 +4896,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2683 + // line internal/php5/php5.y:2698 { yyVAL.node = yyDollar[1].node @@ -4896,7 +4911,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2696 + // line internal/php5/php5.y:2711 { yyVAL.node = yyDollar[1].node @@ -4904,7 +4919,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2702 + // line internal/php5/php5.y:2717 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4937,7 +4952,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2736 + // line internal/php5/php5.y:2751 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4951,7 +4966,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2751 + // line internal/php5/php5.y:2766 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4959,7 +4974,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2757 + // line internal/php5/php5.y:2772 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4970,7 +4985,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2769 + // line internal/php5/php5.y:2784 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4984,7 +4999,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2781 + // line internal/php5/php5.y:2796 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4998,7 +5013,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2796 + // line internal/php5/php5.y:2811 { yyVAL.list = nil @@ -5006,7 +5021,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2802 + // line internal/php5/php5.y:2817 { yyVAL.list = yyDollar[1].list @@ -5014,7 +5029,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2811 + // line internal/php5/php5.y:2826 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5022,7 +5037,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2817 + // line internal/php5/php5.y:2832 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5030,7 +5045,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2826 + // line internal/php5/php5.y:2841 { yyVAL.node = yyDollar[1].node @@ -5042,7 +5057,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2836 + // line internal/php5/php5.y:2851 { yyVAL.node = yyDollar[1].node @@ -5054,7 +5069,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2849 + // line internal/php5/php5.y:2864 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5069,7 +5084,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2865 + // line internal/php5/php5.y:2880 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5077,7 +5092,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2871 + // line internal/php5/php5.y:2886 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5088,7 +5103,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2883 + // line internal/php5/php5.y:2898 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5104,7 +5119,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2897 + // line internal/php5/php5.y:2912 { yyVAL.node = yyDollar[1].node @@ -5112,7 +5127,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2906 + // line internal/php5/php5.y:2921 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5130,7 +5145,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2925 + // line internal/php5/php5.y:2940 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5148,7 +5163,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2941 + // line internal/php5/php5.y:2956 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5163,7 +5178,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2957 + // line internal/php5/php5.y:2972 { yyVAL.node = nil @@ -5171,7 +5186,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2963 + // line internal/php5/php5.y:2978 { yyVAL.node = yyDollar[1].node @@ -5179,7 +5194,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2972 + // line internal/php5/php5.y:2987 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5194,7 +5209,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2985 + // line internal/php5/php5.y:3000 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5209,7 +5224,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3001 + // line internal/php5/php5.y:3016 { yyVAL.list = yyDollar[1].list @@ -5217,7 +5232,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3007 + // line internal/php5/php5.y:3022 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5232,7 +5247,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3023 + // line internal/php5/php5.y:3038 { yyVAL.list = nil @@ -5240,7 +5255,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3029 + // line internal/php5/php5.y:3044 { yyVAL.list = yyDollar[1].list @@ -5248,7 +5263,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3038 + // line internal/php5/php5.y:3053 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5256,7 +5271,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3044 + // line internal/php5/php5.y:3059 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5264,7 +5279,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3053 + // line internal/php5/php5.y:3068 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5278,7 +5293,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3065 + // line internal/php5/php5.y:3080 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5292,7 +5307,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3077 + // line internal/php5/php5.y:3092 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5306,7 +5321,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3089 + // line internal/php5/php5.y:3104 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5320,7 +5335,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3101 + // line internal/php5/php5.y:3116 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5334,7 +5349,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3113 + // line internal/php5/php5.y:3128 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5348,7 +5363,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3128 + // line internal/php5/php5.y:3143 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5368,7 +5383,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3146 + // line internal/php5/php5.y:3161 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5389,7 +5404,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3165 + // line internal/php5/php5.y:3180 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5408,7 +5423,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3182 + // line internal/php5/php5.y:3197 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5428,7 +5443,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3203 + // line internal/php5/php5.y:3218 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5451,7 +5466,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3224 + // line internal/php5/php5.y:3239 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5471,7 +5486,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3245 + // line internal/php5/php5.y:3260 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5482,7 +5497,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3254 + // line internal/php5/php5.y:3269 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5490,7 +5505,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3264 + // line internal/php5/php5.y:3279 { yyVAL.list = nil @@ -5498,7 +5513,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3270 + // line internal/php5/php5.y:3285 { yyVAL.list = yyDollar[1].list @@ -5506,7 +5521,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3279 + // line internal/php5/php5.y:3294 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5517,7 +5532,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3288 + // line internal/php5/php5.y:3303 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5525,7 +5540,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3297 + // line internal/php5/php5.y:3312 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5533,7 +5548,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3303 + // line internal/php5/php5.y:3318 { yyVAL.list = yyDollar[1].list @@ -5541,7 +5556,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3312 + // line internal/php5/php5.y:3327 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5557,7 +5572,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3326 + // line internal/php5/php5.y:3341 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5573,7 +5588,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3343 + // line internal/php5/php5.y:3358 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5581,7 +5596,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3349 + // line internal/php5/php5.y:3364 { yyVAL.list = yyDollar[1].list @@ -5589,7 +5604,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3355 + // line internal/php5/php5.y:3370 { yyVAL.list = yyDollar[1].list @@ -5597,7 +5612,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3364 + // line internal/php5/php5.y:3379 { yyVAL.list = nil @@ -5605,7 +5620,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3370 + // line internal/php5/php5.y:3385 { yyVAL.list = yyDollar[1].list @@ -5613,7 +5628,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3379 + // line internal/php5/php5.y:3394 { if yyDollar[3].node != nil { @@ -5631,7 +5646,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3398 + // line internal/php5/php5.y:3413 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5650,7 +5665,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3415 + // line internal/php5/php5.y:3430 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5665,7 +5680,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3428 + // line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5681,7 +5696,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3442 + // line internal/php5/php5.y:3457 { var _new *ast.ExprNew @@ -5710,7 +5725,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3469 + // line internal/php5/php5.y:3484 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5724,7 +5739,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3481 + // line internal/php5/php5.y:3496 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5738,7 +5753,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3493 + // line internal/php5/php5.y:3508 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5753,7 +5768,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3506 + // line internal/php5/php5.y:3521 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5768,7 +5783,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3519 + // line internal/php5/php5.y:3534 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5783,7 +5798,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3532 + // line internal/php5/php5.y:3547 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5798,7 +5813,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3545 + // line internal/php5/php5.y:3560 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5828,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3558 + // line internal/php5/php5.y:3573 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5828,7 +5843,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3571 + // line internal/php5/php5.y:3586 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5843,7 +5858,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3584 + // line internal/php5/php5.y:3599 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5858,7 +5873,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3597 + // line internal/php5/php5.y:3612 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5873,7 +5888,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3610 + // line internal/php5/php5.y:3625 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5888,7 +5903,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3623 + // line internal/php5/php5.y:3638 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5903,7 +5918,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3636 + // line internal/php5/php5.y:3651 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5918,7 +5933,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3649 + // line internal/php5/php5.y:3664 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5932,7 +5947,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3661 + // line internal/php5/php5.y:3676 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5947,7 +5962,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3674 + // line internal/php5/php5.y:3689 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5961,7 +5976,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3686 + // line internal/php5/php5.y:3701 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5976,7 +5991,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3699 + // line internal/php5/php5.y:3714 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5991,7 +6006,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3712 + // line internal/php5/php5.y:3727 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6006,7 +6021,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3725 + // line internal/php5/php5.y:3740 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6021,7 +6036,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3738 + // line internal/php5/php5.y:3753 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6036,7 +6051,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3751 + // line internal/php5/php5.y:3766 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6051,7 +6066,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3764 + // line internal/php5/php5.y:3779 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6066,7 +6081,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3777 + // line internal/php5/php5.y:3792 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6081,7 +6096,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3790 + // line internal/php5/php5.y:3805 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6096,7 +6111,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3803 + // line internal/php5/php5.y:3818 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6111,7 +6126,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3816 + // line internal/php5/php5.y:3831 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6126,7 +6141,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3829 + // line internal/php5/php5.y:3844 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6141,7 +6156,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3842 + // line internal/php5/php5.y:3857 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6156,7 +6171,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3855 + // line internal/php5/php5.y:3870 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6171,7 +6186,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3868 + // line internal/php5/php5.y:3883 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6186,7 +6201,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3881 + // line internal/php5/php5.y:3896 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6201,7 +6216,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3894 + // line internal/php5/php5.y:3909 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6216,7 +6231,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3907 + // line internal/php5/php5.y:3922 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6230,7 +6245,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3919 + // line internal/php5/php5.y:3934 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6244,7 +6259,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3931 + // line internal/php5/php5.y:3946 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6258,7 +6273,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3943 + // line internal/php5/php5.y:3958 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6272,7 +6287,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3955 + // line internal/php5/php5.y:3970 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6287,7 +6302,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3968 + // line internal/php5/php5.y:3983 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6302,7 +6317,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3981 + // line internal/php5/php5.y:3996 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6317,7 +6332,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3994 + // line internal/php5/php5.y:4009 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6333,7 +6348,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4008 + // line internal/php5/php5.y:4023 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6348,7 +6363,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4021 + // line internal/php5/php5.y:4036 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6363,7 +6378,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4034 + // line internal/php5/php5.y:4049 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6378,7 +6393,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4047 + // line internal/php5/php5.y:4062 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6393,7 +6408,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4060 + // line internal/php5/php5.y:4075 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6408,7 +6423,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4073 + // line internal/php5/php5.y:4088 { yyVAL.node = yyDollar[1].node @@ -6421,7 +6436,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4082 + // line internal/php5/php5.y:4097 { yyVAL.node = yyDollar[1].node @@ -6429,7 +6444,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4088 + // line internal/php5/php5.y:4103 { yyVAL.node = yyDollar[2].node @@ -6463,7 +6478,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4120 + // line internal/php5/php5.y:4135 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6479,7 +6494,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4134 + // line internal/php5/php5.y:4149 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6495,7 +6510,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4148 + // line internal/php5/php5.y:4163 { yyVAL.node = yyDollar[1].node @@ -6503,7 +6518,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4154 + // line internal/php5/php5.y:4169 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6518,7 +6533,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4167 + // line internal/php5/php5.y:4182 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6533,7 +6548,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4180 + // line internal/php5/php5.y:4195 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6548,7 +6563,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4193 + // line internal/php5/php5.y:4208 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6563,7 +6578,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4206 + // line internal/php5/php5.y:4221 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6578,7 +6593,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4219 + // line internal/php5/php5.y:4234 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6593,7 +6608,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4232 + // line internal/php5/php5.y:4247 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6608,7 +6623,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4245 + // line internal/php5/php5.y:4260 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6631,7 +6646,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4266 + // line internal/php5/php5.y:4281 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6645,7 +6660,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4293 { yyVAL.node = yyDollar[1].node @@ -6653,7 +6668,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4299 { yyVAL.node = yyDollar[1].node @@ -6661,7 +6676,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4290 + // line internal/php5/php5.y:4305 { yyVAL.node = yyDollar[1].node @@ -6669,7 +6684,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4296 + // line internal/php5/php5.y:4311 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6683,7 +6698,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4308 + // line internal/php5/php5.y:4323 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6697,7 +6712,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4320 + // line internal/php5/php5.y:4335 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6711,7 +6726,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4332 + // line internal/php5/php5.y:4347 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6740,7 +6755,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4358 + // line internal/php5/php5.y:4373 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6770,7 +6785,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4388 + // line internal/php5/php5.y:4403 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6784,7 +6799,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4400 + // line internal/php5/php5.y:4415 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6798,7 +6813,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4412 + // line internal/php5/php5.y:4427 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6813,7 +6828,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4425 + // line internal/php5/php5.y:4440 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6828,7 +6843,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4441 + // line internal/php5/php5.y:4456 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6843,7 +6858,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4454 + // line internal/php5/php5.y:4469 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6858,7 +6873,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4467 + // line internal/php5/php5.y:4482 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6876,7 +6891,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4483 + // line internal/php5/php5.y:4498 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6891,7 +6906,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4499 + // line internal/php5/php5.y:4514 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6907,7 +6922,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4513 + // line internal/php5/php5.y:4528 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6922,13 +6937,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4529 + // line internal/php5/php5.y:4544 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4536 + // line internal/php5/php5.y:4551 { yyVAL.ClosureUse = nil @@ -6936,7 +6951,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4542 + // line internal/php5/php5.y:4557 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6952,7 +6967,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4559 + // line internal/php5/php5.y:4574 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6970,7 +6985,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4575 + // line internal/php5/php5.y:4590 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6991,7 +7006,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4594 + // line internal/php5/php5.y:4609 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7008,7 +7023,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4609 + // line internal/php5/php5.y:4624 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7028,7 +7043,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4630 + // line internal/php5/php5.y:4645 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7041,7 +7056,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4641 + // line internal/php5/php5.y:4656 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7058,7 +7073,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4656 + // line internal/php5/php5.y:4671 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7074,7 +7089,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4670 + // line internal/php5/php5.y:4685 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7089,7 +7104,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4683 + // line internal/php5/php5.y:4698 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7104,7 +7119,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4696 + // line internal/php5/php5.y:4711 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7119,7 +7134,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4709 + // line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7134,7 +7149,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4722 + // line internal/php5/php5.y:4737 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7148,7 +7163,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4737 + // line internal/php5/php5.y:4752 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7162,7 +7177,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4749 + // line internal/php5/php5.y:4764 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7173,7 +7188,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4758 + // line internal/php5/php5.y:4773 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7188,7 +7203,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4771 + // line internal/php5/php5.y:4786 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7202,7 +7217,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4786 + // line internal/php5/php5.y:4801 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7213,7 +7228,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4795 + // line internal/php5/php5.y:4810 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7228,7 +7243,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4808 + // line internal/php5/php5.y:4823 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7242,7 +7257,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4823 + // line internal/php5/php5.y:4838 { yyVAL.node = yyDollar[1].node @@ -7250,7 +7265,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4829 + // line internal/php5/php5.y:4844 { yyVAL.node = yyDollar[1].node @@ -7258,7 +7273,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4838 + // line internal/php5/php5.y:4853 { yyVAL.node = yyDollar[1].node @@ -7301,7 +7316,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4879 + // line internal/php5/php5.y:4894 { yyVAL.node = yyDollar[1].node @@ -7309,7 +7324,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4889 + // line internal/php5/php5.y:4904 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7317,7 +7332,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4895 + // line internal/php5/php5.y:4910 { yyVAL.list = []ast.Vertex{} @@ -7325,7 +7340,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4905 + // line internal/php5/php5.y:4920 { yyVAL.list = yyDollar[2].list @@ -7336,7 +7351,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4917 + // line internal/php5/php5.y:4932 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7344,7 +7359,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4923 + // line internal/php5/php5.y:4938 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7359,7 +7374,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4936 + // line internal/php5/php5.y:4951 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7380,7 +7395,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4956 + // line internal/php5/php5.y:4971 { yyVAL.list = []ast.Vertex{} @@ -7388,7 +7403,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4962 + // line internal/php5/php5.y:4977 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7400,7 +7415,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4972 + // line internal/php5/php5.y:4987 { yyVAL.list = yyDollar[1].list @@ -7408,7 +7423,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4981 + // line internal/php5/php5.y:4996 { yyVAL.node = nil @@ -7416,7 +7431,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4987 + // line internal/php5/php5.y:5002 { yyVAL.node = yyDollar[1].node @@ -7424,7 +7439,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4996 + // line internal/php5/php5.y:5011 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7438,7 +7453,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5008 + // line internal/php5/php5.y:5023 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7452,7 +7467,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5020 + // line internal/php5/php5.y:5035 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7466,7 +7481,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5032 + // line internal/php5/php5.y:5047 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7480,7 +7495,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5059 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7494,7 +7509,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5056 + // line internal/php5/php5.y:5071 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7508,7 +7523,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5068 + // line internal/php5/php5.y:5083 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7522,7 +7537,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5080 + // line internal/php5/php5.y:5095 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7536,7 +7551,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5092 + // line internal/php5/php5.y:5107 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7550,7 +7565,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5104 + // line internal/php5/php5.y:5119 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7564,7 +7579,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5116 + // line internal/php5/php5.y:5131 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7580,7 +7595,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5130 + // line internal/php5/php5.y:5145 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7594,7 +7609,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5145 + // line internal/php5/php5.y:5160 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7612,7 +7627,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5164 + // line internal/php5/php5.y:5179 { yyVAL.node = yyDollar[1].node @@ -7620,7 +7635,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5173 + // line internal/php5/php5.y:5188 { yyVAL.node = yyDollar[1].node @@ -7628,7 +7643,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5179 + // line internal/php5/php5.y:5194 { yyVAL.node = yyDollar[1].node @@ -7636,7 +7651,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5185 + // line internal/php5/php5.y:5200 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7649,7 +7664,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5196 + // line internal/php5/php5.y:5211 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7666,7 +7681,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5211 + // line internal/php5/php5.y:5226 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7682,7 +7697,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5225 + // line internal/php5/php5.y:5240 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7698,7 +7713,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5239 + // line internal/php5/php5.y:5254 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7713,7 +7728,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5252 + // line internal/php5/php5.y:5267 { yyVAL.node = yyDollar[1].node @@ -7721,7 +7736,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5258 + // line internal/php5/php5.y:5273 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7735,7 +7750,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5270 + // line internal/php5/php5.y:5285 { yyVAL.node = yyDollar[1].node @@ -7743,7 +7758,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5279 + // line internal/php5/php5.y:5294 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7758,7 +7773,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5292 + // line internal/php5/php5.y:5307 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7773,7 +7788,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5305 + // line internal/php5/php5.y:5320 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7788,7 +7803,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5318 + // line internal/php5/php5.y:5333 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7803,7 +7818,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5331 + // line internal/php5/php5.y:5346 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7818,7 +7833,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5359 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7833,7 +7848,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5357 + // line internal/php5/php5.y:5372 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7848,7 +7863,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5370 + // line internal/php5/php5.y:5385 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7862,7 +7877,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5382 + // line internal/php5/php5.y:5397 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7876,7 +7891,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5394 + // line internal/php5/php5.y:5409 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7891,7 +7906,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5407 + // line internal/php5/php5.y:5422 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7906,7 +7921,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5420 + // line internal/php5/php5.y:5435 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7921,7 +7936,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5433 + // line internal/php5/php5.y:5448 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7936,7 +7951,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5446 + // line internal/php5/php5.y:5461 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7951,7 +7966,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5459 + // line internal/php5/php5.y:5474 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7966,7 +7981,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5472 + // line internal/php5/php5.y:5487 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7981,7 +7996,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5485 + // line internal/php5/php5.y:5500 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7996,7 +8011,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5498 + // line internal/php5/php5.y:5513 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8011,7 +8026,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5526 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8026,7 +8041,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5524 + // line internal/php5/php5.y:5539 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8041,7 +8056,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5537 + // line internal/php5/php5.y:5552 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8056,7 +8071,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5550 + // line internal/php5/php5.y:5565 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8071,7 +8086,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5563 + // line internal/php5/php5.y:5578 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8086,7 +8101,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5576 + // line internal/php5/php5.y:5591 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8102,7 +8117,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5590 + // line internal/php5/php5.y:5605 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8117,7 +8132,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5603 + // line internal/php5/php5.y:5618 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8132,7 +8147,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5616 + // line internal/php5/php5.y:5631 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8147,7 +8162,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5629 + // line internal/php5/php5.y:5644 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8162,7 +8177,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5642 + // line internal/php5/php5.y:5657 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8178,7 +8193,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5656 + // line internal/php5/php5.y:5671 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8194,7 +8209,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5670 + // line internal/php5/php5.y:5685 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8208,7 +8223,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5682 + // line internal/php5/php5.y:5697 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8222,7 +8237,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5694 + // line internal/php5/php5.y:5709 { yyVAL.node = yyDollar[2].node @@ -8234,7 +8249,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5707 + // line internal/php5/php5.y:5722 { yyVAL.node = yyDollar[1].node @@ -8242,7 +8257,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5713 + // line internal/php5/php5.y:5728 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8255,7 +8270,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5724 + // line internal/php5/php5.y:5739 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8272,7 +8287,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5739 + // line internal/php5/php5.y:5754 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8288,7 +8303,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5756 + // line internal/php5/php5.y:5771 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8304,7 +8319,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5770 + // line internal/php5/php5.y:5785 { yyVAL.node = yyDollar[1].node @@ -8312,7 +8327,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5776 + // line internal/php5/php5.y:5791 { yyVAL.node = yyDollar[1].node @@ -8320,7 +8335,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5782 + // line internal/php5/php5.y:5797 { yyVAL.node = yyDollar[1].node @@ -8328,7 +8343,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5788 + // line internal/php5/php5.y:5803 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8342,7 +8357,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5800 + // line internal/php5/php5.y:5815 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8356,7 +8371,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5812 + // line internal/php5/php5.y:5827 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8370,7 +8385,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5827 + // line internal/php5/php5.y:5842 { yyVAL.list = nil @@ -8378,7 +8393,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5833 + // line internal/php5/php5.y:5848 { yyVAL.list = yyDollar[1].list @@ -8391,19 +8406,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5847 + // line internal/php5/php5.y:5862 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5851 + // line internal/php5/php5.y:5866 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5858 + // line internal/php5/php5.y:5873 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8420,7 +8435,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5873 + // line internal/php5/php5.y:5888 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8436,7 +8451,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5887 + // line internal/php5/php5.y:5902 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8452,7 +8467,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5901 + // line internal/php5/php5.y:5916 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8467,7 +8482,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5917 + // line internal/php5/php5.y:5932 { yyVAL.node = yyDollar[1].node @@ -8475,7 +8490,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5923 + // line internal/php5/php5.y:5938 { yyVAL.node = yyDollar[1].node @@ -8483,7 +8498,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5932 + // line internal/php5/php5.y:5947 { yyVAL.node = yyDollar[2].node @@ -8501,7 +8516,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5948 + // line internal/php5/php5.y:5963 { yyVAL.node = yyDollar[2].node @@ -8519,7 +8534,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5968 + // line internal/php5/php5.y:5983 { yyVAL.node = yyDollar[1].node @@ -8527,7 +8542,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5978 + // line internal/php5/php5.y:5993 { yyVAL.node = yyDollar[1].node @@ -8535,7 +8550,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5987 + // line internal/php5/php5.y:6002 { yyVAL.node = yyDollar[1].node @@ -8543,7 +8558,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5996 + // line internal/php5/php5.y:6011 { yyVAL.node = yyDollar[1].node @@ -8603,7 +8618,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6054 + // line internal/php5/php5.y:6069 { yyVAL.node = yyDollar[1].node @@ -8611,7 +8626,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6063 + // line internal/php5/php5.y:6078 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8619,7 +8634,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6069 + // line internal/php5/php5.y:6084 { yyVAL.list = []ast.Vertex{} @@ -8627,7 +8642,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6079 + // line internal/php5/php5.y:6094 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8643,7 +8658,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6096 + // line internal/php5/php5.y:6111 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8659,7 +8674,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6110 + // line internal/php5/php5.y:6125 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8675,7 +8690,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6127 + // line internal/php5/php5.y:6142 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8686,7 +8701,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6139 + // line internal/php5/php5.y:6154 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8694,7 +8709,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6145 + // line internal/php5/php5.y:6160 { yyVAL.list = yyDollar[1].list @@ -8702,7 +8717,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6151 + // line internal/php5/php5.y:6166 { yyVAL.list = nil @@ -8710,7 +8725,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6160 + // line internal/php5/php5.y:6175 { yyVAL.node = yyDollar[1].node @@ -8718,7 +8733,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6166 + // line internal/php5/php5.y:6181 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8732,7 +8747,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6196 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8747,7 +8762,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6194 + // line internal/php5/php5.y:6209 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8762,7 +8777,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6210 + // line internal/php5/php5.y:6225 { yyVAL.node = yyDollar[1].node @@ -8770,7 +8785,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6219 + // line internal/php5/php5.y:6234 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8785,7 +8800,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6232 + // line internal/php5/php5.y:6247 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8800,7 +8815,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6248 + // line internal/php5/php5.y:6263 { yyVAL.node = yyDollar[1].node @@ -8808,7 +8823,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6254 + // line internal/php5/php5.y:6269 { yyVAL.node = yyDollar[1].node @@ -8816,7 +8831,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6260 + // line internal/php5/php5.y:6275 { yyVAL.node = yyDollar[1].node @@ -8824,7 +8839,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6270 + // line internal/php5/php5.y:6285 { yyVAL.node = yyDollar[1].node @@ -8832,7 +8847,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6276 + // line internal/php5/php5.y:6291 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8846,7 +8861,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6288 + // line internal/php5/php5.y:6303 { yyVAL.node = yyDollar[1].node @@ -8854,7 +8869,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6297 + // line internal/php5/php5.y:6312 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8869,7 +8884,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6310 + // line internal/php5/php5.y:6325 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8884,7 +8899,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6323 + // line internal/php5/php5.y:6338 { yyVAL.node = yyDollar[1].node @@ -8892,7 +8907,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6333 + // line internal/php5/php5.y:6348 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8908,7 +8923,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6347 + // line internal/php5/php5.y:6362 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8924,7 +8939,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6364 + // line internal/php5/php5.y:6379 { yyVAL.node = nil @@ -8932,7 +8947,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6370 + // line internal/php5/php5.y:6385 { yyVAL.node = yyDollar[1].node @@ -8940,7 +8955,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6380 + // line internal/php5/php5.y:6395 { yyVAL.list = yyDollar[1].list @@ -8948,7 +8963,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6386 + // line internal/php5/php5.y:6401 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8960,7 +8975,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6399 + // line internal/php5/php5.y:6414 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8976,7 +8991,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6413 + // line internal/php5/php5.y:6428 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8992,7 +9007,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6427 + // line internal/php5/php5.y:6442 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9004,7 +9019,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6440 + // line internal/php5/php5.y:6455 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -9018,7 +9033,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6452 + // line internal/php5/php5.y:6467 { yyVAL.node = yyDollar[2].node @@ -9033,7 +9048,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6468 + // line internal/php5/php5.y:6483 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9048,7 +9063,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6481 + // line internal/php5/php5.y:6496 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9067,7 +9082,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6501 + // line internal/php5/php5.y:6516 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9082,7 +9097,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6514 + // line internal/php5/php5.y:6529 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9094,7 +9109,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6528 + // line internal/php5/php5.y:6543 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9108,7 +9123,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6540 + // line internal/php5/php5.y:6555 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9126,7 +9141,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6556 + // line internal/php5/php5.y:6571 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9134,7 +9149,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6566 + // line internal/php5/php5.y:6581 { yyVAL.list = []ast.Vertex{} @@ -9142,7 +9157,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6572 + // line internal/php5/php5.y:6587 { yyVAL.list = yyDollar[1].list @@ -9159,7 +9174,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6590 + // line internal/php5/php5.y:6605 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9176,7 +9191,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6605 + // line internal/php5/php5.y:6620 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9192,7 +9207,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6619 + // line internal/php5/php5.y:6634 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9208,7 +9223,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6633 + // line internal/php5/php5.y:6648 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9223,7 +9238,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6646 + // line internal/php5/php5.y:6661 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9243,7 +9258,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6664 + // line internal/php5/php5.y:6679 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9261,7 +9276,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6680 + // line internal/php5/php5.y:6695 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9280,7 +9295,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6697 + // line internal/php5/php5.y:6712 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9297,7 +9312,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6715 + // line internal/php5/php5.y:6730 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9305,7 +9320,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6721 + // line internal/php5/php5.y:6736 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9320,7 +9335,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6734 + // line internal/php5/php5.y:6749 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9328,7 +9343,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6740 + // line internal/php5/php5.y:6755 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9343,7 +9358,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6756 + // line internal/php5/php5.y:6771 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9359,7 +9374,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6770 + // line internal/php5/php5.y:6785 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9378,7 +9393,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6787 + // line internal/php5/php5.y:6802 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9399,7 +9414,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6806 + // line internal/php5/php5.y:6821 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9416,7 +9431,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6821 + // line internal/php5/php5.y:6836 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9435,7 +9450,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6838 + // line internal/php5/php5.y:6853 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9456,7 +9471,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6857 + // line internal/php5/php5.y:6872 { yyVAL.node = yyDollar[2].node @@ -9468,7 +9483,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6870 + // line internal/php5/php5.y:6885 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9482,7 +9497,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6882 + // line internal/php5/php5.y:6897 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9501,7 +9516,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6899 + // line internal/php5/php5.y:6914 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9517,7 +9532,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6916 + // line internal/php5/php5.y:6931 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9533,7 +9548,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6930 + // line internal/php5/php5.y:6945 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9549,7 +9564,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6944 + // line internal/php5/php5.y:6959 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9565,7 +9580,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6958 + // line internal/php5/php5.y:6973 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9579,7 +9594,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6970 + // line internal/php5/php5.y:6985 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9593,7 +9608,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6982 + // line internal/php5/php5.y:6997 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9609,7 +9624,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6996 + // line internal/php5/php5.y:7011 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9623,7 +9638,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7008 + // line internal/php5/php5.y:7023 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9637,7 +9652,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7023 + // line internal/php5/php5.y:7038 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9645,7 +9660,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7029 + // line internal/php5/php5.y:7044 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9656,7 +9671,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7041 + // line internal/php5/php5.y:7056 { yyVAL.node = yyDollar[1].node @@ -9664,7 +9679,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7047 + // line internal/php5/php5.y:7062 { yyVAL.node = yyDollar[1].node @@ -9672,7 +9687,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7056 + // line internal/php5/php5.y:7071 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9690,7 +9705,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7072 + // line internal/php5/php5.y:7087 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9708,7 +9723,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7091 + // line internal/php5/php5.y:7106 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9726,7 +9741,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7110 + // line internal/php5/php5.y:7125 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 23864be..d17ba27 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -930,24 +930,33 @@ unticked_statement: } | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { + exprBrackets := &ast.ParserBrackets{ast.Node{}, $2} stmts := &ast.StmtStmtList{ast.Node{}, $4} - $$ = &ast.StmtAltIf{ast.Node{}, $2, stmts, $5, $6} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + $$ = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, $5, $6} // save position + exprBrackets.GetNode().Position = position.NewNodePosition($2) stmts.GetNode().Position = position.NewNodeListPosition($4) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($3, $4) $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.GetNode().Tokens[token.OpenParenthesisToken]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $2.GetNode().Tokens[token.CloseParenthesisToken]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) + } + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.Tokens) + if $6 != nil { + yylex.(*Parser).setFreeFloating($6.(*ast.StmtAltElse).Stmt, token.End, append($7.Tokens, $8.Tokens...)) + } else if len($5) > 0 { + yylex.(*Parser).setFreeFloating($5[len($5)-1].(*ast.StmtAltElseIf).Stmt, token.End, append($7.Tokens, $8.Tokens...)) + } else { + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append($7.Tokens, $8.Tokens...)) } - yylex.(*Parser).setFreeFloating($$, token.Cond, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $8.Tokens) yylex.(*Parser).setToken($$, token.SemiColon, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2175,23 +2184,27 @@ new_elseif_list: } | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} stmts := &ast.StmtStmtList{ast.Node{}, $5} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, $3, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} $$ = append($1, _elseIf) // save position + exprBrackets.GetNode().Position = position.NewNodePosition($3) stmts.GetNode().Position = position.NewNodeListPosition($5) + exprBrackets.GetNode().Position = position.NewTokenNodeListPosition($4, $5) _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) if len($3.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.GetNode().Tokens[token.OpenParenthesisToken]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) } if len($3.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.Expr, $3.GetNode().Tokens[token.CloseParenthesisToken][:len($3.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $3.GetNode().Tokens[token.CloseParenthesisToken]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2230,15 +2243,17 @@ new_else_single: | T_ELSE ':' inner_statement_list { stmts := &ast.StmtStmtList{ast.Node{}, $3} - $$ = &ast.StmtAltElse{ast.Node{}, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + $$ = &ast.StmtAltElse{ast.Node{}, stmtsBrackets} // save position stmts.GetNode().Position = position.NewNodeListPosition($3) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($2, $3) $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Else, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 1cf81e7..0c50734 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5623 +// line internal/php7/php7.y:5636 // line yacctab:1 var yyExca = [...]int{ @@ -4422,46 +4422,54 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] // line internal/php7/php7.y:2039 { + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} - yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + yyVAL.node = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, nil, nil} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[6].list) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[5].token, yyDollar[6].list) yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2056 + // line internal/php7/php7.y:2060 { + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} yyDollar[1].node.(*ast.StmtAltIf).ElseIf = append(yyDollar[1].node.(*ast.StmtAltIf).ElseIf, _elseIf) yyVAL.node = yyDollar[1].node // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[5].token) stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[7].list) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[6].token, yyDollar[7].list) _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2079 + // line internal/php7/php7.y:2087 { yyVAL.node = yyDollar[1].node @@ -4469,39 +4477,44 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[3].token.Tokens) + altif := yyVAL.node.(*ast.StmtAltIf) + if len(altif.ElseIf) > 0 { + yylex.(*Parser).setFreeFloating(altif.ElseIf[len(altif.ElseIf)-1], token.End, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) + } else { + yylex.(*Parser).setFreeFloating(altif.Stmt, token.End, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) + } yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2093 + // line internal/php7/php7.y:2105 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} - _else := &ast.StmtAltElse{ast.Node{}, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _else := &ast.StmtAltElse{ast.Node{}, stmtsBrackets} yyDollar[1].node.(*ast.StmtAltIf).Else = _else yyVAL.node = yyDollar[1].node // save position stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) + stmtsBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[5].token) _else.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) // save comments yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_else, token.Else, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2118 + // line internal/php7/php7.y:2131 { yyVAL.list = yyDollar[1].list @@ -4509,7 +4522,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2124 + // line internal/php7/php7.y:2137 { yyVAL.list = nil @@ -4517,7 +4530,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2146 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4525,7 +4538,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2139 + // line internal/php7/php7.y:2152 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4536,7 +4549,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2151 + // line internal/php7/php7.y:2164 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4574,7 +4587,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2187 + // line internal/php7/php7.y:2200 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4613,7 +4626,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2227 + // line internal/php7/php7.y:2240 { yyVAL.node = nil @@ -4621,7 +4634,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2233 + // line internal/php7/php7.y:2246 { yyVAL.node = yyDollar[1].node @@ -4629,7 +4642,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2242 + // line internal/php7/php7.y:2255 { yyVAL.node = yyDollar[1].node @@ -4637,7 +4650,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2248 + // line internal/php7/php7.y:2261 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4651,7 +4664,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2263 + // line internal/php7/php7.y:2276 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4665,7 +4678,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2275 + // line internal/php7/php7.y:2288 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4679,7 +4692,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2287 + // line internal/php7/php7.y:2300 { yyVAL.node = yyDollar[1].node @@ -4687,7 +4700,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2296 + // line internal/php7/php7.y:2309 { yyVAL.node = nil @@ -4695,7 +4708,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2302 + // line internal/php7/php7.y:2315 { yyVAL.node = yyDollar[2].node @@ -4706,7 +4719,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2314 + // line internal/php7/php7.y:2327 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4721,7 +4734,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2327 + // line internal/php7/php7.y:2340 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4740,7 +4753,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2347 + // line internal/php7/php7.y:2360 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4748,7 +4761,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2353 + // line internal/php7/php7.y:2366 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4759,7 +4772,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2365 + // line internal/php7/php7.y:2378 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4773,7 +4786,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2377 + // line internal/php7/php7.y:2390 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4787,7 +4800,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2392 + // line internal/php7/php7.y:2405 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4798,7 +4811,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2401 + // line internal/php7/php7.y:2414 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4806,7 +4819,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2410 + // line internal/php7/php7.y:2423 { yyVAL.node = yyDollar[1].node @@ -4814,7 +4827,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2419 + // line internal/php7/php7.y:2432 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4825,7 +4838,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2428 + // line internal/php7/php7.y:2441 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4833,7 +4846,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2437 + // line internal/php7/php7.y:2450 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4851,7 +4864,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2453 + // line internal/php7/php7.y:2466 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4870,7 +4883,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2473 + // line internal/php7/php7.y:2486 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4878,7 +4891,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2479 + // line internal/php7/php7.y:2492 { yyVAL.list = []ast.Vertex{} @@ -4886,7 +4899,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2488 + // line internal/php7/php7.y:2501 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4902,7 +4915,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2502 + // line internal/php7/php7.y:2515 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4923,7 +4936,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2521 + // line internal/php7/php7.y:2534 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4937,7 +4950,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2533 + // line internal/php7/php7.y:2546 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4970,7 +4983,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2567 + // line internal/php7/php7.y:2580 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4978,7 +4991,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2573 + // line internal/php7/php7.y:2586 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4989,7 +5002,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2585 + // line internal/php7/php7.y:2598 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5003,7 +5016,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2598 + // line internal/php7/php7.y:2611 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -5017,7 +5030,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2623 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5031,7 +5044,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2625 + // line internal/php7/php7.y:2638 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5039,7 +5052,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2644 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5047,7 +5060,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2640 + // line internal/php7/php7.y:2653 { yyVAL.node = yyDollar[1].node @@ -5059,7 +5072,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2650 + // line internal/php7/php7.y:2663 { yyVAL.node = yyDollar[1].node @@ -5071,7 +5084,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2663 + // line internal/php7/php7.y:2676 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5086,7 +5099,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2679 + // line internal/php7/php7.y:2692 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5104,7 +5117,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2695 + // line internal/php7/php7.y:2708 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5122,7 +5135,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2711 + // line internal/php7/php7.y:2724 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5140,7 +5153,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2727 + // line internal/php7/php7.y:2740 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5155,7 +5168,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2743 + // line internal/php7/php7.y:2756 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5171,7 +5184,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2757 + // line internal/php7/php7.y:2770 { yyVAL.node = yyDollar[1].node @@ -5179,7 +5192,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2766 + // line internal/php7/php7.y:2779 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5197,7 +5210,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2785 + // line internal/php7/php7.y:2798 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5212,7 +5225,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2798 + // line internal/php7/php7.y:2811 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5227,7 +5240,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2814 + // line internal/php7/php7.y:2827 { yyVAL.list = yyDollar[1].list @@ -5235,7 +5248,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2820 + // line internal/php7/php7.y:2833 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5250,7 +5263,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2836 + // line internal/php7/php7.y:2849 { yyVAL.list = nil @@ -5258,7 +5271,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2842 + // line internal/php7/php7.y:2855 { yyVAL.list = yyDollar[1].list @@ -5266,7 +5279,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2851 + // line internal/php7/php7.y:2864 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5274,7 +5287,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2857 + // line internal/php7/php7.y:2870 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5282,7 +5295,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2866 + // line internal/php7/php7.y:2879 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5296,7 +5309,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2891 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5310,7 +5323,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2890 + // line internal/php7/php7.y:2903 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5324,7 +5337,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2902 + // line internal/php7/php7.y:2915 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5338,7 +5351,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2914 + // line internal/php7/php7.y:2927 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5352,7 +5365,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2926 + // line internal/php7/php7.y:2939 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5366,7 +5379,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2941 + // line internal/php7/php7.y:2954 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5377,7 +5390,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2950 + // line internal/php7/php7.y:2963 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5385,7 +5398,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2959 + // line internal/php7/php7.y:2972 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5403,7 +5416,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2975 + // line internal/php7/php7.y:2988 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5422,7 +5435,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2995 + // line internal/php7/php7.y:3008 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5433,7 +5446,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3004 + // line internal/php7/php7.y:3017 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5441,7 +5454,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3013 + // line internal/php7/php7.y:3026 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5458,7 +5471,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3031 + // line internal/php7/php7.y:3044 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5475,7 +5488,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3049 + // line internal/php7/php7.y:3062 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5486,7 +5499,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3058 + // line internal/php7/php7.y:3071 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5494,7 +5507,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3067 + // line internal/php7/php7.y:3080 { yyVAL.node = yyDollar[1].node @@ -5502,7 +5515,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3076 + // line internal/php7/php7.y:3089 { yyVAL.list = nil @@ -5510,7 +5523,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3082 + // line internal/php7/php7.y:3095 { yyVAL.list = yyDollar[1].list @@ -5518,7 +5531,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3091 + // line internal/php7/php7.y:3104 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5529,7 +5542,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3100 + // line internal/php7/php7.y:3113 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5537,7 +5550,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3109 + // line internal/php7/php7.y:3122 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5557,7 +5570,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3130 + // line internal/php7/php7.y:3143 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5574,7 +5587,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3145 + // line internal/php7/php7.y:3158 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5588,7 +5601,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3160 + // line internal/php7/php7.y:3173 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5607,7 +5620,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3177 + // line internal/php7/php7.y:3190 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5625,7 +5638,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3193 + // line internal/php7/php7.y:3206 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5640,7 +5653,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5656,7 +5669,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3220 + // line internal/php7/php7.y:3233 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5670,7 +5683,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3232 + // line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5685,7 +5698,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5700,7 +5713,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3271 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5715,7 +5728,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3284 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5730,7 +5743,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3284 + // line internal/php7/php7.y:3297 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5745,7 +5758,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3297 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5760,7 +5773,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5775,7 +5788,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5790,7 +5803,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3349 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5818,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3349 + // line internal/php7/php7.y:3362 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5833,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3362 + // line internal/php7/php7.y:3375 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5835,7 +5848,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3375 + // line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5850,7 +5863,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3401 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,7 +5878,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3401 + // line internal/php7/php7.y:3414 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5880,7 +5893,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3414 + // line internal/php7/php7.y:3427 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5894,7 +5907,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3426 + // line internal/php7/php7.y:3439 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5909,7 +5922,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3439 + // line internal/php7/php7.y:3452 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5923,7 +5936,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3451 + // line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5938,7 +5951,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5953,7 +5966,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5968,7 +5981,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3503 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5983,7 +5996,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3516 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5998,7 +6011,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3529 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6013,7 +6026,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6028,7 +6041,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6043,7 +6056,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3568 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6058,7 +6071,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3581 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6073,7 +6086,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3594 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6088,7 +6101,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6103,7 +6116,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3620 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6118,7 +6131,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3633 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6133,7 +6146,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3633 + // line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6148,7 +6161,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3659 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6163,7 +6176,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3672 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6178,7 +6191,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3672 + // line internal/php7/php7.y:3685 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6192,7 +6205,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3684 + // line internal/php7/php7.y:3697 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6206,7 +6219,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3696 + // line internal/php7/php7.y:3709 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6220,7 +6233,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3708 + // line internal/php7/php7.y:3721 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6234,7 +6247,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3720 + // line internal/php7/php7.y:3733 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6249,7 +6262,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3733 + // line internal/php7/php7.y:3746 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6264,7 +6277,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3759 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6279,7 +6292,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3759 + // line internal/php7/php7.y:3772 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6295,7 +6308,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3773 + // line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6310,7 +6323,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3799 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6325,7 +6338,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3812 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6340,7 +6353,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3825 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6355,7 +6368,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3838 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6370,7 +6383,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3838 + // line internal/php7/php7.y:3851 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6385,7 +6398,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3851 + // line internal/php7/php7.y:3864 { yyVAL.node = yyDollar[2].node @@ -6397,7 +6410,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3861 + // line internal/php7/php7.y:3874 { yyVAL.node = yyDollar[1].node @@ -6405,7 +6418,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3867 + // line internal/php7/php7.y:3880 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6421,7 +6434,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3881 + // line internal/php7/php7.y:3894 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6437,7 +6450,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3895 + // line internal/php7/php7.y:3908 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6452,7 +6465,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3921 { yyVAL.node = yyDollar[1].node @@ -6460,7 +6473,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3914 + // line internal/php7/php7.y:3927 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6475,7 +6488,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3940 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6490,7 +6503,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3940 + // line internal/php7/php7.y:3953 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6505,7 +6518,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6520,7 +6533,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3979 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6535,7 +6548,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3992 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6550,7 +6563,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3992 + // line internal/php7/php7.y:4005 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6565,7 +6578,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4005 + // line internal/php7/php7.y:4018 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6594,7 +6607,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4032 + // line internal/php7/php7.y:4045 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6608,7 +6621,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4044 + // line internal/php7/php7.y:4057 { yyVAL.node = yyDollar[1].node @@ -6616,7 +6629,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4050 + // line internal/php7/php7.y:4063 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6630,7 +6643,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4062 + // line internal/php7/php7.y:4075 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6644,7 +6657,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4074 + // line internal/php7/php7.y:4087 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6658,7 +6671,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4086 + // line internal/php7/php7.y:4099 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6672,7 +6685,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4098 + // line internal/php7/php7.y:4111 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6687,7 +6700,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4111 + // line internal/php7/php7.y:4124 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6701,7 +6714,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4123 + // line internal/php7/php7.y:4136 { yyVAL.node = yyDollar[1].node @@ -6709,7 +6722,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4129 + // line internal/php7/php7.y:4142 { yyVAL.node = yyDollar[2].node @@ -6732,7 +6745,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4152 + // line internal/php7/php7.y:4165 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6765,7 +6778,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4181 + // line internal/php7/php7.y:4194 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6793,19 +6806,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4213 + // line internal/php7/php7.y:4226 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4217 + // line internal/php7/php7.y:4230 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4224 + // line internal/php7/php7.y:4237 { yyVAL.ClosureUse = nil @@ -6813,7 +6826,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4230 + // line internal/php7/php7.y:4243 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6829,7 +6842,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4260 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6840,7 +6853,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4256 + // line internal/php7/php7.y:4269 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6848,7 +6861,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4265 + // line internal/php7/php7.y:4278 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6864,7 +6877,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4279 + // line internal/php7/php7.y:4292 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6883,7 +6896,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4299 + // line internal/php7/php7.y:4312 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6896,21 +6909,6 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 385: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4311 - { - yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 386: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4324 { @@ -6923,11 +6921,26 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 386: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:4337 + { + yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} + + // save position + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4337 + // line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6941,7 +6954,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4352 + // line internal/php7/php7.y:4365 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6955,7 +6968,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4364 + // line internal/php7/php7.y:4377 { yyVAL.node = yyDollar[1].node @@ -6963,7 +6976,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4373 + // line internal/php7/php7.y:4386 { yyVAL.node = yyDollar[1].node @@ -6971,7 +6984,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4379 + // line internal/php7/php7.y:4392 { yyVAL.node = yyDollar[1].node @@ -6979,7 +6992,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4388 + // line internal/php7/php7.y:4401 { yyVAL.node = nil @@ -6987,7 +7000,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4394 + // line internal/php7/php7.y:4407 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -7002,7 +7015,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4410 + // line internal/php7/php7.y:4423 { yyVAL.list = []ast.Vertex{} @@ -7010,7 +7023,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4416 + // line internal/php7/php7.y:4429 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7022,7 +7035,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4426 + // line internal/php7/php7.y:4439 { yyVAL.list = yyDollar[1].list @@ -7030,7 +7043,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4435 + // line internal/php7/php7.y:4448 { yyVAL.node = nil @@ -7038,7 +7051,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4441 + // line internal/php7/php7.y:4454 { yyVAL.node = yyDollar[1].node @@ -7046,7 +7059,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4450 + // line internal/php7/php7.y:4463 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7062,7 +7075,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4464 + // line internal/php7/php7.y:4477 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7077,7 +7090,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4490 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7091,7 +7104,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4492 + // line internal/php7/php7.y:4505 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7105,7 +7118,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4504 + // line internal/php7/php7.y:4517 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7119,7 +7132,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4516 + // line internal/php7/php7.y:4529 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7133,7 +7146,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4528 + // line internal/php7/php7.y:4541 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7147,7 +7160,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4540 + // line internal/php7/php7.y:4553 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7161,7 +7174,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4552 + // line internal/php7/php7.y:4565 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7175,7 +7188,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4564 + // line internal/php7/php7.y:4577 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7189,7 +7202,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4576 + // line internal/php7/php7.y:4589 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7203,7 +7216,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4588 + // line internal/php7/php7.y:4601 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7217,7 +7230,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4600 + // line internal/php7/php7.y:4613 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7231,7 +7244,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4612 + // line internal/php7/php7.y:4625 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7247,7 +7260,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4626 + // line internal/php7/php7.y:4639 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7261,7 +7274,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4638 + // line internal/php7/php7.y:4651 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7275,7 +7288,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4650 + // line internal/php7/php7.y:4663 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7289,7 +7302,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4662 + // line internal/php7/php7.y:4675 { yyVAL.node = yyDollar[1].node @@ -7297,7 +7310,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4668 + // line internal/php7/php7.y:4681 { yyVAL.node = yyDollar[1].node @@ -7305,7 +7318,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4677 + // line internal/php7/php7.y:4690 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7319,7 +7332,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4689 + // line internal/php7/php7.y:4702 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7337,7 +7350,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4705 + // line internal/php7/php7.y:4718 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7355,7 +7368,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4724 + // line internal/php7/php7.y:4737 { yyVAL.node = yyDollar[1].node @@ -7363,7 +7376,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4730 + // line internal/php7/php7.y:4743 { yyVAL.node = yyDollar[1].node @@ -7371,7 +7384,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4739 + // line internal/php7/php7.y:4752 { yyVAL.node = nil @@ -7379,7 +7392,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4745 + // line internal/php7/php7.y:4758 { yyVAL.node = yyDollar[1].node @@ -7387,7 +7400,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4754 + // line internal/php7/php7.y:4767 { yyVAL.node = yyDollar[1].node @@ -7395,7 +7408,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4763 + // line internal/php7/php7.y:4776 { yyVAL.node = yyDollar[1].node @@ -7403,7 +7416,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4769 + // line internal/php7/php7.y:4782 { yyVAL.node = yyDollar[2].node @@ -7415,7 +7428,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4779 + // line internal/php7/php7.y:4792 { yyVAL.node = yyDollar[1].node @@ -7423,7 +7436,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4788 + // line internal/php7/php7.y:4801 { yyVAL.node = yyDollar[1].node @@ -7431,7 +7444,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4794 + // line internal/php7/php7.y:4807 { yyVAL.node = yyDollar[2].node @@ -7443,7 +7456,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4804 + // line internal/php7/php7.y:4817 { yyVAL.node = yyDollar[1].node @@ -7451,28 +7464,13 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4813 + // line internal/php7/php7.y:4826 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4819 - { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4832 { @@ -7487,7 +7485,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 435: + case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4845 { @@ -7502,9 +7500,24 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 436: + case 435: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4858 + { + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 436: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:4871 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7519,7 +7532,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4871 + // line internal/php7/php7.y:4884 { yyVAL.node = yyDollar[1].node @@ -7527,7 +7540,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4880 + // line internal/php7/php7.y:4893 { yyVAL.node = yyDollar[1].node @@ -7535,7 +7548,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4886 + // line internal/php7/php7.y:4899 { yyVAL.node = yyDollar[1].node @@ -7543,7 +7556,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4892 + // line internal/php7/php7.y:4905 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7558,7 +7571,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4908 + // line internal/php7/php7.y:4921 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7574,7 +7587,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4922 + // line internal/php7/php7.y:4935 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7590,7 +7603,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4936 + // line internal/php7/php7.y:4949 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7603,21 +7616,6 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: - yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4951 - { - yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 445: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:4964 { @@ -7630,32 +7628,32 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 445: + yyDollar = yyS[yypt-3 : yypt+1] + // line internal/php7/php7.y:4977 + { + yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4980 + // line internal/php7/php7.y:4993 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 447: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4986 - { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 448: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4999 { @@ -7668,11 +7666,26 @@ yydefault: yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 448: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:5012 + { + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5012 + // line internal/php7/php7.y:5025 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7687,7 +7700,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5025 + // line internal/php7/php7.y:5038 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7702,7 +7715,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5038 + // line internal/php7/php7.y:5051 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7717,7 +7730,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5054 + // line internal/php7/php7.y:5067 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7731,7 +7744,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5066 + // line internal/php7/php7.y:5079 { yyVAL.node = yyDollar[2].node @@ -7743,7 +7756,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5076 + // line internal/php7/php7.y:5089 { yyVAL.node = yyDollar[1].node @@ -7751,7 +7764,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5085 + // line internal/php7/php7.y:5098 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7765,7 +7778,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5097 + // line internal/php7/php7.y:5110 { yyVAL.node = yyDollar[2].node @@ -7777,7 +7790,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5107 + // line internal/php7/php7.y:5120 { yyVAL.node = yyDollar[1].node @@ -7785,7 +7798,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5116 + // line internal/php7/php7.y:5129 { yyVAL.list = yyDollar[1].list @@ -7793,7 +7806,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5125 + // line internal/php7/php7.y:5138 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7801,7 +7814,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5131 + // line internal/php7/php7.y:5144 { yyVAL.node = yyDollar[1].node @@ -7809,7 +7822,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5140 + // line internal/php7/php7.y:5153 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7824,7 +7837,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5153 + // line internal/php7/php7.y:5166 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7836,7 +7849,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5166 + // line internal/php7/php7.y:5179 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7851,7 +7864,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5179 + // line internal/php7/php7.y:5192 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7865,7 +7878,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5191 + // line internal/php7/php7.y:5204 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7883,7 +7896,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5207 + // line internal/php7/php7.y:5220 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7899,7 +7912,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5221 + // line internal/php7/php7.y:5234 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7913,7 +7926,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5233 + // line internal/php7/php7.y:5246 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7934,7 +7947,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5252 + // line internal/php7/php7.y:5265 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7953,7 +7966,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5272 + // line internal/php7/php7.y:5285 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7961,7 +7974,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5278 + // line internal/php7/php7.y:5291 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7976,7 +7989,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5291 + // line internal/php7/php7.y:5304 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -7984,7 +7997,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5297 + // line internal/php7/php7.y:5310 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7999,7 +8012,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5313 + // line internal/php7/php7.y:5326 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8015,7 +8028,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5327 + // line internal/php7/php7.y:5340 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8034,7 +8047,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5344 + // line internal/php7/php7.y:5357 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8055,7 +8068,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5363 + // line internal/php7/php7.y:5376 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8072,7 +8085,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5378 + // line internal/php7/php7.y:5391 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8091,7 +8104,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5395 + // line internal/php7/php7.y:5408 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8112,7 +8125,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5414 + // line internal/php7/php7.y:5427 { yyVAL.node = yyDollar[2].node @@ -8124,7 +8137,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5427 + // line internal/php7/php7.y:5440 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8138,7 +8151,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5439 + // line internal/php7/php7.y:5452 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8157,7 +8170,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5456 + // line internal/php7/php7.y:5469 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8185,7 +8198,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5482 + // line internal/php7/php7.y:5495 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8201,7 +8214,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5499 + // line internal/php7/php7.y:5512 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8221,7 +8234,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5517 + // line internal/php7/php7.y:5530 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8237,7 +8250,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5531 + // line internal/php7/php7.y:5544 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8251,7 +8264,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5543 + // line internal/php7/php7.y:5556 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8265,7 +8278,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5555 + // line internal/php7/php7.y:5568 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8281,7 +8294,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5569 + // line internal/php7/php7.y:5582 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8295,7 +8308,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5581 + // line internal/php7/php7.y:5594 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8309,7 +8322,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5596 + // line internal/php7/php7.y:5609 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8317,7 +8330,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5602 + // line internal/php7/php7.y:5615 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8328,7 +8341,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5614 + // line internal/php7/php7.y:5627 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 4a2af09..e125503 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2037,38 +2037,46 @@ if_stmt: alt_if_stmt_without_else: T_IF '(' expr ')' ':' inner_statement_list { + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} stmts := &ast.StmtStmtList{ast.Node{}, $6} - $$ = &ast.StmtAltIf{ast.Node{}, $3, stmts, nil, nil} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + $$ = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, nil, nil} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) stmts.GetNode().Position = position.NewNodeListPosition($6) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($5, $6) $$.GetNode().Position = position.NewTokenNodeListPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.If, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { + exprBrackets := &ast.ParserBrackets{ast.Node{}, $4} stmts := &ast.StmtStmtList{ast.Node{}, $7} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, $4, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} $1.(*ast.StmtAltIf).ElseIf = append($1.(*ast.StmtAltIf).ElseIf, _elseIf) $$ = $1 // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($3, $5) stmts.GetNode().Position = position.NewNodeListPosition($7) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($6, $7) _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $7) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $5.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2083,8 +2091,12 @@ alt_if_stmt: $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $3.Tokens) + altif := $$.(*ast.StmtAltIf) + if len(altif.ElseIf) > 0 { + yylex.(*Parser).setFreeFloating(altif.ElseIf[len(altif.ElseIf)-1], token.End, append($2.Tokens, $3.Tokens...)) + } else { + yylex.(*Parser).setFreeFloating(altif.Stmt, token.End, append($2.Tokens, $3.Tokens...)) + } yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2092,21 +2104,22 @@ alt_if_stmt: | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { stmts := &ast.StmtStmtList{ast.Node{}, $4} - _else := &ast.StmtAltElse{ast.Node{}, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _else := &ast.StmtAltElse{ast.Node{}, stmtsBrackets} $1.(*ast.StmtAltIf).Else = _else $$ = $1 // save position stmts.GetNode().Position = position.NewNodeListPosition($4) + stmtsBrackets.GetNode().Position = position.NewTokensPosition($3, $5) _else.GetNode().Position = position.NewTokenNodeListPosition($2, $4) $$.GetNode().Position = position.NewNodeTokenPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_else, token.Else, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append($5.Tokens, $6.Tokens...)) yylex.(*Parser).setToken($$, token.SemiColon, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go index c8eaabf..a7f5529 100644 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -40,3 +40,29 @@ func (v *FilterParserNodes) StmtUseDeclaration(n *ast.StmtUseDeclaration) { n.Alias = nn.Child } } + +func (v *FilterParserNodes) StmtAltIf(n *ast.StmtAltIf) { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } + + if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { + n.Stmt = nn.Child + } +} + +func (v *FilterParserNodes) StmtAltElseIf(n *ast.StmtAltElseIf) { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } + + if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { + n.Stmt = nn.Child + } +} + +func (v *FilterParserNodes) StmtAltElse(n *ast.StmtAltElse) { + if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { + n.Stmt = nn.Child + } +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index e269a6d..64a32c9 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1967,16 +1967,32 @@ func (p *Printer) printStmtAltElseIf(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "elseif") - p.printFreeFloating(nn, token.ElseIf) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") - if s := nn.Stmt.(*ast.StmtStmtList).Stmts; len(s) > 0 { - p.printNodes(s) + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + + p.Print(nn.Cond) + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } + + stmtList, _ := nn.Stmt.(*ast.StmtStmtList) + brackets, ok := nn.Stmt.(*ast.ParserBrackets) + if ok { + p.printFreeFloating(brackets, token.Start) + stmtList = brackets.Child.(*ast.StmtStmtList) + } else { + io.WriteString(p.w, ":") + } + + p.printFreeFloating(stmtList, token.Stmts) + p.printNodes(stmtList.Stmts) + p.printFreeFloating(stmtList, token.End) + + if ok { + p.printFreeFloating(brackets, token.End) } p.printFreeFloating(nn, token.End) @@ -1987,11 +2003,22 @@ func (p *Printer) printStmtAltElse(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "else") - p.printFreeFloating(nn, token.Else) - io.WriteString(p.w, ":") - if s := nn.Stmt.(*ast.StmtStmtList).Stmts; len(s) > 0 { - p.printNodes(s) + stmtList, _ := nn.Stmt.(*ast.StmtStmtList) + brackets, ok := nn.Stmt.(*ast.ParserBrackets) + if ok { + p.printFreeFloating(brackets, token.Start) + stmtList = brackets.Child.(*ast.StmtStmtList) + } else { + io.WriteString(p.w, ":") + } + + p.printFreeFloating(stmtList, token.Stmts) + p.printNodes(stmtList.Stmts) + p.printFreeFloating(stmtList, token.End) + + if ok { + p.printFreeFloating(brackets, token.End) } p.printFreeFloating(nn, token.End) @@ -2083,16 +2110,33 @@ func (p *Printer) printStmtAltIf(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "if") - p.printFreeFloating(nn, token.If) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + + p.Print(nn.Cond) + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } + + stmtList, _ := nn.Stmt.(*ast.StmtStmtList) + brackets, ok := nn.Stmt.(*ast.ParserBrackets) + if ok { + p.printFreeFloating(brackets, token.Start) + stmtList = brackets.Child.(*ast.StmtStmtList) + } else { + io.WriteString(p.w, ":") + } + + p.printFreeFloating(stmtList, token.Stmts) + p.printNodes(stmtList.Stmts) + p.printFreeFloating(stmtList, token.End) + + if ok { + p.printFreeFloating(brackets, token.End) + } for _, elseif := range nn.ElseIf { p.Print(elseif) @@ -2102,9 +2146,10 @@ func (p *Printer) printStmtAltIf(n ast.Vertex) { p.Print(nn.Else) } - p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "endif") - p.printFreeFloating(nn, token.AltEnd) + if !ok { + io.WriteString(p.w, "endif") + } + p.printFreeFloating(nn, token.SemiColon) if nn.GetNode().Tokens.IsEmpty() { io.WriteString(p.w, ";")