From 2c09138600a57f3a0bbfb1563177a18a2de063fd Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 27 Dec 2020 21:55:36 +0200 Subject: [PATCH] refactoring: update ast structure of "Variable" node --- internal/php5/parser_test.go | 108 ++++++++++++++---------------- internal/php5/php5.go | Bin 264722 -> 264502 bytes internal/php5/php5.y | 26 +++---- internal/php7/parser_test.go | 108 ++++++++++++++---------------- internal/php7/php7.go | Bin 219201 -> 219091 bytes internal/php7/php7.y | 13 ++-- pkg/ast/node.go | 8 ++- pkg/ast/visitor/dumper.go | 2 + pkg/ast/visitor/formatter.go | 10 +++ pkg/ast/visitor/formatter_test.go | 23 +++++++ pkg/ast/visitor/printer.go | 2 + pkg/ast/visitor/printer_test.go | 8 ++- 12 files changed, 164 insertions(+), 144 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index f4b35d8..889fb3c 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -16726,90 +16726,82 @@ func TestStmtGlobal_Vars(t *testing.T) { }, }, }, - VarName: &ast.ParserBrackets{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 31, + EndPos: 25, }, - OpenBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, + }, + VarName: &ast.ExprFunctionCall{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 30, }, - Child: &ast.ExprFunctionCall{ + Function: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, - EndPos: 30, + EndPos: 28, }, - Function: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 28, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 28, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("foo"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 28, - }, - }, - Value: []byte("foo"), }, - }, - }, - OpenParenthesisTkn: &token.Token{ - ID: token.ID(40), - Value: []byte("("), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - }, - CloseParenthesisTkn: &token.Token{ - ID: token.ID(41), - Value: []byte(")"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, + Value: []byte("foo"), }, }, }, - CloseBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 30, - EndPos: 31, + StartPos: 28, + EndPos: 29, }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, + }, + }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, }, }, }, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 09a19308ced0fc3ff5d7791a98ff3fc56485e676..9cc409a8f4aa551c370ddaf821d5df6d8dd76199 100644 GIT binary patch delta 6544 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 delta 6431 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