diff --git a/internal/php5/php5.go b/internal/php5/php5.go index d7d7936..8f17274 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6170 +// line internal/php5/php5.y:6196 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -707,9 +707,9 @@ var yyAct = [...]int{ 448, 839, 944, 836, 566, 231, 948, 231, 1006, 949, 531, 842, 1005, 449, 725, 39, 232, 843, 232, 192, 841, 39, 394, 946, 260, 261, 389, 164, 341, 698, - 538, 519, 929, 290, 460, 973, 161, 157, 318, 314, - 519, 127, 403, 575, 401, 335, 945, 519, 519, 519, - 519, 519, 1009, 343, 939, 231, 528, 608, 531, 997, + 538, 519, 929, 290, 460, 973, 318, 314, 127, 403, + 519, 575, 401, 335, 945, 1009, 343, 519, 519, 519, + 519, 519, 939, 157, 161, 231, 528, 608, 531, 997, 970, 179, 182, 183, 991, 969, 232, 968, 189, 191, 967, 848, 849, 850, 847, 846, 845, 519, 838, 837, 835, 40, 177, 176, 568, 169, 171, 170, 192, 15, @@ -1606,9 +1606,9 @@ var yyPgo = [...]int{ 7, 1135, 52, 43, 42, 1134, 1132, 1131, 31, 1128, 1121, 4, 1120, 1119, 1114, 16, 1111, 1110, 1109, 1108, 48, 5, 1100, 1097, 1095, 1090, 1089, 2, 1087, 607, - 1086, 18, 202, 1084, 1083, 1082, 12, 1076, 1075, 6, - 19, 1074, 1073, 1072, 9, 50, 0, 1071, 1069, 1068, - 117, 1067, 1066, 599, 1064, 1063, 62, 8, 1062, 1060, + 1086, 1084, 1083, 18, 202, 1082, 1076, 1075, 12, 1074, + 1073, 6, 19, 1072, 1071, 1069, 9, 50, 0, 1068, + 1067, 1066, 117, 599, 1064, 1063, 62, 8, 1062, 1060, 1059, 1058, 14, 47, 1057, 1056, 1052, 1044, 1042, 1038, 3, 1034, 23, 1033, 1031, 1027, 35, 1026, 1022, 1019, 1018, 1014, 1008, 1002, 25, 1001, 1000, 999, 24, 996, @@ -1617,26 +1617,26 @@ var yyPgo = [...]int{ } var yyR1 = [...]int{ - 0, 151, 95, 95, 96, 96, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 97, 97, - 6, 6, 6, 6, 98, 98, 7, 7, 7, 7, - 99, 99, 8, 8, 8, 8, 55, 55, 100, 100, + 0, 151, 97, 97, 98, 98, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 99, 99, + 6, 6, 6, 6, 100, 100, 7, 7, 7, 7, + 101, 101, 8, 8, 8, 8, 55, 55, 102, 102, 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, 117, 117, 60, 60, 118, 118, 119, 119, 61, 115, 115, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 91, 91, 2, 93, 93, 92, 92, 126, 126, 90, - 90, 89, 89, 89, 87, 87, 86, 86, 59, 59, - 116, 116, 84, 84, 84, 84, 113, 113, 113, 4, - 4, 88, 88, 109, 109, 110, 110, 56, 56, 57, + 93, 93, 2, 95, 95, 94, 94, 126, 126, 92, + 92, 91, 91, 91, 89, 89, 88, 88, 59, 59, + 116, 116, 86, 86, 86, 86, 113, 113, 113, 4, + 4, 90, 90, 109, 109, 110, 110, 56, 56, 57, 57, 120, 120, 121, 121, 65, 65, 64, 64, 64, - 64, 82, 82, 82, 127, 127, 70, 70, 70, 70, - 101, 101, 29, 29, 29, 102, 102, 102, 102, 122, - 122, 67, 67, 67, 67, 69, 128, 128, 83, 83, + 64, 84, 84, 84, 127, 127, 70, 70, 70, 70, + 82, 82, 29, 29, 29, 81, 81, 81, 81, 122, + 122, 67, 67, 67, 67, 69, 128, 128, 85, 85, 129, 129, 130, 130, 71, 71, 72, 131, 131, 75, - 75, 74, 73, 73, 76, 76, 85, 85, 123, 123, + 75, 74, 73, 73, 76, 76, 87, 87, 123, 123, 124, 124, 132, 132, 77, 77, 77, 77, 77, 77, 125, 125, 125, 125, 68, 68, 114, 114, 112, 112, 111, 111, 138, 138, 136, 136, 137, 137, 137, 139, @@ -1648,11 +1648,11 @@ 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, 94, 94, 108, + 49, 49, 49, 49, 48, 48, 1, 96, 96, 108, 108, 108, 108, 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, 133, 133, - 133, 81, 81, 9, 9, 9, 9, 9, 9, 9, + 133, 83, 83, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 30, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, @@ -1729,7 +1729,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -95, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -97, -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, @@ -1739,99 +1739,99 @@ 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, -96, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -98, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -96, 144, 83, 10, -97, 37, 39, - -6, -96, 83, 146, 160, 147, 10, -100, -50, 148, + 159, 12, 148, -98, 144, 83, 10, -99, 37, 39, + -6, -98, 83, 146, 160, 147, 10, -102, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, - 146, -16, 146, -17, -21, -16, 146, -101, -29, 12, - 159, -102, -1, 12, -114, -16, 146, 131, 132, 88, + 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, + 159, -81, -1, 12, -114, -16, 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, 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, -96, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -98, 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, -133, 17, -103, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -96, 80, 83, + 77, 78, -16, 58, -45, -13, -43, -98, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, -16, 150, -103, 17, 17, 76, -103, 150, 148, -106, - -105, -16, 153, 150, 150, 83, -82, 148, -96, 79, - 150, 144, -12, 159, 79, -82, 144, 149, 146, 144, - -95, -96, 146, 160, -98, -7, -96, 83, -99, -8, - -96, 83, 29, -96, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -88, -27, 147, 21, -149, - -112, -111, -16, -84, 144, 147, 146, 146, 146, 146, + -105, -16, 153, 150, 150, 83, -84, 148, -98, 79, + 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, + -97, -98, 146, 160, -100, -7, -98, 83, -101, -8, + -98, 83, 29, -98, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -90, -27, 147, 21, -149, + -112, -111, -16, -86, 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, -115, - -58, -21, -21, -17, -116, 10, -100, 146, 146, 10, - 148, -91, 56, -93, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -116, 10, -102, 146, 146, 10, + 148, -93, 56, -95, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -107, -40, -21, 60, 83, -96, 79, 79, 149, 149, + -107, -40, -21, 60, 83, -98, 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, -81, -82, 79, 83, -96, 58, -12, 79, + 10, 144, -83, -84, 79, 83, -98, 58, -12, 79, -104, -38, -21, -17, -21, -16, -16, -15, 142, 76, 76, -15, -106, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -127, -52, -70, -17, -21, 153, 84, - -82, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -95, 145, -82, -6, 146, 160, 29, -96, - 146, 160, 29, -96, 10, 29, 162, -30, -79, -9, - -33, -96, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -109, -100, - -100, -50, 146, 160, -113, 146, -113, 146, -29, -16, + -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, + -16, 146, -97, 145, -84, -6, 146, 160, 29, -98, + 146, 160, 29, -98, 10, 29, 162, -30, -79, -9, + -33, -98, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -109, -102, + -102, -50, 146, 160, -113, 146, -113, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, 149, 160, 162, 145, 148, -120, -121, -65, -64, 61, - 62, -47, -96, 80, 83, -92, 57, -47, 144, -126, - -47, -17, -21, -21, 92, 149, 160, 148, -96, -139, + 62, -47, -98, 80, 83, -94, 57, -47, 144, -126, + -47, -17, -21, -21, 92, 149, 160, 148, -98, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -82, 150, 144, -12, -16, -42, -96, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -98, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, - 153, 151, 151, 149, 160, 149, -19, -16, -82, -82, - 151, 145, -82, -82, 145, 145, -7, 10, 29, -8, + 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, -96, 148, -134, -135, -79, 17, 79, -79, + 152, 83, -98, 148, -134, -135, -79, 17, 79, -79, -79, -79, -79, -79, 149, -56, 94, 95, -110, 22, 146, -112, -16, 145, 32, 33, -113, 31, -113, 145, - 162, -120, -16, 146, -58, -89, -21, 153, 60, -89, + 162, -120, -16, 146, -58, -91, -21, 153, 60, -91, -59, -27, 147, 10, -30, -117, 42, -120, 149, 160, - -149, 83, -96, 144, -126, -122, 160, -45, 162, -40, + -149, 83, -98, 144, -126, -122, 160, -45, 162, -40, -107, 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, - -96, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -98, -134, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -90, 59, -21, 148, - -90, -100, 162, -60, 43, 148, 149, -94, 45, -65, - -150, 84, -96, -122, 145, -67, -123, -68, -69, -124, + 146, 145, 146, 31, -30, 149, -92, 59, -21, 148, + -92, -102, 162, -60, 43, 148, 149, -96, 45, -65, + -150, 84, -98, -122, 145, -67, -123, -68, -69, -124, -132, 48, 39, 45, -77, 104, 103, 102, 99, 100, - 101, -47, -81, -16, 149, -15, 151, -141, 151, -140, + 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, -112, -4, - -100, 146, -94, 149, -89, -107, 149, 28, -30, 144, + -102, 146, -96, 149, -91, -107, 149, 28, -30, 144, -47, 144, 144, 148, 12, 145, -125, 12, 146, 160, -1, -77, 10, -128, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -100, 149, -100, 144, -86, - -27, 147, 149, -86, 146, -100, 12, -100, -100, -108, - 12, 153, 162, 146, 160, 162, 10, -149, 162, -83, - 160, 146, 144, -79, -100, -87, -27, 147, -100, -100, + -19, -79, 59, 146, 147, -102, 149, -102, 144, -88, + -27, 147, 149, -88, 146, -102, 12, -102, -102, -108, + 12, 153, 162, 146, 160, 162, 10, -149, 162, -85, + 160, 146, 144, -79, -102, -89, -27, 147, -102, -102, 145, 149, 145, 145, 149, 160, 12, -30, 12, -30, 162, 10, -30, -47, -129, -130, -71, -72, -73, -74, - -75, -47, 10, -100, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -102, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -100, 12, -30, -120, -131, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -118, -119, -61, 42, -85, - 146, 144, -47, -61, 148, -100, -47, 145, 12, 149, - 144, -100, 145, + 146, -102, 12, -30, -120, -131, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -118, -119, -61, 42, -87, + 146, 144, -47, -61, 148, -102, -47, 145, 12, 149, + 144, -102, 145, } var yyDef = [...]int{ @@ -3158,33 +3158,27 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1038 { - yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns, nil) + yyDollar[2].node.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1050 + // line internal/php5/php5.y:1047 { - yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns, nil) + yyDollar[2].node.(*ast.StmtStatic).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1062 + // line internal/php5/php5.y:1056 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3199,7 +3193,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1075 + // line internal/php5/php5.y:1069 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3211,7 +3205,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1085 + // line internal/php5/php5.y:1079 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3225,7 +3219,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1097 + // line internal/php5/php5.y:1091 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3241,7 +3235,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1111 + // line internal/php5/php5.y:1105 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3282,7 +3276,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1149 + // line internal/php5/php5.y:1143 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3323,7 +3317,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1187 + // line internal/php5/php5.y:1181 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3338,7 +3332,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1200 + // line internal/php5/php5.y:1194 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3351,7 +3345,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1211 + // line internal/php5/php5.y:1205 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3369,7 +3363,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1227 + // line internal/php5/php5.y:1221 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3383,7 +3377,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1239 + // line internal/php5/php5.y:1233 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3400,13 +3394,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1257 + // line internal/php5/php5.y:1251 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1261 + // line internal/php5/php5.y:1255 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3428,13 +3422,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1284 + // line internal/php5/php5.y:1278 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1288 + // line internal/php5/php5.y:1282 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3448,31 +3442,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1303 + // line internal/php5/php5.y:1297 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1307 + // line internal/php5/php5.y:1301 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1314 + // line internal/php5/php5.y:1308 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1318 + // line internal/php5/php5.y:1312 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1325 + // line internal/php5/php5.y:1319 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3493,13 +3487,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1347 + // line internal/php5/php5.y:1341 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1351 + // line internal/php5/php5.y:1345 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3508,49 +3502,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1355 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1368 + // line internal/php5/php5.y:1362 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1375 + // line internal/php5/php5.y:1369 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1382 + // line internal/php5/php5.y:1376 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1386 + // line internal/php5/php5.y:1380 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1393 + // line internal/php5/php5.y:1387 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1397 + // line internal/php5/php5.y:1391 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1404 + // line internal/php5/php5.y:1398 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3574,7 +3568,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1429 + // line internal/php5/php5.y:1423 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3602,7 +3596,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1455 + // line internal/php5/php5.y:1449 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3619,7 +3613,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1474 + // line internal/php5/php5.y:1468 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3631,7 +3625,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1484 + // line internal/php5/php5.y:1478 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3646,7 +3640,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1497 + // line internal/php5/php5.y:1491 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3658,7 +3652,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1507 + // line internal/php5/php5.y:1501 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3673,13 +3667,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1523 + // line internal/php5/php5.y:1517 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1527 + // line internal/php5/php5.y:1521 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3691,19 +3685,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1540 + // line internal/php5/php5.y:1534 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1547 + // line internal/php5/php5.y:1541 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1551 + // line internal/php5/php5.y:1545 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3715,13 +3709,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1564 + // line internal/php5/php5.y:1558 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1568 + // line internal/php5/php5.y:1562 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3733,13 +3727,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1581 + // line internal/php5/php5.y:1575 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1585 + // line internal/php5/php5.y:1579 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3753,13 +3747,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1597 + // line internal/php5/php5.y:1591 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1601 + // line internal/php5/php5.y:1595 { yyVAL.node = yyDollar[2].node @@ -3768,13 +3762,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1611 + // line internal/php5/php5.y:1605 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1615 + // line internal/php5/php5.y:1609 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3786,7 +3780,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1625 + // line internal/php5/php5.y:1619 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3800,7 +3794,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1640 + // line internal/php5/php5.y:1634 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3811,7 +3805,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1649 + // line internal/php5/php5.y:1643 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3831,7 +3825,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1670 + // line internal/php5/php5.y:1664 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3840,7 +3834,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1677 + // line internal/php5/php5.y:1671 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3861,7 +3855,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1700 + // line internal/php5/php5.y:1694 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3870,7 +3864,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1707 + // line internal/php5/php5.y:1701 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3891,7 +3885,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1730 + // line internal/php5/php5.y:1724 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3913,7 +3907,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1750 + // line internal/php5/php5.y:1744 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3934,7 +3928,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1773 + // line internal/php5/php5.y:1767 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3947,7 +3941,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1784 + // line internal/php5/php5.y:1778 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3961,7 +3955,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1796 + // line internal/php5/php5.y:1790 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3976,7 +3970,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1809 + // line internal/php5/php5.y:1803 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3992,13 +3986,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1827 + // line internal/php5/php5.y:1821 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1831 + // line internal/php5/php5.y:1825 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4012,7 +4006,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1843 + // line internal/php5/php5.y:1837 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4025,19 +4019,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1858 + // line internal/php5/php5.y:1852 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1862 + // line internal/php5/php5.y:1856 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1870 + // line internal/php5/php5.y:1864 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4048,7 +4042,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1879 + // line internal/php5/php5.y:1873 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4068,13 +4062,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1902 + // line internal/php5/php5.y:1896 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1906 + // line internal/php5/php5.y:1900 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4089,13 +4083,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1923 + // line internal/php5/php5.y:1917 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1927 + // line internal/php5/php5.y:1921 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4117,13 +4111,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1951 + // line internal/php5/php5.y:1945 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1955 + // line internal/php5/php5.y:1949 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4135,13 +4129,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1969 + // line internal/php5/php5.y:1963 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1973 + // line internal/php5/php5.y:1967 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4160,25 +4154,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1994 + // line internal/php5/php5.y:1988 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1998 + // line internal/php5/php5.y:1992 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2005 + // line internal/php5/php5.y:1999 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2009 + // line internal/php5/php5.y:2003 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4187,7 +4181,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2019 + // line internal/php5/php5.y:2013 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4223,7 +4217,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2053 + // line internal/php5/php5.y:2047 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4260,13 +4254,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2092 + // line internal/php5/php5.y:2086 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2096 + // line internal/php5/php5.y:2090 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4278,7 +4272,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2106 + // line internal/php5/php5.y:2100 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4290,13 +4284,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2116 + // line internal/php5/php5.y:2110 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2124 + // line internal/php5/php5.y:2118 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4309,7 +4303,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2135 + // line internal/php5/php5.y:2129 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4322,7 +4316,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2146 + // line internal/php5/php5.y:2140 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4337,13 +4331,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2163 + // line internal/php5/php5.y:2157 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2167 + // line internal/php5/php5.y:2161 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4352,7 +4346,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2177 + // line internal/php5/php5.y:2171 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4364,7 +4358,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2187 + // line internal/php5/php5.y:2181 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4376,7 +4370,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2197 + // line internal/php5/php5.y:2191 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4388,7 +4382,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2207 + // line internal/php5/php5.y:2201 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4400,22 +4394,24 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2220 + // line internal/php5/php5.y:2214 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + 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) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2227 + // line internal/php5/php5.y:2221 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtGlobal{ + Vars: []ast.Vertex{yyDollar[1].node}, + } } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2235 + // line internal/php5/php5.y:2231 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4429,7 +4425,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2247 + // line internal/php5/php5.y:2243 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4441,7 +4437,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2257 + // line internal/php5/php5.y:2253 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4455,91 +4451,121 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2273 + // line internal/php5/php5.y:2269 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} - yyVAL.list = append(yyDollar[1].list, staticVar) + + yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + Var: variable, + }) + yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) + + yyVAL.node = yyDollar[1].node // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2289 + // line internal/php5/php5.y:2291 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[5].node} - yyVAL.list = append(yyDollar[1].list, staticVar) + + yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), + }, + Var: variable, + EqualTkn: yyDollar[4].token, + Expr: yyDollar[5].node, + }) + yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) + + yyVAL.node = yyDollar[1].node // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2306 + // line internal/php5/php5.y:2315 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} - yyVAL.list = []ast.Vertex{staticVar} + + yyVAL.node = &ast.StmtStatic{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + Var: variable, + }, + }, + } // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2321 + // line internal/php5/php5.y:2338 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[3].node} - yyVAL.list = []ast.Vertex{staticVar} + + yyVAL.node = &ast.StmtStatic{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + Var: variable, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + }, + }, + } // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2341 + // line internal/php5/php5.y:2367 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2345 + // line internal/php5/php5.y:2371 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2353 + // line internal/php5/php5.y:2379 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4553,7 +4579,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2365 + // line internal/php5/php5.y:2391 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4561,13 +4587,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2371 + // line internal/php5/php5.y:2397 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2375 + // line internal/php5/php5.y:2401 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4598,7 +4624,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2407 + // line internal/php5/php5.y:2433 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4610,13 +4636,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2420 + // line internal/php5/php5.y:2446 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2424 + // line internal/php5/php5.y:2450 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4630,7 +4656,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2436 + // line internal/php5/php5.y:2462 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4642,7 +4668,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2472 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4654,31 +4680,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2459 + // line internal/php5/php5.y:2485 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2463 + // line internal/php5/php5.y:2489 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2470 + // line internal/php5/php5.y:2496 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2474 + // line internal/php5/php5.y:2500 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2481 + // line internal/php5/php5.y:2507 { yyVAL.node = yyDollar[1].node @@ -4688,7 +4714,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2489 + // line internal/php5/php5.y:2515 { yyVAL.node = yyDollar[1].node @@ -4698,7 +4724,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2500 + // line internal/php5/php5.y:2526 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4711,13 +4737,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2514 + // line internal/php5/php5.y:2540 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2518 + // line internal/php5/php5.y:2544 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4726,7 +4752,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2528 + // line internal/php5/php5.y:2554 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4740,13 +4766,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2540 + // line internal/php5/php5.y:2566 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2547 + // line internal/php5/php5.y:2573 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4762,7 +4788,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2564 + // line internal/php5/php5.y:2590 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4778,7 +4804,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2578 + // line internal/php5/php5.y:2604 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4791,19 +4817,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2592 + // line internal/php5/php5.y:2618 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2596 + // line internal/php5/php5.y:2622 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2603 + // line internal/php5/php5.y:2629 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4816,7 +4842,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2614 + // line internal/php5/php5.y:2640 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4829,13 +4855,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2628 + // line internal/php5/php5.y:2654 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2632 + // line internal/php5/php5.y:2658 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4848,31 +4874,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2646 + // line internal/php5/php5.y:2672 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2650 + // line internal/php5/php5.y:2676 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2657 + // line internal/php5/php5.y:2683 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2661 + // line internal/php5/php5.y:2687 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2668 + // line internal/php5/php5.y:2694 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4884,7 +4910,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2704 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4896,7 +4922,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2688 + // line internal/php5/php5.y:2714 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4908,7 +4934,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2698 + // line internal/php5/php5.y:2724 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4920,7 +4946,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2708 + // line internal/php5/php5.y:2734 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4932,7 +4958,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2718 + // line internal/php5/php5.y:2744 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4944,7 +4970,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2731 + // line internal/php5/php5.y:2757 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4962,7 +4988,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2747 + // line internal/php5/php5.y:2773 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4981,7 +5007,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2764 + // line internal/php5/php5.y:2790 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4998,7 +5024,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2779 + // line internal/php5/php5.y:2805 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5016,7 +5042,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2798 + // line internal/php5/php5.y:2824 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5041,7 +5067,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2821 + // line internal/php5/php5.y:2847 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5069,7 +5095,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2850 + // line internal/php5/php5.y:2876 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5078,25 +5104,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2857 + // line internal/php5/php5.y:2883 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2865 + // line internal/php5/php5.y:2891 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2869 + // line internal/php5/php5.y:2895 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2876 + // line internal/php5/php5.y:2902 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5105,25 +5131,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2883 + // line internal/php5/php5.y:2909 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2890 + // line internal/php5/php5.y:2916 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2894 + // line internal/php5/php5.y:2920 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2901 + // line internal/php5/php5.y:2927 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5137,7 +5163,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2913 + // line internal/php5/php5.y:2939 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5151,37 +5177,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2928 + // line internal/php5/php5.y:2954 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2932 + // line internal/php5/php5.y:2958 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2936 + // line internal/php5/php5.y:2962 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2943 + // line internal/php5/php5.y:2969 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2947 + // line internal/php5/php5.y:2973 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2954 + // line internal/php5/php5.y:2980 { if yyDollar[3].node != nil { @@ -5197,7 +5223,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2971 + // line internal/php5/php5.y:2997 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5214,7 +5240,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2986 + // line internal/php5/php5.y:3012 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5227,7 +5253,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2997 + // line internal/php5/php5.y:3023 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5241,7 +5267,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3009 + // line internal/php5/php5.y:3035 { var _new *ast.ExprNew @@ -5268,7 +5294,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3034 + // line internal/php5/php5.y:3060 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5280,7 +5306,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3044 + // line internal/php5/php5.y:3070 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5292,7 +5318,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3054 + // line internal/php5/php5.y:3080 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5305,7 +5331,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3065 + // line internal/php5/php5.y:3091 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5318,7 +5344,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3076 + // line internal/php5/php5.y:3102 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5357,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3087 + // line internal/php5/php5.y:3113 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5370,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3098 + // line internal/php5/php5.y:3124 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5383,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3109 + // line internal/php5/php5.y:3135 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5396,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3120 + // line internal/php5/php5.y:3146 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5409,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3131 + // line internal/php5/php5.y:3157 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5422,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3142 + // line internal/php5/php5.y:3168 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5435,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3153 + // line internal/php5/php5.y:3179 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5448,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3164 + // line internal/php5/php5.y:3190 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5435,7 +5461,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3175 + // line internal/php5/php5.y:3201 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5448,7 +5474,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3186 + // line internal/php5/php5.y:3212 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5460,7 +5486,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3196 + // line internal/php5/php5.y:3222 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5473,7 +5499,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3207 + // line internal/php5/php5.y:3233 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5485,7 +5511,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3217 + // line internal/php5/php5.y:3243 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5498,7 +5524,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3228 + // line internal/php5/php5.y:3254 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5511,7 +5537,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3239 + // line internal/php5/php5.y:3265 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5524,7 +5550,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3250 + // line internal/php5/php5.y:3276 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5537,7 +5563,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3261 + // line internal/php5/php5.y:3287 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5576,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3272 + // line internal/php5/php5.y:3298 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5589,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3283 + // line internal/php5/php5.y:3309 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5602,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3294 + // line internal/php5/php5.y:3320 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5615,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3305 + // line internal/php5/php5.y:3331 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5628,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3316 + // line internal/php5/php5.y:3342 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5641,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3327 + // line internal/php5/php5.y:3353 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5654,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3338 + // line internal/php5/php5.y:3364 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5667,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3349 + // line internal/php5/php5.y:3375 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5680,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3360 + // line internal/php5/php5.y:3386 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5693,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3371 + // line internal/php5/php5.y:3397 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5706,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3382 + // line internal/php5/php5.y:3408 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5719,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3393 + // line internal/php5/php5.y:3419 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5732,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3404 + // line internal/php5/php5.y:3430 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5718,7 +5744,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3414 + // line internal/php5/php5.y:3440 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5730,7 +5756,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3424 + // line internal/php5/php5.y:3450 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5742,7 +5768,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3434 + // line internal/php5/php5.y:3460 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5754,7 +5780,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3444 + // line internal/php5/php5.y:3470 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5767,7 +5793,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3455 + // line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5780,7 +5806,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3466 + // line internal/php5/php5.y:3492 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5819,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3477 + // line internal/php5/php5.y:3503 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5833,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3489 + // line internal/php5/php5.y:3515 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5846,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3500 + // line internal/php5/php5.y:3526 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5859,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3511 + // line internal/php5/php5.y:3537 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5846,7 +5872,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3522 + // line internal/php5/php5.y:3548 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5885,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3533 + // line internal/php5/php5.y:3559 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,19 +5898,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3544 + // line internal/php5/php5.y:3570 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3548 + // line internal/php5/php5.y:3574 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3552 + // line internal/php5/php5.y:3578 { yyVAL.node = yyDollar[2].node @@ -5916,7 +5942,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3582 + // line internal/php5/php5.y:3608 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5930,7 +5956,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3594 + // line internal/php5/php5.y:3620 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5944,13 +5970,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3606 + // line internal/php5/php5.y:3632 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3610 + // line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5963,7 +5989,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3621 + // line internal/php5/php5.y:3647 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5976,7 +6002,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3632 + // line internal/php5/php5.y:3658 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5989,7 +6015,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3643 + // line internal/php5/php5.y:3669 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6002,7 +6028,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3654 + // line internal/php5/php5.y:3680 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6015,7 +6041,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3665 + // line internal/php5/php5.y:3691 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6028,7 +6054,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3676 + // line internal/php5/php5.y:3702 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6041,7 +6067,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3687 + // line internal/php5/php5.y:3713 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6061,7 +6087,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3705 + // line internal/php5/php5.y:3731 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6073,25 +6099,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3715 + // line internal/php5/php5.y:3741 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3719 + // line internal/php5/php5.y:3745 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3723 + // line internal/php5/php5.y:3749 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3727 + // line internal/php5/php5.y:3753 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6103,7 +6129,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3737 + // line internal/php5/php5.y:3763 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6115,7 +6141,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3747 + // line internal/php5/php5.y:3773 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6127,7 +6153,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3757 + // line internal/php5/php5.y:3783 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6154,7 +6180,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3781 + // line internal/php5/php5.y:3807 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6182,7 +6208,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3809 + // line internal/php5/php5.y:3835 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6194,7 +6220,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3819 + // line internal/php5/php5.y:3845 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6206,7 +6232,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3829 + // line internal/php5/php5.y:3855 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6219,7 +6245,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3840 + // line internal/php5/php5.y:3866 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6232,7 +6258,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3854 + // line internal/php5/php5.y:3880 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6245,7 +6271,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3865 + // line internal/php5/php5.y:3891 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6258,7 +6284,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3876 + // line internal/php5/php5.y:3902 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6274,7 +6300,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3890 + // line internal/php5/php5.y:3916 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6287,7 +6313,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3904 + // line internal/php5/php5.y:3930 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6301,7 +6327,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3916 + // line internal/php5/php5.y:3942 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6314,19 +6340,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3930 + // line internal/php5/php5.y:3956 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3937 + // line internal/php5/php5.y:3963 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3941 + // line internal/php5/php5.y:3967 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6340,7 +6366,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3956 + // line internal/php5/php5.y:3982 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6356,7 +6382,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3970 + // line internal/php5/php5.y:3996 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6375,7 +6401,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3987 + // line internal/php5/php5.y:4013 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6390,7 +6416,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4000 + // line internal/php5/php5.y:4026 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6408,7 +6434,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4019 + // line internal/php5/php5.y:4045 { name := &ast.NameName{ Node: ast.Node{ @@ -6423,7 +6449,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4032 + // line internal/php5/php5.y:4058 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6440,7 +6466,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4047 + // line internal/php5/php5.y:4073 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6456,7 +6482,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4061 + // line internal/php5/php5.y:4087 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6469,7 +6495,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4072 + // line internal/php5/php5.y:4098 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6482,7 +6508,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4083 + // line internal/php5/php5.y:4109 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6495,7 +6521,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4094 + // line internal/php5/php5.y:4120 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6508,7 +6534,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4105 + // line internal/php5/php5.y:4131 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6520,7 +6546,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4118 + // line internal/php5/php5.y:4144 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6532,7 +6558,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4128 + // line internal/php5/php5.y:4154 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6543,7 +6569,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4137 + // line internal/php5/php5.y:4163 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6556,7 +6582,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4148 + // line internal/php5/php5.y:4174 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6568,7 +6594,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4161 + // line internal/php5/php5.y:4187 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6579,7 +6605,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4170 + // line internal/php5/php5.y:4196 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6592,7 +6618,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4181 + // line internal/php5/php5.y:4207 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6604,19 +6630,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4194 + // line internal/php5/php5.y:4220 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4198 + // line internal/php5/php5.y:4224 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4205 + // line internal/php5/php5.y:4231 { yyVAL.node = yyDollar[1].node @@ -6657,25 +6683,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4244 + // line internal/php5/php5.y:4270 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4252 + // line internal/php5/php5.y:4278 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4256 + // line internal/php5/php5.y:4282 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4264 + // line internal/php5/php5.y:4290 { yyVAL.list = yyDollar[2].list @@ -6684,13 +6710,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4274 + // line internal/php5/php5.y:4300 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4304 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6706,19 +6732,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4292 + // line internal/php5/php5.y:4318 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4299 + // line internal/php5/php5.y:4325 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4303 + // line internal/php5/php5.y:4329 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6728,25 +6754,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4311 + // line internal/php5/php5.y:4337 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4318 + // line internal/php5/php5.y:4344 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4322 + // line internal/php5/php5.y:4348 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4329 + // line internal/php5/php5.y:4355 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6758,7 +6784,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4339 + // line internal/php5/php5.y:4365 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6770,7 +6796,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4349 + // line internal/php5/php5.y:4375 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6782,7 +6808,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4359 + // line internal/php5/php5.y:4385 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6794,7 +6820,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4369 + // line internal/php5/php5.y:4395 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6806,7 +6832,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4379 + // line internal/php5/php5.y:4405 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6818,7 +6844,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4389 + // line internal/php5/php5.y:4415 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6830,7 +6856,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4399 + // line internal/php5/php5.y:4425 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6842,7 +6868,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4409 + // line internal/php5/php5.y:4435 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6854,7 +6880,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4419 + // line internal/php5/php5.y:4445 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6866,7 +6892,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4429 + // line internal/php5/php5.y:4455 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6880,7 +6906,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4441 + // line internal/php5/php5.y:4467 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6892,7 +6918,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4454 + // line internal/php5/php5.y:4480 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6908,25 +6934,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4471 + // line internal/php5/php5.y:4497 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4478 + // line internal/php5/php5.y:4504 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4482 + // line internal/php5/php5.y:4508 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4512 { name := &ast.NameName{ Node: ast.Node{ @@ -6941,7 +6967,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4499 + // line internal/php5/php5.y:4525 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6958,7 +6984,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4514 + // line internal/php5/php5.y:4540 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6974,7 +7000,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4528 + // line internal/php5/php5.y:4554 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6988,7 +7014,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4540 + // line internal/php5/php5.y:4566 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7001,13 +7027,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4551 + // line internal/php5/php5.y:4577 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4555 + // line internal/php5/php5.y:4581 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7019,13 +7045,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4565 + // line internal/php5/php5.y:4591 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4572 + // line internal/php5/php5.y:4598 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7038,7 +7064,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4583 + // line internal/php5/php5.y:4609 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7051,7 +7077,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4594 + // line internal/php5/php5.y:4620 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7064,7 +7090,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4605 + // line internal/php5/php5.y:4631 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7077,7 +7103,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4616 + // line internal/php5/php5.y:4642 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7090,7 +7116,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4627 + // line internal/php5/php5.y:4653 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7103,7 +7129,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4638 + // line internal/php5/php5.y:4664 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7116,7 +7142,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4649 + // line internal/php5/php5.y:4675 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7128,7 +7154,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4659 + // line internal/php5/php5.y:4685 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7140,7 +7166,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4669 + // line internal/php5/php5.y:4695 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7153,7 +7179,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4680 + // line internal/php5/php5.y:4706 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7166,7 +7192,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4691 + // line internal/php5/php5.y:4717 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7179,7 +7205,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4702 + // line internal/php5/php5.y:4728 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7192,7 +7218,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4713 + // line internal/php5/php5.y:4739 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7205,7 +7231,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4750 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7218,7 +7244,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4735 + // line internal/php5/php5.y:4761 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7231,7 +7257,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4746 + // line internal/php5/php5.y:4772 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7244,7 +7270,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4757 + // line internal/php5/php5.y:4783 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7257,7 +7283,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4768 + // line internal/php5/php5.y:4794 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7270,7 +7296,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4779 + // line internal/php5/php5.y:4805 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7283,7 +7309,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4816 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7296,7 +7322,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4801 + // line internal/php5/php5.y:4827 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7309,7 +7335,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4812 + // line internal/php5/php5.y:4838 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7322,7 +7348,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4823 + // line internal/php5/php5.y:4849 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7336,7 +7362,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4835 + // line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7349,7 +7375,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4846 + // line internal/php5/php5.y:4872 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7362,7 +7388,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4857 + // line internal/php5/php5.y:4883 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7375,7 +7401,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4868 + // line internal/php5/php5.y:4894 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7388,7 +7414,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4879 + // line internal/php5/php5.y:4905 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7402,7 +7428,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4891 + // line internal/php5/php5.y:4917 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7416,7 +7442,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4903 + // line internal/php5/php5.y:4929 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7428,7 +7454,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4913 + // line internal/php5/php5.y:4939 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7440,7 +7466,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4923 + // line internal/php5/php5.y:4949 { yyVAL.node = yyDollar[2].node @@ -7450,13 +7476,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4934 + // line internal/php5/php5.y:4960 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4938 + // line internal/php5/php5.y:4964 { name := &ast.NameName{ Node: ast.Node{ @@ -7471,7 +7497,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4951 + // line internal/php5/php5.y:4977 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7488,7 +7514,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4966 + // line internal/php5/php5.y:4992 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7504,7 +7530,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4983 + // line internal/php5/php5.y:5009 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7518,25 +7544,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4995 + // line internal/php5/php5.y:5021 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4999 + // line internal/php5/php5.y:5025 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5003 + // line internal/php5/php5.y:5029 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5007 + // line internal/php5/php5.y:5033 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7548,7 +7574,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5017 + // line internal/php5/php5.y:5043 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7560,7 +7586,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5027 + // line internal/php5/php5.y:5053 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7572,13 +7598,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5040 + // line internal/php5/php5.y:5066 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5070 { yyVAL.list = yyDollar[1].list @@ -7589,19 +7615,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5056 + // line internal/php5/php5.y:5082 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5060 + // line internal/php5/php5.y:5086 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5067 + // line internal/php5/php5.y:5093 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7616,7 +7642,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5080 + // line internal/php5/php5.y:5106 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7630,7 +7656,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5092 + // line internal/php5/php5.y:5118 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7644,7 +7670,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5104 + // line internal/php5/php5.y:5130 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7657,19 +7683,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5118 + // line internal/php5/php5.y:5144 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5122 + // line internal/php5/php5.y:5148 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5129 + // line internal/php5/php5.y:5155 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7686,7 +7712,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5144 + // line internal/php5/php5.y:5170 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7703,25 +7729,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5163 + // line internal/php5/php5.y:5189 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5171 + // line internal/php5/php5.y:5197 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5178 + // line internal/php5/php5.y:5204 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5185 + // line internal/php5/php5.y:5211 { yyVAL.node = yyDollar[1].node @@ -7779,25 +7805,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5241 + // line internal/php5/php5.y:5267 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5248 + // line internal/php5/php5.y:5274 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5252 + // line internal/php5/php5.y:5278 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5260 + // line internal/php5/php5.y:5286 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7811,7 +7837,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5275 + // line internal/php5/php5.y:5301 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7825,7 +7851,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5287 + // line internal/php5/php5.y:5313 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7839,7 +7865,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5328 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7848,31 +7874,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5312 + // line internal/php5/php5.y:5338 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5316 + // line internal/php5/php5.y:5342 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5346 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5327 + // line internal/php5/php5.y:5353 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5331 + // line internal/php5/php5.y:5357 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7884,7 +7910,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5370 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7897,7 +7923,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5355 + // line internal/php5/php5.y:5381 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7910,13 +7936,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5369 + // line internal/php5/php5.y:5395 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5376 + // line internal/php5/php5.y:5402 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7929,7 +7955,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5387 + // line internal/php5/php5.y:5413 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7942,31 +7968,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5401 + // line internal/php5/php5.y:5427 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5405 + // line internal/php5/php5.y:5431 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5435 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5417 + // line internal/php5/php5.y:5443 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5421 + // line internal/php5/php5.y:5447 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7978,13 +8004,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5431 + // line internal/php5/php5.y:5457 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5438 + // line internal/php5/php5.y:5464 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7997,7 +8023,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5449 + // line internal/php5/php5.y:5475 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8010,13 +8036,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5460 + // line internal/php5/php5.y:5486 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5468 + // line internal/php5/php5.y:5494 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8030,7 +8056,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5480 + // line internal/php5/php5.y:5506 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8044,25 +8070,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5495 + // line internal/php5/php5.y:5521 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5499 + // line internal/php5/php5.y:5525 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5507 + // line internal/php5/php5.y:5533 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5537 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8072,7 +8098,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5522 + // line internal/php5/php5.y:5548 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8086,7 +8112,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5534 + // line internal/php5/php5.y:5560 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8100,7 +8126,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5546 + // line internal/php5/php5.y:5572 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8110,7 +8136,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5557 + // line internal/php5/php5.y:5583 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8122,7 +8148,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5567 + // line internal/php5/php5.y:5593 { yyVAL.node = yyDollar[2].node @@ -8135,7 +8161,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5581 + // line internal/php5/php5.y:5607 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8148,7 +8174,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5592 + // line internal/php5/php5.y:5618 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8165,7 +8191,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5610 + // line internal/php5/php5.y:5636 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8178,7 +8204,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5621 + // line internal/php5/php5.y:5647 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8188,7 +8214,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5633 + // line internal/php5/php5.y:5659 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8200,7 +8226,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5643 + // line internal/php5/php5.y:5669 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8216,19 +8242,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5657 + // line internal/php5/php5.y:5683 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5665 + // line internal/php5/php5.y:5691 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5669 + // line internal/php5/php5.y:5695 { yyVAL.list = yyDollar[1].list @@ -8243,7 +8269,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5685 + // line internal/php5/php5.y:5711 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8258,7 +8284,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5698 + // line internal/php5/php5.y:5724 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8272,7 +8298,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5710 + // line internal/php5/php5.y:5736 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8286,7 +8312,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5722 + // line internal/php5/php5.y:5748 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8299,7 +8325,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5733 + // line internal/php5/php5.y:5759 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8317,7 +8343,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5749 + // line internal/php5/php5.y:5775 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8333,7 +8359,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5763 + // line internal/php5/php5.y:5789 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8350,7 +8376,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5778 + // line internal/php5/php5.y:5804 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8365,13 +8391,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5794 + // line internal/php5/php5.y:5820 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5798 + // line internal/php5/php5.y:5824 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8384,13 +8410,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5809 + // line internal/php5/php5.y:5835 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5813 + // line internal/php5/php5.y:5839 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8403,7 +8429,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5827 + // line internal/php5/php5.y:5853 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8417,7 +8443,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5839 + // line internal/php5/php5.y:5865 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8434,7 +8460,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5854 + // line internal/php5/php5.y:5880 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8453,7 +8479,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5871 + // line internal/php5/php5.y:5897 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8468,7 +8494,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5884 + // line internal/php5/php5.y:5910 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8485,7 +8511,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5899 + // line internal/php5/php5.y:5925 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8504,7 +8530,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5916 + // line internal/php5/php5.y:5942 { yyVAL.node = yyDollar[2].node @@ -8514,7 +8540,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5927 + // line internal/php5/php5.y:5953 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8526,7 +8552,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5937 + // line internal/php5/php5.y:5963 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8543,7 +8569,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5952 + // line internal/php5/php5.y:5978 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8557,7 +8583,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5967 + // line internal/php5/php5.y:5993 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8571,7 +8597,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5979 + // line internal/php5/php5.y:6005 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8593,7 +8619,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5999 + // line internal/php5/php5.y:6025 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8615,7 +8641,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6019 + // line internal/php5/php5.y:6045 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8627,7 +8653,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6029 + // line internal/php5/php5.y:6055 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8639,7 +8665,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6039 + // line internal/php5/php5.y:6065 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8661,7 +8687,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6059 + // line internal/php5/php5.y:6085 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8673,7 +8699,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6069 + // line internal/php5/php5.y:6095 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8685,13 +8711,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6082 + // line internal/php5/php5.y:6108 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6086 + // line internal/php5/php5.y:6112 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8700,19 +8726,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6096 + // line internal/php5/php5.y:6122 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6100 + // line internal/php5/php5.y:6126 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6107 + // line internal/php5/php5.y:6133 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8728,7 +8754,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6121 + // line internal/php5/php5.y:6147 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8744,7 +8770,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6138 + // line internal/php5/php5.y:6164 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8760,7 +8786,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6155 + // line internal/php5/php5.y:6181 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index be091ce..a912b40 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -239,7 +239,7 @@ import ( %type optional_class_type parameter class_entry_type class_statement class_constant_declaration %type trait_use_statement function_call_parameter trait_adaptation_statement trait_precedence trait_alias %type trait_method_reference_fully_qualified trait_method_reference trait_modifiers member_modifier method -%type static_scalar_value static_operation +%type static_scalar_value static_operation static_var_list global_var_list %type ctor_arguments function_call_parameter_list %type trait_adaptations %type switch_case_list @@ -253,7 +253,7 @@ import ( %type lexical_vars %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations -%type inner_statement_list global_var_list static_var_list encaps_list isset_variables non_empty_array_pair_list +%type inner_statement_list encaps_list isset_variables non_empty_array_pair_list %type array_pair_list assignment_list lexical_var_list elseif_list new_elseif_list non_empty_for_expr %type for_expr case_list echo_expr_list unset_variables declare_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list @@ -1036,27 +1036,21 @@ unticked_statement: } | T_GLOBAL global_var_list ';' { - $$ = &ast.StmtGlobal{ast.Node{}, $2} + $2.(*ast.StmtGlobal).GlobalTkn = $1 + $2.(*ast.StmtGlobal).SemiColonTkn = $3 + $2.(*ast.StmtGlobal).SeparatorTkns = append($2.(*ast.StmtGlobal).SeparatorTkns, nil) + $2.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition($1, $3) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_STATIC static_var_list ';' { - $$ = &ast.StmtStatic{ast.Node{}, $2} + $2.(*ast.StmtStatic).StaticTkn = $1 + $2.(*ast.StmtStatic).SemiColonTkn = $3 + $2.(*ast.StmtStatic).SeparatorTkns = append($2.(*ast.StmtStatic).SeparatorTkns, nil) + $2.(*ast.StmtStatic).Node.Position = position.NewTokensPosition($1, $3) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_ECHO echo_expr_list ';' { @@ -2218,14 +2212,16 @@ function_call_parameter: global_var_list: global_var_list ',' global_var { - $$ = append($1, $3) + $1.(*ast.StmtGlobal).Vars = append($1.(*ast.StmtGlobal).Vars, $3) + $1.(*ast.StmtGlobal).SeparatorTkns = append($1.(*ast.StmtGlobal).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | global_var { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtGlobal{ + Vars: []ast.Vertex{$1}, + } } ; @@ -2273,65 +2269,95 @@ static_var_list: { identifier := &ast.Identifier{ast.Node{}, $3.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} - $$ = append($1, staticVar) + + $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + Var: variable, + }) + $1.(*ast.StmtStatic).SeparatorTkns = append($1.(*ast.StmtStatic).SeparatorTkns, $2) + + $$ = $1 // save position identifier.GetNode().Position = position.NewTokenPosition($3) variable.GetNode().Position = position.NewTokenPosition($3) - staticVar.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } | static_var_list ',' T_VARIABLE '=' static_scalar { identifier := &ast.Identifier{ast.Node{}, $3.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, $5} - $$ = append($1, staticVar) + + $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($3, $5), + }, + Var: variable, + EqualTkn: $4, + Expr: $5, + }) + $1.(*ast.StmtStatic).SeparatorTkns = append($1.(*ast.StmtStatic).SeparatorTkns, $2) + + $$ = $1 // save position identifier.GetNode().Position = position.NewTokenPosition($3) variable.GetNode().Position = position.NewTokenPosition($3) - staticVar.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } | T_VARIABLE { identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} - $$ = []ast.Vertex{staticVar} + + $$ = &ast.StmtStatic{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + Var: variable, + }, + }, + } // save position identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) - staticVar.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' static_scalar { identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, $3} - $$ = []ast.Vertex{staticVar} + + $$ = &ast.StmtStatic{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + Var: variable, + EqualTkn: $2, + Expr: $3, + }, + }, + } // save position identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) - staticVar.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 7ce01b9..e26b9a2 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4819 +// line internal/php7/php7.y:4827 // line yacctab:1 var yyExca = [...]int{ @@ -631,13 +631,13 @@ var yyAct = [...]int{ 261, 743, 856, 259, 783, 780, 781, 848, 256, 195, 189, 744, 632, 855, 260, 261, 235, 539, 238, 225, 859, 283, 260, 261, 528, 865, 371, 108, 879, 877, - 890, 891, 886, 147, 838, 144, 892, 893, 328, 885, - 151, 730, 841, 853, 676, 897, 898, 830, 255, 872, - 796, 385, 786, 896, 903, 656, 852, 905, 934, 662, - 845, 227, 43, 42, 886, 908, 904, 902, 260, 261, - 16, 885, 15, 606, 271, 49, 48, 110, 50, 84, - 82, 72, 252, 62, 269, 61, 906, 918, 884, 883, - 882, 881, 742, 45, 734, 673, 315, 928, 926, 922, + 890, 891, 886, 838, 328, 151, 892, 893, 841, 885, + 676, 730, 830, 853, 255, 897, 898, 796, 385, 872, + 656, 852, 786, 896, 903, 934, 662, 905, 845, 227, + 43, 42, 16, 15, 886, 908, 904, 902, 260, 261, + 606, 885, 271, 49, 48, 110, 50, 84, 82, 72, + 252, 62, 269, 61, 884, 883, 906, 918, 882, 881, + 742, 147, 144, 45, 734, 673, 315, 928, 926, 922, 789, 924, 925, 586, 120, 929, 302, 3, 441, 768, 930, 707, 919, 640, 920, 933, 0, 4, 937, 89, 90, 70, 47, 94, 95, 36, 0, 107, 0, 27, @@ -1426,14 +1426,14 @@ var yyPgo = [...]int{ 0, 931, 929, 14, 8, 928, 4, 29, 13, 927, 11, 44, 78, 71, 52, 48, 926, 26, 924, 83, 21, 82, 916, 0, 84, 915, 914, 42, 190, 32, - 19, 38, 913, 79, 73, 912, 5, 911, 910, 909, - 908, 15, 62, 905, 904, 100, 87, 274, 903, 902, - 901, 6, 900, 86, 41, 899, 56, 49, 898, 897, - 896, 895, 894, 99, 893, 892, 890, 883, 10, 882, - 881, 46, 39, 40, 2, 16, 705, 43, 85, 880, - 879, 878, 12, 876, 875, 555, 50, 37, 871, 870, - 9, 762, 20, 553, 868, 18, 867, 864, 862, 88, - 860, 36, 858, 855, 25, 33, 854, 853, 45, 848, + 19, 38, 913, 912, 79, 911, 73, 910, 5, 909, + 908, 905, 904, 15, 62, 903, 902, 100, 87, 274, + 901, 900, 899, 6, 898, 86, 41, 897, 56, 49, + 896, 895, 894, 893, 892, 99, 890, 883, 882, 881, + 10, 880, 879, 46, 39, 40, 2, 16, 705, 43, + 85, 878, 876, 875, 12, 871, 870, 555, 50, 37, + 868, 867, 9, 762, 20, 553, 864, 18, 862, 860, + 858, 88, 855, 36, 854, 25, 33, 853, 45, 848, 846, 554, 845, 844, 839, 34, 837, 80, 1, 3, 832, 17, 831, 821, 803, 7, 767, 752, 28, } @@ -1447,28 +1447,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, 117, - 117, 95, 95, 10, 10, 10, 9, 9, 9, 9, + 117, 97, 97, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 91, 91, 16, 16, 18, 18, 7, 7, 105, - 105, 104, 104, 111, 111, 17, 17, 20, 20, 19, - 19, 99, 99, 118, 118, 22, 22, 22, 22, 22, + 9, 93, 93, 16, 16, 18, 18, 7, 7, 106, + 106, 105, 105, 111, 111, 17, 17, 20, 20, 19, + 19, 101, 101, 118, 118, 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, 97, 97, 96, 96, + 11, 11, 11, 11, 11, 11, 99, 99, 98, 98, 26, 26, 110, 110, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 76, 76, 14, 15, 86, 86, - 88, 88, 87, 87, 92, 92, 92, 92, 83, 83, - 82, 82, 25, 25, 80, 80, 80, 80, 108, 108, - 108, 8, 8, 84, 84, 67, 67, 65, 65, 69, - 69, 66, 66, 119, 119, 120, 120, 29, 29, 30, - 30, 75, 75, 73, 73, 73, 74, 74, 77, 77, - 116, 116, 31, 31, 103, 103, 33, 107, 107, 34, - 34, 121, 121, 35, 35, 35, 35, 125, 125, 79, - 79, 79, 109, 109, 36, 36, 37, 38, 38, 38, - 38, 40, 40, 39, 81, 81, 123, 123, 122, 122, - 124, 124, 90, 90, 90, 90, 90, 90, 106, 106, - 41, 41, 98, 98, 68, 21, 100, 100, 42, 101, - 101, 102, 102, 44, 43, 43, 32, 32, 32, 32, + 13, 13, 126, 126, 78, 78, 14, 15, 88, 88, + 90, 90, 89, 89, 94, 94, 94, 94, 85, 85, + 84, 84, 25, 25, 82, 82, 82, 82, 108, 108, + 108, 8, 8, 86, 86, 69, 69, 67, 67, 71, + 71, 68, 68, 119, 119, 120, 120, 29, 29, 30, + 30, 77, 77, 75, 75, 75, 76, 76, 79, 79, + 116, 116, 31, 31, 33, 33, 34, 35, 35, 36, + 36, 121, 121, 37, 37, 37, 37, 125, 125, 81, + 81, 81, 109, 109, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 83, 83, 123, 123, 122, 122, + 124, 124, 92, 92, 92, 92, 92, 92, 107, 107, + 43, 43, 100, 100, 70, 21, 102, 102, 44, 103, + 103, 104, 104, 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, @@ -1476,19 +1476,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, 85, 85, 128, 3, 3, 89, 89, - 112, 112, 51, 51, 52, 52, 52, 52, 45, 45, - 46, 46, 49, 49, 94, 94, 94, 78, 78, 56, - 56, 56, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 57, 57, - 57, 23, 23, 24, 24, 55, 58, 58, 58, 59, - 59, 59, 60, 60, 60, 60, 60, 60, 28, 28, - 28, 47, 47, 47, 61, 61, 62, 62, 62, 62, - 62, 62, 53, 53, 53, 54, 54, 54, 115, 71, - 71, 114, 114, 70, 70, 70, 70, 70, 70, 70, - 93, 93, 93, 93, 63, 63, 63, 63, 63, 63, - 63, 64, 64, 64, 64, 48, 48, 48, 48, 48, - 48, 48, 113, 113, 72, + 32, 32, 32, 87, 87, 128, 3, 3, 91, 91, + 112, 112, 53, 53, 54, 54, 54, 54, 47, 47, + 48, 48, 51, 51, 96, 96, 96, 80, 80, 58, + 58, 58, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 59, 59, + 59, 23, 23, 24, 24, 57, 60, 60, 60, 61, + 61, 61, 62, 62, 62, 62, 62, 62, 28, 28, + 28, 49, 49, 49, 63, 63, 64, 64, 64, 64, + 64, 64, 55, 55, 55, 56, 56, 56, 115, 73, + 73, 114, 114, 72, 72, 72, 72, 72, 72, 72, + 95, 95, 95, 95, 65, 65, 65, 65, 65, 65, + 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, + 50, 50, 113, 113, 74, } var yyR2 = [...]int{ @@ -1546,49 +1546,49 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -117, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -65, -66, 21, 20, 23, + 52, 80, 45, 39, 144, -67, -68, 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, -67, -69, -28, -32, -76, 7, -60, -61, - -58, 60, 150, 93, 105, 106, 155, 154, 156, 157, - 148, -43, -48, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -50, 143, 97, 98, 107, -85, 100, 101, - -47, -57, -52, -45, -55, -56, 92, 50, 51, 4, + 54, 55, -69, -71, -28, -32, -78, 7, -62, -63, + -60, 60, 150, 93, 105, 106, 155, 154, 156, 157, + 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, + 6, 158, -52, 143, 97, 98, 107, -87, 100, 101, + -49, -59, -54, -47, -57, -58, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -59, 61, 18, -95, 83, 148, 83, -95, 144, 10, - -18, -91, -111, -95, 83, 37, 39, -19, -20, -99, + -61, 61, 18, -97, 83, 148, 83, -97, 144, 10, + -18, -93, -111, -97, 83, 37, 39, -19, -20, -101, -21, 10, -118, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -103, -33, -47, -107, -85, -34, - 12, -100, -42, -23, 146, 131, 132, 88, 90, 89, + -23, 99, -24, -24, -33, -34, -49, -35, -87, -36, + 12, -102, -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, -76, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -78, 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, -115, -114, -71, -70, -23, 153, - 84, 60, -23, -28, -57, 148, -56, 99, 150, -28, + 150, 144, 58, 148, -115, -114, -73, -72, -23, 153, + 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -49, 148, -23, -94, 17, -93, -63, 12, - 77, 78, -23, -23, -23, 150, 79, 79, -46, -44, - -45, -62, 53, -10, -47, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -93, -93, 17, -3, 144, -47, - -77, 148, -77, 148, 83, -95, 149, -95, 146, 144, - -117, 146, -16, -111, -95, 83, 146, 160, 83, 29, - -95, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -101, -102, -23, + -23, -23, -51, 148, -23, -96, 17, -95, -65, 12, + 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, + -47, -64, 53, -10, -49, 148, 148, -23, -23, 148, + -23, -23, 17, 76, -95, -95, 17, -3, 144, -49, + -79, 148, -79, 148, 83, -97, 149, -97, 146, 144, + -117, 146, -16, -111, -97, 83, 146, 160, 83, 29, + -97, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -103, -104, -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, -46, -23, 147, - -23, -110, -27, -28, -23, -99, -118, 146, 146, 10, - -128, 10, -86, 56, -128, -88, 56, 148, -11, 148, + -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, + -23, -110, -27, -28, -23, -101, -118, 146, 146, 10, + -128, 10, -88, 56, -128, -90, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, - -54, 10, 144, -47, -115, 151, 160, 59, -28, -23, - 148, -23, -115, 149, -24, 143, -63, -63, 17, 150, - 58, -23, 11, -28, 59, -24, -53, -6, -47, 144, + -56, 10, 144, -49, -115, 151, 160, 59, -28, -23, + 148, -23, -115, 149, -24, 143, -65, -65, 17, 150, + 58, -23, 11, -28, 59, -24, -55, -6, -49, 144, 10, -5, -4, 99, 100, 101, 102, 103, 104, 4, 5, 85, 86, 87, 88, 89, 90, 91, 92, 93, 6, 7, 94, 95, 96, 19, 20, 21, 22, 23, @@ -1596,49 +1596,49 @@ var yyChk = [...]int{ 45, 46, 47, 48, 49, 50, 51, 35, 36, 37, 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, -53, -6, -47, - -78, -77, 79, 150, 144, 58, 79, -78, -113, -72, + 66, 65, 67, 68, 82, 81, 38, -55, -6, -49, + -80, -79, 79, 150, 144, 58, 79, -80, -113, -74, -23, -23, -23, 76, 76, 142, 148, -23, 149, -116, -31, -23, 84, -115, 10, 146, -117, 145, 146, 146, - 83, -95, -19, 83, -95, 144, 10, 83, -21, -23, - 148, 149, 148, 146, 160, 149, -33, -34, -23, -42, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -86, - -87, 57, -10, 144, -128, -125, -10, -23, -23, -118, - -23, 149, 151, 145, -77, -23, 149, 162, -71, -23, - 153, 60, -115, 149, 151, 149, -64, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -77, -23, - -77, -47, -24, -23, -54, -47, -86, -7, 160, 149, - 149, -119, -120, -29, -30, -75, -73, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -105, - -17, -20, -91, 144, -128, 149, -84, -11, 147, -23, - -101, -23, -80, 144, 147, -23, 149, -27, -92, -28, - 153, 60, 150, -25, -11, 147, -97, 148, -119, -87, + 83, -97, -19, 83, -97, 144, 10, 83, -21, -23, + 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -88, + -89, 57, -10, 144, -128, -125, -10, -23, -23, -118, + -23, 149, 151, 145, -79, -23, 149, 162, -73, -23, + 153, 60, -115, 149, 151, 149, -66, 10, 13, 154, + 12, 10, 145, 145, 150, 145, -23, 151, -79, -23, + -79, -49, -24, -23, -56, -49, -88, -7, 160, 149, + 149, -119, -120, -29, -30, -77, -75, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -106, + -17, -20, -93, 144, -128, 149, -86, -11, 147, -23, + -103, -23, -82, 144, 147, -23, 149, -27, -94, -28, + 153, 60, 150, -25, -11, 147, -99, 148, -119, -89, -128, -125, -121, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -87, 149, -72, 149, 160, -1, 153, -73, - 149, -31, -104, -20, 144, -7, 160, -20, -105, 146, + 151, 145, -89, 149, -74, 149, 160, -1, 153, -75, + 149, -31, -105, -20, 144, -7, 160, -20, -106, 146, -118, 149, 146, -108, 146, -108, 146, 146, 149, 59, -28, 148, -115, -118, -26, 42, 43, -119, 149, -128, - 144, 145, -35, -123, -122, 45, -124, 48, -90, 104, + 144, 145, -37, -123, -122, 45, -124, 48, -92, 104, 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, - -118, -23, -115, 151, -128, -74, 147, -29, -2, 84, - -7, 160, -104, 145, -17, -7, 22, 146, -101, 145, - 32, 33, -108, 31, -108, -82, -11, 147, -92, -28, - -115, 151, 28, 148, 144, 149, -89, 45, 144, -121, - -30, 39, 37, -125, -90, 145, -118, 149, 145, 144, - -128, -75, 12, 145, -20, -7, 145, 146, 149, -23, + -118, -23, -115, 151, -128, -76, 147, -29, -2, 84, + -7, 160, -105, 145, -17, -7, 22, 146, -103, 145, + 32, 33, -108, 31, -108, -84, -11, 147, -94, -28, + -115, 151, 28, 148, 144, 149, -91, 45, 144, -121, + -30, 39, 37, -125, -92, 145, -118, 149, 145, 144, + -128, -77, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, - -96, -10, -118, -74, -74, 148, -121, 145, -106, -41, - 12, -98, -68, -6, -3, -79, 146, 144, -121, 59, - 162, 145, -83, -11, 147, -8, -118, 146, 26, -82, - 12, 161, 145, 144, 144, -112, -51, 12, 153, 145, + -98, -10, -118, -76, -76, 148, -121, 145, -107, -43, + 12, -100, -70, -6, -3, -81, 146, 144, -121, 59, + 162, 145, -85, -11, 147, -8, -118, 146, 26, -84, + 12, 161, 145, 144, 144, -112, -53, 12, 153, 145, 146, 160, -128, 162, 146, 160, 162, -6, 145, -109, - -36, -37, -38, -39, -40, -10, -6, 80, 10, 145, + -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, - 160, 12, -41, -23, -68, -23, -128, 145, -36, 146, - 146, 46, 29, 79, 24, 144, 145, 145, -51, -128, - -128, 148, -125, 10, -4, -90, -6, 146, -118, -119, - -6, 145, 149, -74, -81, 146, 144, -118, 145, + 160, 12, -43, -23, -70, -23, -128, 145, -38, 146, + 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, + -128, 148, -125, 10, -4, -92, -6, 146, -118, -119, + -6, 145, 149, -76, -83, 146, 144, -118, 145, } var yyDef = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 +// line internal/php7/php7.y:293 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:327 +// line internal/php7/php7.y:327 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:334 +// line internal/php7/php7.y:334 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:345 +// line internal/php7/php7.y:345 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:352 +// line internal/php7/php7.y:352 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:364 +// line internal/php7/php7.y:364 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:378 +// line internal/php7/php7.y:378 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:387 +// line internal/php7/php7.y:387 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:398 +// line internal/php7/php7.y:398 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:411 +// line internal/php7/php7.y:411 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:416 +// line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:420 +// line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:424 +// line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:428 +// line internal/php7/php7.y:428 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:432 +// line internal/php7/php7.y:432 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:436 +// line internal/php7/php7.y:436 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:448 +// line internal/php7/php7.y:448 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:464 +// line internal/php7/php7.y:464 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:482 +// line internal/php7/php7.y:482 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:494 +// line internal/php7/php7.y:494 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:504 +// line internal/php7/php7.y:504 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:515 +// line internal/php7/php7.y:515 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:526 +// line internal/php7/php7.y:526 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:538 +// line internal/php7/php7.y:538 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2836,7 +2836,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:552 +// line internal/php7/php7.y:552 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2848,7 +2848,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:562 +// line internal/php7/php7.y:562 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2860,7 +2860,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:575 +// line internal/php7/php7.y:575 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2884,7 +2884,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:597 +// line internal/php7/php7.y:597 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2907,7 +2907,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:621 +// line internal/php7/php7.y:621 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2929,7 +2929,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:641 +// line internal/php7/php7.y:641 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2952,19 +2952,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:665 +// line internal/php7/php7.y:665 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:669 +// line internal/php7/php7.y:669 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:676 +// line internal/php7/php7.y:676 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2972,13 +2972,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:682 +// line internal/php7/php7.y:682 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:689 +// line internal/php7/php7.y:689 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2986,13 +2986,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:695 +// line internal/php7/php7.y:695 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:702 +// line internal/php7/php7.y:702 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3000,19 +3000,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:708 +// line internal/php7/php7.y:708 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:715 +// line internal/php7/php7.y:715 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:719 +// line internal/php7/php7.y:719 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3022,7 +3022,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:730 +// line internal/php7/php7.y:730 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3038,7 +3038,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:744 +// line internal/php7/php7.y:744 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:768 +// line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:772 +// line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:783 +// line internal/php7/php7.y:783 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -3085,13 +3085,13 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:789 +// line internal/php7/php7.y:789 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:796 +// line internal/php7/php7.y:796 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3104,50 +3104,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:807 +// line internal/php7/php7.y:807 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:814 +// line internal/php7/php7.y:814 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:819 +// line internal/php7/php7.y:819 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:823 +// line internal/php7/php7.y:823 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:827 +// line internal/php7/php7.y:827 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:831 +// line internal/php7/php7.y:831 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:835 +// line internal/php7/php7.y:835 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:839 +// line internal/php7/php7.y:839 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3161,7 +3161,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:853 +// line internal/php7/php7.y:853 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3174,19 +3174,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:864 +// line internal/php7/php7.y:864 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:868 +// line internal/php7/php7.y:868 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:872 +// line internal/php7/php7.y:872 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3198,7 +3198,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:882 +// line internal/php7/php7.y:882 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3215,7 +3215,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:897 +// line internal/php7/php7.y:897 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3231,7 +3231,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:911 +// line internal/php7/php7.y:911 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3243,7 +3243,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:921 +// line internal/php7/php7.y:921 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3256,7 +3256,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:932 +// line internal/php7/php7.y:932 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3269,7 +3269,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:943 +// line internal/php7/php7.y:943 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3282,35 +3282,29 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:954 +// line internal/php7/php7.y:954 { - yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns, nil) + yyDollar[2].node.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:966 +// line internal/php7/php7.y:963 { - yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns, nil) + yyDollar[2].node.(*ast.StmtStatic).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:978 +// line internal/php7/php7.y:972 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3325,7 +3319,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:991 +// line internal/php7/php7.y:985 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3337,7 +3331,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1001 +// line internal/php7/php7.y:995 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3351,7 +3345,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1013 +// line internal/php7/php7.y:1007 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3371,7 +3365,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1031 +// line internal/php7/php7.y:1025 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3395,7 +3389,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1053 +// line internal/php7/php7.y:1047 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3422,7 +3416,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1078 +// line internal/php7/php7.y:1072 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3437,7 +3431,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1091 +// line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3450,7 +3444,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1102 +// line internal/php7/php7.y:1096 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3467,7 +3461,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1117 +// line internal/php7/php7.y:1111 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3481,7 +3475,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1129 +// line internal/php7/php7.y:1123 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3498,7 +3492,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1144 +// line internal/php7/php7.y:1138 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3513,13 +3507,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1159 +// line internal/php7/php7.y:1153 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1163 +// line internal/php7/php7.y:1157 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3541,13 +3535,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1185 +// line internal/php7/php7.y:1179 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1189 +// line internal/php7/php7.y:1183 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3561,13 +3555,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1201 +// line internal/php7/php7.y:1195 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1205 +// line internal/php7/php7.y:1199 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3581,13 +3575,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1220 +// line internal/php7/php7.y:1214 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1224 +// line internal/php7/php7.y:1218 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3596,13 +3590,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1234 +// line internal/php7/php7.y:1228 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1241 +// line internal/php7/php7.y:1235 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3632,31 +3626,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1272 +// line internal/php7/php7.y:1266 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1276 +// line internal/php7/php7.y:1270 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1283 +// line internal/php7/php7.y:1277 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1287 +// line internal/php7/php7.y:1281 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1294 +// line internal/php7/php7.y:1288 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3674,7 +3668,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1310 +// line internal/php7/php7.y:1304 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3691,19 +3685,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1328 +// line internal/php7/php7.y:1322 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1332 +// line internal/php7/php7.y:1326 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1339 +// line internal/php7/php7.y:1333 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3715,7 +3709,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1349 +// line internal/php7/php7.y:1343 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3727,7 +3721,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1362 +// line internal/php7/php7.y:1356 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3744,7 +3738,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1380 +// line internal/php7/php7.y:1374 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3761,13 +3755,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1398 +// line internal/php7/php7.y:1392 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1402 +// line internal/php7/php7.y:1396 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3779,13 +3773,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1415 +// line internal/php7/php7.y:1409 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1419 +// line internal/php7/php7.y:1413 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3797,13 +3791,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1432 +// line internal/php7/php7.y:1426 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1436 +// line internal/php7/php7.y:1430 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3815,13 +3809,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1449 +// line internal/php7/php7.y:1443 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1453 +// line internal/php7/php7.y:1447 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3833,7 +3827,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1463 +// line internal/php7/php7.y:1457 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3847,7 +3841,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1475 +// line internal/php7/php7.y:1469 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3860,7 +3854,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1489 +// line internal/php7/php7.y:1483 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3871,7 +3865,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1498 +// line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3891,7 +3885,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1519 +// line internal/php7/php7.y:1513 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3900,7 +3894,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1526 +// line internal/php7/php7.y:1520 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3921,7 +3915,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1548 +// line internal/php7/php7.y:1542 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3930,7 +3924,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1555 +// line internal/php7/php7.y:1549 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3951,7 +3945,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1577 +// line internal/php7/php7.y:1571 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3964,7 +3958,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1588 +// line internal/php7/php7.y:1582 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3978,7 +3972,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1600 +// line internal/php7/php7.y:1594 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3993,7 +3987,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1613 +// line internal/php7/php7.y:1607 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4009,13 +4003,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1630 +// line internal/php7/php7.y:1624 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1634 +// line internal/php7/php7.y:1628 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4029,7 +4023,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1646 +// line internal/php7/php7.y:1640 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4042,19 +4036,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1660 +// line internal/php7/php7.y:1654 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1664 +// line internal/php7/php7.y:1658 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1671 +// line internal/php7/php7.y:1665 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4065,7 +4059,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1680 +// line internal/php7/php7.y:1674 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4085,7 +4079,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1701 +// line internal/php7/php7.y:1695 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4100,7 +4094,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1714 +// line internal/php7/php7.y:1708 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4119,13 +4113,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1734 +// line internal/php7/php7.y:1728 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1738 +// line internal/php7/php7.y:1732 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4141,7 +4135,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1755 +// line internal/php7/php7.y:1749 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4163,7 +4157,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1775 +// line internal/php7/php7.y:1769 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4187,7 +4181,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1800 +// line internal/php7/php7.y:1794 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4197,7 +4191,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1808 +// line internal/php7/php7.y:1802 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4221,25 +4215,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1833 +// line internal/php7/php7.y:1827 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1837 +// line internal/php7/php7.y:1831 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1844 +// line internal/php7/php7.y:1838 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1848 +// line internal/php7/php7.y:1842 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4248,7 +4242,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1858 +// line internal/php7/php7.y:1852 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4284,7 +4278,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1892 +// line internal/php7/php7.y:1886 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4321,25 +4315,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1930 +// line internal/php7/php7.y:1924 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1934 +// line internal/php7/php7.y:1928 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1941 +// line internal/php7/php7.y:1935 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1945 +// line internal/php7/php7.y:1939 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4351,7 +4345,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1958 +// line internal/php7/php7.y:1952 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4363,7 +4357,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1968 +// line internal/php7/php7.y:1962 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4375,19 +4369,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1978 +// line internal/php7/php7.y:1972 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1985 +// line internal/php7/php7.y:1979 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1989 +// line internal/php7/php7.y:1983 { yyVAL.node = yyDollar[2].node @@ -4396,7 +4390,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1999 +// line internal/php7/php7.y:1993 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4409,7 +4403,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2010 +// line internal/php7/php7.y:2004 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4426,13 +4420,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2028 +// line internal/php7/php7.y:2022 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2032 +// line internal/php7/php7.y:2026 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4441,7 +4435,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2042 +// line internal/php7/php7.y:2036 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4453,7 +4447,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2052 +// line internal/php7/php7.y:2046 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4465,88 +4459,102 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2065 +// line internal/php7/php7.y:2059 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + 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) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2072 +// line internal/php7/php7.y:2066 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtGlobal{ + Vars: []ast.Vertex{yyDollar[1].node}, + } } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2079 +// line internal/php7/php7.y:2075 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2086 +// line internal/php7/php7.y:2082 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + 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) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2093 +// line internal/php7/php7.y:2089 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtStatic{ + Vars: []ast.Vertex{yyDollar[1].node}, + } } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2100 +// line internal/php7/php7.y:2098 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.StmtStaticVar{ast.Node{}, variable, nil} + + yyVAL.node = &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + Var: variable, + } // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2114 +// line internal/php7/php7.y:2117 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[3].node} + yyVAL.node = &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + Var: variable, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2132 +// line internal/php7/php7.y:2140 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2136 +// line internal/php7/php7.y:2144 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2143 +// line internal/php7/php7.y:2151 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4560,7 +4568,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2155 +// line internal/php7/php7.y:2163 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4574,7 +4582,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2167 +// line internal/php7/php7.y:2175 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4586,7 +4594,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2177 +// line internal/php7/php7.y:2185 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4617,13 +4625,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2209 +// line internal/php7/php7.y:2217 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2213 +// line internal/php7/php7.y:2221 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4637,7 +4645,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2225 +// line internal/php7/php7.y:2233 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4649,7 +4657,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2235 +// line internal/php7/php7.y:2243 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4661,7 +4669,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2245 +// line internal/php7/php7.y:2253 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4673,19 +4681,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2258 +// line internal/php7/php7.y:2266 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2262 +// line internal/php7/php7.y:2270 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2269 +// line internal/php7/php7.y:2277 { yyVAL.node = yyDollar[1].node @@ -4695,7 +4703,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2277 +// line internal/php7/php7.y:2285 { yyVAL.node = yyDollar[1].node @@ -4705,7 +4713,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2288 +// line internal/php7/php7.y:2296 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4718,7 +4726,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2302 +// line internal/php7/php7.y:2310 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4734,7 +4742,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2316 +// line internal/php7/php7.y:2324 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4750,7 +4758,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2330 +// line internal/php7/php7.y:2338 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4766,7 +4774,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2344 +// line internal/php7/php7.y:2352 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4779,7 +4787,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2358 +// line internal/php7/php7.y:2366 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4793,13 +4801,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2370 +// line internal/php7/php7.y:2378 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2377 +// line internal/php7/php7.y:2385 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4815,7 +4823,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2394 +// line internal/php7/php7.y:2402 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4828,7 +4836,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2405 +// line internal/php7/php7.y:2413 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4841,13 +4849,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2419 +// line internal/php7/php7.y:2427 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2423 +// line internal/php7/php7.y:2431 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4860,31 +4868,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2437 +// line internal/php7/php7.y:2445 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2441 +// line internal/php7/php7.y:2449 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2448 +// line internal/php7/php7.y:2456 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2452 +// line internal/php7/php7.y:2460 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2459 +// line internal/php7/php7.y:2467 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4896,7 +4904,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2469 +// line internal/php7/php7.y:2477 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4908,7 +4916,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2479 +// line internal/php7/php7.y:2487 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4920,7 +4928,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2489 +// line internal/php7/php7.y:2497 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4932,7 +4940,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2499 +// line internal/php7/php7.y:2507 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4944,7 +4952,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2509 +// line internal/php7/php7.y:2517 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4956,7 +4964,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2522 +// line internal/php7/php7.y:2530 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4965,13 +4973,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2529 +// line internal/php7/php7.y:2537 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2536 +// line internal/php7/php7.y:2544 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4987,7 +4995,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2550 +// line internal/php7/php7.y:2558 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5004,7 +5012,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2568 +// line internal/php7/php7.y:2576 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5012,13 +5020,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2574 +// line internal/php7/php7.y:2582 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2581 +// line internal/php7/php7.y:2589 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5038,7 +5046,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2602 +// line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5058,7 +5066,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2623 +// line internal/php7/php7.y:2631 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5067,31 +5075,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2630 +// line internal/php7/php7.y:2638 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2637 +// line internal/php7/php7.y:2645 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2644 +// line internal/php7/php7.y:2652 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2648 +// line internal/php7/php7.y:2656 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2655 +// line internal/php7/php7.y:2663 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5100,13 +5108,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2662 +// line internal/php7/php7.y:2670 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2669 +// line internal/php7/php7.y:2677 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5124,7 +5132,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2688 +// line internal/php7/php7.y:2696 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5139,7 +5147,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2701 +// line internal/php7/php7.y:2709 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5151,7 +5159,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2714 +// line internal/php7/php7.y:2722 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5168,7 +5176,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2729 +// line internal/php7/php7.y:2737 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5184,7 +5192,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2743 +// line internal/php7/php7.y:2751 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5197,7 +5205,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2754 +// line internal/php7/php7.y:2762 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5211,7 +5219,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2766 +// line internal/php7/php7.y:2774 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5223,7 +5231,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2776 +// line internal/php7/php7.y:2784 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5236,7 +5244,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2787 +// line internal/php7/php7.y:2795 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5249,7 +5257,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2798 +// line internal/php7/php7.y:2806 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5262,7 +5270,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2809 +// line internal/php7/php7.y:2817 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5275,7 +5283,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2820 +// line internal/php7/php7.y:2828 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5288,7 +5296,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2831 +// line internal/php7/php7.y:2839 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5301,7 +5309,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2842 +// line internal/php7/php7.y:2850 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5314,7 +5322,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2853 +// line internal/php7/php7.y:2861 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5327,7 +5335,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2864 +// line internal/php7/php7.y:2872 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5340,7 +5348,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2875 +// line internal/php7/php7.y:2883 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5353,7 +5361,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2886 +// line internal/php7/php7.y:2894 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5366,7 +5374,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2897 +// line internal/php7/php7.y:2905 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5379,7 +5387,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2908 +// line internal/php7/php7.y:2916 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5392,7 +5400,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2919 +// line internal/php7/php7.y:2927 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5405,7 +5413,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2930 +// line internal/php7/php7.y:2938 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5417,7 +5425,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2940 +// line internal/php7/php7.y:2948 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5430,7 +5438,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2951 +// line internal/php7/php7.y:2959 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5442,7 +5450,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2961 +// line internal/php7/php7.y:2969 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5455,7 +5463,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2972 +// line internal/php7/php7.y:2980 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5468,7 +5476,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2983 +// line internal/php7/php7.y:2991 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5481,7 +5489,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2994 +// line internal/php7/php7.y:3002 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5494,7 +5502,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3005 +// line internal/php7/php7.y:3013 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5507,7 +5515,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3016 +// line internal/php7/php7.y:3024 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5520,7 +5528,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3027 +// line internal/php7/php7.y:3035 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5533,7 +5541,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3038 +// line internal/php7/php7.y:3046 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5546,7 +5554,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3049 +// line internal/php7/php7.y:3057 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5559,7 +5567,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3060 +// line internal/php7/php7.y:3068 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5572,7 +5580,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3071 +// line internal/php7/php7.y:3079 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5585,7 +5593,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3082 +// line internal/php7/php7.y:3090 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5598,7 +5606,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3093 +// line internal/php7/php7.y:3101 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5611,7 +5619,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3104 +// line internal/php7/php7.y:3112 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5624,7 +5632,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3115 +// line internal/php7/php7.y:3123 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5637,7 +5645,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3126 +// line internal/php7/php7.y:3134 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5650,7 +5658,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3137 +// line internal/php7/php7.y:3145 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5663,7 +5671,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3148 +// line internal/php7/php7.y:3156 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5675,7 +5683,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3158 +// line internal/php7/php7.y:3166 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5687,7 +5695,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3168 +// line internal/php7/php7.y:3176 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5699,7 +5707,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3178 +// line internal/php7/php7.y:3186 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5711,7 +5719,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3188 +// line internal/php7/php7.y:3196 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5724,7 +5732,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3199 +// line internal/php7/php7.y:3207 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5737,7 +5745,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3210 +// line internal/php7/php7.y:3218 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5750,7 +5758,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3221 +// line internal/php7/php7.y:3229 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5764,7 +5772,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3233 +// line internal/php7/php7.y:3241 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5777,7 +5785,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3244 +// line internal/php7/php7.y:3252 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5790,7 +5798,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3255 +// line internal/php7/php7.y:3263 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5803,7 +5811,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3266 +// line internal/php7/php7.y:3274 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5816,7 +5824,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3277 +// line internal/php7/php7.y:3285 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5829,7 +5837,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3288 +// line internal/php7/php7.y:3296 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5842,7 +5850,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3299 +// line internal/php7/php7.y:3307 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5859,13 +5867,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3314 +// line internal/php7/php7.y:3322 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3318 +// line internal/php7/php7.y:3326 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5879,7 +5887,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3330 +// line internal/php7/php7.y:3338 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5893,7 +5901,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3342 +// line internal/php7/php7.y:3350 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5906,13 +5914,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3353 +// line internal/php7/php7.y:3361 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3357 +// line internal/php7/php7.y:3365 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5925,7 +5933,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3368 +// line internal/php7/php7.y:3376 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5938,7 +5946,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3379 +// line internal/php7/php7.y:3387 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5951,7 +5959,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3390 +// line internal/php7/php7.y:3398 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5964,7 +5972,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3401 +// line internal/php7/php7.y:3409 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5977,7 +5985,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3412 +// line internal/php7/php7.y:3420 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5990,7 +5998,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3423 +// line internal/php7/php7.y:3431 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6003,7 +6011,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3434 +// line internal/php7/php7.y:3442 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6023,7 +6031,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3452 +// line internal/php7/php7.y:3460 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6035,13 +6043,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3462 +// line internal/php7/php7.y:3470 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3466 +// line internal/php7/php7.y:3474 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6053,7 +6061,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3476 +// line internal/php7/php7.y:3484 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6065,7 +6073,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3486 +// line internal/php7/php7.y:3494 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6077,7 +6085,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3496 +// line internal/php7/php7.y:3504 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6089,7 +6097,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3506 +// line internal/php7/php7.y:3514 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6102,7 +6110,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3517 +// line internal/php7/php7.y:3525 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6114,13 +6122,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3527 +// line internal/php7/php7.y:3535 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3531 +// line internal/php7/php7.y:3539 { yyVAL.node = yyDollar[2].node @@ -6141,7 +6149,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3552 +// line internal/php7/php7.y:3560 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6172,7 +6180,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3579 +// line internal/php7/php7.y:3587 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6198,25 +6206,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3609 +// line internal/php7/php7.y:3617 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3613 +// line internal/php7/php7.y:3621 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3620 +// line internal/php7/php7.y:3628 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3624 +// line internal/php7/php7.y:3632 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6230,7 +6238,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3639 +// line internal/php7/php7.y:3647 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6239,13 +6247,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3646 +// line internal/php7/php7.y:3654 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3653 +// line internal/php7/php7.y:3661 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6259,7 +6267,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3665 +// line internal/php7/php7.y:3673 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6276,7 +6284,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3683 +// line internal/php7/php7.y:3691 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6288,7 +6296,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3693 +// line internal/php7/php7.y:3701 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6301,7 +6309,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3704 +// line internal/php7/php7.y:3712 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6314,7 +6322,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3715 +// line internal/php7/php7.y:3723 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6326,7 +6334,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3728 +// line internal/php7/php7.y:3736 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6338,31 +6346,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3738 +// line internal/php7/php7.y:3746 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3745 +// line internal/php7/php7.y:3753 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3749 +// line internal/php7/php7.y:3757 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3756 +// line internal/php7/php7.y:3764 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3760 +// line internal/php7/php7.y:3768 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6379,13 +6387,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3778 +// line internal/php7/php7.y:3786 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3782 +// line internal/php7/php7.y:3790 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6395,25 +6403,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3790 +// line internal/php7/php7.y:3798 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3797 +// line internal/php7/php7.y:3805 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3801 +// line internal/php7/php7.y:3809 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3808 +// line internal/php7/php7.y:3816 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6427,7 +6435,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3820 +// line internal/php7/php7.y:3828 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6440,7 +6448,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3831 +// line internal/php7/php7.y:3839 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6452,7 +6460,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3844 +// line internal/php7/php7.y:3852 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6464,7 +6472,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3854 +// line internal/php7/php7.y:3862 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6476,7 +6484,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3864 +// line internal/php7/php7.y:3872 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6488,7 +6496,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3874 +// line internal/php7/php7.y:3882 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6500,7 +6508,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3884 +// line internal/php7/php7.y:3892 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6512,7 +6520,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3894 +// line internal/php7/php7.y:3902 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6524,7 +6532,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3904 +// line internal/php7/php7.y:3912 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6536,7 +6544,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3914 +// line internal/php7/php7.y:3922 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6548,7 +6556,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3924 +// line internal/php7/php7.y:3932 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6560,7 +6568,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3934 +// line internal/php7/php7.y:3942 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6572,7 +6580,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3944 +// line internal/php7/php7.y:3952 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6586,7 +6594,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3956 +// line internal/php7/php7.y:3964 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6598,7 +6606,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3966 +// line internal/php7/php7.y:3974 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6610,7 +6618,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3976 +// line internal/php7/php7.y:3984 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6622,19 +6630,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3986 +// line internal/php7/php7.y:3994 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3990 +// line internal/php7/php7.y:3998 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3997 +// line internal/php7/php7.y:4005 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6646,7 +6654,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4007 +// line internal/php7/php7.y:4015 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6662,7 +6670,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4021 +// line internal/php7/php7.y:4029 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6678,43 +6686,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4038 +// line internal/php7/php7.y:4046 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4042 +// line internal/php7/php7.y:4050 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4049 +// line internal/php7/php7.y:4057 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4053 +// line internal/php7/php7.y:4061 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4060 +// line internal/php7/php7.y:4068 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4067 +// line internal/php7/php7.y:4075 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4071 +// line internal/php7/php7.y:4079 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6731,19 +6739,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4086 +// line internal/php7/php7.y:4094 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4093 +// line internal/php7/php7.y:4101 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4097 +// line internal/php7/php7.y:4105 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6760,19 +6768,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4112 +// line internal/php7/php7.y:4120 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4119 +// line internal/php7/php7.y:4127 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4123 +// line internal/php7/php7.y:4131 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6785,7 +6793,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4134 +// line internal/php7/php7.y:4142 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6798,7 +6806,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4145 +// line internal/php7/php7.y:4153 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6811,7 +6819,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4156 +// line internal/php7/php7.y:4164 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6824,25 +6832,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4167 +// line internal/php7/php7.y:4175 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4174 +// line internal/php7/php7.y:4182 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4178 +// line internal/php7/php7.y:4186 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4182 +// line internal/php7/php7.y:4190 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6855,7 +6863,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4196 +// line internal/php7/php7.y:4204 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6869,7 +6877,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4208 +// line internal/php7/php7.y:4216 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6883,7 +6891,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4220 +// line internal/php7/php7.y:4228 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6895,7 +6903,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4233 +// line internal/php7/php7.y:4241 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6908,7 +6916,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4244 +// line internal/php7/php7.y:4252 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6921,13 +6929,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4258 +// line internal/php7/php7.y:4266 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4262 +// line internal/php7/php7.y:4270 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6940,7 +6948,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4273 +// line internal/php7/php7.y:4281 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6953,7 +6961,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4284 +// line internal/php7/php7.y:4292 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6966,7 +6974,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4295 +// line internal/php7/php7.y:4303 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6979,7 +6987,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4306 +// line internal/php7/php7.y:4314 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6992,7 +7000,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4320 +// line internal/php7/php7.y:4328 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7004,7 +7012,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4330 +// line internal/php7/php7.y:4338 { yyVAL.node = yyDollar[2].node @@ -7014,13 +7022,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4338 +// line internal/php7/php7.y:4346 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4345 +// line internal/php7/php7.y:4353 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7032,7 +7040,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4355 +// line internal/php7/php7.y:4363 { yyVAL.node = yyDollar[2].node @@ -7042,31 +7050,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4363 +// line internal/php7/php7.y:4371 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4370 +// line internal/php7/php7.y:4378 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4377 +// line internal/php7/php7.y:4385 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4381 +// line internal/php7/php7.y:4389 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4388 +// line internal/php7/php7.y:4396 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7079,7 +7087,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4399 +// line internal/php7/php7.y:4407 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7089,7 +7097,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4410 +// line internal/php7/php7.y:4418 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7102,7 +7110,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4421 +// line internal/php7/php7.y:4429 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7114,7 +7122,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4431 +// line internal/php7/php7.y:4439 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7130,7 +7138,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4445 +// line internal/php7/php7.y:4453 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7144,7 +7152,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4457 +// line internal/php7/php7.y:4465 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7156,7 +7164,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4467 +// line internal/php7/php7.y:4475 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7175,7 +7183,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4484 +// line internal/php7/php7.y:4492 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7192,13 +7200,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4502 +// line internal/php7/php7.y:4510 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4506 +// line internal/php7/php7.y:4514 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7211,13 +7219,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4517 +// line internal/php7/php7.y:4525 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4521 +// line internal/php7/php7.y:4529 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7230,7 +7238,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4535 +// line internal/php7/php7.y:4543 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7244,7 +7252,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4547 +// line internal/php7/php7.y:4555 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7261,7 +7269,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4562 +// line internal/php7/php7.y:4570 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7280,7 +7288,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4579 +// line internal/php7/php7.y:4587 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7295,7 +7303,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4592 +// line internal/php7/php7.y:4600 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7312,7 +7320,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4607 +// line internal/php7/php7.y:4615 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7331,7 +7339,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4624 +// line internal/php7/php7.y:4632 { yyVAL.node = yyDollar[2].node @@ -7341,7 +7349,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4635 +// line internal/php7/php7.y:4643 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7353,7 +7361,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4645 +// line internal/php7/php7.y:4653 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7370,7 +7378,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4660 +// line internal/php7/php7.y:4668 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7396,7 +7404,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4684 +// line internal/php7/php7.y:4692 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7410,7 +7418,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4699 +// line internal/php7/php7.y:4707 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7428,7 +7436,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4715 +// line internal/php7/php7.y:4723 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7450,7 +7458,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4735 +// line internal/php7/php7.y:4743 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7462,7 +7470,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4745 +// line internal/php7/php7.y:4753 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7474,7 +7482,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4755 +// line internal/php7/php7.y:4763 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7496,7 +7504,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4775 +// line internal/php7/php7.y:4783 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7508,7 +7516,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4785 +// line internal/php7/php7.y:4793 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7520,13 +7528,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4798 +// line internal/php7/php7.y:4806 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4802 +// line internal/php7/php7.y:4810 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7535,7 +7543,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4812 +// line internal/php7/php7.y:4820 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 45741de..a095f9a 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -241,8 +241,8 @@ import ( %type const_decl inner_statement %type expr optional_expr %type declare_statement finally_statement unset_variable variable -%type parameter optional_type argument expr_without_variable global_var -%type static_var class_statement trait_adaptation trait_precedence trait_alias +%type parameter optional_type argument expr_without_variable global_var_list global_var +%type static_var_list static_var class_statement trait_adaptation trait_precedence trait_alias %type absolute_trait_method_reference trait_method_reference property echo_expr %type new_expr anonymous_class class_name class_name_reference simple_variable %type internal_functions_in_yacc @@ -275,8 +275,8 @@ import ( %type encaps_list backticks_expr namespace_name catch_name_list catch_list class_const_list -%type const_list echo_expr_list for_exprs non_empty_for_exprs global_var_list -%type unprefixed_use_declarations inline_use_declarations property_list static_var_list +%type const_list echo_expr_list for_exprs non_empty_for_exprs +%type unprefixed_use_declarations inline_use_declarations property_list %type case_list trait_adaptation_list unset_variables %type use_declarations lexical_var_list isset_variables non_empty_array_pair_list %type array_pair_list non_empty_argument_list top_statement_list @@ -952,27 +952,21 @@ statement: } | T_GLOBAL global_var_list ';' { - $$ = &ast.StmtGlobal{ast.Node{}, $2} + $2.(*ast.StmtGlobal).GlobalTkn = $1 + $2.(*ast.StmtGlobal).SemiColonTkn = $3 + $2.(*ast.StmtGlobal).SeparatorTkns = append($2.(*ast.StmtGlobal).SeparatorTkns, nil) + $2.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition($1, $3) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_STATIC static_var_list ';' { - $$ = &ast.StmtStatic{ast.Node{}, $2} + $2.(*ast.StmtStatic).StaticTkn = $1 + $2.(*ast.StmtStatic).SemiColonTkn = $3 + $2.(*ast.StmtStatic).SeparatorTkns = append($2.(*ast.StmtStatic).SeparatorTkns, nil) + $2.(*ast.StmtStatic).Node.Position = position.NewTokensPosition($1, $3) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_ECHO echo_expr_list ';' { @@ -2063,14 +2057,16 @@ argument: global_var_list: global_var_list ',' global_var { - $$ = append($1, $3) + $1.(*ast.StmtGlobal).Vars = append($1.(*ast.StmtGlobal).Vars, $3) + $1.(*ast.StmtGlobal).SeparatorTkns = append($1.(*ast.StmtGlobal).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | global_var { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtGlobal{ + Vars: []ast.Vertex{$1}, + } } ; @@ -2084,14 +2080,16 @@ global_var: static_var_list: static_var_list ',' static_var { - $$ = append($1, $3) + $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, $3) + $1.(*ast.StmtStatic).SeparatorTkns = append($1.(*ast.StmtStatic).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | static_var { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtStatic{ + Vars: []ast.Vertex{$1}, + } } ; @@ -2100,30 +2098,40 @@ static_var: { identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtStaticVar{ast.Node{}, variable, nil} + + $$ = &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + Var: variable, + } // save position identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' expr { identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtStaticVar{ast.Node{}, variable, $3} + $$ = &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + Var: variable, + EqualTkn: $2, + Expr: $3, + } // save position identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 1bed711..1aa3120 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -476,7 +476,10 @@ func (n *StmtFunction) Accept(v NodeVisitor) { // StmtGlobal node type StmtGlobal struct { Node - Vars []Vertex + GlobalTkn *token.Token + Vars []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtGlobal) Accept(v NodeVisitor) { @@ -630,7 +633,10 @@ func (n *StmtReturn) Accept(v NodeVisitor) { // StmtStatic node type StmtStatic struct { Node - Vars []Vertex + StaticTkn *token.Token + Vars []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtStatic) Accept(v NodeVisitor) { @@ -640,8 +646,9 @@ func (n *StmtStatic) Accept(v NodeVisitor) { // StmtStaticVar node type StmtStaticVar struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *StmtStaticVar) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 91f6ddd..c0f9ef5 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -178,3 +178,19 @@ func (v *FilterTokens) StmtReturn(n *ast.StmtReturn) { n.ReturnTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtGlobal(n *ast.StmtGlobal) { + n.GlobalTkn = nil + n.SeparatorTkns = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtStatic(n *ast.StmtStatic) { + n.StaticTkn = nil + n.SeparatorTkns = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtStaticVar(n *ast.StmtStaticVar) { + n.EqualTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 469a837..e7da279 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -65,6 +65,26 @@ func (p *Printer) joinPrintRefactored(glue string, nn []ast.Vertex) { } } +func (p *Printer) printSeparatedList(nodeList []ast.Vertex, separatorList []*token.Token, def string) { + var separators []*token.Token + + if cap(separatorList) >= len(nodeList) { + separators = separatorList[:len(nodeList)] + } else { + separators = make([]*token.Token, len(nodeList)) + copy(separators, separatorList) + } + + for k, n := range nodeList { + p.Print(n) + if k < len(nodeList)-1 { + p.printToken(separators[k], def) + } else { + p.printToken(separators[k], "") + } + } +} + func (p *Printer) printNodes(nn []ast.Vertex) { for _, n := range nn { p.Print(n) @@ -2476,20 +2496,11 @@ func (p *Printer) printStmtFunction(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtGlobal(n ast.Vertex) { - nn := n.(*ast.StmtGlobal) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "global") - p.joinPrint(",", nn.Vars) - p.printFreeFloating(nn, token.VarList) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtGlobal(n *ast.StmtGlobal) { + p.printToken(n.GlobalTkn, "global") + p.bufStart = " " + p.printSeparatedList(n.Vars, n.SeparatorTkns, ",") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtGoto(n ast.Vertex) { @@ -2701,35 +2712,20 @@ func (p *Printer) printStmtReturn(n *ast.StmtReturn) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtStaticVar(n ast.Vertex) { - nn := n.(*ast.StmtStaticVar) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtStaticVar(n *ast.StmtStaticVar) { + p.Print(n.Var) - p.Print(nn.Var) - - if nn.Expr != nil { - p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "=") - p.Print(nn.Expr) + if n.Expr != nil { + p.printToken(n.EqualTkn, "=") + p.Print(n.Expr) } - - p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtStatic(n ast.Vertex) { - nn := n.(*ast.StmtStatic) - p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "static") - - p.joinPrint(",", nn.Vars) - p.printFreeFloating(nn, token.VarList) - - p.printFreeFloating(nn, token.SemiColon) - if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtStatic(n *ast.StmtStatic) { + p.printToken(n.StaticTkn, "static") + p.bufStart = " " + p.printSeparatedList(n.Vars, n.SeparatorTkns, ",") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtStmtList(n *ast.StmtStmtList) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index d5b2c0b..8a2ee8d 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -1036,7 +1036,8 @@ func TestParseAndPrintPhp5Function(t *testing.T) { } func TestParseAndPrintPhp5Global(t *testing.T) { - src := `