From 48e0996a92658f5d1774761afbf1266b645921ea Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 3 Aug 2020 22:39:02 +0200 Subject: [PATCH] [refactoring] do not inherit free-floating tokens in `name` nodes --- internal/php5/php5.go | Bin 332402 -> 331289 bytes internal/php5/php5.y | 29 +--------- internal/php7/php7.go | Bin 273828 -> 273406 bytes internal/php7/php7.y | 10 +--- pkg/printer/printer.go | 68 +++++++++++++----------- pkg/printer/printer_parsed_php7_test.go | 2 +- 6 files changed, 41 insertions(+), 68 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 7a695b705f4fc19c926cd96b45f73dc97d44ff07..6feebfc24f3054c5afd92070bc093593e3cf6bd6 100644 GIT binary patch delta 9353 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 ZjgzI4@tg}ZRsAtewvlPL9Ex$`{}(|v8e0GW diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 752de40..deb2eff 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -392,9 +392,6 @@ name: // save position $$.GetNode().Position = position.NewNodeListPosition($1) - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name @@ -4818,7 +4815,6 @@ callable_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -4832,7 +4828,6 @@ callable_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -4846,7 +4841,6 @@ callable_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -4988,7 +4982,6 @@ new_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -5002,7 +4995,6 @@ new_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -5403,7 +5395,7 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken(variable, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.Tokens) diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 4eff938..dd06f0f 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -594,35 +594,48 @@ func (p *Printer) printNameRelative(n ast.Vertex) { func (p *Printer) printScalarLNumber(n ast.Vertex) { nn := n.(*ast.ScalarLnumber) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } func (p *Printer) printScalarDNumber(n ast.Vertex) { nn := n.(*ast.ScalarDnumber) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } func (p *Printer) printScalarString(n ast.Vertex) { nn := n.(*ast.ScalarString) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } func (p *Printer) printScalarEncapsedStringPart(n ast.Vertex) { nn := n.(*ast.ScalarEncapsedStringPart) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } func (p *Printer) printScalarEncapsed(n ast.Vertex) { nn := n.(*ast.ScalarEncapsed) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" io.WriteString(p.w, "\"") for _, part := range nn.Parts { @@ -652,7 +665,8 @@ func (p *Printer) printScalarEncapsed(n ast.Vertex) { func (p *Printer) printScalarHeredoc(n ast.Vertex) { nn := n.(*ast.ScalarHeredoc) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" io.WriteString(p.w, string(nn.Label)) @@ -684,8 +698,11 @@ func (p *Printer) printScalarHeredoc(n ast.Vertex) { func (p *Printer) printScalarMagicConstant(n ast.Vertex) { nn := n.(*ast.ScalarMagicConstant) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } @@ -1613,9 +1630,7 @@ func (p *Printer) printExprInstanceOf(n ast.Vertex) { io.WriteString(p.w, "instanceof") - if nn.Class.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.Print(nn.Class) p.printFreeFloating(nn, token.End) @@ -1673,9 +1688,7 @@ func (p *Printer) printExprNew(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "new") - if nn.Class.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.Print(nn.Class) if nn.ArgumentList != nil { @@ -1900,7 +1913,8 @@ func (p *Printer) printExprUnaryPlus(n ast.Vertex) { func (p *Printer) printExprVariable(n ast.Vertex) { nn := n.(*ast.ExprVariable) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" p.printFreeFloating(nn, token.Dollar) if _, ok := nn.VarName.(*ast.Identifier); !ok { @@ -2282,7 +2296,8 @@ func (p *Printer) printStmtClassMethod(n ast.Vertex) { func (p *Printer) printStmtClass(n ast.Vertex) { nn := n.(*ast.StmtClass) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" if nn.Modifiers != nil { for k, m := range nn.Modifiers { @@ -2301,9 +2316,7 @@ func (p *Printer) printStmtClass(n ast.Vertex) { p.printFreeFloating(nn, token.Class) if nn.ClassName != nil { - if nn.ClassName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.Print(nn.ClassName) } @@ -2322,9 +2335,7 @@ func (p *Printer) printStmtClass(n ast.Vertex) { io.WriteString(p.w, " ") } io.WriteString(p.w, "extends") - if nn.Extends.ClassName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.Print(nn.Extends.ClassName) } @@ -2890,12 +2901,11 @@ func (p *Printer) printStmtPropertyList(n ast.Vertex) { p.Print(m) } - if nn.Type != nil && nn.Type.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + if nn.Type != nil { + p.bufStart = " " + p.Print(nn.Type) } - p.Print(nn.Type) - if nn.Properties[0].GetNode().Tokens.IsEmpty() { io.WriteString(p.w, " ") } @@ -2931,9 +2941,7 @@ func (p *Printer) printStmtReturn(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "return") - if nn.Expr != nil && nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) @@ -3102,9 +3110,7 @@ func (p *Printer) printStmtTraitUsePrecedence(n ast.Vertex) { } io.WriteString(p.w, "insteadof") - if nn.Insteadof[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.joinPrint(",", nn.Insteadof) p.printFreeFloating(nn, token.NameList) diff --git a/pkg/printer/printer_parsed_php7_test.go b/pkg/printer/printer_parsed_php7_test.go index a68c502..317ea02 100644 --- a/pkg/printer/printer_parsed_php7_test.go +++ b/pkg/printer/printer_parsed_php7_test.go @@ -979,7 +979,7 @@ func TestParseAndPrintClass(t *testing.T) { } - new class ( $c ) extends Foo implements Bar , Baz { + new class ( $c, $a ) extends Foo implements Bar , Baz { } ;`