diff --git a/node/stmt/n_trait_adaptation_list.go b/node/stmt/n_trait_adaptation_list.go new file mode 100644 index 0000000..d2a4b73 --- /dev/null +++ b/node/stmt/n_trait_adaptation_list.go @@ -0,0 +1,42 @@ +package stmt + +import ( + "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/walker" +) + +// TraitAdaptationList node +type TraitAdaptationList struct { + Adaptations []node.Node +} + +// NewTraitAdaptationList node constructor +func NewTraitAdaptationList(Adaptations []node.Node) *TraitAdaptationList { + return &TraitAdaptationList{ + Adaptations, + } +} + +// Attributes returns node attributes as map +func (n *TraitAdaptationList) Attributes() map[string]interface{} { + return nil +} + +// Walk traverses nodes +// Walk is invoked recursively until v.EnterNode returns true +func (n *TraitAdaptationList) Walk(v walker.Visitor) { + if v.EnterNode(n) == false { + return + } + + if n.Adaptations != nil { + vv := v.GetChildrenVisitor("Adaptations") + for _, nn := range n.Adaptations { + if nn != nil { + nn.Walk(vv) + } + } + } + + v.LeaveNode(n) +} diff --git a/node/stmt/n_trait_use.go b/node/stmt/n_trait_use.go index b5b0b87..d39dbec 100644 --- a/node/stmt/n_trait_use.go +++ b/node/stmt/n_trait_use.go @@ -7,15 +7,15 @@ import ( // TraitUse node type TraitUse struct { - Traits []node.Node - Adaptations []node.Node + Traits []node.Node + TraitAdaptationList *TraitAdaptationList } // NewTraitUse node constructor -func NewTraitUse(Traits []node.Node, Adaptations []node.Node) *TraitUse { +func NewTraitUse(Traits []node.Node, InnerAdaptationList *TraitAdaptationList) *TraitUse { return &TraitUse{ Traits, - Adaptations, + InnerAdaptationList, } } @@ -40,13 +40,9 @@ func (n *TraitUse) Walk(v walker.Visitor) { } } - if n.Adaptations != nil { - vv := v.GetChildrenVisitor("Adaptations") - for _, nn := range n.Adaptations { - if nn != nil { - nn.Walk(vv) - } - } + if n.TraitAdaptationList != nil { + vv := v.GetChildrenVisitor("TraitAdaptationList") + n.TraitAdaptationList.Walk(vv) } v.LeaveNode(n) diff --git a/node/stmt/t_trait_use_test.go b/node/stmt/t_trait_use_test.go index e6b3b10..42e8a28 100644 --- a/node/stmt/t_trait_use_test.go +++ b/node/stmt/t_trait_use_test.go @@ -2,9 +2,10 @@ package stmt_test import ( "bytes" - "github.com/z7zmey/php-parser/node/name" "testing" + "github.com/z7zmey/php-parser/node/name" + "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/stmt" "github.com/z7zmey/php-parser/php5" @@ -106,6 +107,7 @@ func TestTraitsUseEmptyAdaptations(t *testing.T) { }, }, }, + TraitAdaptationList: &stmt.TraitAdaptationList{}, }, }, }, @@ -145,12 +147,14 @@ func TestTraitsUseModifier(t *testing.T) { }, }, }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Method: &node.Identifier{Value: "one"}, + }, + Modifier: &node.Identifier{Value: "public"}, }, - Modifier: &node.Identifier{Value: "public"}, }, }, }, @@ -192,13 +196,15 @@ func TestTraitsUseAliasModifier(t *testing.T) { }, }, }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Method: &node.Identifier{Value: "one"}, + }, + Modifier: &node.Identifier{Value: "public"}, + Alias: &node.Identifier{Value: "two"}, }, - Modifier: &node.Identifier{Value: "public"}, - Alias: &node.Identifier{Value: "two"}, }, }, }, @@ -240,39 +246,41 @@ func TestTraitsUseAdaptions(t *testing.T) { }, }, }, - Adaptations: []node.Node{ - &stmt.TraitUsePrecedence{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUsePrecedence{ + Ref: &stmt.TraitMethodRef{ + Trait: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Bar"}, + }, }, + Method: &node.Identifier{Value: "one"}, }, - Method: &node.Identifier{Value: "one"}, - }, - Insteadof: []node.Node{ - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + Insteadof: []node.Node{ + &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Baz"}, + }, }, - }, - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Quux"}, + &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Quux"}, + }, }, }, }, - }, - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Trait: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Baz"}, + }, }, + Method: &node.Identifier{Value: "one"}, }, - Method: &node.Identifier{Value: "one"}, + Alias: &node.Identifier{Value: "two"}, }, - Alias: &node.Identifier{Value: "two"}, }, }, }, diff --git a/node/stmt/t_visitor_test.go b/node/stmt/t_visitor_test.go index 0ec5c3c..d0cc7e1 100644 --- a/node/stmt/t_visitor_test.go +++ b/node/stmt/t_visitor_test.go @@ -92,10 +92,10 @@ var nodesToTest = []struct { PhpDocComment: "/** */", ClassName: &node.Identifier{}, Modifiers: []node.Node{&stmt.Expression{}}, - ArgumentList: &node.ArgumentList{}, - Extends: &node.Identifier{}, - Implements: []node.Node{&stmt.Expression{}}, - Stmts: []node.Node{&stmt.Expression{}}, + ArgumentList: &node.ArgumentList{}, + Extends: &node.Identifier{}, + Implements: []node.Node{&stmt.Expression{}}, + Stmts: []node.Node{&stmt.Expression{}}, }, []string{"ClassName", "Modifiers", "ArgumentList", "Extends", "Implements", "Stmts"}, map[string]interface{}{"PhpDocComment": "/** */"}, @@ -408,10 +408,10 @@ var nodesToTest = []struct { }, { &stmt.TraitUse{ - Traits: []node.Node{&stmt.Expression{}}, - Adaptations: []node.Node{&stmt.Expression{}}, + Traits: []node.Node{&stmt.Expression{}}, + TraitAdaptationList: &stmt.TraitAdaptationList{}, }, - []string{"Traits", "Adaptations"}, + []string{"Traits", "TraitAdaptationList"}, map[string]interface{}{}, }, { @@ -479,6 +479,13 @@ var nodesToTest = []struct { []string{"Stmts"}, map[string]interface{}{}, }, + { + &stmt.TraitAdaptationList{ + Adaptations: []node.Node{&stmt.TraitUsePrecedence{}}, + }, + []string{"Adaptations"}, + map[string]interface{}{}, + }, } type visitorMock struct { diff --git a/php5/php5.go b/php5/php5.go index 7e0c848..169557a 100644 --- a/php5/php5.go +++ b/php5/php5.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php5/php5.y:3873 +//line php5/php5.y:3890 type foreachVariable struct { node node.Node @@ -712,18 +712,18 @@ var yyAct = [...]int{ 531, 922, 481, 259, 283, 908, 449, 395, 256, 39, 446, 324, 521, 936, 203, 285, 260, 261, 469, 260, 261, 232, 202, 199, 136, 879, 909, 531, 260, 261, - 944, 519, 521, 335, 231, 521, 873, 829, 521, 938, - 572, 962, 572, 970, 39, 1008, 39, 812, 703, 704, - 706, 703, 704, 343, 39, 747, 39, 39, 753, 863, - 521, 445, 608, 260, 261, 572, 970, 260, 261, 956, - 982, 589, 958, 39, 590, 961, 591, 39, 39, 521, - 684, 572, 255, 839, 993, 994, 572, 995, 964, 997, - 963, 902, 483, 403, 914, 895, 916, 979, 838, 448, - 835, 575, 39, 572, 1011, 531, 924, 566, 926, 927, - 1012, 531, 531, 1005, 572, 1015, 992, 1004, 724, 919, - 39, 232, 919, 232, 394, 558, 389, 164, 341, 697, - 538, 943, 928, 290, 231, 947, 231, 460, 948, 531, - 161, 157, 318, 314, 39, 127, 528, 607, 996, 969, + 944, 519, 521, 335, 231, 521, 873, 829, 521, 1008, + 572, 962, 572, 970, 39, 343, 39, 812, 703, 704, + 706, 703, 704, 747, 39, 753, 39, 39, 863, 445, + 521, 608, 589, 260, 261, 572, 970, 260, 261, 956, + 982, 590, 958, 39, 591, 961, 684, 39, 39, 521, + 255, 572, 839, 994, 993, 964, 572, 995, 963, 997, + 902, 483, 403, 895, 914, 838, 916, 979, 835, 448, + 575, 566, 39, 572, 1011, 531, 924, 1005, 926, 927, + 1012, 531, 531, 1004, 572, 1015, 992, 724, 394, 919, + 39, 232, 919, 232, 389, 558, 164, 341, 697, 538, + 928, 943, 290, 460, 231, 947, 231, 161, 948, 531, + 157, 318, 314, 127, 39, 938, 528, 607, 996, 969, 39, 968, 945, 967, 966, 837, 836, 834, 401, 40, 568, 15, 14, 822, 972, 719, 801, 694, 11, 249, 75, 232, 76, 116, 266, 64, 89, 598, 90, 520, @@ -1638,41 +1638,41 @@ var yyPgo = [...]int{ 73, 68, 61, 1068, 1067, 1066, 35, 1065, 1063, 4, 1062, 1061, 1060, 17, 1059, 1058, 1057, 1056, 1055, 51, 5, 1054, 1053, 1051, 1049, 1048, 2, 1047, 631, 1046, - 18, 22, 39, 0, 1045, 1043, 1042, 117, 1041, 1040, - 553, 1037, 1033, 42, 8, 1032, 9, 1030, 1029, 1028, - 14, 49, 1027, 1026, 1024, 1018, 1017, 1013, 3, 1007, - 16, 1001, 1000, 998, 995, 993, 28, 992, 991, 990, - 988, 985, 983, 982, 21, 980, 976, 974, 25, 971, - 23, 12, 962, 40, 961, 959, 958, 955, 41, 6, - 19, 953, 945, 939, 13, 937, 933, 930, 15, 853, + 18, 22, 1045, 39, 0, 1043, 1042, 1041, 117, 1040, + 1037, 553, 1033, 1032, 42, 8, 1030, 9, 1029, 1028, + 1027, 14, 49, 1026, 1024, 1018, 1017, 1013, 1007, 3, + 1001, 16, 1000, 998, 995, 993, 992, 28, 991, 990, + 988, 985, 983, 982, 980, 21, 976, 974, 971, 25, + 962, 23, 12, 961, 40, 959, 958, 955, 953, 41, + 6, 19, 945, 939, 13, 937, 933, 930, 15, 853, 7, 20, } var yyR1 = [...]int{ - 0, 149, 82, 82, 83, 83, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 84, 84, - 4, 4, 4, 4, 85, 85, 5, 5, 5, 5, - 86, 86, 6, 6, 6, 6, 53, 53, 87, 87, + 0, 149, 83, 83, 84, 84, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 85, 85, + 4, 4, 4, 4, 86, 86, 5, 5, 5, 5, + 87, 87, 6, 6, 6, 6, 53, 53, 88, 88, 24, 24, 24, 24, 24, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 105, 105, 58, 58, 106, - 106, 107, 107, 59, 103, 103, 56, 51, 52, 144, + 26, 26, 26, 26, 26, 106, 106, 58, 58, 107, + 107, 108, 108, 59, 104, 104, 56, 51, 52, 144, 144, 145, 145, 60, 61, 61, 64, 64, 64, 64, - 65, 65, 2, 115, 115, 111, 111, 116, 116, 140, - 140, 139, 139, 139, 147, 147, 148, 148, 57, 57, - 104, 104, 141, 141, 141, 141, 101, 101, 101, 150, - 150, 146, 146, 97, 97, 98, 98, 54, 54, 55, - 55, 108, 108, 109, 109, 63, 63, 62, 62, 62, - 62, 81, 81, 81, 117, 117, 69, 69, 69, 69, - 88, 88, 27, 27, 27, 89, 89, 89, 89, 110, - 110, 66, 66, 66, 66, 68, 118, 118, 143, 143, - 119, 119, 120, 120, 70, 70, 71, 121, 121, 74, - 74, 73, 72, 72, 75, 75, 142, 142, 112, 112, - 113, 113, 122, 122, 76, 76, 76, 76, 76, 76, - 114, 114, 114, 114, 67, 67, 102, 102, 100, 100, - 99, 99, 128, 128, 126, 126, 127, 127, 127, 129, - 129, 42, 15, 15, 15, 15, 15, 15, 15, 15, + 65, 65, 2, 116, 116, 112, 112, 117, 117, 141, + 141, 140, 140, 140, 147, 147, 148, 148, 57, 57, + 105, 105, 142, 142, 142, 142, 102, 102, 102, 150, + 150, 146, 146, 98, 98, 99, 99, 54, 54, 55, + 55, 109, 109, 110, 110, 63, 63, 62, 62, 62, + 62, 81, 81, 81, 118, 118, 69, 69, 69, 69, + 89, 89, 27, 27, 27, 90, 90, 90, 90, 111, + 111, 66, 66, 66, 66, 68, 119, 119, 82, 82, + 120, 120, 121, 121, 70, 70, 71, 122, 122, 74, + 74, 73, 72, 72, 75, 75, 143, 143, 113, 113, + 114, 114, 123, 123, 76, 76, 76, 76, 76, 76, + 115, 115, 115, 115, 67, 67, 103, 103, 101, 101, + 100, 100, 129, 129, 127, 127, 128, 128, 128, 130, + 130, 42, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1680,27 +1680,27 @@ var yyR1 = [...]int{ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 50, 50, 50, 50, - 47, 47, 47, 47, 46, 46, 1, 96, 96, 95, - 95, 95, 95, 23, 23, 23, 23, 23, 23, 23, + 47, 47, 47, 47, 46, 46, 1, 97, 97, 96, + 96, 96, 96, 23, 23, 23, 23, 23, 23, 23, 23, 11, 11, 11, 11, 45, 45, 45, 43, 43, - 41, 41, 136, 136, 135, 49, 49, 49, 123, 123, - 123, 80, 80, 7, 7, 7, 7, 7, 7, 7, + 41, 41, 137, 137, 136, 49, 49, 49, 124, 124, + 124, 80, 80, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 28, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 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, 79, 79, 79, 79, 79, 79, 79, 35, 35, 35, 35, 29, 29, 29, 29, 29, 29, - 29, 124, 124, 151, 151, 125, 125, 125, 125, 14, - 14, 48, 48, 16, 17, 18, 19, 19, 137, 137, - 130, 132, 132, 77, 131, 131, 131, 40, 40, 44, + 29, 125, 125, 151, 151, 126, 126, 126, 126, 14, + 14, 48, 48, 16, 17, 18, 19, 19, 138, 138, + 131, 133, 133, 77, 132, 132, 132, 40, 40, 44, 44, 12, 22, 22, 20, 20, 20, 21, 21, 21, - 10, 10, 10, 9, 9, 13, 13, 133, 133, 134, - 134, 134, 39, 39, 138, 138, 94, 94, 38, 38, - 38, 93, 93, 92, 92, 92, 92, 92, 92, 92, - 92, 90, 90, 90, 90, 33, 33, 33, 33, 33, + 10, 10, 10, 9, 9, 13, 13, 134, 134, 135, + 135, 135, 39, 39, 139, 139, 95, 95, 38, 38, + 38, 94, 94, 93, 93, 93, 93, 93, 93, 93, + 93, 91, 91, 91, 91, 33, 33, 33, 33, 33, 33, 34, 34, 34, 37, 37, 37, 37, 37, 37, - 37, 37, 91, 91, 36, 36, 30, 30, 31, 32, + 37, 37, 92, 92, 36, 36, 30, 30, 31, 32, } var yyR2 = [...]int{ @@ -1759,7 +1759,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -149, -82, -3, 2, -25, -51, -52, 51, 79, + -1000, -149, -83, -3, 2, -25, -51, -52, 51, 79, 44, -53, -26, 10, -60, -61, 38, 142, 7, 21, 20, 23, 30, 34, 35, 39, -50, 46, 98, 19, 14, -14, 48, 25, 27, 144, 40, 43, 36, -1, @@ -1769,99 +1769,99 @@ var yyChk = [...]int{ 112, 113, 6, 156, -29, -47, -46, 141, 96, -20, 91, 49, 50, 4, 5, 84, 85, 86, 11, -35, -32, -7, 140, 74, 62, 18, 60, 148, -21, -22, - -23, -30, -83, 82, -11, 8, 9, 66, 67, 81, - 63, 64, 65, 80, -10, -138, -44, -12, -40, -9, - 157, 12, 146, -83, 142, 82, 10, -84, 37, 38, - -4, -83, 82, 144, 158, 145, 10, -87, -48, 146, + -23, -30, -84, 82, -11, 8, 9, 66, 67, 81, + 63, 64, 65, 80, -10, -139, -44, -12, -40, -9, + 157, 12, 146, -84, 142, 82, 10, -85, 37, 38, + -4, -84, 82, 144, 158, 145, 10, -88, -48, 146, -48, -25, -1, 79, 146, -48, 144, -14, 97, 98, - 144, -14, 144, -15, -19, -14, 144, -88, -27, 12, - 157, -89, -1, 12, -102, -14, 144, 129, 130, 87, + 144, -14, 144, -15, -19, -14, 144, -89, -27, 12, + 157, -90, -1, 12, -103, -14, 144, 129, 130, 87, 89, 88, 159, 151, 161, 167, 153, 152, 162, 131, 163, 164, 132, 133, 134, 135, 136, 137, 165, 138, 166, 139, 90, 150, 146, 146, 146, 142, -14, 10, -144, 151, 10, 10, -15, -19, -14, 52, 52, 160, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 146, -14, 104, 105, -18, -19, -83, 79, + 127, 128, 146, -14, 104, 105, -18, -19, -84, 79, 82, -11, -12, 98, -18, -14, -14, -14, -14, -42, -14, -50, -14, -14, -14, -14, -14, -14, -14, -49, - 146, -48, -14, 148, 148, -123, 17, -90, -33, 12, - 76, 77, -14, 57, -43, -11, -41, -83, 79, 82, - -21, -10, -138, -12, 146, 146, -14, -14, 146, -14, - -14, 148, -90, 17, 17, 75, -90, 148, 146, -93, - -92, -14, 151, 148, 148, 82, -81, 146, -83, 78, + 146, -48, -14, 148, 148, -124, 17, -91, -33, 12, + 76, 77, -14, 57, -43, -11, -41, -84, 79, 82, + -21, -10, -139, -12, 146, 146, -14, -14, 146, -14, + -14, 148, -91, 17, 17, 75, -91, 148, 146, -94, + -93, -14, 151, 148, 148, 82, -81, 146, -84, 78, 148, 142, -10, 157, 78, -81, 142, 147, 144, 142, - -82, -83, 144, 158, -85, -5, -83, 82, -86, -6, - -83, 82, 29, -83, 10, 160, -24, 143, 2, -25, + -83, -84, 144, 158, -86, -5, -84, 82, -87, -6, + -84, 82, 29, -84, 10, 160, -24, 143, 2, -25, -51, -52, 51, -25, 145, -146, -25, 145, 21, -144, - -100, -99, -14, -141, 142, 145, 144, 144, 144, 144, + -101, -100, -14, -142, 142, 145, 144, 144, 144, 144, 144, 158, -16, 142, -19, 144, 158, -144, 160, 144, 158, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -43, -14, 145, -103, - -56, -19, -19, -15, -104, 10, -87, 144, 144, 10, - 146, -65, 55, -115, 55, 58, -14, 151, -14, -14, + -14, -14, -14, -14, -14, -14, -43, -14, 145, -104, + -56, -19, -19, -15, -105, 10, -88, 144, 144, 10, + 146, -65, 55, -116, 55, 58, -14, 151, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -94, -38, -19, 59, 82, -83, 78, 78, 147, 147, + -95, -38, -19, 59, 82, -84, 78, 78, 147, 147, 147, 147, -13, -14, -13, 141, -33, -33, 17, 148, - 57, -14, 11, -19, -133, -134, -40, -39, -10, -138, - 10, 142, -80, -81, 78, 82, -83, 57, -10, 78, - -91, -36, -19, -15, -19, -15, -14, -13, 140, 75, - 75, -13, -93, 149, -151, 158, 58, -17, -19, -13, - -13, 10, 147, -117, -50, -69, -15, -19, 151, 83, + 57, -14, 11, -19, -134, -135, -40, -39, -10, -139, + 10, 142, -80, -81, 78, 82, -84, 57, -10, 78, + -92, -36, -19, -15, -19, -15, -14, -13, 140, 75, + 75, -13, -94, 149, -151, 158, 58, -17, -19, -13, + -13, 10, 147, -118, -50, -69, -15, -19, 151, 83, -81, -39, -40, 10, 52, -13, -14, -39, -40, 10, - -14, 144, -82, 143, -81, -4, 144, 158, 29, -83, - 144, 158, 29, -83, 10, 29, 160, -28, -78, -7, - -31, -83, 79, 82, 60, 148, -8, 62, -79, 18, - 74, -11, 154, 155, 153, 152, 146, 146, -97, -87, - -87, -48, 144, 158, -101, 144, -101, 144, -27, -14, + -14, 144, -83, 143, -81, -4, 144, 158, 29, -84, + 144, 158, 29, -84, 10, 29, 160, -28, -78, -7, + -31, -84, 79, 82, 60, 148, -8, 62, -79, 18, + 74, -11, 154, 155, 153, 152, 146, 146, -98, -88, + -88, -48, 144, 158, -102, 144, -102, 144, -27, -14, 12, 146, -28, -14, 145, -14, 147, 158, 29, 29, - 147, 158, 160, 143, 146, -108, -109, -63, -62, 60, - 61, -45, -83, 79, 82, -111, 56, -45, 142, -116, - -45, -15, -19, -19, 91, 147, 158, 146, -83, -129, - -127, -126, -128, 148, -130, 57, 149, 149, -34, 10, - 13, 12, 10, 143, 148, 143, -131, -77, -132, -81, - 148, 142, -10, -14, -40, -83, -133, -40, 147, 158, + 147, 158, 160, 143, 146, -109, -110, -63, -62, 60, + 61, -45, -84, 79, 82, -112, 56, -45, 142, -117, + -45, -15, -19, -19, 91, 147, 158, 146, -84, -130, + -128, -127, -129, 148, -131, 57, 149, 149, -34, 10, + 13, 12, 10, 143, 148, 143, -132, -77, -133, -81, + 148, 142, -10, -14, -40, -84, -134, -40, 147, 158, 147, 147, 147, 149, 149, 147, -14, 151, -14, 151, 149, 149, 147, 158, 147, -17, -14, -81, -81, 149, 143, -81, -81, 143, 143, -5, 10, 29, -6, 10, 29, 10, -28, 148, 153, 152, 162, 131, 163, 164, 159, 151, 161, 132, 133, 167, 88, 89, 87, 130, 129, 134, 135, 136, 137, 165, 166, 138, 139, 150, - 82, -83, 146, -124, -125, -78, 17, 78, -78, -78, - -78, -78, -78, 147, -54, 93, 94, -98, 22, 144, - -100, -14, 143, 32, 33, -101, 31, -101, 143, 160, - -108, -14, 144, -56, -139, -19, 151, 59, -139, -57, - -25, 145, 10, -28, -105, 41, -108, 147, 158, -144, - 82, -83, 142, -116, -110, 158, -43, 160, -38, -94, - 148, -128, -130, -13, -133, 149, -14, -137, 148, 148, - -13, -14, 143, -136, -36, 58, -17, -17, -69, 10, + 82, -84, 146, -125, -126, -78, 17, 78, -78, -78, + -78, -78, -78, 147, -54, 93, 94, -99, 22, 144, + -101, -14, 143, 32, 33, -102, 31, -102, 143, 160, + -109, -14, 144, -56, -140, -19, 151, 59, -140, -57, + -25, 145, 10, -28, -106, 41, -109, 147, 158, -144, + 82, -84, 142, -117, -111, 158, -43, 160, -38, -95, + 148, -129, -131, -13, -134, 149, -14, -138, 148, 148, + -13, -14, 143, -137, -36, 58, -17, -17, -69, 10, 10, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, - -78, -78, -78, -78, -78, -78, -78, 145, -78, -83, - -124, 149, -151, 158, 58, 10, 52, 147, 144, -48, + -78, -78, -78, -78, -78, -78, -78, 145, -78, -84, + -125, 149, -151, 158, 58, 10, 52, 147, 144, -48, -25, -55, 93, 94, 144, 144, -14, -150, 145, 144, - 143, 144, 31, -28, 147, -140, 58, -19, 146, -140, - -87, 160, -58, 42, 146, 147, -96, 44, -63, -145, - 83, -83, -110, 143, -66, -112, -67, -68, -113, -122, + 143, 144, 31, -28, 147, -141, 58, -19, 146, -141, + -88, 160, -58, 42, 146, 147, -97, 44, -63, -145, + 83, -84, -111, 143, -66, -113, -67, -68, -114, -123, 47, 38, 44, -76, 103, 102, 101, 98, 99, 100, - -45, -80, -14, 147, -13, 149, -131, 149, -130, -13, - -13, 149, 143, -135, 57, -14, 151, 149, -78, 145, - 147, -78, -78, -25, 95, -48, 145, -100, -150, -87, - 144, -96, 147, -139, -94, 147, 28, -28, 142, -45, - 142, 142, 146, 12, 143, -114, 12, 144, 158, -1, - -76, 10, -118, -45, 149, 143, 149, 149, -133, -17, - -78, 58, 144, 145, -87, 147, -87, 142, -148, -25, - 145, 147, -148, 144, -87, 12, -87, -87, -95, 12, - 151, 160, 144, 158, 160, 10, -144, 160, -143, 158, - 144, 142, -78, -87, -147, -25, 145, -87, -87, 143, + -45, -80, -14, 147, -13, 149, -132, 149, -131, -13, + -13, 149, 143, -136, 57, -14, 151, 149, -78, 145, + 147, -78, -78, -25, 95, -48, 145, -101, -150, -88, + 144, -97, 147, -140, -95, 147, 28, -28, 142, -45, + 142, 142, 146, 12, 143, -115, 12, 144, 158, -1, + -76, 10, -119, -45, 149, 143, 149, 149, -134, -17, + -78, 58, 144, 145, -88, 147, -88, 142, -148, -25, + 145, 147, -148, 144, -88, 12, -88, -88, -96, 12, + 151, 160, 144, 158, 160, 10, -144, 160, -82, 158, + 144, 142, -78, -88, -147, -25, 145, -88, -88, 143, 147, 143, 143, 147, 158, 12, -28, 12, -28, 160, - 10, -28, -45, -119, -120, -70, -71, -72, -73, -74, - -45, 10, -87, 143, 26, 142, 12, 151, 160, -28, + 10, -28, -45, -120, -121, -70, -71, -72, -73, -74, + -45, 10, -88, 143, 26, 142, 12, 151, 160, -28, 146, 143, -70, 144, 144, 45, 29, 78, 24, 144, - -87, 12, -28, -108, -121, -45, -75, -76, 10, 144, - 143, 147, 158, 10, -106, -107, -59, 41, -142, 144, - 142, -45, -59, 146, -87, -45, 143, 12, 147, 142, - -87, 143, + -88, 12, -28, -109, -122, -45, -75, -76, 10, 144, + 143, 147, 158, 10, -107, -108, -59, 41, -143, 144, + 142, -45, -59, 146, -88, -45, 143, 12, 147, 142, + -88, 143, } var yyDef = [...]int{ @@ -2345,14 +2345,14 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:270 + //line php5/php5.y:271 { yylex.(*Parser).rootNode = stmt.NewStmtList(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) } case 2: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:278 + //line php5/php5.y:279 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2360,13 +2360,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:283 + //line php5/php5.y:284 { yyVAL.list = []node.Node{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:288 + //line php5/php5.y:289 { namePart := name.NewNamePart(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -2375,7 +2375,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:295 + //line php5/php5.y:296 { namePart := name.NewNamePart(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -2384,32 +2384,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:305 + //line php5/php5.y:306 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:310 + //line php5/php5.y:311 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:312 + //line php5/php5.y:313 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:314 + //line php5/php5.y:315 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:316 + //line php5/php5.y:317 { yyVAL.node = stmt.NewHaltCompiler() yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -2417,7 +2417,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:322 + //line php5/php5.y:323 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2429,7 +2429,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:332 + //line php5/php5.y:333 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2441,7 +2441,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:342 + //line php5/php5.y:343 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -2449,7 +2449,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:348 + //line php5/php5.y:349 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2457,7 +2457,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:354 + //line php5/php5.y:355 { useType := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -2469,7 +2469,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:364 + //line php5/php5.y:365 { useType := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -2481,25 +2481,25 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:374 + //line php5/php5.y:375 { yyVAL.node = yyDollar[1].node } case 18: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:379 + //line php5/php5.y:380 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:381 + //line php5/php5.y:382 { yyVAL.list = []node.Node{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:386 + //line php5/php5.y:387 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2511,7 +2511,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:396 + //line php5/php5.y:397 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2526,7 +2526,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:409 + //line php5/php5.y:410 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2538,7 +2538,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:419 + //line php5/php5.y:420 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2553,19 +2553,19 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:435 + //line php5/php5.y:436 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:437 + //line php5/php5.y:438 { yyVAL.list = []node.Node{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:442 + //line php5/php5.y:443 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2577,7 +2577,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:452 + //line php5/php5.y:453 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2592,7 +2592,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:465 + //line php5/php5.y:466 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2604,7 +2604,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:475 + //line php5/php5.y:476 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2619,19 +2619,19 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:491 + //line php5/php5.y:492 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:493 + //line php5/php5.y:494 { yyVAL.list = []node.Node{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:498 + //line php5/php5.y:499 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2643,7 +2643,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:508 + //line php5/php5.y:509 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2658,7 +2658,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:521 + //line php5/php5.y:522 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2670,7 +2670,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:531 + //line php5/php5.y:532 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2685,7 +2685,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:547 + //line php5/php5.y:548 { name := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -2703,7 +2703,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:563 + //line php5/php5.y:564 { name := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -2721,7 +2721,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:582 + //line php5/php5.y:583 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2729,38 +2729,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:588 + //line php5/php5.y:589 { yyVAL.list = []node.Node{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:594 + //line php5/php5.y:595 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:599 + //line php5/php5.y:600 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:601 + //line php5/php5.y:602 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:603 + //line php5/php5.y:604 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:605 + //line php5/php5.y:606 { yyVAL.node = stmt.NewHaltCompiler() yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -2768,13 +2768,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:615 + //line php5/php5.y:616 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:617 + //line php5/php5.y:618 { label := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -2786,7 +2786,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:630 + //line php5/php5.y:631 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2794,7 +2794,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:636 + //line php5/php5.y:637 { yyVAL.node = stmt.NewIf(yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node) @@ -2810,7 +2810,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:650 + //line php5/php5.y:651 { stmts := stmt.NewStmtList(yyDollar[4].list) yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list)) @@ -2821,7 +2821,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:659 + //line php5/php5.y:660 { if yyDollar[3].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltWhile(yyDollar[2].node, yyDollar[3].altSyntaxNode.node) @@ -2833,7 +2833,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:669 + //line php5/php5.y:670 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) @@ -2841,7 +2841,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:675 + //line php5/php5.y:676 { if yyDollar[9].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltFor(yyDollar[3].list, yyDollar[5].list, yyDollar[7].list, yyDollar[9].altSyntaxNode.node) @@ -2853,7 +2853,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:685 + //line php5/php5.y:686 { if yyDollar[3].nodesWithEndToken.endToken.Value == ";" { yyVAL.node = stmt.NewAltSwitch(yyDollar[2].node, yyDollar[3].nodesWithEndToken.nodes) @@ -2865,7 +2865,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:695 + //line php5/php5.y:696 { yyVAL.node = stmt.NewBreak(nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) @@ -2873,7 +2873,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:701 + //line php5/php5.y:702 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2881,7 +2881,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:707 + //line php5/php5.y:708 { yyVAL.node = stmt.NewContinue(nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) @@ -2889,7 +2889,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:713 + //line php5/php5.y:714 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2897,7 +2897,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:719 + //line php5/php5.y:720 { yyVAL.node = stmt.NewReturn(nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) @@ -2905,7 +2905,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:725 + //line php5/php5.y:726 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2913,7 +2913,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:731 + //line php5/php5.y:732 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2921,7 +2921,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:737 + //line php5/php5.y:738 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) @@ -2929,7 +2929,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:743 + //line php5/php5.y:744 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2937,7 +2937,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:749 + //line php5/php5.y:750 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2945,7 +2945,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:755 + //line php5/php5.y:756 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2953,7 +2953,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:761 + //line php5/php5.y:762 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -2961,7 +2961,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:767 + //line php5/php5.y:768 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) @@ -2969,7 +2969,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:773 + //line php5/php5.y:774 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) @@ -2977,7 +2977,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:779 + //line php5/php5.y:780 { if yyDollar[6].foreachVariable.node == nil { if yyDollar[8].altSyntaxNode.isAlt { @@ -2997,7 +2997,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:797 + //line php5/php5.y:798 { if yyDollar[6].foreachVariable.node == nil { if yyDollar[8].altSyntaxNode.isAlt { @@ -3017,7 +3017,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:815 + //line php5/php5.y:816 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) @@ -3025,7 +3025,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:821 + //line php5/php5.y:822 { yyVAL.node = stmt.NewNop() yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3033,7 +3033,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:827 + //line php5/php5.y:828 { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3047,7 +3047,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:839 + //line php5/php5.y:840 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -3055,7 +3055,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:845 + //line php5/php5.y:846 { label := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -3067,13 +3067,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:858 + //line php5/php5.y:859 { yyVAL.list = []node.Node{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:860 + //line php5/php5.y:861 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -3091,13 +3091,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:878 + //line php5/php5.y:879 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:880 + //line php5/php5.y:881 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -3105,31 +3105,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:889 + //line php5/php5.y:890 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:891 + //line php5/php5.y:892 { yyVAL.list = []node.Node{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:896 + //line php5/php5.y:897 { yyVAL.list = []node.Node{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:898 + //line php5/php5.y:899 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:903 + //line php5/php5.y:904 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -3145,61 +3145,61 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:920 + //line php5/php5.y:921 { yyVAL.list = []node.Node{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:922 + //line php5/php5.y:923 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:927 + //line php5/php5.y:928 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:932 + //line php5/php5.y:933 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:937 + //line php5/php5.y:938 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:942 + //line php5/php5.y:943 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:944 + //line php5/php5.y:945 { yyVAL.boolWithToken = boolWithToken{true, yyDollar[1].token} } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:949 + //line php5/php5.y:950 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:951 + //line php5/php5.y:952 { yyVAL.boolWithToken = boolWithToken{true, yyDollar[1].token} } case 93: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:956 + //line php5/php5.y:957 { name := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -3211,7 +3211,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - //line php5/php5.y:969 + //line php5/php5.y:970 { switch n := yyDollar[1].node.(type) { case *stmt.Class: @@ -3234,7 +3234,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:990 + //line php5/php5.y:991 { name := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -3246,7 +3246,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1004 + //line php5/php5.y:1005 { yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3254,7 +3254,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1010 + //line php5/php5.y:1011 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3266,7 +3266,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1020 + //line php5/php5.y:1021 { yyVAL.node = stmt.NewTrait(nil, nil, "") yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3274,7 +3274,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1026 + //line php5/php5.y:1027 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3286,85 +3286,85 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1039 + //line php5/php5.y:1040 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1041 + //line php5/php5.y:1042 { yyVAL.node = yyDollar[2].node } case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1046 + //line php5/php5.y:1047 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1051 + //line php5/php5.y:1052 { yyVAL.list = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1053 + //line php5/php5.y:1054 { yyVAL.list = yyDollar[2].list } case 105: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1058 + //line php5/php5.y:1059 { yyVAL.list = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1060 + //line php5/php5.y:1061 { yyVAL.list = yyDollar[2].list } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1065 + //line php5/php5.y:1066 { yyVAL.list = []node.Node{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1067 + //line php5/php5.y:1068 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 109: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1072 + //line php5/php5.y:1073 { yyVAL.foreachVariable = foreachVariable{nil, false} } case 110: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1074 + //line php5/php5.y:1075 { yyVAL.foreachVariable = yyDollar[2].foreachVariable } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1079 + //line php5/php5.y:1080 { yyVAL.foreachVariable = foreachVariable{yyDollar[1].node, false} } case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1081 + //line php5/php5.y:1082 { yyVAL.foreachVariable = foreachVariable{yyDollar[2].node, true} } case 113: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1083 + //line php5/php5.y:1084 { list := expr.NewList(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -3373,39 +3373,39 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1093 + //line php5/php5.y:1094 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 115: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1095 + //line php5/php5.y:1096 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1104 + //line php5/php5.y:1105 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 117: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1106 + //line php5/php5.y:1107 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1115 + //line php5/php5.y:1116 { yyVAL.node = yyDollar[1].node } case 119: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1117 + //line php5/php5.y:1118 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -3413,7 +3413,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1127 + //line php5/php5.y:1128 { name := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3427,7 +3427,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1139 + //line php5/php5.y:1140 { name := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -3441,37 +3441,37 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1155 + //line php5/php5.y:1156 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1157 + //line php5/php5.y:1158 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[4].token} } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1159 + //line php5/php5.y:1160 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[4].token} } case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1161 + //line php5/php5.y:1162 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[5].token} } case 126: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1167 + //line php5/php5.y:1168 { yyVAL.list = []node.Node{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1169 + //line php5/php5.y:1170 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) @@ -3480,7 +3480,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1176 + //line php5/php5.y:1177 { _default := stmt.NewDefault(yyDollar[4].list) yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) @@ -3489,26 +3489,26 @@ yydefault: } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1193 + //line php5/php5.y:1194 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1195 + //line php5/php5.y:1196 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1205 + //line php5/php5.y:1206 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1207 + //line php5/php5.y:1208 { _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) @@ -3518,13 +3518,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1219 + //line php5/php5.y:1220 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1221 + //line php5/php5.y:1222 { stmts := stmt.NewStmtList(yyDollar[5].list) yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[5].list)) @@ -3537,13 +3537,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1236 + //line php5/php5.y:1237 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1238 + //line php5/php5.y:1239 { yyVAL.node = stmt.NewElse(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -3551,13 +3551,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1248 + //line php5/php5.y:1249 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1250 + //line php5/php5.y:1251 { stmts := stmt.NewStmtList(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) @@ -3568,31 +3568,31 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1263 + //line php5/php5.y:1264 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1265 + //line php5/php5.y:1266 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1270 + //line php5/php5.y:1271 { yyVAL.list = []node.Node{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1272 + //line php5/php5.y:1273 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1277 + //line php5/php5.y:1278 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -3620,7 +3620,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1303 + //line php5/php5.y:1304 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -3648,13 +3648,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1333 + //line php5/php5.y:1334 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1335 + //line php5/php5.y:1336 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3662,7 +3662,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1341 + //line php5/php5.y:1342 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3670,13 +3670,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1347 + //line php5/php5.y:1348 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1353 + //line php5/php5.y:1354 { yyVAL.node = node.NewArgumentList(nil) @@ -3685,7 +3685,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1360 + //line php5/php5.y:1361 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -3694,7 +3694,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1367 + //line php5/php5.y:1368 { arg := node.NewArgument(yyDollar[2].node, false, false) yyVAL.node = node.NewArgumentList([]node.Node{arg}) @@ -3705,19 +3705,19 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1380 + //line php5/php5.y:1381 { yyVAL.list = []node.Node{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1382 + //line php5/php5.y:1383 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1387 + //line php5/php5.y:1388 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -3725,7 +3725,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1393 + //line php5/php5.y:1394 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -3733,7 +3733,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1399 + //line php5/php5.y:1400 { yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) @@ -3741,7 +3741,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1405 + //line php5/php5.y:1406 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -3749,19 +3749,19 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1414 + //line php5/php5.y:1415 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1416 + //line php5/php5.y:1417 { yyVAL.list = []node.Node{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1422 + //line php5/php5.y:1423 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3773,7 +3773,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1432 + //line php5/php5.y:1433 { yyVAL.node = expr.NewVariable(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -3781,7 +3781,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1438 + //line php5/php5.y:1439 { yyVAL.node = expr.NewVariable(yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -3789,7 +3789,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1448 + //line php5/php5.y:1449 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -3808,7 +3808,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1465 + //line php5/php5.y:1466 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -3827,7 +3827,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1482 + //line php5/php5.y:1483 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3846,7 +3846,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1499 + //line php5/php5.y:1500 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3865,19 +3865,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1521 + //line php5/php5.y:1522 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1523 + //line php5/php5.y:1524 { yyVAL.list = []node.Node{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1529 + //line php5/php5.y:1530 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) @@ -3885,19 +3885,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1535 + //line php5/php5.y:1536 { yyVAL.node = yyDollar[1].node } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1537 + //line php5/php5.y:1538 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1539 + //line php5/php5.y:1540 { name := node.NewIdentifier(yyDollar[4].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -3909,75 +3909,87 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1552 + //line php5/php5.y:1553 { - yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].nodesWithEndToken.nodes) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) + var adaptationList *stmt.TraitAdaptationList + switch n := yyDollar[3].node.(type) { + case *stmt.TraitAdaptationList: + adaptationList = n + default: + adaptationList = nil + } + + yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, adaptationList) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1561 + //line php5/php5.y:1570 { yyVAL.list = []node.Node{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1563 + //line php5/php5.y:1572 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1568 + //line php5/php5.y:1577 { - yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} + yyVAL.node = stmt.NewNop() + + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1570 + //line php5/php5.y:1583 { - yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} + yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) + + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1575 + //line php5/php5.y:1592 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1577 + //line php5/php5.y:1594 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1582 + //line php5/php5.y:1599 { yyVAL.list = []node.Node{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1584 + //line php5/php5.y:1601 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1589 + //line php5/php5.y:1606 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1591 + //line php5/php5.y:1608 { yyVAL.node = yyDollar[1].node } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1596 + //line php5/php5.y:1613 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) @@ -3985,19 +3997,19 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1605 + //line php5/php5.y:1622 { yyVAL.list = []node.Node{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1607 + //line php5/php5.y:1624 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1612 + //line php5/php5.y:1629 { name := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4009,13 +4021,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1622 + //line php5/php5.y:1639 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1627 + //line php5/php5.y:1644 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -4027,7 +4039,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1640 + //line php5/php5.y:1657 { alias := node.NewIdentifier(yyDollar[4].token.Value) yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -4039,7 +4051,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1650 + //line php5/php5.y:1667 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4047,37 +4059,37 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1659 + //line php5/php5.y:1676 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1661 + //line php5/php5.y:1678 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1666 + //line php5/php5.y:1683 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1668 + //line php5/php5.y:1685 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1673 + //line php5/php5.y:1690 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1675 + //line php5/php5.y:1692 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4087,31 +4099,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1686 + //line php5/php5.y:1703 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1688 + //line php5/php5.y:1705 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1693 + //line php5/php5.y:1710 { yyVAL.list = []node.Node{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1695 + //line php5/php5.y:1712 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1700 + //line php5/php5.y:1717 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4119,7 +4131,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1706 + //line php5/php5.y:1723 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4127,7 +4139,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1712 + //line php5/php5.y:1729 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4135,7 +4147,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1718 + //line php5/php5.y:1735 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4143,7 +4155,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1724 + //line php5/php5.y:1741 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4151,7 +4163,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1730 + //line php5/php5.y:1747 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4159,7 +4171,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1739 + //line php5/php5.y:1756 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -4177,7 +4189,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1755 + //line php5/php5.y:1772 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -4195,7 +4207,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1771 + //line php5/php5.y:1788 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4213,7 +4225,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1787 + //line php5/php5.y:1804 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4231,7 +4243,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1806 + //line php5/php5.y:1823 { name := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -4248,7 +4260,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1821 + //line php5/php5.y:1838 { name := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -4264,55 +4276,55 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1838 + //line php5/php5.y:1855 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1840 + //line php5/php5.y:1857 { yyVAL.list = []node.Node{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1846 + //line php5/php5.y:1863 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1848 + //line php5/php5.y:1865 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1853 + //line php5/php5.y:1870 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1855 + //line php5/php5.y:1872 { yyVAL.list = []node.Node{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1860 + //line php5/php5.y:1877 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1862 + //line php5/php5.y:1879 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1867 + //line php5/php5.y:1884 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -4321,7 +4333,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1874 + //line php5/php5.y:1891 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) @@ -4330,37 +4342,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1884 + //line php5/php5.y:1901 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1886 + //line php5/php5.y:1903 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1888 + //line php5/php5.y:1905 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1893 + //line php5/php5.y:1910 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1895 + //line php5/php5.y:1912 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1900 + //line php5/php5.y:1917 { if yyDollar[3].node != nil { @@ -4375,7 +4387,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1916 + //line php5/php5.y:1933 { list := expr.NewList(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -4387,7 +4399,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1926 + //line php5/php5.y:1943 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4395,7 +4407,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1932 + //line php5/php5.y:1949 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -4403,7 +4415,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1938 + //line php5/php5.y:1955 { var _new *expr.New @@ -4422,7 +4434,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1955 + //line php5/php5.y:1972 { yyVAL.node = expr.NewClone(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4430,7 +4442,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1961 + //line php5/php5.y:1978 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4438,7 +4450,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1967 + //line php5/php5.y:1984 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4446,7 +4458,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1973 + //line php5/php5.y:1990 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4454,7 +4466,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1979 + //line php5/php5.y:1996 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4462,7 +4474,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1985 + //line php5/php5.y:2002 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4470,7 +4482,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1991 + //line php5/php5.y:2008 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4478,7 +4490,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1997 + //line php5/php5.y:2014 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4486,7 +4498,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2003 + //line php5/php5.y:2020 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4494,7 +4506,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2009 + //line php5/php5.y:2026 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4502,7 +4514,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2015 + //line php5/php5.y:2032 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4510,7 +4522,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2021 + //line php5/php5.y:2038 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4518,7 +4530,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2027 + //line php5/php5.y:2044 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4526,7 +4538,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2033 + //line php5/php5.y:2050 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) @@ -4534,7 +4546,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2039 + //line php5/php5.y:2056 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4542,7 +4554,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2045 + //line php5/php5.y:2062 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) @@ -4550,7 +4562,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2051 + //line php5/php5.y:2068 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4558,7 +4570,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2057 + //line php5/php5.y:2074 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4566,7 +4578,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2063 + //line php5/php5.y:2080 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4574,7 +4586,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2069 + //line php5/php5.y:2086 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4582,7 +4594,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2075 + //line php5/php5.y:2092 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4590,7 +4602,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2081 + //line php5/php5.y:2098 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4598,7 +4610,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2087 + //line php5/php5.y:2104 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4606,7 +4618,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2093 + //line php5/php5.y:2110 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4614,7 +4626,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2099 + //line php5/php5.y:2116 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4622,7 +4634,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2105 + //line php5/php5.y:2122 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4630,7 +4642,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2111 + //line php5/php5.y:2128 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4638,7 +4650,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2117 + //line php5/php5.y:2134 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4646,7 +4658,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2123 + //line php5/php5.y:2140 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4654,7 +4666,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2129 + //line php5/php5.y:2146 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4662,7 +4674,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2135 + //line php5/php5.y:2152 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4670,7 +4682,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2141 + //line php5/php5.y:2158 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4678,7 +4690,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2147 + //line php5/php5.y:2164 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4686,7 +4698,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2153 + //line php5/php5.y:2170 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4694,7 +4706,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2159 + //line php5/php5.y:2176 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4702,7 +4714,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2165 + //line php5/php5.y:2182 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4710,7 +4722,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2171 + //line php5/php5.y:2188 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4718,7 +4730,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2177 + //line php5/php5.y:2194 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4726,7 +4738,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2183 + //line php5/php5.y:2200 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4734,7 +4746,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2189 + //line php5/php5.y:2206 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4742,7 +4754,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2195 + //line php5/php5.y:2212 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4750,7 +4762,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2201 + //line php5/php5.y:2218 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4758,7 +4770,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2207 + //line php5/php5.y:2224 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4766,7 +4778,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2213 + //line php5/php5.y:2230 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4774,7 +4786,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2219 + //line php5/php5.y:2236 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4782,7 +4794,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2225 + //line php5/php5.y:2242 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4790,7 +4802,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2231 + //line php5/php5.y:2248 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4798,19 +4810,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2237 + //line php5/php5.y:2254 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2239 + //line php5/php5.y:2256 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2241 + //line php5/php5.y:2258 { yyVAL.node = yyDollar[2].node @@ -4838,7 +4850,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2267 + //line php5/php5.y:2284 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) @@ -4846,7 +4858,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2273 + //line php5/php5.y:2290 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -4854,13 +4866,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2279 + //line php5/php5.y:2296 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2281 + //line php5/php5.y:2298 { yyVAL.node = cast.NewInt(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4868,7 +4880,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2287 + //line php5/php5.y:2304 { yyVAL.node = cast.NewDouble(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4876,7 +4888,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2293 + //line php5/php5.y:2310 { yyVAL.node = cast.NewString(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4884,7 +4896,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2299 + //line php5/php5.y:2316 { yyVAL.node = cast.NewArray(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4892,7 +4904,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2305 + //line php5/php5.y:2322 { yyVAL.node = cast.NewObject(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4900,7 +4912,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2311 + //line php5/php5.y:2328 { yyVAL.node = cast.NewBool(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4908,7 +4920,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2317 + //line php5/php5.y:2334 { yyVAL.node = cast.NewUnset(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4916,7 +4928,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2323 + //line php5/php5.y:2340 { if strings.EqualFold(yyDollar[1].token.Value, "die") { yyVAL.node = expr.NewDie(yyDollar[2].node) @@ -4928,7 +4940,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2333 + //line php5/php5.y:2350 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4936,25 +4948,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2339 + //line php5/php5.y:2356 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2341 + //line php5/php5.y:2358 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2343 + //line php5/php5.y:2360 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2345 + //line php5/php5.y:2362 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -4962,7 +4974,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2351 + //line php5/php5.y:2368 { yyVAL.node = expr.NewPrint(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4970,7 +4982,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2357 + //line php5/php5.y:2374 { yyVAL.node = expr.NewYield(nil, nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4978,7 +4990,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:2363 + //line php5/php5.y:2380 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].list, nil, yyDollar[8].list, false, yyDollar[2].boolWithToken.value, "") yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) @@ -4987,7 +4999,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:2370 + //line php5/php5.y:2387 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].list, nil, yyDollar[9].list, true, yyDollar[3].boolWithToken.value, "") yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token)) @@ -4996,7 +5008,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2380 + //line php5/php5.y:2397 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5004,7 +5016,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2386 + //line php5/php5.y:2403 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5012,7 +5024,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2392 + //line php5/php5.y:2409 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) @@ -5020,7 +5032,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2398 + //line php5/php5.y:2415 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) @@ -5028,7 +5040,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2407 + //line php5/php5.y:2424 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -5036,7 +5048,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2413 + //line php5/php5.y:2430 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -5044,7 +5056,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2419 + //line php5/php5.y:2436 { str := scalar.NewString(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(str, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5056,7 +5068,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2429 + //line php5/php5.y:2446 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -5064,7 +5076,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2438 + //line php5/php5.y:2455 { yyVAL.node = expr.NewArray(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -5072,7 +5084,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2444 + //line php5/php5.y:2461 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -5080,25 +5092,25 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2453 + //line php5/php5.y:2470 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2458 + //line php5/php5.y:2475 { yyVAL.list = []node.Node{} } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2460 + //line php5/php5.y:2477 { yyVAL.list = yyDollar[3].list } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2465 + //line php5/php5.y:2482 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -5116,7 +5128,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2481 + //line php5/php5.y:2498 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -5134,7 +5146,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2497 + //line php5/php5.y:2514 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5152,7 +5164,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2513 + //line php5/php5.y:2530 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[2].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -5170,7 +5182,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2532 + //line php5/php5.y:2549 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -5182,7 +5194,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2542 + //line php5/php5.y:2559 { funcName := name.NewRelative(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) @@ -5194,7 +5206,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2552 + //line php5/php5.y:2569 { funcName := name.NewFullyQualified(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) @@ -5206,7 +5218,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2562 + //line php5/php5.y:2579 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -5214,7 +5226,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2568 + //line php5/php5.y:2585 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -5222,7 +5234,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2574 + //line php5/php5.y:2591 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -5230,7 +5242,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2580 + //line php5/php5.y:2597 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -5238,7 +5250,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2586 + //line php5/php5.y:2603 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) @@ -5246,7 +5258,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2595 + //line php5/php5.y:2612 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5254,7 +5266,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2601 + //line php5/php5.y:2618 { yyVAL.node = name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -5262,7 +5274,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2607 + //line php5/php5.y:2624 { yyVAL.node = name.NewRelative(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) @@ -5270,7 +5282,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2613 + //line php5/php5.y:2630 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) @@ -5278,7 +5290,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2622 + //line php5/php5.y:2639 { yyVAL.node = name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -5286,7 +5298,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2628 + //line php5/php5.y:2645 { yyVAL.node = name.NewRelative(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) @@ -5294,7 +5306,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2634 + //line php5/php5.y:2651 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) @@ -5302,19 +5314,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2643 + //line php5/php5.y:2660 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2645 + //line php5/php5.y:2662 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2650 + //line php5/php5.y:2667 { yyVAL.node = yyDollar[1].node @@ -5352,79 +5364,79 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2686 + //line php5/php5.y:2703 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2692 + //line php5/php5.y:2709 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2694 + //line php5/php5.y:2711 { yyVAL.list = []node.Node{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2700 + //line php5/php5.y:2717 { yyVAL.list = yyDollar[2].list } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2705 + //line php5/php5.y:2722 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2707 + //line php5/php5.y:2724 { yyVAL.node = nil } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2709 + //line php5/php5.y:2726 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2714 + //line php5/php5.y:2731 { yyVAL.list = []node.Node{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2716 + //line php5/php5.y:2733 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2718 + //line php5/php5.y:2735 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2723 + //line php5/php5.y:2740 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2725 + //line php5/php5.y:2742 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2730 + //line php5/php5.y:2747 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5432,7 +5444,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2736 + //line php5/php5.y:2753 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5440,7 +5452,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2742 + //line php5/php5.y:2759 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5448,7 +5460,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2748 + //line php5/php5.y:2765 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5456,7 +5468,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2754 + //line php5/php5.y:2771 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5464,7 +5476,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2760 + //line php5/php5.y:2777 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5472,7 +5484,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2766 + //line php5/php5.y:2783 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5480,7 +5492,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2772 + //line php5/php5.y:2789 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5488,7 +5500,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2778 + //line php5/php5.y:2795 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5496,7 +5508,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2784 + //line php5/php5.y:2801 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5504,7 +5516,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2790 + //line php5/php5.y:2807 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -5516,7 +5528,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2800 + //line php5/php5.y:2817 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) @@ -5524,7 +5536,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2809 + //line php5/php5.y:2826 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -5536,25 +5548,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2822 + //line php5/php5.y:2839 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2827 + //line php5/php5.y:2844 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2829 + //line php5/php5.y:2846 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2831 + //line php5/php5.y:2848 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -5566,7 +5578,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2841 + //line php5/php5.y:2858 { name := name.NewRelative(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) @@ -5578,7 +5590,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2851 + //line php5/php5.y:2868 { name := name.NewFullyQualified(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) @@ -5590,7 +5602,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2861 + //line php5/php5.y:2878 { yyVAL.node = expr.NewArray(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -5598,7 +5610,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2867 + //line php5/php5.y:2884 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -5606,13 +5618,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2873 + //line php5/php5.y:2890 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2875 + //line php5/php5.y:2892 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5620,13 +5632,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2881 + //line php5/php5.y:2898 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2886 + //line php5/php5.y:2903 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -5634,7 +5646,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2892 + //line php5/php5.y:2909 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5642,7 +5654,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2898 + //line php5/php5.y:2915 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5650,7 +5662,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2904 + //line php5/php5.y:2921 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5658,7 +5670,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2910 + //line php5/php5.y:2927 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5666,7 +5678,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2916 + //line php5/php5.y:2933 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5674,7 +5686,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2922 + //line php5/php5.y:2939 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5682,7 +5694,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2928 + //line php5/php5.y:2945 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5690,7 +5702,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2934 + //line php5/php5.y:2951 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5698,7 +5710,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2940 + //line php5/php5.y:2957 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5706,7 +5718,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2946 + //line php5/php5.y:2963 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5714,7 +5726,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2952 + //line php5/php5.y:2969 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5722,7 +5734,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2958 + //line php5/php5.y:2975 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5730,7 +5742,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2964 + //line php5/php5.y:2981 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5738,7 +5750,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2970 + //line php5/php5.y:2987 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5746,7 +5758,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2976 + //line php5/php5.y:2993 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5754,7 +5766,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2982 + //line php5/php5.y:2999 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5762,7 +5774,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2988 + //line php5/php5.y:3005 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5770,7 +5782,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2994 + //line php5/php5.y:3011 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5778,7 +5790,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3000 + //line php5/php5.y:3017 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5786,7 +5798,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3006 + //line php5/php5.y:3023 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5794,7 +5806,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3012 + //line php5/php5.y:3029 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5802,7 +5814,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3018 + //line php5/php5.y:3035 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5810,7 +5822,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3024 + //line php5/php5.y:3041 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5818,7 +5830,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3030 + //line php5/php5.y:3047 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5826,7 +5838,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3036 + //line php5/php5.y:3053 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5834,7 +5846,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3042 + //line php5/php5.y:3059 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5842,7 +5854,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3048 + //line php5/php5.y:3065 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5850,7 +5862,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3054 + //line php5/php5.y:3071 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -5858,7 +5870,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3060 + //line php5/php5.y:3077 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) @@ -5866,7 +5878,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3066 + //line php5/php5.y:3083 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5874,7 +5886,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3072 + //line php5/php5.y:3089 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5882,19 +5894,19 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3078 + //line php5/php5.y:3095 { yyVAL.node = yyDollar[2].node } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3083 + //line php5/php5.y:3100 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3085 + //line php5/php5.y:3102 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -5906,7 +5918,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3095 + //line php5/php5.y:3112 { name := name.NewRelative(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) @@ -5918,7 +5930,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3105 + //line php5/php5.y:3122 { name := name.NewFullyQualified(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) @@ -5930,7 +5942,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3118 + //line php5/php5.y:3135 { name := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5942,25 +5954,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3128 + //line php5/php5.y:3145 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3130 + //line php5/php5.y:3147 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3132 + //line php5/php5.y:3149 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3134 + //line php5/php5.y:3151 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -5968,7 +5980,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3140 + //line php5/php5.y:3157 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -5976,7 +5988,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3146 + //line php5/php5.y:3163 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5984,19 +5996,19 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3155 + //line php5/php5.y:3172 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3157 + //line php5/php5.y:3174 { yyVAL.list = yyDollar[1].list } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3167 + //line php5/php5.y:3184 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) @@ -6006,7 +6018,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3175 + //line php5/php5.y:3192 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6016,7 +6028,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3183 + //line php5/php5.y:3200 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -6026,7 +6038,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3191 + //line php5/php5.y:3208 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -6036,49 +6048,49 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3202 + //line php5/php5.y:3219 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3204 + //line php5/php5.y:3221 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3209 + //line php5/php5.y:3226 { yyVAL.node = yyDollar[2].node } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3211 + //line php5/php5.y:3228 { yyVAL.node = yyDollar[2].node } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3217 + //line php5/php5.y:3234 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3223 + //line php5/php5.y:3240 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3228 + //line php5/php5.y:3245 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3233 + //line php5/php5.y:3250 { yyVAL.node = yyDollar[1].node @@ -6133,25 +6145,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3286 + //line php5/php5.y:3303 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3291 + //line php5/php5.y:3308 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3293 + //line php5/php5.y:3310 { yyVAL.list = []node.Node{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3299 + //line php5/php5.y:3316 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -6162,7 +6174,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3311 + //line php5/php5.y:3328 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6171,7 +6183,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3318 + //line php5/php5.y:3335 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6180,38 +6192,38 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3328 + //line php5/php5.y:3345 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3336 + //line php5/php5.y:3353 { yyVAL.list = []node.Node{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3338 + //line php5/php5.y:3355 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3340 + //line php5/php5.y:3357 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3345 + //line php5/php5.y:3362 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3347 + //line php5/php5.y:3364 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -6223,7 +6235,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3360 + //line php5/php5.y:3377 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -6231,7 +6243,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3366 + //line php5/php5.y:3383 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -6239,13 +6251,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3376 + //line php5/php5.y:3393 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3381 + //line php5/php5.y:3398 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -6253,7 +6265,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3387 + //line php5/php5.y:3404 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -6261,31 +6273,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3395 + //line php5/php5.y:3412 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3396 + //line php5/php5.y:3413 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3397 + //line php5/php5.y:3414 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3403 + //line php5/php5.y:3420 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3405 + //line php5/php5.y:3422 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -6297,13 +6309,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3415 + //line php5/php5.y:3432 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3420 + //line php5/php5.y:3437 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -6311,7 +6323,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3426 + //line php5/php5.y:3443 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -6319,13 +6331,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3432 + //line php5/php5.y:3449 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3438 + //line php5/php5.y:3455 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6337,7 +6349,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3448 + //line php5/php5.y:3465 { yyVAL.node = expr.NewVariable(yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6345,25 +6357,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3457 + //line php5/php5.y:3474 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3459 + //line php5/php5.y:3476 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3465 + //line php5/php5.y:3482 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3467 + //line php5/php5.y:3484 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -6372,7 +6384,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3477 + //line php5/php5.y:3494 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6381,7 +6393,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3484 + //line php5/php5.y:3501 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6390,7 +6402,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3491 + //line php5/php5.y:3508 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -6399,7 +6411,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3501 + //line php5/php5.y:3518 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6407,13 +6419,13 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3507 + //line php5/php5.y:3524 { yyVAL.node = yyDollar[2].node } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3512 + //line php5/php5.y:3529 { n := expr.NewVariable(nil) yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6423,7 +6435,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3520 + //line php5/php5.y:3537 { n := expr.NewVariable(nil) yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -6437,13 +6449,13 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3535 + //line php5/php5.y:3552 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3537 + //line php5/php5.y:3554 { if yyDollar[1].node == nil { yyVAL.list = []node.Node{} @@ -6453,7 +6465,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3549 + //line php5/php5.y:3566 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -6461,7 +6473,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3555 + //line php5/php5.y:3572 { item := expr.NewList(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(item, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6473,25 +6485,25 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3565 + //line php5/php5.y:3582 { yyVAL.node = nil } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3571 + //line php5/php5.y:3588 { yyVAL.list = []node.Node{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3573 + //line php5/php5.y:3590 { yyVAL.list = yyDollar[1].list } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3578 + //line php5/php5.y:3595 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) @@ -6501,7 +6513,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3586 + //line php5/php5.y:3603 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6511,7 +6523,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3594 + //line php5/php5.y:3611 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -6521,7 +6533,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3602 + //line php5/php5.y:3619 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -6531,7 +6543,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3610 + //line php5/php5.y:3627 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[6].node, true) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node)) @@ -6541,7 +6553,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3618 + //line php5/php5.y:3635 { arrayItem := expr.NewArrayItem(nil, yyDollar[4].node, true) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) @@ -6551,7 +6563,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3626 + //line php5/php5.y:3643 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[4].node, true) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -6561,7 +6573,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3634 + //line php5/php5.y:3651 { arrayItem := expr.NewArrayItem(nil, yyDollar[2].node, true) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -6571,13 +6583,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3645 + //line php5/php5.y:3662 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3647 + //line php5/php5.y:3664 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -6586,13 +6598,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3654 + //line php5/php5.y:3671 { yyVAL.list = []node.Node{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3656 + //line php5/php5.y:3673 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6601,7 +6613,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3666 + //line php5/php5.y:3683 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6613,7 +6625,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3676 + //line php5/php5.y:3693 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6628,7 +6640,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3689 + //line php5/php5.y:3706 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6646,7 +6658,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3705 + //line php5/php5.y:3722 { yyVAL.node = yyDollar[2].node yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -6654,7 +6666,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3711 + //line php5/php5.y:3728 { identifier := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -6669,13 +6681,13 @@ yydefault: } case 500: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3725 + //line php5/php5.y:3742 { yyVAL.node = yyDollar[2].node } case 501: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3730 + //line php5/php5.y:3747 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6683,7 +6695,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3736 + //line php5/php5.y:3753 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -6697,7 +6709,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3748 + //line php5/php5.y:3765 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6709,7 +6721,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3761 + //line php5/php5.y:3778 { yyVAL.node = expr.NewIsset(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6717,7 +6729,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3767 + //line php5/php5.y:3784 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6725,7 +6737,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3773 + //line php5/php5.y:3790 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6733,7 +6745,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3779 + //line php5/php5.y:3796 { yyVAL.node = expr.NewInclude(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -6741,7 +6753,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3785 + //line php5/php5.y:3802 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -6749,7 +6761,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3791 + //line php5/php5.y:3808 { yyVAL.node = expr.NewEval(yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6757,7 +6769,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3797 + //line php5/php5.y:3814 { yyVAL.node = expr.NewRequire(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -6765,7 +6777,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3803 + //line php5/php5.y:3820 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -6773,31 +6785,31 @@ yydefault: } case 512: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3812 + //line php5/php5.y:3829 { yyVAL.list = []node.Node{yyDollar[1].node} } case 513: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3814 + //line php5/php5.y:3831 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 514: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3819 + //line php5/php5.y:3836 { yyVAL.node = yyDollar[1].node } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3821 + //line php5/php5.y:3838 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3826 + //line php5/php5.y:3843 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -6809,7 +6821,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3836 + //line php5/php5.y:3853 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -6821,7 +6833,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3849 + //line php5/php5.y:3866 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -6833,7 +6845,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3862 + //line php5/php5.y:3879 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) diff --git a/php5/php5.y b/php5/php5.y index fe82192..4561c55 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -243,6 +243,7 @@ import ( %type trait_method_reference_fully_qualified trait_method_reference trait_modifiers member_modifier method %type static_scalar_value static_operation %type ctor_arguments function_call_parameter_list +%type trait_adaptations %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations %type inner_statement_list global_var_list static_var_list encaps_list isset_variables non_empty_array_pair_list @@ -259,7 +260,7 @@ import ( %type simple_indirect_reference %type foreach_variable foreach_optional_arg -%type switch_case_list method_body trait_adaptations +%type switch_case_list method_body %type is_reference is_variadic %type while_statement for_statement foreach_statement @@ -1550,8 +1551,16 @@ class_statement: trait_use_statement: T_USE trait_list trait_adaptations { - $$ = stmt.NewTraitUse($2, $3.nodes) - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3.endToken)) + var adaptationList *stmt.TraitAdaptationList + switch n := $3.(type) { + case *stmt.TraitAdaptationList: + adaptationList = n + default: + adaptationList = nil + } + + $$ = stmt.NewTraitUse($2, adaptationList) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) yylex.(*Parser).comments.AddComments($$, $1.Comments()) } ; @@ -1565,9 +1574,17 @@ trait_list: trait_adaptations: ';' - { $$ = &nodesWithEndToken{nil, $1} } + { + $$ = stmt.NewNop() + + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + } | '{' trait_adaptation_list '}' - { $$ = &nodesWithEndToken{$2, $3} } + { + $$ = stmt.NewTraitAdaptationList($2) + + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + } ; trait_adaptation_list: diff --git a/php5/php5_test.go b/php5/php5_test.go index 093aa6a..6150359 100644 --- a/php5/php5_test.go +++ b/php5/php5_test.go @@ -1455,6 +1455,7 @@ func TestPhp5(t *testing.T) { }, }, }, + TraitAdaptationList: &stmt.TraitAdaptationList{}, }, }, }, @@ -1475,12 +1476,14 @@ func TestPhp5(t *testing.T) { }, }, }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Method: &node.Identifier{Value: "one"}, + }, + Modifier: &node.Identifier{Value: "public"}, }, - Modifier: &node.Identifier{Value: "public"}, }, }, }, @@ -1503,13 +1506,15 @@ func TestPhp5(t *testing.T) { }, }, }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Method: &node.Identifier{Value: "one"}, + }, + Modifier: &node.Identifier{Value: "public"}, + Alias: &node.Identifier{Value: "two"}, }, - Modifier: &node.Identifier{Value: "public"}, - Alias: &node.Identifier{Value: "two"}, }, }, }, @@ -1532,39 +1537,41 @@ func TestPhp5(t *testing.T) { }, }, }, - Adaptations: []node.Node{ - &stmt.TraitUsePrecedence{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUsePrecedence{ + Ref: &stmt.TraitMethodRef{ + Trait: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Bar"}, + }, }, + Method: &node.Identifier{Value: "one"}, }, - Method: &node.Identifier{Value: "one"}, - }, - Insteadof: []node.Node{ - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + Insteadof: []node.Node{ + &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Baz"}, + }, }, - }, - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Quux"}, + &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Quux"}, + }, }, }, }, - }, - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Trait: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Baz"}, + }, }, + Method: &node.Identifier{Value: "one"}, }, - Method: &node.Identifier{Value: "one"}, + Alias: &node.Identifier{Value: "two"}, }, - Alias: &node.Identifier{Value: "two"}, }, }, }, diff --git a/php7/php7.go b/php7/php7.go index 32ba4b3..e5ffa3a 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -345,7 +345,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php7/php7.y:4125 +//line php7/php7.y:4160 type foreachVariable struct { node node.Node @@ -644,8 +644,8 @@ var yyAct = [...]int{ 527, 256, 257, 531, 738, 106, 222, 740, 818, 805, 526, 256, 257, 521, 860, 824, 367, 873, 827, 145, 806, 792, 817, 232, 823, 142, 719, 323, 149, 255, - 836, 834, 660, 822, 278, 255, 251, 840, 830, 645, - 422, 255, 928, 849, 224, 43, 282, 42, 16, 15, + 836, 834, 660, 822, 278, 255, 251, 645, 830, 928, + 422, 255, 840, 849, 224, 43, 282, 42, 16, 15, 851, 843, 599, 267, 546, 49, 546, 848, 745, 746, 747, 744, 743, 742, 853, 48, 867, 108, 671, 255, 50, 846, 858, 871, 252, 83, 880, 866, 839, 884, @@ -1453,7 +1453,7 @@ var yyPgo = [...]int{ 855, 853, 5, 852, 83, 40, 845, 138, 43, 840, 837, 835, 825, 823, 119, 822, 819, 818, 817, 12, 815, 814, 44, 42, 32, 2, 15, 629, 41, 74, - 8, 686, 20, 812, 809, 807, 536, 806, 121, 803, + 812, 8, 686, 20, 809, 807, 536, 806, 121, 803, 802, 800, 71, 798, 33, 797, 795, 30, 37, 791, 789, 28, 787, 786, 545, 784, 18, 783, 776, 26, 773, 63, 1, 4, 768, 17, 767, 39, 765, 763, @@ -1471,7 +1471,7 @@ var yyR1 = [...]int{ 5, 5, 5, 5, 5, 5, 6, 6, 111, 111, 88, 88, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 81, 81, 16, 16, 18, 18, 7, 7, 98, 98, + 82, 82, 16, 16, 18, 18, 7, 7, 98, 98, 97, 97, 104, 104, 17, 17, 20, 20, 19, 19, 92, 92, 112, 112, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, @@ -1479,16 +1479,16 @@ var yyR1 = [...]int{ 11, 11, 11, 11, 11, 90, 90, 89, 89, 26, 26, 103, 103, 27, 12, 1, 1, 2, 2, 13, 13, 122, 122, 77, 77, 14, 15, 29, 29, 116, - 116, 117, 117, 82, 82, 82, 82, 125, 125, 126, - 126, 25, 25, 84, 84, 84, 84, 101, 101, 101, + 116, 117, 117, 83, 83, 83, 83, 125, 125, 126, + 126, 25, 25, 85, 85, 85, 85, 101, 101, 101, 8, 8, 124, 124, 68, 68, 66, 66, 70, 70, 67, 67, 113, 113, 114, 114, 30, 30, 31, 31, 76, 76, 74, 74, 74, 75, 75, 78, 78, 110, 110, 32, 32, 96, 96, 34, 100, 100, 35, 35, - 115, 115, 36, 36, 36, 36, 121, 121, 85, 85, - 85, 102, 102, 37, 37, 38, 39, 39, 39, 39, - 41, 41, 40, 83, 83, 119, 119, 118, 118, 120, - 120, 80, 80, 80, 80, 80, 80, 99, 99, 42, + 115, 115, 36, 36, 36, 36, 121, 121, 80, 80, + 80, 102, 102, 37, 37, 38, 39, 39, 39, 39, + 41, 41, 40, 84, 84, 119, 119, 118, 118, 120, + 120, 81, 81, 81, 81, 81, 81, 99, 99, 42, 42, 91, 91, 69, 21, 93, 93, 43, 94, 94, 95, 95, 45, 44, 44, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, @@ -1576,7 +1576,7 @@ var yyChk = [...]int{ -58, -53, -46, -56, -57, 91, 49, 50, 4, 5, 84, 85, 86, 8, 9, 66, 67, 81, 63, 64, 65, 80, 62, 74, 140, 12, 157, -10, -60, 60, - 18, -88, 82, 146, 82, -88, 142, 10, -18, -81, + 18, -88, 82, 146, 82, -88, 142, 10, -18, -82, -104, -88, 82, 37, 38, -19, -20, -92, -21, 10, -112, 146, -11, 37, 79, 146, 146, -24, -23, 98, -24, -24, -96, -34, -48, -100, 37, -35, 12, -93, @@ -1628,9 +1628,9 @@ var yyChk = [...]int{ 10, 13, 152, 12, 10, 143, 143, 148, 143, -23, 149, -78, -23, -78, -48, -24, -23, -55, -48, -29, -7, 158, 147, 147, 143, -7, 158, -23, 147, 143, - 142, 82, -98, -17, -20, -81, 142, -123, 147, -124, - -11, 145, -23, -94, -23, -84, 142, 145, 146, -23, - 147, -27, -82, -28, 151, 59, 148, -25, -11, 145, + 142, 82, -98, -17, -20, -82, 142, -123, 147, -124, + -11, 145, -23, -94, -23, -85, 142, 145, 146, -23, + 147, -27, -83, -28, 151, 59, 148, -25, -11, 145, -90, 146, -113, -114, -30, -31, -76, -74, 150, 60, 61, -10, -117, -123, -121, -115, 142, 158, 147, 147, 95, -11, 145, 143, 160, -23, -28, 146, 147, 149, @@ -1639,25 +1639,25 @@ var yyChk = [...]int{ 144, -101, 144, -101, 144, -113, 144, 147, 58, -28, 146, -109, -112, -26, 41, 42, -113, 147, 158, -1, 151, -74, -123, 142, 143, -36, -119, -118, 44, -120, - 47, -80, 103, 102, 101, 98, 99, 100, -115, -10, + 47, -81, 103, 102, 101, 98, 99, 100, -115, -10, -11, 145, 144, -112, -23, -109, 149, -123, -7, 158, -97, 143, -17, -7, 22, 144, -94, 143, 32, 33, - -101, 31, -101, 147, -126, -11, 145, -82, -28, -109, + -101, 31, -101, 147, -126, -11, 145, -83, -28, -109, 149, 28, 146, 142, 147, -106, 44, -30, -2, 83, - 142, -115, -99, -42, 12, 38, 37, -121, -80, 143, + 142, -115, -99, -42, 12, 38, 37, -121, -81, 143, -112, 147, 143, 142, 143, -20, -7, 143, 144, 147, -23, -8, 145, 144, 143, 144, 31, -106, -112, 147, 147, 144, -89, -10, -112, -75, 145, -75, 146, 12, -115, 143, 144, 158, -123, 160, -91, -69, -6, -3, - -85, 144, 142, -115, 143, -125, -11, 145, -8, -112, + -80, 144, 142, -115, 143, -125, -11, 145, -8, -112, 144, -75, 26, -126, 12, 159, 143, 142, -76, 142, -105, -52, 12, 151, 160, 143, -42, -23, 144, 158, 160, -6, 143, -102, -37, -38, -39, -40, -41, -10, -6, 79, 10, 143, -112, -112, 142, 144, 147, -10, -112, -112, 147, 158, 12, -23, -123, -69, -23, -123, 143, -37, 144, 144, 45, 29, 78, 24, -112, 142, - 143, 143, -52, -123, 146, -121, 10, -4, -80, -6, - 144, 143, -112, -113, -6, 143, 147, -75, -83, 144, + 143, 143, -52, -123, 146, -121, 10, -4, -81, -6, + 144, 143, -112, -113, -6, 143, 147, -75, -84, 144, 142, -112, 143, } var yyDef = [...]int{ @@ -2133,7 +2133,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:294 + //line php7/php7.y:295 { yylex.(*Parser).rootNode = stmt.NewStmtList(yyDollar[1].list) @@ -2142,463 +2142,463 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:307 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:308 + //line php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:308 + //line php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:308 + //line php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:308 + //line php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:308 + //line php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:308 + //line php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:308 + //line php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:308 + //line php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:320 + //line php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:322 + //line php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:327 + //line php7/php7.y:328 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2606,13 +2606,13 @@ yydefault: } case 79: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:333 + //line php7/php7.y:334 { yyVAL.list = []node.Node{} } case 80: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:338 + //line php7/php7.y:339 { namePart := name.NewNamePart(yyDollar[1].token.Value) yyVAL.list = []node.Node{namePart} @@ -2625,7 +2625,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:349 + //line php7/php7.y:350 { namePart := name.NewNamePart(yyDollar[3].token.Value) yyVAL.list = append(yyDollar[1].list, namePart) @@ -2639,7 +2639,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:364 + //line php7/php7.y:365 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -2648,7 +2648,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:371 + //line php7/php7.y:372 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -2661,7 +2661,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:382 + //line php7/php7.y:383 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -2673,44 +2673,44 @@ yydefault: } case 85: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:395 + //line php7/php7.y:396 { // error yyVAL.node = nil } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:400 + //line php7/php7.y:401 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:402 + //line php7/php7.y:403 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:404 + //line php7/php7.y:405 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:406 + //line php7/php7.y:407 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:408 + //line php7/php7.y:409 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:410 + //line php7/php7.y:411 { yyVAL.node = stmt.NewHaltCompiler() @@ -2725,7 +2725,7 @@ yydefault: } case 92: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:423 + //line php7/php7.y:424 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2740,7 +2740,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:436 + //line php7/php7.y:437 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2756,7 +2756,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:450 + //line php7/php7.y:451 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2770,7 +2770,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:462 + //line php7/php7.y:463 { yyVAL.node = yyDollar[2].node @@ -2783,7 +2783,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:473 + //line php7/php7.y:474 { yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) @@ -2796,7 +2796,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:484 + //line php7/php7.y:485 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2809,7 +2809,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:495 + //line php7/php7.y:496 { yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) @@ -2822,7 +2822,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:506 + //line php7/php7.y:507 { yyVAL.node = stmt.NewConstList(yyDollar[2].list) @@ -2835,7 +2835,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:520 + //line php7/php7.y:521 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2847,7 +2847,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:530 + //line php7/php7.y:531 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2859,7 +2859,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:543 + //line php7/php7.y:544 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2878,7 +2878,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:560 + //line php7/php7.y:561 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2898,7 +2898,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:581 + //line php7/php7.y:582 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2917,7 +2917,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:598 + //line php7/php7.y:599 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2937,19 +2937,19 @@ yydefault: } case 106: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:619 + //line php7/php7.y:620 { yyVAL.token = nil } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:621 + //line php7/php7.y:622 { yyVAL.token = yyDollar[1].token } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:626 + //line php7/php7.y:627 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2958,13 +2958,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:633 + //line php7/php7.y:634 { yyVAL.list = []node.Node{yyDollar[1].node} } case 110: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:638 + //line php7/php7.y:639 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2973,13 +2973,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:645 + //line php7/php7.y:646 { yyVAL.list = []node.Node{yyDollar[1].node} } case 112: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:650 + //line php7/php7.y:651 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2988,25 +2988,25 @@ yydefault: } case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:657 + //line php7/php7.y:658 { yyVAL.list = []node.Node{yyDollar[1].node} } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:662 + //line php7/php7.y:663 { yyVAL.node = yyDollar[1].node } case 115: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:664 + //line php7/php7.y:665 { yyVAL.node = yyDollar[2].node.(*stmt.Use).SetUseType(yyDollar[1].node) } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:669 + //line php7/php7.y:670 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -3017,7 +3017,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:678 + //line php7/php7.y:679 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -3034,13 +3034,13 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:696 + //line php7/php7.y:697 { yyVAL.node = yyDollar[1].node } case 119: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:698 + //line php7/php7.y:699 { yyVAL.node = yyDollar[2].node @@ -3049,7 +3049,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:708 + //line php7/php7.y:709 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3058,13 +3058,13 @@ yydefault: } case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:715 + //line php7/php7.y:716 { yyVAL.list = []node.Node{yyDollar[1].node} } case 122: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:720 + //line php7/php7.y:721 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3072,50 +3072,50 @@ yydefault: } case 123: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:726 + //line php7/php7.y:727 { yyVAL.list = []node.Node{} } case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:731 + //line php7/php7.y:732 { // error yyVAL.node = nil } case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:736 + //line php7/php7.y:737 { yyVAL.node = yyDollar[1].node } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:738 + //line php7/php7.y:739 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:740 + //line php7/php7.y:741 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:742 + //line php7/php7.y:743 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:744 + //line php7/php7.y:745 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:746 + //line php7/php7.y:747 { yyVAL.node = stmt.NewHaltCompiler() @@ -3130,7 +3130,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:761 + //line php7/php7.y:762 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3143,19 +3143,19 @@ yydefault: } case 132: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:772 + //line php7/php7.y:773 { yyVAL.node = yyDollar[1].node } case 133: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:774 + //line php7/php7.y:775 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:776 + //line php7/php7.y:777 { if yyDollar[5].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltWhile(yyDollar[3].node, yyDollar[5].altSyntaxNode.node) @@ -3173,7 +3173,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:792 + //line php7/php7.y:793 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) @@ -3189,7 +3189,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:806 + //line php7/php7.y:807 { if yyDollar[9].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltFor(yyDollar[3].list, yyDollar[5].list, yyDollar[7].list, yyDollar[9].altSyntaxNode.node) @@ -3209,7 +3209,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:824 + //line php7/php7.y:825 { if yyDollar[5].nodesWithEndToken.endToken.Value == ";" { yyVAL.node = stmt.NewAltSwitch(yyDollar[3].node, yyDollar[5].nodesWithEndToken.nodes) @@ -3227,7 +3227,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:840 + //line php7/php7.y:841 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3240,7 +3240,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:851 + //line php7/php7.y:852 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3253,7 +3253,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:862 + //line php7/php7.y:863 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3266,7 +3266,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:873 + //line php7/php7.y:874 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3279,7 +3279,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:884 + //line php7/php7.y:885 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3292,7 +3292,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:895 + //line php7/php7.y:896 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3305,7 +3305,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:906 + //line php7/php7.y:907 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3317,7 +3317,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:916 + //line php7/php7.y:917 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3329,7 +3329,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:926 + //line php7/php7.y:927 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3347,7 +3347,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:942 + //line php7/php7.y:943 { if yyDollar[7].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltForeach(yyDollar[3].node, nil, yyDollar[5].foreachVariable.node, yyDollar[7].altSyntaxNode.node, yyDollar[5].foreachVariable.byRef) @@ -3366,7 +3366,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:959 + //line php7/php7.y:960 { if yyDollar[9].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltForeach(yyDollar[3].node, yyDollar[5].node, yyDollar[7].foreachVariable.node, yyDollar[9].altSyntaxNode.node, yyDollar[7].foreachVariable.byRef) @@ -3386,7 +3386,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:977 + //line php7/php7.y:978 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) @@ -3400,7 +3400,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:989 + //line php7/php7.y:990 { yyVAL.node = stmt.NewNop() @@ -3412,7 +3412,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:999 + //line php7/php7.y:1000 { if yyDollar[6].node == nil { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3429,7 +3429,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1014 + //line php7/php7.y:1015 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3442,7 +3442,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1025 + //line php7/php7.y:1026 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3458,7 +3458,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1039 + //line php7/php7.y:1040 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -3473,13 +3473,13 @@ yydefault: } case 155: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1054 + //line php7/php7.y:1055 { yyVAL.list = []node.Node{} } case 156: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1056 + //line php7/php7.y:1057 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[5].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -3501,13 +3501,13 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1078 + //line php7/php7.y:1079 { yyVAL.list = []node.Node{yyDollar[1].node} } case 158: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1080 + //line php7/php7.y:1081 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3516,13 +3516,13 @@ yydefault: } case 159: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1090 + //line php7/php7.y:1091 { yyVAL.node = nil } case 160: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1092 + //line php7/php7.y:1093 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3536,13 +3536,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1107 + //line php7/php7.y:1108 { yyVAL.list = []node.Node{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1109 + //line php7/php7.y:1110 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3551,13 +3551,13 @@ yydefault: } case 163: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1119 + //line php7/php7.y:1120 { yyVAL.node = yyDollar[1].node } case 164: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:1124 + //line php7/php7.y:1125 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].boolWithToken.value, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str) @@ -3579,31 +3579,31 @@ yydefault: } case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1147 + //line php7/php7.y:1148 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 166: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1149 + //line php7/php7.y:1150 { yyVAL.boolWithToken = boolWithToken{true, yyDollar[1].token} } case 167: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1154 + //line php7/php7.y:1155 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1156 + //line php7/php7.y:1157 { yyVAL.boolWithToken = boolWithToken{true, yyDollar[1].token} } case 169: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1161 + //line php7/php7.y:1162 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].node, yyDollar[5].list, yyDollar[8].list, yyDollar[6].str) @@ -3626,7 +3626,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:1182 + //line php7/php7.y:1183 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str) @@ -3649,19 +3649,19 @@ yydefault: } case 171: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1206 + //line php7/php7.y:1207 { yyVAL.list = []node.Node{yyDollar[1].node} } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1208 + //line php7/php7.y:1209 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1213 + //line php7/php7.y:1214 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3673,7 +3673,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1223 + //line php7/php7.y:1224 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3685,7 +3685,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1236 + //line php7/php7.y:1237 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) @@ -3702,7 +3702,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1254 + //line php7/php7.y:1255 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].list, yyDollar[6].list, yyDollar[4].str) @@ -3722,13 +3722,13 @@ yydefault: } case 177: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1275 + //line php7/php7.y:1276 { yyVAL.node = nil } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1277 + //line php7/php7.y:1278 { yyVAL.node = yyDollar[2].node @@ -3737,13 +3737,13 @@ yydefault: } case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1287 + //line php7/php7.y:1288 { yyVAL.list = nil } case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1289 + //line php7/php7.y:1290 { yyVAL.list = yyDollar[2].list @@ -3752,13 +3752,13 @@ yydefault: } case 181: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1299 + //line php7/php7.y:1300 { yyVAL.list = nil } case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1301 + //line php7/php7.y:1302 { yyVAL.list = yyDollar[2].list @@ -3767,13 +3767,13 @@ yydefault: } case 183: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1311 + //line php7/php7.y:1312 { yyVAL.foreachVariable = foreachVariable{yyDollar[1].node, false} } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1313 + //line php7/php7.y:1314 { yyVAL.foreachVariable = foreachVariable{yyDollar[2].node, true} @@ -3785,7 +3785,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1323 + //line php7/php7.y:1324 { list := expr.NewList(yyDollar[3].list) yyVAL.foreachVariable = foreachVariable{list, false} @@ -3800,7 +3800,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1336 + //line php7/php7.y:1337 { list := expr.NewShortList(yyDollar[2].list) yyVAL.foreachVariable = foreachVariable{list, false} @@ -3814,13 +3814,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1351 + //line php7/php7.y:1352 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 188: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1353 + //line php7/php7.y:1354 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} @@ -3834,13 +3834,13 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1368 + //line php7/php7.y:1369 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 190: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1370 + //line php7/php7.y:1371 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} @@ -3854,13 +3854,13 @@ yydefault: } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1385 + //line php7/php7.y:1386 { yyVAL.node = yyDollar[1].node } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1387 + //line php7/php7.y:1388 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3874,37 +3874,37 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1401 + //line php7/php7.y:1402 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 194: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1402 + //line php7/php7.y:1403 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[4].token} } case 195: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1403 + //line php7/php7.y:1404 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[4].token} } case 196: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1404 + //line php7/php7.y:1405 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[5].token} } case 197: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1409 + //line php7/php7.y:1410 { yyVAL.list = []node.Node{} } case 198: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1411 + //line php7/php7.y:1412 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -3918,7 +3918,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1423 + //line php7/php7.y:1424 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -3932,25 +3932,25 @@ yydefault: } case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1438 + //line php7/php7.y:1439 { yyVAL.token = yyDollar[1].token } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1440 + //line php7/php7.y:1441 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1445 + //line php7/php7.y:1446 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 203: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1447 + //line php7/php7.y:1448 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} @@ -3964,7 +3964,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1462 + //line php7/php7.y:1463 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) @@ -3978,7 +3978,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1474 + //line php7/php7.y:1475 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) @@ -3994,13 +3994,13 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1491 + //line php7/php7.y:1492 { yyVAL.node = yyDollar[1].node } case 207: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1493 + //line php7/php7.y:1494 { _else := stmt.NewElse(yyDollar[3].node) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) @@ -4014,7 +4014,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1508 + //line php7/php7.y:1509 { stmts := stmt.NewStmtList(yyDollar[6].list) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) @@ -4031,7 +4031,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1523 + //line php7/php7.y:1524 { stmts := stmt.NewStmtList(yyDollar[7].list) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) @@ -4049,7 +4049,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1542 + //line php7/php7.y:1543 { yyVAL.node = yyDollar[1].node @@ -4062,7 +4062,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1553 + //line php7/php7.y:1554 { stmts := stmt.NewStmtList(yyDollar[4].list) _else := stmt.NewAltElse(stmts) @@ -4081,25 +4081,25 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1573 + //line php7/php7.y:1574 { yyVAL.list = yyDollar[1].list } case 213: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1575 + //line php7/php7.y:1576 { yyVAL.list = nil } case 214: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1580 + //line php7/php7.y:1581 { yyVAL.list = []node.Node{yyDollar[1].node} } case 215: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1582 + //line php7/php7.y:1583 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4108,7 +4108,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1592 + //line php7/php7.y:1593 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4147,7 +4147,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1629 + //line php7/php7.y:1630 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4186,25 +4186,25 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1669 + //line php7/php7.y:1670 { yyVAL.node = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1671 + //line php7/php7.y:1672 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1676 + //line php7/php7.y:1677 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1678 + //line php7/php7.y:1679 { yyVAL.node = node.NewNullable(yyDollar[2].node) @@ -4216,7 +4216,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1691 + //line php7/php7.y:1692 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4228,7 +4228,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1701 + //line php7/php7.y:1702 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4240,19 +4240,19 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1711 + //line php7/php7.y:1712 { yyVAL.node = yyDollar[1].node } case 225: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1716 + //line php7/php7.y:1717 { yyVAL.node = nil } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1718 + //line php7/php7.y:1719 { yyVAL.node = yyDollar[2].node @@ -4261,7 +4261,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1728 + //line php7/php7.y:1729 { yyVAL.node = node.NewArgumentList(nil) @@ -4270,7 +4270,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1735 + //line php7/php7.y:1736 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4279,13 +4279,13 @@ yydefault: } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1745 + //line php7/php7.y:1746 { yyVAL.list = []node.Node{yyDollar[1].node} } case 230: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1747 + //line php7/php7.y:1748 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4294,7 +4294,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1757 + //line php7/php7.y:1758 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4303,7 +4303,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1764 + //line php7/php7.y:1765 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4315,7 +4315,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1777 + //line php7/php7.y:1778 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4324,19 +4324,19 @@ yydefault: } case 234: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1784 + //line php7/php7.y:1785 { yyVAL.list = []node.Node{yyDollar[1].node} } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1789 + //line php7/php7.y:1790 { yyVAL.node = yyDollar[1].node } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1794 + //line php7/php7.y:1795 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4345,13 +4345,13 @@ yydefault: } case 237: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1801 + //line php7/php7.y:1802 { yyVAL.list = []node.Node{yyDollar[1].node} } case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1806 + //line php7/php7.y:1807 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4367,7 +4367,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1820 + //line php7/php7.y:1821 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4384,19 +4384,19 @@ yydefault: } case 240: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1838 + //line php7/php7.y:1839 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 241: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1840 + //line php7/php7.y:1841 { yyVAL.list = []node.Node{} } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1845 + //line php7/php7.y:1846 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4408,7 +4408,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1855 + //line php7/php7.y:1856 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) @@ -4421,19 +4421,29 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1866 + //line php7/php7.y:1867 { - yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].nodesWithEndToken.nodes) + var adaptationList *stmt.TraitAdaptationList + + switch n := yyDollar[3].node.(type) { + case *stmt.TraitAdaptationList: + adaptationList = n + default: + adaptationList = nil + yylex.(*Parser).comments.AddFromChildNode(yyVAL.node, yyDollar[3].node) + } + + yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, adaptationList) // save position - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) } case 245: yyDollar = yyS[yypt-10 : yypt+1] - //line php7/php7.y:1876 + //line php7/php7.y:1887 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].boolWithToken.value, yyDollar[7].list, yyDollar[9].node, yyDollar[10].nodesWithEndToken.nodes, yyDollar[5].str) @@ -4453,13 +4463,13 @@ yydefault: } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1897 + //line php7/php7.y:1908 { yyVAL.list = []node.Node{yyDollar[1].node} } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1899 + //line php7/php7.y:1910 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4468,37 +4478,55 @@ yydefault: } case 248: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1909 + //line php7/php7.y:1920 { - yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} + yyVAL.node = stmt.NewNop() + + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) + } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1911 + //line php7/php7.y:1930 { - yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[2].token} + yyVAL.node = stmt.NewTraitAdaptationList(nil) + + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + + // save comments + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CloseCurlyBracesToken) } case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1913 + //line php7/php7.y:1940 { - yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} + yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) + + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + + // save comments + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1918 + //line php7/php7.y:1953 { yyVAL.list = []node.Node{yyDollar[1].node} } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1920 + //line php7/php7.y:1955 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1925 + //line php7/php7.y:1960 { yyVAL.node = yyDollar[1].node @@ -4507,7 +4535,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1932 + //line php7/php7.y:1967 { yyVAL.node = yyDollar[1].node @@ -4516,7 +4544,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1942 + //line php7/php7.y:1977 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4528,7 +4556,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1955 + //line php7/php7.y:1990 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4543,7 +4571,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1968 + //line php7/php7.y:2003 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4558,7 +4586,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1981 + //line php7/php7.y:2016 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -4573,7 +4601,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1994 + //line php7/php7.y:2029 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -4585,7 +4613,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2007 + //line php7/php7.y:2042 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -4599,13 +4627,13 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2019 + //line php7/php7.y:2054 { yyVAL.node = yyDollar[1].node } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2024 + //line php7/php7.y:2059 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -4620,25 +4648,25 @@ yydefault: } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2039 + //line php7/php7.y:2074 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2040 + //line php7/php7.y:2075 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2045 + //line php7/php7.y:2080 { yyVAL.list = yyDollar[1].list } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2047 + //line php7/php7.y:2082 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -4651,31 +4679,31 @@ yydefault: } case 267: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2061 + //line php7/php7.y:2096 { yyVAL.list = nil } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2063 + //line php7/php7.y:2098 { yyVAL.list = yyDollar[1].list } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2068 + //line php7/php7.y:2103 { yyVAL.list = []node.Node{yyDollar[1].node} } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2070 + //line php7/php7.y:2105 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2075 + //line php7/php7.y:2110 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4687,7 +4715,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2085 + //line php7/php7.y:2120 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4699,7 +4727,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2095 + //line php7/php7.y:2130 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4711,7 +4739,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2105 + //line php7/php7.y:2140 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4723,7 +4751,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2115 + //line php7/php7.y:2150 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4735,7 +4763,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2125 + //line php7/php7.y:2160 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4747,7 +4775,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2138 + //line php7/php7.y:2173 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4756,13 +4784,13 @@ yydefault: } case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2145 + //line php7/php7.y:2180 { yyVAL.list = []node.Node{yyDollar[1].node} } case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2150 + //line php7/php7.y:2185 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4778,7 +4806,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2164 + //line php7/php7.y:2199 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4795,7 +4823,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2182 + //line php7/php7.y:2217 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4804,13 +4832,13 @@ yydefault: } case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2189 + //line php7/php7.y:2224 { yyVAL.list = []node.Node{yyDollar[1].node} } case 283: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2194 + //line php7/php7.y:2229 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -4825,7 +4853,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2210 + //line php7/php7.y:2245 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -4840,7 +4868,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2226 + //line php7/php7.y:2261 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4849,31 +4877,31 @@ yydefault: } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2233 + //line php7/php7.y:2268 { yyVAL.list = []node.Node{yyDollar[1].node} } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2238 + //line php7/php7.y:2273 { yyVAL.node = yyDollar[1].node } case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2243 + //line php7/php7.y:2278 { yyVAL.list = nil } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2245 + //line php7/php7.y:2280 { yyVAL.list = yyDollar[1].list } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2250 + //line php7/php7.y:2285 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4882,13 +4910,13 @@ yydefault: } case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2257 + //line php7/php7.y:2292 { yyVAL.list = []node.Node{yyDollar[1].node} } case 292: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:2262 + //line php7/php7.y:2297 { if yyDollar[2].node != nil { yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].node.(*node.ArgumentList), yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str) @@ -4912,7 +4940,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2287 + //line php7/php7.y:2322 { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) @@ -4927,7 +4955,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2300 + //line php7/php7.y:2335 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -4939,7 +4967,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2313 + //line php7/php7.y:2348 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -4956,7 +4984,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:2328 + //line php7/php7.y:2363 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -4972,7 +5000,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2342 + //line php7/php7.y:2377 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -4984,7 +5012,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2352 + //line php7/php7.y:2387 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -4997,7 +5025,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2363 + //line php7/php7.y:2398 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5009,7 +5037,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2373 + //line php7/php7.y:2408 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5021,7 +5049,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2383 + //line php7/php7.y:2418 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5033,7 +5061,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2393 + //line php7/php7.y:2428 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5045,7 +5073,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2403 + //line php7/php7.y:2438 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5057,7 +5085,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2413 + //line php7/php7.y:2448 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5069,7 +5097,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2423 + //line php7/php7.y:2458 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5081,7 +5109,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2433 + //line php7/php7.y:2468 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5093,7 +5121,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2443 + //line php7/php7.y:2478 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5105,7 +5133,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2453 + //line php7/php7.y:2488 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5117,7 +5145,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2463 + //line php7/php7.y:2498 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5129,7 +5157,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2473 + //line php7/php7.y:2508 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5141,7 +5169,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2483 + //line php7/php7.y:2518 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5153,7 +5181,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2493 + //line php7/php7.y:2528 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5165,7 +5193,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2503 + //line php7/php7.y:2538 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5177,7 +5205,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2513 + //line php7/php7.y:2548 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5189,7 +5217,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2523 + //line php7/php7.y:2558 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5201,7 +5229,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2533 + //line php7/php7.y:2568 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5213,7 +5241,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2543 + //line php7/php7.y:2578 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5225,7 +5253,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2553 + //line php7/php7.y:2588 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5237,7 +5265,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2563 + //line php7/php7.y:2598 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5249,7 +5277,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2573 + //line php7/php7.y:2608 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5261,7 +5289,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2583 + //line php7/php7.y:2618 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5273,7 +5301,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2593 + //line php7/php7.y:2628 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5285,7 +5313,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2603 + //line php7/php7.y:2638 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5297,7 +5325,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2613 + //line php7/php7.y:2648 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5309,7 +5337,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2623 + //line php7/php7.y:2658 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5321,7 +5349,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2633 + //line php7/php7.y:2668 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5333,7 +5361,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2643 + //line php7/php7.y:2678 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5345,7 +5373,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2653 + //line php7/php7.y:2688 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5357,7 +5385,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2663 + //line php7/php7.y:2698 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5369,7 +5397,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2673 + //line php7/php7.y:2708 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5381,7 +5409,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2683 + //line php7/php7.y:2718 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5393,7 +5421,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2693 + //line php7/php7.y:2728 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5405,7 +5433,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2703 + //line php7/php7.y:2738 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -5417,7 +5445,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2713 + //line php7/php7.y:2748 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -5429,7 +5457,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2723 + //line php7/php7.y:2758 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -5441,7 +5469,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2733 + //line php7/php7.y:2768 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -5453,7 +5481,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2743 + //line php7/php7.y:2778 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -5465,7 +5493,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2753 + //line php7/php7.y:2788 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -5477,7 +5505,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2763 + //line php7/php7.y:2798 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -5489,7 +5517,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2773 + //line php7/php7.y:2808 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -5501,7 +5529,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2783 + //line php7/php7.y:2818 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -5513,7 +5541,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2793 + //line php7/php7.y:2828 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -5525,7 +5553,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2803 + //line php7/php7.y:2838 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -5537,7 +5565,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2813 + //line php7/php7.y:2848 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -5549,7 +5577,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2823 + //line php7/php7.y:2858 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -5561,7 +5589,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2833 + //line php7/php7.y:2868 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -5573,7 +5601,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2843 + //line php7/php7.y:2878 { yyVAL.node = yyDollar[2].node @@ -5583,13 +5611,13 @@ yydefault: } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2851 + //line php7/php7.y:2886 { yyVAL.node = yyDollar[1].node } case 349: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:2853 + //line php7/php7.y:2888 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -5602,7 +5630,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2864 + //line php7/php7.y:2899 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -5615,7 +5643,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2875 + //line php7/php7.y:2910 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -5627,13 +5655,13 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2885 + //line php7/php7.y:2920 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2887 + //line php7/php7.y:2922 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -5645,7 +5673,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2897 + //line php7/php7.y:2932 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -5657,7 +5685,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2907 + //line php7/php7.y:2942 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -5669,7 +5697,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2917 + //line php7/php7.y:2952 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -5681,7 +5709,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2927 + //line php7/php7.y:2962 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -5693,7 +5721,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2937 + //line php7/php7.y:2972 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -5705,7 +5733,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2947 + //line php7/php7.y:2982 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -5717,7 +5745,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2957 + //line php7/php7.y:2992 { if strings.EqualFold(yyDollar[1].token.Value, "die") { yyVAL.node = expr.NewDie(yyDollar[2].node) @@ -5733,7 +5761,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2971 + //line php7/php7.y:3006 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -5745,13 +5773,13 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2981 + //line php7/php7.y:3016 { yyVAL.node = yyDollar[1].node } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2983 + //line php7/php7.y:3018 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -5764,7 +5792,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2994 + //line php7/php7.y:3029 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -5776,7 +5804,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3004 + //line php7/php7.y:3039 { yyVAL.node = expr.NewYield(nil, nil) @@ -5788,7 +5816,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3014 + //line php7/php7.y:3049 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -5800,7 +5828,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3024 + //line php7/php7.y:3059 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -5813,7 +5841,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3035 + //line php7/php7.y:3070 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -5825,7 +5853,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:3045 + //line php7/php7.y:3080 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].list, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].boolWithToken.value, yyDollar[3].str) @@ -5844,7 +5872,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:3062 + //line php7/php7.y:3097 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].list, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].boolWithToken.value, yyDollar[4].str) @@ -5864,38 +5892,38 @@ yydefault: } case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3083 + //line php7/php7.y:3118 { yyVAL.str = yylex.(*Parser).PhpDocComment yylex.(*Parser).PhpDocComment = "" } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3091 + //line php7/php7.y:3126 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3093 + //line php7/php7.y:3128 { yyVAL.boolWithToken = boolWithToken{true, yyDollar[1].token} } case 374: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3098 + //line php7/php7.y:3133 { yyVAL.list = []node.Node{} } case 375: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3100 + //line php7/php7.y:3135 { yyVAL.list = yyDollar[3].list } case 376: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3105 + //line php7/php7.y:3140 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5904,13 +5932,13 @@ yydefault: } case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3112 + //line php7/php7.y:3147 { yyVAL.list = []node.Node{yyDollar[1].node} } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3117 + //line php7/php7.y:3152 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -5926,7 +5954,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3131 + //line php7/php7.y:3166 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[2].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -5943,7 +5971,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3149 + //line php7/php7.y:3184 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -5952,7 +5980,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3156 + //line php7/php7.y:3191 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -5964,7 +5992,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3166 + //line php7/php7.y:3201 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -5976,7 +6004,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3176 + //line php7/php7.y:3211 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -5985,7 +6013,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3186 + //line php7/php7.y:3221 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5997,67 +6025,67 @@ yydefault: } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3196 + //line php7/php7.y:3231 { yyVAL.node = yyDollar[1].node } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3201 + //line php7/php7.y:3236 { yyVAL.node = yyDollar[1].node } case 387: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3203 + //line php7/php7.y:3238 { yyVAL.node = yyDollar[1].node } case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3208 + //line php7/php7.y:3243 { yyVAL.node = nil } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3210 + //line php7/php7.y:3245 { yyVAL.node = yyDollar[2].node } case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3215 + //line php7/php7.y:3250 { yyVAL.list = []node.Node{} } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3217 + //line php7/php7.y:3252 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} } case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3219 + //line php7/php7.y:3254 { yyVAL.list = yyDollar[1].list } case 393: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3224 + //line php7/php7.y:3259 { yyVAL.node = nil } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3226 + //line php7/php7.y:3261 { yyVAL.node = yyDollar[1].node } case 395: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3231 + //line php7/php7.y:3266 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6071,7 +6099,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3243 + //line php7/php7.y:3278 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6084,7 +6112,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3254 + //line php7/php7.y:3289 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6096,7 +6124,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3267 + //line php7/php7.y:3302 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -6108,7 +6136,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3277 + //line php7/php7.y:3312 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -6120,7 +6148,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3287 + //line php7/php7.y:3322 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6132,7 +6160,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3297 + //line php7/php7.y:3332 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6144,7 +6172,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3307 + //line php7/php7.y:3342 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6156,7 +6184,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3317 + //line php7/php7.y:3352 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6168,7 +6196,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3327 + //line php7/php7.y:3362 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6180,7 +6208,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3337 + //line php7/php7.y:3372 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6192,7 +6220,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3347 + //line php7/php7.y:3382 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6204,7 +6232,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3357 + //line php7/php7.y:3392 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6216,7 +6244,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3367 + //line php7/php7.y:3402 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -6230,7 +6258,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3379 + //line php7/php7.y:3414 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -6242,7 +6270,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3389 + //line php7/php7.y:3424 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -6254,7 +6282,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3399 + //line php7/php7.y:3434 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -6266,19 +6294,19 @@ yydefault: } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3409 + //line php7/php7.y:3444 { yyVAL.node = yyDollar[1].node } case 413: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3411 + //line php7/php7.y:3446 { yyVAL.node = yyDollar[1].node } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3416 + //line php7/php7.y:3451 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) @@ -6287,7 +6315,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3423 + //line php7/php7.y:3458 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -6302,7 +6330,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3436 + //line php7/php7.y:3471 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -6317,43 +6345,43 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3452 + //line php7/php7.y:3487 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3454 + //line php7/php7.y:3489 { yyVAL.node = yyDollar[1].node } case 419: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3459 + //line php7/php7.y:3494 { yyVAL.node = nil } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3461 + //line php7/php7.y:3496 { yyVAL.node = yyDollar[1].node } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3466 + //line php7/php7.y:3501 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3471 + //line php7/php7.y:3506 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3473 + //line php7/php7.y:3508 { yyVAL.node = yyDollar[2].node @@ -6363,19 +6391,19 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3481 + //line php7/php7.y:3516 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3486 + //line php7/php7.y:3521 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3488 + //line php7/php7.y:3523 { yyVAL.node = yyDollar[2].node @@ -6385,19 +6413,19 @@ yydefault: } case 427: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3496 + //line php7/php7.y:3531 { yyVAL.node = yyDollar[1].node } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3501 + //line php7/php7.y:3536 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3503 + //line php7/php7.y:3538 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6410,7 +6438,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3514 + //line php7/php7.y:3549 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6423,7 +6451,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3525 + //line php7/php7.y:3560 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6436,7 +6464,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3536 + //line php7/php7.y:3571 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6448,25 +6476,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3546 + //line php7/php7.y:3581 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3551 + //line php7/php7.y:3586 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3553 + //line php7/php7.y:3588 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3555 + //line php7/php7.y:3590 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6478,7 +6506,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3568 + //line php7/php7.y:3603 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yyVAL.node = expr.NewVariable(name) @@ -6492,7 +6520,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3580 + //line php7/php7.y:3615 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -6506,7 +6534,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3592 + //line php7/php7.y:3627 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -6518,7 +6546,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3605 + //line php7/php7.y:3640 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6530,7 +6558,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3615 + //line php7/php7.y:3650 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6542,13 +6570,13 @@ yydefault: } case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3628 + //line php7/php7.y:3663 { yyVAL.node = yyDollar[1].node } case 443: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3630 + //line php7/php7.y:3665 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6561,7 +6589,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3641 + //line php7/php7.y:3676 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6574,7 +6602,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3652 + //line php7/php7.y:3687 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6586,7 +6614,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3662 + //line php7/php7.y:3697 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6598,7 +6626,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3672 + //line php7/php7.y:3707 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6610,7 +6638,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3685 + //line php7/php7.y:3720 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6622,7 +6650,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3695 + //line php7/php7.y:3730 { yyVAL.node = yyDollar[2].node @@ -6632,13 +6660,13 @@ yydefault: } case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3703 + //line php7/php7.y:3738 { yyVAL.node = yyDollar[1].node } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3708 + //line php7/php7.y:3743 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6650,7 +6678,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3718 + //line php7/php7.y:3753 { yyVAL.node = yyDollar[2].node @@ -6660,13 +6688,13 @@ yydefault: } case 453: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3726 + //line php7/php7.y:3761 { yyVAL.node = yyDollar[1].node } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3731 + //line php7/php7.y:3766 { if yyDollar[1].list[len(yyDollar[1].list)-1] == nil { yyVAL.list = yyDollar[1].list[:len(yyDollar[1].list)-1] @@ -6676,19 +6704,19 @@ yydefault: } case 455: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3742 + //line php7/php7.y:3777 { yyVAL.node = nil } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3744 + //line php7/php7.y:3779 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3749 + //line php7/php7.y:3784 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6697,13 +6725,13 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3756 + //line php7/php7.y:3791 { yyVAL.list = []node.Node{yyDollar[1].node} } case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3761 + //line php7/php7.y:3796 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) @@ -6715,7 +6743,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3771 + //line php7/php7.y:3806 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) @@ -6724,7 +6752,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3778 + //line php7/php7.y:3813 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[4].node, true) @@ -6737,7 +6765,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3789 + //line php7/php7.y:3824 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[2].node, true) @@ -6749,7 +6777,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3799 + //line php7/php7.y:3834 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) @@ -6767,7 +6795,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3815 + //line php7/php7.y:3850 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) @@ -6784,13 +6812,13 @@ yydefault: } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3833 + //line php7/php7.y:3868 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3835 + //line php7/php7.y:3870 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -6803,13 +6831,13 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3846 + //line php7/php7.y:3881 { yyVAL.list = []node.Node{yyDollar[1].node} } case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3848 + //line php7/php7.y:3883 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -6822,7 +6850,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3862 + //line php7/php7.y:3897 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yyVAL.node = expr.NewVariable(name) @@ -6836,7 +6864,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3874 + //line php7/php7.y:3909 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -6854,7 +6882,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3890 + //line php7/php7.y:3925 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -6874,7 +6902,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3908 + //line php7/php7.y:3943 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -6887,7 +6915,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3919 + //line php7/php7.y:3954 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = expr.NewVariable(name) @@ -6903,7 +6931,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3933 + //line php7/php7.y:3968 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -6923,13 +6951,13 @@ yydefault: } case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3951 + //line php7/php7.y:3986 { yyVAL.node = yyDollar[2].node } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3957 + //line php7/php7.y:3992 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6941,7 +6969,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3967 + //line php7/php7.y:4002 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -6958,7 +6986,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3982 + //line php7/php7.y:4017 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -6989,7 +7017,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4011 + //line php7/php7.y:4046 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yyVAL.node = expr.NewVariable(identifier) @@ -7003,7 +7031,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:4026 + //line php7/php7.y:4061 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -7020,7 +7048,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4041 + //line php7/php7.y:4076 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -7034,7 +7062,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4053 + //line php7/php7.y:4088 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -7046,7 +7074,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4063 + //line php7/php7.y:4098 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -7058,7 +7086,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4073 + //line php7/php7.y:4108 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -7072,7 +7100,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4085 + //line php7/php7.y:4120 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -7084,7 +7112,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4095 + //line php7/php7.y:4130 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -7096,13 +7124,13 @@ yydefault: } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4108 + //line php7/php7.y:4143 { yyVAL.list = []node.Node{yyDollar[1].node} } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4110 + //line php7/php7.y:4145 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7111,7 +7139,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4120 + //line php7/php7.y:4155 { yyVAL.node = yyDollar[1].node } diff --git a/php7/php7.y b/php7/php7.y index b310cce..6e3285f 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -264,12 +264,13 @@ import ( %type isset_variable type return_type type_expr %type class_modifier %type argument_list ctor_arguments +%type trait_adaptations %type member_modifier %type use_type %type foreach_variable -%type method_body switch_case_list trait_adaptations +%type method_body switch_case_list %type encaps_list backticks_expr namespace_name catch_name_list catch_list class_const_list %type const_list echo_expr_list for_exprs non_empty_for_exprs global_var_list @@ -1864,10 +1865,20 @@ class_statement: } | T_USE name_list trait_adaptations { - $$ = stmt.NewTraitUse($2, $3.nodes) + var adaptationList *stmt.TraitAdaptationList + + switch n := $3.(type) { + case *stmt.TraitAdaptationList: + adaptationList = n + default: + adaptationList = nil + yylex.(*Parser).comments.AddFromChildNode($$, $3) + } + + $$ = stmt.NewTraitUse($2, adaptationList) // save position - yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3.endToken)) + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) @@ -1906,11 +1917,35 @@ name_list: trait_adaptations: ';' - { $$ = &nodesWithEndToken{nil, $1} } + { + $$ = stmt.NewNop() + + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + + // save comments + yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) + + } | '{' '}' - { $$ = &nodesWithEndToken{nil, $2} } + { + $$ = stmt.NewTraitAdaptationList(nil) + + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + + // save comments + yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.CloseCurlyBracesToken) + } | '{' trait_adaptation_list '}' - { $$ = &nodesWithEndToken{$2, $3} } + { + $$ = stmt.NewTraitAdaptationList($2) + + yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + + // save comments + yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + } ; trait_adaptation_list: diff --git a/php7/php7_test.go b/php7/php7_test.go index 0d0056a..fd1214e 100644 --- a/php7/php7_test.go +++ b/php7/php7_test.go @@ -1482,6 +1482,7 @@ func TestPhp7(t *testing.T) { }, }, }, + TraitAdaptationList: &stmt.TraitAdaptationList{}, }, }, }, @@ -1502,12 +1503,14 @@ func TestPhp7(t *testing.T) { }, }, }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Method: &node.Identifier{Value: "one"}, + }, + Alias: &node.Identifier{Value: "include"}, }, - Alias: &node.Identifier{Value: "include"}, }, }, }, @@ -1530,12 +1533,14 @@ func TestPhp7(t *testing.T) { }, }, }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Method: &node.Identifier{Value: "one"}, + }, + Modifier: &node.Identifier{Value: "public"}, }, - Modifier: &node.Identifier{Value: "public"}, }, }, }, @@ -1558,13 +1563,15 @@ func TestPhp7(t *testing.T) { }, }, }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "one"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Method: &node.Identifier{Value: "one"}, + }, + Modifier: &node.Identifier{Value: "public"}, + Alias: &node.Identifier{Value: "two"}, }, - Modifier: &node.Identifier{Value: "public"}, - Alias: &node.Identifier{Value: "two"}, }, }, }, @@ -1587,39 +1594,41 @@ func TestPhp7(t *testing.T) { }, }, }, - Adaptations: []node.Node{ - &stmt.TraitUsePrecedence{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUsePrecedence{ + Ref: &stmt.TraitMethodRef{ + Trait: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Bar"}, + }, }, + Method: &node.Identifier{Value: "one"}, }, - Method: &node.Identifier{Value: "one"}, - }, - Insteadof: []node.Node{ - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + Insteadof: []node.Node{ + &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Baz"}, + }, }, - }, - &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Quux"}, + &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Quux"}, + }, }, }, }, - }, - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Trait: &name.Name{ + Parts: []node.Node{ + &name.NamePart{Value: "Baz"}, + }, }, + Method: &node.Identifier{Value: "one"}, }, - Method: &node.Identifier{Value: "one"}, + Alias: &node.Identifier{Value: "two"}, }, - Alias: &node.Identifier{Value: "two"}, }, }, }, diff --git a/printer/printer.go b/printer/printer.go index b4ed6a8..3970430 100644 --- a/printer/printer.go +++ b/printer/printer.go @@ -2066,9 +2066,10 @@ func (p *Printer) printStmtTraitUse(n node.Node) { io.WriteString(p.w, "use ") p.joinPrint(", ", nn.Traits) - if nn.Adaptations != nil { + if nn.TraitAdaptationList != nil { + adaptations := nn.TraitAdaptationList.Adaptations io.WriteString(p.w, " {\n") - p.printNodes(nn.Adaptations) + p.printNodes(adaptations) io.WriteString(p.w, "\n") p.printIndent() io.WriteString(p.w, "}") diff --git a/printer/printer_test.go b/printer/printer_test.go index 4e32212..4a46f79 100644 --- a/printer/printer_test.go +++ b/printer/printer_test.go @@ -3789,13 +3789,15 @@ func TestPrintStmtTraitAdaptations(t *testing.T) { &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Method: &node.Identifier{Value: "a"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Trait: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, + Method: &node.Identifier{Value: "a"}, + }, + Alias: &node.Identifier{Value: "b"}, }, - Alias: &node.Identifier{Value: "b"}, }, }, }, diff --git a/visitor/namespace_resolver.go b/visitor/namespace_resolver.go index 18c3df5..056aff1 100644 --- a/visitor/namespace_resolver.go +++ b/visitor/namespace_resolver.go @@ -152,7 +152,7 @@ func (nsr *NamespaceResolver) EnterNode(w walker.Walkable) bool { nsr.ResolveName(t, "") } - for _, a := range n.Adaptations { + for _, a := range n.TraitAdaptationList.Adaptations { switch aa := a.(type) { case *stmt.TraitUsePrecedence: refTrait := aa.Ref.(*stmt.TraitMethodRef).Trait diff --git a/visitor/namespace_resolver_test.go b/visitor/namespace_resolver_test.go index b84a0c4..e9cbe65 100644 --- a/visitor/namespace_resolver_test.go +++ b/visitor/namespace_resolver_test.go @@ -43,8 +43,8 @@ func TestResolveStaticCall(t *testing.T) { }, }, &expr.StaticCall{ - Class: nameBC, - Call: &node.Identifier{Value: "foo"}, + Class: nameBC, + Call: &node.Identifier{Value: "foo"}, ArgumentList: &node.ArgumentList{}, }, }, @@ -134,7 +134,7 @@ func TestResolveNew(t *testing.T) { }, }, &expr.New{ - Class: nameBC, + Class: nameBC, ArgumentList: &node.ArgumentList{}, }, }, @@ -242,7 +242,7 @@ func TestResolveFunctionCall(t *testing.T) { }, }, &expr.FunctionCall{ - Function: nameB, + Function: nameB, ArgumentList: &node.ArgumentList{}, }, }, @@ -323,11 +323,11 @@ func TestResolveGroupUse(t *testing.T) { Constant: nameC, }, &expr.FunctionCall{ - Function: nameF, + Function: nameF, ArgumentList: &node.ArgumentList{}, }, &expr.FunctionCall{ - Function: nameE, + Function: nameE, ArgumentList: &node.ArgumentList{}, }, }, @@ -368,20 +368,22 @@ func TestResolveTraitUse(t *testing.T) { nameB, relativeNameB, }, - Adaptations: []node.Node{ - &stmt.TraitUsePrecedence{ - Ref: &stmt.TraitMethodRef{ - Trait: fullyQualifiedNameB, - Method: &node.Identifier{Value: "foo"}, + TraitAdaptationList: &stmt.TraitAdaptationList{ + Adaptations: []node.Node{ + &stmt.TraitUsePrecedence{ + Ref: &stmt.TraitMethodRef{ + Trait: fullyQualifiedNameB, + Method: &node.Identifier{Value: "foo"}, + }, + Insteadof: []node.Node{fullyQualifiedNameBC}, }, - Insteadof: []node.Node{fullyQualifiedNameBC}, - }, - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Trait: relativeNameBC, - Method: &node.Identifier{Value: "foo"}, + &stmt.TraitUseAlias{ + Ref: &stmt.TraitMethodRef{ + Trait: relativeNameBC, + Method: &node.Identifier{Value: "foo"}, + }, + Alias: &node.Identifier{Value: "bar"}, }, - Alias: &node.Identifier{Value: "bar"}, }, }, }, @@ -658,8 +660,8 @@ func TestResolveNamespaces(t *testing.T) { }, }, &expr.StaticCall{ - Class: nameFG, - Call: &node.Identifier{Value: "foo"}, + Class: nameFG, + Call: &node.Identifier{Value: "foo"}, ArgumentList: &node.ArgumentList{}, }, &stmt.Namespace{ @@ -676,13 +678,13 @@ func TestResolveNamespaces(t *testing.T) { }, }, &expr.StaticCall{ - Class: relativeNameCE, - Call: &node.Identifier{Value: "foo"}, + Class: relativeNameCE, + Call: &node.Identifier{Value: "foo"}, ArgumentList: &node.ArgumentList{}, }, &expr.StaticCall{ - Class: nameCF, - Call: &node.Identifier{Value: "foo"}, + Class: nameCF, + Call: &node.Identifier{Value: "foo"}, ArgumentList: &node.ArgumentList{}, }, }, @@ -708,8 +710,8 @@ func TestResolveStaticCallDinamicClassName(t *testing.T) { ast := &stmt.StmtList{ Stmts: []node.Node{ &expr.StaticCall{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Call: &node.Identifier{Value: "foo"}, + Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, + Call: &node.Identifier{Value: "foo"}, ArgumentList: &node.ArgumentList{}, }, },