diff --git a/errors/error.go b/errors/error.go index f0f05e0..850856d 100644 --- a/errors/error.go +++ b/errors/error.go @@ -17,7 +17,7 @@ type Error struct { func NewError(msg string, t *scanner.Token) *Error { return &Error{ Msg: msg, - Pos: t.Position(), + Pos: t.Position, } } diff --git a/errors/error_test.go b/errors/error_test.go index 37e62d4..d2e0484 100644 --- a/errors/error_test.go +++ b/errors/error_test.go @@ -27,7 +27,10 @@ func assertEqual(t *testing.T, expected interface{}, actual interface{}) { func TestConstructor(t *testing.T) { pos := position.NewPosition(1, 2, 3, 4) - token := scanner.NewToken(`test`, pos) + token := &scanner.Token{ + Value: `test`, + Position: pos, + } actual := errors.NewError("message", token) @@ -41,7 +44,10 @@ func TestConstructor(t *testing.T) { func TestPrint(t *testing.T) { pos := position.NewPosition(1, 2, 3, 4) - token := scanner.NewToken(`test`, pos) + token := &scanner.Token{ + Value: `test`, + Position: pos, + } Error := errors.NewError("message", token) diff --git a/parser/comments.go b/parser/comments.go index 070d04a..d030cd5 100644 --- a/parser/comments.go +++ b/parser/comments.go @@ -15,7 +15,7 @@ func (c Comments) AddComments(node node.Node, comments []*comment.Comment) { } func (c Comments) AddFromToken(node node.Node, token *scanner.Token, tokenName comment.TokenName) { - comments := token.Comments() + comments := token.Comments for _, cmt := range comments { cmt.SetTokenName(tokenName) diff --git a/parser/position_builder.go b/parser/position_builder.go index 9b196b9..f528e20 100644 --- a/parser/position_builder.go +++ b/parser/position_builder.go @@ -101,25 +101,25 @@ func (b *PositionBuilder) NewNodePosition(n node.Node) *position.Position { // NewTokenPosition returns new Position func (b *PositionBuilder) NewTokenPosition(t *scanner.Token) *position.Position { - return t.Position() + return t.Position } // NewTokensPosition returns new Position func (b *PositionBuilder) NewTokensPosition(startToken *scanner.Token, endToken *scanner.Token) *position.Position { return position.NewPosition( - startToken.Position().StartLine, - endToken.Position().EndLine, - startToken.Position().StartPos, - endToken.Position().EndPos, + startToken.Position.StartLine, + endToken.Position.EndLine, + startToken.Position.StartPos, + endToken.Position.EndPos, ) } // NewTokenNodePosition returns new Position func (b *PositionBuilder) NewTokenNodePosition(t *scanner.Token, n node.Node) *position.Position { return position.NewPosition( - t.Position().StartLine, + t.Position.StartLine, b.getNodeEndPos(n).endLine, - t.Position().StartPos, + t.Position.StartPos, b.getNodeEndPos(n).endPos, ) } @@ -128,9 +128,9 @@ func (b *PositionBuilder) NewTokenNodePosition(t *scanner.Token, n node.Node) *p func (b *PositionBuilder) NewNodeTokenPosition(n node.Node, t *scanner.Token) *position.Position { return position.NewPosition( b.getNodeStartPos(n).startLine, - t.Position().EndLine, + t.Position.EndLine, b.getNodeStartPos(n).startPos, - t.Position().EndPos, + t.Position.EndPos, ) } @@ -148,18 +148,18 @@ func (b *PositionBuilder) NewNodesPosition(startNode node.Node, endNode node.Nod func (b *PositionBuilder) NewNodeListTokenPosition(list []node.Node, t *scanner.Token) *position.Position { return position.NewPosition( b.getListStartPos(list).startLine, - t.Position().EndLine, + t.Position.EndLine, b.getListStartPos(list).startPos, - t.Position().EndPos, + t.Position.EndPos, ) } // NewTokenNodeListPosition returns new Position func (b *PositionBuilder) NewTokenNodeListPosition(t *scanner.Token, list []node.Node) *position.Position { return position.NewPosition( - t.Position().StartLine, + t.Position.StartLine, b.getListEndPos(list).endLine, - t.Position().StartPos, + t.Position.StartPos, b.getListEndPos(list).endPos, ) } @@ -188,17 +188,17 @@ func (b *PositionBuilder) NewNodeListNodePosition(list []node.Node, n node.Node) func (b *PositionBuilder) NewOptionalListTokensPosition(list []node.Node, t *scanner.Token, endToken *scanner.Token) *position.Position { if list == nil { return position.NewPosition( - t.Position().StartLine, - endToken.Position().EndLine, - t.Position().StartPos, - endToken.Position().EndPos, + t.Position.StartLine, + endToken.Position.EndLine, + t.Position.StartPos, + endToken.Position.EndPos, ) } return position.NewPosition( b.getListStartPos(list).startLine, - endToken.Position().EndLine, + endToken.Position.EndLine, b.getListStartPos(list).startPos, - endToken.Position().EndPos, + endToken.Position.EndPos, ) } diff --git a/parser/position_builder_test.go b/parser/position_builder_test.go index 4b11c3a..3545773 100644 --- a/parser/position_builder_test.go +++ b/parser/position_builder_test.go @@ -14,7 +14,10 @@ func TestNewTokenPosition(t *testing.T) { builder := parser.PositionBuilder{} tpos := position.NewPosition(1, 1, 0, 3) - tkn := scanner.NewToken(`foo`, tpos) + tkn := &scanner.Token{ + Value: `foo`, + Position: tpos, + } pos := builder.NewTokenPosition(tkn) @@ -27,9 +30,15 @@ func TestNewTokensPosition(t *testing.T) { builder := parser.PositionBuilder{} tpos1 := position.NewPosition(1, 1, 0, 3) - token1 := scanner.NewToken(`foo`, tpos1) + token1 := &scanner.Token{ + Value: `foo`, + Position: tpos1, + } tpos2 := position.NewPosition(2, 2, 4, 6) - token2 := scanner.NewToken(`foo`, tpos2) + token2 := &scanner.Token{ + Value: `foo`, + Position: tpos2, + } pos := builder.NewTokensPosition(token1, token2) @@ -62,7 +71,10 @@ func TestNewNodePosition(t *testing.T) { func TestNewTokenNodePosition(t *testing.T) { tpos := position.NewPosition(1, 1, 0, 3) - tkn := scanner.NewToken(`foo`, tpos) + tkn := &scanner.Token{ + Value: `foo`, + Position: tpos, + } n := node.NewIdentifier("test node") p := &parser.Positions{} @@ -87,7 +99,10 @@ func TestNewTokenNodePosition(t *testing.T) { func TestNewNodeTokenPosition(t *testing.T) { n := node.NewIdentifier("test node") tpos := position.NewPosition(2, 2, 10, 12) - tkn := scanner.NewToken(`foo`, tpos) + tkn := &scanner.Token{ + Value: `foo`, + Position: tpos, + } p := &parser.Positions{} p.AddPosition(n, &position.Position{ @@ -168,7 +183,10 @@ func TestNewNodeListTokenPosition(t *testing.T) { n1 := node.NewIdentifier("test node") n2 := node.NewIdentifier("test node") tpos := position.NewPosition(3, 3, 20, 22) - tkn := scanner.NewToken(`foo`, tpos) + tkn := &scanner.Token{ + Value: `foo`, + Position: tpos, + } builder := parser.PositionBuilder{ Positions: &parser.Positions{ @@ -196,7 +214,10 @@ func TestNewNodeListTokenPosition(t *testing.T) { func TestNewTokenNodeListPosition(t *testing.T) { tpos := position.NewPosition(1, 1, 0, 2) - tkn := scanner.NewToken(`foo`, tpos) + tkn := &scanner.Token{ + Value: `foo`, + Position: tpos, + } n1 := node.NewIdentifier("test node") n2 := node.NewIdentifier("test node") @@ -298,9 +319,15 @@ func TestNewOptionalListTokensPosition(t *testing.T) { builder := parser.PositionBuilder{} tpos1 := position.NewPosition(1, 1, 0, 3) - token1 := scanner.NewToken(`foo`, tpos1) + token1 := &scanner.Token{ + Value: `foo`, + Position: tpos1, + } tpos2 := position.NewPosition(2, 2, 4, 6) - token2 := scanner.NewToken(`foo`, tpos2) + token2 := &scanner.Token{ + Value: `foo`, + Position: tpos2, + } pos := builder.NewOptionalListTokensPosition(nil, token1, token2) @@ -338,9 +365,15 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { } tpos1 := position.NewPosition(4, 4, 27, 29) - token1 := scanner.NewToken(`foo`, tpos1) + token1 := &scanner.Token{ + Value: `foo`, + Position: tpos1, + } tpos2 := position.NewPosition(5, 5, 30, 32) - token2 := scanner.NewToken(`foo`, tpos2) + token2 := &scanner.Token{ + Value: `foo`, + Position: tpos2, + } pos := builder.NewOptionalListTokensPosition([]node.Node{n2, n3}, token1, token2) @@ -382,11 +415,14 @@ func TestNilNodeListPos(t *testing.T) { func TestNilNodeListTokenPos(t *testing.T) { tpos := position.NewPosition(1, 1, 0, 3) - token1 := scanner.NewToken(`foo`, tpos) + token := &scanner.Token{ + Value: `foo`, + Position: tpos, + } builder := parser.PositionBuilder{} - pos := builder.NewNodeListTokenPosition(nil, token1) + pos := builder.NewNodeListTokenPosition(nil, token) if pos.String() != `Pos{Line: -1-1 Pos: -1-3}` { t.Errorf("token value is not equal\n") @@ -416,11 +452,14 @@ func TestEmptyNodeListPos(t *testing.T) { func TestEmptyNodeListTokenPos(t *testing.T) { tpos := position.NewPosition(1, 1, 0, 3) - token1 := scanner.NewToken(`foo`, tpos) + token := &scanner.Token{ + Value: `foo`, + Position: tpos, + } builder := parser.PositionBuilder{} - pos := builder.NewNodeListTokenPosition([]node.Node{}, token1) + pos := builder.NewNodeListTokenPosition([]node.Node{}, token) if pos.String() != `Pos{Line: -1-1 Pos: -1-3}` { t.Errorf("token value is not equal\n") diff --git a/php5/parser.go b/php5/parser.go index ab3d6d7..57de209 100644 --- a/php5/parser.go +++ b/php5/parser.go @@ -117,3 +117,13 @@ func firstNode(nn []node.Node) node.Node { func isDollar(r rune) bool { return r == '$' } + +func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { + for i := 1; i < len(yyDollar); i++ { + if yyDollar[i].token != nil { + p.TokenPool.Put(yyDollar[i].token) + } + yyDollar[i].token = nil + } + yyVAL.token = nil +} diff --git a/php5/php5.go b/php5/php5.go index 10a37fe..79eac1b 100644 --- a/php5/php5.go +++ b/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php5/php5.y:5484 +//line php5/php5.y:6782 type simpleIndirectReference struct { all []*expr.Variable @@ -2330,24 +2330,30 @@ yydefault: { yylex.(*Parser).rootNode = node.NewRoot(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 2: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:289 + //line php5/php5.y:291 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 3: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:294 + //line php5/php5.y:299 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:299 + //line php5/php5.y:308 { namePart := name.NewNamePart(yyDollar[1].token.Value) yyVAL.list = []node.Node{namePart} @@ -2357,10 +2363,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(namePart, yyDollar[1].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 5: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:310 + //line php5/php5.y:321 { namePart := name.NewNamePart(yyDollar[3].token.Value) yyVAL.list = append(yyDollar[1].list, namePart) @@ -2371,35 +2379,45 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.NsSeparatorToken) yylex.(*Parser).comments.AddFromToken(namePart, yyDollar[3].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:325 + //line php5/php5.y:338 { // error yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:330 + //line php5/php5.y:345 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:332 + //line php5/php5.y:351 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:334 + //line php5/php5.y:357 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 10: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:336 + //line php5/php5.y:363 { yyVAL.node = stmt.NewHaltCompiler() @@ -2411,10 +2429,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 11: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:349 + //line php5/php5.y:378 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2426,10 +2446,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 12: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:362 + //line php5/php5.y:393 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2442,10 +2464,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 13: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:376 + //line php5/php5.y:409 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2456,10 +2480,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 14: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:388 + //line php5/php5.y:423 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2469,10 +2495,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 15: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:399 + //line php5/php5.y:436 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2485,10 +2513,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) yylex.(*Parser).comments.AddFromToken(useType, yyDollar[2].token, comment.UseToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 16: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:413 + //line php5/php5.y:452 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2501,10 +2531,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) yylex.(*Parser).comments.AddFromToken(useType, yyDollar[2].token, comment.UseToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 17: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:427 + //line php5/php5.y:468 { yyVAL.node = yyDollar[1].node @@ -2513,25 +2545,31 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 18: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:440 + //line php5/php5.y:483 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:447 + //line php5/php5.y:492 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:452 + //line php5/php5.y:501 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2539,10 +2577,12 @@ yydefault: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 21: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:461 + //line php5/php5.y:512 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2556,10 +2596,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, yyDollar[3].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 22: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:476 + //line php5/php5.y:529 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2570,85 +2612,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:488 - { - name := name.NewName(yyDollar[2].list) - alias := node.NewIdentifier(yyDollar[4].token.Value) - yyVAL.node = stmt.NewUse(nil, name, alias) - - // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) - - // save comments - yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) - yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.AsToken) - yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.StringToken) - } - case 24: - yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:507 - { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) - - // save comments - yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) - } - case 25: - yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:514 - { - yyVAL.list = []node.Node{yyDollar[1].node} - } - case 26: - yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:519 - { - name := name.NewName(yyDollar[1].list) - yyVAL.node = stmt.NewUse(nil, name, nil) - - // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - } - case 27: - yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:528 - { - name := name.NewName(yyDollar[1].list) - alias := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewUse(nil, name, alias) - - // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) - - // save comments - yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) - yylex.(*Parser).comments.AddFromToken(alias, yyDollar[3].token, comment.StringToken) - } - case 28: - yyDollar = yyS[yypt-2 : yypt+1] //line php5/php5.y:543 - { - name := name.NewName(yyDollar[2].list) - yyVAL.node = stmt.NewUse(nil, name, nil) - - // save position - yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - - // save comments - yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) - } - case 29: - yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:555 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2663,25 +2632,31 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 30: + case 24: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:574 + //line php5/php5.y:564 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 31: + case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:581 + //line php5/php5.y:573 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 32: + case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:586 + //line php5/php5.y:582 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2689,10 +2664,12 @@ yydefault: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 33: + case 27: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:595 + //line php5/php5.y:593 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2706,8 +2683,10 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, yyDollar[3].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 34: + case 28: yyDollar = yyS[yypt-2 : yypt+1] //line php5/php5.y:610 { @@ -2720,10 +2699,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 35: + case 29: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:622 + //line php5/php5.y:624 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2738,10 +2719,99 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 30: + yyDollar = yyS[yypt-3 : yypt+1] + //line php5/php5.y:645 + { + yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + + // save comments + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 31: + yyDollar = yyS[yypt-1 : yypt+1] + //line php5/php5.y:654 + { + yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 32: + yyDollar = yyS[yypt-1 : yypt+1] + //line php5/php5.y:663 + { + name := name.NewName(yyDollar[1].list) + yyVAL.node = stmt.NewUse(nil, name, nil) + + // save position + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 33: + yyDollar = yyS[yypt-3 : yypt+1] + //line php5/php5.y:674 + { + name := name.NewName(yyDollar[1].list) + alias := node.NewIdentifier(yyDollar[3].token.Value) + yyVAL.node = stmt.NewUse(nil, name, alias) + + // save position + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + + // save comments + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(alias, yyDollar[3].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 34: + yyDollar = yyS[yypt-2 : yypt+1] + //line php5/php5.y:691 + { + name := name.NewName(yyDollar[2].list) + yyVAL.node = stmt.NewUse(nil, name, nil) + + // save position + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + + // save comments + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 35: + yyDollar = yyS[yypt-4 : yypt+1] + //line php5/php5.y:705 + { + name := name.NewName(yyDollar[2].list) + alias := node.NewIdentifier(yyDollar[4].token.Value) + yyVAL.node = stmt.NewUse(nil, name, alias) + + // save position + yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) + + // save comments + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 36: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:641 + //line php5/php5.y:726 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -2758,10 +2828,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(lastNode(constList.Consts), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(name, yyDollar[3].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(constant, yyDollar[4].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 37: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:659 + //line php5/php5.y:746 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -2777,49 +2849,63 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstToken) yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(constant, yyDollar[3].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 38: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:679 + //line php5/php5.y:768 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 39: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:685 + //line php5/php5.y:776 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:691 + //line php5/php5.y:786 { // error yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:696 + //line php5/php5.y:793 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:698 + //line php5/php5.y:799 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:700 + //line php5/php5.y:805 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 44: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:702 + //line php5/php5.y:811 { yyVAL.node = stmt.NewHaltCompiler() @@ -2831,16 +2917,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:719 + //line php5/php5.y:830 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 46: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:721 + //line php5/php5.y:836 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -2852,10 +2942,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(label, yyDollar[1].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 47: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:737 + //line php5/php5.y:854 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -2865,10 +2957,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 48: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:748 + //line php5/php5.y:867 { yyVAL.node = stmt.NewIf(yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node) @@ -2883,10 +2977,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IfToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 49: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:764 + //line php5/php5.y:885 { stmts := stmt.NewStmtList(yyDollar[4].list) yyVAL.node = stmt.NewAltIf(yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node) @@ -2900,10 +2996,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.EndifToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 50: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:779 + //line php5/php5.y:902 { switch n := yyDollar[3].node.(type) { case *stmt.While: @@ -2919,10 +3017,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.WhileToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 51: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:796 + //line php5/php5.y:921 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) @@ -2933,10 +3033,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.WhileToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 52: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:808 + //line php5/php5.y:935 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -2960,10 +3062,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.ForInitSemicolonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.ForCondSemicolonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 53: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:833 + //line php5/php5.y:962 { switch n := yyDollar[3].node.(type) { case *stmt.Switch: @@ -2981,10 +3085,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SwitchToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:852 + //line php5/php5.y:983 { yyVAL.node = stmt.NewBreak(nil) @@ -2994,10 +3100,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BreakToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 55: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:863 + //line php5/php5.y:996 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3007,10 +3115,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BreakToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:874 + //line php5/php5.y:1009 { yyVAL.node = stmt.NewContinue(nil) @@ -3020,10 +3130,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ContinueToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 57: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:885 + //line php5/php5.y:1022 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3033,10 +3145,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ContinueToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 58: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:896 + //line php5/php5.y:1035 { yyVAL.node = stmt.NewReturn(nil) @@ -3046,10 +3160,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ReturnToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 59: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:907 + //line php5/php5.y:1048 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3059,10 +3175,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ReturnToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 60: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:918 + //line php5/php5.y:1061 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3072,10 +3190,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ReturnToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:929 + //line php5/php5.y:1074 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3084,10 +3204,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 62: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:939 + //line php5/php5.y:1086 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3097,10 +3219,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.GlobalToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 63: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:950 + //line php5/php5.y:1099 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3110,10 +3234,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 64: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:961 + //line php5/php5.y:1112 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3123,10 +3249,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EchoToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:972 + //line php5/php5.y:1125 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3135,10 +3263,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.InlineHTMLToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 66: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:982 + //line php5/php5.y:1137 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3147,10 +3277,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:992 + //line php5/php5.y:1149 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3162,10 +3294,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 68: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1005 + //line php5/php5.y:1164 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3199,10 +3333,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 69: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1040 + //line php5/php5.y:1201 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3236,10 +3372,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 70: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1075 + //line php5/php5.y:1238 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) @@ -3250,10 +3388,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DeclareToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1087 + //line php5/php5.y:1252 { yyVAL.node = stmt.NewNop() @@ -3262,10 +3402,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 72: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1097 + //line php5/php5.y:1264 { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3280,10 +3422,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TryToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1113 + //line php5/php5.y:1282 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3293,10 +3437,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ThrowToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1124 + //line php5/php5.y:1295 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3309,16 +3455,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.GotoToken) yylex.(*Parser).comments.AddFromToken(label, yyDollar[2].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 75: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1141 + //line php5/php5.y:1314 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 76: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1143 + //line php5/php5.y:1320 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3337,16 +3487,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(catch, yyDollar[5].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(catch, yyDollar[6].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(catch, yyDollar[8].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1165 + //line php5/php5.y:1345 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1167 + //line php5/php5.y:1351 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3357,34 +3511,44 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinallyToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1182 + //line php5/php5.y:1368 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1184 + //line php5/php5.y:1374 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1189 + //line php5/php5.y:1383 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1191 + //line php5/php5.y:1389 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1196 + //line php5/php5.y:1398 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3402,67 +3566,79 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1218 + //line php5/php5.y:1422 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1220 + //line php5/php5.y:1428 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1230 + //line php5/php5.y:1440 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1235 + //line php5/php5.y:1449 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1240 + //line php5/php5.y:1458 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 89: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1245 + //line php5/php5.y:1467 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1247 + //line php5/php5.y:1471 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1252 + //line php5/php5.y:1478 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1254 + //line php5/php5.y:1482 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1259 + //line php5/php5.y:1489 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[5].list, nil, yyDollar[8].list, "") @@ -3481,10 +3657,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[9].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 94: yyDollar = yyS[yypt-7 : yypt+1] - //line php5/php5.y:1282 + //line php5/php5.y:1514 { name := node.NewIdentifier(yyDollar[2].token.Value) switch n := yyDollar[1].node.(type) { @@ -3509,10 +3687,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 95: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1308 + //line php5/php5.y:1542 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[5].list, "") @@ -3525,10 +3705,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1326 + //line php5/php5.y:1562 { yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") @@ -3537,10 +3719,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1336 + //line php5/php5.y:1574 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3552,10 +3736,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(classModifier, yyDollar[1].token, comment.AbstractToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ClassToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1349 + //line php5/php5.y:1589 { yyVAL.node = stmt.NewTrait(nil, nil, "") @@ -3564,10 +3750,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TraitToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1359 + //line php5/php5.y:1601 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3579,16 +3767,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(classModifier, yyDollar[1].token, comment.FinalToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ClassToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 100: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1375 + //line php5/php5.y:1619 { yyVAL.ClassExtends = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1377 + //line php5/php5.y:1625 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3597,22 +3789,26 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.ClassExtends, yyDollar[1].token, comment.ExtendsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1390 + //line php5/php5.y:1640 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1395 + //line php5/php5.y:1647 { yyVAL.InterfaceExtends = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1397 + //line php5/php5.y:1653 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3621,16 +3817,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.InterfaceExtends, yyDollar[1].token, comment.ExtendsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 105: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1410 + //line php5/php5.y:1668 { yyVAL.ClassImplements = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1412 + //line php5/php5.y:1674 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3639,46 +3839,58 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.ClassImplements, yyDollar[1].token, comment.ImplementsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1425 + //line php5/php5.y:1689 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1427 + //line php5/php5.y:1695 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 109: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1437 + //line php5/php5.y:1707 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 110: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1439 + //line php5/php5.y:1713 { yyVAL.node = yyDollar[2].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1449 + //line php5/php5.y:1725 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1451 + //line php5/php5.y:1731 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -3687,10 +3899,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 113: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1461 + //line php5/php5.y:1743 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -3701,19 +3915,23 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ListToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1476 + //line php5/php5.y:1760 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 115: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1483 + //line php5/php5.y:1769 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -3726,19 +3944,23 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EndforToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1500 + //line php5/php5.y:1788 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 117: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1507 + //line php5/php5.y:1797 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -3751,16 +3973,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EndforeachToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1525 + //line php5/php5.y:1817 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 119: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1527 + //line php5/php5.y:1823 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3771,10 +3997,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EnddeclareToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1543 + //line php5/php5.y:1841 { name := node.NewIdentifier(yyDollar[1].token.Value) constant := stmt.NewConstant(name, yyDollar[3].node, "") @@ -3787,10 +4015,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(constant, yyDollar[2].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 121: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1557 + //line php5/php5.y:1857 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -3804,10 +4034,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(name, yyDollar[3].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(constant, yyDollar[4].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1576 + //line php5/php5.y:1878 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -3819,10 +4051,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1589 + //line php5/php5.y:1893 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -3835,10 +4069,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[2].token, comment.SemiColonToken) yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1603 + //line php5/php5.y:1909 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -3851,10 +4087,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[3].token, comment.EndswitchToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1617 + //line php5/php5.y:1925 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -3869,16 +4107,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[2].token, comment.SemiColonToken) yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[4].token, comment.EndswitchToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 126: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1637 + //line php5/php5.y:1947 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 127: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1639 + //line php5/php5.y:1953 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -3889,10 +4131,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(_case, yyDollar[2].token, comment.CaseToken) yylex.(*Parser).comments.AddFromToken(_case, yyDollar[4].token, comment.CaseSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1651 + //line php5/php5.y:1967 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -3903,31 +4147,35 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(_default, yyDollar[2].token, comment.DefaultToken) yylex.(*Parser).comments.AddFromToken(_default, yyDollar[3].token, comment.CaseSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1667 + //line php5/php5.y:1985 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1669 + //line php5/php5.y:1989 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1675 + //line php5/php5.y:1997 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1682 + //line php5/php5.y:2006 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -3940,16 +4188,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EndwhileToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1701 + //line php5/php5.y:2027 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 134: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1703 + //line php5/php5.y:2033 { _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -3959,16 +4211,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[2].token, comment.ElseifToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 135: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1718 + //line php5/php5.y:2050 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1720 + //line php5/php5.y:2056 { stmts := stmt.NewStmtList(yyDollar[5].list) _elseIf := stmt.NewAltElseIf(yyDollar[3].node, stmts) @@ -3981,16 +4237,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[2].token, comment.ElseifToken) yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[4].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1738 + //line php5/php5.y:2076 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 138: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1740 + //line php5/php5.y:2082 { yyVAL.node = stmt.NewElse(yyDollar[2].node) @@ -3999,16 +4259,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ElseToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1754 + //line php5/php5.y:2098 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1756 + //line php5/php5.y:2104 { stmts := stmt.NewStmtList(yyDollar[3].list) yyVAL.node = stmt.NewAltElse(stmts) @@ -4020,37 +4284,47 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ElseToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1773 + //line php5/php5.y:2123 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 142: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1775 + //line php5/php5.y:2129 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1780 + //line php5/php5.y:2138 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1782 + //line php5/php5.y:2144 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1792 + //line php5/php5.y:2156 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4077,10 +4351,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EllipsisToken) } yylex.(*Parser).comments.AddFromToken(variable, yyDollar[4].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1820 + //line php5/php5.y:2186 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4108,16 +4384,20 @@ yydefault: } yylex.(*Parser).comments.AddFromToken(variable, yyDollar[4].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1853 + //line php5/php5.y:2221 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1855 + //line php5/php5.y:2227 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4126,10 +4406,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 149: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1865 + //line php5/php5.y:2239 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4138,16 +4420,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CallableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1875 + //line php5/php5.y:2251 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1881 + //line php5/php5.y:2261 { yyVAL.node = node.NewArgumentList(nil) @@ -4157,10 +4443,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1892 + //line php5/php5.y:2274 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4170,10 +4458,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1903 + //line php5/php5.y:2287 { arg := node.NewArgument(yyDollar[2].node, false, false) yyVAL.node = node.NewArgumentList([]node.Node{arg}) @@ -4185,43 +4475,53 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1920 + //line php5/php5.y:2306 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1922 + //line php5/php5.y:2312 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1932 + //line php5/php5.y:2324 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1939 + //line php5/php5.y:2333 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1946 + //line php5/php5.y:2342 { yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) @@ -4230,10 +4530,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1956 + //line php5/php5.y:2354 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4242,25 +4544,31 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EllipsisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1969 + //line php5/php5.y:2369 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1976 + //line php5/php5.y:2378 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1982 + //line php5/php5.y:2388 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -4271,10 +4579,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1994 + //line php5/php5.y:2402 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -4283,10 +4593,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2004 + //line php5/php5.y:2414 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -4297,10 +4609,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2020 + //line php5/php5.y:2432 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4315,10 +4629,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(variable, yyDollar[3].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2036 + //line php5/php5.y:2450 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4334,10 +4650,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(variable, yyDollar[3].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(staticVar, yyDollar[4].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2053 + //line php5/php5.y:2469 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4351,10 +4669,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2068 + //line php5/php5.y:2486 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4369,22 +4689,28 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(staticVar, yyDollar[2].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2088 + //line php5/php5.y:2508 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2090 + //line php5/php5.y:2514 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2096 + //line php5/php5.y:2524 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4393,10 +4719,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2106 + //line php5/php5.y:2536 { yyVAL.node = yyDollar[1].node @@ -4405,16 +4733,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2116 + //line php5/php5.y:2548 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:2120 + //line php5/php5.y:2554 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[6].list, nil, yyDollar[8].node, "") @@ -4435,10 +4767,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(name, yyDollar[4].token, comment.IdentifierToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2145 + //line php5/php5.y:2581 { var adaptationList *stmt.TraitAdaptationList switch n := yyDollar[3].node.(type) { @@ -4454,25 +4788,31 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2165 + //line php5/php5.y:2603 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2167 + //line php5/php5.y:2609 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2177 + //line php5/php5.y:2621 { yyVAL.node = stmt.NewNop() @@ -4481,10 +4821,11 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2187 + //line php5/php5.y:2633 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4493,52 +4834,66 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2200 + //line php5/php5.y:2648 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2202 + //line php5/php5.y:2654 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2207 + //line php5/php5.y:2663 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2209 + //line php5/php5.y:2669 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2214 + //line php5/php5.y:2678 { yyVAL.node = yyDollar[1].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2221 + //line php5/php5.y:2687 { yyVAL.node = yyDollar[1].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2231 + //line php5/php5.y:2699 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4547,25 +4902,31 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.InsteadofToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2244 + //line php5/php5.y:2714 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2246 + //line php5/php5.y:2720 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2256 + //line php5/php5.y:2732 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -4576,16 +4937,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2268 + //line php5/php5.y:2746 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2273 + //line php5/php5.y:2755 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -4597,10 +4962,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) yylex.(*Parser).comments.AddFromToken(target, yyDollar[3].token, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2289 + //line php5/php5.y:2773 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -4612,10 +4979,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, yyDollar[4].token, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2302 + //line php5/php5.y:2788 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -4624,22 +4993,28 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2315 + //line php5/php5.y:2803 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2317 + //line php5/php5.y:2809 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2322 + //line php5/php5.y:2818 { yyVAL.node = stmt.NewNop() @@ -4648,10 +5023,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2332 + //line php5/php5.y:2830 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -4661,16 +5038,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2346 + //line php5/php5.y:2846 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2348 + //line php5/php5.y:2852 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -4680,34 +5061,44 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(modifier, yyDollar[1].token, comment.VarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2362 + //line php5/php5.y:2868 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2364 + //line php5/php5.y:2874 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2369 + //line php5/php5.y:2883 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2371 + //line php5/php5.y:2889 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2376 + //line php5/php5.y:2898 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4716,10 +5107,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PublicToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2386 + //line php5/php5.y:2910 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4728,10 +5121,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ProtectedToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2396 + //line php5/php5.y:2922 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4740,10 +5135,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PrivateToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2406 + //line php5/php5.y:2934 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4752,10 +5149,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 208: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2416 + //line php5/php5.y:2946 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4764,10 +5163,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AbstractToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2426 + //line php5/php5.y:2958 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4776,10 +5177,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2439 + //line php5/php5.y:2973 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4794,10 +5197,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(variable, yyDollar[3].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2455 + //line php5/php5.y:2991 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4813,10 +5218,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(variable, yyDollar[3].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(property, yyDollar[4].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2472 + //line php5/php5.y:3010 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4830,10 +5237,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2487 + //line php5/php5.y:3027 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4848,10 +5257,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(property, yyDollar[2].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2506 + //line php5/php5.y:3048 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -4868,10 +5279,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(lastNode(constList.Consts), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(name, yyDollar[3].token, comment.IdentifierToken) yylex.(*Parser).comments.AddFromToken(constant, yyDollar[4].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2524 + //line php5/php5.y:3068 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -4886,64 +5299,82 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstToken) yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.IdentifierToken) yylex.(*Parser).comments.AddFromToken(constant, yyDollar[3].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2543 + //line php5/php5.y:3089 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2550 + //line php5/php5.y:3098 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2556 + //line php5/php5.y:3108 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2558 + //line php5/php5.y:3114 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2563 + //line php5/php5.y:3123 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2570 + //line php5/php5.y:3132 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2575 + //line php5/php5.y:3141 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2577 + //line php5/php5.y:3147 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2582 + //line php5/php5.y:3156 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -4954,10 +5385,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2594 + //line php5/php5.y:3170 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) yyVAL.list = []node.Node{fetch} @@ -4968,40 +5401,52 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[1].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[3].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2609 + //line php5/php5.y:3187 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2611 + //line php5/php5.y:3193 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2613 + //line php5/php5.y:3199 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2618 + //line php5/php5.y:3208 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2620 + //line php5/php5.y:3214 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2625 + //line php5/php5.y:3223 { if yyDollar[3].node != nil { @@ -5014,10 +5459,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NewToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:2642 + //line php5/php5.y:3242 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5031,10 +5478,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(list, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(list, yyDollar[4].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2657 + //line php5/php5.y:3259 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5043,10 +5492,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2667 + //line php5/php5.y:3271 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5056,10 +5507,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:2678 + //line php5/php5.y:3284 { var _new *expr.New @@ -5082,10 +5535,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.AmpersandToken) yylex.(*Parser).comments.AddFromToken(_new, yyDollar[4].token, comment.NewToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2702 + //line php5/php5.y:3310 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5094,10 +5549,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CloneToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2712 + //line php5/php5.y:3322 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5106,10 +5563,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2722 + //line php5/php5.y:3334 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5118,10 +5577,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2732 + //line php5/php5.y:3346 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5130,10 +5591,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MulEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2742 + //line php5/php5.y:3358 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5142,10 +5605,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2752 + //line php5/php5.y:3370 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5154,10 +5619,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DivEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2762 + //line php5/php5.y:3382 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5166,10 +5633,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ConcatEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2772 + //line php5/php5.y:3394 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5178,10 +5647,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ModEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2782 + //line php5/php5.y:3406 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5190,10 +5661,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AndEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2792 + //line php5/php5.y:3418 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5202,10 +5675,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2802 + //line php5/php5.y:3430 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5214,10 +5689,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.XorEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2812 + //line php5/php5.y:3442 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5226,10 +5703,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2822 + //line php5/php5.y:3454 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5238,10 +5717,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2832 + //line php5/php5.y:3466 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5250,10 +5731,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IncToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2842 + //line php5/php5.y:3478 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5262,10 +5745,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2852 + //line php5/php5.y:3490 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5274,10 +5759,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DecToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2862 + //line php5/php5.y:3502 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5286,10 +5773,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DecToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2872 + //line php5/php5.y:3514 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5298,10 +5787,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2882 + //line php5/php5.y:3526 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5310,10 +5801,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2892 + //line php5/php5.y:3538 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5322,10 +5815,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2902 + //line php5/php5.y:3550 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5334,10 +5829,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2912 + //line php5/php5.y:3562 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5346,10 +5843,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalXorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2922 + //line php5/php5.y:3574 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5358,10 +5857,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.VerticalBarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2932 + //line php5/php5.y:3586 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5370,10 +5871,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2942 + //line php5/php5.y:3598 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5382,10 +5885,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CaretToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2952 + //line php5/php5.y:3610 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5394,10 +5899,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DotToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2962 + //line php5/php5.y:3622 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5406,10 +5913,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2972 + //line php5/php5.y:3634 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5418,10 +5927,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2982 + //line php5/php5.y:3646 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5430,10 +5941,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsteriskToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2992 + //line php5/php5.y:3658 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5442,10 +5955,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3002 + //line php5/php5.y:3670 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5454,10 +5969,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlashToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3012 + //line php5/php5.y:3682 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5466,10 +5983,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PercentToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3022 + //line php5/php5.y:3694 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5478,10 +5997,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3032 + //line php5/php5.y:3706 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5490,10 +6011,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3042 + //line php5/php5.y:3718 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -5502,10 +6025,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3052 + //line php5/php5.y:3730 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -5514,10 +6039,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3062 + //line php5/php5.y:3742 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -5526,10 +6053,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ExclamationMarkToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3072 + //line php5/php5.y:3754 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -5538,10 +6067,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TildeToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3082 + //line php5/php5.y:3766 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -5550,10 +6081,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3092 + //line php5/php5.y:3778 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -5562,10 +6095,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3102 + //line php5/php5.y:3790 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -5574,10 +6109,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3112 + //line php5/php5.y:3802 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -5586,10 +6123,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3122 + //line php5/php5.y:3814 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -5598,10 +6137,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LessToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3132 + //line php5/php5.y:3826 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -5610,10 +6151,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsSmallerOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3142 + //line php5/php5.y:3838 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -5622,10 +6165,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.GreaterToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3152 + //line php5/php5.y:3850 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -5634,10 +6179,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsGreaterOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3162 + //line php5/php5.y:3862 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -5646,22 +6193,28 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.InstanceofToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3172 + //line php5/php5.y:3874 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3174 + //line php5/php5.y:3880 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3176 + //line php5/php5.y:3886 { yyVAL.node = yyDollar[2].node @@ -5687,10 +6240,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3203 + //line php5/php5.y:3915 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -5700,10 +6255,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3214 + //line php5/php5.y:3928 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -5713,16 +6270,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3225 + //line php5/php5.y:3941 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3227 + //line php5/php5.y:3947 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -5731,10 +6292,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IntCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3237 + //line php5/php5.y:3959 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -5743,10 +6306,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3247 + //line php5/php5.y:3971 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -5755,10 +6320,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3257 + //line php5/php5.y:3983 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -5767,10 +6334,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3267 + //line php5/php5.y:3995 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -5779,10 +6348,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ObjectCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3277 + //line php5/php5.y:4007 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -5791,10 +6362,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BoolCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3287 + //line php5/php5.y:4019 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -5803,10 +6376,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UnsetCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3297 + //line php5/php5.y:4031 { if strings.EqualFold(yyDollar[1].token.Value, "die") { yyVAL.node = expr.NewDie(nil) @@ -5833,10 +6408,12 @@ yydefault: if yyDollar[2].node != nil { yylex.(*Parser).comments.AddFromChildNode(yyVAL.node, yyDollar[2].node) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3325 + //line php5/php5.y:4061 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -5845,28 +6422,36 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AtToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3335 + //line php5/php5.y:4073 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3337 + //line php5/php5.y:4079 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3339 + //line php5/php5.y:4085 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3341 + //line php5/php5.y:4091 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -5876,10 +6461,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BackquoteToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.BackquoteToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3352 + //line php5/php5.y:4104 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -5888,10 +6475,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PrintToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3362 + //line php5/php5.y:4116 { yyVAL.node = expr.NewYield(nil, nil) @@ -5900,10 +6489,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:3372 + //line php5/php5.y:4128 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list, false, yyDollar[2].token != nil, "") @@ -5919,10 +6510,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[9].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:3389 + //line php5/php5.y:4147 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list, true, yyDollar[3].token != nil, "") @@ -5939,10 +6532,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[10].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3410 + //line php5/php5.y:4170 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -5951,10 +6546,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3420 + //line php5/php5.y:4182 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -5963,10 +6560,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3430 + //line php5/php5.y:4194 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -5976,10 +6575,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3441 + //line php5/php5.y:4207 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -5989,10 +6590,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3455 + //line php5/php5.y:4223 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6002,10 +6605,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3466 + //line php5/php5.y:4236 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6015,10 +6620,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3477 + //line php5/php5.y:4249 { str := scalar.NewString(yyDollar[1].token.Value) yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) @@ -6030,10 +6637,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3490 + //line php5/php5.y:4264 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6043,10 +6652,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3504 + //line php5/php5.y:4280 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6057,10 +6668,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3516 + //line php5/php5.y:4294 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6070,30 +6683,36 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3530 + //line php5/php5.y:4310 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3535 + //line php5/php5.y:4317 { yyVAL.ClosureUse = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3537 + //line php5/php5.y:4323 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.ClosureUse, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3546 + //line php5/php5.y:4334 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6106,10 +6725,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(variable, yyDollar[3].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3560 + //line php5/php5.y:4350 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6124,10 +6745,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(reference, yyDollar[3].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(variable, yyDollar[4].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3576 + //line php5/php5.y:4368 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6139,10 +6762,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3589 + //line php5/php5.y:4383 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6157,10 +6782,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(reference, yyDollar[1].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(variable, yyDollar[2].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3608 + //line php5/php5.y:4404 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].node.(*node.ArgumentList)) @@ -6168,10 +6795,12 @@ yydefault: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(name, yyDollar[2].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3617 + //line php5/php5.y:4415 { funcName := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].node.(*node.ArgumentList)) @@ -6183,10 +6812,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(funcName, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(funcName, yyDollar[2].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3630 + //line php5/php5.y:4430 { funcName := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].node.(*node.ArgumentList)) @@ -6197,10 +6828,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(funcName, yyDollar[1].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3642 + //line php5/php5.y:4444 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6209,10 +6842,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3652 + //line php5/php5.y:4456 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6221,10 +6856,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3662 + //line php5/php5.y:4468 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6233,10 +6870,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3672 + //line php5/php5.y:4480 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6245,19 +6884,23 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3682 + //line php5/php5.y:4492 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3692 + //line php5/php5.y:4504 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6266,19 +6909,23 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3702 + //line php5/php5.y:4516 { yyVAL.node = name.NewName(yyDollar[1].list) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3709 + //line php5/php5.y:4525 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -6288,10 +6935,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3720 + //line php5/php5.y:4538 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -6300,19 +6949,23 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3733 + //line php5/php5.y:4553 { yyVAL.node = name.NewName(yyDollar[1].list) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3740 + //line php5/php5.y:4562 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -6322,10 +6975,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3751 + //line php5/php5.y:4575 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -6334,22 +6989,28 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3764 + //line php5/php5.y:4590 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3766 + //line php5/php5.y:4596 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3771 + //line php5/php5.y:4605 { yyVAL.node = yyDollar[1].node @@ -6383,43 +7044,55 @@ yydefault: yyVAL.node = nn } } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3806 + //line php5/php5.y:4642 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3812 + //line php5/php5.y:4652 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3814 + //line php5/php5.y:4658 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3820 + //line php5/php5.y:4668 { yyVAL.list = yyDollar[2].list // save comments yylex.(*Parser).comments.AddFromToken(yyDollar[2].list[0], yyDollar[1].token, comment.ObjectOperatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3830 + //line php5/php5.y:4680 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3832 + //line php5/php5.y:4686 { yyVAL.node = expr.NewExit(nil) @@ -6429,49 +7102,63 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3843 + //line php5/php5.y:4699 { yyVAL.node = expr.NewExit(yyDollar[1].node) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3853 + //line php5/php5.y:4711 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3855 + //line php5/php5.y:4717 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3857 + //line php5/php5.y:4723 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3862 + //line php5/php5.y:4732 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3864 + //line php5/php5.y:4738 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3869 + //line php5/php5.y:4747 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -6480,10 +7167,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.LnumberToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3879 + //line php5/php5.y:4759 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -6492,10 +7181,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DnumberToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3889 + //line php5/php5.y:4771 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6504,10 +7195,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstantEncapsedStringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3899 + //line php5/php5.y:4783 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6516,10 +7209,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.LineToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3909 + //line php5/php5.y:4795 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6528,10 +7223,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FileToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3919 + //line php5/php5.y:4807 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6540,10 +7237,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DirToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3929 + //line php5/php5.y:4819 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6552,10 +7251,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TraitCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3939 + //line php5/php5.y:4831 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6564,10 +7265,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MethodCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3949 + //line php5/php5.y:4843 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6576,10 +7279,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FuncCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3959 + //line php5/php5.y:4855 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6588,10 +7293,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3969 + //line php5/php5.y:4867 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -6602,10 +7309,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3981 + //line php5/php5.y:4881 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -6614,10 +7323,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3994 + //line php5/php5.y:4896 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -6629,28 +7340,36 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) yylex.(*Parser).comments.AddFromToken(target, yyDollar[3].token, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4010 + //line php5/php5.y:4914 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4015 + //line php5/php5.y:4923 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4017 + //line php5/php5.y:4929 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4019 + //line php5/php5.y:4935 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -6658,10 +7377,12 @@ yydefault: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4028 + //line php5/php5.y:4946 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -6673,10 +7394,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4041 + //line php5/php5.y:4961 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -6687,10 +7410,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4053 + //line php5/php5.y:4975 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6701,10 +7426,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4065 + //line php5/php5.y:4989 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6714,16 +7441,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4076 + //line php5/php5.y:5002 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4078 + //line php5/php5.y:5008 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6732,16 +7463,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4088 + //line php5/php5.y:5020 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4093 + //line php5/php5.y:5029 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6751,10 +7486,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4104 + //line php5/php5.y:5042 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -6763,10 +7500,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4114 + //line php5/php5.y:5054 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -6775,10 +7514,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4124 + //line php5/php5.y:5066 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -6787,10 +7528,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsteriskToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4134 + //line php5/php5.y:5078 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -6799,10 +7542,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4144 + //line php5/php5.y:5090 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -6811,10 +7556,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlashToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4154 + //line php5/php5.y:5102 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -6823,10 +7570,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PercentToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4164 + //line php5/php5.y:5114 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6835,10 +7584,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ExclamationMarkToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4174 + //line php5/php5.y:5126 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6847,10 +7598,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TildeToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4184 + //line php5/php5.y:5138 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -6859,10 +7612,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.VerticalBarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4194 + //line php5/php5.y:5150 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -6871,10 +7626,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4204 + //line php5/php5.y:5162 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -6883,10 +7640,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CaretToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4214 + //line php5/php5.y:5174 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6895,10 +7654,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4224 + //line php5/php5.y:5186 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6907,10 +7668,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4234 + //line php5/php5.y:5198 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -6919,10 +7682,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DotToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4244 + //line php5/php5.y:5210 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -6931,10 +7696,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalXorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4254 + //line php5/php5.y:5222 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -6943,10 +7710,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4264 + //line php5/php5.y:5234 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -6955,10 +7724,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4274 + //line php5/php5.y:5246 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -6967,10 +7738,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4284 + //line php5/php5.y:5258 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -6979,10 +7752,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4294 + //line php5/php5.y:5270 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6991,10 +7766,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4304 + //line php5/php5.y:5282 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7003,10 +7780,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4314 + //line php5/php5.y:5294 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -7015,10 +7794,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4324 + //line php5/php5.y:5306 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -7027,10 +7808,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4334 + //line php5/php5.y:5318 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -7039,10 +7822,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LessToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4344 + //line php5/php5.y:5330 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -7051,10 +7836,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.GreaterToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4354 + //line php5/php5.y:5342 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7063,10 +7850,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsSmallerOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4364 + //line php5/php5.y:5354 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7075,10 +7864,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsGreaterOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4374 + //line php5/php5.y:5366 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -7088,10 +7879,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:4385 + //line php5/php5.y:5379 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -7101,10 +7894,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4396 + //line php5/php5.y:5392 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -7113,10 +7908,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4406 + //line php5/php5.y:5404 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -7125,26 +7922,32 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4416 + //line php5/php5.y:5416 { yyVAL.node = yyDollar[2].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4427 + //line php5/php5.y:5429 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4429 + //line php5/php5.y:5435 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7152,10 +7955,12 @@ yydefault: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4438 + //line php5/php5.y:5446 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7165,10 +7970,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4449 + //line php5/php5.y:5459 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7179,10 +7986,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4464 + //line php5/php5.y:5476 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = expr.NewVariable(name) @@ -7193,28 +8002,36 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.StringVarnameToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4476 + //line php5/php5.y:5490 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4478 + //line php5/php5.y:5496 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4480 + //line php5/php5.y:5502 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4482 + //line php5/php5.y:5508 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -7223,10 +8040,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleQuoteToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4492 + //line php5/php5.y:5520 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -7235,10 +8054,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4502 + //line php5/php5.y:5532 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7247,16 +8068,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4515 + //line php5/php5.y:5547 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4517 + //line php5/php5.y:5553 { yyVAL.list = yyDollar[1].list @@ -7264,22 +8089,24 @@ yydefault: if yyDollar[2].token != nil { yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 423: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4529 + //line php5/php5.y:5567 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4531 + //line php5/php5.y:5571 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:4536 + //line php5/php5.y:5578 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7290,10 +8117,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(arrayItem, yyDollar[4].token, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4548 + //line php5/php5.y:5592 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7303,10 +8132,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4559 + //line php5/php5.y:5605 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -7316,62 +8147,80 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, yyDollar[2].token, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4570 + //line php5/php5.y:5618 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} // save position yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4581 + //line php5/php5.y:5631 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4583 + //line php5/php5.y:5637 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4588 + //line php5/php5.y:5646 { yyVAL.node = yyDollar[2].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4590 + //line php5/php5.y:5652 { yyVAL.node = yyDollar[2].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4596 + //line php5/php5.y:5662 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4602 + //line php5/php5.y:5672 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4607 + //line php5/php5.y:5681 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:4612 + //line php5/php5.y:5690 { yyVAL.node = yyDollar[1].node @@ -7420,28 +8269,36 @@ yydefault: yyVAL.node = nn } } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4662 + //line php5/php5.y:5742 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4667 + //line php5/php5.y:5751 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4669 + //line php5/php5.y:5757 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4675 + //line php5/php5.y:5767 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -7452,10 +8309,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyDollar[2].list[0], yyDollar[1].token, comment.ObjectOperatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4690 + //line php5/php5.y:5784 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -7466,10 +8325,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4702 + //line php5/php5.y:5798 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = []node.Node{yyDollar[1].node, fetch} @@ -7480,43 +8341,55 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4717 + //line php5/php5.y:5815 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4727 + //line php5/php5.y:5827 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4729 + //line php5/php5.y:5833 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4731 + //line php5/php5.y:5839 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4736 + //line php5/php5.y:5848 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4738 + //line php5/php5.y:5854 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -7525,10 +8398,12 @@ yydefault: } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4751 + //line php5/php5.y:5869 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7537,10 +8412,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4761 + //line php5/php5.y:5881 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7549,16 +8426,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4775 + //line php5/php5.y:5896 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4780 + //line php5/php5.y:5905 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7568,10 +8449,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4791 + //line php5/php5.y:5918 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7581,34 +8464,44 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4804 + //line php5/php5.y:5934 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4805 + //line php5/php5.y:5940 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4806 + //line php5/php5.y:5946 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4812 + //line php5/php5.y:5956 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4814 + //line php5/php5.y:5962 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -7617,16 +8510,20 @@ yydefault: } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4824 + //line php5/php5.y:5974 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4829 + //line php5/php5.y:5983 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7636,10 +8533,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4840 + //line php5/php5.y:5996 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7649,16 +8548,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4851 + //line php5/php5.y:6009 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4857 + //line php5/php5.y:6019 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7669,10 +8572,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4869 + //line php5/php5.y:6033 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -7683,38 +8588,48 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4884 + //line php5/php5.y:6050 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4886 + //line php5/php5.y:6056 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4892 + //line php5/php5.y:6066 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4894 + //line php5/php5.y:6072 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} // save position yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4905 + //line php5/php5.y:6085 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -7725,10 +8640,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4917 + //line php5/php5.y:6099 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -7739,20 +8656,24 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4929 + //line php5/php5.y:6113 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} // save position yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4940 + //line php5/php5.y:6126 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7761,10 +8682,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4950 + //line php5/php5.y:6138 { yyVAL.node = yyDollar[2].node @@ -7774,10 +8697,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4964 + //line php5/php5.y:6154 { n := expr.NewVariable(nil) yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} @@ -7787,10 +8712,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(n, yyDollar[1].token, comment.DollarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4975 + //line php5/php5.y:6167 { n := expr.NewVariable(nil) @@ -7804,38 +8731,46 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(n, yyDollar[2].token, comment.DollarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4993 + //line php5/php5.y:6187 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5000 + //line php5/php5.y:6196 { if yyDollar[1].node == nil { yyVAL.list = []node.Node{} } else { yyVAL.list = []node.Node{yyDollar[1].node} } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5012 + //line php5/php5.y:6210 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5019 + //line php5/php5.y:6219 { item := expr.NewList(yyDollar[3].list) yyVAL.node = expr.NewArrayItem(nil, item) @@ -7848,22 +8783,28 @@ yydefault: yylex.(*Parser).comments.AddFromToken(item, yyDollar[1].token, comment.ListToken) yylex.(*Parser).comments.AddFromToken(item, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(item, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5033 + //line php5/php5.y:6235 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5039 + //line php5/php5.y:6245 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5041 + //line php5/php5.y:6251 { yyVAL.list = yyDollar[1].list @@ -7871,10 +8812,12 @@ yydefault: if yyDollar[2].token != nil { yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5053 + //line php5/php5.y:6265 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7885,10 +8828,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(arrayItem, yyDollar[4].token, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5065 + //line php5/php5.y:6279 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7898,10 +8843,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5076 + //line php5/php5.y:6292 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -7911,20 +8858,24 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, yyDollar[2].token, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5087 + //line php5/php5.y:6305 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} // save position yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:5095 + //line php5/php5.y:6315 { reference := expr.NewReference(yyDollar[6].node) arrayItem := expr.NewArrayItem(yyDollar[3].node, reference) @@ -7938,10 +8889,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(arrayItem, yyDollar[4].token, comment.DoubleArrowToken) yylex.(*Parser).comments.AddFromToken(reference, yyDollar[5].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5110 + //line php5/php5.y:6332 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -7954,10 +8907,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(reference, yyDollar[3].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5124 + //line php5/php5.y:6348 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(yyDollar[1].node, reference) @@ -7970,10 +8925,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, yyDollar[2].token, comment.DoubleArrowToken) yylex.(*Parser).comments.AddFromToken(reference, yyDollar[3].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5138 + //line php5/php5.y:6364 { reference := expr.NewReference(yyDollar[2].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -7985,16 +8942,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(reference, yyDollar[1].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5154 + //line php5/php5.y:6382 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5156 + //line php5/php5.y:6388 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8004,16 +8965,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(encapsed, yyDollar[2].token, comment.EncapsedAndWhitespaceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5167 + //line php5/php5.y:6401 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5169 + //line php5/php5.y:6407 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -8023,10 +8988,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(encapsed, yyDollar[1].token, comment.EncapsedAndWhitespaceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5183 + //line php5/php5.y:6423 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -8037,10 +9004,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5195 + //line php5/php5.y:6437 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -8055,10 +9024,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5211 + //line php5/php5.y:6455 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -8075,10 +9046,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[3].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5229 + //line php5/php5.y:6475 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -8088,10 +9061,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5240 + //line php5/php5.y:6488 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = expr.NewVariable(name) @@ -8104,10 +9079,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringVarnameToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 500: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:5254 + //line php5/php5.y:6504 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -8124,16 +9101,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 501: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5272 + //line php5/php5.y:6524 { yyVAL.node = yyDollar[2].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5279 + //line php5/php5.y:6533 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -8142,10 +9123,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5289 + //line php5/php5.y:6545 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -8159,10 +9142,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NumStringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5304 + //line php5/php5.y:6562 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -8173,10 +9158,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5319 + //line php5/php5.y:6579 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -8187,10 +9174,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IssetToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5331 + //line php5/php5.y:6593 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -8201,10 +9190,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EmptyToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5343 + //line php5/php5.y:6607 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -8215,10 +9206,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EmptyToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5355 + //line php5/php5.y:6621 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -8227,10 +9220,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncludeToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5365 + //line php5/php5.y:6633 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -8239,10 +9234,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncludeOnceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 510: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5375 + //line php5/php5.y:6645 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -8253,10 +9250,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EvalToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5387 + //line php5/php5.y:6659 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -8265,10 +9264,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.RequireToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 512: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5397 + //line php5/php5.y:6671 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -8277,37 +9278,47 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.RequireOnceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5410 + //line php5/php5.y:6686 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 514: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5412 + //line php5/php5.y:6692 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5422 + //line php5/php5.y:6704 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5424 + //line php5/php5.y:6710 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5429 + //line php5/php5.y:6719 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -8318,10 +9329,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5441 + //line php5/php5.y:6733 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -8332,10 +9345,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5456 + //line php5/php5.y:6750 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -8346,10 +9361,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 520: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5471 + //line php5/php5.y:6767 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -8360,6 +9377,8 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } } goto yystack /* stack new state and value */ diff --git a/php5/php5.y b/php5/php5.y index 1ba299b..0ab1482 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -281,6 +281,8 @@ start: { yylex.(*Parser).rootNode = node.NewRoot($1) yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -290,8 +292,15 @@ top_statement_list: if $2 != nil { $$ = append($1, $2) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | /* empty */ + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - | /* empty */ { $$ = []node.Node{} } ; namespace_name: @@ -305,6 +314,8 @@ namespace_name: // save comments yylex.(*Parser).comments.AddFromToken(namePart, $1, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_NS_SEPARATOR T_STRING { @@ -317,6 +328,8 @@ namespace_name: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.NsSeparatorToken) yylex.(*Parser).comments.AddFromToken(namePart, $3, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -325,13 +338,27 @@ top_statement: { // error $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | statement - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | function_declaration_statement - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | class_declaration_statement - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_HALT_COMPILER '(' ')' ';' { $$ = stmt.NewHaltCompiler() @@ -344,6 +371,8 @@ top_statement: yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE namespace_name ';' { @@ -357,6 +386,8 @@ top_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE namespace_name '{' top_statement_list '}' { @@ -371,6 +402,8 @@ top_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE '{' top_statement_list '}' { @@ -383,6 +416,8 @@ top_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE use_declarations ';' { @@ -394,6 +429,8 @@ top_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE T_FUNCTION use_function_declarations ';' { @@ -408,6 +445,8 @@ top_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) yylex.(*Parser).comments.AddFromToken(useType, $2, comment.UseToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE T_CONST use_const_declarations ';' { @@ -422,6 +461,8 @@ top_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) yylex.(*Parser).comments.AddFromToken(useType, $2, comment.UseToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | constant_declaration ';' { @@ -432,6 +473,8 @@ top_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -442,9 +485,15 @@ use_declarations: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | use_declaration - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; use_declaration: @@ -456,6 +505,8 @@ use_declaration: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { @@ -471,6 +522,8 @@ use_declaration: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, $3, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { @@ -483,6 +536,8 @@ use_declaration: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { @@ -499,6 +554,8 @@ use_declaration: yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.AsToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -509,9 +566,15 @@ use_function_declarations: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | use_function_declaration - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; use_function_declaration: @@ -523,6 +586,8 @@ use_function_declaration: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { @@ -538,6 +603,8 @@ use_function_declaration: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, $3, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { @@ -550,6 +617,8 @@ use_function_declaration: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { @@ -566,6 +635,8 @@ use_function_declaration: yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.AsToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -576,9 +647,15 @@ use_const_declarations: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | use_const_declaration - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; use_const_declaration: @@ -590,6 +667,8 @@ use_const_declaration: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { @@ -605,6 +684,8 @@ use_const_declaration: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, $3, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { @@ -617,6 +698,8 @@ use_const_declaration: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { @@ -633,6 +716,8 @@ use_const_declaration: yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.AsToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -654,6 +739,8 @@ constant_declaration: yylex.(*Parser).comments.AddFromToken(lastNode(constList.Consts), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(name, $3, comment.StringToken) yylex.(*Parser).comments.AddFromToken(constant, $4, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONST T_STRING '=' static_scalar { @@ -671,6 +758,8 @@ constant_declaration: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstToken) yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) yylex.(*Parser).comments.AddFromToken(constant, $3, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -680,9 +769,15 @@ inner_statement_list: if $2 != nil { $$ = append($1, $2) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; @@ -691,13 +786,27 @@ inner_statement: { // error $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | statement - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | function_declaration_statement - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | class_declaration_statement - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_HALT_COMPILER '(' ')' ';' { $$ = stmt.NewHaltCompiler() @@ -710,13 +819,19 @@ inner_statement: yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; statement: unticked_statement - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_STRING ':' { label := node.NewIdentifier($1.Value) @@ -729,6 +844,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken(label, $1, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -743,6 +860,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_IF parenthesis_expr statement elseif_list else_single { @@ -759,6 +878,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IfToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { @@ -774,6 +895,8 @@ unticked_statement: yylex.(*Parser).comments.AddFromToken($$, $3, comment.ColonToken) yylex.(*Parser).comments.AddFromToken($$, $7, comment.EndifToken) yylex.(*Parser).comments.AddFromToken($$, $8, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_WHILE parenthesis_expr while_statement { @@ -791,6 +914,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.WhileToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DO statement T_WHILE parenthesis_expr ';' { @@ -803,6 +928,8 @@ unticked_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.WhileToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement { @@ -828,6 +955,8 @@ unticked_statement: yylex.(*Parser).comments.AddFromToken($$, $4, comment.ForInitSemicolonToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.ForCondSemicolonToken) yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_SWITCH parenthesis_expr switch_case_list { @@ -847,6 +976,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SwitchToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_BREAK ';' { @@ -858,6 +989,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BreakToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_BREAK expr ';' { @@ -869,6 +1002,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BreakToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONTINUE ';' { @@ -880,6 +1015,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ContinueToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONTINUE expr ';' { @@ -891,6 +1028,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ContinueToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_RETURN ';' { @@ -902,6 +1041,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ReturnToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_RETURN expr_without_variable ';' { @@ -913,6 +1054,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ReturnToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_RETURN variable ';' { @@ -924,6 +1067,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ReturnToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | yield_expr ';' { @@ -934,6 +1079,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_GLOBAL global_var_list ';' { @@ -945,6 +1092,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.GlobalToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC static_var_list ';' { @@ -956,6 +1105,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ECHO echo_expr_list ';' { @@ -967,6 +1118,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EchoToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INLINE_HTML { @@ -977,6 +1130,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.InlineHTMLToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr ';' { @@ -987,6 +1142,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_UNSET '(' unset_variables ')' ';' { @@ -1000,6 +1157,8 @@ unticked_statement: yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FOREACH '(' variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { @@ -1035,6 +1194,8 @@ unticked_statement: yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.AsToken) yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FOREACH '(' expr_without_variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { @@ -1070,6 +1231,8 @@ unticked_statement: yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.AsToken) yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DECLARE '(' declare_list ')' declare_statement { @@ -1082,6 +1245,8 @@ unticked_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.DeclareToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ';' { @@ -1092,6 +1257,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { @@ -1108,6 +1275,8 @@ unticked_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.TryToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_THROW expr ';' { @@ -1119,6 +1288,8 @@ unticked_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ThrowToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_GOTO T_STRING ';' { @@ -1133,12 +1304,18 @@ unticked_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.GotoToken) yylex.(*Parser).comments.AddFromToken(label, $2, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; catch_statement: /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { identifier := node.NewIdentifier(strings.TrimLeftFunc($4.Value, isDollar)) @@ -1158,11 +1335,18 @@ catch_statement: yylex.(*Parser).comments.AddFromToken(catch, $5, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(catch, $6, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(catch, $8, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } +; finally_statement: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_FINALLY '{' inner_statement_list '}' { $$ = stmt.NewFinally($3) @@ -1174,21 +1358,39 @@ finally_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinallyToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; additional_catches: non_empty_additional_catches - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; non_empty_additional_catches: additional_catch - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_additional_catches additional_catch - { $$ = append($1, $2) } + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; additional_catch: @@ -1210,48 +1412,76 @@ additional_catch: yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; unset_variables: unset_variable - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | unset_variables ',' unset_variable { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; unset_variable: variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; function_declaration_statement: unticked_function_declaration_statement - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; class_declaration_statement: unticked_class_declaration_statement - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; is_reference: /* empty */ - { $$ = nil } + { + $$ = nil + } | '&' - { $$ = $1 } + { + $$ = $1 + } ; is_variadic: /* empty */ - { $$ = nil } + { + $$ = nil + } | T_ELLIPSIS - { $$ = $1 } + { + $$ = $1 + } ; unticked_function_declaration_statement: @@ -1274,6 +1504,8 @@ unticked_function_declaration_statement: yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $7, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $9, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1303,6 +1535,8 @@ unticked_class_declaration_statement: yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { @@ -1317,6 +1551,8 @@ unticked_class_declaration_statement: yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1331,6 +1567,8 @@ class_entry_type: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ABSTRACT T_CLASS { @@ -1344,6 +1582,8 @@ class_entry_type: // save comments yylex.(*Parser).comments.AddFromToken(classModifier, $1, comment.AbstractToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.ClassToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_TRAIT { @@ -1354,6 +1594,8 @@ class_entry_type: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TraitToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FINAL T_CLASS { @@ -1367,12 +1609,18 @@ class_entry_type: // save comments yylex.(*Parser).comments.AddFromToken(classModifier, $1, comment.FinalToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.ClassToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; extends_from: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_EXTENDS fully_qualified_class_name { $$ = stmt.NewClassExtends($2); @@ -1382,17 +1630,25 @@ extends_from: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExtendsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; interface_entry: T_INTERFACE - { $$ = $1 } + { + $$ = $1 + } ; interface_extends_list: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_EXTENDS interface_list { $$ = stmt.NewInterfaceExtends($2); @@ -1402,12 +1658,18 @@ interface_extends_list: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExtendsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; implements_list: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_IMPLEMENTS interface_list { $$ = stmt.NewClassImplements($2); @@ -1417,36 +1679,54 @@ implements_list: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ImplementsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; interface_list: fully_qualified_class_name - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | interface_list ',' fully_qualified_class_name { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; foreach_optional_arg: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_DOUBLE_ARROW foreach_variable { $$ = $2 // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; foreach_variable: variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '&' variable { $$ = expr.NewReference($2) @@ -1456,6 +1736,8 @@ foreach_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LIST '(' assignment_list ')' { @@ -1468,6 +1750,8 @@ foreach_variable: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ListToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1478,6 +1762,8 @@ for_statement: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDFOR ';' { @@ -1492,6 +1778,8 @@ for_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.EndforToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1502,6 +1790,8 @@ foreach_statement: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDFOREACH ';' { @@ -1516,13 +1806,19 @@ foreach_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.EndforeachToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; declare_statement: statement - { $$ = $1; } + { + $$ = $1; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | ':' inner_statement_list T_ENDDECLARE ';' { $$ = stmt.NewStmtList($2) @@ -1534,6 +1830,8 @@ declare_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.EnddeclareToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1552,6 +1850,8 @@ declare_list: // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.StringToken) yylex.(*Parser).comments.AddFromToken(constant, $2, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | declare_list ',' T_STRING '=' static_scalar { @@ -1567,6 +1867,8 @@ declare_list: yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(name, $3, comment.StringToken) yylex.(*Parser).comments.AddFromToken(constant, $4, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1584,6 +1886,8 @@ switch_case_list: // save comments yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(caseList, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' ';' case_list '}' { @@ -1598,6 +1902,8 @@ switch_case_list: yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(caseList, $2, comment.SemiColonToken) yylex.(*Parser).comments.AddFromToken(caseList, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' case_list T_ENDSWITCH ';' { @@ -1612,6 +1918,8 @@ switch_case_list: yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(caseList, $3, comment.EndswitchToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' ';' case_list T_ENDSWITCH ';' { @@ -1628,13 +1936,19 @@ switch_case_list: yylex.(*Parser).comments.AddFromToken(caseList, $2, comment.SemiColonToken) yylex.(*Parser).comments.AddFromToken(caseList, $4, comment.EndswitchToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; case_list: /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | case_list T_CASE expr case_separator inner_statement_list { _case := stmt.NewCase($3, $5) @@ -1646,6 +1960,8 @@ case_list: // save comments yylex.(*Parser).comments.AddFromToken(_case, $2, comment.CaseToken) yylex.(*Parser).comments.AddFromToken(_case, $4, comment.CaseSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | case_list T_DEFAULT case_separator inner_statement_list { @@ -1658,15 +1974,21 @@ case_list: // save comments yylex.(*Parser).comments.AddFromToken(_default, $2, comment.DefaultToken) yylex.(*Parser).comments.AddFromToken(_default, $3, comment.CaseSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; case_separator: ':' - { $$ = $1 } + { + $$ = $1 + } | ';' - { $$ = $1 } + { + $$ = $1 + } ; @@ -1677,6 +1999,8 @@ while_statement: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDWHILE ';' { @@ -1691,6 +2015,8 @@ while_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.EndwhileToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1698,7 +2024,11 @@ while_statement: elseif_list: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | elseif_list T_ELSEIF parenthesis_expr statement { _elseIf := stmt.NewElseIf($3, $4) @@ -1709,13 +2039,19 @@ elseif_list: // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, $2, comment.ElseifToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; new_elseif_list: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { stmts := stmt.NewStmtList($5) @@ -1729,13 +2065,19 @@ new_elseif_list: // save comments yylex.(*Parser).comments.AddFromToken(_elseIf, $2, comment.ElseifToken) yylex.(*Parser).comments.AddFromToken(_elseIf, $4, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; else_single: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_ELSE statement { $$ = stmt.NewElse($2) @@ -1745,13 +2087,19 @@ else_single: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ElseToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; new_else_single: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_ELSE ':' inner_statement_list { stmts := stmt.NewStmtList($3) @@ -1764,26 +2112,42 @@ new_else_single: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ElseToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; parameter_list: non_empty_parameter_list - { $$ = $1; } + { + $$ = $1; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; non_empty_parameter_list: parameter - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_parameter_list ',' parameter { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1815,6 +2179,8 @@ parameter: yylex.(*Parser).comments.AddFromToken($$, $3, comment.EllipsisToken) } yylex.(*Parser).comments.AddFromToken(variable, $4, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | optional_class_type is_reference is_variadic T_VARIABLE '=' static_scalar { @@ -1844,13 +2210,19 @@ parameter: } yylex.(*Parser).comments.AddFromToken(variable, $4, comment.VariableToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; optional_class_type: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_ARRAY { $$ = node.NewIdentifier($1.Value) @@ -1860,6 +2232,8 @@ optional_class_type: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CALLABLE { @@ -1870,9 +2244,15 @@ optional_class_type: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.CallableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | fully_qualified_class_name - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; @@ -1887,6 +2267,8 @@ function_call_parameter_list: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' non_empty_function_call_parameter_list ')' { @@ -1898,6 +2280,8 @@ function_call_parameter_list: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' yield_expr ')' { @@ -1911,19 +2295,27 @@ function_call_parameter_list: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; non_empty_function_call_parameter_list: function_call_parameter - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_function_call_parameter_list ',' function_call_parameter { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1934,6 +2326,8 @@ function_call_parameter: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable { @@ -1941,6 +2335,8 @@ function_call_parameter: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' w_variable { @@ -1951,6 +2347,8 @@ function_call_parameter: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ELLIPSIS expr { @@ -1961,6 +2359,8 @@ function_call_parameter: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EllipsisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1971,9 +2371,15 @@ global_var_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | global_var - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; @@ -1989,6 +2395,8 @@ global_var: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '$' r_variable { @@ -1999,6 +2407,8 @@ global_var: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '$' '{' expr '}' { @@ -2011,6 +2421,8 @@ global_var: yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2031,6 +2443,8 @@ static_var_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(variable, $3, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_var_list ',' T_VARIABLE '=' static_scalar { @@ -2048,6 +2462,8 @@ static_var_list: yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(variable, $3, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(staticVar, $4, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE { @@ -2063,6 +2479,8 @@ static_var_list: // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '=' static_scalar { @@ -2079,15 +2497,25 @@ static_var_list: // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(staticVar, $2, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; class_statement_list: class_statement_list class_statement - { $$ = append($1, $2) } + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; @@ -2101,6 +2529,8 @@ class_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_constant_declaration ';' { @@ -2111,10 +2541,14 @@ class_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_use_statement { $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | method_modifiers function is_reference T_STRING '(' parameter_list ')' method_body { @@ -2137,6 +2571,8 @@ class_statement: yylex.(*Parser).comments.AddFromToken(name, $4, comment.IdentifierToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2157,18 +2593,26 @@ trait_use_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; trait_list: fully_qualified_class_name - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | trait_list ',' fully_qualified_class_name { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2182,6 +2626,8 @@ trait_adaptations: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' trait_adaptation_list '}' { @@ -2192,21 +2638,39 @@ trait_adaptations: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; trait_adaptation_list: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_trait_adaptation_list - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; non_empty_trait_adaptation_list: trait_adaptation_statement - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_trait_adaptation_list trait_adaptation_statement - { $$ = append($1, $2) } + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; trait_adaptation_statement: @@ -2216,6 +2680,8 @@ trait_adaptation_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_alias ';' { @@ -2223,6 +2689,8 @@ trait_adaptation_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2236,18 +2704,26 @@ trait_precedence: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.InsteadofToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; trait_reference_list: fully_qualified_class_name - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | trait_reference_list ',' fully_qualified_class_name { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2263,9 +2739,15 @@ trait_method_reference: // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_method_reference_fully_qualified - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; trait_method_reference_fully_qualified: @@ -2281,6 +2763,8 @@ trait_method_reference_fully_qualified: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) yylex.(*Parser).comments.AddFromToken(target, $3, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2297,6 +2781,8 @@ trait_alias: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, $4, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_method_reference T_AS member_modifier { @@ -2307,14 +2793,24 @@ trait_alias: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; trait_modifiers: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | member_modifier - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; method_body: @@ -2327,6 +2823,8 @@ method_body: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' inner_statement_list '}' { @@ -2338,12 +2836,18 @@ method_body: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; variable_modifiers: non_empty_member_modifiers - { $$ = $1; } + { + $$ = $1; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_VAR { modifier := node.NewIdentifier($1.Value) @@ -2354,21 +2858,39 @@ variable_modifiers: // save comments yylex.(*Parser).comments.AddFromToken(modifier, $1, comment.VarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; method_modifiers: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_member_modifiers - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; non_empty_member_modifiers: member_modifier - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_member_modifiers member_modifier - { $$ = append($1, $2) } + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; member_modifier: @@ -2381,6 +2903,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PublicToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_PROTECTED { @@ -2391,6 +2915,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ProtectedToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_PRIVATE { @@ -2401,6 +2927,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PrivateToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC { @@ -2411,6 +2939,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ABSTRACT { @@ -2421,6 +2951,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AbstractToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FINAL { @@ -2431,6 +2963,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2450,6 +2984,8 @@ class_variable_declaration: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(variable, $3, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_variable_declaration ',' T_VARIABLE '=' static_scalar { @@ -2467,6 +3003,8 @@ class_variable_declaration: yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(variable, $3, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(property, $4, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE { @@ -2482,6 +3020,8 @@ class_variable_declaration: // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '=' static_scalar { @@ -2498,6 +3038,8 @@ class_variable_declaration: // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(property, $2, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2519,6 +3061,8 @@ class_constant_declaration: yylex.(*Parser).comments.AddFromToken(lastNode(constList.Consts), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(name, $3, comment.IdentifierToken) yylex.(*Parser).comments.AddFromToken(constant, $4, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONST T_STRING '=' static_scalar { @@ -2535,6 +3079,8 @@ class_constant_declaration: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstToken) yylex.(*Parser).comments.AddFromToken(name, $2, comment.IdentifierToken) yylex.(*Parser).comments.AddFromToken(constant, $3, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2545,17 +3091,31 @@ echo_expr_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; for_expr: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_for_expr - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; non_empty_for_expr: @@ -2565,16 +3125,30 @@ non_empty_for_expr: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; chaining_method_or_property: chaining_method_or_property variable_property - { $$ = append($1, $2...) } + { + $$ = append($1, $2...) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | variable_property - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; chaining_dereference: @@ -2589,6 +3163,8 @@ chaining_dereference: // save comments yylex.(*Parser).comments.AddFromToken(fetch, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(fetch, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '[' dim_offset ']' { @@ -2601,23 +3177,45 @@ chaining_dereference: // save comments yylex.(*Parser).comments.AddFromToken(fetch, $1, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(fetch, $3, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; chaining_instance_call: chaining_dereference chaining_method_or_property - { $$ = append($1, $2...) } + { + $$ = append($1, $2...) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | chaining_dereference - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | chaining_method_or_property - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; instance_call: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | chaining_instance_call - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; new_expr: @@ -2634,6 +3232,8 @@ new_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NewToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2652,6 +3252,8 @@ expr_without_variable: yylex.(*Parser).comments.AddFromToken(list, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(list, $4, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable '=' expr { @@ -2662,6 +3264,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable '=' '&' variable { @@ -2673,6 +3277,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable '=' '&' T_NEW class_name_reference ctor_arguments { @@ -2697,6 +3303,8 @@ expr_without_variable: yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.AmpersandToken) yylex.(*Parser).comments.AddFromToken(_new, $4, comment.NewToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLONE expr { @@ -2707,6 +3315,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.CloneToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_PLUS_EQUAL expr { @@ -2717,6 +3327,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MINUS_EQUAL expr { @@ -2727,6 +3339,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MUL_EQUAL expr { @@ -2737,6 +3351,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MulEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_POW_EQUAL expr { @@ -2747,6 +3363,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_DIV_EQUAL expr { @@ -2757,6 +3375,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DivEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_CONCAT_EQUAL expr { @@ -2767,6 +3387,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ConcatEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MOD_EQUAL expr { @@ -2777,6 +3399,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ModEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_AND_EQUAL expr { @@ -2787,6 +3411,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AndEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_OR_EQUAL expr { @@ -2797,6 +3423,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_XOR_EQUAL expr { @@ -2807,6 +3435,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.XorEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_SL_EQUAL expr { @@ -2817,6 +3447,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_SR_EQUAL expr { @@ -2827,6 +3459,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | rw_variable T_INC { @@ -2837,6 +3471,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IncToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INC rw_variable { @@ -2847,6 +3483,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | rw_variable T_DEC { @@ -2857,6 +3495,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DecToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DEC rw_variable { @@ -2867,6 +3507,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DecToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_BOOLEAN_OR expr { @@ -2877,6 +3519,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_BOOLEAN_AND expr { @@ -2887,6 +3531,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_OR expr { @@ -2897,6 +3543,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_AND expr { @@ -2907,6 +3555,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_XOR expr { @@ -2917,6 +3567,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalXorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '|' expr { @@ -2927,6 +3579,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.VerticalBarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '&' expr { @@ -2937,6 +3591,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '^' expr { @@ -2947,6 +3603,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.CaretToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '.' expr { @@ -2957,6 +3615,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DotToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '+' expr { @@ -2967,6 +3627,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '-' expr { @@ -2977,6 +3639,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '*' expr { @@ -2987,6 +3651,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsteriskToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_POW expr { @@ -2997,6 +3663,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '/' expr { @@ -3007,6 +3675,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlashToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '%' expr { @@ -3017,6 +3687,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PercentToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_SL expr { @@ -3027,6 +3699,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_SR expr { @@ -3037,6 +3711,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '+' expr %prec T_INC { @@ -3047,6 +3723,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '-' expr %prec T_INC { @@ -3057,6 +3735,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '!' expr { @@ -3067,6 +3747,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExclamationMarkToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '~' expr { @@ -3077,6 +3759,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TildeToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_IDENTICAL expr { @@ -3087,6 +3771,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_NOT_IDENTICAL expr { @@ -3097,6 +3783,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_EQUAL expr { @@ -3107,6 +3795,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_NOT_EQUAL expr { @@ -3117,6 +3807,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '<' expr { @@ -3127,6 +3819,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LessToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_SMALLER_OR_EQUAL expr { @@ -3137,6 +3831,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsSmallerOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '>' expr { @@ -3147,6 +3843,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.GreaterToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_GREATER_OR_EQUAL expr { @@ -3157,6 +3855,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsGreaterOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_INSTANCEOF class_name_reference { @@ -3167,11 +3867,21 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.InstanceofToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | parenthesis_expr - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | new_expr - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '(' new_expr ')' instance_call { $$ = $2 @@ -3198,6 +3908,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '?' expr ':' expr { @@ -3209,6 +3921,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '?' ':' expr { @@ -3220,9 +3934,15 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | internal_functions_in_yacc - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_INT_CAST expr { $$ = cast.NewInt($2) @@ -3232,6 +3952,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IntCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOUBLE_CAST expr { @@ -3242,6 +3964,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STRING_CAST expr { @@ -3252,6 +3976,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ARRAY_CAST expr { @@ -3262,6 +3988,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_OBJECT_CAST expr { @@ -3272,6 +4000,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ObjectCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_BOOL_CAST expr { @@ -3282,6 +4012,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BoolCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_UNSET_CAST expr { @@ -3292,6 +4024,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UnsetCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EXIT exit_expr { @@ -3320,6 +4054,8 @@ expr_without_variable: if $2 != nil { yylex.(*Parser).comments.AddFromChildNode($$, $2) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '@' expr { @@ -3330,13 +4066,27 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AtToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | scalar - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | combined_scalar_offset - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | combined_scalar - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '`' backticks_expr '`' { $$ = expr.NewShellExec($2) @@ -3347,6 +4097,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BackquoteToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.BackquoteToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_PRINT expr { @@ -3357,6 +4109,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PrintToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD { @@ -3367,6 +4121,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { @@ -3384,6 +4140,8 @@ expr_without_variable: yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $7, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $9, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { @@ -3402,6 +4160,8 @@ expr_without_variable: yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $8, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $10, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3415,6 +4175,8 @@ yield_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD variable { @@ -3425,6 +4187,8 @@ yield_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD expr T_DOUBLE_ARROW expr_without_variable { @@ -3436,6 +4200,8 @@ yield_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD expr T_DOUBLE_ARROW variable { @@ -3447,6 +4213,8 @@ yield_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3461,6 +4229,8 @@ combined_scalar_offset: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | combined_scalar_offset '[' dim_offset ']' { @@ -3472,6 +4242,8 @@ combined_scalar_offset: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { @@ -3485,6 +4257,8 @@ combined_scalar_offset: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | general_constant '[' dim_offset ']' { @@ -3496,6 +4270,8 @@ combined_scalar_offset: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3511,6 +4287,8 @@ combined_scalar: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '[' array_pair_list ']' { @@ -3522,22 +4300,32 @@ combined_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; function: T_FUNCTION - { $$ = $1 } + { + $$ = $1 + } ; lexical_vars: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_USE '(' lexical_var_list ')' { $$ = expr.NewClosureUse($3) yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3555,6 +4343,8 @@ lexical_var_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(variable, $3, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | lexical_var_list ',' '&' T_VARIABLE { @@ -3571,6 +4361,8 @@ lexical_var_list: yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(reference, $3, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(variable, $4, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE { @@ -3584,6 +4376,8 @@ lexical_var_list: // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' T_VARIABLE { @@ -3600,6 +4394,8 @@ lexical_var_list: // save comments yylex.(*Parser).comments.AddFromToken(reference, $1, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(variable, $2, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3612,6 +4408,8 @@ function_call: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition(name, $2)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { @@ -3625,6 +4423,8 @@ function_call: // save comments yylex.(*Parser).comments.AddFromToken(funcName, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(funcName, $2, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name function_call_parameter_list { @@ -3637,6 +4437,8 @@ function_call: // save comments yylex.(*Parser).comments.AddFromToken(funcName, $1, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { @@ -3647,6 +4449,8 @@ function_call: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { @@ -3657,6 +4461,8 @@ function_call: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { @@ -3667,6 +4473,8 @@ function_call: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { @@ -3677,6 +4485,8 @@ function_call: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_without_objects function_call_parameter_list { @@ -3684,6 +4494,8 @@ function_call: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3697,6 +4509,8 @@ class_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name { @@ -3704,6 +4518,8 @@ class_name: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { @@ -3715,6 +4531,8 @@ class_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { @@ -3725,6 +4543,8 @@ class_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3735,6 +4555,8 @@ fully_qualified_class_name: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { @@ -3746,6 +4568,8 @@ fully_qualified_class_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { @@ -3756,14 +4580,24 @@ fully_qualified_class_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; class_name_reference: class_name - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | dynamic_class_name_reference - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; dynamic_class_name_reference: @@ -3801,17 +4635,31 @@ dynamic_class_name_reference: $$ = nn } } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | base_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property - { $$ = append($1, $2...) } + { + $$ = append($1, $2...) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; @@ -3822,12 +4670,18 @@ dynamic_class_name_variable_property: // save comments yylex.(*Parser).comments.AddFromToken($2[0], $1, comment.ObjectOperatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; exit_expr: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '(' ')' { $$ = expr.NewExit(nil); @@ -3838,6 +4692,8 @@ exit_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | parenthesis_expr { @@ -3845,23 +4701,45 @@ exit_expr: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; backticks_expr: /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_ENCAPSED_AND_WHITESPACE - { $$ = []node.Node{scalar.NewEncapsedStringPart($1.Value)} } + { + $$ = []node.Node{scalar.NewEncapsedStringPart($1.Value)} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | encaps_list - { $$ = $1; } + { + $$ = $1; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; ctor_arguments: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | function_call_parameter_list - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; common_scalar: @@ -3874,6 +4752,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.LnumberToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DNUMBER { @@ -3884,6 +4764,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DnumberToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONSTANT_ENCAPSED_STRING { @@ -3894,6 +4776,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstantEncapsedStringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LINE { @@ -3904,6 +4788,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.LineToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FILE { @@ -3914,6 +4800,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FileToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DIR { @@ -3924,6 +4812,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DirToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_TRAIT_C { @@ -3934,6 +4824,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TraitCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_METHOD_C { @@ -3944,6 +4836,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MethodCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FUNC_C { @@ -3954,6 +4848,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FuncCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_C { @@ -3964,6 +4860,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { @@ -3976,6 +4874,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_START_HEREDOC T_END_HEREDOC { @@ -3986,6 +4886,8 @@ common_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4002,19 +4904,33 @@ static_class_constant: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) yylex.(*Parser).comments.AddFromToken(target, $3, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; static_scalar: static_scalar_value - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; static_scalar_value: common_scalar - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | static_class_name_scalar - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | namespace_name { name := name.NewName($1) @@ -4023,6 +4939,8 @@ static_scalar_value: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { @@ -4036,6 +4954,8 @@ static_scalar_value: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { @@ -4048,6 +4968,8 @@ static_scalar_value: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ARRAY '(' static_array_pair_list ')' { @@ -4060,6 +4982,8 @@ static_scalar_value: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '[' static_array_pair_list ']' { @@ -4071,9 +4995,15 @@ static_scalar_value: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_class_constant - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_CLASS_C { $$ = scalar.NewMagicConstant($1.Value) @@ -4083,9 +5013,15 @@ static_scalar_value: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_operation - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; static_operation: @@ -4099,6 +5035,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '+' static_scalar_value { @@ -4109,6 +5047,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '-' static_scalar_value { @@ -4119,6 +5059,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '*' static_scalar_value { @@ -4129,6 +5071,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsteriskToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_POW static_scalar_value { @@ -4139,6 +5083,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '/' static_scalar_value { @@ -4149,6 +5095,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlashToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '%' static_scalar_value { @@ -4159,6 +5107,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PercentToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '!' static_scalar_value { @@ -4169,6 +5119,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExclamationMarkToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '~' static_scalar_value { @@ -4179,6 +5131,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TildeToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '|' static_scalar_value { @@ -4189,6 +5143,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.VerticalBarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '&' static_scalar_value { @@ -4199,6 +5155,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '^' static_scalar_value { @@ -4209,6 +5167,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.CaretToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_SL static_scalar_value { @@ -4219,6 +5179,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_SR static_scalar_value { @@ -4229,6 +5191,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '.' static_scalar_value { @@ -4239,6 +5203,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DotToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_LOGICAL_XOR static_scalar_value { @@ -4249,6 +5215,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalXorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_LOGICAL_AND static_scalar_value { @@ -4259,6 +5227,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_LOGICAL_OR static_scalar_value { @@ -4269,6 +5239,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_BOOLEAN_AND static_scalar_value { @@ -4279,6 +5251,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_BOOLEAN_OR static_scalar_value { @@ -4289,6 +5263,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_IDENTICAL static_scalar_value { @@ -4299,6 +5275,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { @@ -4309,6 +5287,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_EQUAL static_scalar_value { @@ -4319,6 +5299,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { @@ -4329,6 +5311,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '<' static_scalar_value { @@ -4339,6 +5323,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LessToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '>' static_scalar_value { @@ -4349,6 +5335,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.GreaterToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { @@ -4359,6 +5347,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsSmallerOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { @@ -4369,6 +5359,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsGreaterOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '?' ':' static_scalar_value { @@ -4380,6 +5372,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '?' static_scalar_value ':' static_scalar_value { @@ -4391,6 +5385,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '+' static_scalar_value { @@ -4401,6 +5397,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '-' static_scalar_value { @@ -4411,6 +5409,8 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' static_scalar_value ')' { @@ -4419,12 +5419,18 @@ static_operation: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; general_constant: class_constant - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | namespace_name { name := name.NewName($1) @@ -4433,6 +5439,8 @@ general_constant: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition(name)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { @@ -4444,6 +5452,8 @@ general_constant: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { @@ -4456,6 +5466,8 @@ general_constant: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4471,13 +5483,27 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.StringVarnameToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | general_constant - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | class_name_scalar - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | common_scalar - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '"' encaps_list '"' { $$ = scalar.NewEncapsed($2) @@ -4487,6 +5513,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleQuoteToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_START_HEREDOC encaps_list T_END_HEREDOC { @@ -4497,6 +5525,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLASS_C { @@ -4507,12 +5537,18 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; static_array_pair_list: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_static_array_pair_list possible_comma { $$ = $1 @@ -4521,14 +5557,20 @@ static_array_pair_list: if $2 != nil { yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; possible_comma: /* empty */ - { $$ = nil } + { + $$ = nil + } | ',' - { $$ = $1 } + { + $$ = $1 + } ; non_empty_static_array_pair_list: @@ -4543,6 +5585,8 @@ non_empty_static_array_pair_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(arrayItem, $4, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_static_array_pair_list ',' static_scalar_value { @@ -4554,6 +5598,8 @@ non_empty_static_array_pair_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_DOUBLE_ARROW static_scalar_value { @@ -4565,6 +5611,8 @@ non_empty_static_array_pair_list: // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, $2, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value { @@ -4573,38 +5621,68 @@ non_empty_static_array_pair_list: // save position yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; expr: r_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | expr_without_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; parenthesis_expr: '(' expr ')' - { $$ = $2 } + { + $$ = $2 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '(' yield_expr ')' - { $$ = $2 } + { + $$ = $2 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; r_variable: variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; w_variable: variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; rw_variable: variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; variable: @@ -4657,16 +5735,30 @@ variable: $$ = nn } } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | base_variable_with_function_calls - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; variable_properties: variable_properties variable_property - { $$ = append($1, $2...) } + { + $$ = append($1, $2...) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; @@ -4682,6 +5774,8 @@ variable_property: // save comments yylex.(*Parser).comments.AddFromToken($2[0], $1, comment.ObjectOperatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4697,6 +5791,8 @@ array_method_dereference: // save comments yylex.(*Parser).comments.AddFromToken(fetch, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(fetch, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | method '[' dim_offset ']' { @@ -4709,6 +5805,8 @@ array_method_dereference: // save comments yylex.(*Parser).comments.AddFromToken(fetch, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(fetch, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4719,21 +5817,39 @@ method: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; method_or_not: method - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | array_method_dereference - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; variable_without_objects: reference_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | simple_indirect_reference reference_variable { $1.last.SetVarName($2) @@ -4743,6 +5859,8 @@ variable_without_objects: } $$ = $1.all[0] + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4756,6 +5874,8 @@ static_member: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { @@ -4766,13 +5886,18 @@ static_member: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) - } + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; variable_class_name: reference_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; array_function_dereference: @@ -4786,6 +5911,8 @@ array_function_dereference: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_call '[' dim_offset ']' { @@ -4797,19 +5924,40 @@ array_function_dereference: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; base_variable_with_function_calls: - base_variable { $$ = $1 } - | array_function_dereference { $$ = $1 } - | function_call { $$ = $1 } + base_variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | array_function_dereference + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | function_call + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; base_variable: reference_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | simple_indirect_reference reference_variable { $1.last.SetVarName($2) @@ -4819,9 +5967,15 @@ base_variable: } $$ = $1.all[0] + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_member - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; reference_variable: @@ -4835,6 +5989,8 @@ reference_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | reference_variable '{' expr '}' { @@ -4846,9 +6002,15 @@ reference_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | compound_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; @@ -4864,6 +6026,8 @@ compound_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '$' '{' expr '}' { @@ -4876,20 +6040,34 @@ compound_variable: yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; dim_offset: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | expr - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; object_property: object_dim_list - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | variable_without_objects { fetch := expr.NewPropertyFetch(nil, $1) @@ -4897,6 +6075,8 @@ object_property: // save position yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4912,6 +6092,8 @@ object_dim_list: // save comments yylex.(*Parser).comments.AddFromToken(fetch, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(fetch, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | object_dim_list '{' expr '}' { @@ -4924,6 +6106,8 @@ object_dim_list: // save comments yylex.(*Parser).comments.AddFromToken(fetch, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(fetch, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_name { @@ -4932,6 +6116,8 @@ object_dim_list: // save position yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4945,6 +6131,8 @@ variable_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' expr '}' { @@ -4956,6 +6144,8 @@ variable_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4970,6 +6160,8 @@ simple_indirect_reference: // save comments yylex.(*Parser).comments.AddFromToken(n, $1, comment.DollarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | simple_indirect_reference '$' { @@ -4985,6 +6177,8 @@ simple_indirect_reference: // save comments yylex.(*Parser).comments.AddFromToken(n, $2, comment.DollarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4995,6 +6189,8 @@ assignment_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | assignment_list_element { @@ -5003,6 +6199,8 @@ assignment_list: } else { $$ = []node.Node{$1} } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5014,6 +6212,8 @@ assignment_list_element: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LIST '(' assignment_list ')' { @@ -5028,15 +6228,25 @@ assignment_list_element: yylex.(*Parser).comments.AddFromToken(item, $1, comment.ListToken) yylex.(*Parser).comments.AddFromToken(item, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(item, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; array_pair_list: /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_array_pair_list possible_comma { $$ = $1 @@ -5045,6 +6255,8 @@ array_pair_list: if $2 != nil { yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5060,6 +6272,8 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(arrayItem, $4, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_array_pair_list ',' expr { @@ -5071,6 +6285,8 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW expr { @@ -5082,6 +6298,8 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, $2, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr { @@ -5090,6 +6308,8 @@ non_empty_array_pair_list: // save position yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { @@ -5105,6 +6325,8 @@ non_empty_array_pair_list: yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(arrayItem, $4, comment.DoubleArrowToken) yylex.(*Parser).comments.AddFromToken(reference, $5, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_array_pair_list ',' '&' w_variable { @@ -5119,6 +6341,8 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) yylex.(*Parser).comments.AddFromToken(reference, $3, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW '&' w_variable { @@ -5133,6 +6357,8 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).comments.AddFromToken(arrayItem, $2, comment.DoubleArrowToken) yylex.(*Parser).comments.AddFromToken(reference, $3, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' w_variable { @@ -5146,12 +6372,18 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).comments.AddFromToken(reference, $1, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; encaps_list: encaps_list encaps_var - { $$ = append($1, $2) } + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | encaps_list T_ENCAPSED_AND_WHITESPACE { encapsed := scalar.NewEncapsedStringPart($2.Value) @@ -5162,9 +6394,15 @@ encaps_list: // save comments yylex.(*Parser).comments.AddFromToken(encapsed, $2, comment.EncapsedAndWhitespaceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | encaps_var - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_ENCAPSED_AND_WHITESPACE encaps_var { encapsed := scalar.NewEncapsedStringPart($1.Value) @@ -5175,6 +6413,8 @@ encaps_list: // save comments yylex.(*Parser).comments.AddFromToken(encapsed, $1, comment.EncapsedAndWhitespaceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5190,6 +6430,8 @@ encaps_var: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '[' encaps_var_offset ']' { @@ -5206,6 +6448,8 @@ encaps_var: yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { @@ -5224,6 +6468,8 @@ encaps_var: yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) yylex.(*Parser).comments.AddFromToken(fetch, $3, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { @@ -5235,6 +6481,8 @@ encaps_var: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { @@ -5249,6 +6497,8 @@ encaps_var: yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringVarnameToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { @@ -5267,10 +6517,14 @@ encaps_var: yylex.(*Parser).comments.AddFromToken($$, $3, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CURLY_OPEN variable '}' { $$ = $2; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5284,6 +6538,8 @@ encaps_var_offset: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NUM_STRING { @@ -5299,6 +6555,8 @@ encaps_var_offset: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NumStringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE { @@ -5311,6 +6569,8 @@ encaps_var_offset: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5326,6 +6586,8 @@ internal_functions_in_yacc: yylex.(*Parser).comments.AddFromToken($$, $1, comment.IssetToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EMPTY '(' variable ')' { @@ -5338,6 +6600,8 @@ internal_functions_in_yacc: yylex.(*Parser).comments.AddFromToken($$, $1, comment.EmptyToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EMPTY '(' expr ')' { @@ -5350,6 +6614,8 @@ internal_functions_in_yacc: yylex.(*Parser).comments.AddFromToken($$, $1, comment.EmptyToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INCLUDE expr { @@ -5360,6 +6626,8 @@ internal_functions_in_yacc: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncludeToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INCLUDE_ONCE expr { @@ -5370,6 +6638,8 @@ internal_functions_in_yacc: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncludeOnceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EVAL '(' expr ')' { @@ -5382,6 +6652,8 @@ internal_functions_in_yacc: yylex.(*Parser).comments.AddFromToken($$, $1, comment.EvalToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_REQUIRE expr { @@ -5392,6 +6664,8 @@ internal_functions_in_yacc: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.RequireToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_REQUIRE_ONCE expr { @@ -5402,26 +6676,42 @@ internal_functions_in_yacc: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.RequireOnceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; isset_variables: isset_variable - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | isset_variables ',' isset_variable { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; isset_variable: variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | expr_without_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; class_constant: @@ -5436,6 +6726,8 @@ class_constant: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { @@ -5448,6 +6740,8 @@ class_constant: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5463,6 +6757,8 @@ static_class_name_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5478,6 +6774,8 @@ class_name_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; diff --git a/php7/parser.go b/php7/parser.go index 61f7ca7..20eda2c 100644 --- a/php7/parser.go +++ b/php7/parser.go @@ -106,3 +106,13 @@ func firstNode(nn []node.Node) node.Node { func isDollar(r rune) bool { return r == '$' } + +func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { + for i := 1; i < len(yyDollar); i++ { + if yyDollar[i].token != nil { + p.TokenPool.Put(yyDollar[i].token) + } + yyDollar[i].token = nil + } + yyVAL.token = nil +} diff --git a/php7/php7.go b/php7/php7.go index b4f2ded..dead580 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php7/php7.y:4306 +//line php7/php7.y:5344 //line yacctab:1 var yyExca = [...]int{ @@ -2120,480 +2120,486 @@ yydefault: // save position yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 2: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:309 + //line php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:310 + //line php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:320 + //line php7/php7.y:322 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:321 + //line php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:321 + //line php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:321 + //line php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:321 + //line php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:321 + //line php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:321 + //line php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:326 + //line php7/php7.y:330 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:328 + //line php7/php7.y:334 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:333 + //line php7/php7.y:341 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 79: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:339 + //line php7/php7.y:349 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 80: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:344 + //line php7/php7.y:358 { namePart := name.NewNamePart(yyDollar[1].token.Value) yyVAL.list = []node.Node{namePart} @@ -2603,10 +2609,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(namePart, yyDollar[1].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 81: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:355 + //line php7/php7.y:371 { namePart := name.NewNamePart(yyDollar[3].token.Value) yyVAL.list = append(yyDollar[1].list, namePart) @@ -2617,19 +2625,23 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.NsSeparatorToken) yylex.(*Parser).comments.AddFromToken(namePart, yyDollar[3].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 82: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:370 + //line php7/php7.y:388 { yyVAL.node = name.NewName(yyDollar[1].list) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 83: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:377 + //line php7/php7.y:397 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -2639,10 +2651,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 84: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:388 + //line php7/php7.y:410 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -2651,47 +2665,61 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 85: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:401 + //line php7/php7.y:425 { // error yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:406 + //line php7/php7.y:432 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:408 + //line php7/php7.y:438 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:410 + //line php7/php7.y:444 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 89: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:412 + //line php7/php7.y:450 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:414 + //line php7/php7.y:456 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 91: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:416 + //line php7/php7.y:462 { yyVAL.node = stmt.NewHaltCompiler() @@ -2703,10 +2731,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 92: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:429 + //line php7/php7.y:477 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2718,10 +2748,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 93: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:442 + //line php7/php7.y:492 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2734,10 +2766,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 94: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:456 + //line php7/php7.y:508 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2748,10 +2782,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 95: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:468 + //line php7/php7.y:522 { yyVAL.node = yyDollar[2].node @@ -2761,10 +2797,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 96: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:479 + //line php7/php7.y:535 { yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) @@ -2774,10 +2812,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 97: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:490 + //line php7/php7.y:548 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2787,10 +2827,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 98: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:501 + //line php7/php7.y:561 { yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) @@ -2800,10 +2842,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 99: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:512 + //line php7/php7.y:574 { yyVAL.node = stmt.NewConstList(yyDollar[2].list) @@ -2813,10 +2857,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 100: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:526 + //line php7/php7.y:590 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2825,10 +2871,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FunctionToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 101: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:536 + //line php7/php7.y:602 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2837,10 +2885,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 102: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:549 + //line php7/php7.y:617 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2856,10 +2906,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 103: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:566 + //line php7/php7.y:636 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2876,10 +2928,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 104: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:587 + //line php7/php7.y:659 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2895,10 +2949,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 105: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:604 + //line php7/php7.y:678 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2915,79 +2971,97 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 106: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:625 + //line php7/php7.y:701 { yyVAL.token = nil } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:627 + //line php7/php7.y:705 { yyVAL.token = yyDollar[1].token } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:632 + //line php7/php7.y:712 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 109: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:639 + //line php7/php7.y:721 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 110: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:644 + //line php7/php7.y:730 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:651 + //line php7/php7.y:739 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 112: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:656 + //line php7/php7.y:748 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:663 + //line php7/php7.y:757 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:668 + //line php7/php7.y:766 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 115: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:670 + //line php7/php7.y:772 { yyVAL.node = yyDollar[2].node.(*stmt.Use).SetUseType(yyDollar[1].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:675 + //line php7/php7.y:781 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2995,10 +3069,12 @@ yydefault: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 117: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:684 + //line php7/php7.y:792 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -3012,91 +3088,117 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, yyDollar[3].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:702 + //line php7/php7.y:812 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 119: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:704 + //line php7/php7.y:818 { yyVAL.node = yyDollar[2].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:714 + //line php7/php7.y:830 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:721 + //line php7/php7.y:839 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 122: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:726 + //line php7/php7.y:848 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 123: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:732 + //line php7/php7.y:856 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:737 + //line php7/php7.y:865 { // error yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:742 + //line php7/php7.y:872 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:744 + //line php7/php7.y:878 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:746 + //line php7/php7.y:884 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:748 + //line php7/php7.y:890 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:750 + //line php7/php7.y:896 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 130: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:752 + //line php7/php7.y:902 { yyVAL.node = stmt.NewHaltCompiler() @@ -3108,10 +3210,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 131: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:767 + //line php7/php7.y:919 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3121,22 +3225,28 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 132: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:778 + //line php7/php7.y:932 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 133: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:780 + //line php7/php7.y:938 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 134: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:782 + //line php7/php7.y:944 { switch n := yyDollar[5].node.(type) { case *stmt.While: @@ -3154,10 +3264,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.WhileToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 135: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:801 + //line php7/php7.y:965 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) @@ -3170,10 +3282,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 136: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:815 + //line php7/php7.y:981 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3197,10 +3311,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.ForInitSemicolonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.ForCondSemicolonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:840 + //line php7/php7.y:1008 { switch n := yyDollar[5].node.(type) { case *stmt.Switch: @@ -3220,10 +3336,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SwitchToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 138: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:861 + //line php7/php7.y:1031 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3233,10 +3351,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BreakToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:872 + //line php7/php7.y:1044 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3246,10 +3366,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ContinueToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:883 + //line php7/php7.y:1057 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3259,10 +3381,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ReturnToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:894 + //line php7/php7.y:1070 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3272,10 +3396,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.GlobalToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:905 + //line php7/php7.y:1083 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3285,10 +3411,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 143: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:916 + //line php7/php7.y:1096 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3298,10 +3426,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EchoToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 144: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:927 + //line php7/php7.y:1109 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3310,10 +3440,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.InlineHTMLToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 145: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:937 + //line php7/php7.y:1121 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3322,10 +3454,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:947 + //line php7/php7.y:1133 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3340,10 +3474,12 @@ yydefault: } yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 147: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:963 + //line php7/php7.y:1151 { switch n := yyDollar[7].node.(type) { case *stmt.Foreach: @@ -3364,10 +3500,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 148: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:985 + //line php7/php7.y:1175 { switch n := yyDollar[9].node.(type) { case *stmt.Foreach: @@ -3391,10 +3529,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.DoubleArrowToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 149: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1010 + //line php7/php7.y:1202 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) @@ -3405,10 +3545,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DeclareToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1022 + //line php7/php7.y:1216 { yyVAL.node = stmt.NewNop() @@ -3417,10 +3559,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 151: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1032 + //line php7/php7.y:1228 { if yyDollar[6].node == nil { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3434,10 +3578,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TryToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1047 + //line php7/php7.y:1245 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3447,10 +3593,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ThrowToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1058 + //line php7/php7.y:1258 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3463,10 +3611,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.GotoToken) yylex.(*Parser).comments.AddFromToken(label, yyDollar[2].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 154: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1072 + //line php7/php7.y:1274 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -3478,16 +3628,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(label, yyDollar[1].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 155: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1087 + //line php7/php7.y:1291 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 156: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1089 + //line php7/php7.y:1297 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[5].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3506,31 +3660,39 @@ yydefault: yylex.(*Parser).comments.AddFromToken(catch, yyDollar[6].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(catch, yyDollar[7].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(catch, yyDollar[9].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1111 + //line php7/php7.y:1321 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 158: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1113 + //line php7/php7.y:1327 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.VerticalBarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 159: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1123 + //line php7/php7.y:1339 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 160: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1125 + //line php7/php7.y:1345 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3541,31 +3703,39 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinallyToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1140 + //line php7/php7.y:1362 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 162: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1142 + //line php7/php7.y:1368 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 163: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1152 + //line php7/php7.y:1380 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 164: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:1157 + //line php7/php7.y:1389 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str) @@ -3584,34 +3754,36 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[9].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[11].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1181 + //line php7/php7.y:1415 { yyVAL.token = nil } case 166: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1183 + //line php7/php7.y:1419 { yyVAL.token = yyDollar[1].token } case 167: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1188 + //line php7/php7.y:1426 { yyVAL.token = nil } case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1190 + //line php7/php7.y:1430 { yyVAL.token = yyDollar[1].token } case 169: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1195 + //line php7/php7.y:1437 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list, yyDollar[6].str) @@ -3625,10 +3797,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(name, yyDollar[3].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[9].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 170: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:1210 + //line php7/php7.y:1454 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -3642,22 +3816,28 @@ yydefault: yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 171: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1228 + //line php7/php7.y:1474 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1230 + //line php7/php7.y:1480 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1235 + //line php7/php7.y:1489 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3666,10 +3846,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AbstractToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1245 + //line php7/php7.y:1501 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3678,10 +3860,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 175: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1258 + //line php7/php7.y:1516 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) @@ -3695,10 +3879,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 176: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1276 + //line php7/php7.y:1536 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[6].list, yyDollar[4].str) @@ -3712,16 +3898,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 177: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1294 + //line php7/php7.y:1556 { yyVAL.ClassExtends = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1296 + //line php7/php7.y:1562 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3730,16 +3920,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.ClassExtends, yyDollar[1].token, comment.ExtendsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1309 + //line php7/php7.y:1577 { yyVAL.InterfaceExtends = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1311 + //line php7/php7.y:1583 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3748,16 +3942,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.InterfaceExtends, yyDollar[1].token, comment.ExtendsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 181: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1324 + //line php7/php7.y:1598 { yyVAL.ClassImplements = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1326 + //line php7/php7.y:1604 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3766,16 +3964,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.ClassImplements, yyDollar[1].token, comment.ImplementsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 183: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1339 + //line php7/php7.y:1619 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1343 + //line php7/php7.y:1625 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -3784,10 +3986,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 185: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1353 + //line php7/php7.y:1637 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -3798,10 +4002,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ListToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1365 + //line php7/php7.y:1651 { yyVAL.node = expr.NewShortList(yyDollar[2].list) @@ -3811,19 +4017,23 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1379 + //line php7/php7.y:1667 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 188: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1386 + //line php7/php7.y:1676 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -3836,19 +4046,23 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EndforToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1403 + //line php7/php7.y:1695 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 190: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1410 + //line php7/php7.y:1704 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -3861,16 +4075,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EndforeachToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1427 + //line php7/php7.y:1723 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1429 + //line php7/php7.y:1729 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3881,10 +4099,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EnddeclareToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1444 + //line php7/php7.y:1746 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -3896,10 +4116,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 194: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1457 + //line php7/php7.y:1761 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -3912,10 +4134,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[2].token, comment.SemiColonToken) yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 195: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1471 + //line php7/php7.y:1777 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -3928,10 +4152,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[1].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[3].token, comment.EndswitchToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 196: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1485 + //line php7/php7.y:1793 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -3946,16 +4172,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[2].token, comment.SemiColonToken) yylex.(*Parser).comments.AddFromToken(caseList, yyDollar[4].token, comment.EndswitchToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 197: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1504 + //line php7/php7.y:1814 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 198: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1506 + //line php7/php7.y:1820 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -3966,10 +4196,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(_case, yyDollar[2].token, comment.CaseToken) yylex.(*Parser).comments.AddFromToken(_case, yyDollar[4].token, comment.CaseSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 199: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1518 + //line php7/php7.y:1834 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -3980,31 +4212,35 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(_default, yyDollar[2].token, comment.DefaultToken) yylex.(*Parser).comments.AddFromToken(_default, yyDollar[3].token, comment.CaseSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1533 + //line php7/php7.y:1851 { yyVAL.token = yyDollar[1].token } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1535 + //line php7/php7.y:1855 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1540 + //line php7/php7.y:1862 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 203: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1547 + //line php7/php7.y:1871 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4017,10 +4253,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EndwhileToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 204: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1564 + //line php7/php7.y:1890 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) @@ -4031,10 +4269,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IfToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 205: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1576 + //line php7/php7.y:1904 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) @@ -4047,16 +4287,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[2].token, comment.ElseifToken) yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[3].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[5].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1593 + //line php7/php7.y:1923 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 207: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1595 + //line php7/php7.y:1929 { _else := stmt.NewElse(yyDollar[3].node) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) @@ -4067,10 +4311,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ElseToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 208: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1610 + //line php7/php7.y:1946 { stmts := stmt.NewStmtList(yyDollar[6].list) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) @@ -4084,10 +4330,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 209: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1625 + //line php7/php7.y:1963 { stmts := stmt.NewStmtList(yyDollar[7].list) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) @@ -4102,10 +4350,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[3].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[5].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[6].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1644 + //line php7/php7.y:1984 { yyVAL.node = yyDollar[1].node @@ -4115,10 +4365,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EndifToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 211: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1655 + //line php7/php7.y:1997 { stmts := stmt.NewStmtList(yyDollar[4].list) _else := stmt.NewAltElse(stmts) @@ -4134,37 +4386,47 @@ yydefault: yylex.(*Parser).comments.AddFromToken(_else, yyDollar[3].token, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.EndifToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1675 + //line php7/php7.y:2019 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1677 + //line php7/php7.y:2025 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 214: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1682 + //line php7/php7.y:2034 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 215: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1684 + //line php7/php7.y:2040 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 216: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1694 + //line php7/php7.y:2052 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4191,10 +4453,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EllipsisToken) } yylex.(*Parser).comments.AddFromToken(variable, yyDollar[4].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 217: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1722 + //line php7/php7.y:2082 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4222,28 +4486,36 @@ yydefault: } yylex.(*Parser).comments.AddFromToken(variable, yyDollar[4].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1754 + //line php7/php7.y:2116 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1756 + //line php7/php7.y:2122 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1761 + //line php7/php7.y:2131 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 221: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1763 + //line php7/php7.y:2137 { yyVAL.node = node.NewNullable(yyDollar[2].node) @@ -4252,10 +4524,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.QuestionMarkToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1776 + //line php7/php7.y:2152 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4264,10 +4538,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1786 + //line php7/php7.y:2164 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4276,31 +4552,39 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CallableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1796 + //line php7/php7.y:2176 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 225: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1801 + //line php7/php7.y:2185 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1803 + //line php7/php7.y:2191 { yyVAL.node = yyDollar[2].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 227: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1813 + //line php7/php7.y:2203 { yyVAL.node = node.NewArgumentList(nil) @@ -4310,10 +4594,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 228: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1824 + //line php7/php7.y:2216 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4326,34 +4612,42 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1841 + //line php7/php7.y:2235 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 230: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1843 + //line php7/php7.y:2241 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 231: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1853 + //line php7/php7.y:2253 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 232: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1860 + //line php7/php7.y:2262 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4362,46 +4656,58 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EllipsisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1873 + //line php7/php7.y:2277 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 234: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1880 + //line php7/php7.y:2286 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1885 + //line php7/php7.y:2295 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1890 + //line php7/php7.y:2304 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 237: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1897 + //line php7/php7.y:2313 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1902 + //line php7/php7.y:2322 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4414,10 +4720,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1916 + //line php7/php7.y:2338 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4431,22 +4739,28 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 240: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1934 + //line php7/php7.y:2358 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 241: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1936 + //line php7/php7.y:2364 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1941 + //line php7/php7.y:2373 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4455,10 +4769,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 243: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1951 + //line php7/php7.y:2385 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) @@ -4468,10 +4784,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ConstToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1962 + //line php7/php7.y:2398 { var adaptationList *stmt.TraitAdaptationList @@ -4490,10 +4808,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 245: yyDollar = yyS[yypt-10 : yypt+1] - //line php7/php7.y:1982 + //line php7/php7.y:2420 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node, yyDollar[5].str) @@ -4514,25 +4834,31 @@ yydefault: yylex.(*Parser).comments.AddFromToken(name, yyDollar[4].token, comment.IdentifierToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2007 + //line php7/php7.y:2447 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2009 + //line php7/php7.y:2453 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 248: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2019 + //line php7/php7.y:2465 { yyVAL.node = stmt.NewNop() @@ -4541,10 +4867,11 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2029 + //line php7/php7.y:2477 { yyVAL.node = stmt.NewTraitAdaptationList(nil) @@ -4553,10 +4880,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2039 + //line php7/php7.y:2489 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4565,40 +4894,50 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2052 + //line php7/php7.y:2504 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2054 + //line php7/php7.y:2510 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2059 + //line php7/php7.y:2519 { yyVAL.node = yyDollar[1].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2066 + //line php7/php7.y:2528 { yyVAL.node = yyDollar[1].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2076 + //line php7/php7.y:2540 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4607,10 +4946,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.InsteadofToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2089 + //line php7/php7.y:2555 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4622,10 +4963,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, yyDollar[3].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2102 + //line php7/php7.y:2570 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4637,10 +4980,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, yyDollar[3].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 258: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2115 + //line php7/php7.y:2585 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -4652,10 +4997,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, yyDollar[4].token, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2128 + //line php7/php7.y:2600 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -4664,10 +5011,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 260: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2141 + //line php7/php7.y:2615 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -4678,16 +5027,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2153 + //line php7/php7.y:2629 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2158 + //line php7/php7.y:2638 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -4699,10 +5052,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) yylex.(*Parser).comments.AddFromToken(target, yyDollar[3].token, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2174 + //line php7/php7.y:2656 { yyVAL.node = stmt.NewNop() @@ -4711,10 +5066,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2184 + //line php7/php7.y:2668 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -4724,16 +5081,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2198 + //line php7/php7.y:2684 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2200 + //line php7/php7.y:2690 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -4743,34 +5104,44 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(modifier, yyDollar[1].token, comment.VarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 267: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2214 + //line php7/php7.y:2706 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2216 + //line php7/php7.y:2712 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2221 + //line php7/php7.y:2721 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2223 + //line php7/php7.y:2727 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2228 + //line php7/php7.y:2736 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4779,10 +5150,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PublicToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2238 + //line php7/php7.y:2748 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4791,10 +5164,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ProtectedToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2248 + //line php7/php7.y:2760 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4803,10 +5178,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PrivateToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2258 + //line php7/php7.y:2772 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4815,10 +5192,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2268 + //line php7/php7.y:2784 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4827,10 +5206,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AbstractToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2278 + //line php7/php7.y:2796 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4839,25 +5220,31 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2291 + //line php7/php7.y:2811 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2298 + //line php7/php7.y:2820 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2303 + //line php7/php7.y:2829 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4870,10 +5257,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 280: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2317 + //line php7/php7.y:2845 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4887,25 +5276,31 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2335 + //line php7/php7.y:2865 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2342 + //line php7/php7.y:2874 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 283: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2347 + //line php7/php7.y:2883 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -4917,10 +5312,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.IdentifierToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 284: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2363 + //line php7/php7.y:2901 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -4932,58 +5329,74 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.StringToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2379 + //line php7/php7.y:2919 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2386 + //line php7/php7.y:2928 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2391 + //line php7/php7.y:2937 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2396 + //line php7/php7.y:2946 { yyVAL.list = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2398 + //line php7/php7.y:2952 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2403 + //line php7/php7.y:2961 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2410 + //line php7/php7.y:2970 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 292: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:2415 + //line php7/php7.y:2979 { if yyDollar[2].node != nil { yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].node.(*node.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -4998,10 +5411,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2434 + //line php7/php7.y:3000 { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) @@ -5013,10 +5428,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NewToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2447 + //line php7/php7.y:3015 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -5025,10 +5442,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NewToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 295: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2460 + //line php7/php7.y:3030 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5042,10 +5461,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(list, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(list, yyDollar[4].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 296: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:2475 + //line php7/php7.y:3047 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -5058,10 +5479,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(shortList, yyDollar[1].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(shortList, yyDollar[3].token, comment.CloseSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2489 + //line php7/php7.y:3063 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5070,10 +5493,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 298: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2499 + //line php7/php7.y:3075 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5083,10 +5508,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2510 + //line php7/php7.y:3088 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5095,10 +5522,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CloneToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2520 + //line php7/php7.y:3100 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5107,10 +5536,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2530 + //line php7/php7.y:3112 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5119,10 +5550,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2540 + //line php7/php7.y:3124 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5131,10 +5564,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MulEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2550 + //line php7/php7.y:3136 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5143,10 +5578,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2560 + //line php7/php7.y:3148 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5155,10 +5592,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DivEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2570 + //line php7/php7.y:3160 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5167,10 +5606,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ConcatEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2580 + //line php7/php7.y:3172 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5179,10 +5620,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ModEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2590 + //line php7/php7.y:3184 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5191,10 +5634,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AndEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2600 + //line php7/php7.y:3196 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5203,10 +5648,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2610 + //line php7/php7.y:3208 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5215,10 +5662,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.XorEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2620 + //line php7/php7.y:3220 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5227,10 +5676,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2630 + //line php7/php7.y:3232 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5239,10 +5690,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2640 + //line php7/php7.y:3244 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5251,10 +5704,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IncToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2650 + //line php7/php7.y:3256 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5263,10 +5718,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2660 + //line php7/php7.y:3268 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5275,10 +5732,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DecToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2670 + //line php7/php7.y:3280 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5287,10 +5746,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DecToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2680 + //line php7/php7.y:3292 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5299,10 +5760,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2690 + //line php7/php7.y:3304 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5311,10 +5774,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2700 + //line php7/php7.y:3316 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5323,10 +5788,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2710 + //line php7/php7.y:3328 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5335,10 +5802,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2720 + //line php7/php7.y:3340 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5347,10 +5816,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalXorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2730 + //line php7/php7.y:3352 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5359,10 +5830,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.VerticalBarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2740 + //line php7/php7.y:3364 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5371,10 +5844,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2750 + //line php7/php7.y:3376 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5383,10 +5858,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CaretToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2760 + //line php7/php7.y:3388 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5395,10 +5872,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DotToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2770 + //line php7/php7.y:3400 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5407,10 +5886,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2780 + //line php7/php7.y:3412 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5419,10 +5900,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2790 + //line php7/php7.y:3424 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5431,10 +5914,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsteriskToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2800 + //line php7/php7.y:3436 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5443,10 +5928,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2810 + //line php7/php7.y:3448 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5455,10 +5942,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlashToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2820 + //line php7/php7.y:3460 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5467,10 +5956,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PercentToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2830 + //line php7/php7.y:3472 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5479,10 +5970,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2840 + //line php7/php7.y:3484 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5491,10 +5984,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2850 + //line php7/php7.y:3496 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -5503,10 +5998,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2860 + //line php7/php7.y:3508 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -5515,10 +6012,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2870 + //line php7/php7.y:3520 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -5527,10 +6026,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ExclamationMarkToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2880 + //line php7/php7.y:3532 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -5539,10 +6040,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TildeToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2890 + //line php7/php7.y:3544 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -5551,10 +6054,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2900 + //line php7/php7.y:3556 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -5563,10 +6068,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2910 + //line php7/php7.y:3568 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -5575,10 +6082,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2920 + //line php7/php7.y:3580 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -5587,10 +6096,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2930 + //line php7/php7.y:3592 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -5599,10 +6110,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LessToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2940 + //line php7/php7.y:3604 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -5611,10 +6124,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsSmallerOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2950 + //line php7/php7.y:3616 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -5623,10 +6138,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.GreaterToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2960 + //line php7/php7.y:3628 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -5635,10 +6152,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsGreaterOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2970 + //line php7/php7.y:3640 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -5647,10 +6166,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SpaceshipToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2980 + //line php7/php7.y:3652 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -5659,26 +6180,32 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.InstanceofToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2990 + //line php7/php7.y:3664 { yyVAL.node = yyDollar[2].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2998 + //line php7/php7.y:3674 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 349: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3000 + //line php7/php7.y:3680 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -5688,10 +6215,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 350: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3011 + //line php7/php7.y:3693 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -5701,10 +6230,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 351: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3022 + //line php7/php7.y:3706 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -5713,16 +6244,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CoalesceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3032 + //line php7/php7.y:3718 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3034 + //line php7/php7.y:3724 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -5731,10 +6266,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IntCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3044 + //line php7/php7.y:3736 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -5743,10 +6280,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3054 + //line php7/php7.y:3748 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -5755,10 +6294,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3064 + //line php7/php7.y:3760 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -5767,10 +6308,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3074 + //line php7/php7.y:3772 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -5779,10 +6322,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ObjectCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3084 + //line php7/php7.y:3784 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -5791,10 +6336,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BoolCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3094 + //line php7/php7.y:3796 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -5803,10 +6350,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UnsetCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3104 + //line php7/php7.y:3808 { if strings.EqualFold(yyDollar[1].token.Value, "die") { yyVAL.node = expr.NewDie(nil) @@ -5833,10 +6382,12 @@ yydefault: if yyDollar[2].node != nil { yylex.(*Parser).comments.AddFromChildNode(yyVAL.node, yyDollar[2].node) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3132 + //line php7/php7.y:3838 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -5845,16 +6396,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AtToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3142 + //line php7/php7.y:3850 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3144 + //line php7/php7.y:3856 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -5864,10 +6419,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BackquoteToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.BackquoteToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3155 + //line php7/php7.y:3869 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -5876,10 +6433,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PrintToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3165 + //line php7/php7.y:3881 { yyVAL.node = expr.NewYield(nil, nil) @@ -5888,10 +6447,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3175 + //line php7/php7.y:3893 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -5900,10 +6461,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 367: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3185 + //line php7/php7.y:3905 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -5913,10 +6476,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3196 + //line php7/php7.y:3918 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -5925,10 +6490,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldFromToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 369: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:3206 + //line php7/php7.y:3930 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].token != nil, yyDollar[3].str) @@ -5944,10 +6511,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[9].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[11].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 370: yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:3223 + //line php7/php7.y:3949 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].ClosureUse, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].token != nil, yyDollar[4].str) @@ -5964,35 +6533,41 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[10].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[12].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3244 + //line php7/php7.y:3972 { yyVAL.str = yylex.(*Parser).PhpDocComment yylex.(*Parser).PhpDocComment = "" + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3252 + //line php7/php7.y:3982 { yyVAL.token = nil } case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3254 + //line php7/php7.y:3986 { yyVAL.token = yyDollar[1].token } case 374: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3259 + //line php7/php7.y:3993 { yyVAL.ClosureUse = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 375: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3261 + //line php7/php7.y:3999 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6003,25 +6578,31 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.ClosureUse, yyDollar[1].token, comment.UseToken) yylex.(*Parser).comments.AddFromToken(yyVAL.ClosureUse, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.ClosureUse, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 376: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3276 + //line php7/php7.y:4016 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3283 + //line php7/php7.y:4025 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3288 + //line php7/php7.y:4034 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -6032,10 +6613,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3300 + //line php7/php7.y:4048 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6049,19 +6632,23 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AmpersandToken) yylex.(*Parser).comments.AddFromToken(variable, yyDollar[2].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 380: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3318 + //line php7/php7.y:4068 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 381: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3325 + //line php7/php7.y:4077 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6070,10 +6657,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3335 + //line php7/php7.y:4089 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6082,19 +6671,23 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3345 + //line php7/php7.y:4101 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3355 + //line php7/php7.y:4113 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6103,34 +6696,44 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3365 + //line php7/php7.y:4125 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3370 + //line php7/php7.y:4134 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 387: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3372 + //line php7/php7.y:4140 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3377 + //line php7/php7.y:4149 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3379 + //line php7/php7.y:4155 { yyVAL.node = expr.NewExit(yyDollar[2].node) @@ -6140,40 +6743,52 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3393 + //line php7/php7.y:4171 { yyVAL.list = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3395 + //line php7/php7.y:4177 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3397 + //line php7/php7.y:4183 { yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 393: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3402 + //line php7/php7.y:4192 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3404 + //line php7/php7.y:4198 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 395: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3409 + //line php7/php7.y:4207 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6184,10 +6799,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3421 + //line php7/php7.y:4221 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6197,10 +6814,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3432 + //line php7/php7.y:4234 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6209,10 +6828,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstantEncapsedStringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3445 + //line php7/php7.y:4249 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -6221,10 +6842,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.LnumberToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3455 + //line php7/php7.y:4261 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -6233,10 +6856,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DnumberToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3465 + //line php7/php7.y:4273 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6245,10 +6870,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.LineToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3475 + //line php7/php7.y:4285 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6257,10 +6884,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FileToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3485 + //line php7/php7.y:4297 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6269,10 +6898,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DirToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3495 + //line php7/php7.y:4309 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6281,10 +6912,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TraitCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3505 + //line php7/php7.y:4321 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6293,10 +6926,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MethodCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3515 + //line php7/php7.y:4333 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6305,10 +6940,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FuncCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3525 + //line php7/php7.y:4345 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6317,10 +6954,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3535 + //line php7/php7.y:4357 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6329,10 +6968,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3545 + //line php7/php7.y:4369 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -6343,10 +6984,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 409: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3557 + //line php7/php7.y:4383 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -6355,10 +6998,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3567 + //line php7/php7.y:4395 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -6367,10 +7012,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleQuoteToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3577 + //line php7/php7.y:4407 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -6379,31 +7026,39 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3587 + //line php7/php7.y:4419 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 413: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3589 + //line php7/php7.y:4425 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3594 + //line php7/php7.y:4434 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3601 + //line php7/php7.y:4443 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -6415,10 +7070,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) yylex.(*Parser).comments.AddFromToken(target, yyDollar[3].token, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3614 + //line php7/php7.y:4458 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -6430,90 +7087,116 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) yylex.(*Parser).comments.AddFromToken(target, yyDollar[3].token, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3630 + //line php7/php7.y:4476 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3632 + //line php7/php7.y:4482 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 419: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3637 + //line php7/php7.y:4491 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3639 + //line php7/php7.y:4497 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3644 + //line php7/php7.y:4506 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3649 + //line php7/php7.y:4515 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3651 + //line php7/php7.y:4521 { yyVAL.node = yyDollar[2].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3659 + //line php7/php7.y:4531 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3664 + //line php7/php7.y:4540 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3666 + //line php7/php7.y:4546 { yyVAL.node = yyDollar[2].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 427: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3674 + //line php7/php7.y:4556 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3679 + //line php7/php7.y:4565 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3681 + //line php7/php7.y:4571 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6523,10 +7206,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3692 + //line php7/php7.y:4584 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6536,10 +7221,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3703 + //line php7/php7.y:4597 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6549,10 +7236,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 432: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3714 + //line php7/php7.y:4610 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6561,28 +7250,36 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3724 + //line php7/php7.y:4622 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3729 + //line php7/php7.y:4631 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3731 + //line php7/php7.y:4637 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 436: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3733 + //line php7/php7.y:4643 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6591,10 +7288,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3746 + //line php7/php7.y:4658 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -6605,10 +7304,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 438: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3758 + //line php7/php7.y:4672 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -6619,10 +7320,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 439: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3770 + //line php7/php7.y:4686 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -6631,10 +7334,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3783 + //line php7/php7.y:4701 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6643,10 +7348,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 441: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3793 + //line php7/php7.y:4713 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6655,16 +7362,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3806 + //line php7/php7.y:4728 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 443: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3808 + //line php7/php7.y:4734 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6674,10 +7385,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3819 + //line php7/php7.y:4747 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6687,10 +7400,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3830 + //line php7/php7.y:4760 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6699,10 +7414,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 446: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3840 + //line php7/php7.y:4772 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6711,10 +7428,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 447: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3850 + //line php7/php7.y:4784 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6723,10 +7442,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3863 + //line php7/php7.y:4799 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6735,26 +7456,32 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3873 + //line php7/php7.y:4811 { yyVAL.node = yyDollar[2].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3881 + //line php7/php7.y:4821 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3886 + //line php7/php7.y:4830 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6763,63 +7490,79 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 452: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3896 + //line php7/php7.y:4842 { yyVAL.node = yyDollar[2].node // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 453: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3904 + //line php7/php7.y:4852 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3909 + //line php7/php7.y:4861 { if yyDollar[1].list[len(yyDollar[1].list)-1] == nil { yyVAL.list = yyDollar[1].list[:len(yyDollar[1].list)-1] } else { yyVAL.list = yyDollar[1].list } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 455: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3920 + //line php7/php7.y:4874 { yyVAL.node = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3922 + //line php7/php7.y:4880 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3927 + //line php7/php7.y:4889 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3934 + //line php7/php7.y:4898 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3939 + //line php7/php7.y:4907 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) @@ -6828,19 +7571,23 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 460: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3949 + //line php7/php7.y:4919 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3956 + //line php7/php7.y:4928 { reference := expr.NewReference(yyDollar[4].node) yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference) @@ -6851,10 +7598,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DoubleArrowToken) yylex.(*Parser).comments.AddFromToken(reference, yyDollar[3].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3968 + //line php7/php7.y:4942 { reference := expr.NewReference(yyDollar[2].node) yyVAL.node = expr.NewArrayItem(nil, reference) @@ -6864,10 +7613,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(reference, yyDollar[1].token, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 463: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3979 + //line php7/php7.y:4955 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) @@ -6882,10 +7633,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(list, yyDollar[3].token, comment.ListToken) yylex.(*Parser).comments.AddFromToken(list, yyDollar[4].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(list, yyDollar[6].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3995 + //line php7/php7.y:4973 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) @@ -6899,16 +7652,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(list, yyDollar[1].token, comment.ListToken) yylex.(*Parser).comments.AddFromToken(list, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(list, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4013 + //line php7/php7.y:4993 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4015 + //line php7/php7.y:4999 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -6918,16 +7675,20 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(encapsed, yyDollar[2].token, comment.EncapsedAndWhitespaceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4026 + //line php7/php7.y:5012 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4028 + //line php7/php7.y:5018 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -6937,10 +7698,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(encapsed, yyDollar[1].token, comment.EncapsedAndWhitespaceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4042 + //line php7/php7.y:5034 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -6951,10 +7714,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4054 + //line php7/php7.y:5048 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6969,10 +7734,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4070 + //line php7/php7.y:5066 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6989,10 +7756,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[3].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4088 + //line php7/php7.y:5086 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7002,10 +7771,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4099 + //line php7/php7.y:5099 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = expr.NewVariable(name) @@ -7018,10 +7789,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringVarnameToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 474: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:4113 + //line php7/php7.y:5115 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -7038,16 +7811,20 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseSquareBracket) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4131 + //line php7/php7.y:5135 { yyVAL.node = yyDollar[2].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4138 + //line php7/php7.y:5144 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7056,10 +7833,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4148 + //line php7/php7.y:5156 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -7073,10 +7852,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NumStringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4163 + //line php7/php7.y:5173 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -7104,10 +7885,12 @@ yydefault: } else { yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NumStringToken) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4192 + //line php7/php7.y:5204 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -7118,10 +7901,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 480: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:4207 + //line php7/php7.y:5221 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -7135,10 +7920,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4222 + //line php7/php7.y:5238 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -7149,10 +7936,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EmptyToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4234 + //line php7/php7.y:5252 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -7161,10 +7950,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncludeToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4244 + //line php7/php7.y:5264 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -7173,10 +7964,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncludeOnceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 484: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4254 + //line php7/php7.y:5276 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -7187,10 +7980,12 @@ yydefault: yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EvalToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4266 + //line php7/php7.y:5290 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -7199,10 +7994,12 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.RequireToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4276 + //line php7/php7.y:5302 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -7211,27 +8008,35 @@ yydefault: // save comments yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.RequireOnceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4289 + //line php7/php7.y:5317 { yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4291 + //line php7/php7.y:5323 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4301 + //line php7/php7.y:5335 { yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } } goto yystack /* stack new state and value */ diff --git a/php7/php7.y b/php7/php7.y index 476e267..1620098 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -302,6 +302,8 @@ start: // save position yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -317,15 +319,21 @@ reserved_non_modifiers: semi_reserved: reserved_non_modifiers - { $$ = $1 } + { + $$ = $1 + } | T_STATIC {$$=$1} | T_ABSTRACT {$$=$1} | T_FINAL {$$=$1} | T_PRIVATE {$$=$1} | T_PROTECTED {$$=$1} | T_PUBLIC {$$=$1} ; identifier: T_STRING - { $$ = $1 } + { + $$ = $1 + } | semi_reserved - { $$ = $1 } + { + $$ = $1 + } ; top_statement_list: @@ -334,9 +342,15 @@ top_statement_list: if $2 != nil { $$ = append($1, $2) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; namespace_name: @@ -350,6 +364,8 @@ namespace_name: // save comments yylex.(*Parser).comments.AddFromToken(namePart, $1, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_NS_SEPARATOR T_STRING { @@ -362,6 +378,8 @@ namespace_name: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.NsSeparatorToken) yylex.(*Parser).comments.AddFromToken(namePart, $3, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -372,6 +390,8 @@ name: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { @@ -383,6 +403,8 @@ name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { @@ -393,6 +415,8 @@ name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -401,17 +425,39 @@ top_statement: { // error $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | function_declaration_statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | class_declaration_statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | trait_declaration_statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | interface_declaration_statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_HALT_COMPILER '(' ')' ';' { $$ = stmt.NewHaltCompiler() @@ -424,6 +470,8 @@ top_statement: yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE namespace_name ';' { @@ -437,6 +485,8 @@ top_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE namespace_name '{' top_statement_list '}' { @@ -451,6 +501,8 @@ top_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE '{' top_statement_list '}' { @@ -463,6 +515,8 @@ top_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE mixed_group_use_declaration ';' { @@ -474,6 +528,8 @@ top_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE use_type group_use_declaration ';' { @@ -485,6 +541,8 @@ top_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE use_declarations ';' { @@ -496,6 +554,8 @@ top_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE use_type use_declarations ';' { @@ -507,6 +567,8 @@ top_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONST const_list ';' { @@ -518,6 +580,8 @@ top_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -531,6 +595,8 @@ use_type: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FunctionToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONST { @@ -541,6 +607,8 @@ use_type: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -561,6 +629,8 @@ group_use_declaration: yylex.(*Parser).comments.AddFromToken($$, $5, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { @@ -579,6 +649,8 @@ group_use_declaration: yylex.(*Parser).comments.AddFromToken($$, $6, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -599,6 +671,8 @@ mixed_group_use_declaration: yylex.(*Parser).comments.AddFromToken($$, $5, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { @@ -617,14 +691,20 @@ mixed_group_use_declaration: yylex.(*Parser).comments.AddFromToken($$, $6, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; possible_comma: /* empty */ - { $$ = nil } + { + $$ = nil + } | ',' - { $$ = $1 } + { + $$ = $1 + } ; inline_use_declarations: @@ -634,9 +714,15 @@ inline_use_declarations: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | inline_use_declaration - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; unprefixed_use_declarations: @@ -646,9 +732,15 @@ unprefixed_use_declarations: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | unprefixed_use_declaration - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; use_declarations: @@ -658,16 +750,30 @@ use_declarations: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | use_declaration - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; inline_use_declaration: unprefixed_use_declaration - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | use_type unprefixed_use_declaration - { $$ = $2.(*stmt.Use).SetUseType($1) } + { + $$ = $2.(*stmt.Use).SetUseType($1) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; unprefixed_use_declaration: @@ -679,6 +785,8 @@ unprefixed_use_declaration: // save position yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { @@ -694,18 +802,26 @@ unprefixed_use_declaration: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, $3, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; use_declaration: unprefixed_use_declaration - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_NS_SEPARATOR unprefixed_use_declaration { $$ = $2; // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -716,9 +832,15 @@ const_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | const_decl - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; inner_statement_list: @@ -727,9 +849,15 @@ inner_statement_list: if $2 != nil { $$ = append($1, $2) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; inner_statement: @@ -737,17 +865,39 @@ inner_statement: { // error $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | function_declaration_statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | class_declaration_statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | trait_declaration_statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | interface_declaration_statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_HALT_COMPILER '(' ')' ';' { $$ = stmt.NewHaltCompiler() @@ -760,6 +910,8 @@ inner_statement: yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } statement: @@ -773,11 +925,21 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | if_stmt - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | alt_if_stmt - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_WHILE '(' expr ')' while_statement { switch n := $5.(type) { @@ -796,6 +958,8 @@ statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.WhileToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DO statement T_WHILE '(' expr ')' ';' { @@ -810,6 +974,8 @@ statement: yylex.(*Parser).comments.AddFromToken($$, $4, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $7, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FOR '(' for_exprs ';' for_exprs ';' for_exprs ')' for_statement { @@ -835,6 +1001,8 @@ statement: yylex.(*Parser).comments.AddFromToken($$, $4, comment.ForInitSemicolonToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.ForCondSemicolonToken) yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_SWITCH '(' expr ')' switch_case_list { @@ -856,6 +1024,8 @@ statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.SwitchToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_BREAK optional_expr ';' { @@ -867,6 +1037,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BreakToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONTINUE optional_expr ';' { @@ -878,6 +1050,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ContinueToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_RETURN optional_expr ';' { @@ -889,6 +1063,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ReturnToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_GLOBAL global_var_list ';' { @@ -900,6 +1076,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.GlobalToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC static_var_list ';' { @@ -911,6 +1089,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ECHO echo_expr_list ';' { @@ -922,6 +1102,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EchoToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INLINE_HTML { @@ -932,6 +1114,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.InlineHTMLToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr ';' { @@ -942,6 +1126,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_UNSET '(' unset_variables possible_comma ')' ';' { @@ -958,6 +1144,8 @@ statement: } yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement { @@ -980,6 +1168,8 @@ statement: yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.AsToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement { @@ -1005,6 +1195,8 @@ statement: yylex.(*Parser).comments.AddFromToken($$, $4, comment.AsToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.DoubleArrowToken) yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DECLARE '(' const_list ')' declare_statement { @@ -1017,6 +1209,8 @@ statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.DeclareToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ';' { @@ -1027,6 +1221,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { @@ -1042,6 +1238,8 @@ statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.TryToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_THROW expr ';' { @@ -1053,6 +1251,8 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ThrowToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_GOTO T_STRING ';' { @@ -1067,6 +1267,8 @@ statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.GotoToken) yylex.(*Parser).comments.AddFromToken(label, $2, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STRING ':' { @@ -1080,11 +1282,17 @@ statement: // save comments yylex.(*Parser).comments.AddFromToken(label, $1, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } catch_list: /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}' { identifier := node.NewIdentifier(strings.TrimLeftFunc($5.Value, isDollar)) @@ -1104,23 +1312,35 @@ catch_list: yylex.(*Parser).comments.AddFromToken(catch, $6, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(catch, $7, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(catch, $9, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; catch_name_list: name - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | catch_name_list '|' name { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.VerticalBarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; finally_statement: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_FINALLY '{' inner_statement_list '}' { $$ = stmt.NewFinally($3) @@ -1132,24 +1352,36 @@ finally_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinallyToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; unset_variables: unset_variable - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | unset_variables ',' unset_variable { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; unset_variable: variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; function_declaration_statement: @@ -1173,21 +1405,31 @@ function_declaration_statement: yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $9, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $11, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; is_reference: /* empty */ - { $$ = nil } + { + $$ = nil + } | '&' - { $$ = $1 } + { + $$ = $1 + } ; is_variadic: /* empty */ - { $$ = nil } + { + $$ = nil + } | T_ELLIPSIS - { $$ = $1 } + { + $$ = $1 + } ; class_declaration_statement: @@ -1205,6 +1447,8 @@ class_declaration_statement: yylex.(*Parser).comments.AddFromToken(name, $3, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $7, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $9, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { @@ -1220,14 +1464,24 @@ class_declaration_statement: yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; class_modifiers: class_modifier - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | class_modifiers class_modifier - { $$ = append($1, $2) } + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; class_modifier: @@ -1240,6 +1494,8 @@ class_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AbstractToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FINAL { @@ -1250,6 +1506,8 @@ class_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1268,6 +1526,8 @@ trait_declaration_statement: yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1286,12 +1546,18 @@ interface_declaration_statement: yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; extends_from: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_EXTENDS name { $$ = stmt.NewClassExtends($2); @@ -1301,12 +1567,18 @@ extends_from: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExtendsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; interface_extends_list: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_EXTENDS name_list { $$ = stmt.NewInterfaceExtends($2); @@ -1316,12 +1588,18 @@ interface_extends_list: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExtendsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; implements_list: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_IMPLEMENTS name_list { $$ = stmt.NewClassImplements($2); @@ -1331,6 +1609,8 @@ implements_list: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ImplementsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1338,6 +1618,8 @@ foreach_variable: variable { $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' variable { @@ -1348,6 +1630,8 @@ foreach_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LIST '(' array_pair_list ')' { @@ -1360,6 +1644,8 @@ foreach_variable: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ListToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '[' array_pair_list ']' { @@ -1371,6 +1657,8 @@ foreach_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1381,6 +1669,8 @@ for_statement: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDFOR ';' { @@ -1395,6 +1685,8 @@ for_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.EndforToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1405,6 +1697,8 @@ foreach_statement: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDFOREACH ';' { @@ -1419,12 +1713,18 @@ foreach_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.EndforeachToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; declare_statement: statement - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | ':' inner_statement_list T_ENDDECLARE ';' { $$ = stmt.NewStmtList($2) @@ -1436,6 +1736,8 @@ declare_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.EnddeclareToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1452,6 +1754,8 @@ switch_case_list: // save comments yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(caseList, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' ';' case_list '}' { @@ -1466,6 +1770,8 @@ switch_case_list: yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(caseList, $2, comment.SemiColonToken) yylex.(*Parser).comments.AddFromToken(caseList, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' case_list T_ENDSWITCH ';' { @@ -1480,6 +1786,8 @@ switch_case_list: yylex.(*Parser).comments.AddFromToken(caseList, $1, comment.ColonToken) yylex.(*Parser).comments.AddFromToken(caseList, $3, comment.EndswitchToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' ';' case_list T_ENDSWITCH ';' { @@ -1496,12 +1804,18 @@ switch_case_list: yylex.(*Parser).comments.AddFromToken(caseList, $2, comment.SemiColonToken) yylex.(*Parser).comments.AddFromToken(caseList, $4, comment.EndswitchToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; case_list: /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | case_list T_CASE expr case_separator inner_statement_list { _case := stmt.NewCase($3, $5) @@ -1513,6 +1827,8 @@ case_list: // save comments yylex.(*Parser).comments.AddFromToken(_case, $2, comment.CaseToken) yylex.(*Parser).comments.AddFromToken(_case, $4, comment.CaseSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | case_list T_DEFAULT case_separator inner_statement_list { @@ -1525,14 +1841,20 @@ case_list: // save comments yylex.(*Parser).comments.AddFromToken(_default, $2, comment.DefaultToken) yylex.(*Parser).comments.AddFromToken(_default, $3, comment.CaseSeparatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; case_separator: ':' - { $$ = $1 } + { + $$ = $1 + } | ';' - { $$ = $1 } + { + $$ = $1 + } ; while_statement: @@ -1542,6 +1864,8 @@ while_statement: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDWHILE ';' { @@ -1556,6 +1880,8 @@ while_statement: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.EndwhileToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1571,6 +1897,8 @@ if_stmt_without_else: yylex.(*Parser).comments.AddFromToken($$, $1, comment.IfToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | if_stmt_without_else T_ELSEIF '(' expr ')' statement { @@ -1585,12 +1913,18 @@ if_stmt_without_else: yylex.(*Parser).comments.AddFromToken(_elseIf, $2, comment.ElseifToken) yylex.(*Parser).comments.AddFromToken(_elseIf, $3, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(_elseIf, $5, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; if_stmt: if_stmt_without_else %prec T_NOELSE - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | if_stmt_without_else T_ELSE statement { _else := stmt.NewElse($3) @@ -1602,6 +1936,8 @@ if_stmt: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ElseToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1620,6 +1956,8 @@ alt_if_stmt_without_else: yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { @@ -1636,6 +1974,8 @@ alt_if_stmt_without_else: yylex.(*Parser).comments.AddFromToken(_elseIf, $3, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(_elseIf, $5, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken(_elseIf, $6, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1650,6 +1990,8 @@ alt_if_stmt: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EndifToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { @@ -1667,25 +2009,41 @@ alt_if_stmt: yylex.(*Parser).comments.AddFromToken(_else, $3, comment.ColonToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.EndifToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; parameter_list: non_empty_parameter_list - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; non_empty_parameter_list: parameter - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_parameter_list ',' parameter { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1717,6 +2075,8 @@ parameter: yylex.(*Parser).comments.AddFromToken($$, $3, comment.EllipsisToken) } yylex.(*Parser).comments.AddFromToken(variable, $4, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | optional_type is_reference is_variadic T_VARIABLE '=' expr { @@ -1746,19 +2106,33 @@ parameter: } yylex.(*Parser).comments.AddFromToken(variable, $4, comment.VariableToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; optional_type: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | type_expr - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; type_expr: type - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '?' type { $$ = node.NewNullable($2) @@ -1768,6 +2142,8 @@ type_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.QuestionMarkToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1781,6 +2157,8 @@ type: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CALLABLE { @@ -1791,20 +2169,32 @@ type: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.CallableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | name - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; return_type: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | ':' type_expr { $$ = $2; // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1819,6 +2209,8 @@ argument_list: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' non_empty_argument_list possible_comma ')' { @@ -1833,18 +2225,26 @@ argument_list: yylex.(*Parser).comments.AddFromToken($$, $3, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; non_empty_argument_list: argument - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_argument_list ',' argument { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1855,6 +2255,8 @@ argument: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ELLIPSIS expr { @@ -1865,6 +2267,8 @@ argument: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.EllipsisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1875,14 +2279,24 @@ global_var_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | global_var - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; global_var: simple_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; static_var_list: @@ -1892,9 +2306,15 @@ static_var_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_var - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; static_var: @@ -1911,6 +2331,8 @@ static_var: // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '=' expr { @@ -1926,14 +2348,24 @@ static_var: // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; class_statement_list: class_statement_list class_statement - { $$ = append($1, $2) } + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; class_statement: @@ -1946,6 +2378,8 @@ class_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | method_modifiers T_CONST class_const_list ';' { @@ -1957,6 +2391,8 @@ class_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ConstToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE name_list trait_adaptations { @@ -1977,6 +2413,8 @@ class_statement: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { @@ -1999,18 +2437,26 @@ class_statement: yylex.(*Parser).comments.AddFromToken(name, $4, comment.IdentifierToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; name_list: name - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | name_list ',' name { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2024,6 +2470,8 @@ trait_adaptations: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' '}' { @@ -2034,6 +2482,8 @@ trait_adaptations: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' trait_adaptation_list '}' { @@ -2044,14 +2494,24 @@ trait_adaptations: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; trait_adaptation_list: trait_adaptation - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | trait_adaptation_list trait_adaptation - { $$ = append($1, $2) } + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; trait_adaptation: @@ -2061,6 +2521,8 @@ trait_adaptation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_alias ';' { @@ -2068,6 +2530,8 @@ trait_adaptation: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2081,6 +2545,8 @@ trait_precedence: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.InsteadofToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2097,6 +2563,8 @@ trait_alias: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, $3, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_method_reference T_AS reserved_non_modifiers { @@ -2110,6 +2578,8 @@ trait_alias: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, $3, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_method_reference T_AS member_modifier identifier { @@ -2123,6 +2593,8 @@ trait_alias: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) yylex.(*Parser).comments.AddFromToken(alias, $4, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_method_reference T_AS member_modifier { @@ -2133,6 +2605,8 @@ trait_alias: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2148,9 +2622,15 @@ trait_method_reference: // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | absolute_trait_method_reference - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; absolute_trait_method_reference: @@ -2166,6 +2646,8 @@ absolute_trait_method_reference: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) yylex.(*Parser).comments.AddFromToken(target, $3, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2179,6 +2661,8 @@ method_body: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' inner_statement_list '}' { @@ -2190,12 +2674,18 @@ method_body: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; variable_modifiers: non_empty_member_modifiers - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_VAR { modifier := node.NewIdentifier($1.Value) @@ -2206,21 +2696,39 @@ variable_modifiers: // save comments yylex.(*Parser).comments.AddFromToken(modifier, $1, comment.VarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; method_modifiers: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_member_modifiers - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; non_empty_member_modifiers: member_modifier - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_member_modifiers member_modifier - { $$ = append($1, $2) } + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; member_modifier: @@ -2233,6 +2741,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PublicToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_PROTECTED { @@ -2243,6 +2753,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ProtectedToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_PRIVATE { @@ -2253,6 +2765,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PrivateToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC { @@ -2263,6 +2777,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ABSTRACT { @@ -2273,6 +2789,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AbstractToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FINAL { @@ -2283,6 +2801,8 @@ member_modifier: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2293,9 +2813,15 @@ property_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | property - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; property: @@ -2312,6 +2838,8 @@ property: // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '=' expr backup_doc_comment { @@ -2327,6 +2855,8 @@ property: // save comments yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2337,9 +2867,15 @@ class_const_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_const_decl - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; class_const_decl: @@ -2355,6 +2891,8 @@ class_const_decl: // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.IdentifierToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2371,6 +2909,8 @@ const_decl: // save comments yylex.(*Parser).comments.AddFromToken(name, $1, comment.StringToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2381,21 +2921,39 @@ echo_expr_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | echo_expr - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; echo_expr: expr - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; for_exprs: /* empty */ - { $$ = nil; } + { + $$ = nil; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | non_empty_for_exprs - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; non_empty_for_exprs: @@ -2405,9 +2963,15 @@ non_empty_for_exprs: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; anonymous_class: @@ -2426,6 +2990,8 @@ anonymous_class: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassToken) yylex.(*Parser).comments.AddFromToken($$, $6, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2442,6 +3008,8 @@ new_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NewToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NEW anonymous_class { @@ -2452,6 +3020,8 @@ new_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NewToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2470,6 +3040,8 @@ expr_without_variable: yylex.(*Parser).comments.AddFromToken(list, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(list, $4, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $5, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '[' array_pair_list ']' '=' expr { @@ -2484,6 +3056,8 @@ expr_without_variable: yylex.(*Parser).comments.AddFromToken(shortList, $1, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken(shortList, $3, comment.CloseSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable '=' expr { @@ -2494,6 +3068,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable '=' '&' expr { @@ -2505,6 +3081,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLONE expr { @@ -2515,6 +3093,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.CloneToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_PLUS_EQUAL expr { @@ -2525,6 +3105,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MINUS_EQUAL expr { @@ -2535,6 +3117,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MUL_EQUAL expr { @@ -2545,6 +3129,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MulEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_POW_EQUAL expr { @@ -2555,6 +3141,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_DIV_EQUAL expr { @@ -2565,6 +3153,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DivEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_CONCAT_EQUAL expr { @@ -2575,6 +3165,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ConcatEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MOD_EQUAL expr { @@ -2585,6 +3177,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ModEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_AND_EQUAL expr { @@ -2595,6 +3189,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AndEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_OR_EQUAL expr { @@ -2605,6 +3201,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_XOR_EQUAL expr { @@ -2615,6 +3213,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.XorEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_SL_EQUAL expr { @@ -2625,6 +3225,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_SR_EQUAL expr { @@ -2635,6 +3237,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_INC { @@ -2645,6 +3249,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IncToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INC variable { @@ -2655,6 +3261,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_DEC { @@ -2665,6 +3273,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DecToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DEC variable { @@ -2675,6 +3285,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DecToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_BOOLEAN_OR expr { @@ -2685,6 +3297,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_BOOLEAN_AND expr { @@ -2695,6 +3309,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_OR expr { @@ -2705,6 +3321,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalOrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_AND expr { @@ -2715,6 +3333,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalAndToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_XOR expr { @@ -2725,6 +3345,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalXorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '|' expr { @@ -2735,6 +3357,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.VerticalBarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '&' expr { @@ -2745,6 +3369,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '^' expr { @@ -2755,6 +3381,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.CaretToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '.' expr { @@ -2765,6 +3393,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DotToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '+' expr { @@ -2775,6 +3405,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '-' expr { @@ -2785,6 +3417,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '*' expr { @@ -2795,6 +3429,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsteriskToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_POW expr { @@ -2805,6 +3441,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '/' expr { @@ -2815,6 +3453,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlashToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '%' expr { @@ -2825,6 +3465,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PercentToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_SL expr { @@ -2835,6 +3477,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_SR expr { @@ -2845,6 +3489,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '+' expr %prec T_INC { @@ -2855,6 +3501,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PlusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '-' expr %prec T_INC { @@ -2865,6 +3513,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MinusToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '!' expr { @@ -2875,6 +3525,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExclamationMarkToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '~' expr { @@ -2885,6 +3537,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TildeToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_IDENTICAL expr { @@ -2895,6 +3549,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_NOT_IDENTICAL expr { @@ -2905,6 +3561,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotIdenticalToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_EQUAL expr { @@ -2915,6 +3573,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_NOT_EQUAL expr { @@ -2925,6 +3585,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '<' expr { @@ -2935,6 +3597,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.LessToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_SMALLER_OR_EQUAL expr { @@ -2945,6 +3609,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsSmallerOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '>' expr { @@ -2955,6 +3621,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.GreaterToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_GREATER_OR_EQUAL expr { @@ -2965,6 +3633,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsGreaterOrEqualToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_SPACESHIP expr { @@ -2975,6 +3645,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.SpaceshipToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_INSTANCEOF class_name_reference { @@ -2985,6 +3657,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.InstanceofToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' expr ')' { @@ -2993,9 +3667,15 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_expr - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | expr '?' expr ':' expr { $$ = expr.NewTernary($1, $3, $5) @@ -3006,6 +3686,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '?' ':' expr { @@ -3017,6 +3699,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.ColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_COALESCE expr { @@ -3027,9 +3711,15 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.CoalesceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | internal_functions_in_yacc - { $$ = $1} + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_INT_CAST expr { $$ = cast.NewInt($2) @@ -3039,6 +3729,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IntCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOUBLE_CAST expr { @@ -3049,6 +3741,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STRING_CAST expr { @@ -3059,6 +3753,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ARRAY_CAST expr { @@ -3069,6 +3765,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_OBJECT_CAST expr { @@ -3079,6 +3777,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ObjectCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_BOOL_CAST expr { @@ -3089,6 +3789,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BoolCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_UNSET_CAST expr { @@ -3099,6 +3801,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.UnsetCastToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EXIT exit_expr { @@ -3127,6 +3831,8 @@ expr_without_variable: if $2 != nil { yylex.(*Parser).comments.AddFromChildNode($$, $2) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '@' expr { @@ -3137,9 +3843,15 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AtToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | scalar - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '`' backticks_expr '`' { $$ = expr.NewShellExec($2) @@ -3150,6 +3862,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.BackquoteToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.BackquoteToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_PRINT expr { @@ -3160,6 +3874,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.PrintToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD { @@ -3170,6 +3886,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD expr { @@ -3180,6 +3898,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD expr T_DOUBLE_ARROW expr { @@ -3191,6 +3911,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD_FROM expr { @@ -3201,6 +3923,8 @@ expr_without_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldFromToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { @@ -3218,6 +3942,8 @@ expr_without_variable: yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $9, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $11, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { @@ -3236,6 +3962,8 @@ expr_without_variable: yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $10, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $12, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3244,19 +3972,29 @@ backup_doc_comment: { $$ = yylex.(*Parser).PhpDocComment yylex.(*Parser).PhpDocComment = "" + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; returns_ref: /* empty */ - { $$ = nil } + { + $$ = nil + } | '&' - { $$ = $1 } + { + $$ = $1 + } ; lexical_vars: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_USE '(' lexical_var_list ')' { $$ = expr.NewClosureUse($3) @@ -3268,6 +4006,8 @@ lexical_vars: yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3278,9 +4018,15 @@ lexical_var_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | lexical_var - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; lexical_var: @@ -3295,6 +4041,8 @@ lexical_var: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' T_VARIABLE { @@ -3310,6 +4058,8 @@ lexical_var: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.AmpersandToken) yylex.(*Parser).comments.AddFromToken(variable, $2, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3320,6 +4070,8 @@ function_call: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { @@ -3330,6 +4082,8 @@ function_call: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { @@ -3340,6 +4094,8 @@ function_call: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | callable_expr argument_list { @@ -3347,6 +4103,8 @@ function_call: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3360,21 +4118,39 @@ class_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | name - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; class_name_reference: class_name - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | new_variable - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; exit_expr: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '(' optional_expr ')' { $$ = expr.NewExit($2); @@ -3385,23 +4161,45 @@ exit_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; backticks_expr: /* empty */ - { $$ = []node.Node{} } + { + $$ = []node.Node{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_ENCAPSED_AND_WHITESPACE - { $$ = []node.Node{scalar.NewEncapsedStringPart($1.Value)} } + { + $$ = []node.Node{scalar.NewEncapsedStringPart($1.Value)} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | encaps_list - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; ctor_arguments: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | argument_list - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; dereferencable_scalar: @@ -3416,6 +4214,8 @@ dereferencable_scalar: yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '[' array_pair_list ']' { @@ -3427,6 +4227,8 @@ dereferencable_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONSTANT_ENCAPSED_STRING { @@ -3437,6 +4239,8 @@ dereferencable_scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstantEncapsedStringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3450,6 +4254,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.LnumberToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DNUMBER { @@ -3460,6 +4266,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DnumberToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LINE { @@ -3470,6 +4278,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.LineToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FILE { @@ -3480,6 +4290,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FileToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DIR { @@ -3490,6 +4302,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DirToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_TRAIT_C { @@ -3500,6 +4314,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.TraitCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_METHOD_C { @@ -3510,6 +4326,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.MethodCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FUNC_C { @@ -3520,6 +4338,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.FuncCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_C { @@ -3530,6 +4350,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLASS_C { @@ -3540,6 +4362,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassCToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { @@ -3552,6 +4376,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_START_HEREDOC T_END_HEREDOC { @@ -3562,6 +4388,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '"' encaps_list '"' { @@ -3572,6 +4400,8 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleQuoteToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_START_HEREDOC encaps_list T_END_HEREDOC { @@ -3582,11 +4412,21 @@ scalar: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dereferencable_scalar - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | constant - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; constant: @@ -3596,6 +4436,8 @@ constant: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { @@ -3609,6 +4451,8 @@ constant: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) yylex.(*Parser).comments.AddFromToken(target, $3, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { @@ -3622,31 +4466,57 @@ constant: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) yylex.(*Parser).comments.AddFromToken(target, $3, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; expr: variable - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | expr_without_variable - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; optional_expr: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | expr - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; variable_class_name: dereferencable - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; dereferencable: variable - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '(' expr ')' { $$ = $2; @@ -3654,14 +4524,24 @@ dereferencable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dereferencable_scalar - { $$ = $1; } + { + $$ = $1; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; callable_expr: callable_variable - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | '(' expr ')' { $$ = $2; @@ -3669,14 +4549,24 @@ callable_expr: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dereferencable_scalar - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; callable_variable: simple_variable - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | dereferencable '[' optional_expr ']' { $$ = expr.NewArrayDimFetch($1, $3) @@ -3687,6 +4577,8 @@ callable_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | constant '[' optional_expr ']' { @@ -3698,6 +4590,8 @@ callable_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dereferencable '{' expr '}' { @@ -3709,6 +4603,8 @@ callable_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dereferencable T_OBJECT_OPERATOR property_name argument_list { @@ -3719,16 +4615,30 @@ callable_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_call - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; variable: callable_variable - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | static_member - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | dereferencable T_OBJECT_OPERATOR property_name { $$ = expr.NewPropertyFetch($1, $3) @@ -3738,6 +4648,8 @@ variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3753,6 +4665,8 @@ simple_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '$' '{' expr '}' { @@ -3765,6 +4679,8 @@ simple_variable: yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '$' simple_variable { @@ -3775,6 +4691,8 @@ simple_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3788,6 +4706,8 @@ static_member: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { @@ -3798,12 +4718,18 @@ static_member: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; new_variable: simple_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | new_variable '[' optional_expr ']' { $$ = expr.NewArrayDimFetch($1, $3) @@ -3814,6 +4740,8 @@ new_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_variable '{' expr '}' { @@ -3825,6 +4753,8 @@ new_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_variable T_OBJECT_OPERATOR property_name { @@ -3835,6 +4765,8 @@ new_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { @@ -3845,6 +4777,8 @@ new_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { @@ -3855,6 +4789,8 @@ new_variable: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3868,6 +4804,8 @@ member_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IdentifierToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' expr '}' { @@ -3876,9 +4814,15 @@ member_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | simple_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; property_name: @@ -3891,6 +4835,8 @@ property_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' expr '}' { @@ -3899,27 +4845,43 @@ property_name: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | simple_variable - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; array_pair_list: - non_empty_array_pair_list - { - if ($1[len($1)-1] == nil) { - $$ = $1[:len($1)-1] - } else { - $$ = $1 + non_empty_array_pair_list + { + if ($1[len($1)-1] == nil) { + $$ = $1[:len($1)-1] + } else { + $$ = $1 + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - } ; possible_array_pair: /* empty */ - { $$ = nil } + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | array_pair - { $$ = $1; } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; non_empty_array_pair_list: @@ -3929,9 +4891,15 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | possible_array_pair - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; array_pair: @@ -3944,6 +4912,8 @@ array_pair: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DoubleArrowToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr { @@ -3951,6 +4921,8 @@ array_pair: // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodePosition($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW '&' variable { @@ -3963,6 +4935,8 @@ array_pair: // save comments yylex.(*Parser).comments.AddFromToken($$, $2, comment.DoubleArrowToken) yylex.(*Parser).comments.AddFromToken(reference, $3, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' variable { @@ -3974,6 +4948,8 @@ array_pair: // save comments yylex.(*Parser).comments.AddFromToken(reference, $1, comment.AmpersandToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { @@ -3990,6 +4966,8 @@ array_pair: yylex.(*Parser).comments.AddFromToken(list, $3, comment.ListToken) yylex.(*Parser).comments.AddFromToken(list, $4, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(list, $6, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LIST '(' array_pair_list ')' { @@ -4005,12 +4983,18 @@ array_pair: yylex.(*Parser).comments.AddFromToken(list, $1, comment.ListToken) yylex.(*Parser).comments.AddFromToken(list, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken(list, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; encaps_list: encaps_list encaps_var - { $$ = append($1, $2) } + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | encaps_list T_ENCAPSED_AND_WHITESPACE { encapsed := scalar.NewEncapsedStringPart($2.Value) @@ -4021,9 +5005,15 @@ encaps_list: // save comments yylex.(*Parser).comments.AddFromToken(encapsed, $2, comment.EncapsedAndWhitespaceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | encaps_var - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | T_ENCAPSED_AND_WHITESPACE encaps_var { encapsed := scalar.NewEncapsedStringPart($1.Value) @@ -4034,6 +5024,8 @@ encaps_list: // save comments yylex.(*Parser).comments.AddFromToken(encapsed, $1, comment.EncapsedAndWhitespaceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4049,6 +5041,8 @@ encaps_var: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '[' encaps_var_offset ']' { @@ -4065,6 +5059,8 @@ encaps_var: yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { @@ -4083,6 +5079,8 @@ encaps_var: yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) yylex.(*Parser).comments.AddFromToken(fetch, $3, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { @@ -4094,6 +5092,8 @@ encaps_var: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { @@ -4108,6 +5108,8 @@ encaps_var: yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringVarnameToken) yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { @@ -4126,10 +5128,14 @@ encaps_var: yylex.(*Parser).comments.AddFromToken($$, $3, comment.OpenSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseSquareBracket) yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseCurlyBracesToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CURLY_OPEN variable '}' { $$ = $2; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4143,6 +5149,8 @@ encaps_var_offset: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NUM_STRING { @@ -4158,6 +5166,8 @@ encaps_var_offset: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.NumStringToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '-' T_NUM_STRING { @@ -4187,6 +5197,8 @@ encaps_var_offset: } else { yylex.(*Parser).comments.AddFromToken($$, $2, comment.NumStringToken) } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE { @@ -4199,6 +5211,8 @@ encaps_var_offset: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4217,6 +5231,8 @@ internal_functions_in_yacc: yylex.(*Parser).comments.AddFromToken($$, $4, comment.CommaToken) } yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EMPTY '(' expr ')' { @@ -4229,6 +5245,8 @@ internal_functions_in_yacc: yylex.(*Parser).comments.AddFromToken($$, $1, comment.EmptyToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INCLUDE expr { @@ -4239,6 +5257,8 @@ internal_functions_in_yacc: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncludeToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INCLUDE_ONCE expr { @@ -4249,6 +5269,8 @@ internal_functions_in_yacc: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncludeOnceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EVAL '(' expr ')' { @@ -4261,6 +5283,8 @@ internal_functions_in_yacc: yylex.(*Parser).comments.AddFromToken($$, $1, comment.EvalToken) yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_REQUIRE expr { @@ -4271,6 +5295,8 @@ internal_functions_in_yacc: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.RequireToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_REQUIRE_ONCE expr { @@ -4281,24 +5307,36 @@ internal_functions_in_yacc: // save comments yylex.(*Parser).comments.AddFromToken($$, $1, comment.RequireOnceToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; isset_variables: isset_variable - { $$ = []node.Node{$1} } + { + $$ = []node.Node{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } | isset_variables ',' isset_variable { $$ = append($1, $3) // save comments yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; isset_variable: expr - { $$ = $1 } + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } ; ///////////////////////////////////////////////////////////////////////// diff --git a/scanner/lexer.go b/scanner/lexer.go index 12b48ce..550f9b1 100644 --- a/scanner/lexer.go +++ b/scanner/lexer.go @@ -6,6 +6,7 @@ import ( "bytes" "go/token" "io" + "sync" "unicode" "github.com/z7zmey/php-parser/position" @@ -443,6 +444,7 @@ type Lexer struct { Comments []*comment.Comment heredocLabel string tokenBytesBuf *bytes.Buffer + TokenPool sync.Pool } // Rune2Class returns the rune integer id @@ -470,7 +472,12 @@ func NewLexer(src io.Reader, fName string) *Lexer { if err != nil { panic(err) } - return &Lexer{lx, []int{0}, "", nil, "", &bytes.Buffer{}} + + var TokenPool = sync.Pool{ + New: func() interface{} { return &Token{} }, + } + + return &Lexer{lx, []int{0}, "", nil, "", &bytes.Buffer{}, TokenPool} } func (l *Lexer) ungetChars(n int) []lex.Char { @@ -523,7 +530,14 @@ func (l *Lexer) createToken(chars []lex.Char) *Token { int(lastChar.Pos()), ) - return NewToken(l.tokenString(chars), pos).SetComments(l.Comments) + token := l.TokenPool.Get().(*Token) + token.Position = pos + token.Comments = l.Comments + token.Value = l.tokenString(chars) + + return token + + // return NewToken(l.tokenString(chars), pos).SetComments(l.Comments) } func (l *Lexer) addComment(chars []lex.Char) { diff --git a/scanner/token.go b/scanner/token.go index d101bba..87e035a 100644 --- a/scanner/token.go +++ b/scanner/token.go @@ -8,35 +8,10 @@ import ( // Token value returned by lexer type Token struct { Value string - position *position.Position - comments []*comment.Comment -} - -// NewToken Token constructor -func NewToken(value string, pos *position.Position) *Token { - return &Token{ - Value: value, - position: pos, - comments: nil, - } + Position *position.Position + Comments []*comment.Comment } func (t *Token) String() string { return string(t.Value) } - -// Position returns token position -func (t *Token) Position() *position.Position { - return t.position -} - -// Comments returns attached comments -func (t *Token) Comments() []*comment.Comment { - return t.comments -} - -// SetComments attach comments -func (t *Token) SetComments(comments []*comment.Comment) *Token { - t.comments = comments - return t -} diff --git a/scanner/token_test.go b/scanner/token_test.go index 775b81d..7650789 100644 --- a/scanner/token_test.go +++ b/scanner/token_test.go @@ -13,15 +13,18 @@ import ( func TestToken(t *testing.T) { pos := position.NewPosition(1, 1, 0, 3) - tkn := scanner.NewToken(`foo`, pos) + tkn := &scanner.Token{ + Value: `foo`, + Position: pos, + } c := []*comment.Comment{ comment.NewComment("test comment", nil), } - tkn.SetComments(c) + tkn.Comments = c - if !reflect.DeepEqual(tkn.Comments(), c) { + if !reflect.DeepEqual(tkn.Comments, c) { t.Errorf("comments are not equal\n") } @@ -29,7 +32,7 @@ func TestToken(t *testing.T) { t.Errorf("token value is not equal\n") } - if tkn.Position() != pos { + if tkn.Position != pos { t.Errorf("token position is not equal\n") } }