diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 8f17274..5392ff0 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:6196 +// line internal/php5/php5.y:6192 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -706,10 +706,10 @@ var yyAct = [...]int{ 920, 39, 903, 920, 260, 261, 483, 896, 260, 261, 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, 318, 314, 127, 403, - 519, 575, 401, 335, 945, 1009, 343, 519, 519, 519, - 519, 519, 939, 157, 161, 231, 528, 608, 531, 997, + 841, 39, 394, 946, 260, 261, 389, 341, 698, 538, + 929, 519, 290, 460, 318, 973, 314, 127, 403, 575, + 519, 401, 335, 945, 1009, 343, 939, 519, 519, 519, + 519, 519, 164, 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,10 +1606,10 @@ 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, 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, + 1086, 1084, 1083, 18, 202, 1082, 1076, 1075, 1074, 12, + 1073, 1072, 6, 19, 1071, 1069, 1068, 9, 50, 0, + 1067, 1066, 1064, 117, 599, 1063, 1062, 62, 8, 1060, + 1059, 1058, 1057, 14, 47, 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, 15, 17, 993, 34, 992, 991, 986, 984, 177, 13, @@ -1617,29 +1617,29 @@ var yyPgo = [...]int{ } var yyR1 = [...]int{ - 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, + 0, 151, 98, 98, 99, 99, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 100, 100, + 6, 6, 6, 6, 101, 101, 7, 7, 7, 7, + 102, 102, 8, 8, 8, 8, 55, 55, 103, 103, 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, - 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, + 94, 94, 2, 96, 96, 95, 95, 126, 126, 93, + 93, 92, 92, 92, 90, 90, 89, 89, 59, 59, + 116, 116, 87, 87, 87, 87, 114, 114, 114, 4, + 4, 91, 91, 110, 110, 111, 111, 56, 56, 57, 57, 120, 120, 121, 121, 65, 65, 64, 64, 64, 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, + 122, 67, 67, 67, 67, 69, 128, 128, 86, 86, 129, 129, 130, 130, 71, 71, 72, 131, 131, 75, - 75, 74, 73, 73, 76, 76, 87, 87, 123, 123, + 75, 74, 73, 73, 76, 76, 88, 88, 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, + 125, 125, 125, 125, 68, 68, 85, 85, 113, 113, + 112, 112, 138, 138, 136, 136, 137, 137, 137, 139, 139, 44, 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, 17, 17, @@ -1648,8 +1648,8 @@ 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, 96, 96, 108, - 108, 108, 108, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 97, 97, 109, + 109, 109, 109, 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, 83, 83, 9, 9, 9, 9, 9, 9, 9, @@ -1664,11 +1664,11 @@ var yyR1 = [...]int{ 140, 142, 142, 78, 141, 141, 141, 42, 42, 46, 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, - 144, 144, 41, 41, 148, 148, 107, 107, 40, 40, - 40, 106, 106, 105, 105, 105, 105, 105, 105, 105, - 105, 103, 103, 103, 103, 35, 35, 35, 35, 35, + 144, 144, 41, 41, 148, 148, 108, 108, 40, 40, + 40, 107, 107, 106, 106, 106, 106, 106, 106, 106, + 106, 104, 104, 104, 104, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 104, 104, 38, 38, 32, 32, 33, + 39, 39, 39, 105, 105, 38, 38, 32, 32, 33, 34, } var yyR2 = [...]int{ @@ -1729,7 +1729,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -97, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -98, -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, -98, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -99, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -98, 144, 83, 10, -99, 37, 39, - -6, -98, 83, 146, 160, 147, 10, -102, -50, 148, + 159, 12, 148, -99, 144, 83, 10, -100, 37, 39, + -6, -99, 83, 146, 160, 147, 10, -103, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, - 159, -81, -1, 12, -114, -16, 146, 131, 132, 88, + 159, -81, -1, 12, -85, -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, -98, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -99, 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, -98, 80, 83, + 148, -50, -16, 150, 150, -133, 17, -104, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -99, 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, -84, 148, -98, 79, + -16, 150, -104, 17, 17, 76, -104, 150, 148, -107, + -106, -16, 153, 150, 150, 83, -84, 148, -99, 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, + -98, -99, 146, 160, -101, -7, -99, 83, -102, -8, + -99, 83, 29, -99, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -91, -27, 147, 21, -149, + -113, -112, -16, -87, 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, -102, 146, 146, 10, - 148, -93, 56, -95, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -116, 10, -103, 146, 146, 10, + 148, -94, 56, -96, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -107, -40, -21, 60, 83, -98, 79, 79, 149, 149, + -108, -40, -21, 60, 83, -99, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -98, 58, -12, 79, - -104, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -106, 151, -3, 160, 59, -19, -21, -15, + 10, 144, -83, -84, 79, 83, -99, 58, -12, 79, + -105, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 76, -15, -107, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -127, -52, -70, -17, -21, 153, 84, -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, + -16, 146, -98, 145, -84, -6, 146, 160, 29, -99, + 146, 160, 29, -99, 10, 29, 162, -30, -79, -9, + -33, -99, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -110, -103, + -103, -50, 146, 160, -114, 146, -114, 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, -98, 80, 83, -94, 57, -47, 144, -126, - -47, -17, -21, -21, 92, 149, 160, 148, -98, -139, + 62, -47, -99, 80, 83, -95, 57, -47, 144, -126, + -47, -17, -21, -21, 92, 149, 160, 148, -99, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -98, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -99, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -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, -91, -21, 153, 60, -91, + 152, 83, -99, 148, -134, -135, -79, 17, 79, -79, + -79, -79, -79, -79, 149, -56, 94, 95, -111, 22, + 146, -113, -16, 145, 32, 33, -114, 31, -114, 145, + 162, -120, -16, 146, -58, -92, -21, 153, 60, -92, -59, -27, 147, 10, -30, -117, 42, -120, 149, 160, - -149, 83, -98, 144, -126, -122, 160, -45, 162, -40, - -107, 150, -138, -140, -15, -143, 151, -16, -147, 150, + -149, 83, -99, 144, -126, -122, 160, -45, 162, -40, + -108, 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, - -98, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -99, -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, -92, 59, -21, 148, - -92, -102, 162, -60, 43, 148, 149, -96, 45, -65, - -150, 84, -98, -122, 145, -67, -123, -68, -69, -124, + 146, 145, 146, 31, -30, 149, -93, 59, -21, 148, + -93, -103, 162, -60, 43, 148, 149, -97, 45, -65, + -150, 84, -99, -122, 145, -67, -123, -68, -69, -124, -132, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, - 147, 149, -79, -79, -27, 96, -50, 147, -112, -4, - -102, 146, -96, 149, -91, -107, 149, 28, -30, 144, + 147, 149, -79, -79, -27, 96, -50, 147, -113, -4, + -103, 146, -97, 149, -92, -108, 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, -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, + -19, -79, 59, 146, 147, -103, 149, -103, 144, -89, + -27, 147, 149, -89, 146, -103, 12, -103, -103, -109, + 12, 153, 162, 146, 160, 162, 10, -149, 162, -86, + 160, 146, 144, -79, -103, -90, -27, 147, -103, -103, 145, 149, 145, 145, 149, 160, 12, -30, 12, -30, 162, 10, -30, -47, -129, -130, -71, -72, -73, -74, - -75, -47, 10, -102, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -103, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 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, + 146, -103, 12, -30, -120, -131, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -118, -119, -61, 42, -88, + 146, 144, -47, -61, 148, -103, -47, 145, 12, 149, + 144, -103, 145, } var yyDef = [...]int{ @@ -3180,20 +3180,15 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1056 { - yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtEcho).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).setToken(yyVAL.node, token.Echo, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1069 + // line internal/php5/php5.y:1064 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3205,7 +3200,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1079 + // line internal/php5/php5.y:1074 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3219,7 +3214,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1091 + // line internal/php5/php5.y:1086 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3235,7 +3230,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1105 + // line internal/php5/php5.y:1100 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3276,7 +3271,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1143 + // line internal/php5/php5.y:1138 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3317,7 +3312,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1181 + // line internal/php5/php5.y:1176 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3332,7 +3327,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1194 + // line internal/php5/php5.y:1189 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3345,7 +3340,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1205 + // line internal/php5/php5.y:1200 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3363,7 +3358,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1221 + // line internal/php5/php5.y:1216 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3377,7 +3372,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1233 + // line internal/php5/php5.y:1228 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3394,13 +3389,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1251 + // line internal/php5/php5.y:1246 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1255 + // line internal/php5/php5.y:1250 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3422,13 +3417,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1278 + // line internal/php5/php5.y:1273 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1282 + // line internal/php5/php5.y:1277 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3442,31 +3437,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1297 + // line internal/php5/php5.y:1292 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1301 + // line internal/php5/php5.y:1296 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1308 + // line internal/php5/php5.y:1303 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1312 + // line internal/php5/php5.y:1307 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1319 + // line internal/php5/php5.y:1314 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3487,13 +3482,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1341 + // line internal/php5/php5.y:1336 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1345 + // line internal/php5/php5.y:1340 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3502,49 +3497,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1355 + // line internal/php5/php5.y:1350 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1362 + // line internal/php5/php5.y:1357 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1369 + // line internal/php5/php5.y:1364 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1376 + // line internal/php5/php5.y:1371 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1380 + // line internal/php5/php5.y:1375 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1387 + // line internal/php5/php5.y:1382 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1391 + // line internal/php5/php5.y:1386 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1398 + // line internal/php5/php5.y:1393 { 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} @@ -3568,7 +3563,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1423 + // line internal/php5/php5.y:1418 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3596,7 +3591,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1449 + // line internal/php5/php5.y:1444 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3613,7 +3608,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1468 + // line internal/php5/php5.y:1463 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3625,7 +3620,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1478 + // line internal/php5/php5.y:1473 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3640,7 +3635,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1491 + // line internal/php5/php5.y:1486 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3652,7 +3647,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1501 + // line internal/php5/php5.y:1496 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3667,13 +3662,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1517 + // line internal/php5/php5.y:1512 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1521 + // line internal/php5/php5.y:1516 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3685,19 +3680,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1534 + // line internal/php5/php5.y:1529 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1541 + // line internal/php5/php5.y:1536 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1545 + // line internal/php5/php5.y:1540 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3709,13 +3704,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1558 + // line internal/php5/php5.y:1553 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1562 + // line internal/php5/php5.y:1557 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3727,13 +3722,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1575 + // line internal/php5/php5.y:1570 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1579 + // line internal/php5/php5.y:1574 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3747,13 +3742,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1591 + // line internal/php5/php5.y:1586 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1595 + // line internal/php5/php5.y:1590 { yyVAL.node = yyDollar[2].node @@ -3762,13 +3757,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1605 + // line internal/php5/php5.y:1600 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1609 + // line internal/php5/php5.y:1604 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3780,7 +3775,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1619 + // line internal/php5/php5.y:1614 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3794,7 +3789,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1634 + // line internal/php5/php5.y:1629 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3805,7 +3800,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1643 + // line internal/php5/php5.y:1638 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3825,7 +3820,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1664 + // line internal/php5/php5.y:1659 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3834,7 +3829,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1671 + // line internal/php5/php5.y:1666 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3855,7 +3850,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1694 + // line internal/php5/php5.y:1689 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3864,7 +3859,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1701 + // line internal/php5/php5.y:1696 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3885,7 +3880,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1724 + // line internal/php5/php5.y:1719 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3907,7 +3902,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1744 + // line internal/php5/php5.y:1739 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3928,7 +3923,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1767 + // line internal/php5/php5.y:1762 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3941,7 +3936,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1778 + // line internal/php5/php5.y:1773 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3955,7 +3950,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1790 + // line internal/php5/php5.y:1785 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3965,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1803 + // line internal/php5/php5.y:1798 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3986,13 +3981,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1821 + // line internal/php5/php5.y:1816 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1825 + // line internal/php5/php5.y:1820 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4006,7 +4001,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1837 + // line internal/php5/php5.y:1832 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4019,19 +4014,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1852 + // line internal/php5/php5.y:1847 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1856 + // line internal/php5/php5.y:1851 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1864 + // line internal/php5/php5.y:1859 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4042,7 +4037,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1873 + // line internal/php5/php5.y:1868 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4062,13 +4057,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1896 + // line internal/php5/php5.y:1891 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1900 + // line internal/php5/php5.y:1895 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4083,13 +4078,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1917 + // line internal/php5/php5.y:1912 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1921 + // line internal/php5/php5.y:1916 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4106,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1945 + // line internal/php5/php5.y:1940 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1949 + // line internal/php5/php5.y:1944 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4129,13 +4124,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1963 + // line internal/php5/php5.y:1958 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1967 + // line internal/php5/php5.y:1962 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4154,25 +4149,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1988 + // line internal/php5/php5.y:1983 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1992 + // line internal/php5/php5.y:1987 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1999 + // line internal/php5/php5.y:1994 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2003 + // line internal/php5/php5.y:1998 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4181,7 +4176,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2013 + // line internal/php5/php5.y:2008 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4217,7 +4212,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2047 + // line internal/php5/php5.y:2042 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4254,13 +4249,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2086 + // line internal/php5/php5.y:2081 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2090 + // line internal/php5/php5.y:2085 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4272,7 +4267,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2100 + // line internal/php5/php5.y:2095 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4284,13 +4279,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2110 + // line internal/php5/php5.y:2105 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2118 + // line internal/php5/php5.y:2113 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4303,7 +4298,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2129 + // line internal/php5/php5.y:2124 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4316,7 +4311,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2140 + // line internal/php5/php5.y:2135 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4331,13 +4326,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2157 + // line internal/php5/php5.y:2152 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2161 + // line internal/php5/php5.y:2156 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4346,7 +4341,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2171 + // line internal/php5/php5.y:2166 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4358,7 +4353,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2181 + // line internal/php5/php5.y:2176 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4370,7 +4365,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2191 + // line internal/php5/php5.y:2186 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4382,7 +4377,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2201 + // line internal/php5/php5.y:2196 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4394,7 +4389,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2214 + // line internal/php5/php5.y:2209 { 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) @@ -4403,7 +4398,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2221 + // line internal/php5/php5.y:2216 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4411,7 +4406,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2231 + // line internal/php5/php5.y:2226 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4425,7 +4420,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2243 + // line internal/php5/php5.y:2238 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4437,7 +4432,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2253 + // line internal/php5/php5.y:2248 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4451,7 +4446,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2269 + // line internal/php5/php5.y:2264 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4475,7 +4470,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2291 + // line internal/php5/php5.y:2286 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4501,7 +4496,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2315 + // line internal/php5/php5.y:2310 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4526,7 +4521,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2338 + // line internal/php5/php5.y:2333 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4553,19 +4548,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2367 + // line internal/php5/php5.y:2362 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2371 + // line internal/php5/php5.y:2366 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2379 + // line internal/php5/php5.y:2374 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4579,7 +4574,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2391 + // line internal/php5/php5.y:2386 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4587,13 +4582,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2397 + // line internal/php5/php5.y:2392 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2401 + // line internal/php5/php5.y:2396 { 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} @@ -4624,7 +4619,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2433 + // line internal/php5/php5.y:2428 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4636,13 +4631,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2441 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2450 + // line internal/php5/php5.y:2445 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4656,7 +4651,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2462 + // line internal/php5/php5.y:2457 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4668,7 +4663,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2472 + // line internal/php5/php5.y:2467 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4680,31 +4675,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2485 + // line internal/php5/php5.y:2480 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2489 + // line internal/php5/php5.y:2484 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2496 + // line internal/php5/php5.y:2491 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2500 + // line internal/php5/php5.y:2495 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2507 + // line internal/php5/php5.y:2502 { yyVAL.node = yyDollar[1].node @@ -4714,7 +4709,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2515 + // line internal/php5/php5.y:2510 { yyVAL.node = yyDollar[1].node @@ -4724,7 +4719,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2526 + // line internal/php5/php5.y:2521 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4737,13 +4732,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2540 + // line internal/php5/php5.y:2535 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2544 + // line internal/php5/php5.y:2539 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4752,7 +4747,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2554 + // line internal/php5/php5.y:2549 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4766,13 +4761,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2566 + // line internal/php5/php5.y:2561 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2573 + // line internal/php5/php5.y:2568 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4788,7 +4783,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2590 + // line internal/php5/php5.y:2585 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4804,7 +4799,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2604 + // line internal/php5/php5.y:2599 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4817,19 +4812,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2618 + // line internal/php5/php5.y:2613 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2622 + // line internal/php5/php5.y:2617 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2629 + // line internal/php5/php5.y:2624 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4842,7 +4837,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2640 + // line internal/php5/php5.y:2635 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4855,13 +4850,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2654 + // line internal/php5/php5.y:2649 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2658 + // line internal/php5/php5.y:2653 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4874,31 +4869,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2672 + // line internal/php5/php5.y:2667 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2676 + // line internal/php5/php5.y:2671 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2683 + // line internal/php5/php5.y:2678 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2687 + // line internal/php5/php5.y:2682 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2694 + // line internal/php5/php5.y:2689 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4910,7 +4905,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2704 + // line internal/php5/php5.y:2699 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4922,7 +4917,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2714 + // line internal/php5/php5.y:2709 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4934,7 +4929,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2724 + // line internal/php5/php5.y:2719 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4946,7 +4941,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2734 + // line internal/php5/php5.y:2729 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4958,7 +4953,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2744 + // line internal/php5/php5.y:2739 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4970,7 +4965,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2757 + // line internal/php5/php5.y:2752 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4988,7 +4983,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2773 + // line internal/php5/php5.y:2768 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5007,7 +5002,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2790 + // line internal/php5/php5.y:2785 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5024,7 +5019,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2805 + // line internal/php5/php5.y:2800 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5042,7 +5037,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2824 + // line internal/php5/php5.y:2819 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5067,7 +5062,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2847 + // line internal/php5/php5.y:2842 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5095,34 +5090,36 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2876 + // line internal/php5/php5.y:2871 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2883 + // line internal/php5/php5.y:2878 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtEcho{ + Exprs: []ast.Vertex{yyDollar[1].node}, + } } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2891 + // line internal/php5/php5.y:2888 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2895 + // line internal/php5/php5.y:2892 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2902 + // line internal/php5/php5.y:2899 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5131,25 +5128,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2909 + // line internal/php5/php5.y:2906 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2916 + // line internal/php5/php5.y:2913 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2920 + // line internal/php5/php5.y:2917 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2927 + // line internal/php5/php5.y:2924 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5163,7 +5160,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2939 + // line internal/php5/php5.y:2936 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5177,37 +5174,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2954 + // line internal/php5/php5.y:2951 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2958 + // line internal/php5/php5.y:2955 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2962 + // line internal/php5/php5.y:2959 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2969 + // line internal/php5/php5.y:2966 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2973 + // line internal/php5/php5.y:2970 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2980 + // line internal/php5/php5.y:2977 { if yyDollar[3].node != nil { @@ -5223,7 +5220,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2997 + // line internal/php5/php5.y:2994 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5240,7 +5237,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3012 + // line internal/php5/php5.y:3009 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5253,7 +5250,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3023 + // line internal/php5/php5.y:3020 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5267,7 +5264,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3035 + // line internal/php5/php5.y:3032 { var _new *ast.ExprNew @@ -5294,7 +5291,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3060 + // line internal/php5/php5.y:3057 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5306,7 +5303,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3070 + // line internal/php5/php5.y:3067 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5318,7 +5315,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3077 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5328,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3091 + // line internal/php5/php5.y:3088 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5341,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3102 + // line internal/php5/php5.y:3099 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5354,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3113 + // line internal/php5/php5.y:3110 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5367,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3124 + // line internal/php5/php5.y:3121 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5380,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3135 + // line internal/php5/php5.y:3132 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5393,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3146 + // line internal/php5/php5.y:3143 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5406,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3157 + // line internal/php5/php5.y:3154 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5419,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3168 + // line internal/php5/php5.y:3165 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5435,7 +5432,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3179 + // line internal/php5/php5.y:3176 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5448,7 +5445,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3190 + // line internal/php5/php5.y:3187 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5461,7 +5458,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3201 + // line internal/php5/php5.y:3198 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5474,7 +5471,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3212 + // line internal/php5/php5.y:3209 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5486,7 +5483,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3222 + // line internal/php5/php5.y:3219 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5499,7 +5496,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3233 + // line internal/php5/php5.y:3230 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5511,7 +5508,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3243 + // line internal/php5/php5.y:3240 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5524,7 +5521,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3254 + // line internal/php5/php5.y:3251 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5537,7 +5534,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3265 + // line internal/php5/php5.y:3262 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5547,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3276 + // line internal/php5/php5.y:3273 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5560,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3287 + // line internal/php5/php5.y:3284 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5573,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3298 + // line internal/php5/php5.y:3295 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5586,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3309 + // line internal/php5/php5.y:3306 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5599,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3320 + // line internal/php5/php5.y:3317 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5612,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3331 + // line internal/php5/php5.y:3328 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5623,12 +5620,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3342 + // line internal/php5/php5.y:3338 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5637,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3353 + // line internal/php5/php5.y:3349 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5650,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3364 + // line internal/php5/php5.y:3360 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5663,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3375 + // line internal/php5/php5.y:3371 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5676,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3386 + // line internal/php5/php5.y:3382 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5689,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3397 + // line internal/php5/php5.y:3393 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5702,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3408 + // line internal/php5/php5.y:3404 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5715,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3419 + // line internal/php5/php5.y:3415 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,7 +5728,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3430 + // line internal/php5/php5.y:3426 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5744,7 +5740,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3440 + // line internal/php5/php5.y:3436 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5756,7 +5752,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3450 + // line internal/php5/php5.y:3446 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5768,7 +5764,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3460 + // line internal/php5/php5.y:3456 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5780,7 +5776,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3470 + // line internal/php5/php5.y:3466 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5789,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3481 + // line internal/php5/php5.y:3477 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5806,7 +5802,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3492 + // line internal/php5/php5.y:3488 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5815,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3503 + // line internal/php5/php5.y:3499 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5829,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3515 + // line internal/php5/php5.y:3511 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5846,7 +5842,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3526 + // line internal/php5/php5.y:3522 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5855,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3537 + // line internal/php5/php5.y:3533 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,7 +5868,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3548 + // line internal/php5/php5.y:3544 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5885,7 +5881,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3559 + // line internal/php5/php5.y:3555 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5898,19 +5894,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3570 + // line internal/php5/php5.y:3566 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3574 + // line internal/php5/php5.y:3570 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3578 + // line internal/php5/php5.y:3574 { yyVAL.node = yyDollar[2].node @@ -5942,7 +5938,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3608 + // line internal/php5/php5.y:3604 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5956,7 +5952,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3620 + // line internal/php5/php5.y:3616 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5970,13 +5966,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3632 + // line internal/php5/php5.y:3628 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3636 + // line internal/php5/php5.y:3632 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5989,7 +5985,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3647 + // line internal/php5/php5.y:3643 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6002,7 +5998,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3658 + // line internal/php5/php5.y:3654 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6015,7 +6011,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3669 + // line internal/php5/php5.y:3665 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6028,7 +6024,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3680 + // line internal/php5/php5.y:3676 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6041,7 +6037,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3691 + // line internal/php5/php5.y:3687 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6054,7 +6050,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3702 + // line internal/php5/php5.y:3698 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6067,7 +6063,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3713 + // line internal/php5/php5.y:3709 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6087,7 +6083,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3731 + // line internal/php5/php5.y:3727 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6099,25 +6095,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3741 + // line internal/php5/php5.y:3737 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3745 + // line internal/php5/php5.y:3741 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3749 + // line internal/php5/php5.y:3745 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3753 + // line internal/php5/php5.y:3749 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6129,7 +6125,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3763 + // line internal/php5/php5.y:3759 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6141,7 +6137,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3773 + // line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6153,7 +6149,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3783 + // line internal/php5/php5.y:3779 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6180,7 +6176,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3807 + // line internal/php5/php5.y:3803 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6208,7 +6204,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3835 + // line internal/php5/php5.y:3831 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6220,7 +6216,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3845 + // line internal/php5/php5.y:3841 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6232,7 +6228,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3855 + // line internal/php5/php5.y:3851 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6245,7 +6241,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3866 + // line internal/php5/php5.y:3862 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6258,7 +6254,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3880 + // line internal/php5/php5.y:3876 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6271,7 +6267,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3891 + // line internal/php5/php5.y:3887 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6284,7 +6280,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3902 + // line internal/php5/php5.y:3898 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6300,7 +6296,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3916 + // line internal/php5/php5.y:3912 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6313,7 +6309,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3930 + // line internal/php5/php5.y:3926 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6327,7 +6323,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3942 + // line internal/php5/php5.y:3938 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6340,19 +6336,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3956 + // line internal/php5/php5.y:3952 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3963 + // line internal/php5/php5.y:3959 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3967 + // line internal/php5/php5.y:3963 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6366,7 +6362,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3982 + // line internal/php5/php5.y:3978 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6382,7 +6378,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3996 + // line internal/php5/php5.y:3992 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6401,7 +6397,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4013 + // line internal/php5/php5.y:4009 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6416,7 +6412,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4026 + // line internal/php5/php5.y:4022 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6434,7 +6430,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4045 + // line internal/php5/php5.y:4041 { name := &ast.NameName{ Node: ast.Node{ @@ -6449,7 +6445,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4058 + // line internal/php5/php5.y:4054 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6466,7 +6462,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4073 + // line internal/php5/php5.y:4069 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6482,7 +6478,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4087 + // line internal/php5/php5.y:4083 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6495,7 +6491,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4098 + // line internal/php5/php5.y:4094 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6508,7 +6504,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4109 + // line internal/php5/php5.y:4105 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6521,7 +6517,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4120 + // line internal/php5/php5.y:4116 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6534,7 +6530,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4131 + // line internal/php5/php5.y:4127 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6546,7 +6542,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4144 + // line internal/php5/php5.y:4140 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6558,7 +6554,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4154 + // line internal/php5/php5.y:4150 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6569,7 +6565,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4163 + // line internal/php5/php5.y:4159 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6582,7 +6578,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4174 + // line internal/php5/php5.y:4170 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6594,7 +6590,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4187 + // line internal/php5/php5.y:4183 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6605,7 +6601,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4196 + // line internal/php5/php5.y:4192 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6618,7 +6614,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4207 + // line internal/php5/php5.y:4203 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6630,19 +6626,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4220 + // line internal/php5/php5.y:4216 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4224 + // line internal/php5/php5.y:4220 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4231 + // line internal/php5/php5.y:4227 { yyVAL.node = yyDollar[1].node @@ -6683,25 +6679,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4270 + // line internal/php5/php5.y:4266 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4274 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4282 + // line internal/php5/php5.y:4278 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4290 + // line internal/php5/php5.y:4286 { yyVAL.list = yyDollar[2].list @@ -6710,13 +6706,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4300 + // line internal/php5/php5.y:4296 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4304 + // line internal/php5/php5.y:4300 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6732,19 +6728,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4318 + // line internal/php5/php5.y:4314 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4325 + // line internal/php5/php5.y:4321 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4329 + // line internal/php5/php5.y:4325 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6754,25 +6750,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4337 + // line internal/php5/php5.y:4333 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4344 + // line internal/php5/php5.y:4340 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4348 + // line internal/php5/php5.y:4344 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4355 + // line internal/php5/php5.y:4351 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6784,7 +6780,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4365 + // line internal/php5/php5.y:4361 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6796,7 +6792,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4375 + // line internal/php5/php5.y:4371 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6808,7 +6804,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4385 + // line internal/php5/php5.y:4381 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6820,7 +6816,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4395 + // line internal/php5/php5.y:4391 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6832,7 +6828,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4405 + // line internal/php5/php5.y:4401 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6844,7 +6840,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4415 + // line internal/php5/php5.y:4411 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6856,7 +6852,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4425 + // line internal/php5/php5.y:4421 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6868,7 +6864,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4435 + // line internal/php5/php5.y:4431 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6880,7 +6876,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4445 + // line internal/php5/php5.y:4441 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6892,7 +6888,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4455 + // line internal/php5/php5.y:4451 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6906,7 +6902,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4467 + // line internal/php5/php5.y:4463 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6918,7 +6914,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4480 + // line internal/php5/php5.y:4476 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6934,25 +6930,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4497 + // line internal/php5/php5.y:4493 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4504 + // line internal/php5/php5.y:4500 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4508 + // line internal/php5/php5.y:4504 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4512 + // line internal/php5/php5.y:4508 { name := &ast.NameName{ Node: ast.Node{ @@ -6967,7 +6963,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4525 + // line internal/php5/php5.y:4521 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6984,7 +6980,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4540 + // line internal/php5/php5.y:4536 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7000,7 +6996,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4554 + // line internal/php5/php5.y:4550 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7014,7 +7010,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4566 + // line internal/php5/php5.y:4562 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7027,13 +7023,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4577 + // line internal/php5/php5.y:4573 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4581 + // line internal/php5/php5.y:4577 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7045,13 +7041,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4591 + // line internal/php5/php5.y:4587 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4598 + // line internal/php5/php5.y:4594 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7064,7 +7060,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4609 + // line internal/php5/php5.y:4605 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7077,7 +7073,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4620 + // line internal/php5/php5.y:4616 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7090,7 +7086,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4631 + // line internal/php5/php5.y:4627 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7103,7 +7099,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4642 + // line internal/php5/php5.y:4638 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7116,7 +7112,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4653 + // line internal/php5/php5.y:4649 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7129,7 +7125,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4664 + // line internal/php5/php5.y:4660 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7142,7 +7138,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4675 + // line internal/php5/php5.y:4671 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7154,7 +7150,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4685 + // line internal/php5/php5.y:4681 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7166,7 +7162,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4695 + // line internal/php5/php5.y:4691 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7179,7 +7175,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4706 + // line internal/php5/php5.y:4702 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7192,7 +7188,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4717 + // line internal/php5/php5.y:4713 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7205,7 +7201,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4728 + // line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7218,7 +7214,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4739 + // line internal/php5/php5.y:4735 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7231,7 +7227,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4750 + // line internal/php5/php5.y:4746 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7244,7 +7240,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4761 + // line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7257,7 +7253,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4772 + // line internal/php5/php5.y:4768 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7270,7 +7266,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4783 + // line internal/php5/php5.y:4779 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7283,7 +7279,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4794 + // line internal/php5/php5.y:4790 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7296,7 +7292,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4805 + // line internal/php5/php5.y:4801 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7309,7 +7305,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4816 + // line internal/php5/php5.y:4812 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7322,7 +7318,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4827 + // line internal/php5/php5.y:4823 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7335,7 +7331,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4838 + // line internal/php5/php5.y:4834 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7348,7 +7344,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4849 + // line internal/php5/php5.y:4845 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7362,7 +7358,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4861 + // line internal/php5/php5.y:4857 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7375,7 +7371,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4872 + // line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7388,7 +7384,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4883 + // line internal/php5/php5.y:4879 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7401,7 +7397,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4894 + // line internal/php5/php5.y:4890 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7414,7 +7410,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4905 + // line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7428,7 +7424,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4917 + // line internal/php5/php5.y:4913 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7442,7 +7438,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4929 + // line internal/php5/php5.y:4925 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7454,7 +7450,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4939 + // line internal/php5/php5.y:4935 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7466,7 +7462,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4949 + // line internal/php5/php5.y:4945 { yyVAL.node = yyDollar[2].node @@ -7476,13 +7472,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4960 + // line internal/php5/php5.y:4956 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4964 + // line internal/php5/php5.y:4960 { name := &ast.NameName{ Node: ast.Node{ @@ -7497,7 +7493,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4977 + // line internal/php5/php5.y:4973 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7514,7 +7510,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4992 + // line internal/php5/php5.y:4988 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7530,7 +7526,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5009 + // line internal/php5/php5.y:5005 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7544,25 +7540,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5021 + // line internal/php5/php5.y:5017 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5025 + // line internal/php5/php5.y:5021 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5029 + // line internal/php5/php5.y:5025 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5033 + // line internal/php5/php5.y:5029 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7574,7 +7570,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5043 + // line internal/php5/php5.y:5039 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7586,7 +7582,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5053 + // line internal/php5/php5.y:5049 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7598,13 +7594,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5066 + // line internal/php5/php5.y:5062 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5070 + // line internal/php5/php5.y:5066 { yyVAL.list = yyDollar[1].list @@ -7615,19 +7611,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5082 + // line internal/php5/php5.y:5078 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5086 + // line internal/php5/php5.y:5082 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5093 + // line internal/php5/php5.y:5089 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7642,7 +7638,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5106 + // line internal/php5/php5.y:5102 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7656,7 +7652,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5118 + // line internal/php5/php5.y:5114 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7670,7 +7666,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5130 + // line internal/php5/php5.y:5126 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7683,19 +7679,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5144 + // line internal/php5/php5.y:5140 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5148 + // line internal/php5/php5.y:5144 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5155 + // line internal/php5/php5.y:5151 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7712,7 +7708,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5170 + // line internal/php5/php5.y:5166 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7729,25 +7725,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5189 + // line internal/php5/php5.y:5185 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5197 + // line internal/php5/php5.y:5193 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5204 + // line internal/php5/php5.y:5200 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5211 + // line internal/php5/php5.y:5207 { yyVAL.node = yyDollar[1].node @@ -7805,25 +7801,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5267 + // line internal/php5/php5.y:5263 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5274 + // line internal/php5/php5.y:5270 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5278 + // line internal/php5/php5.y:5274 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5286 + // line internal/php5/php5.y:5282 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7837,7 +7833,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5301 + // line internal/php5/php5.y:5297 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7851,7 +7847,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5313 + // line internal/php5/php5.y:5309 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7865,7 +7861,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5328 + // line internal/php5/php5.y:5324 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7874,31 +7870,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5338 + // line internal/php5/php5.y:5334 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5342 + // line internal/php5/php5.y:5338 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5346 + // line internal/php5/php5.y:5342 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5353 + // line internal/php5/php5.y:5349 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5357 + // line internal/php5/php5.y:5353 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7910,7 +7906,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5370 + // line internal/php5/php5.y:5366 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7923,7 +7919,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5381 + // line internal/php5/php5.y:5377 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7936,13 +7932,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5395 + // line internal/php5/php5.y:5391 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5402 + // line internal/php5/php5.y:5398 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7955,7 +7951,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5413 + // line internal/php5/php5.y:5409 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7968,31 +7964,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5427 + // line internal/php5/php5.y:5423 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5431 + // line internal/php5/php5.y:5427 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5435 + // line internal/php5/php5.y:5431 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5443 + // line internal/php5/php5.y:5439 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5447 + // line internal/php5/php5.y:5443 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8004,13 +8000,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5457 + // line internal/php5/php5.y:5453 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5464 + // line internal/php5/php5.y:5460 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8023,7 +8019,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5475 + // line internal/php5/php5.y:5471 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8036,13 +8032,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5486 + // line internal/php5/php5.y:5482 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5494 + // line internal/php5/php5.y:5490 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8056,7 +8052,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5506 + // line internal/php5/php5.y:5502 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8070,25 +8066,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5521 + // line internal/php5/php5.y:5517 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5525 + // line internal/php5/php5.y:5521 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5533 + // line internal/php5/php5.y:5529 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5537 + // line internal/php5/php5.y:5533 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8098,7 +8094,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5548 + // line internal/php5/php5.y:5544 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8112,7 +8108,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5560 + // line internal/php5/php5.y:5556 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8126,7 +8122,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5572 + // line internal/php5/php5.y:5568 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8136,7 +8132,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5583 + // line internal/php5/php5.y:5579 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8148,7 +8144,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5593 + // line internal/php5/php5.y:5589 { yyVAL.node = yyDollar[2].node @@ -8161,7 +8157,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5607 + // line internal/php5/php5.y:5603 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8174,7 +8170,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5618 + // line internal/php5/php5.y:5614 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8191,7 +8187,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5636 + // line internal/php5/php5.y:5632 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8204,7 +8200,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5647 + // line internal/php5/php5.y:5643 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8214,7 +8210,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5659 + // line internal/php5/php5.y:5655 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8226,7 +8222,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5669 + // line internal/php5/php5.y:5665 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8242,19 +8238,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5683 + // line internal/php5/php5.y:5679 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5691 + // line internal/php5/php5.y:5687 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5695 + // line internal/php5/php5.y:5691 { yyVAL.list = yyDollar[1].list @@ -8269,7 +8265,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5711 + // line internal/php5/php5.y:5707 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8284,7 +8280,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5724 + // line internal/php5/php5.y:5720 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8298,7 +8294,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5736 + // line internal/php5/php5.y:5732 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8312,7 +8308,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5748 + // line internal/php5/php5.y:5744 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8325,7 +8321,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5759 + // line internal/php5/php5.y:5755 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8343,7 +8339,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5775 + // line internal/php5/php5.y:5771 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8359,7 +8355,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5789 + // line internal/php5/php5.y:5785 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8376,7 +8372,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5804 + // line internal/php5/php5.y:5800 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8391,13 +8387,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5820 + // line internal/php5/php5.y:5816 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5824 + // line internal/php5/php5.y:5820 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8410,13 +8406,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5835 + // line internal/php5/php5.y:5831 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5839 + // line internal/php5/php5.y:5835 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8429,7 +8425,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5853 + // line internal/php5/php5.y:5849 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8443,7 +8439,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5865 + // line internal/php5/php5.y:5861 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8460,7 +8456,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5880 + // line internal/php5/php5.y:5876 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8479,7 +8475,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5897 + // line internal/php5/php5.y:5893 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8494,7 +8490,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5910 + // line internal/php5/php5.y:5906 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8511,7 +8507,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5925 + // line internal/php5/php5.y:5921 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8530,7 +8526,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5942 + // line internal/php5/php5.y:5938 { yyVAL.node = yyDollar[2].node @@ -8540,7 +8536,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5953 + // line internal/php5/php5.y:5949 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8552,7 +8548,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5963 + // line internal/php5/php5.y:5959 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8569,7 +8565,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5978 + // line internal/php5/php5.y:5974 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8583,7 +8579,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5993 + // line internal/php5/php5.y:5989 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8597,7 +8593,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6005 + // line internal/php5/php5.y:6001 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8619,7 +8615,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6025 + // line internal/php5/php5.y:6021 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8641,7 +8637,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6045 + // line internal/php5/php5.y:6041 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8653,7 +8649,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6055 + // line internal/php5/php5.y:6051 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8665,7 +8661,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6065 + // line internal/php5/php5.y:6061 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8687,7 +8683,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6085 + // line internal/php5/php5.y:6081 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8699,7 +8695,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6095 + // line internal/php5/php5.y:6091 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8711,13 +8707,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6108 + // line internal/php5/php5.y:6104 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6112 + // line internal/php5/php5.y:6108 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8726,19 +8722,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6122 + // line internal/php5/php5.y:6118 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6126 + // line internal/php5/php5.y:6122 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6133 + // line internal/php5/php5.y:6129 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8754,7 +8750,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6147 + // line internal/php5/php5.y:6143 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8770,7 +8766,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6164 + // line internal/php5/php5.y:6160 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8786,7 +8782,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6177 { 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 a912b40..343df17 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -240,7 +240,7 @@ import ( %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 static_var_list global_var_list -%type ctor_arguments function_call_parameter_list +%type ctor_arguments function_call_parameter_list echo_expr_list %type trait_adaptations %type switch_case_list %type method_body @@ -255,7 +255,7 @@ import ( %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations %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 for_expr case_list unset_variables declare_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list %type class_statement_list variable_modifiers method_modifiers class_variable_declaration %type interface_list non_empty_function_call_parameter_list trait_list trait_adaptation_list non_empty_trait_adaptation_list @@ -1054,16 +1054,11 @@ unticked_statement: } | T_ECHO echo_expr_list ';' { - $$ = &ast.StmtEcho{ast.Node{}, $2} + $2.(*ast.StmtEcho).EchoTkn = $1 + $2.(*ast.StmtEcho).SemiColonTkn = $3 + $2.(*ast.StmtEcho).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).setToken($$, token.Echo, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_INLINE_HTML { @@ -2874,14 +2869,16 @@ class_constant_declaration: echo_expr_list: echo_expr_list ',' expr { - $$ = append($1, $3) + $1.(*ast.StmtEcho).Exprs = append($1.(*ast.StmtEcho).Exprs, $3) + $1.(*ast.StmtEcho).SeparatorTkns = append($1.(*ast.StmtEcho).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | expr { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtEcho{ + Exprs: []ast.Vertex{$1}, + } } ; @@ -3335,7 +3332,6 @@ expr_without_variable: $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '+' expr diff --git a/internal/php7/php7.go b/internal/php7/php7.go index e26b9a2..4734582 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:4827 +// line internal/php7/php7.y:4821 // line yacctab:1 var yyExca = [...]int{ @@ -631,10 +631,10 @@ 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, 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, + 890, 891, 886, 838, 328, 841, 892, 893, 676, 885, + 830, 730, 255, 853, 796, 897, 898, 385, 656, 872, + 852, 934, 786, 896, 903, 662, 845, 905, 227, 43, + 42, 16, 15, 151, 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, @@ -1430,10 +1430,10 @@ var yyPgo = [...]int{ 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, + 880, 10, 879, 878, 46, 39, 40, 2, 16, 705, + 43, 85, 876, 875, 871, 12, 870, 868, 555, 50, + 37, 867, 864, 9, 762, 20, 553, 862, 18, 860, + 858, 855, 88, 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,27 +1447,27 @@ 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, 97, 97, 10, 10, 10, 9, 9, 9, 9, + 117, 98, 98, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 93, 93, 16, 16, 18, 18, 7, 7, 106, + 9, 94, 94, 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, + 19, 102, 102, 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, 99, 99, 98, 98, + 11, 11, 11, 11, 11, 11, 100, 100, 99, 99, 26, 26, 110, 110, 27, 12, 1, 1, 2, 2, - 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, + 13, 13, 126, 126, 79, 79, 14, 15, 89, 89, + 91, 91, 90, 90, 95, 95, 95, 95, 86, 86, + 85, 85, 25, 25, 83, 83, 83, 83, 108, 108, + 108, 8, 8, 87, 87, 70, 70, 68, 68, 72, + 72, 69, 69, 119, 119, 120, 120, 29, 29, 30, + 30, 78, 78, 76, 76, 76, 77, 77, 80, 80, 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, + 36, 121, 121, 37, 37, 37, 37, 125, 125, 82, + 82, 82, 109, 109, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 84, 84, 123, 123, 122, 122, + 124, 124, 93, 93, 93, 93, 93, 93, 107, 107, + 43, 43, 101, 101, 71, 21, 67, 67, 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, @@ -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, 87, 87, 128, 3, 3, 91, 91, + 32, 32, 32, 88, 88, 128, 3, 3, 92, 92, 112, 112, 53, 53, 54, 54, 54, 54, 47, 47, - 48, 48, 51, 51, 96, 96, 96, 80, 80, 58, + 48, 48, 51, 51, 97, 97, 97, 81, 81, 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, + 64, 64, 55, 55, 55, 56, 56, 56, 115, 74, + 74, 114, 114, 73, 73, 73, 73, 73, 73, 73, + 96, 96, 96, 96, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, - 50, 50, 113, 113, 74, + 50, 50, 113, 113, 75, } var yyR2 = [...]int{ @@ -1546,44 +1546,44 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -117, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -67, -68, 21, 20, 23, + 52, 80, 45, 39, 144, -68, -69, 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, -69, -71, -28, -32, -78, 7, -62, -63, + 54, 55, -70, -72, -28, -32, -79, 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, + 6, 158, -52, 143, 97, 98, 107, -88, 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, - -61, 61, 18, -97, 83, 148, 83, -97, 144, 10, - -18, -93, -111, -97, 83, 37, 39, -19, -20, -101, + -61, 61, 18, -98, 83, 148, 83, -98, 144, 10, + -18, -94, -111, -98, 83, 37, 39, -19, -20, -102, -21, 10, -118, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -87, -36, - 12, -102, -44, -23, 146, 131, 132, 88, 90, 89, + -23, 99, -24, -24, -33, -34, -49, -35, -88, -36, + 12, -67, -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, -78, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -79, 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, -73, -72, -23, 153, + 150, 144, 58, 148, -115, -114, -74, -73, -23, 153, 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -51, 148, -23, -96, 17, -95, -65, 12, + -23, -23, -51, 148, -23, -97, 17, -96, -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, + -23, -23, 17, 76, -96, -96, 17, -3, 144, -49, + -80, 148, -80, 148, 83, -98, 149, -98, 146, 144, + -117, 146, -16, -111, -98, 83, 146, 160, 83, 29, + -98, -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, -48, -23, 147, - -23, -110, -27, -28, -23, -101, -118, 146, 146, 10, - -128, 10, -88, 56, -128, -90, 56, 148, -11, 148, + -23, -110, -27, -28, -23, -102, -118, 146, 146, 10, + -128, 10, -89, 56, -128, -91, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, -56, 10, 144, -49, -115, 151, 160, 59, -28, -23, @@ -1597,48 +1597,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -55, -6, -49, - -80, -79, 79, 150, 144, 58, 79, -80, -113, -74, + -81, -80, 79, 150, 144, 58, 79, -81, -113, -75, -23, -23, -23, 76, 76, 142, 148, -23, 149, -116, -31, -23, 84, -115, 10, 146, -117, 145, 146, 146, - 83, -97, -19, 83, -97, 144, 10, 83, -21, -23, + 83, -98, -19, 83, -98, 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, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -89, + -90, 57, -10, 144, -128, -125, -10, -23, -23, -118, + -23, 149, 151, 145, -80, -23, 149, 162, -74, -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, + 12, 10, 145, 145, 150, 145, -23, 151, -80, -23, + -80, -49, -24, -23, -56, -49, -89, -7, 160, 149, + 149, -119, -120, -29, -30, -78, -76, 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, + -17, -20, -94, 144, -128, 149, -87, -11, 147, -23, + -103, -23, -83, 144, 147, -23, 149, -27, -95, -28, + 153, 60, 150, -25, -11, 147, -100, 148, -119, -90, -128, -125, -121, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -89, 149, -74, 149, 160, -1, 153, -75, + 151, 145, -90, 149, -75, 149, 160, -1, 153, -76, 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, -37, -123, -122, 45, -124, 48, -92, 104, + 144, 145, -37, -123, -122, 45, -124, 48, -93, 104, 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, - -118, -23, -115, 151, -128, -76, 147, -29, -2, 84, + -118, -23, -115, 151, -128, -77, 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, + 32, 33, -108, 31, -108, -85, -11, 147, -95, -28, + -115, 151, 28, 148, 144, 149, -92, 45, 144, -121, + -30, 39, 37, -125, -93, 145, -118, 149, 145, 144, + -128, -78, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, - -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, + -99, -10, -118, -77, -77, 148, -121, 145, -107, -43, + 12, -101, -71, -6, -3, -82, 146, 144, -121, 59, + 162, 145, -86, -11, 147, -8, -118, 146, 26, -85, 12, 161, 145, 144, 144, -112, -53, 12, 153, 145, 146, 160, -128, 162, 146, 160, 162, -6, 145, -109, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, - 160, 12, -43, -23, -70, -23, -128, 145, -38, 146, + 160, 12, -43, -23, -71, -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, + -128, 148, -125, 10, -4, -93, -6, 146, -118, -119, + -6, 145, 149, -77, -84, 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,44 +3282,37 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:954 + // line internal/php7/php7.y:954 { 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) yyVAL.node = yyDollar[2].node } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:963 + // line internal/php7/php7.y:962 { 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) yyVAL.node = yyDollar[2].node } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:972 + // line internal/php7/php7.y:970 { - yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtEcho).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).setToken(yyVAL.node, token.Echo, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:985 + // line internal/php7/php7.y:978 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3331,7 +3324,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:995 + // line internal/php7/php7.y:988 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3345,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1007 + // line internal/php7/php7.y:1000 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3365,7 +3358,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1025 + // line internal/php7/php7.y:1018 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3389,7 +3382,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1047 + // line internal/php7/php7.y:1040 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3416,7 +3409,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1072 + // line internal/php7/php7.y:1065 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3431,7 +3424,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1078 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3444,7 +3437,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1096 + // line internal/php7/php7.y:1089 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3461,7 +3454,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1111 + // line internal/php7/php7.y:1104 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3475,7 +3468,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1123 + // line internal/php7/php7.y:1116 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3492,7 +3485,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1138 + // line internal/php7/php7.y:1131 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3507,13 +3500,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1153 + // line internal/php7/php7.y:1146 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1157 + // line internal/php7/php7.y:1150 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3535,13 +3528,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1179 + // line internal/php7/php7.y:1172 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1183 + // line internal/php7/php7.y:1176 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3555,13 +3548,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1195 + // line internal/php7/php7.y:1188 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1199 + // line internal/php7/php7.y:1192 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3575,13 +3568,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1214 + // line internal/php7/php7.y:1207 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1218 + // line internal/php7/php7.y:1211 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3590,13 +3583,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1228 + // line internal/php7/php7.y:1221 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1235 + // line internal/php7/php7.y:1228 { 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} @@ -3626,31 +3619,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1266 + // line internal/php7/php7.y:1259 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1270 + // line internal/php7/php7.y:1263 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1277 + // line internal/php7/php7.y:1270 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1281 + // line internal/php7/php7.y:1274 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1288 + // line internal/php7/php7.y:1281 { 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} @@ -3668,7 +3661,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1304 + // line internal/php7/php7.y:1297 { 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} @@ -3685,19 +3678,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1322 + // line internal/php7/php7.y:1315 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1326 + // line internal/php7/php7.y:1319 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1333 + // line internal/php7/php7.y:1326 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3709,7 +3702,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1343 + // line internal/php7/php7.y:1336 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3721,7 +3714,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1356 + // line internal/php7/php7.y:1349 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3738,7 +3731,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1374 + // line internal/php7/php7.y:1367 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3755,13 +3748,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1392 + // line internal/php7/php7.y:1385 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1396 + // line internal/php7/php7.y:1389 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3773,13 +3766,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1409 + // line internal/php7/php7.y:1402 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1413 + // line internal/php7/php7.y:1406 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3791,13 +3784,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1426 + // line internal/php7/php7.y:1419 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1430 + // line internal/php7/php7.y:1423 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3809,13 +3802,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1443 + // line internal/php7/php7.y:1436 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1447 + // line internal/php7/php7.y:1440 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3827,7 +3820,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1457 + // line internal/php7/php7.y:1450 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3841,7 +3834,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1469 + // line internal/php7/php7.y:1462 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3854,7 +3847,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1483 + // line internal/php7/php7.y:1476 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3865,7 +3858,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1492 + // line internal/php7/php7.y:1485 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3885,7 +3878,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1513 + // line internal/php7/php7.y:1506 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3894,7 +3887,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1520 + // line internal/php7/php7.y:1513 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3915,7 +3908,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1535 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3924,7 +3917,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1549 + // line internal/php7/php7.y:1542 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3945,7 +3938,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1571 + // line internal/php7/php7.y:1564 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3958,7 +3951,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1582 + // line internal/php7/php7.y:1575 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3972,7 +3965,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1594 + // line internal/php7/php7.y:1587 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3987,7 +3980,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1607 + // line internal/php7/php7.y:1600 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4003,13 +3996,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1624 + // line internal/php7/php7.y:1617 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1628 + // line internal/php7/php7.y:1621 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4023,7 +4016,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1640 + // line internal/php7/php7.y:1633 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4036,19 +4029,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1654 + // line internal/php7/php7.y:1647 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1658 + // line internal/php7/php7.y:1651 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1665 + // line internal/php7/php7.y:1658 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4059,7 +4052,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1674 + // line internal/php7/php7.y:1667 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4079,7 +4072,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1695 + // line internal/php7/php7.y:1688 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4094,7 +4087,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1708 + // line internal/php7/php7.y:1701 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4113,13 +4106,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1728 + // line internal/php7/php7.y:1721 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1732 + // line internal/php7/php7.y:1725 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4135,7 +4128,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1749 + // line internal/php7/php7.y:1742 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4157,7 +4150,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1769 + // line internal/php7/php7.y:1762 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4181,7 +4174,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1794 + // line internal/php7/php7.y:1787 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4191,7 +4184,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1802 + // line internal/php7/php7.y:1795 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4215,25 +4208,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1827 + // line internal/php7/php7.y:1820 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1831 + // line internal/php7/php7.y:1824 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1838 + // line internal/php7/php7.y:1831 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1842 + // line internal/php7/php7.y:1835 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4242,7 +4235,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1852 + // line internal/php7/php7.y:1845 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4278,7 +4271,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1886 + // line internal/php7/php7.y:1879 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4315,25 +4308,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1924 + // line internal/php7/php7.y:1917 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1928 + // line internal/php7/php7.y:1921 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1935 + // line internal/php7/php7.y:1928 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1939 + // line internal/php7/php7.y:1932 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4345,7 +4338,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1952 + // line internal/php7/php7.y:1945 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4357,7 +4350,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1962 + // line internal/php7/php7.y:1955 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4369,19 +4362,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1972 + // line internal/php7/php7.y:1965 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1972 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1983 + // line internal/php7/php7.y:1976 { yyVAL.node = yyDollar[2].node @@ -4390,7 +4383,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1993 + // line internal/php7/php7.y:1986 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4403,7 +4396,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2004 + // line internal/php7/php7.y:1997 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4420,13 +4413,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2022 + // line internal/php7/php7.y:2015 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2026 + // line internal/php7/php7.y:2019 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4435,7 +4428,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2036 + // line internal/php7/php7.y:2029 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4447,7 +4440,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2046 + // line internal/php7/php7.y:2039 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4459,7 +4452,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2059 + // line internal/php7/php7.y:2052 { 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) @@ -4468,7 +4461,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2066 + // line internal/php7/php7.y:2059 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4476,13 +4469,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2075 + // line internal/php7/php7.y:2068 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2082 + // line internal/php7/php7.y:2075 { 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) @@ -4491,7 +4484,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2089 + // line internal/php7/php7.y:2082 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4499,7 +4492,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2091 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4520,7 +4513,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2117 + // line internal/php7/php7.y:2110 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4542,19 +4535,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2140 + // line internal/php7/php7.y:2133 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2144 + // line internal/php7/php7.y:2137 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2151 + // line internal/php7/php7.y:2144 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4568,7 +4561,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2163 + // line internal/php7/php7.y:2156 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4582,7 +4575,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2175 + // line internal/php7/php7.y:2168 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4594,7 +4587,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2185 + // line internal/php7/php7.y:2178 { 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} @@ -4625,13 +4618,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2217 + // line internal/php7/php7.y:2210 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2221 + // line internal/php7/php7.y:2214 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4645,7 +4638,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2233 + // line internal/php7/php7.y:2226 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4657,7 +4650,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2243 + // line internal/php7/php7.y:2236 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4669,7 +4662,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2253 + // line internal/php7/php7.y:2246 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4681,19 +4674,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2266 + // line internal/php7/php7.y:2259 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2270 + // line internal/php7/php7.y:2263 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2277 + // line internal/php7/php7.y:2270 { yyVAL.node = yyDollar[1].node @@ -4703,7 +4696,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2285 + // line internal/php7/php7.y:2278 { yyVAL.node = yyDollar[1].node @@ -4713,7 +4706,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2296 + // line internal/php7/php7.y:2289 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4726,7 +4719,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2310 + // line internal/php7/php7.y:2303 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4742,7 +4735,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2317 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4758,7 +4751,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2338 + // line internal/php7/php7.y:2331 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4774,7 +4767,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2352 + // line internal/php7/php7.y:2345 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4787,7 +4780,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2366 + // line internal/php7/php7.y:2359 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4801,13 +4794,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2378 + // line internal/php7/php7.y:2371 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2385 + // line internal/php7/php7.y:2378 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4823,7 +4816,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2395 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4836,7 +4829,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2413 + // line internal/php7/php7.y:2406 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4849,13 +4842,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2427 + // line internal/php7/php7.y:2420 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2431 + // line internal/php7/php7.y:2424 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4868,31 +4861,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2445 + // line internal/php7/php7.y:2438 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2449 + // line internal/php7/php7.y:2442 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2456 + // line internal/php7/php7.y:2449 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2460 + // line internal/php7/php7.y:2453 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2467 + // line internal/php7/php7.y:2460 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4904,7 +4897,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2477 + // line internal/php7/php7.y:2470 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4916,7 +4909,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2487 + // line internal/php7/php7.y:2480 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4928,7 +4921,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2497 + // line internal/php7/php7.y:2490 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4940,7 +4933,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2507 + // line internal/php7/php7.y:2500 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4952,7 +4945,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2517 + // line internal/php7/php7.y:2510 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4964,7 +4957,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2530 + // line internal/php7/php7.y:2523 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4973,13 +4966,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2537 + // line internal/php7/php7.y:2530 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2544 + // line internal/php7/php7.y:2537 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4995,7 +4988,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2558 + // line internal/php7/php7.y:2551 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5012,7 +5005,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2576 + // line internal/php7/php7.y:2569 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5020,13 +5013,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2582 + // line internal/php7/php7.y:2575 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2589 + // line internal/php7/php7.y:2582 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5046,7 +5039,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2603 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5066,40 +5059,42 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2624 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2631 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtEcho{ + Exprs: []ast.Vertex{yyDollar[1].node}, + } } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2645 + // line internal/php7/php7.y:2640 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2652 + // line internal/php7/php7.y:2647 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2656 + // line internal/php7/php7.y:2651 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2663 + // line internal/php7/php7.y:2658 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5108,13 +5103,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2670 + // line internal/php7/php7.y:2665 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2677 + // line internal/php7/php7.y:2672 { 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} @@ -5132,7 +5127,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2696 + // line internal/php7/php7.y:2691 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5147,7 +5142,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2709 + // line internal/php7/php7.y:2704 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5159,7 +5154,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2722 + // line internal/php7/php7.y:2717 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5176,7 +5171,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2737 + // line internal/php7/php7.y:2732 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5192,7 +5187,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2751 + // line internal/php7/php7.y:2746 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5205,7 +5200,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2762 + // line internal/php7/php7.y:2757 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5219,7 +5214,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2774 + // line internal/php7/php7.y:2769 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5231,7 +5226,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2784 + // line internal/php7/php7.y:2779 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5244,7 +5239,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2795 + // line internal/php7/php7.y:2790 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5257,7 +5252,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2806 + // line internal/php7/php7.y:2801 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5270,7 +5265,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2817 + // line internal/php7/php7.y:2812 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5283,7 +5278,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2828 + // line internal/php7/php7.y:2823 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5296,7 +5291,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2839 + // line internal/php7/php7.y:2834 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5309,7 +5304,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2850 + // line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5322,7 +5317,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2861 + // line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5335,7 +5330,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2872 + // line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5348,7 +5343,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2883 + // line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5361,7 +5356,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2894 + // line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5374,7 +5369,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2905 + // line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5387,7 +5382,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2916 + // line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5400,7 +5395,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2927 + // line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5413,7 +5408,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2938 + // line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5425,7 +5420,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2948 + // line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5438,7 +5433,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2959 + // line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5450,7 +5445,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2969 + // line internal/php7/php7.y:2964 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5463,7 +5458,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2980 + // line internal/php7/php7.y:2975 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5476,7 +5471,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2991 + // line internal/php7/php7.y:2986 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5489,7 +5484,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3002 + // line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5502,7 +5497,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3013 + // line internal/php7/php7.y:3008 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5515,7 +5510,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3024 + // line internal/php7/php7.y:3019 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5528,7 +5523,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3035 + // line internal/php7/php7.y:3030 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5541,7 +5536,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3046 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5554,7 +5549,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3057 + // line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5562,12 +5557,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3068 + // line internal/php7/php7.y:3062 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5580,7 +5574,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3079 + // line internal/php7/php7.y:3073 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5593,7 +5587,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3090 + // line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5606,7 +5600,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3101 + // line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5619,7 +5613,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3112 + // line internal/php7/php7.y:3106 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5632,7 +5626,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3123 + // line internal/php7/php7.y:3117 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5645,7 +5639,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3134 + // line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5658,7 +5652,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3145 + // line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5671,7 +5665,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3156 + // line internal/php7/php7.y:3150 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5683,7 +5677,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3166 + // line internal/php7/php7.y:3160 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5695,7 +5689,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3176 + // line internal/php7/php7.y:3170 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5707,7 +5701,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3186 + // line internal/php7/php7.y:3180 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5719,7 +5713,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3196 + // line internal/php7/php7.y:3190 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,7 +5726,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3207 + // line internal/php7/php7.y:3201 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5745,7 +5739,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3218 + // line internal/php7/php7.y:3212 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5758,7 +5752,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3229 + // line internal/php7/php7.y:3223 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5772,7 +5766,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3241 + // line internal/php7/php7.y:3235 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5785,7 +5779,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3252 + // line internal/php7/php7.y:3246 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5798,7 +5792,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3263 + // line internal/php7/php7.y:3257 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5811,7 +5805,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3274 + // line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5824,7 +5818,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3285 + // line internal/php7/php7.y:3279 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5837,7 +5831,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3296 + // line internal/php7/php7.y:3290 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5850,7 +5844,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3307 + // line internal/php7/php7.y:3301 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5867,13 +5861,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3322 + // line internal/php7/php7.y:3316 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3326 + // line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5887,7 +5881,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3338 + // line internal/php7/php7.y:3332 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5901,7 +5895,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3350 + // line internal/php7/php7.y:3344 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5914,13 +5908,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3361 + // line internal/php7/php7.y:3355 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3365 + // line internal/php7/php7.y:3359 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5933,7 +5927,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3376 + // line internal/php7/php7.y:3370 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5946,7 +5940,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3387 + // line internal/php7/php7.y:3381 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5959,7 +5953,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3398 + // line internal/php7/php7.y:3392 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5972,7 +5966,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3409 + // line internal/php7/php7.y:3403 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5985,7 +5979,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3420 + // line internal/php7/php7.y:3414 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5998,7 +5992,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3431 + // line internal/php7/php7.y:3425 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6011,7 +6005,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3436 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6031,7 +6025,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3460 + // line internal/php7/php7.y:3454 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6043,13 +6037,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3470 + // line internal/php7/php7.y:3464 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3474 + // line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6061,7 +6055,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3484 + // line internal/php7/php7.y:3478 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6073,7 +6067,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3494 + // line internal/php7/php7.y:3488 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6085,7 +6079,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3504 + // line internal/php7/php7.y:3498 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6097,7 +6091,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3514 + // line internal/php7/php7.y:3508 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6110,7 +6104,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3525 + // line internal/php7/php7.y:3519 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6122,13 +6116,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3535 + // line internal/php7/php7.y:3529 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3539 + // line internal/php7/php7.y:3533 { yyVAL.node = yyDollar[2].node @@ -6149,7 +6143,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3560 + // line internal/php7/php7.y:3554 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6180,7 +6174,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3587 + // line internal/php7/php7.y:3581 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6206,25 +6200,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3617 + // line internal/php7/php7.y:3611 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3621 + // line internal/php7/php7.y:3615 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3628 + // line internal/php7/php7.y:3622 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3632 + // line internal/php7/php7.y:3626 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6238,7 +6232,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3647 + // line internal/php7/php7.y:3641 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6247,13 +6241,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3654 + // line internal/php7/php7.y:3648 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3661 + // line internal/php7/php7.y:3655 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6267,7 +6261,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3673 + // line internal/php7/php7.y:3667 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6284,7 +6278,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3691 + // line internal/php7/php7.y:3685 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6296,7 +6290,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3701 + // line internal/php7/php7.y:3695 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6309,7 +6303,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3712 + // line internal/php7/php7.y:3706 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6322,7 +6316,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3723 + // line internal/php7/php7.y:3717 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6334,7 +6328,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3736 + // line internal/php7/php7.y:3730 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6346,31 +6340,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3740 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3753 + // line internal/php7/php7.y:3747 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3757 + // line internal/php7/php7.y:3751 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3764 + // line internal/php7/php7.y:3758 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3768 + // line internal/php7/php7.y:3762 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6387,13 +6381,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3780 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3790 + // line internal/php7/php7.y:3784 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6403,25 +6397,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3798 + // line internal/php7/php7.y:3792 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3805 + // line internal/php7/php7.y:3799 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3803 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3816 + // line internal/php7/php7.y:3810 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6435,7 +6429,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3828 + // line internal/php7/php7.y:3822 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6448,7 +6442,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3839 + // line internal/php7/php7.y:3833 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6460,7 +6454,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3846 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6472,7 +6466,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3862 + // line internal/php7/php7.y:3856 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6484,7 +6478,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3872 + // line internal/php7/php7.y:3866 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6496,7 +6490,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3882 + // line internal/php7/php7.y:3876 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6508,7 +6502,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3892 + // line internal/php7/php7.y:3886 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6520,7 +6514,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3902 + // line internal/php7/php7.y:3896 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6532,7 +6526,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3912 + // line internal/php7/php7.y:3906 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6544,7 +6538,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3922 + // line internal/php7/php7.y:3916 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6556,7 +6550,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3932 + // line internal/php7/php7.y:3926 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6568,7 +6562,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3942 + // line internal/php7/php7.y:3936 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6580,7 +6574,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3952 + // line internal/php7/php7.y:3946 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6594,7 +6588,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3964 + // line internal/php7/php7.y:3958 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6606,7 +6600,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3974 + // line internal/php7/php7.y:3968 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6618,7 +6612,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3984 + // line internal/php7/php7.y:3978 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6630,19 +6624,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3994 + // line internal/php7/php7.y:3988 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3998 + // line internal/php7/php7.y:3992 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4005 + // line internal/php7/php7.y:3999 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6654,7 +6648,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4015 + // line internal/php7/php7.y:4009 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6670,7 +6664,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4029 + // line internal/php7/php7.y:4023 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6686,43 +6680,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4046 + // line internal/php7/php7.y:4040 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4050 + // line internal/php7/php7.y:4044 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4057 + // line internal/php7/php7.y:4051 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4061 + // line internal/php7/php7.y:4055 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4068 + // line internal/php7/php7.y:4062 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4069 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4079 + // line internal/php7/php7.y:4073 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6739,19 +6733,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4094 + // line internal/php7/php7.y:4088 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4095 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4105 + // line internal/php7/php7.y:4099 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6768,19 +6762,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4120 + // line internal/php7/php7.y:4114 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4127 + // line internal/php7/php7.y:4121 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4131 + // line internal/php7/php7.y:4125 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6793,7 +6787,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4142 + // line internal/php7/php7.y:4136 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6806,7 +6800,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4153 + // line internal/php7/php7.y:4147 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6819,7 +6813,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4164 + // line internal/php7/php7.y:4158 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6832,25 +6826,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4175 + // line internal/php7/php7.y:4169 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4182 + // line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4186 + // line internal/php7/php7.y:4180 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4190 + // line internal/php7/php7.y:4184 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6863,7 +6857,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4204 + // line internal/php7/php7.y:4198 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6877,7 +6871,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4216 + // line internal/php7/php7.y:4210 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6891,7 +6885,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4228 + // line internal/php7/php7.y:4222 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6903,7 +6897,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4241 + // line internal/php7/php7.y:4235 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6916,7 +6910,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4252 + // line internal/php7/php7.y:4246 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6929,13 +6923,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4266 + // line internal/php7/php7.y:4260 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4270 + // line internal/php7/php7.y:4264 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6948,7 +6942,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4281 + // line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6961,7 +6955,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4292 + // line internal/php7/php7.y:4286 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6974,7 +6968,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4303 + // line internal/php7/php7.y:4297 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6987,7 +6981,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4314 + // line internal/php7/php7.y:4308 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7000,7 +6994,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4328 + // line internal/php7/php7.y:4322 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7012,7 +7006,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4338 + // line internal/php7/php7.y:4332 { yyVAL.node = yyDollar[2].node @@ -7022,13 +7016,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4346 + // line internal/php7/php7.y:4340 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4353 + // line internal/php7/php7.y:4347 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7040,7 +7034,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4363 + // line internal/php7/php7.y:4357 { yyVAL.node = yyDollar[2].node @@ -7050,31 +7044,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4371 + // line internal/php7/php7.y:4365 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4378 + // line internal/php7/php7.y:4372 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4385 + // line internal/php7/php7.y:4379 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4389 + // line internal/php7/php7.y:4383 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4396 + // line internal/php7/php7.y:4390 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7087,7 +7081,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4407 + // line internal/php7/php7.y:4401 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7097,7 +7091,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4418 + // line internal/php7/php7.y:4412 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7110,7 +7104,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4429 + // line internal/php7/php7.y:4423 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7122,7 +7116,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4439 + // line internal/php7/php7.y:4433 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7138,7 +7132,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4453 + // line internal/php7/php7.y:4447 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7152,7 +7146,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4465 + // line internal/php7/php7.y:4459 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7164,7 +7158,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4475 + // line internal/php7/php7.y:4469 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7183,7 +7177,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4492 + // line internal/php7/php7.y:4486 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7200,13 +7194,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4510 + // line internal/php7/php7.y:4504 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4514 + // line internal/php7/php7.y:4508 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7219,13 +7213,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4525 + // line internal/php7/php7.y:4519 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4529 + // line internal/php7/php7.y:4523 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7238,7 +7232,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4543 + // line internal/php7/php7.y:4537 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7252,7 +7246,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4555 + // line internal/php7/php7.y:4549 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7269,7 +7263,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4570 + // line internal/php7/php7.y:4564 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7288,7 +7282,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4587 + // line internal/php7/php7.y:4581 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7303,7 +7297,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4600 + // line internal/php7/php7.y:4594 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7320,7 +7314,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4615 + // line internal/php7/php7.y:4609 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7339,7 +7333,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4632 + // line internal/php7/php7.y:4626 { yyVAL.node = yyDollar[2].node @@ -7349,7 +7343,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4643 + // line internal/php7/php7.y:4637 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7361,7 +7355,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4653 + // line internal/php7/php7.y:4647 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7378,7 +7372,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4668 + // line internal/php7/php7.y:4662 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7404,7 +7398,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4692 + // line internal/php7/php7.y:4686 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7418,7 +7412,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4707 + // line internal/php7/php7.y:4701 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7436,7 +7430,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4723 + // line internal/php7/php7.y:4717 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7458,7 +7452,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4743 + // line internal/php7/php7.y:4737 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7470,7 +7464,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4753 + // line internal/php7/php7.y:4747 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7482,7 +7476,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4763 + // line internal/php7/php7.y:4757 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7504,7 +7498,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4783 + // line internal/php7/php7.y:4777 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7516,7 +7510,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4793 + // line internal/php7/php7.y:4787 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7528,13 +7522,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4806 + // line internal/php7/php7.y:4800 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4810 + // line internal/php7/php7.y:4804 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7543,7 +7537,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4820 + // line internal/php7/php7.y:4814 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index a095f9a..6f37de7 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -249,7 +249,7 @@ import ( %type exit_expr scalar lexical_var function_call member_name property_name %type variable_class_name dereferencable_scalar constant dereferencable %type callable_expr callable_variable static_member new_variable -%type encaps_var encaps_var_offset +%type encaps_var encaps_var_offset echo_expr_list %type if_stmt %type alt_if_stmt %type if_stmt_without_else @@ -275,7 +275,7 @@ 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 +%type const_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 @@ -954,7 +954,6 @@ statement: { $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) $$ = $2 @@ -963,23 +962,17 @@ statement: { $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) $$ = $2 } | T_ECHO echo_expr_list ';' { - $$ = &ast.StmtEcho{ast.Node{}, $2} + $2.(*ast.StmtEcho).EchoTkn = $1 + $2.(*ast.StmtEcho).SemiColonTkn = $3 + $2.(*ast.StmtEcho).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).setToken($$, token.Echo, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_INLINE_HTML { @@ -2629,14 +2622,16 @@ const_decl: echo_expr_list: echo_expr_list ',' echo_expr { - $$ = append($1, $3) + $1.(*ast.StmtEcho).Exprs = append($1.(*ast.StmtEcho).Exprs, $3) + $1.(*ast.StmtEcho).SeparatorTkns = append($1.(*ast.StmtEcho).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | echo_expr { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtEcho{ + Exprs: []ast.Vertex{$1}, + } } ; @@ -3061,7 +3056,6 @@ expr_without_variable: $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '+' expr diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index b21ff7c..7986acb 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -58,7 +58,7 @@ func (lex *Lexer) setTokenPosition(token *token.Token) { } func (lex *Lexer) addSkippedToken(t *token.Token, id token.ID, ps, pe int) { - if lex.sts == 0 { + if lex.sts == -1 { lex.sts = lex.ts } diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index f90db23..9f779e6 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -53,7 +53,7 @@ func (lex *Lexer) Lex() *token.Token { tkn := lex.tokenPool.Get() - lex.sts = 0 + lex.sts = -1 lex.ste = 0 lblStart := 0 @@ -24293,6 +24293,10 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:499 + if lex.sts == -1 { + lex.sts = 0 + } + tkn.Value = lex.data[lex.ts:lex.te] tkn.ID = token.ID(tok) tkn.Skipped = lex.data[lex.sts:lex.ste] diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index 18874ae..b3a0015 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -26,7 +26,7 @@ func (lex *Lexer) Lex() *token.Token { tkn := lex.tokenPool.Get() - lex.sts = 0 + lex.sts = -1 lex.ste = 0 lblStart := 0 @@ -498,9 +498,13 @@ func (lex *Lexer) Lex() *token.Token { write exec; }%% + if lex.sts == -1 { + lex.sts = 0 + } + tkn.Value = lex.data[lex.ts:lex.te] tkn.ID = token.ID(tok) - tkn.SkippedString = lex.data[lex.sts:lex.ste] + tkn.Skipped = lex.data[lex.sts:lex.ste] lex.addSkippedToken(tkn, tok, lex.ts, lex.te); return tkn diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 1aa3120..16aa214 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -368,7 +368,10 @@ func (n *StmtDo) Accept(v NodeVisitor) { // StmtEcho node type StmtEcho struct { Node - Exprs []Vertex + EchoTkn *token.Token + Exprs []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtEcho) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index c0f9ef5..ef9f1b3 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -194,3 +194,9 @@ func (v *FilterTokens) StmtStatic(n *ast.StmtStatic) { func (v *FilterTokens) StmtStaticVar(n *ast.StmtStaticVar) { n.EqualTkn = nil } + +func (v *FilterTokens) StmtEcho(n *ast.StmtEcho) { + n.EchoTkn = nil + n.SeparatorTkns = nil + n.SemiColonTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index e7da279..20df694 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1,6 +1,7 @@ package printer import ( + "bytes" "io" "strings" @@ -16,9 +17,10 @@ const ( ) type Printer struct { - w io.Writer - s printerState - bufStart string + w io.Writer + s printerState + bufStart string + lastWrite []byte } // NewPrinter - Constructor for Printer @@ -32,12 +34,17 @@ func (p *Printer) SetState(s printerState) { p.s = s } +func (p *Printer) write(b []byte) { + p.lastWrite = b + p.w.Write(b) +} + func (p *Printer) Print(n ast.Vertex) { _, isRoot := n.(*ast.Root) _, isInlineHtml := n.(*ast.StmtInlineHtml) if p.s == HtmlState && !isInlineHtml && !isRoot { if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " 0 { - io.WriteString(p.w, glue) + p.write([]byte(glue)) } p.Print(n) @@ -97,28 +104,28 @@ func (p *Printer) printFreeFloatingOrDefault(n ast.Vertex, pos token.Position, d } if len(n.GetNode().Tokens[pos]) == 0 { - io.WriteString(p.w, def) + p.write([]byte(def)) return } for _, m := range n.GetNode().Tokens[pos] { - io.WriteString(p.w, string(m.Value)) + p.write(m.Value) } } func (p *Printer) printToken(t *token.Token, def string) { if t != nil { - p.w.Write(t.Skipped) - p.w.Write(t.Value) + p.write(t.Skipped) + p.write(t.Value) p.bufStart = "" return } if def != "" { - p.w.Write([]byte(p.bufStart)) + p.write([]byte(p.bufStart)) p.bufStart = "" - p.w.Write([]byte(def)) + p.write([]byte(def)) return } } @@ -129,7 +136,7 @@ func (p *Printer) printFreeFloating(n ast.Vertex, pos token.Position) { } for _, m := range n.GetNode().Tokens[pos] { - io.WriteString(p.w, string(m.Value)) + p.write(m.Value) } } @@ -503,7 +510,7 @@ func (p *Printer) printNodeIdentifier(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -512,7 +519,7 @@ func (p *Printer) printNodeReference(n ast.Vertex) { nn := n.(*ast.Reference) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "&") + p.write([]byte("&")) p.Print(nn.Var) p.printFreeFloating(nn, token.End) @@ -522,7 +529,7 @@ func (p *Printer) printNodeVariadic(n ast.Vertex) { nn := n.(*ast.Variadic) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "...") + p.write([]byte("...")) p.Print(nn.Var) p.printFreeFloating(nn, token.End) @@ -539,7 +546,7 @@ func (p *Printer) printNodeParameter(n ast.Vertex) { p.Print(nn.Var) if nn.DefaultValue != nil { - io.WriteString(p.w, "=") + p.write([]byte("=")) p.Print(nn.DefaultValue) } @@ -550,7 +557,7 @@ func (p *Printer) printNodeNullable(n ast.Vertex) { nn := n.(*ast.Nullable) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "?") + p.write([]byte("?")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -561,12 +568,12 @@ func (p *Printer) printNodeArgument(n ast.Vertex) { p.printFreeFloating(nn, token.Start) if nn.IsReference { - io.WriteString(p.w, "&") + p.write([]byte("&")) } p.printFreeFloating(nn, token.Ampersand) if nn.Variadic { - io.WriteString(p.w, "...") + p.write([]byte("...")) } p.Print(nn.Expr) @@ -615,7 +622,7 @@ func (p *Printer) printScalarLNumber(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -625,7 +632,7 @@ func (p *Printer) printScalarDNumber(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -635,7 +642,7 @@ func (p *Printer) printScalarString(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -645,7 +652,7 @@ func (p *Printer) printScalarEncapsedStringPart(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -655,7 +662,7 @@ func (p *Printer) printScalarEncapsed(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, "\"") + p.write([]byte("\"")) for _, part := range nn.Parts { switch part.(type) { case *ast.ExprArrayDimFetch: @@ -676,7 +683,7 @@ func (p *Printer) printScalarEncapsed(n ast.Vertex) { p.Print(part) } } - io.WriteString(p.w, "\"") + p.write([]byte("\"")) p.printFreeFloating(nn, token.End) } @@ -686,7 +693,7 @@ func (p *Printer) printScalarHeredoc(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Label)) + p.write(nn.Label) for _, part := range nn.Parts { switch part.(type) { @@ -709,7 +716,7 @@ func (p *Printer) printScalarHeredoc(n ast.Vertex) { } } - io.WriteString(p.w, strings.Trim(string(nn.Label), "<\"'\n")) + p.write([]byte(strings.Trim(string(nn.Label), "<\"'\n"))) p.printFreeFloating(nn, token.End) } @@ -719,7 +726,7 @@ func (p *Printer) printScalarMagicConstant(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -731,7 +738,7 @@ func (p *Printer) printAssign(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "=") + p.write([]byte("=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -742,9 +749,9 @@ func (p *Printer) printAssignReference(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "=") + p.write([]byte("=")) p.printFreeFloating(nn, token.Equal) - io.WriteString(p.w, "&") + p.write([]byte("&")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -755,8 +762,8 @@ func (p *Printer) printAssignBitwiseAnd(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "&") - io.WriteString(p.w, "=") + p.write([]byte("&")) + p.write([]byte("=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -767,7 +774,7 @@ func (p *Printer) printAssignBitwiseOr(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "|=") + p.write([]byte("|=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -778,7 +785,7 @@ func (p *Printer) printAssignBitwiseXor(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "^=") + p.write([]byte("^=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -789,7 +796,7 @@ func (p *Printer) printAssignCoalesce(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "??=") + p.write([]byte("??=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -800,7 +807,7 @@ func (p *Printer) printAssignConcat(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, ".=") + p.write([]byte(".=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -811,7 +818,7 @@ func (p *Printer) printAssignDiv(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "/=") + p.write([]byte("/=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -822,7 +829,7 @@ func (p *Printer) printAssignMinus(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "-=") + p.write([]byte("-=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -833,7 +840,7 @@ func (p *Printer) printAssignMod(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "%=") + p.write([]byte("%=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -844,7 +851,7 @@ func (p *Printer) printAssignMul(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "*=") + p.write([]byte("*=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -855,7 +862,7 @@ func (p *Printer) printAssignPlus(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "+=") + p.write([]byte("+=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -866,7 +873,7 @@ func (p *Printer) printAssignPow(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "**=") + p.write([]byte("**=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -877,7 +884,7 @@ func (p *Printer) printAssignShiftLeft(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "<<=") + p.write([]byte("<<=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -888,7 +895,7 @@ func (p *Printer) printAssignShiftRight(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, ">>=") + p.write([]byte(">>=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -902,7 +909,7 @@ func (p *Printer) printBinaryBitwiseAnd(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "&") + p.write([]byte("&")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -914,7 +921,7 @@ func (p *Printer) printBinaryBitwiseOr(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "|") + p.write([]byte("|")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -926,7 +933,7 @@ func (p *Printer) printBinaryBitwiseXor(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "^") + p.write([]byte("^")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -938,7 +945,7 @@ func (p *Printer) printBinaryBooleanAnd(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "&&") + p.write([]byte("&&")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -950,7 +957,7 @@ func (p *Printer) printBinaryBooleanOr(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "||") + p.write([]byte("||")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -962,7 +969,7 @@ func (p *Printer) printBinaryCoalesce(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "??") + p.write([]byte("??")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -974,7 +981,7 @@ func (p *Printer) printBinaryConcat(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ".") + p.write([]byte(".")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -986,7 +993,7 @@ func (p *Printer) printBinaryDiv(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "/") + p.write([]byte("/")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -998,7 +1005,7 @@ func (p *Printer) printBinaryEqual(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "==") + p.write([]byte("==")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1010,7 +1017,7 @@ func (p *Printer) printBinaryGreaterOrEqual(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ">=") + p.write([]byte(">=")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1022,7 +1029,7 @@ func (p *Printer) printBinaryGreater(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ">") + p.write([]byte(">")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1034,7 +1041,7 @@ func (p *Printer) printBinaryIdentical(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "===") + p.write([]byte("===")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1047,11 +1054,11 @@ func (p *Printer) printBinaryLogicalAnd(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "and") + p.write([]byte("and")) if nn.Right.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Right) @@ -1065,11 +1072,11 @@ func (p *Printer) printBinaryLogicalOr(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "or") + p.write([]byte("or")) if nn.Right.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Right) @@ -1083,11 +1090,11 @@ func (p *Printer) printBinaryLogicalXor(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "xor") + p.write([]byte("xor")) if nn.Right.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Right) @@ -1100,7 +1107,7 @@ func (p *Printer) printBinaryMinus(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "-") + p.write([]byte("-")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1112,7 +1119,7 @@ func (p *Printer) printBinaryMod(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "%") + p.write([]byte("%")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1124,7 +1131,7 @@ func (p *Printer) printBinaryMul(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "*") + p.write([]byte("*")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1138,7 +1145,7 @@ func (p *Printer) printBinaryNotEqual(n ast.Vertex) { p.printFreeFloating(nn, token.Expr) p.printFreeFloating(nn, token.Equal) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "!=") + p.write([]byte("!=")) } p.Print(nn.Right) @@ -1151,7 +1158,7 @@ func (p *Printer) printBinaryNotIdentical(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "!==") + p.write([]byte("!==")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1163,7 +1170,7 @@ func (p *Printer) printBinaryPlus(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "+") + p.write([]byte("+")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1175,7 +1182,7 @@ func (p *Printer) printBinaryPow(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "**") + p.write([]byte("**")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1187,7 +1194,7 @@ func (p *Printer) printBinaryShiftLeft(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "<<") + p.write([]byte("<<")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1199,7 +1206,7 @@ func (p *Printer) printBinaryShiftRight(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ">>") + p.write([]byte(">>")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1211,7 +1218,7 @@ func (p *Printer) printBinarySmallerOrEqual(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "<=") + p.write([]byte("<=")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1223,7 +1230,7 @@ func (p *Printer) printBinarySmaller(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "<") + p.write([]byte("<")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1235,7 +1242,7 @@ func (p *Printer) printBinarySpaceship(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "<=>") + p.write([]byte("<=>")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1249,7 +1256,7 @@ func (p *Printer) printArray(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(array)") + p.write([]byte("(array)")) } p.Print(nn.Expr) @@ -1262,7 +1269,7 @@ func (p *Printer) printBool(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(boolean)") + p.write([]byte("(boolean)")) } p.Print(nn.Expr) @@ -1275,7 +1282,7 @@ func (p *Printer) printDouble(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(float)") + p.write([]byte("(float)")) } p.Print(nn.Expr) @@ -1288,7 +1295,7 @@ func (p *Printer) printInt(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(integer)") + p.write([]byte("(integer)")) } p.Print(nn.Expr) @@ -1301,7 +1308,7 @@ func (p *Printer) printObject(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(object)") + p.write([]byte("(object)")) } p.Print(nn.Expr) @@ -1314,7 +1321,7 @@ func (p *Printer) printString(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(string)") + p.write([]byte("(string)")) } p.Print(nn.Expr) @@ -1327,7 +1334,7 @@ func (p *Printer) printUnset(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(unset)") + p.write([]byte("(unset)")) } p.Print(nn.Expr) @@ -1342,12 +1349,12 @@ func (p *Printer) printExprArrayDimFetch(n ast.Vertex) { p.Print(nn.Var) p.printFreeFloating(nn, token.Var) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "[") + p.write([]byte("[")) } p.Print(nn.Dim) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "]") + p.write([]byte("]")) } p.printFreeFloating(nn, token.End) } @@ -1358,12 +1365,12 @@ func (p *Printer) printExprArrayDimFetchWithoutLeadingDollar(n ast.Vertex) { p.printExprVariableWithoutLeadingDollar(nn.Var) p.printFreeFloating(nn, token.Var) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "[") + p.write([]byte("[")) } p.Print(nn.Dim) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "]") + p.write([]byte("]")) } p.printFreeFloating(nn, token.End) } @@ -1373,13 +1380,13 @@ func (p *Printer) printExprArrayItem(n ast.Vertex) { p.printFreeFloating(nn, token.Start) if nn.Unpack { - io.WriteString(p.w, "...") + p.write([]byte("...")) } if nn.Key != nil { p.Print(nn.Key) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "=>") + p.write([]byte("=>")) } p.Print(nn.Val) @@ -1390,12 +1397,12 @@ func (p *Printer) printExprArrayItem(n ast.Vertex) { func (p *Printer) printExprArray(n ast.Vertex) { nn := n.(*ast.ExprArray) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "array") + p.write([]byte("array")) p.printFreeFloating(nn, token.Array) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Items) p.printFreeFloating(nn, token.ArrayPairList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.End) } @@ -1405,25 +1412,25 @@ func (p *Printer) printExprArrowFunction(n ast.Vertex) { p.printFreeFloating(nn, token.Start) if nn.Static { - io.WriteString(p.w, "static") + p.write([]byte("static")) } p.printFreeFloating(nn, token.Static) if nn.Static && n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "fn") + p.write([]byte("fn")) p.printFreeFloating(nn, token.Function) if nn.ReturnsRef { - io.WriteString(p.w, "&") + p.write([]byte("&")) } p.printFreeFloating(nn, token.Ampersand) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Params) p.printFreeFloating(nn, token.ParameterList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Params) if nn.ReturnType != nil { @@ -1432,9 +1439,9 @@ func (p *Printer) printExprArrowFunction(n ast.Vertex) { } p.printFreeFloating(nn, token.ReturnType) - io.WriteString(p.w, "=>") + p.write([]byte("=>")) - p.printNode(nn.Expr) + p.Print(nn.Expr) p.printFreeFloating(nn, token.End) } @@ -1442,7 +1449,7 @@ func (p *Printer) printExprArrowFunction(n ast.Vertex) { func (p *Printer) printExprBitwiseNot(n ast.Vertex) { nn := n.(*ast.ExprBitwiseNot) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "~") + p.write([]byte("~")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) } @@ -1450,7 +1457,7 @@ func (p *Printer) printExprBitwiseNot(n ast.Vertex) { func (p *Printer) printExprBooleanNot(n ast.Vertex) { nn := n.(*ast.ExprBooleanNot) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "!") + p.write([]byte("!")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) } @@ -1461,7 +1468,7 @@ func (p *Printer) printExprClassConstFetch(n ast.Vertex) { p.Print(nn.Class) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "::") + p.write([]byte("::")) p.Print(nn.ConstantName) p.printFreeFloating(nn, token.End) @@ -1470,9 +1477,9 @@ func (p *Printer) printExprClassConstFetch(n ast.Vertex) { func (p *Printer) printExprClone(n ast.Vertex) { nn := n.(*ast.ExprClone) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "clone") + p.write([]byte("clone")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1481,12 +1488,12 @@ func (p *Printer) printExprClone(n ast.Vertex) { func (p *Printer) printExprClosureUse(n ast.Vertex) { nn := n.(*ast.ExprClosureUse) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "use") + p.write([]byte("use")) p.printFreeFloating(nn, token.Use) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Uses) p.printFreeFloating(nn, token.LexicalVarList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.End) } @@ -1496,25 +1503,25 @@ func (p *Printer) printExprClosure(n ast.Vertex) { p.printFreeFloating(nn, token.Start) if nn.Static { - io.WriteString(p.w, "static") + p.write([]byte("static")) } p.printFreeFloating(nn, token.Static) if nn.Static && n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "function") + p.write([]byte("function")) p.printFreeFloating(nn, token.Function) if nn.ReturnsRef { - io.WriteString(p.w, "&") + p.write([]byte("&")) } p.printFreeFloating(nn, token.Ampersand) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Params) p.printFreeFloating(nn, token.ParameterList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Params) if nn.ClosureUse != nil { @@ -1528,10 +1535,10 @@ func (p *Printer) printExprClosure(n ast.Vertex) { } p.printFreeFloating(nn, token.ReturnType) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -1546,16 +1553,16 @@ func (p *Printer) printExprConstFetch(n ast.Vertex) { func (p *Printer) printExprEmpty(n ast.Vertex) { nn := n.(*ast.ExprEmpty) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "empty") + p.write([]byte("empty")) if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") + p.write([]byte("(")) } p.Print(nn.Expr) if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") + p.write([]byte(")")) } p.printFreeFloating(nn, token.End) @@ -1564,7 +1571,7 @@ func (p *Printer) printExprEmpty(n ast.Vertex) { func (p *Printer) printExprErrorSuppress(n ast.Vertex) { nn := n.(*ast.ExprErrorSuppress) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "@") + p.write([]byte("@")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1574,16 +1581,16 @@ func (p *Printer) printExprEval(n ast.Vertex) { nn := n.(*ast.ExprEval) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "eval") + p.write([]byte("eval")) if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") + p.write([]byte("(")) } p.Print(nn.Expr) if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") + p.write([]byte(")")) } p.printFreeFloating(nn, token.End) @@ -1594,13 +1601,13 @@ func (p *Printer) printExprExit(n ast.Vertex) { p.printFreeFloating(nn, token.Start) if nn.Die { - io.WriteString(p.w, "die") + p.write([]byte("die")) } else { - io.WriteString(p.w, "exit") + p.write([]byte("exit")) } if nn.Expr != nil && nn.Expr.GetNode().Tokens.IsEmpty() && nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) @@ -1624,9 +1631,9 @@ func (p *Printer) printExprFunctionCall(n ast.Vertex) { func (p *Printer) printExprInclude(n ast.Vertex) { nn := n.(*ast.ExprInclude) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "include") + p.write([]byte("include")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1635,9 +1642,9 @@ func (p *Printer) printExprInclude(n ast.Vertex) { func (p *Printer) printExprIncludeOnce(n ast.Vertex) { nn := n.(*ast.ExprIncludeOnce) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "include_once") + p.write([]byte("include_once")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1650,10 +1657,10 @@ func (p *Printer) printExprInstanceOf(n ast.Vertex) { p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "instanceof") + p.write([]byte("instanceof")) p.bufStart = " " p.Print(nn.Class) @@ -1665,12 +1672,12 @@ func (p *Printer) printExprIsset(n ast.Vertex) { nn := n.(*ast.ExprIsset) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "isset") + p.write([]byte("isset")) p.printFreeFloating(nn, token.Isset) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Vars) p.printFreeFloating(nn, token.VarList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.End) } @@ -1679,12 +1686,12 @@ func (p *Printer) printExprList(n ast.Vertex) { nn := n.(*ast.ExprList) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "list") + p.write([]byte("list")) p.printFreeFloating(nn, token.List) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Items) p.printFreeFloating(nn, token.ArrayPairList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.End) } @@ -1695,7 +1702,7 @@ func (p *Printer) printExprMethodCall(n ast.Vertex) { p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "->") + p.write([]byte("->")) p.Print(nn.Method) p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") @@ -1709,7 +1716,7 @@ func (p *Printer) printExprNew(n ast.Vertex) { nn := n.(*ast.ExprNew) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "new") + p.write([]byte("new")) p.bufStart = " " p.Print(nn.Class) @@ -1728,7 +1735,7 @@ func (p *Printer) printExprPostDec(n ast.Vertex) { p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "--") + p.write([]byte("--")) p.printFreeFloating(nn, token.End) } @@ -1739,7 +1746,7 @@ func (p *Printer) printExprPostInc(n ast.Vertex) { p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "++") + p.write([]byte("++")) p.printFreeFloating(nn, token.End) } @@ -1748,7 +1755,7 @@ func (p *Printer) printExprPreDec(n ast.Vertex) { nn := n.(*ast.ExprPreDec) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "--") + p.write([]byte("--")) p.Print(nn.Var) p.printFreeFloating(nn, token.End) @@ -1758,7 +1765,7 @@ func (p *Printer) printExprPreInc(n ast.Vertex) { nn := n.(*ast.ExprPreInc) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "++") + p.write([]byte("++")) p.Print(nn.Var) p.printFreeFloating(nn, token.End) @@ -1768,9 +1775,9 @@ func (p *Printer) printExprPrint(n ast.Vertex) { nn := n.(*ast.ExprPrint) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "print") + p.write([]byte("print")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) @@ -1783,7 +1790,7 @@ func (p *Printer) printExprPropertyFetch(n ast.Vertex) { p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "->") + p.write([]byte("->")) p.Print(nn.Property) p.printFreeFloating(nn, token.End) @@ -1793,7 +1800,7 @@ func (p *Printer) printExprReference(n ast.Vertex) { nn := n.(*ast.ExprReference) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "&") + p.write([]byte("&")) p.Print(nn.Var) p.printFreeFloating(nn, token.End) @@ -1803,9 +1810,9 @@ func (p *Printer) printExprRequire(n ast.Vertex) { nn := n.(*ast.ExprRequire) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "require") + p.write([]byte("require")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) @@ -1816,9 +1823,9 @@ func (p *Printer) printExprRequireOnce(n ast.Vertex) { nn := n.(*ast.ExprRequireOnce) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "require_once") + p.write([]byte("require_once")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) @@ -1829,9 +1836,9 @@ func (p *Printer) printExprShellExec(n ast.Vertex) { nn := n.(*ast.ExprShellExec) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "`") + p.write([]byte("`")) p.joinPrint("", nn.Parts) - io.WriteString(p.w, "`") + p.write([]byte("`")) p.printFreeFloating(nn, token.End) } @@ -1840,10 +1847,10 @@ func (p *Printer) printExprShortArray(n ast.Vertex) { nn := n.(*ast.ExprShortArray) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "[") + p.write([]byte("[")) p.joinPrint(",", nn.Items) p.printFreeFloating(nn, token.ArrayPairList) - io.WriteString(p.w, "]") + p.write([]byte("]")) p.printFreeFloating(nn, token.End) } @@ -1852,10 +1859,10 @@ func (p *Printer) printExprShortList(n ast.Vertex) { nn := n.(*ast.ExprShortList) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "[") + p.write([]byte("[")) p.joinPrint(",", nn.Items) p.printFreeFloating(nn, token.ArrayPairList) - io.WriteString(p.w, "]") + p.write([]byte("]")) p.printFreeFloating(nn, token.End) } @@ -1866,7 +1873,7 @@ func (p *Printer) printExprStaticCall(n ast.Vertex) { p.Print(nn.Class) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "::") + p.write([]byte("::")) p.Print(nn.Call) p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") @@ -1882,7 +1889,7 @@ func (p *Printer) printExprStaticPropertyFetch(n ast.Vertex) { p.Print(nn.Class) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "::") + p.write([]byte("::")) p.Print(nn.Property) p.printFreeFloating(nn, token.End) @@ -1894,14 +1901,14 @@ func (p *Printer) printExprTernary(n ast.Vertex) { p.Print(nn.Condition) p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, "?") + p.write([]byte("?")) if nn.IfTrue != nil { p.Print(nn.IfTrue) } p.printFreeFloating(nn, token.True) - io.WriteString(p.w, ":") + p.write([]byte(":")) p.Print(nn.IfFalse) p.printFreeFloating(nn, token.End) @@ -1911,7 +1918,7 @@ func (p *Printer) printExprUnaryMinus(n ast.Vertex) { nn := n.(*ast.ExprUnaryMinus) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "-") + p.write([]byte("-")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1921,7 +1928,7 @@ func (p *Printer) printExprUnaryPlus(n ast.Vertex) { nn := n.(*ast.ExprUnaryPlus) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "+") + p.write([]byte("+")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1933,7 +1940,7 @@ func (p *Printer) printExprVariable(n ast.Vertex) { p.bufStart = "" if _, ok := nn.VarName.(*ast.Identifier); !ok { - io.WriteString(p.w, "$") + p.write([]byte("$")) } p.Print(nn.VarName) @@ -1954,9 +1961,9 @@ func (p *Printer) printExprYieldFrom(n ast.Vertex) { nn := n.(*ast.ExprYieldFrom) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "yield from") + p.write([]byte("yield from")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) @@ -1967,18 +1974,18 @@ func (p *Printer) printExprYield(n ast.Vertex) { nn := n.(*ast.ExprYield) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "yield") + p.write([]byte("yield")) if nn.Key != nil { if nn.Key.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Key) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "=>") + p.write([]byte("=>")) } else { if nn.Value.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } @@ -1993,45 +2000,45 @@ func (p *Printer) printStmtAltForeach(n ast.Vertex) { nn := n.(*ast.StmtAltForeach) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "foreach") + p.write([]byte("foreach")) p.printFreeFloating(nn, token.Foreach) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "as") + p.write([]byte("as")) if nn.Key != nil { if nn.Key.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Key) p.printFreeFloating(nn, token.Key) - io.WriteString(p.w, "=>") + p.write([]byte("=>")) } else { if nn.Var.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") + p.write([]byte(":")) s := nn.Stmt.(*ast.StmtStmtList) p.printNodes(s.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "endforeach") + p.write([]byte("endforeach")) p.printFreeFloating(nn, token.AltEnd) p.printFreeFloating(nn, token.SemiColon) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2060,20 +2067,20 @@ func (p *Printer) printStmtCatch(n ast.Vertex) { nn := n.(*ast.StmtCatch) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "catch") + p.write([]byte("catch")) p.printFreeFloating(nn, token.Catch) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrintRefactored("|", nn.Types) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2085,37 +2092,37 @@ func (p *Printer) printStmtClassMethod(n ast.Vertex) { if nn.Modifiers != nil { for k, m := range nn.Modifiers { if k > 0 && m.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(m) } if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.printFreeFloating(nn, token.ModifierList) - io.WriteString(p.w, "function") + p.write([]byte("function")) p.printFreeFloating(nn, token.Function) if nn.ReturnsRef { if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "&") + p.write([]byte("&")) p.printFreeFloating(nn, token.Ampersand) } else { if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.Print(nn.MethodName) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Params) p.printFreeFloating(nn, token.ParameterList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Params) if nn.ReturnType != nil { @@ -2136,17 +2143,17 @@ func (p *Printer) printStmtClass(n ast.Vertex) { if nn.Modifiers != nil { for k, m := range nn.Modifiers { if k > 0 && m.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(m) } if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.printFreeFloating(nn, token.ModifierList) - io.WriteString(p.w, "class") + p.write([]byte("class")) if nn.ClassName != nil { p.bufStart = " " @@ -2162,9 +2169,9 @@ func (p *Printer) printStmtClass(n ast.Vertex) { if nn.Extends != nil { p.printFreeFloating(nn.Extends, token.Start) if nn.Extends.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "extends") + p.write([]byte("extends")) p.bufStart = " " p.Print(nn.Extends.ClassName) } @@ -2172,19 +2179,19 @@ func (p *Printer) printStmtClass(n ast.Vertex) { if nn.Implements != nil { p.printFreeFloating(nn.Implements, token.Start) if nn.Implements.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "implements") + p.write([]byte("implements")) p.bufStart = " " p.joinPrintRefactored(",", nn.Implements.InterfaceNames) } p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2227,27 +2234,27 @@ func (p *Printer) printStmtDeclare(n ast.Vertex) { nn := n.(*ast.StmtDeclare) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "declare") + p.write([]byte("declare")) p.printFreeFloating(nn, token.Declare) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrintRefactored(",", nn.Consts) p.printFreeFloating(nn, token.ConstList) - io.WriteString(p.w, ")") + p.write([]byte(")")) if nn.Alt { p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") + p.write([]byte(":")) s := nn.Stmt.(*ast.StmtStmtList) p.printNodes(s.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "enddeclare") + p.write([]byte("enddeclare")) p.printFreeFloating(nn, token.AltEnd) p.printFreeFloating(nn, token.SemiColon) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } } else { p.Print(nn.Stmt) @@ -2275,28 +2282,11 @@ func (p *Printer) printStmtDo(n *ast.StmtDo) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtEcho(n ast.Vertex) { - nn := n.(*ast.StmtEcho) - - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "echo") - } - if nn.Exprs[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - - p.printFreeFloating(nn, token.Start) - p.printFreeFloating(nn, token.Echo) - - p.joinPrint(",", nn.Exprs) - p.printFreeFloating(nn, token.Expr) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtEcho(n *ast.StmtEcho) { + p.printToken(n.EchoTkn, "echo") + p.bufStart = " " + p.printSeparatedList(n.Exprs, n.SeparatorTkns, ",") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtElseif(n *ast.StmtElseIf) { @@ -2358,7 +2348,7 @@ func (p *Printer) printStmtExpression(n ast.Vertex) { p.printFreeFloating(nn, token.SemiColon) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2368,12 +2358,12 @@ func (p *Printer) printStmtFinally(n ast.Vertex) { nn := n.(*ast.StmtFinally) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "finally") + p.write([]byte("finally")) p.printFreeFloating(nn, token.Finally) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2410,7 +2400,7 @@ func (p *Printer) printStmtAltFor(n *ast.StmtFor) { if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { p.printNodes(stmtList.Stmts) } else { - p.printNode(n.Stmt) + p.Print(n.Stmt) } p.printToken(n.EndForTkn, "endfor") @@ -2421,34 +2411,34 @@ func (p *Printer) printStmtForeach(n ast.Vertex) { nn := n.(*ast.StmtForeach) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "foreach") + p.write([]byte("foreach")) p.printFreeFloating(nn, token.Foreach) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "as") + p.write([]byte("as")) if nn.Key != nil { if nn.Key.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Key) p.printFreeFloating(nn, token.Key) - io.WriteString(p.w, "=>") + p.write([]byte("=>")) } else { if nn.Var.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.Print(nn.Stmt) @@ -2459,27 +2449,27 @@ func (p *Printer) printStmtFunction(n ast.Vertex) { nn := n.(*ast.StmtFunction) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "function") + p.write([]byte("function")) p.printFreeFloating(nn, token.Function) if nn.ReturnsRef { if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "&") + p.write([]byte("&")) } else { if nn.FunctionName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.Print(nn.FunctionName) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Params) p.printFreeFloating(nn, token.ParamList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Params) if nn.ReturnType != nil { @@ -2488,10 +2478,10 @@ func (p *Printer) printStmtFunction(n ast.Vertex) { } p.printFreeFloating(nn, token.ReturnType) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2507,16 +2497,16 @@ func (p *Printer) printStmtGoto(n ast.Vertex) { nn := n.(*ast.StmtGoto) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "goto") + p.write([]byte("goto")) if nn.Label.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Label) p.printFreeFloating(nn, token.Label) p.printFreeFloating(nn, token.SemiColon) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2569,12 +2559,12 @@ func (p *Printer) printStmtInlineHTML(n ast.Vertex) { nn := n.(*ast.StmtInlineHtml) p.printFreeFloating(nn, token.Start) - if p.s == PhpState && nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "?>") + if p.s == PhpState && !bytes.Contains(p.lastWrite, []byte("?>")) { + p.write([]byte("?>")) } p.SetState(HtmlState) - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -2583,10 +2573,10 @@ func (p *Printer) printStmtInterface(n ast.Vertex) { nn := n.(*ast.StmtInterface) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "interface") + p.write([]byte("interface")) if nn.InterfaceName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.InterfaceName) @@ -2594,18 +2584,18 @@ func (p *Printer) printStmtInterface(n ast.Vertex) { if nn.Extends != nil { p.printFreeFloating(nn.Extends, token.Start) if nn.Extends.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "extends") + p.write([]byte("extends")) p.bufStart = " " p.joinPrintRefactored(",", nn.Extends.InterfaceNames) } p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2617,7 +2607,7 @@ func (p *Printer) printStmtLabel(n ast.Vertex) { p.Print(nn.LabelName) p.printFreeFloating(nn, token.Label) - io.WriteString(p.w, ":") + p.write([]byte(":")) p.printFreeFloating(nn, token.End) } @@ -2650,7 +2640,7 @@ func (p *Printer) printStmtNop(n ast.Vertex) { p.printFreeFloatingOrDefault(n, token.Start, p.bufStart) p.printFreeFloating(n, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(n, token.End) } @@ -2661,7 +2651,7 @@ func (p *Printer) printStmtPropertyList(n ast.Vertex) { for k, m := range nn.Modifiers { if k > 0 && m.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(m) } @@ -2672,7 +2662,7 @@ func (p *Printer) printStmtPropertyList(n ast.Vertex) { } if nn.Properties[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.joinPrint(",", nn.Properties) @@ -2680,7 +2670,7 @@ func (p *Printer) printStmtPropertyList(n ast.Vertex) { p.printFreeFloating(n, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2694,7 +2684,7 @@ func (p *Printer) printStmtProperty(n ast.Vertex) { if nn.Expr != nil { p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "=") + p.write([]byte("=")) p.Print(nn.Expr) } @@ -2766,16 +2756,16 @@ func (p *Printer) printStmtThrow(n ast.Vertex) { nn := n.(*ast.StmtThrow) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "throw") + p.write([]byte("throw")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) p.printFreeFloating(nn, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2785,10 +2775,10 @@ func (p *Printer) printStmtTraitAdaptationList(n ast.Vertex) { nn := n.(*ast.StmtTraitAdaptationList) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Adaptations) p.printFreeFloating(nn, token.AdaptationList) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2800,7 +2790,7 @@ func (p *Printer) printStmtTraitMethodRef(n ast.Vertex) { if nn.Trait != nil { p.Print(nn.Trait) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "::") + p.write([]byte("::")) } p.Print(nn.Method) @@ -2816,20 +2806,20 @@ func (p *Printer) printStmtTraitUseAlias(n ast.Vertex) { p.printFreeFloating(nn, token.Ref) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "as") + p.write([]byte("as")) if nn.Modifier != nil { if nn.Modifier.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Modifier) } if nn.Alias != nil { if nn.Alias.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Alias) } @@ -2837,7 +2827,7 @@ func (p *Printer) printStmtTraitUseAlias(n ast.Vertex) { p.printFreeFloating(nn, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2850,17 +2840,17 @@ func (p *Printer) printStmtTraitUsePrecedence(n ast.Vertex) { p.Print(nn.Ref) p.printFreeFloating(nn, token.Ref) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "insteadof") + p.write([]byte("insteadof")) p.bufStart = " " p.joinPrint(",", nn.Insteadof) p.printFreeFloating(nn, token.NameList) p.printFreeFloating(nn, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2870,7 +2860,7 @@ func (p *Printer) printStmtTraitUse(n ast.Vertex) { nn := n.(*ast.StmtTraitUse) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "use") + p.write([]byte("use")) p.bufStart = " " p.joinPrintRefactored(",", nn.Traits) @@ -2883,17 +2873,17 @@ func (p *Printer) printStmtTrait(n ast.Vertex) { nn := n.(*ast.StmtTrait) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "trait") + p.write([]byte("trait")) if nn.TraitName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.TraitName) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2902,12 +2892,12 @@ func (p *Printer) printStmtTry(n ast.Vertex) { nn := n.(*ast.StmtTry) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "try") + p.write([]byte("try")) p.printFreeFloating(nn, token.Try) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) if nn.Catches != nil { p.printNodes(nn.Catches) @@ -2924,17 +2914,17 @@ func (p *Printer) printStmtUnset(n ast.Vertex) { nn := n.(*ast.StmtUnset) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "unset") + p.write([]byte("unset")) p.printFreeFloating(nn, token.Unset) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Vars) p.printFreeFloating(nn, token.VarList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.CloseParenthesisToken) p.printFreeFloating(nn, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -3033,7 +3023,7 @@ func (p *Printer) printParserAs(n ast.Vertex) { nn := n.(*ast.ParserAs) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "as") + p.write([]byte("as")) p.Print(nn.Child) p.printFreeFloating(nn, token.End) @@ -3043,7 +3033,7 @@ func (p *Printer) printParserNsSeparator(n ast.Vertex) { nn := n.(*ast.ParserNsSeparator) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "\\") + p.write([]byte("\\")) p.Print(nn.Child) p.printFreeFloating(nn, token.End) diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 8a2ee8d..75dfafa 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -45,7 +45,6 @@ func TestParseAndPrintPhp5Root(t *testing.T) { } func TestParseAndPrintPhp5Identifier(t *testing.T) { - // TODO: remove ; after HTML")}, - &ast.StmtExpression{ - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Tokens: token.Collection{ - token.Start: []*token.Token{ - { - ID: token.ID('$'), - Value: []byte("$"), - }, - }, - }, - }, - VarName: &ast.Identifier{ - Value: []byte("a"), + &ast.StmtEcho{ + Exprs: []ast.Vertex{ + &ast.ScalarString{ + Value: []byte(`"a"`), }, }, }, &ast.StmtInlineHtml{Value: []byte("
HTML
")}, - &ast.StmtExpression{ - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Tokens: token.Collection{ - token.Start: []*token.Token{ - { - ID: token.ID('$'), - Value: []byte("$"), - }, - }, - }, - }, - VarName: &ast.Identifier{ - Value: []byte("a"), + &ast.StmtEcho{ + Exprs: []ast.Vertex{ + &ast.ScalarString{ + Value: []byte(`"b"`), }, }, }, }, }) - expected := `
HTML
HTML
HTML
HTML