From b5ef30eb365b833084e90d7e31de289eb104aa97 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 1 Dec 2020 12:16:46 +0200 Subject: [PATCH] [refactoring] update ast structure of "InstanceOf" and "Isset" nodes --- internal/php5/php5.go | 189 +++---- internal/php5/php5.y | 49 +- internal/php7/php7.go | 1189 +++++++++++++++++++++-------------------- internal/php7/php7.y | 53 +- pkg/ast/node.go | 11 +- 5 files changed, 754 insertions(+), 737 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 9b23a93..8501768 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6524 +// line internal/php5/php5.y:6527 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -700,10 +700,10 @@ var yyAct = [...]int{ 836, 566, 1006, 39, 572, 1012, 531, 1005, 725, 1013, 341, 698, 531, 531, 993, 572, 1016, 518, 716, 538, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 460, 318, 259, 446, 231, 31, 231, 256, 654, - 531, 314, 296, 656, 655, 39, 260, 261, 449, 127, - 403, 39, 575, 657, 659, 660, 676, 677, 666, 903, - 147, 151, 155, 401, 335, 945, 165, 685, 478, 995, + 679, 318, 314, 259, 446, 231, 31, 231, 256, 654, + 531, 127, 296, 656, 655, 39, 260, 261, 449, 403, + 575, 39, 903, 657, 659, 660, 676, 677, 666, 401, + 147, 151, 155, 460, 335, 945, 165, 685, 478, 995, 1009, 929, 483, 343, 198, 290, 394, 389, 939, 206, 896, 164, 157, 161, 528, 231, 608, 997, 531, 970, 223, 969, 968, 967, 235, 236, 237, 238, 260, 261, @@ -1614,8 +1614,8 @@ var yyPgo = [...]int{ 48, 5, 1093, 1092, 1091, 1089, 1087, 6, 1086, 1017, 1084, 1083, 1082, 18, 1042, 1081, 1080, 1078, 1077, 1076, 1075, 41, 1073, 1072, 4, 1071, 1070, 1069, 17, 1067, - 12, 1065, 1064, 7, 21, 1063, 25, 1059, 1052, 1050, - 14, 39, 0, 1049, 1041, 1032, 391, 619, 1031, 1019, + 12, 1065, 1064, 1063, 7, 21, 1059, 25, 1052, 1050, + 1049, 14, 39, 0, 1041, 1032, 1031, 391, 619, 1019, 1011, 1010, 30, 52, 1008, 1007, 1002, 3, 1001, 15, 1000, 999, 996, 993, 992, 984, 983, 972, 23, 969, 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, @@ -1623,24 +1623,24 @@ var yyPgo = [...]int{ } var yyR1 = [...]int{ - 0, 151, 111, 111, 112, 112, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 113, 113, - 6, 6, 6, 6, 114, 114, 7, 7, 7, 7, - 115, 115, 8, 8, 8, 8, 55, 55, 116, 116, + 0, 151, 112, 112, 113, 113, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 114, 114, + 6, 6, 6, 6, 115, 115, 7, 7, 7, 7, + 116, 116, 8, 8, 8, 8, 55, 55, 117, 117, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 124, 124, 60, 60, 125, 125, 126, 126, 61, 88, 88, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 105, 105, 2, 109, 109, 108, 108, 106, 106, 104, - 104, 103, 103, 103, 101, 101, 100, 100, 59, 59, + 106, 106, 2, 110, 110, 109, 109, 107, 107, 105, + 105, 104, 104, 104, 101, 101, 100, 100, 59, 59, 89, 89, 92, 92, 92, 92, 123, 123, 123, 4, 4, 102, 102, 119, 119, 120, 120, 56, 56, 57, 57, 127, 127, 128, 128, 65, 65, 64, 64, 64, 64, 84, 84, 84, 93, 93, 70, 70, 70, 70, 82, 82, 29, 29, 29, 81, 81, 81, 81, 129, - 129, 67, 67, 67, 67, 69, 107, 107, 87, 87, + 129, 67, 67, 67, 67, 69, 108, 108, 87, 87, 132, 132, 133, 133, 71, 71, 72, 97, 97, 75, 75, 74, 73, 73, 76, 76, 96, 96, 130, 130, 131, 131, 134, 134, 77, 77, 77, 77, 77, 77, @@ -1654,7 +1654,7 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 110, 110, 95, + 49, 49, 49, 49, 48, 48, 1, 111, 111, 95, 95, 95, 95, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 135, 135, @@ -1672,9 +1672,9 @@ var yyR1 = [...]int{ 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, 144, 144, 41, 41, 148, 148, 94, 94, 40, 40, 40, 91, 91, 90, 90, 90, 90, 90, 90, 90, - 90, 117, 117, 117, 117, 35, 35, 35, 35, 35, + 90, 118, 118, 118, 118, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 118, 118, 38, 38, 32, 32, 33, + 39, 39, 39, 103, 103, 38, 38, 32, 32, 33, 34, } @@ -1735,7 +1735,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -111, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -112, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1745,10 +1745,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -112, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -113, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -112, 144, 83, 10, -113, 37, 39, - -6, -112, 83, 146, 160, 147, 10, -116, -50, 148, + 159, 12, 148, -113, 144, 83, 10, -114, 37, 39, + -6, -113, 83, 146, 160, 147, 10, -117, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, @@ -1757,87 +1757,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -112, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -113, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -135, 17, -117, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -112, 80, 83, + 148, -50, -16, 150, 150, -135, 17, -118, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -113, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -117, 17, 17, 76, -117, 150, 148, -91, - -90, -16, 153, 150, 150, 83, -84, 148, -112, 79, + -16, 150, -118, 17, 17, 76, -118, 150, 148, -91, + -90, -16, 153, 150, 150, 83, -84, 148, -113, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -111, -112, 146, 160, -114, -7, -112, 83, -115, -8, - -112, 83, 29, -112, 10, 162, -26, 145, 2, -27, + -112, -113, 146, 160, -115, -7, -113, 83, -116, -8, + -113, 83, 29, -113, 10, 162, -26, 145, 2, -27, -53, -54, 52, -27, 147, -102, -27, 147, 21, -149, -122, -121, -16, -92, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -45, -16, 147, -88, - -58, -21, -21, -17, -89, 10, -116, 146, 146, 10, - 148, -105, 56, -109, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -89, 10, -117, 146, 146, 10, + 148, -106, 56, -110, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -94, -40, -21, 60, 83, -112, 79, 79, 149, 149, + -94, -40, -21, 60, 83, -113, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -112, 58, -12, 79, - -118, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 10, 144, -83, -84, 79, 83, -113, 58, -12, 79, + -103, -38, -21, -17, -21, -16, -16, -15, 142, 76, 76, -15, -91, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -93, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -111, 145, -84, -6, 146, 160, 29, -112, - 146, 160, 29, -112, 10, 29, 162, -30, -79, -9, - -33, -112, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -119, -116, - -116, -50, 146, 160, -123, 146, -123, 146, -29, -16, + -16, 146, -112, 145, -84, -6, 146, 160, 29, -113, + 146, 160, 29, -113, 10, 29, 162, -30, -79, -9, + -33, -113, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -119, -117, + -117, -50, 146, 160, -123, 146, -123, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, 149, 160, 162, 145, 148, -127, -128, -65, -64, 61, - 62, -47, -112, 80, 83, -108, 57, -47, 144, -106, - -47, -17, -21, -21, 92, 149, 160, 148, -112, -139, + 62, -47, -113, 80, 83, -109, 57, -47, 144, -107, + -47, -17, -21, -21, 92, 149, 160, 148, -113, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -112, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -113, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -112, 148, -98, -99, -79, 17, 79, -79, + 152, 83, -113, 148, -98, -99, -79, 17, 79, -79, -79, -79, -79, -79, 149, -56, 94, 95, -120, 22, 146, -122, -16, 145, 32, 33, -123, 31, -123, 145, - 162, -127, -16, 146, -58, -103, -21, 153, 60, -103, + 162, -127, -16, 146, -58, -104, -21, 153, 60, -104, -59, -27, 147, 10, -30, -124, 42, -127, 149, 160, - -149, 83, -112, 144, -106, -129, 160, -45, 162, -40, + -149, 83, -113, 144, -107, -129, 160, -45, 162, -40, -94, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -112, -98, 151, -3, 160, 59, 10, 53, 149, 146, + -113, -98, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -104, 59, -21, 148, - -104, -116, 162, -60, 43, 148, 149, -110, 45, -65, - -150, 84, -112, -129, 145, -67, -130, -68, -69, -131, + 146, 145, 146, 31, -30, 149, -105, 59, -21, 148, + -105, -117, 162, -60, 43, 148, 149, -111, 45, -65, + -150, 84, -113, -129, 145, -67, -130, -68, -69, -131, -134, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, 147, 149, -79, -79, -27, 96, -50, 147, -122, -4, - -116, 146, -110, 149, -103, -94, 149, 28, -30, 144, + -117, 146, -111, 149, -104, -94, 149, 28, -30, 144, -47, 144, 144, 148, 12, 145, -86, 12, 146, 160, - -1, -77, 10, -107, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -116, 149, -116, 144, -100, - -27, 147, 149, -100, 146, -116, 12, -116, -116, -95, + -1, -77, 10, -108, -47, 151, 145, 151, 151, -143, + -19, -79, 59, 146, 147, -117, 149, -117, 144, -100, + -27, 147, 149, -100, 146, -117, 12, -117, -117, -95, 12, 153, 162, 146, 160, 162, 10, -149, 162, -87, - 160, 146, 144, -79, -116, -101, -27, 147, -116, -116, + 160, 146, 144, -79, -117, -101, -27, 147, -117, -117, 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, 162, 10, -30, -47, -132, -133, -71, -72, -73, -74, - -75, -47, 10, -116, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -117, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -116, 12, -30, -127, -97, -47, -76, -77, 10, + 146, -117, 12, -30, -127, -97, -47, -76, -77, 10, 146, 145, 149, 160, 10, -125, -126, -61, 42, -96, - 146, 144, -47, -61, 148, -116, -47, 145, 12, 149, - 144, -116, 145, + 146, 144, -47, -61, 148, -117, -47, 145, 12, 149, + 144, -117, 145, } var yyDef = [...]int{ @@ -6051,14 +6051,14 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:3719 { - yyVAL.node = &ast.ExprInstanceOf{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.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Expr: yyDollar[1].node, + InstanceOfTkn: yyDollar[2].token, + Class: yyDollar[3].node, + } } case 283: yyDollar = yyS[yypt-1 : yypt+1] @@ -8927,19 +8927,20 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:6333 { - yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprIsset{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + IssetTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Vars: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].token, + } } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6345 +// line internal/php5/php5.y:6346 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8953,7 +8954,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6357 +// line internal/php5/php5.y:6358 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8967,7 +8968,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6369 +// line internal/php5/php5.y:6370 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -8979,7 +8980,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6379 +// line internal/php5/php5.y:6380 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -8991,7 +8992,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6389 +// line internal/php5/php5.y:6390 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9005,7 +9006,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6401 +// line internal/php5/php5.y:6402 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9017,7 +9018,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6411 +// line internal/php5/php5.y:6412 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9029,34 +9030,36 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6424 +// line internal/php5/php5.y:6425 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6428 +// line internal/php5/php5.y:6431 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6438 +// line internal/php5/php5.y:6441 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6442 +// line internal/php5/php5.y:6445 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6449 +// line internal/php5/php5.y:6452 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9075,7 +9078,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6466 +// line internal/php5/php5.y:6469 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9094,7 +9097,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6486 +// line internal/php5/php5.y:6489 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9113,7 +9116,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6506 +// line internal/php5/php5.y:6509 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 0613a54..07db4b4 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -240,7 +240,7 @@ import ( %type trait_adaptations unset_variables declare_list non_empty_array_pair_list array_pair_list %type switch_case_list non_empty_function_call_parameter_list assignment_list lexical_var_list %type method_body trait_reference_list static_array_pair_list non_empty_static_array_pair_list -%type foreach_statement for_statement while_statement +%type foreach_statement for_statement while_statement isset_variables %type foreach_variable foreach_optional_arg %type extends_from interface_list trait_list %type implements_list @@ -248,7 +248,7 @@ import ( %type lexical_vars %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations -%type inner_statement_list encaps_list isset_variables +%type inner_statement_list encaps_list %type elseif_list new_elseif_list non_empty_for_expr %type for_expr case_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list @@ -3717,14 +3717,14 @@ expr_without_variable: } | expr T_INSTANCEOF class_name_reference { - $$ = &ast.ExprInstanceOf{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Expr: $1, + InstanceOfTkn: $2, + Class: $3, + } } | parenthesis_expr { @@ -6331,15 +6331,16 @@ encaps_var_offset: internal_functions_in_yacc: T_ISSET '(' isset_variables ')' { - $$ = &ast.ExprIsset{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Isset, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $4.SkippedTokens) + $$ = &ast.ExprIsset{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + IssetTkn: $1, + OpenParenthesisTkn: $2, + Vars: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: $4, + } } | T_EMPTY '(' variable ')' { @@ -6422,14 +6423,16 @@ internal_functions_in_yacc: isset_variables: isset_variable { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | isset_variables ',' isset_variable { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 25bfa12..9fde4cd 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4992 +// line internal/php7/php7.y:4995 // line yacctab:1 var yyExca = [...]int{ @@ -624,10 +624,10 @@ var yyAct = [...]int{ 554, 381, 379, 814, 810, 197, 832, 693, 833, 834, 196, 195, 815, 189, 1, 831, 825, 780, 781, 38, 746, 283, 260, 261, 260, 261, 836, 743, 844, 783, - 780, 781, 856, 111, 744, 632, 528, 848, 879, 328, - 841, 533, 260, 261, 855, 676, 255, 796, 385, 371, - 656, 859, 136, 852, 934, 114, 662, 845, 227, 877, - 890, 891, 886, 43, 42, 865, 892, 893, 16, 885, + 780, 781, 856, 111, 744, 632, 879, 848, 328, 841, + 676, 533, 260, 261, 855, 255, 796, 385, 371, 656, + 852, 859, 136, 934, 662, 114, 845, 227, 43, 877, + 890, 891, 886, 42, 528, 865, 892, 893, 16, 885, 838, 237, 539, 853, 15, 897, 898, 730, 830, 872, 151, 606, 786, 896, 903, 271, 49, 905, 48, 217, 218, 902, 110, 50, 886, 908, 84, 82, 904, 72, @@ -1426,11 +1426,11 @@ var yyPgo = [...]int{ 915, 914, 913, 9, 50, 911, 908, 100, 88, 242, 907, 905, 34, 890, 889, 8, 887, 80, 41, 886, 56, 49, 883, 882, 878, 876, 875, 86, 871, 870, - 868, 10, 864, 87, 862, 860, 858, 855, 854, 12, - 853, 848, 46, 39, 40, 2, 16, 667, 43, 85, - 847, 846, 844, 13, 843, 840, 555, 839, 45, 71, - 838, 837, 6, 721, 20, 540, 836, 18, 835, 830, - 36, 829, 25, 33, 37, 828, 530, 826, 99, 1, + 868, 10, 864, 87, 862, 860, 858, 855, 854, 853, + 12, 848, 847, 46, 39, 40, 2, 16, 667, 43, + 85, 846, 844, 843, 13, 840, 839, 555, 838, 45, + 71, 837, 836, 6, 721, 20, 540, 835, 18, 830, + 829, 36, 828, 25, 33, 37, 826, 530, 99, 1, 3, 825, 17, 824, 817, 810, 809, 804, 28, } @@ -1443,28 +1443,28 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 118, - 118, 107, 107, 10, 10, 10, 9, 9, 9, 9, + 118, 108, 108, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 103, 103, 16, 16, 18, 18, 7, 7, 113, - 113, 112, 112, 116, 116, 17, 17, 20, 20, 19, + 9, 104, 104, 16, 16, 18, 18, 7, 7, 114, + 114, 113, 113, 117, 117, 17, 17, 20, 20, 19, 19, 73, 73, 119, 119, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 108, 108, 70, 70, - 26, 26, 97, 97, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 87, 87, 14, 15, 98, 98, - 100, 100, 99, 99, 104, 104, 104, 104, 94, 94, - 93, 93, 25, 25, 91, 91, 91, 91, 114, 114, - 114, 8, 8, 95, 95, 78, 78, 72, 72, 80, - 80, 76, 76, 120, 120, 121, 121, 29, 29, 30, - 30, 86, 86, 84, 84, 84, 85, 85, 88, 88, + 11, 11, 11, 11, 11, 11, 109, 109, 70, 70, + 26, 26, 98, 98, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 88, 88, 14, 15, 99, 99, + 101, 101, 100, 100, 105, 105, 105, 105, 95, 95, + 94, 94, 25, 25, 92, 92, 92, 92, 115, 115, + 115, 8, 8, 96, 96, 79, 79, 72, 72, 81, + 81, 76, 76, 120, 120, 121, 121, 29, 29, 30, + 30, 87, 87, 85, 85, 85, 86, 86, 89, 89, 74, 74, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 122, 122, 37, 37, 37, 37, 71, 71, 90, - 90, 90, 115, 115, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 92, 92, 124, 124, 123, 123, - 125, 125, 102, 102, 102, 102, 102, 102, 75, 75, - 43, 43, 109, 109, 79, 21, 69, 69, 44, 110, - 110, 111, 111, 46, 45, 45, 32, 32, 32, 32, + 36, 122, 122, 37, 37, 37, 37, 71, 71, 91, + 91, 91, 116, 116, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 93, 93, 124, 124, 123, 123, + 125, 125, 103, 103, 103, 103, 103, 103, 75, 75, + 43, 43, 110, 110, 80, 21, 69, 69, 44, 111, + 111, 112, 112, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1472,19 +1472,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 96, 96, 128, 3, 3, 101, 101, + 32, 32, 32, 97, 97, 128, 3, 3, 102, 102, 77, 77, 55, 55, 56, 56, 56, 56, 47, 47, - 48, 48, 53, 53, 106, 106, 106, 89, 89, 60, + 48, 48, 53, 53, 107, 107, 107, 90, 90, 60, 60, 60, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 61, 61, 61, 23, 23, 24, 24, 59, 62, 62, 62, 63, 63, 63, 64, 64, 64, 64, 64, 64, 28, 28, 28, 49, 49, 49, 65, 65, 66, 66, 66, 66, - 66, 66, 57, 57, 57, 58, 58, 58, 52, 82, - 82, 51, 51, 81, 81, 81, 81, 81, 81, 81, - 105, 105, 105, 105, 67, 67, 67, 67, 67, 67, + 66, 66, 57, 57, 57, 58, 58, 58, 52, 83, + 83, 51, 51, 82, 82, 82, 82, 82, 82, 82, + 106, 106, 106, 106, 67, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 50, 50, 50, 50, 50, - 50, 50, 117, 117, 83, + 50, 50, 78, 78, 84, } var yyR2 = [...]int{ @@ -1545,41 +1545,41 @@ var yyChk = [...]int{ 52, 80, 45, 39, 144, -72, -76, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -78, -80, -28, -32, -87, 7, -64, -65, + 54, 55, -79, -81, -28, -32, -88, 7, -64, -65, -62, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -54, 143, 97, 98, 107, -96, 100, 101, + 6, 158, -54, 143, 97, 98, 107, -97, 100, 101, -49, -61, -56, -47, -59, -60, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -63, 61, 18, -107, 83, 148, 83, -107, 144, 10, - -18, -103, -116, -107, 83, 37, 39, -19, -20, -73, + -63, 61, 18, -108, 83, 148, 83, -108, 144, 10, + -18, -104, -117, -108, 83, 37, 39, -19, -20, -73, -21, 10, -119, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -96, -36, + -23, 99, -24, -24, -33, -34, -49, -35, -97, -36, 12, -69, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -87, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -88, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -52, -51, -82, -81, -23, 153, + 150, 144, 58, 148, -52, -51, -83, -82, -23, 153, 84, 60, -23, -28, -61, 148, -60, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -53, 148, -23, -106, 17, -105, -67, 12, + -23, -23, -53, 148, -23, -107, 17, -106, -67, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, -47, -66, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -105, -105, 17, -3, 144, -49, - -88, 148, -88, 148, 83, -107, 149, -107, 146, 144, - -118, 146, -16, -116, -107, 83, 146, 160, 83, 29, - -107, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -110, -111, -23, + -23, -23, 17, 76, -106, -106, 17, -3, 144, -49, + -89, 148, -89, 148, 83, -108, 149, -108, 146, 144, + -118, 146, -16, -117, -108, 83, 146, 160, 83, 29, + -108, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -111, -112, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -97, -27, -28, -23, -73, -119, 146, 146, 10, - -128, 10, -98, 56, -128, -100, 56, 148, -11, 148, + -23, -98, -27, -28, -23, -73, -119, 146, 146, 10, + -128, 10, -99, 56, -128, -101, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, -58, 10, 144, -49, -52, 151, 160, 59, -28, -23, @@ -1593,48 +1593,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -57, -6, -49, - -89, -88, 79, 150, 144, 58, 79, -89, -117, -83, + -90, -89, 79, 150, 144, 58, 79, -90, -78, -84, -23, -23, -23, 76, 76, 142, 148, -23, 149, -74, -31, -23, 84, -52, 10, 146, -118, 145, 146, 146, - 83, -107, -19, 83, -107, 144, 10, 83, -21, -23, + 83, -108, -19, 83, -108, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -98, - -99, 57, -10, 144, -128, -71, -10, -23, -23, -119, - -23, 149, 151, 145, -88, -23, 149, 162, -82, -23, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -99, + -100, 57, -10, 144, -128, -71, -10, -23, -23, -119, + -23, 149, 151, 145, -89, -23, 149, 162, -83, -23, 153, 60, -52, 149, 151, 149, -68, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -88, -23, - -88, -49, -24, -23, -58, -49, -98, -7, 160, 149, - 149, -120, -121, -29, -30, -86, -84, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -113, - -17, -20, -103, 144, -128, 149, -95, -11, 147, -23, - -110, -23, -91, 144, 147, -23, 149, -27, -104, -28, - 153, 60, 150, -25, -11, 147, -108, 148, -120, -99, + 12, 10, 145, 145, 150, 145, -23, 151, -89, -23, + -89, -49, -24, -23, -58, -49, -99, -7, 160, 149, + 149, -120, -121, -29, -30, -87, -85, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -114, + -17, -20, -104, 144, -128, 149, -96, -11, 147, -23, + -111, -23, -92, 144, 147, -23, 149, -27, -105, -28, + 153, 60, 150, -25, -11, 147, -109, 148, -120, -100, -128, -71, -122, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -99, 149, -83, 149, 160, -1, 153, -84, - 149, -31, -112, -20, 144, -7, 160, -20, -113, 146, - -119, 149, 146, -114, 146, -114, 146, 146, 149, 59, + 151, 145, -100, 149, -84, 149, 160, -1, 153, -85, + 149, -31, -113, -20, 144, -7, 160, -20, -114, 146, + -119, 149, 146, -115, 146, -115, 146, 146, 149, 59, -28, 148, -52, -119, -26, 42, 43, -120, 149, -128, - 144, 145, -37, -124, -123, 45, -125, 48, -102, 104, + 144, 145, -37, -124, -123, 45, -125, 48, -103, 104, 103, 102, 99, 100, 101, -122, -10, -11, 147, 146, - -119, -23, -52, 151, -128, -85, 147, -29, -2, 84, - -7, 160, -112, 145, -17, -7, 22, 146, -110, 145, - 32, 33, -114, 31, -114, -93, -11, 147, -104, -28, - -52, 151, 28, 148, 144, 149, -101, 45, 144, -122, - -30, 39, 37, -71, -102, 145, -119, 149, 145, 144, - -128, -86, 12, 145, -20, -7, 145, 146, 149, -23, + -119, -23, -52, 151, -128, -86, 147, -29, -2, 84, + -7, 160, -113, 145, -17, -7, 22, 146, -111, 145, + 32, 33, -115, 31, -115, -94, -11, 147, -105, -28, + -52, 151, 28, 148, 144, 149, -102, 45, 144, -122, + -30, 39, 37, -71, -103, 145, -119, 149, 145, 144, + -128, -87, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -119, 149, 149, 146, - -70, -10, -119, -85, -85, 148, -122, 145, -75, -43, - 12, -109, -79, -6, -3, -90, 146, 144, -122, 59, - 162, 145, -94, -11, 147, -8, -119, 146, 26, -93, + -70, -10, -119, -86, -86, 148, -122, 145, -75, -43, + 12, -110, -80, -6, -3, -91, 146, 144, -122, 59, + 162, 145, -95, -11, 147, -8, -119, 146, 26, -94, 12, 161, 145, 144, 144, -77, -55, 12, 153, 145, - 146, 160, -128, 162, 146, 160, 162, -6, 145, -115, + 146, 160, -128, 162, 146, 160, 162, -6, 145, -116, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -119, -119, 146, 149, -10, -119, -119, 149, - 160, 12, -43, -23, -79, -23, -128, 145, -38, 146, + 160, 12, -43, -23, -80, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -55, -128, - -128, 148, -71, 10, -4, -102, -6, 146, -119, -120, - -6, 145, 149, -85, -92, 146, 144, -119, 145, + -128, 148, -71, 10, -4, -103, -6, 146, -119, -120, + -6, 145, 149, -86, -93, 146, 144, -119, 145, } var yyDef = [...]int{ @@ -2110,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:290 + // line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2121,469 +2121,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:320 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:324 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:331 + // line internal/php7/php7.y:331 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2596,13 +2596,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:342 + // line internal/php7/php7.y:342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:349 + // line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2616,7 +2616,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:361 + // line internal/php7/php7.y:361 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2629,7 +2629,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:375 + // line internal/php7/php7.y:375 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2640,7 +2640,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:384 + // line internal/php7/php7.y:384 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2653,7 +2653,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:395 + // line internal/php7/php7.y:395 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2665,44 +2665,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:408 + // line internal/php7/php7.y:408 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:413 + // line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:417 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:421 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:425 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:433 + // line internal/php7/php7.y:433 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2716,7 +2716,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:445 + // line internal/php7/php7.y:445 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2734,7 +2734,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:461 + // line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2754,7 +2754,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:479 + // line internal/php7/php7.y:479 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2768,7 +2768,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:491 + // line internal/php7/php7.y:491 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2780,7 +2780,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:501 + // line internal/php7/php7.y:501 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2793,7 +2793,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:512 + // line internal/php7/php7.y:512 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2806,7 +2806,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:523 + // line internal/php7/php7.y:523 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2820,7 +2820,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:535 + // line internal/php7/php7.y:535 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2834,7 +2834,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:550 + // line internal/php7/php7.y:550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2846,7 +2846,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:560 + // line internal/php7/php7.y:560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2858,7 +2858,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:573 + // line internal/php7/php7.y:573 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2882,7 +2882,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:595 + // line internal/php7/php7.y:595 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2905,7 +2905,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:619 + // line internal/php7/php7.y:619 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2927,7 +2927,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:639 + // line internal/php7/php7.y:639 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2950,19 +2950,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:663 + // line internal/php7/php7.y:663 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:667 + // line internal/php7/php7.y:667 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:674 + // line internal/php7/php7.y:674 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2970,13 +2970,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:680 + // line internal/php7/php7.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:687 + // line internal/php7/php7.y:687 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2984,13 +2984,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:693 + // line internal/php7/php7.y:693 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:700 + // line internal/php7/php7.y:700 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2998,19 +2998,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:706 + // line internal/php7/php7.y:706 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:713 + // line internal/php7/php7.y:713 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:717 + // line internal/php7/php7.y:717 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3020,7 +3020,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:728 + // line internal/php7/php7.y:728 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3036,7 +3036,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:742 + // line internal/php7/php7.y:742 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3060,13 +3060,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:767 + // line internal/php7/php7.y:767 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:771 + // line internal/php7/php7.y:771 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3076,7 +3076,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:782 + // line internal/php7/php7.y:782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3085,7 +3085,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:789 + // line internal/php7/php7.y:789 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3093,7 +3093,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:798 + // line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3106,50 +3106,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:809 + // line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:816 + // line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:821 + // line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:825 + // line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:829 + // line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:833 + // line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:837 + // line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:841 + // line internal/php7/php7.y:841 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3163,7 +3163,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:855 + // line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3176,19 +3176,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:866 + // line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:870 + // line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:874 + // line internal/php7/php7.y:874 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3200,7 +3200,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:884 + // line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3217,7 +3217,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:899 + // line internal/php7/php7.y:899 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3233,7 +3233,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:913 + // line internal/php7/php7.y:913 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3245,7 +3245,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:923 + // line internal/php7/php7.y:923 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3258,7 +3258,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:934 + // line internal/php7/php7.y:934 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3271,7 +3271,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:945 + // line internal/php7/php7.y:945 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3284,7 +3284,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:956 + // line internal/php7/php7.y:956 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3294,7 +3294,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:964 + // line internal/php7/php7.y:964 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3304,7 +3304,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:972 + // line internal/php7/php7.y:972 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3314,7 +3314,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:980 + // line internal/php7/php7.y:980 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3326,7 +3326,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:990 + // line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3338,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1000 + // line internal/php7/php7.y:1000 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3351,7 +3351,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1011 + // line internal/php7/php7.y:1011 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3365,7 +3365,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1023 + // line internal/php7/php7.y:1023 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3381,7 +3381,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1037 + // line internal/php7/php7.y:1037 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3394,7 +3394,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1048 + // line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3405,7 +3405,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1057 + // line internal/php7/php7.y:1057 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3424,7 +3424,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1074 + // line internal/php7/php7.y:1074 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3437,7 +3437,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3456,7 +3456,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1102 + // line internal/php7/php7.y:1102 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3474,13 +3474,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1120 + // line internal/php7/php7.y:1120 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1124 + // line internal/php7/php7.y:1124 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3511,7 +3511,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1155 + // line internal/php7/php7.y:1155 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3519,7 +3519,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1161 + // line internal/php7/php7.y:1161 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3528,13 +3528,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1171 + // line internal/php7/php7.y:1171 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1175 + // line internal/php7/php7.y:1175 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3548,7 +3548,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1190 + // line internal/php7/php7.y:1190 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3556,7 +3556,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1196 + // line internal/php7/php7.y:1196 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3565,13 +3565,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1206 + // line internal/php7/php7.y:1206 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1213 + // line internal/php7/php7.y:1213 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3598,31 +3598,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1241 + // line internal/php7/php7.y:1241 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1245 + // line internal/php7/php7.y:1245 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1252 + // line internal/php7/php7.y:1252 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1256 + // line internal/php7/php7.y:1256 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1263 + // line internal/php7/php7.y:1263 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3646,7 +3646,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1285 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3669,19 +3669,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1309 + // line internal/php7/php7.y:1309 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1313 + // line internal/php7/php7.y:1313 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1320 + // line internal/php7/php7.y:1320 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3693,7 +3693,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1330 + // line internal/php7/php7.y:1330 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3705,7 +3705,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1343 + // line internal/php7/php7.y:1343 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3726,7 +3726,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1365 + // line internal/php7/php7.y:1365 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3748,13 +3748,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1388 + // line internal/php7/php7.y:1388 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1392 + // line internal/php7/php7.y:1392 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3766,13 +3766,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1405 + // line internal/php7/php7.y:1405 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1409 + // line internal/php7/php7.y:1409 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3785,13 +3785,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1423 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1427 + // line internal/php7/php7.y:1427 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3804,13 +3804,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1441 + // line internal/php7/php7.y:1441 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1445 + // line internal/php7/php7.y:1445 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3822,7 +3822,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1455 + // line internal/php7/php7.y:1455 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3837,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3851,7 +3851,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1483 + // line internal/php7/php7.y:1483 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3862,7 +3862,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1492 + // line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3882,7 +3882,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1513 + // line internal/php7/php7.y:1513 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3893,7 +3893,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1522 + // line internal/php7/php7.y:1522 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3913,7 +3913,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1543 + // line internal/php7/php7.y:1543 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3924,7 +3924,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1552 + // line internal/php7/php7.y:1552 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3944,7 +3944,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1573 + // line internal/php7/php7.y:1573 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3957,7 +3957,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1584 + // line internal/php7/php7.y:1584 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3971,7 +3971,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1596 + // line internal/php7/php7.y:1596 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3986,7 +3986,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1609 + // line internal/php7/php7.y:1609 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4002,13 +4002,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1626 + // line internal/php7/php7.y:1626 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1630 + // line internal/php7/php7.y:1630 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4022,7 +4022,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1642 + // line internal/php7/php7.y:1642 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4035,19 +4035,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1656 + // line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1660 + // line internal/php7/php7.y:1660 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1667 + // line internal/php7/php7.y:1667 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4058,7 +4058,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1676 + // line internal/php7/php7.y:1676 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4078,7 +4078,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1697 + // line internal/php7/php7.y:1697 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4093,7 +4093,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1710 + // line internal/php7/php7.y:1710 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4112,13 +4112,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1730 + // line internal/php7/php7.y:1730 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1734 + // line internal/php7/php7.y:1734 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4134,7 +4134,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1751 + // line internal/php7/php7.y:1751 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4156,7 +4156,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1771 + // line internal/php7/php7.y:1771 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4180,7 +4180,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1796 + // line internal/php7/php7.y:1796 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4190,7 +4190,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1804 + // line internal/php7/php7.y:1804 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4214,25 +4214,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1829 + // line internal/php7/php7.y:1829 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1833 + // line internal/php7/php7.y:1833 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1840 + // line internal/php7/php7.y:1840 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1844 + // line internal/php7/php7.y:1844 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4241,7 +4241,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1854 + // line internal/php7/php7.y:1854 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4295,7 +4295,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1906 + // line internal/php7/php7.y:1906 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4352,25 +4352,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1964 + // line internal/php7/php7.y:1964 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1968 + // line internal/php7/php7.y:1968 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1975 + // line internal/php7/php7.y:1975 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1979 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4382,7 +4382,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1992 + // line internal/php7/php7.y:1992 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4394,7 +4394,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2002 + // line internal/php7/php7.y:2002 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4406,19 +4406,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2012 + // line internal/php7/php7.y:2012 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2019 + // line internal/php7/php7.y:2019 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2023 + // line internal/php7/php7.y:2023 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4427,7 +4427,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2033 + // line internal/php7/php7.y:2033 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4439,7 +4439,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2043 + // line internal/php7/php7.y:2043 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4451,7 +4451,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2056 + // line internal/php7/php7.y:2056 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4459,7 +4459,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2062 + // line internal/php7/php7.y:2062 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4468,7 +4468,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2072 + // line internal/php7/php7.y:2072 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4479,7 +4479,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2081 + // line internal/php7/php7.y:2081 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4491,7 +4491,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2094 + // line internal/php7/php7.y:2094 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4500,7 +4500,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2101 + // line internal/php7/php7.y:2101 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4508,13 +4508,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2110 + // line internal/php7/php7.y:2110 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2117 + // line internal/php7/php7.y:2117 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4523,7 +4523,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2124 + // line internal/php7/php7.y:2124 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4531,7 +4531,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2133 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4557,7 +4557,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2157 + // line internal/php7/php7.y:2157 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4584,19 +4584,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2185 + // line internal/php7/php7.y:2185 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2189 + // line internal/php7/php7.y:2189 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2196 + // line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4611,7 +4611,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2209 + // line internal/php7/php7.y:2209 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4625,7 +4625,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2221 + // line internal/php7/php7.y:2221 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4639,7 +4639,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2233 + // line internal/php7/php7.y:2233 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4670,7 +4670,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2265 + // line internal/php7/php7.y:2265 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4678,7 +4678,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2271 + // line internal/php7/php7.y:2271 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4687,7 +4687,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2281 + // line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4698,7 +4698,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2290 + // line internal/php7/php7.y:2290 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4710,7 +4710,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2300 + // line internal/php7/php7.y:2300 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4723,19 +4723,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2314 + // line internal/php7/php7.y:2314 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2318 + // line internal/php7/php7.y:2318 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2325 + // line internal/php7/php7.y:2325 { yyVAL.node = yyDollar[1].node @@ -4745,7 +4745,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2333 + // line internal/php7/php7.y:2333 { yyVAL.node = yyDollar[1].node @@ -4755,7 +4755,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2344 + // line internal/php7/php7.y:2344 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4769,7 +4769,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2359 + // line internal/php7/php7.y:2359 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4788,7 +4788,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2376 + // line internal/php7/php7.y:2376 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4807,7 +4807,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2393 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4827,7 +4827,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2411 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4840,7 +4840,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2425 + // line internal/php7/php7.y:2425 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4857,13 +4857,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2440 + // line internal/php7/php7.y:2440 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2447 + // line internal/php7/php7.y:2447 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4882,7 +4882,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2467 + // line internal/php7/php7.y:2467 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4893,7 +4893,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2476 + // line internal/php7/php7.y:2476 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4906,13 +4906,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2490 + // line internal/php7/php7.y:2490 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2494 + // line internal/php7/php7.y:2494 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4926,31 +4926,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2509 + // line internal/php7/php7.y:2509 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2513 + // line internal/php7/php7.y:2513 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2520 + // line internal/php7/php7.y:2520 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2524 + // line internal/php7/php7.y:2524 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2531 + // line internal/php7/php7.y:2531 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4962,7 +4962,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2541 + // line internal/php7/php7.y:2541 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4974,7 +4974,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2551 + // line internal/php7/php7.y:2551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4986,7 +4986,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2561 + // line internal/php7/php7.y:2561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4998,7 +4998,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2571 + // line internal/php7/php7.y:2571 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5010,7 +5010,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2581 + // line internal/php7/php7.y:2581 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5022,7 +5022,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2594 + // line internal/php7/php7.y:2594 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5031,7 +5031,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2601 + // line internal/php7/php7.y:2601 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5039,7 +5039,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5062,7 +5062,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2631 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5086,7 +5086,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2656 + // line internal/php7/php7.y:2656 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5094,13 +5094,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2662 + // line internal/php7/php7.y:2662 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2669 + // line internal/php7/php7.y:2669 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5121,7 +5121,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2691 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5142,7 +5142,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2713 + // line internal/php7/php7.y:2713 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5151,7 +5151,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2720 + // line internal/php7/php7.y:2720 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5159,25 +5159,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2729 + // line internal/php7/php7.y:2729 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2736 + // line internal/php7/php7.y:2736 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2740 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2747 + // line internal/php7/php7.y:2747 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5186,13 +5186,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2754 + // line internal/php7/php7.y:2754 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2761 + // line internal/php7/php7.y:2761 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5209,7 +5209,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2779 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5224,7 +5224,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2792 + // line internal/php7/php7.y:2792 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5236,7 +5236,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2805 + // line internal/php7/php7.y:2805 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5258,7 +5258,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2825 + // line internal/php7/php7.y:2825 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5279,7 +5279,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2844 + // line internal/php7/php7.y:2844 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5292,7 +5292,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2855 + // line internal/php7/php7.y:2855 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5306,7 +5306,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2867 + // line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5318,7 +5318,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2877 + // line internal/php7/php7.y:2877 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5331,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2888 + // line internal/php7/php7.y:2888 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5344,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2899 + // line internal/php7/php7.y:2899 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5357,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2910 + // line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5370,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2921 + // line internal/php7/php7.y:2921 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5383,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2932 + // line internal/php7/php7.y:2932 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5396,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2943 + // line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5409,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2954 + // line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5422,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2965 + // line internal/php7/php7.y:2965 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5435,7 +5435,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2976 + // line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5448,7 +5448,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2987 + // line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5461,7 +5461,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2998 + // line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5474,7 +5474,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3009 + // line internal/php7/php7.y:3009 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5487,7 +5487,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3020 + // line internal/php7/php7.y:3020 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5500,7 +5500,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3031 + // line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5512,7 +5512,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5525,7 +5525,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3052 + // line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5537,7 +5537,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3062 + // line internal/php7/php7.y:3062 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5550,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3073 + // line internal/php7/php7.y:3073 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5563,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3084 + // line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5576,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5589,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3106 + // line internal/php7/php7.y:3106 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5602,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3117 + // line internal/php7/php7.y:3117 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5615,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3128 + // line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5628,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3139 + // line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5641,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3150 + // line internal/php7/php7.y:3150 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5653,7 +5653,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3160 + // line internal/php7/php7.y:3160 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5666,7 +5666,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3171 + // line internal/php7/php7.y:3171 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5679,7 +5679,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3182 + // line internal/php7/php7.y:3182 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5692,7 +5692,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3193 + // line internal/php7/php7.y:3193 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5705,7 +5705,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3204 + // line internal/php7/php7.y:3204 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5718,7 +5718,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3215 + // line internal/php7/php7.y:3215 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5731,7 +5731,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3226 + // line internal/php7/php7.y:3226 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5744,7 +5744,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3237 + // line internal/php7/php7.y:3237 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5757,7 +5757,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3248 + // line internal/php7/php7.y:3248 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5769,7 +5769,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5781,7 +5781,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3268 + // line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5793,7 +5793,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3278 + // line internal/php7/php7.y:3278 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5805,7 +5805,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3288 + // line internal/php7/php7.y:3288 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5818,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3299 + // line internal/php7/php7.y:3299 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5831,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5844,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3321 + // line internal/php7/php7.y:3321 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5858,7 +5858,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3333 + // line internal/php7/php7.y:3333 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5871,7 +5871,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3344 + // line internal/php7/php7.y:3344 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5884,7 +5884,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3355 + // line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5897,7 +5897,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3366 + // line internal/php7/php7.y:3366 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5910,7 +5910,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3377 + // line internal/php7/php7.y:3377 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5923,20 +5923,20 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3388 { - yyVAL.node = &ast.ExprInstanceOf{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.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Expr: yyDollar[1].node, + InstanceOfTkn: yyDollar[2].token, + Class: yyDollar[3].node, + } } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3399 + // line internal/php7/php7.y:3399 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5953,13 +5953,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3414 + // line internal/php7/php7.y:3414 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3418 + // line internal/php7/php7.y:3418 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5973,7 +5973,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3430 + // line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5987,7 +5987,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3442 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6000,13 +6000,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3453 + // line internal/php7/php7.y:3453 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3457 + // line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6019,7 +6019,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3468 + // line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6032,7 +6032,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3479 + // line internal/php7/php7.y:3479 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6045,7 +6045,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6058,7 +6058,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3501 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6071,7 +6071,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3512 + // line internal/php7/php7.y:3512 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6084,7 +6084,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3523 + // line internal/php7/php7.y:3523 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6097,7 +6097,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3534 + // line internal/php7/php7.y:3534 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6116,7 +6116,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3551 + // line internal/php7/php7.y:3551 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6128,13 +6128,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3561 + // line internal/php7/php7.y:3561 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3565 + // line internal/php7/php7.y:3565 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6146,7 +6146,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3575 + // line internal/php7/php7.y:3575 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6158,7 +6158,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3585 + // line internal/php7/php7.y:3585 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6170,7 +6170,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3595 + // line internal/php7/php7.y:3595 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6182,7 +6182,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3605 + // line internal/php7/php7.y:3605 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6195,7 +6195,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3616 + // line internal/php7/php7.y:3616 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6207,13 +6207,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3626 + // line internal/php7/php7.y:3626 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3630 + // line internal/php7/php7.y:3630 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6228,7 +6228,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6249,7 +6249,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3665 + // line internal/php7/php7.y:3665 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6268,25 +6268,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3689 + // line internal/php7/php7.y:3689 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3693 + // line internal/php7/php7.y:3693 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3700 + // line internal/php7/php7.y:3700 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3704 + // line internal/php7/php7.y:3704 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6301,7 +6301,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3720 + // line internal/php7/php7.y:3720 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6310,7 +6310,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3727 + // line internal/php7/php7.y:3727 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6318,7 +6318,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3736 + // line internal/php7/php7.y:3736 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6337,7 +6337,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3753 + // line internal/php7/php7.y:3753 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6359,7 +6359,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3776 + // line internal/php7/php7.y:3776 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6373,7 +6373,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3788 + // line internal/php7/php7.y:3788 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6386,7 +6386,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3799 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6399,7 +6399,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3810 + // line internal/php7/php7.y:3810 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6413,7 +6413,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3825 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6425,31 +6425,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3835 + // line internal/php7/php7.y:3835 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3842 + // line internal/php7/php7.y:3842 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3846 + // line internal/php7/php7.y:3846 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3853 + // line internal/php7/php7.y:3853 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3857 + // line internal/php7/php7.y:3857 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6466,13 +6466,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3875 + // line internal/php7/php7.y:3875 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3879 + // line internal/php7/php7.y:3879 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6486,25 +6486,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3891 + // line internal/php7/php7.y:3891 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3898 + // line internal/php7/php7.y:3898 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3902 + // line internal/php7/php7.y:3902 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3909 + // line internal/php7/php7.y:3909 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6519,7 +6519,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3922 + // line internal/php7/php7.y:3922 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6533,7 +6533,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3934 + // line internal/php7/php7.y:3934 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6545,7 +6545,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3947 + // line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6557,7 +6557,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3957 + // line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6569,7 +6569,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3967 + // line internal/php7/php7.y:3967 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6581,7 +6581,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3977 + // line internal/php7/php7.y:3977 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6593,7 +6593,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3987 + // line internal/php7/php7.y:3987 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6605,7 +6605,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3997 + // line internal/php7/php7.y:3997 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6617,7 +6617,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4007 + // line internal/php7/php7.y:4007 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6629,7 +6629,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4017 + // line internal/php7/php7.y:4017 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6641,7 +6641,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4027 + // line internal/php7/php7.y:4027 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6653,7 +6653,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4037 + // line internal/php7/php7.y:4037 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6665,7 +6665,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4047 + // line internal/php7/php7.y:4047 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6686,7 +6686,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4066 + // line internal/php7/php7.y:4066 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6698,7 +6698,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4076 + // line internal/php7/php7.y:4076 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6711,7 +6711,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4087 + // line internal/php7/php7.y:4087 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6724,19 +6724,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4098 + // line internal/php7/php7.y:4098 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4102 + // line internal/php7/php7.y:4102 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4109 + // line internal/php7/php7.y:4109 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6747,7 +6747,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4118 + // line internal/php7/php7.y:4118 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6766,7 +6766,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4135 + // line internal/php7/php7.y:4135 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6785,43 +6785,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4155 + // line internal/php7/php7.y:4155 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4159 + // line internal/php7/php7.y:4159 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4166 + // line internal/php7/php7.y:4166 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4170 + // line internal/php7/php7.y:4170 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4177 + // line internal/php7/php7.y:4177 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4184 + // line internal/php7/php7.y:4184 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4188 + // line internal/php7/php7.y:4188 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6838,19 +6838,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4203 + // line internal/php7/php7.y:4203 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4210 + // line internal/php7/php7.y:4210 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4214 + // line internal/php7/php7.y:4214 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6867,19 +6867,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4229 + // line internal/php7/php7.y:4229 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4236 + // line internal/php7/php7.y:4236 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4240 + // line internal/php7/php7.y:4240 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6893,7 +6893,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4252 + // line internal/php7/php7.y:4252 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6907,7 +6907,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4264 + // line internal/php7/php7.y:4264 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6921,7 +6921,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4276 + // line internal/php7/php7.y:4276 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6934,25 +6934,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4287 + // line internal/php7/php7.y:4287 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4294 + // line internal/php7/php7.y:4294 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4298 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4302 + // line internal/php7/php7.y:4302 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6965,7 +6965,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4316 + // line internal/php7/php7.y:4316 { name := &ast.Identifier{ Node: ast.Node{ @@ -6984,7 +6984,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4333 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6998,7 +6998,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4345 + // line internal/php7/php7.y:4345 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7010,7 +7010,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4358 + // line internal/php7/php7.y:4358 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7023,7 +7023,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4369 + // line internal/php7/php7.y:4369 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7036,13 +7036,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4383 + // line internal/php7/php7.y:4383 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4387 + // line internal/php7/php7.y:4387 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7056,7 +7056,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4399 + // line internal/php7/php7.y:4399 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7070,7 +7070,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4411 + // line internal/php7/php7.y:4411 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7083,7 +7083,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4422 + // line internal/php7/php7.y:4422 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7096,7 +7096,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4433 + // line internal/php7/php7.y:4433 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7109,7 +7109,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4447 + // line internal/php7/php7.y:4447 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7121,7 +7121,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4457 + // line internal/php7/php7.y:4457 { yyVAL.node = yyDollar[2].node @@ -7131,13 +7131,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4465 + // line internal/php7/php7.y:4465 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4472 + // line internal/php7/php7.y:4472 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7149,7 +7149,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4482 + // line internal/php7/php7.y:4482 { yyVAL.node = yyDollar[2].node @@ -7159,13 +7159,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4490 + // line internal/php7/php7.y:4490 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4497 + // line internal/php7/php7.y:4497 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7178,19 +7178,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4511 + // line internal/php7/php7.y:4511 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4515 + // line internal/php7/php7.y:4515 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4522 + // line internal/php7/php7.y:4522 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7199,7 +7199,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4529 + // line internal/php7/php7.y:4529 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7207,7 +7207,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4538 + // line internal/php7/php7.y:4538 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7220,7 +7220,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4549 + // line internal/php7/php7.y:4549 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7231,7 +7231,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4558 + // line internal/php7/php7.y:4558 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7249,7 +7249,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4574 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7265,7 +7265,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4588 + // line internal/php7/php7.y:4588 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7277,7 +7277,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4598 + // line internal/php7/php7.y:4598 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7299,7 +7299,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4618 + // line internal/php7/php7.y:4618 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7319,13 +7319,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4639 + // line internal/php7/php7.y:4639 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4643 + // line internal/php7/php7.y:4643 { yyVAL.list = append( yyDollar[1].list, @@ -7340,13 +7340,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4656 + // line internal/php7/php7.y:4656 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4660 + // line internal/php7/php7.y:4660 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7361,7 +7361,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4676 + // line internal/php7/php7.y:4676 { name := &ast.Identifier{ Node: ast.Node{ @@ -7380,7 +7380,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4693 + // line internal/php7/php7.y:4693 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7405,7 +7405,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4716 + // line internal/php7/php7.y:4716 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7433,7 +7433,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4742 + // line internal/php7/php7.y:4742 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7448,7 +7448,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4755 + // line internal/php7/php7.y:4755 { name := &ast.Identifier{ Node: ast.Node{ @@ -7470,7 +7470,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4775 + // line internal/php7/php7.y:4775 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7497,7 +7497,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4800 + // line internal/php7/php7.y:4800 { yyVAL.node = yyDollar[2].node @@ -7507,7 +7507,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4811 + // line internal/php7/php7.y:4811 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7519,7 +7519,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4821 + // line internal/php7/php7.y:4821 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7542,7 +7542,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4842 + // line internal/php7/php7.y:4842 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7570,7 +7570,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4868 + // line internal/php7/php7.y:4868 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7589,25 +7589,26 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4888 + // line internal/php7/php7.y:4888 { - yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} + if yyDollar[4].token != nil { + yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) + } - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.SkippedTokens) - if yyDollar[4].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.SkippedTokens, yyDollar[5].token.SkippedTokens...)) + yyVAL.node = &ast.ExprIsset{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + }, + IssetTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Vars: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[5].token, } } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4904 + // line internal/php7/php7.y:4905 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7621,7 +7622,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4916 + // line internal/php7/php7.y:4917 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7633,7 +7634,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4926 + // line internal/php7/php7.y:4927 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7645,7 +7646,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4936 + // line internal/php7/php7.y:4937 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7659,7 +7660,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4948 + // line internal/php7/php7.y:4949 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7671,7 +7672,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4958 + // line internal/php7/php7.y:4959 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7683,22 +7684,24 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4971 + // line internal/php7/php7.y:4972 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4975 + // line internal/php7/php7.y:4978 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4985 + // line internal/php7/php7.y:4988 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 5fe9dd0..2e1cdb4 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -247,7 +247,7 @@ import ( %type callable_expr callable_variable static_member new_variable %type encaps_var encaps_var_offset echo_expr_list catch_name_list name_list %type if_stmt const_list non_empty_argument_list property_list -%type alt_if_stmt lexical_var_list +%type alt_if_stmt lexical_var_list isset_variables %type if_stmt_without_else %type class_const_decl %type alt_if_stmt_without_else @@ -275,7 +275,7 @@ import ( %type for_exprs non_empty_for_exprs %type unprefixed_use_declarations inline_use_declarations %type case_list trait_adaptation_list -%type use_declarations isset_variables +%type use_declarations %type top_statement_list %type inner_statement_list parameter_list non_empty_parameter_list class_statement_list %type method_modifiers variable_modifiers @@ -3386,14 +3386,14 @@ expr_without_variable: } | expr T_INSTANCEOF class_name_reference { - $$ = &ast.ExprInstanceOf{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Expr: $1, + InstanceOfTkn: $2, + Class: $3, + } } | '(' expr ')' { @@ -4886,18 +4886,19 @@ encaps_var_offset: internal_functions_in_yacc: T_ISSET '(' isset_variables possible_comma ')' { - $$ = &ast.ExprIsset{ast.Node{}, $3} + if $4 != nil { + $3.(*ast.ParserSeparatedList).SeparatorTkns = append($3.(*ast.ParserSeparatedList).SeparatorTkns, $4) + } - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Isset, $2.SkippedTokens) - if $4 == nil { - yylex.(*Parser).setFreeFloating($$, token.VarList, $5.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.SkippedTokens, $5.SkippedTokens...)) + $$ = &ast.ExprIsset{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $5), + }, + IssetTkn: $1, + OpenParenthesisTkn: $2, + Vars: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: $5, } } | T_EMPTY '(' expr ')' @@ -4969,14 +4970,16 @@ internal_functions_in_yacc: isset_variables: isset_variable { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | isset_variables ',' isset_variable { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 93d9001..54ae3de 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1175,8 +1175,9 @@ func (n *ExprIncludeOnce) Accept(v NodeVisitor) { // ExprInstanceOf node type ExprInstanceOf struct { Node - Expr Vertex - Class Vertex + Expr Vertex + InstanceOfTkn *token.Token + Class Vertex } func (n *ExprInstanceOf) Accept(v NodeVisitor) { @@ -1186,7 +1187,11 @@ func (n *ExprInstanceOf) Accept(v NodeVisitor) { // ExprIsset node type ExprIsset struct { Node - Vars []Vertex + IssetTkn *token.Token + OpenParenthesisTkn *token.Token + Vars []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token } func (n *ExprIsset) Accept(v NodeVisitor) {