From 43f6fab862d4c00f221c05203361624d2374afce Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 29 Nov 2020 21:50:33 +0200 Subject: [PATCH] [refactoring] update ast structure of "StmtPropertyList", "StmtTraitAdaptationList", "StmtTraitMethodRef" and "StmtTraitUseAlias" nodes --- internal/php5/php5.go | 1070 +++++++++++++++++---------------- internal/php5/php5.y | 184 +++--- internal/php7/php7.go | 1323 ++++++++++++++++++++--------------------- internal/php7/php7.y | 189 +++--- pkg/ast/node.go | 18 +- 5 files changed, 1406 insertions(+), 1378 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index a65caae..e0f7066 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6420 +// line internal/php5/php5.y:6432 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -698,15 +698,15 @@ var yyAct = [...]int{ 959, 983, 590, 962, 39, 470, 260, 261, 39, 39, 521, 259, 572, 591, 685, 994, 283, 572, 996, 285, 260, 261, 255, 840, 998, 980, 965, 260, 261, 964, - 896, 839, 836, 39, 572, 1012, 531, 566, 1006, 1013, - 1005, 725, 531, 531, 993, 572, 1016, 518, 716, 341, + 839, 836, 566, 39, 572, 1012, 531, 1006, 1005, 1013, + 725, 341, 531, 531, 993, 572, 1016, 518, 716, 698, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 698, 538, 259, 446, 231, 31, 231, 256, 654, - 531, 929, 296, 656, 655, 39, 260, 261, 449, 290, - 460, 39, 318, 657, 659, 660, 676, 677, 666, 314, - 147, 151, 155, 127, 403, 575, 165, 903, 478, 401, - 335, 945, 995, 1009, 198, 483, 343, 394, 389, 206, - 939, 164, 157, 161, 528, 231, 608, 997, 531, 970, + 679, 538, 929, 259, 446, 231, 31, 231, 256, 654, + 531, 290, 296, 656, 655, 39, 260, 261, 449, 460, + 318, 39, 314, 657, 659, 660, 676, 677, 666, 127, + 147, 151, 155, 403, 575, 903, 165, 401, 478, 335, + 945, 995, 1009, 483, 198, 343, 394, 389, 939, 206, + 896, 164, 157, 161, 528, 231, 608, 997, 531, 970, 223, 969, 968, 967, 235, 236, 237, 238, 260, 261, 240, 838, 242, 243, 244, 245, 246, 247, 248, 837, 252, 835, 40, 568, 821, 262, 15, 14, 823, 720, @@ -1614,39 +1614,39 @@ var yyPgo = [...]int{ 1118, 2, 1117, 1116, 1113, 16, 1112, 1111, 1109, 1101, 48, 5, 1093, 1092, 1091, 1089, 1087, 6, 1086, 1017, 1084, 1083, 1082, 18, 1042, 1081, 1080, 1078, 1077, 1076, - 1075, 1073, 1072, 12, 1071, 1070, 7, 21, 1069, 25, - 1067, 1065, 1064, 14, 39, 0, 1063, 1059, 1052, 391, - 619, 1050, 1049, 41, 4, 1041, 1032, 1031, 1019, 30, - 52, 1011, 1010, 1008, 3, 1007, 15, 1002, 1001, 1000, + 1075, 1073, 1072, 1071, 12, 1070, 1069, 7, 21, 1067, + 25, 1065, 1064, 1063, 14, 39, 0, 1059, 1052, 1050, + 391, 619, 1049, 1041, 41, 4, 1032, 1031, 1019, 1011, + 30, 52, 1010, 1008, 1007, 3, 1002, 15, 1001, 1000, 999, 996, 993, 992, 17, 984, 983, 972, 23, 969, 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, 960, 923, } var yyR1 = [...]int{ - 0, 151, 104, 104, 105, 105, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 106, 106, - 6, 6, 6, 6, 107, 107, 7, 7, 7, 7, - 108, 108, 8, 8, 8, 8, 55, 55, 109, 109, + 0, 151, 105, 105, 106, 106, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 107, 107, + 6, 6, 6, 6, 108, 108, 7, 7, 7, 7, + 109, 109, 8, 8, 8, 8, 55, 55, 110, 110, 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, 121, 121, 60, 60, 122, - 122, 123, 123, 61, 87, 87, 58, 53, 54, 149, + 28, 28, 28, 28, 28, 122, 122, 60, 60, 123, + 123, 124, 124, 61, 88, 88, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 98, 98, 2, 102, 102, 101, 101, 99, 99, 97, - 97, 96, 96, 96, 94, 94, 93, 93, 59, 59, - 88, 88, 89, 89, 89, 89, 120, 120, 120, 4, - 4, 95, 95, 116, 116, 117, 117, 56, 56, 57, - 57, 124, 124, 125, 125, 65, 65, 64, 64, 64, - 64, 84, 84, 84, 90, 90, 70, 70, 70, 70, - 82, 82, 29, 29, 29, 81, 81, 81, 81, 126, - 126, 67, 67, 67, 67, 69, 100, 100, 86, 86, - 130, 130, 131, 131, 71, 71, 72, 92, 92, 75, - 75, 74, 73, 73, 76, 76, 91, 91, 127, 127, - 128, 128, 132, 132, 77, 77, 77, 77, 77, 77, - 129, 129, 129, 129, 68, 68, 85, 85, 119, 119, - 118, 118, 138, 138, 136, 136, 137, 137, 137, 139, + 99, 99, 2, 103, 103, 102, 102, 100, 100, 98, + 98, 97, 97, 97, 95, 95, 94, 94, 59, 59, + 89, 89, 90, 90, 90, 90, 121, 121, 121, 4, + 4, 96, 96, 117, 117, 118, 118, 56, 56, 57, + 57, 125, 125, 126, 126, 65, 65, 64, 64, 64, + 64, 84, 84, 84, 91, 91, 70, 70, 70, 70, + 82, 82, 29, 29, 29, 81, 81, 81, 81, 127, + 127, 67, 67, 67, 67, 69, 101, 101, 87, 87, + 130, 130, 131, 131, 71, 71, 72, 93, 93, 75, + 75, 74, 73, 73, 76, 76, 92, 92, 128, 128, + 129, 129, 132, 132, 77, 77, 77, 77, 77, 77, + 86, 86, 86, 86, 68, 68, 85, 85, 120, 120, + 119, 119, 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, @@ -1655,8 +1655,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, 103, 103, 115, - 115, 115, 115, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 104, 104, 116, + 116, 116, 116, 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, @@ -1671,11 +1671,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, 114, 114, 40, 40, - 40, 113, 113, 112, 112, 112, 112, 112, 112, 112, - 112, 110, 110, 110, 110, 35, 35, 35, 35, 35, + 144, 144, 41, 41, 148, 148, 115, 115, 40, 40, + 40, 114, 114, 113, 113, 113, 113, 113, 113, 113, + 113, 111, 111, 111, 111, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 111, 111, 38, 38, 32, 32, 33, + 39, 39, 39, 112, 112, 38, 38, 32, 32, 33, 34, } @@ -1736,7 +1736,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -104, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -105, -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, @@ -1746,10 +1746,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -105, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -106, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -105, 144, 83, 10, -106, 37, 39, - -6, -105, 83, 146, 160, 147, 10, -109, -50, 148, + 159, 12, 148, -106, 144, 83, 10, -107, 37, 39, + -6, -106, 83, 146, 160, 147, 10, -110, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, @@ -1758,87 +1758,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -105, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -106, 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, -110, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -105, 80, 83, + 148, -50, -16, 150, 150, -133, 17, -111, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -106, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -110, 17, 17, 76, -110, 150, 148, -113, - -112, -16, 153, 150, 150, 83, -84, 148, -105, 79, + -16, 150, -111, 17, 17, 76, -111, 150, 148, -114, + -113, -16, 153, 150, 150, 83, -84, 148, -106, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -104, -105, 146, 160, -107, -7, -105, 83, -108, -8, - -105, 83, 29, -105, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -95, -27, 147, 21, -149, - -119, -118, -16, -89, 144, 147, 146, 146, 146, 146, + -105, -106, 146, 160, -108, -7, -106, 83, -109, -8, + -106, 83, 29, -106, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -96, -27, 147, 21, -149, + -120, -119, -16, -90, 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, -87, - -58, -21, -21, -17, -88, 10, -109, 146, 146, 10, - 148, -98, 56, -102, 56, 59, -16, 153, -16, -16, + -16, -16, -16, -16, -16, -16, -45, -16, 147, -88, + -58, -21, -21, -17, -89, 10, -110, 146, 146, 10, + 148, -99, 56, -103, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -114, -40, -21, 60, 83, -105, 79, 79, 149, 149, + -115, -40, -21, 60, 83, -106, 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, -105, 58, -12, 79, - -111, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -113, 151, -3, 160, 59, -19, -21, -15, - -15, 10, 149, -90, -52, -70, -17, -21, 153, 84, + 10, 144, -83, -84, 79, 83, -106, 58, -12, 79, + -112, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 76, -15, -114, 151, -3, 160, 59, -19, -21, -15, + -15, 10, 149, -91, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -104, 145, -84, -6, 146, 160, 29, -105, - 146, 160, 29, -105, 10, 29, 162, -30, -79, -9, - -33, -105, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -116, -109, - -109, -50, 146, 160, -120, 146, -120, 146, -29, -16, + -16, 146, -105, 145, -84, -6, 146, 160, 29, -106, + 146, 160, 29, -106, 10, 29, 162, -30, -79, -9, + -33, -106, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -117, -110, + -110, -50, 146, 160, -121, 146, -121, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, - 149, 160, 162, 145, 148, -124, -125, -65, -64, 61, - 62, -47, -105, 80, 83, -101, 57, -47, 144, -99, - -47, -17, -21, -21, 92, 149, 160, 148, -105, -139, + 149, 160, 162, 145, 148, -125, -126, -65, -64, 61, + 62, -47, -106, 80, 83, -102, 57, -47, 144, -100, + -47, -17, -21, -21, 92, 149, 160, 148, -106, -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, -105, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -106, -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, -105, 148, -134, -135, -79, 17, 79, -79, - -79, -79, -79, -79, 149, -56, 94, 95, -117, 22, - 146, -119, -16, 145, 32, 33, -120, 31, -120, 145, - 162, -124, -16, 146, -58, -96, -21, 153, 60, -96, - -59, -27, 147, 10, -30, -121, 42, -124, 149, 160, - -149, 83, -105, 144, -99, -126, 160, -45, 162, -40, - -114, 150, -138, -140, -15, -143, 151, -16, -147, 150, + 152, 83, -106, 148, -134, -135, -79, 17, 79, -79, + -79, -79, -79, -79, 149, -56, 94, 95, -118, 22, + 146, -120, -16, 145, 32, 33, -121, 31, -121, 145, + 162, -125, -16, 146, -58, -97, -21, 153, 60, -97, + -59, -27, 147, 10, -30, -122, 42, -125, 149, 160, + -149, 83, -106, 144, -100, -127, 160, -45, 162, -40, + -115, 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, - -105, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -106, -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, -97, 59, -21, 148, - -97, -109, 162, -60, 43, 148, 149, -103, 45, -65, - -150, 84, -105, -126, 145, -67, -127, -68, -69, -128, + 146, 145, 146, 31, -30, 149, -98, 59, -21, 148, + -98, -110, 162, -60, 43, 148, 149, -104, 45, -65, + -150, 84, -106, -127, 145, -67, -128, -68, -69, -129, -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, -119, -4, - -109, 146, -103, 149, -96, -114, 149, 28, -30, 144, - -47, 144, 144, 148, 12, 145, -129, 12, 146, 160, - -1, -77, 10, -100, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -109, 149, -109, 144, -93, - -27, 147, 149, -93, 146, -109, 12, -109, -109, -115, - 12, 153, 162, 146, 160, 162, 10, -149, 162, -86, - 160, 146, 144, -79, -109, -94, -27, 147, -109, -109, + 147, 149, -79, -79, -27, 96, -50, 147, -120, -4, + -110, 146, -104, 149, -97, -115, 149, 28, -30, 144, + -47, 144, 144, 148, 12, 145, -86, 12, 146, 160, + -1, -77, 10, -101, -47, 151, 145, 151, 151, -143, + -19, -79, 59, 146, 147, -110, 149, -110, 144, -94, + -27, 147, 149, -94, 146, -110, 12, -110, -110, -116, + 12, 153, 162, 146, 160, 162, 10, -149, 162, -87, + 160, 146, 144, -79, -110, -95, -27, 147, -110, -110, 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, 162, 10, -30, -47, -130, -131, -71, -72, -73, -74, - -75, -47, 10, -109, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -110, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -109, 12, -30, -124, -92, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -122, -123, -61, 42, -91, - 146, 144, -47, -61, 148, -109, -47, 145, 12, 149, - 144, -109, 145, + 146, -110, 12, -30, -125, -93, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -123, -124, -61, 42, -92, + 146, 144, -47, -61, 148, -110, -47, 145, 12, 149, + 144, -110, 145, } var yyDef = [...]int{ @@ -4653,15 +4653,15 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2458 { - yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtPropertyList{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + }, + Modifiers: yyDollar[1].list, + Properties: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[3].token, + } } case 172: yyDollar = yyS[yypt-2 : yypt+1] @@ -4752,41 +4752,42 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2550 { - yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} - - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenParenthesisTkn: yyDollar[1].token, + Adaptations: yyDollar[2].list, + CloseParenthesisTkn: yyDollar[3].token, + } } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2563 +// line internal/php5/php5.y:2564 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2567 +// line internal/php5/php5.y:2568 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2574 +// line internal/php5/php5.y:2575 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2578 +// line internal/php5/php5.y:2579 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2585 +// line internal/php5/php5.y:2586 { yyVAL.node = yyDollar[1].node @@ -4796,7 +4797,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2593 +// line internal/php5/php5.y:2594 { yyVAL.node = yyDollar[1].node @@ -4806,7 +4807,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2604 +// line internal/php5/php5.y:2605 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4820,7 +4821,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2619 +// line internal/php5/php5.y:2620 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4828,7 +4829,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2625 +// line internal/php5/php5.y:2626 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4837,97 +4838,94 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2635 +// line internal/php5/php5.y:2636 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2652 +// line internal/php5/php5.y:2651 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2659 +// line internal/php5/php5.y:2658 { - target := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Trait: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2680 +// line internal/php5/php5.y:2678 { - alias := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, } - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2698 +// line internal/php5/php5.y:2696 { - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, + } } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2712 +// line internal/php5/php5.y:2710 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2716 +// line internal/php5/php5.y:2714 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2723 +// line internal/php5/php5.y:2721 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4938,7 +4936,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2732 +// line internal/php5/php5.y:2730 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4951,13 +4949,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2746 +// line internal/php5/php5.y:2744 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2750 +// line internal/php5/php5.y:2748 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4971,31 +4969,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2765 +// line internal/php5/php5.y:2763 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2769 +// line internal/php5/php5.y:2767 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2776 +// line internal/php5/php5.y:2774 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2780 +// line internal/php5/php5.y:2778 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2787 +// line internal/php5/php5.y:2785 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5007,7 +5005,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2797 +// line internal/php5/php5.y:2795 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5019,7 +5017,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2807 +// line internal/php5/php5.y:2805 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5031,7 +5029,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2817 +// line internal/php5/php5.y:2815 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5043,7 +5041,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2827 +// line internal/php5/php5.y:2825 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5055,7 +5053,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2837 +// line internal/php5/php5.y:2835 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5067,9 +5065,9 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2850 +// line internal/php5/php5.y:2848 { - yyVAL.list = append(yyDollar[1].list, &ast.StmtProperty{ + item := &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, @@ -5085,13 +5083,18 @@ yydefault: Value: yyDollar[3].token.Value, }, }, - }) + } + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, item) + + yyVAL.node = yyDollar[1].node } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2870 +// line internal/php5/php5.y:2873 { - yyVAL.list = append(yyDollar[1].list, &ast.StmtProperty{ + item := &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), }, @@ -5109,62 +5112,71 @@ yydefault: }, EqualTkn: yyDollar[4].token, Expr: yyDollar[5].node, - }) + } + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, item) + + yyVAL.node = yyDollar[1].node } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2892 +// line internal/php5/php5.y:2900 { - yyVAL.list = []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, - Var: &ast.ExprVariable{ + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, }, + Expr: nil, }, - Expr: nil, }, } } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2915 +// line internal/php5/php5.y:2925 { - yyVAL.list = []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, - Var: &ast.ExprVariable{ + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.StmtProperty{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, }, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, }, - EqualTkn: yyDollar[2].token, - Expr: yyDollar[3].node, }, } } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2942 +// line internal/php5/php5.y:2954 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5190,7 +5202,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2966 +// line internal/php5/php5.y:2978 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5219,7 +5231,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2996 +// line internal/php5/php5.y:3008 { 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) @@ -5228,7 +5240,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3003 +// line internal/php5/php5.y:3015 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5236,19 +5248,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3013 +// line internal/php5/php5.y:3025 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3017 +// line internal/php5/php5.y:3029 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3024 +// line internal/php5/php5.y:3036 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5257,25 +5269,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3031 +// line internal/php5/php5.y:3043 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3038 +// line internal/php5/php5.y:3050 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3042 +// line internal/php5/php5.y:3054 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3049 +// line internal/php5/php5.y:3061 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5289,7 +5301,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3061 +// line internal/php5/php5.y:3073 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5303,37 +5315,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3076 +// line internal/php5/php5.y:3088 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3080 +// line internal/php5/php5.y:3092 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3084 +// line internal/php5/php5.y:3096 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3091 +// line internal/php5/php5.y:3103 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3095 +// line internal/php5/php5.y:3107 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3102 +// line internal/php5/php5.y:3114 { if yyDollar[3].node != nil { @@ -5349,7 +5361,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3119 +// line internal/php5/php5.y:3131 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5366,7 +5378,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3134 +// line internal/php5/php5.y:3146 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5379,7 +5391,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3145 +// line internal/php5/php5.y:3157 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5393,7 +5405,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3157 +// line internal/php5/php5.y:3169 { var _new *ast.ExprNew @@ -5420,7 +5432,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3182 +// line internal/php5/php5.y:3194 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5432,7 +5444,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3192 +// line internal/php5/php5.y:3204 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5444,7 +5456,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3202 +// line internal/php5/php5.y:3214 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5457,7 +5469,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3213 +// line internal/php5/php5.y:3225 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5470,7 +5482,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3224 +// line internal/php5/php5.y:3236 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5483,7 +5495,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3235 +// line internal/php5/php5.y:3247 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5496,7 +5508,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3246 +// line internal/php5/php5.y:3258 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5509,7 +5521,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3257 +// line internal/php5/php5.y:3269 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5522,7 +5534,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3268 +// line internal/php5/php5.y:3280 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5535,7 +5547,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3279 +// line internal/php5/php5.y:3291 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5548,7 +5560,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3290 +// line internal/php5/php5.y:3302 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5561,7 +5573,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3301 +// line internal/php5/php5.y:3313 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5574,7 +5586,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3312 +// line internal/php5/php5.y:3324 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5587,7 +5599,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3323 +// line internal/php5/php5.y:3335 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5600,7 +5612,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3334 +// line internal/php5/php5.y:3346 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5612,7 +5624,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3344 +// line internal/php5/php5.y:3356 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5625,7 +5637,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3355 +// line internal/php5/php5.y:3367 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5637,7 +5649,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3365 +// line internal/php5/php5.y:3377 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5650,7 +5662,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3376 +// line internal/php5/php5.y:3388 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5663,7 +5675,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3387 +// line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5676,7 +5688,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3398 +// line internal/php5/php5.y:3410 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5689,7 +5701,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3409 +// line internal/php5/php5.y:3421 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5702,7 +5714,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3420 +// line internal/php5/php5.y:3432 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5715,7 +5727,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3431 +// line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5728,7 +5740,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3442 +// line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5741,7 +5753,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3453 +// line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5753,7 +5765,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3463 +// line internal/php5/php5.y:3475 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5766,7 +5778,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3474 +// line internal/php5/php5.y:3486 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5779,7 +5791,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3485 +// line internal/php5/php5.y:3497 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5792,7 +5804,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3496 +// line internal/php5/php5.y:3508 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5817,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3507 +// line internal/php5/php5.y:3519 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5830,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3518 +// line internal/php5/php5.y:3530 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5843,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3529 +// line internal/php5/php5.y:3541 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5856,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3540 +// line internal/php5/php5.y:3552 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5857,7 +5869,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3551 +// line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5869,7 +5881,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3561 +// line internal/php5/php5.y:3573 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5881,7 +5893,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3571 +// line internal/php5/php5.y:3583 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5893,7 +5905,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3581 +// line internal/php5/php5.y:3593 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5905,7 +5917,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3591 +// line internal/php5/php5.y:3603 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5918,7 +5930,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3602 +// line internal/php5/php5.y:3614 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5931,7 +5943,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3613 +// line internal/php5/php5.y:3625 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5944,7 +5956,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3624 +// line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5958,7 +5970,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3636 +// line internal/php5/php5.y:3648 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5971,7 +5983,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3647 +// line internal/php5/php5.y:3659 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5984,7 +5996,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3658 +// line internal/php5/php5.y:3670 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5997,7 +6009,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3669 +// line internal/php5/php5.y:3681 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6010,7 +6022,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3680 +// line internal/php5/php5.y:3692 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6023,19 +6035,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3691 +// line internal/php5/php5.y:3703 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3695 +// line internal/php5/php5.y:3707 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3699 +// line internal/php5/php5.y:3711 { yyVAL.node = yyDollar[2].node @@ -6067,7 +6079,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3729 +// line internal/php5/php5.y:3741 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6081,7 +6093,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3741 +// line internal/php5/php5.y:3753 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6095,13 +6107,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3753 +// line internal/php5/php5.y:3765 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3757 +// line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6114,7 +6126,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3768 +// line internal/php5/php5.y:3780 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6127,7 +6139,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3779 +// line internal/php5/php5.y:3791 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6140,7 +6152,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3790 +// line internal/php5/php5.y:3802 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6153,7 +6165,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3801 +// line internal/php5/php5.y:3813 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6166,7 +6178,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3812 +// line internal/php5/php5.y:3824 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6179,7 +6191,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3823 +// line internal/php5/php5.y:3835 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6192,7 +6204,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3834 +// line internal/php5/php5.y:3846 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6212,7 +6224,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3852 +// line internal/php5/php5.y:3864 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6224,25 +6236,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3862 +// line internal/php5/php5.y:3874 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3866 +// line internal/php5/php5.y:3878 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3870 +// line internal/php5/php5.y:3882 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3874 +// line internal/php5/php5.y:3886 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6254,7 +6266,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3884 +// line internal/php5/php5.y:3896 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6266,7 +6278,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3894 +// line internal/php5/php5.y:3906 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6278,7 +6290,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3904 +// line internal/php5/php5.y:3916 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6297,7 +6309,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3921 +// line internal/php5/php5.y:3933 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6317,7 +6329,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3942 +// line internal/php5/php5.y:3954 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6329,7 +6341,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3952 +// line internal/php5/php5.y:3964 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6341,7 +6353,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3962 +// line internal/php5/php5.y:3974 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6354,7 +6366,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3973 +// line internal/php5/php5.y:3985 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6367,7 +6379,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3987 +// line internal/php5/php5.y:3999 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6380,7 +6392,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3998 +// line internal/php5/php5.y:4010 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6393,7 +6405,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4009 +// line internal/php5/php5.y:4021 { str := &ast.ScalarString{ Node: ast.Node{ @@ -6413,7 +6425,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4027 +// line internal/php5/php5.y:4039 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6426,7 +6438,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4041 +// line internal/php5/php5.y:4053 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6440,7 +6452,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4053 +// line internal/php5/php5.y:4065 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6453,19 +6465,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4067 +// line internal/php5/php5.y:4079 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4074 +// line internal/php5/php5.y:4086 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4078 +// line internal/php5/php5.y:4090 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6479,7 +6491,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4093 +// line internal/php5/php5.y:4105 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6500,7 +6512,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4112 +// line internal/php5/php5.y:4124 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6524,7 +6536,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4134 +// line internal/php5/php5.y:4146 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6544,7 +6556,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4152 +// line internal/php5/php5.y:4164 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6567,7 +6579,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4176 +// line internal/php5/php5.y:4188 { name := &ast.NameName{ Node: ast.Node{ @@ -6582,7 +6594,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4189 +// line internal/php5/php5.y:4201 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6599,7 +6611,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4204 +// line internal/php5/php5.y:4216 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6615,7 +6627,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4218 +// line internal/php5/php5.y:4230 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6628,7 +6640,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4229 +// line internal/php5/php5.y:4241 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6641,7 +6653,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4240 +// line internal/php5/php5.y:4252 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6654,7 +6666,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4251 +// line internal/php5/php5.y:4263 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6667,7 +6679,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4262 +// line internal/php5/php5.y:4274 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6679,7 +6691,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4275 +// line internal/php5/php5.y:4287 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6691,7 +6703,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4285 +// line internal/php5/php5.y:4297 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6702,7 +6714,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4294 +// line internal/php5/php5.y:4306 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6715,7 +6727,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4305 +// line internal/php5/php5.y:4317 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6727,7 +6739,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4318 +// line internal/php5/php5.y:4330 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6738,7 +6750,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4327 +// line internal/php5/php5.y:4339 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6751,7 +6763,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4338 +// line internal/php5/php5.y:4350 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6763,19 +6775,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4351 +// line internal/php5/php5.y:4363 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4355 +// line internal/php5/php5.y:4367 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4362 +// line internal/php5/php5.y:4374 { yyVAL.node = yyDollar[1].node @@ -6816,25 +6828,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4401 +// line internal/php5/php5.y:4413 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4409 +// line internal/php5/php5.y:4421 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4413 +// line internal/php5/php5.y:4425 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4421 +// line internal/php5/php5.y:4433 { yyVAL.list = yyDollar[2].list @@ -6843,13 +6855,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4431 +// line internal/php5/php5.y:4443 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4435 +// line internal/php5/php5.y:4447 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6865,19 +6877,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4449 +// line internal/php5/php5.y:4461 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4456 +// line internal/php5/php5.y:4468 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4460 +// line internal/php5/php5.y:4472 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6891,25 +6903,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4472 +// line internal/php5/php5.y:4484 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4479 +// line internal/php5/php5.y:4491 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4483 +// line internal/php5/php5.y:4495 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4490 +// line internal/php5/php5.y:4502 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6921,7 +6933,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4500 +// line internal/php5/php5.y:4512 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6933,7 +6945,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4510 +// line internal/php5/php5.y:4522 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6945,7 +6957,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4520 +// line internal/php5/php5.y:4532 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6957,7 +6969,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4530 +// line internal/php5/php5.y:4542 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6969,7 +6981,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4540 +// line internal/php5/php5.y:4552 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6981,7 +6993,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4550 +// line internal/php5/php5.y:4562 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6993,7 +7005,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4560 +// line internal/php5/php5.y:4572 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7005,7 +7017,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4570 +// line internal/php5/php5.y:4582 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7017,7 +7029,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4580 +// line internal/php5/php5.y:4592 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7029,7 +7041,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4590 +// line internal/php5/php5.y:4602 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7050,7 +7062,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4609 +// line internal/php5/php5.y:4621 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7062,7 +7074,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4622 +// line internal/php5/php5.y:4634 { target := &ast.Identifier{ Node: ast.Node{ @@ -7082,25 +7094,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4643 +// line internal/php5/php5.y:4655 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4650 +// line internal/php5/php5.y:4662 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4654 +// line internal/php5/php5.y:4666 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4658 +// line internal/php5/php5.y:4670 { name := &ast.NameName{ Node: ast.Node{ @@ -7115,7 +7127,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4671 +// line internal/php5/php5.y:4683 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7132,7 +7144,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4686 +// line internal/php5/php5.y:4698 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7148,7 +7160,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4700 +// line internal/php5/php5.y:4712 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7162,7 +7174,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4712 +// line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7175,13 +7187,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4723 +// line internal/php5/php5.y:4735 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4727 +// line internal/php5/php5.y:4739 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7193,13 +7205,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4737 +// line internal/php5/php5.y:4749 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4744 +// line internal/php5/php5.y:4756 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7212,7 +7224,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4755 +// line internal/php5/php5.y:4767 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7225,7 +7237,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4766 +// line internal/php5/php5.y:4778 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7238,7 +7250,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4777 +// line internal/php5/php5.y:4789 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7251,7 +7263,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4788 +// line internal/php5/php5.y:4800 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7264,7 +7276,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4799 +// line internal/php5/php5.y:4811 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7277,7 +7289,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4810 +// line internal/php5/php5.y:4822 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7290,7 +7302,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4821 +// line internal/php5/php5.y:4833 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7302,7 +7314,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4831 +// line internal/php5/php5.y:4843 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7314,7 +7326,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4841 +// line internal/php5/php5.y:4853 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7327,7 +7339,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4852 +// line internal/php5/php5.y:4864 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7340,7 +7352,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4863 +// line internal/php5/php5.y:4875 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7353,7 +7365,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4874 +// line internal/php5/php5.y:4886 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7366,7 +7378,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4885 +// line internal/php5/php5.y:4897 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7379,7 +7391,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4896 +// line internal/php5/php5.y:4908 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7392,7 +7404,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4907 +// line internal/php5/php5.y:4919 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7405,7 +7417,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4918 +// line internal/php5/php5.y:4930 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7418,7 +7430,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4929 +// line internal/php5/php5.y:4941 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7431,7 +7443,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4940 +// line internal/php5/php5.y:4952 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7444,7 +7456,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4951 +// line internal/php5/php5.y:4963 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7457,7 +7469,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4962 +// line internal/php5/php5.y:4974 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7470,7 +7482,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4973 +// line internal/php5/php5.y:4985 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7483,7 +7495,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4984 +// line internal/php5/php5.y:4996 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7496,7 +7508,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4995 +// line internal/php5/php5.y:5007 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7510,7 +7522,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5007 +// line internal/php5/php5.y:5019 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7523,7 +7535,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5018 +// line internal/php5/php5.y:5030 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7536,7 +7548,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5029 +// line internal/php5/php5.y:5041 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7549,7 +7561,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5040 +// line internal/php5/php5.y:5052 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7562,7 +7574,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5051 +// line internal/php5/php5.y:5063 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7576,7 +7588,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5063 +// line internal/php5/php5.y:5075 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7590,7 +7602,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5075 +// line internal/php5/php5.y:5087 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7602,7 +7614,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5085 +// line internal/php5/php5.y:5097 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7614,7 +7626,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5095 +// line internal/php5/php5.y:5107 { yyVAL.node = yyDollar[2].node @@ -7624,13 +7636,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5106 +// line internal/php5/php5.y:5118 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5110 +// line internal/php5/php5.y:5122 { name := &ast.NameName{ Node: ast.Node{ @@ -7645,7 +7657,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5123 +// line internal/php5/php5.y:5135 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7662,7 +7674,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5138 +// line internal/php5/php5.y:5150 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7678,7 +7690,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5155 +// line internal/php5/php5.y:5167 { name := &ast.Identifier{ Node: ast.Node{ @@ -7697,25 +7709,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5172 +// line internal/php5/php5.y:5184 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5176 +// line internal/php5/php5.y:5188 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5180 +// line internal/php5/php5.y:5192 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5184 +// line internal/php5/php5.y:5196 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7728,7 +7740,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5195 +// line internal/php5/php5.y:5207 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7741,7 +7753,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5206 +// line internal/php5/php5.y:5218 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7753,13 +7765,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5219 +// line internal/php5/php5.y:5231 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5223 +// line internal/php5/php5.y:5235 { yyVAL.list = yyDollar[1].list @@ -7770,19 +7782,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5235 +// line internal/php5/php5.y:5247 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5239 +// line internal/php5/php5.y:5251 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5246 +// line internal/php5/php5.y:5258 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7797,7 +7809,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5259 +// line internal/php5/php5.y:5271 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7811,7 +7823,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5271 +// line internal/php5/php5.y:5283 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7825,7 +7837,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5283 +// line internal/php5/php5.y:5295 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7838,19 +7850,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5297 +// line internal/php5/php5.y:5309 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5301 +// line internal/php5/php5.y:5313 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5308 +// line internal/php5/php5.y:5320 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7867,7 +7879,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5323 +// line internal/php5/php5.y:5335 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7884,25 +7896,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5342 +// line internal/php5/php5.y:5354 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5350 +// line internal/php5/php5.y:5362 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5357 +// line internal/php5/php5.y:5369 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5364 +// line internal/php5/php5.y:5376 { yyVAL.node = yyDollar[1].node @@ -7960,25 +7972,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5420 +// line internal/php5/php5.y:5432 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5427 +// line internal/php5/php5.y:5439 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5431 +// line internal/php5/php5.y:5443 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5439 +// line internal/php5/php5.y:5451 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7992,7 +8004,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5454 +// line internal/php5/php5.y:5466 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8006,7 +8018,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5466 +// line internal/php5/php5.y:5478 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8020,7 +8032,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5481 +// line internal/php5/php5.y:5493 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8029,31 +8041,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5491 +// line internal/php5/php5.y:5503 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5495 +// line internal/php5/php5.y:5507 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5499 +// line internal/php5/php5.y:5511 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5506 +// line internal/php5/php5.y:5518 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5510 +// line internal/php5/php5.y:5522 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8065,7 +8077,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5523 +// line internal/php5/php5.y:5535 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8078,7 +8090,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5534 +// line internal/php5/php5.y:5546 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8091,13 +8103,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5548 +// line internal/php5/php5.y:5560 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5555 +// line internal/php5/php5.y:5567 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8110,7 +8122,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5566 +// line internal/php5/php5.y:5578 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8123,31 +8135,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5580 +// line internal/php5/php5.y:5592 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5584 +// line internal/php5/php5.y:5596 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5588 +// line internal/php5/php5.y:5600 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5596 +// line internal/php5/php5.y:5608 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5600 +// line internal/php5/php5.y:5612 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8159,13 +8171,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5610 +// line internal/php5/php5.y:5622 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5617 +// line internal/php5/php5.y:5629 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8178,7 +8190,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5628 +// line internal/php5/php5.y:5640 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8191,13 +8203,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5639 +// line internal/php5/php5.y:5651 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5647 +// line internal/php5/php5.y:5659 { name := &ast.Identifier{ Node: ast.Node{ @@ -8216,7 +8228,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5664 +// line internal/php5/php5.y:5676 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8230,25 +8242,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5679 +// line internal/php5/php5.y:5691 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5683 +// line internal/php5/php5.y:5695 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5691 +// line internal/php5/php5.y:5703 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5695 +// line internal/php5/php5.y:5707 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8258,20 +8270,6 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5706 - { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} - yyVAL.list = append(yyDollar[1].list, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) - } - case 470: - yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:5718 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} @@ -8284,9 +8282,23 @@ yydefault: yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } + case 470: + yyDollar = yyS[yypt-4 : yypt+1] +// line internal/php5/php5.y:5730 + { + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} + yyVAL.list = append(yyDollar[1].list, fetch) + + // save position + fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) + } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5730 +// line internal/php5/php5.y:5742 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8296,7 +8308,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5741 +// line internal/php5/php5.y:5753 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8308,7 +8320,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5751 +// line internal/php5/php5.y:5763 { yyVAL.node = yyDollar[2].node @@ -8321,7 +8333,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5765 +// line internal/php5/php5.y:5777 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8334,7 +8346,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5776 +// line internal/php5/php5.y:5788 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8351,7 +8363,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5794 +// line internal/php5/php5.y:5806 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8364,7 +8376,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5805 +// line internal/php5/php5.y:5817 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8374,7 +8386,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5817 +// line internal/php5/php5.y:5829 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8386,7 +8398,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5827 +// line internal/php5/php5.y:5839 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8402,19 +8414,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5841 +// line internal/php5/php5.y:5853 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5849 +// line internal/php5/php5.y:5861 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5853 +// line internal/php5/php5.y:5865 { yyVAL.list = yyDollar[1].list @@ -8429,7 +8441,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5869 +// line internal/php5/php5.y:5881 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8444,7 +8456,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5882 +// line internal/php5/php5.y:5894 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8458,7 +8470,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5894 +// line internal/php5/php5.y:5906 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8472,7 +8484,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5906 +// line internal/php5/php5.y:5918 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8485,7 +8497,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5917 +// line internal/php5/php5.y:5929 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8503,7 +8515,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5933 +// line internal/php5/php5.y:5945 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8519,7 +8531,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5947 +// line internal/php5/php5.y:5959 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8536,7 +8548,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5962 +// line internal/php5/php5.y:5974 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8551,13 +8563,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5978 +// line internal/php5/php5.y:5990 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5982 +// line internal/php5/php5.y:5994 { yyVAL.list = append( yyDollar[1].list, @@ -8572,13 +8584,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5995 +// line internal/php5/php5.y:6007 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5999 +// line internal/php5/php5.y:6011 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8593,7 +8605,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6015 +// line internal/php5/php5.y:6027 { name := &ast.Identifier{ Node: ast.Node{ @@ -8612,7 +8624,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6032 +// line internal/php5/php5.y:6044 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8634,7 +8646,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6052 +// line internal/php5/php5.y:6064 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8662,7 +8674,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6078 +// line internal/php5/php5.y:6090 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8677,7 +8689,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6091 +// line internal/php5/php5.y:6103 { name := &ast.Identifier{ Node: ast.Node{ @@ -8699,7 +8711,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6111 +// line internal/php5/php5.y:6123 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8723,7 +8735,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6133 +// line internal/php5/php5.y:6145 { yyVAL.node = yyDollar[2].node @@ -8733,7 +8745,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6144 +// line internal/php5/php5.y:6156 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8745,7 +8757,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6154 +// line internal/php5/php5.y:6166 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8774,7 +8786,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6181 +// line internal/php5/php5.y:6193 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8793,7 +8805,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6201 +// line internal/php5/php5.y:6213 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8807,7 +8819,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6213 +// line internal/php5/php5.y:6225 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8829,7 +8841,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6233 +// line internal/php5/php5.y:6245 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8851,7 +8863,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6253 +// line internal/php5/php5.y:6265 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8863,7 +8875,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6263 +// line internal/php5/php5.y:6275 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8875,7 +8887,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6273 +// line internal/php5/php5.y:6285 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8897,7 +8909,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6293 +// line internal/php5/php5.y:6305 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8909,7 +8921,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6303 +// line internal/php5/php5.y:6315 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8921,13 +8933,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6316 +// line internal/php5/php5.y:6328 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6320 +// line internal/php5/php5.y:6332 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8936,19 +8948,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6330 +// line internal/php5/php5.y:6342 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6334 +// line internal/php5/php5.y:6346 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6341 +// line internal/php5/php5.y:6353 { target := &ast.Identifier{ Node: ast.Node{ @@ -8968,7 +8980,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6359 +// line internal/php5/php5.y:6371 { target := &ast.Identifier{ Node: ast.Node{ @@ -8988,7 +9000,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6380 +// line internal/php5/php5.y:6392 { target := &ast.Identifier{ Node: ast.Node{ @@ -9008,7 +9020,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6401 +// line internal/php5/php5.y:6413 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 96d22d7..19cb72b 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -237,7 +237,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 echo_expr_list +%type ctor_arguments function_call_parameter_list echo_expr_list class_variable_declaration %type trait_adaptations unset_variables declare_list %type switch_case_list non_empty_function_call_parameter_list %type method_body trait_reference_list @@ -253,7 +253,7 @@ import ( %type array_pair_list assignment_list lexical_var_list elseif_list new_elseif_list non_empty_for_expr %type for_expr case_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list -%type class_statement_list variable_modifiers method_modifiers class_variable_declaration +%type class_statement_list variable_modifiers method_modifiers %type trait_adaptation_list non_empty_trait_adaptation_list %type non_empty_member_modifiers backticks_expr static_array_pair_list non_empty_static_array_pair_list @@ -2456,15 +2456,15 @@ class_statement_list: class_statement: variable_modifiers class_variable_declaration ';' { - $$ = &ast.StmtPropertyList{ast.Node{}, $1, nil, $2} - - // save position - $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.PropertyList, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtPropertyList{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition($1, $3), + }, + Modifiers: $1, + Properties: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: $3, + } } | class_constant_declaration ';' { @@ -2548,13 +2548,14 @@ trait_adaptations: } | '{' trait_adaptation_list '}' { - $$ = &ast.StmtTraitAdaptationList{ast.Node{}, $2} - - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.SkippedTokens) + $$ = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenParenthesisTkn: $1, + Adaptations: $2, + CloseParenthesisTkn: $3, + } } ; @@ -2633,20 +2634,18 @@ trait_reference_list: trait_method_reference: T_STRING { - name := &ast.Identifier{ + $$ = &ast.StmtTraitMethodRef{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | trait_method_reference_fully_qualified { @@ -2657,53 +2656,52 @@ trait_method_reference: trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := &ast.Identifier{ + $$ = &ast.StmtTraitMethodRef{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Trait: $1, + DoubleColonTkn: $2, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.StmtTraitMethodRef{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; trait_alias: trait_method_reference T_AS trait_modifiers T_STRING { - alias := &ast.Identifier{ + $$ = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition($4), + Position: position.NewNodeTokenPosition($1, $4), + }, + Ref: $1, + AsTkn: $2, + Modifier: $3, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, }, - IdentifierTkn: $4, - Value: $4.Value, } - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, alias} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } | trait_method_reference T_AS member_modifier { - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, nil} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) + $$ = &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Ref: $1, + AsTkn: $2, + Modifier: $3, + } } ; @@ -2848,7 +2846,7 @@ member_modifier: class_variable_declaration: class_variable_declaration ',' T_VARIABLE { - $$ = append($1, &ast.StmtProperty{ + item := &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition($3), }, @@ -2864,11 +2862,16 @@ class_variable_declaration: Value: $3.Value, }, }, - }) + } + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, item) + + $$ = $1 } | class_variable_declaration ',' T_VARIABLE '=' static_scalar { - $$ = append($1, &ast.StmtProperty{ + item := &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenNodePosition($3, $5), }, @@ -2886,52 +2889,61 @@ class_variable_declaration: }, EqualTkn: $4, Expr: $5, - }) + } + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, item) + + $$ = $1 } | T_VARIABLE { - $$ = []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, - Var: &ast.ExprVariable{ + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, }, + Expr: nil, }, - Expr: nil, }, } } | T_VARIABLE '=' static_scalar { - $$ = []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, - Var: &ast.ExprVariable{ + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.StmtProperty{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokenNodePosition($1, $3), }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, }, + EqualTkn: $2, + Expr: $3, }, - EqualTkn: $2, - Expr: $3, }, } } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 3ef5b9f..f1be513 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4972 +// line internal/php7/php7.y:4971 // line yacctab:1 var yyExca = [...]int{ @@ -626,10 +626,10 @@ var yyAct = [...]int{ 196, 195, 815, 189, 1, 831, 825, 780, 781, 38, 746, 283, 260, 261, 260, 261, 836, 743, 844, 783, 780, 781, 856, 111, 744, 632, 225, 848, 528, 865, - 879, 533, 260, 261, 855, 838, 328, 841, 676, 255, - 796, 859, 136, 385, 371, 114, 656, 852, 934, 877, - 890, 891, 886, 662, 845, 227, 892, 893, 43, 885, - 42, 237, 16, 853, 539, 897, 898, 730, 15, 872, + 879, 533, 260, 261, 855, 328, 841, 676, 255, 796, + 385, 859, 136, 371, 656, 114, 852, 934, 662, 877, + 890, 891, 886, 845, 227, 43, 892, 893, 42, 885, + 16, 237, 838, 853, 539, 897, 898, 730, 15, 872, 830, 151, 786, 896, 903, 606, 271, 905, 49, 217, 218, 902, 48, 110, 886, 908, 50, 84, 904, 82, 72, 885, 204, 205, 206, 207, 208, 209, 210, 211, @@ -1427,11 +1427,11 @@ var yyPgo = [...]int{ 915, 914, 913, 9, 50, 911, 908, 100, 88, 242, 907, 905, 890, 8, 889, 80, 41, 887, 56, 49, 886, 883, 882, 878, 876, 86, 875, 871, 870, 10, - 868, 87, 864, 862, 860, 12, 858, 855, 46, 39, - 40, 2, 16, 667, 43, 85, 854, 853, 848, 13, - 847, 846, 555, 844, 45, 71, 843, 840, 6, 721, - 20, 540, 839, 18, 838, 837, 36, 836, 25, 33, - 835, 37, 830, 530, 829, 828, 826, 34, 99, 1, + 868, 87, 864, 862, 860, 858, 12, 855, 854, 46, + 39, 40, 2, 16, 667, 43, 85, 853, 848, 847, + 13, 846, 844, 555, 843, 45, 71, 840, 839, 6, + 721, 20, 540, 838, 18, 837, 836, 36, 835, 25, + 33, 37, 830, 530, 829, 828, 826, 34, 99, 1, 3, 825, 17, 824, 817, 810, 809, 804, 28, } @@ -1444,28 +1444,28 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 118, - 118, 103, 103, 10, 10, 10, 9, 9, 9, 9, + 118, 104, 104, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 99, 99, 16, 16, 18, 18, 7, 7, 109, - 109, 108, 108, 113, 113, 17, 17, 20, 20, 19, + 9, 100, 100, 16, 16, 18, 18, 7, 7, 110, + 110, 109, 109, 113, 113, 17, 17, 20, 20, 19, 19, 71, 71, 119, 119, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 104, 104, 68, 68, - 26, 26, 93, 93, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 83, 83, 14, 15, 94, 94, - 96, 96, 95, 95, 100, 100, 100, 100, 90, 90, - 89, 89, 25, 25, 87, 87, 87, 87, 111, 111, - 111, 8, 8, 91, 91, 74, 74, 70, 70, 76, - 76, 73, 73, 120, 120, 121, 121, 29, 29, 30, - 30, 82, 82, 80, 80, 80, 81, 81, 84, 84, + 11, 11, 11, 11, 11, 11, 105, 105, 68, 68, + 26, 26, 94, 94, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 84, 84, 14, 15, 95, 95, + 97, 97, 96, 96, 101, 101, 101, 101, 91, 91, + 90, 90, 25, 25, 88, 88, 88, 88, 111, 111, + 111, 8, 8, 92, 92, 75, 75, 70, 70, 77, + 77, 74, 74, 120, 120, 121, 121, 29, 29, 30, + 30, 83, 83, 81, 81, 81, 82, 82, 85, 85, 72, 72, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 122, 122, 37, 37, 37, 37, 69, 69, 86, - 86, 86, 112, 112, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 88, 88, 124, 124, 123, 123, - 125, 125, 98, 98, 98, 98, 98, 98, 110, 110, - 43, 43, 105, 105, 75, 21, 67, 67, 44, 106, - 106, 107, 107, 46, 45, 45, 32, 32, 32, 32, + 36, 122, 122, 37, 37, 37, 37, 69, 69, 87, + 87, 87, 112, 112, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 89, 89, 124, 124, 123, 123, + 125, 125, 99, 99, 99, 99, 99, 99, 73, 73, + 43, 43, 106, 106, 76, 21, 67, 67, 44, 107, + 107, 108, 108, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1473,19 +1473,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, 92, 92, 128, 3, 3, 97, 97, + 32, 32, 32, 93, 93, 128, 3, 3, 98, 98, 114, 114, 53, 53, 54, 54, 54, 54, 47, 47, - 48, 48, 51, 51, 102, 102, 102, 85, 85, 58, + 48, 48, 51, 51, 103, 103, 103, 86, 86, 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, 117, 78, - 78, 116, 116, 77, 77, 77, 77, 77, 77, 77, - 101, 101, 101, 101, 65, 65, 65, 65, 65, 65, + 64, 64, 55, 55, 55, 56, 56, 56, 117, 79, + 79, 116, 116, 78, 78, 78, 78, 78, 78, 78, + 102, 102, 102, 102, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, - 50, 50, 115, 115, 79, + 50, 50, 115, 115, 80, } var yyR2 = [...]int{ @@ -1543,44 +1543,44 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -118, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -70, -73, 21, 20, 23, + 52, 80, 45, 39, 144, -70, -74, 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, -74, -76, -28, -32, -83, 7, -62, -63, + 54, 55, -75, -77, -28, -32, -84, 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, -92, 100, 101, + 6, 158, -52, 143, 97, 98, 107, -93, 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, -103, 83, 148, 83, -103, 144, 10, - -18, -99, -113, -103, 83, 37, 39, -19, -20, -71, + -61, 61, 18, -104, 83, 148, 83, -104, 144, 10, + -18, -100, -113, -104, 83, 37, 39, -19, -20, -71, -21, 10, -119, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -92, -36, + -23, 99, -24, -24, -33, -34, -49, -35, -93, -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, -83, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -84, 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, -117, -116, -78, -77, -23, 153, + 150, 144, 58, 148, -117, -116, -79, -78, -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, -102, 17, -101, -65, 12, + -23, -23, -51, 148, -23, -103, 17, -102, -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, -101, -101, 17, -3, 144, -49, - -84, 148, -84, 148, 83, -103, 149, -103, 146, 144, - -118, 146, -16, -113, -103, 83, 146, 160, 83, 29, - -103, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -106, -107, -23, + -23, -23, 17, 76, -102, -102, 17, -3, 144, -49, + -85, 148, -85, 148, 83, -104, 149, -104, 146, 144, + -118, 146, -16, -113, -104, 83, 146, 160, 83, 29, + -104, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -107, -108, -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, -93, -27, -28, -23, -71, -119, 146, 146, 10, - -128, 10, -94, 56, -128, -96, 56, 148, -11, 148, + -23, -94, -27, -28, -23, -71, -119, 146, 146, 10, + -128, 10, -95, 56, -128, -97, 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, -117, 151, 160, 59, -28, -23, @@ -1594,48 +1594,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, - -85, -84, 79, 150, 144, 58, 79, -85, -115, -79, + -86, -85, 79, 150, 144, 58, 79, -86, -115, -80, -23, -23, -23, 76, 76, 142, 148, -23, 149, -72, -31, -23, 84, -117, 10, 146, -118, 145, 146, 146, - 83, -103, -19, 83, -103, 144, 10, 83, -21, -23, + 83, -104, -19, 83, -104, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -94, - -95, 57, -10, 144, -128, -69, -10, -23, -23, -119, - -23, 149, 151, 145, -84, -23, 149, 162, -78, -23, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -95, + -96, 57, -10, 144, -128, -69, -10, -23, -23, -119, + -23, 149, 151, 145, -85, -23, 149, 162, -79, -23, 153, 60, -117, 149, 151, 149, -66, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -84, -23, - -84, -49, -24, -23, -56, -49, -94, -7, 160, 149, - 149, -120, -121, -29, -30, -82, -80, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -109, - -17, -20, -99, 144, -128, 149, -91, -11, 147, -23, - -106, -23, -87, 144, 147, -23, 149, -27, -100, -28, - 153, 60, 150, -25, -11, 147, -104, 148, -120, -95, + 12, 10, 145, 145, 150, 145, -23, 151, -85, -23, + -85, -49, -24, -23, -56, -49, -95, -7, 160, 149, + 149, -120, -121, -29, -30, -83, -81, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -110, + -17, -20, -100, 144, -128, 149, -92, -11, 147, -23, + -107, -23, -88, 144, 147, -23, 149, -27, -101, -28, + 153, 60, 150, -25, -11, 147, -105, 148, -120, -96, -128, -69, -122, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -95, 149, -79, 149, 160, -1, 153, -80, - 149, -31, -108, -20, 144, -7, 160, -20, -109, 146, + 151, 145, -96, 149, -80, 149, 160, -1, 153, -81, + 149, -31, -109, -20, 144, -7, 160, -20, -110, 146, -119, 149, 146, -111, 146, -111, 146, 146, 149, 59, -28, 148, -117, -119, -26, 42, 43, -120, 149, -128, - 144, 145, -37, -124, -123, 45, -125, 48, -98, 104, + 144, 145, -37, -124, -123, 45, -125, 48, -99, 104, 103, 102, 99, 100, 101, -122, -10, -11, 147, 146, - -119, -23, -117, 151, -128, -81, 147, -29, -2, 84, - -7, 160, -108, 145, -17, -7, 22, 146, -106, 145, - 32, 33, -111, 31, -111, -89, -11, 147, -100, -28, - -117, 151, 28, 148, 144, 149, -97, 45, 144, -122, - -30, 39, 37, -69, -98, 145, -119, 149, 145, 144, - -128, -82, 12, 145, -20, -7, 145, 146, 149, -23, + -119, -23, -117, 151, -128, -82, 147, -29, -2, 84, + -7, 160, -109, 145, -17, -7, 22, 146, -107, 145, + 32, 33, -111, 31, -111, -90, -11, 147, -101, -28, + -117, 151, 28, 148, 144, 149, -98, 45, 144, -122, + -30, 39, 37, -69, -99, 145, -119, 149, 145, 144, + -128, -83, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -119, 149, 149, 146, - -68, -10, -119, -81, -81, 148, -122, 145, -110, -43, - 12, -105, -75, -6, -3, -86, 146, 144, -122, 59, - 162, 145, -90, -11, 147, -8, -119, 146, 26, -89, + -68, -10, -119, -82, -82, 148, -122, 145, -73, -43, + 12, -106, -76, -6, -3, -87, 146, 144, -122, 59, + 162, 145, -91, -11, 147, -8, -119, 146, 26, -90, 12, 161, 145, 144, 144, -114, -53, 12, 153, 145, 146, 160, -128, 162, 146, 160, 162, -6, 145, -112, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -119, -119, 146, 149, -10, -119, -119, 149, - 160, 12, -43, -23, -75, -23, -128, 145, -38, 146, + 160, 12, -43, -23, -76, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, - -128, 148, -69, 10, -4, -98, -6, 146, -119, -120, - -6, 145, 149, -81, -88, 146, 144, -119, 145, + -128, 148, -69, 10, -4, -99, -6, 146, -119, -120, + -6, 145, 149, -82, -89, 146, 144, -119, 145, } var yyDef = [...]int{ @@ -2111,7 +2111,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:291 + // line internal/php7/php7.y:291 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2122,469 +2122,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:325 + // line internal/php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:332 + // line internal/php7/php7.y:332 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2597,13 +2597,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:343 + // line internal/php7/php7.y:343 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:350 + // line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2617,7 +2617,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:362 + // line internal/php7/php7.y:362 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2630,7 +2630,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:376 + // line internal/php7/php7.y:376 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2641,7 +2641,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:385 + // line internal/php7/php7.y:385 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:396 + // line internal/php7/php7.y:396 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2666,44 +2666,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:409 + // line internal/php7/php7.y:409 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:414 + // line internal/php7/php7.y:414 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:418 + // line internal/php7/php7.y:418 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:422 + // line internal/php7/php7.y:422 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:426 + // line internal/php7/php7.y:426 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:430 + // line internal/php7/php7.y:430 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:434 + // line internal/php7/php7.y:434 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2717,7 +2717,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:446 + // line internal/php7/php7.y:446 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2735,7 +2735,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:462 + // line internal/php7/php7.y:462 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2755,7 +2755,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:480 + // line internal/php7/php7.y:480 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2769,7 +2769,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:492 + // line internal/php7/php7.y:492 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2781,7 +2781,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:502 + // line internal/php7/php7.y:502 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2794,7 +2794,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:513 + // line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2807,7 +2807,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:524 + // line internal/php7/php7.y:524 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2821,7 +2821,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:536 + // line internal/php7/php7.y:536 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2835,7 +2835,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:551 + // line internal/php7/php7.y:551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2847,7 +2847,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:561 + // line internal/php7/php7.y:561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2859,7 +2859,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:574 + // line internal/php7/php7.y:574 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2883,7 +2883,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:596 + // line internal/php7/php7.y:596 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2906,7 +2906,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:620 + // line internal/php7/php7.y:620 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2928,7 +2928,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:640 + // line internal/php7/php7.y:640 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2951,19 +2951,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:664 + // line internal/php7/php7.y:664 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:668 + // line internal/php7/php7.y:668 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:675 + // line internal/php7/php7.y:675 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2971,13 +2971,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:681 + // line internal/php7/php7.y:681 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:688 + // line internal/php7/php7.y:688 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2985,13 +2985,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:694 + // line internal/php7/php7.y:694 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:701 + // line internal/php7/php7.y:701 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2999,19 +2999,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:707 + // line internal/php7/php7.y:707 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:714 + // line internal/php7/php7.y:714 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:718 + // line internal/php7/php7.y:718 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3021,7 +3021,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:729 + // line internal/php7/php7.y:729 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3037,7 +3037,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:743 + // line internal/php7/php7.y:743 { 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 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3086,7 +3086,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:790 + // line internal/php7/php7.y:790 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3094,7 +3094,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:799 + // line internal/php7/php7.y:799 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3107,50 +3107,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:810 + // line internal/php7/php7.y:810 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:817 + // line internal/php7/php7.y:817 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:822 + // line internal/php7/php7.y:822 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:826 + // line internal/php7/php7.y:826 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:830 + // line internal/php7/php7.y:830 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:834 + // line internal/php7/php7.y:834 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:838 + // line internal/php7/php7.y:838 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:842 + // line internal/php7/php7.y:842 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3164,7 +3164,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:856 + // line internal/php7/php7.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3177,19 +3177,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:867 + // line internal/php7/php7.y:867 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:871 + // line internal/php7/php7.y:871 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:875 + // line internal/php7/php7.y:875 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3201,7 +3201,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:885 + // line internal/php7/php7.y:885 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3218,7 +3218,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:900 + // line internal/php7/php7.y:900 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3234,7 +3234,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:914 + // line internal/php7/php7.y:914 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3246,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:924 + // line internal/php7/php7.y:924 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3259,7 +3259,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:935 + // line internal/php7/php7.y:935 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3272,7 +3272,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:946 + // line internal/php7/php7.y:946 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3285,7 +3285,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:957 + // line internal/php7/php7.y:957 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3295,7 +3295,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:965 + // line internal/php7/php7.y:965 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3305,7 +3305,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:973 + // line internal/php7/php7.y:973 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3315,7 +3315,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:981 + // line internal/php7/php7.y:981 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3327,7 +3327,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:991 + // line internal/php7/php7.y:991 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3339,7 +3339,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1001 + // line internal/php7/php7.y:1001 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3352,7 +3352,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1012 + // line internal/php7/php7.y:1012 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3366,7 +3366,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1024 + // line internal/php7/php7.y:1024 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3382,7 +3382,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1038 + // line internal/php7/php7.y:1038 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3395,7 +3395,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1049 + // line internal/php7/php7.y:1049 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3406,7 +3406,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1058 + // line internal/php7/php7.y:1058 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3425,7 +3425,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1075 + // line internal/php7/php7.y:1075 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3438,7 +3438,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1086 + // line internal/php7/php7.y:1086 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3457,7 +3457,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1103 + // line internal/php7/php7.y:1103 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3475,13 +3475,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1121 + // line internal/php7/php7.y:1121 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1125 + // line internal/php7/php7.y:1125 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3512,7 +3512,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1156 + // line internal/php7/php7.y:1156 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3520,7 +3520,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1162 + // line internal/php7/php7.y:1162 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3529,13 +3529,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1172 + // line internal/php7/php7.y:1172 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1176 + // line internal/php7/php7.y:1176 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3549,7 +3549,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1191 + // line internal/php7/php7.y:1191 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3557,7 +3557,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1197 + // line internal/php7/php7.y:1197 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3566,13 +3566,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1207 + // line internal/php7/php7.y:1207 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1214 + // line internal/php7/php7.y:1214 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3599,31 +3599,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1242 + // line internal/php7/php7.y:1242 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1246 + // line internal/php7/php7.y:1246 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1253 + // line internal/php7/php7.y:1253 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1257 + // line internal/php7/php7.y:1257 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1264 + // line internal/php7/php7.y:1264 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,7 +3647,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1286 + // line internal/php7/php7.y:1286 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3670,19 +3670,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1310 + // line internal/php7/php7.y:1310 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1314 + // line internal/php7/php7.y:1314 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1321 + // line internal/php7/php7.y:1321 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3694,7 +3694,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1331 + // line internal/php7/php7.y:1331 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3706,7 +3706,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1344 + // line internal/php7/php7.y:1344 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3727,7 +3727,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1366 + // line internal/php7/php7.y:1366 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3749,13 +3749,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1389 + // line internal/php7/php7.y:1389 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1393 + // line internal/php7/php7.y:1393 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3767,13 +3767,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1406 + // line internal/php7/php7.y:1406 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1410 + // line internal/php7/php7.y:1410 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3786,13 +3786,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1424 + // line internal/php7/php7.y:1424 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1428 + // line internal/php7/php7.y:1428 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3805,13 +3805,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1442 + // line internal/php7/php7.y:1442 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1446 + // line internal/php7/php7.y:1446 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3823,7 +3823,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1456 + // line internal/php7/php7.y:1456 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3837,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3850,7 +3850,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1482 + // line internal/php7/php7.y:1482 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3861,7 +3861,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1491 + // line internal/php7/php7.y:1491 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3881,7 +3881,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1512 + // line internal/php7/php7.y:1512 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3892,7 +3892,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1521 + // line internal/php7/php7.y:1521 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3912,7 +3912,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1542 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3923,7 +3923,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1551 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3943,7 +3943,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1572 + // line internal/php7/php7.y:1572 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3956,7 +3956,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1583 + // line internal/php7/php7.y:1583 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3970,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1595 + // line internal/php7/php7.y:1595 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3985,7 +3985,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1608 + // line internal/php7/php7.y:1608 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4001,13 +4001,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1625 + // line internal/php7/php7.y:1625 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1629 + // line internal/php7/php7.y:1629 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4021,7 +4021,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1641 + // line internal/php7/php7.y:1641 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4034,19 +4034,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1655 + // line internal/php7/php7.y:1655 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1659 + // line internal/php7/php7.y:1659 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1666 + // line internal/php7/php7.y:1666 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4057,7 +4057,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1675 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,7 +4077,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1696 + // line internal/php7/php7.y:1696 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4092,7 +4092,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1709 + // line internal/php7/php7.y:1709 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4111,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1729 + // line internal/php7/php7.y:1729 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1733 + // line internal/php7/php7.y:1733 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4133,7 +4133,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1750 + // line internal/php7/php7.y:1750 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4155,7 +4155,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1770 + // line internal/php7/php7.y:1770 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4179,7 +4179,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1795 + // line internal/php7/php7.y:1795 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4189,7 +4189,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1803 + // line internal/php7/php7.y:1803 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4213,25 +4213,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1828 + // line internal/php7/php7.y:1828 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1832 + // line internal/php7/php7.y:1832 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1839 + // line internal/php7/php7.y:1839 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1843 + // line internal/php7/php7.y:1843 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4240,7 +4240,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1853 + // line internal/php7/php7.y:1853 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4294,7 +4294,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1905 + // line internal/php7/php7.y:1905 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4351,25 +4351,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1963 + // line internal/php7/php7.y:1963 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1967 + // line internal/php7/php7.y:1967 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1974 + // line internal/php7/php7.y:1974 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1978 + // line internal/php7/php7.y:1978 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4381,7 +4381,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1991 + // line internal/php7/php7.y:1991 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4393,7 +4393,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2001 + // line internal/php7/php7.y:2001 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4405,19 +4405,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2011 + // line internal/php7/php7.y:2011 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2018 + // line internal/php7/php7.y:2018 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2022 + // line internal/php7/php7.y:2022 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4426,7 +4426,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2032 + // line internal/php7/php7.y:2032 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4438,7 +4438,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2042 + // line internal/php7/php7.y:2042 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4450,7 +4450,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2055 + // line internal/php7/php7.y:2055 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4458,7 +4458,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2061 + // line internal/php7/php7.y:2061 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4467,7 +4467,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2071 + // line internal/php7/php7.y:2071 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4478,7 +4478,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2080 + // line internal/php7/php7.y:2080 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4490,7 +4490,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2093 + // line internal/php7/php7.y:2093 { 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) @@ -4499,7 +4499,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2100 + // line internal/php7/php7.y:2100 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4507,13 +4507,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2109 + // line internal/php7/php7.y:2109 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2116 + // line internal/php7/php7.y:2116 { 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) @@ -4522,7 +4522,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2123 + // line internal/php7/php7.y:2123 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4530,7 +4530,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2132 + // line internal/php7/php7.y:2132 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4556,7 +4556,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2156 + // line internal/php7/php7.y:2156 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4583,33 +4583,34 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2184 + // line internal/php7/php7.y:2184 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2188 + // line internal/php7/php7.y:2188 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2195 + // line internal/php7/php7.y:2195 { - yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtPropertyList{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), + }, + Modifiers: yyDollar[1].list, + Type: yyDollar[2].node, + Properties: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[4].token, + } } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2207 + // line internal/php7/php7.y:2208 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4623,7 +4624,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2219 + // line internal/php7/php7.y:2220 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4637,7 +4638,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2231 + // line internal/php7/php7.y:2232 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4668,7 +4669,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2263 + // line internal/php7/php7.y:2264 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4676,7 +4677,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2269 + // line internal/php7/php7.y:2270 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4685,7 +4686,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2279 + // line internal/php7/php7.y:2280 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4696,43 +4697,44 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2288 + // line internal/php7/php7.y:2289 { - yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} - - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + OpenParenthesisTkn: yyDollar[1].token, + CloseParenthesisTkn: yyDollar[2].token, + } } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2298 + // line internal/php7/php7.y:2299 { - yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} - - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenParenthesisTkn: yyDollar[1].token, + Adaptations: yyDollar[2].list, + CloseParenthesisTkn: yyDollar[3].token, + } } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2311 + // line internal/php7/php7.y:2313 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2315 + // line internal/php7/php7.y:2317 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2322 + // line internal/php7/php7.y:2324 { yyVAL.node = yyDollar[1].node @@ -4742,7 +4744,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2330 + // line internal/php7/php7.y:2332 { yyVAL.node = yyDollar[1].node @@ -4752,7 +4754,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2341 + // line internal/php7/php7.y:2343 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4766,125 +4768,120 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2356 + // line internal/php7/php7.y:2358 { - alias := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2374 + // line internal/php7/php7.y:2375 { - alias := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2392 + // line internal/php7/php7.y:2392 { - alias := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, } - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2410 + // line internal/php7/php7.y:2410 { - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, + } } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2424 + // line internal/php7/php7.y:2424 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2441 + // line internal/php7/php7.y:2439 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2448 + // line internal/php7/php7.y:2446 { - target := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Trait: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2469 + // line internal/php7/php7.y:2466 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4895,7 +4892,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2478 + // line internal/php7/php7.y:2475 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4908,13 +4905,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2492 + // line internal/php7/php7.y:2489 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2496 + // line internal/php7/php7.y:2493 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4928,31 +4925,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2511 + // line internal/php7/php7.y:2508 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2515 + // line internal/php7/php7.y:2512 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2522 + // line internal/php7/php7.y:2519 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2526 + // line internal/php7/php7.y:2523 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2533 + // line internal/php7/php7.y:2530 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4964,7 +4961,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2543 + // line internal/php7/php7.y:2540 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4976,7 +4973,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2553 + // line internal/php7/php7.y:2550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4988,7 +4985,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2563 + // line internal/php7/php7.y:2560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5000,7 +4997,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2573 + // line internal/php7/php7.y:2570 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5012,7 +5009,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2583 + // line internal/php7/php7.y:2580 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5024,22 +5021,24 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2596 + // line internal/php7/php7.y:2593 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2603 + // line internal/php7/php7.y:2600 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2609 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5062,7 +5061,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2630 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5086,7 +5085,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2656 + // line internal/php7/php7.y:2655 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5094,13 +5093,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2662 + // line internal/php7/php7.y:2661 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2669 + // line internal/php7/php7.y:2668 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5121,7 +5120,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2690 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5142,7 +5141,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2713 + // line internal/php7/php7.y:2712 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5151,7 +5150,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2720 + // line internal/php7/php7.y:2719 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5159,25 +5158,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2729 + // line internal/php7/php7.y:2728 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2736 + // line internal/php7/php7.y:2735 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2739 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2747 + // line internal/php7/php7.y:2746 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5186,13 +5185,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2754 + // line internal/php7/php7.y:2753 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2761 + // line internal/php7/php7.y:2760 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5209,7 +5208,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2778 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5224,7 +5223,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2792 + // line internal/php7/php7.y:2791 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5236,7 +5235,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2805 + // line internal/php7/php7.y:2804 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5253,7 +5252,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2820 + // line internal/php7/php7.y:2819 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5269,7 +5268,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2834 + // line internal/php7/php7.y:2833 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5282,7 +5281,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2845 + // line internal/php7/php7.y:2844 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5296,7 +5295,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2857 + // line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5308,7 +5307,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2867 + // line internal/php7/php7.y:2866 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5321,7 +5320,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2877 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5334,7 +5333,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2889 + // line internal/php7/php7.y:2888 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5347,7 +5346,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2899 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5360,7 +5359,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2911 + // line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5373,7 +5372,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2922 + // line internal/php7/php7.y:2921 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5386,7 +5385,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2932 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5399,7 +5398,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2944 + // line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5412,7 +5411,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2955 + // line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5425,7 +5424,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2966 + // line internal/php7/php7.y:2965 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5438,7 +5437,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2977 + // line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5451,7 +5450,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5464,7 +5463,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2999 + // line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5477,7 +5476,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3010 + // line internal/php7/php7.y:3009 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5490,7 +5489,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3021 + // line internal/php7/php7.y:3020 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5502,7 +5501,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3031 + // line internal/php7/php7.y:3030 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5515,7 +5514,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3042 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5527,7 +5526,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3052 + // line internal/php7/php7.y:3051 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5540,7 +5539,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3063 + // line internal/php7/php7.y:3062 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5553,7 +5552,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3074 + // line internal/php7/php7.y:3073 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5566,7 +5565,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3085 + // line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5579,7 +5578,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3096 + // line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5592,7 +5591,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3107 + // line internal/php7/php7.y:3106 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5605,7 +5604,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3118 + // line internal/php7/php7.y:3117 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5618,7 +5617,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3129 + // line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5631,7 +5630,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3140 + // line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5643,7 +5642,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3150 + // line internal/php7/php7.y:3149 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5656,7 +5655,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3161 + // line internal/php7/php7.y:3160 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5669,7 +5668,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3172 + // line internal/php7/php7.y:3171 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5682,7 +5681,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3183 + // line internal/php7/php7.y:3182 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5695,7 +5694,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3194 + // line internal/php7/php7.y:3193 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5708,7 +5707,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3205 + // line internal/php7/php7.y:3204 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5721,7 +5720,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3216 + // line internal/php7/php7.y:3215 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5734,7 +5733,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3227 + // line internal/php7/php7.y:3226 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5747,7 +5746,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3238 + // line internal/php7/php7.y:3237 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5759,7 +5758,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3248 + // line internal/php7/php7.y:3247 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5771,7 +5770,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3257 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5783,7 +5782,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3268 + // line internal/php7/php7.y:3267 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5795,7 +5794,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3278 + // line internal/php7/php7.y:3277 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5808,7 +5807,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3289 + // line internal/php7/php7.y:3288 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5821,7 +5820,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3300 + // line internal/php7/php7.y:3299 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5834,7 +5833,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3311 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5848,7 +5847,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3322 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5861,7 +5860,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3334 + // line internal/php7/php7.y:3333 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5874,7 +5873,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3345 + // line internal/php7/php7.y:3344 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5887,7 +5886,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3356 + // line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5900,7 +5899,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3367 + // line internal/php7/php7.y:3366 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5913,7 +5912,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3378 + // line internal/php7/php7.y:3377 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5926,7 +5925,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3389 + // line internal/php7/php7.y:3388 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5943,13 +5942,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3404 + // line internal/php7/php7.y:3403 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3408 + // line internal/php7/php7.y:3407 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5963,7 +5962,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3420 + // line internal/php7/php7.y:3419 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5977,7 +5976,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3432 + // line internal/php7/php7.y:3431 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5990,13 +5989,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3443 + // line internal/php7/php7.y:3442 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3447 + // line internal/php7/php7.y:3446 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6009,7 +6008,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3458 + // line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6022,7 +6021,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3469 + // line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6035,7 +6034,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3480 + // line internal/php7/php7.y:3479 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6048,7 +6047,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3491 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6061,7 +6060,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3502 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6074,7 +6073,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3513 + // line internal/php7/php7.y:3512 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6087,7 +6086,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3524 + // line internal/php7/php7.y:3523 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6107,7 +6106,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3541 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6119,13 +6118,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3552 + // line internal/php7/php7.y:3551 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3556 + // line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6137,7 +6136,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3566 + // line internal/php7/php7.y:3565 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6149,7 +6148,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3576 + // line internal/php7/php7.y:3575 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6161,7 +6160,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3586 + // line internal/php7/php7.y:3585 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6173,7 +6172,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3596 + // line internal/php7/php7.y:3595 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6186,7 +6185,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3606 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6198,13 +6197,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3617 + // line internal/php7/php7.y:3616 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3621 + // line internal/php7/php7.y:3620 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6219,7 +6218,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3637 + // line internal/php7/php7.y:3636 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6240,7 +6239,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3656 + // line internal/php7/php7.y:3655 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6259,25 +6258,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3680 + // line internal/php7/php7.y:3679 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3684 + // line internal/php7/php7.y:3683 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3691 + // line internal/php7/php7.y:3690 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3695 + // line internal/php7/php7.y:3694 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6291,7 +6290,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3710 + // line internal/php7/php7.y:3709 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6300,13 +6299,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3717 + // line internal/php7/php7.y:3716 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3724 + // line internal/php7/php7.y:3723 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6325,7 +6324,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3741 + // line internal/php7/php7.y:3740 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6347,7 +6346,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3764 + // line internal/php7/php7.y:3763 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6359,7 +6358,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3774 + // line internal/php7/php7.y:3773 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6372,7 +6371,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3785 + // line internal/php7/php7.y:3784 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6385,7 +6384,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3796 + // line internal/php7/php7.y:3795 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6397,7 +6396,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3808 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6409,31 +6408,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3819 + // line internal/php7/php7.y:3818 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3826 + // line internal/php7/php7.y:3825 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3830 + // line internal/php7/php7.y:3829 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3837 + // line internal/php7/php7.y:3836 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3840 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6450,13 +6449,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3859 + // line internal/php7/php7.y:3858 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3863 + // line internal/php7/php7.y:3862 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6470,25 +6469,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3875 + // line internal/php7/php7.y:3874 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3882 + // line internal/php7/php7.y:3881 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3886 + // line internal/php7/php7.y:3885 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3893 + // line internal/php7/php7.y:3892 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6502,7 +6501,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3905 + // line internal/php7/php7.y:3904 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6515,7 +6514,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3916 + // line internal/php7/php7.y:3915 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6527,7 +6526,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3929 + // line internal/php7/php7.y:3928 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6539,7 +6538,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3939 + // line internal/php7/php7.y:3938 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6551,7 +6550,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3949 + // line internal/php7/php7.y:3948 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6563,7 +6562,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3959 + // line internal/php7/php7.y:3958 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6575,7 +6574,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3969 + // line internal/php7/php7.y:3968 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6587,7 +6586,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3978 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6599,7 +6598,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3989 + // line internal/php7/php7.y:3988 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6611,7 +6610,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3999 + // line internal/php7/php7.y:3998 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6623,7 +6622,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4009 + // line internal/php7/php7.y:4008 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6635,7 +6634,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4019 + // line internal/php7/php7.y:4018 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6647,7 +6646,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4029 + // line internal/php7/php7.y:4028 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6668,7 +6667,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4048 + // line internal/php7/php7.y:4047 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6680,7 +6679,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4058 + // line internal/php7/php7.y:4057 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6693,7 +6692,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4069 + // line internal/php7/php7.y:4068 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6706,19 +6705,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4080 + // line internal/php7/php7.y:4079 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4084 + // line internal/php7/php7.y:4083 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4091 + // line internal/php7/php7.y:4090 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6730,7 +6729,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4100 { target := &ast.Identifier{ Node: ast.Node{ @@ -6750,7 +6749,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4119 + // line internal/php7/php7.y:4118 { target := &ast.Identifier{ Node: ast.Node{ @@ -6770,43 +6769,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4140 + // line internal/php7/php7.y:4139 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4144 + // line internal/php7/php7.y:4143 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4151 + // line internal/php7/php7.y:4150 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4155 + // line internal/php7/php7.y:4154 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4162 + // line internal/php7/php7.y:4161 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4169 + // line internal/php7/php7.y:4168 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4173 + // line internal/php7/php7.y:4172 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6823,19 +6822,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4188 + // line internal/php7/php7.y:4187 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4195 + // line internal/php7/php7.y:4194 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4199 + // line internal/php7/php7.y:4198 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6852,19 +6851,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4214 + // line internal/php7/php7.y:4213 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4221 + // line internal/php7/php7.y:4220 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4225 + // line internal/php7/php7.y:4224 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6877,7 +6876,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4236 + // line internal/php7/php7.y:4235 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6890,7 +6889,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4246 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6903,7 +6902,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4258 + // line internal/php7/php7.y:4257 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6916,25 +6915,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4269 + // line internal/php7/php7.y:4268 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4276 + // line internal/php7/php7.y:4275 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4280 + // line internal/php7/php7.y:4279 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4284 + // line internal/php7/php7.y:4283 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6947,7 +6946,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4297 { name := &ast.Identifier{ Node: ast.Node{ @@ -6966,7 +6965,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4315 + // line internal/php7/php7.y:4314 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6980,7 +6979,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4327 + // line internal/php7/php7.y:4326 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6992,7 +6991,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4340 + // line internal/php7/php7.y:4339 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7005,7 +7004,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4351 + // line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7018,13 +7017,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4365 + // line internal/php7/php7.y:4364 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4369 + // line internal/php7/php7.y:4368 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7037,7 +7036,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4380 + // line internal/php7/php7.y:4379 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7050,7 +7049,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4391 + // line internal/php7/php7.y:4390 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7063,7 +7062,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4402 + // line internal/php7/php7.y:4401 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7076,7 +7075,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4413 + // line internal/php7/php7.y:4412 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7089,7 +7088,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4427 + // line internal/php7/php7.y:4426 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7101,7 +7100,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4437 + // line internal/php7/php7.y:4436 { yyVAL.node = yyDollar[2].node @@ -7111,13 +7110,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4445 + // line internal/php7/php7.y:4444 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4452 + // line internal/php7/php7.y:4451 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7129,7 +7128,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4461 { yyVAL.node = yyDollar[2].node @@ -7139,31 +7138,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4470 + // line internal/php7/php7.y:4469 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4476 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4484 + // line internal/php7/php7.y:4483 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4488 + // line internal/php7/php7.y:4487 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4495 + // line internal/php7/php7.y:4494 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7176,7 +7175,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4506 + // line internal/php7/php7.y:4505 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7186,7 +7185,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4517 + // line internal/php7/php7.y:4516 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7199,7 +7198,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4528 + // line internal/php7/php7.y:4527 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7211,7 +7210,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4538 + // line internal/php7/php7.y:4537 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7227,7 +7226,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4552 + // line internal/php7/php7.y:4551 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7241,7 +7240,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4564 + // line internal/php7/php7.y:4563 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7253,7 +7252,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4573 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7272,7 +7271,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4591 + // line internal/php7/php7.y:4590 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7289,13 +7288,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4609 + // line internal/php7/php7.y:4608 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4613 + // line internal/php7/php7.y:4612 { yyVAL.list = append( yyDollar[1].list, @@ -7310,13 +7309,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4626 + // line internal/php7/php7.y:4625 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4630 + // line internal/php7/php7.y:4629 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7331,7 +7330,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4646 + // line internal/php7/php7.y:4645 { name := &ast.Identifier{ Node: ast.Node{ @@ -7350,7 +7349,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4662 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7372,7 +7371,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4683 + // line internal/php7/php7.y:4682 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7400,7 +7399,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4709 + // line internal/php7/php7.y:4708 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7415,7 +7414,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4722 + // line internal/php7/php7.y:4721 { name := &ast.Identifier{ Node: ast.Node{ @@ -7437,7 +7436,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4742 + // line internal/php7/php7.y:4741 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7461,7 +7460,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4764 + // line internal/php7/php7.y:4763 { yyVAL.node = yyDollar[2].node @@ -7471,7 +7470,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4775 + // line internal/php7/php7.y:4774 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7483,7 +7482,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4785 + // line internal/php7/php7.y:4784 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7506,7 +7505,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4806 + // line internal/php7/php7.y:4805 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7534,7 +7533,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4832 + // line internal/php7/php7.y:4831 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7553,7 +7552,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4852 + // line internal/php7/php7.y:4851 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7571,7 +7570,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4868 + // line internal/php7/php7.y:4867 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7593,7 +7592,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4888 + // line internal/php7/php7.y:4887 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7605,7 +7604,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4898 + // line internal/php7/php7.y:4897 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7617,7 +7616,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4908 + // line internal/php7/php7.y:4907 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7639,7 +7638,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4928 + // line internal/php7/php7.y:4927 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7651,7 +7650,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4938 + // line internal/php7/php7.y:4937 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7663,13 +7662,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4951 + // line internal/php7/php7.y:4950 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4955 + // line internal/php7/php7.y:4954 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7678,7 +7677,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4965 + // line internal/php7/php7.y:4964 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index e8ed084..062068b 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -247,7 +247,7 @@ import ( %type variable_class_name dereferencable_scalar constant dereferencable %type callable_expr callable_variable static_member new_variable %type encaps_var encaps_var_offset echo_expr_list catch_name_list name_list -%type if_stmt const_list non_empty_argument_list +%type if_stmt const_list non_empty_argument_list property_list %type alt_if_stmt %type if_stmt_without_else %type class_const_decl @@ -274,7 +274,7 @@ import ( %type encaps_list backticks_expr namespace_name catch_list class_const_list %type for_exprs non_empty_for_exprs -%type unprefixed_use_declarations inline_use_declarations property_list +%type unprefixed_use_declarations inline_use_declarations %type case_list trait_adaptation_list %type use_declarations lexical_var_list isset_variables non_empty_array_pair_list %type array_pair_list top_statement_list @@ -2193,15 +2193,16 @@ class_statement_list: class_statement: variable_modifiers optional_type property_list ';' { - $$ = &ast.StmtPropertyList{ast.Node{}, $1, $2, $3} - - // save position - $$.GetNode().Position = position.NewNodeListTokenPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.PropertyList, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) + $$ = &ast.StmtPropertyList{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition($1, $4), + }, + Modifiers: $1, + Type: $2, + Properties: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: $4, + } } | method_modifiers T_CONST class_const_list ';' { @@ -2286,23 +2287,24 @@ trait_adaptations: } | '{' '}' { - $$ = &ast.StmtTraitAdaptationList{ast.Node{}, nil} - - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $2.SkippedTokens) + $$ = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + OpenParenthesisTkn: $1, + CloseParenthesisTkn: $2, + } } | '{' trait_adaptation_list '}' { - $$ = &ast.StmtTraitAdaptationList{ast.Node{}, $2} - - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.SkippedTokens) + $$ = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenParenthesisTkn: $1, + Adaptations: $2, + CloseParenthesisTkn: $3, + } } ; @@ -2354,88 +2356,84 @@ trait_precedence: trait_alias: trait_method_reference T_AS T_STRING { - alias := &ast.Identifier{ + $$ = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Ref: $1, + AsTkn: $2, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, nil, alias} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } | trait_method_reference T_AS reserved_non_modifiers { - alias := &ast.Identifier{ + $$ = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Ref: $1, + AsTkn: $2, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, nil, alias} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } | trait_method_reference T_AS member_modifier identifier { - alias := &ast.Identifier{ + $$ = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition($4), + Position: position.NewNodeTokenPosition($1, $4), + }, + Ref: $1, + AsTkn: $2, + Modifier: $3, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, }, - IdentifierTkn: $4, - Value: $4.Value, } - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, alias} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } | trait_method_reference T_AS member_modifier { - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, nil} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) + $$ = &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Ref: $1, + AsTkn: $2, + Modifier: $3, + } } ; trait_method_reference: identifier { - name := &ast.Identifier{ + $$ = &ast.StmtTraitMethodRef{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | absolute_trait_method_reference { @@ -2446,21 +2444,20 @@ trait_method_reference: absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { - target := &ast.Identifier{ + $$ = &ast.StmtTraitMethodRef{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Trait: $1, + DoubleColonTkn: $2, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.StmtTraitMethodRef{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; @@ -2594,14 +2591,16 @@ member_modifier: property_list: property_list ',' property { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | property { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index c6311fd..de467de 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -670,9 +670,11 @@ func (n *StmtProperty) Accept(v NodeVisitor) { // StmtPropertyList node type StmtPropertyList struct { Node - Modifiers []Vertex - Type Vertex - Properties []Vertex + Modifiers []Vertex + Type Vertex + Properties []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtPropertyList) Accept(v NodeVisitor) { @@ -780,7 +782,9 @@ func (n *StmtTrait) Accept(v NodeVisitor) { // StmtTraitAdaptationList node type StmtTraitAdaptationList struct { Node - Adaptations []Vertex + OpenParenthesisTkn *token.Token + Adaptations []Vertex + CloseParenthesisTkn *token.Token } func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) { @@ -790,8 +794,9 @@ func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) { // StmtTraitMethodRef node type StmtTraitMethodRef struct { Node - Trait Vertex - Method Vertex + Trait Vertex + DoubleColonTkn *token.Token + Method Vertex } func (n *StmtTraitMethodRef) Accept(v NodeVisitor) { @@ -815,6 +820,7 @@ func (n *StmtTraitUse) Accept(v NodeVisitor) { type StmtTraitUseAlias struct { Node Ref Vertex + AsTkn *token.Token Modifier Vertex Alias Vertex }