From 5bd63d90ba1e18037440e7f0fb95792200e03cf0 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 22 Nov 2020 18:54:13 +0200 Subject: [PATCH] [refactoring] update ast structure of "StmtExpression", "StmtInterface" and "StmtProperty" nodes --- internal/php5/php5.go | Bin 284993 -> 282471 bytes internal/php5/php5.y | 190 +++++++++++++++++++++--------------------- internal/php7/php7.go | Bin 235322 -> 233655 bytes internal/php7/php7.y | 99 +++++++++++----------- pkg/ast/node.go | 17 ++-- 5 files changed, 158 insertions(+), 148 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index ce30db867ccecb49004ea901c769fcd89258f458..a65caae372cb5edbc0136f211d9b1be4d2620d44 100644 GIT binary patch delta 12081 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

2^A-bMRdA?dco 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 }&>D07%Y=kdXzi+q|w6v0Hh8`nr#CQ^t zoinh0q@<>(Iboo0zf{dSmnK%}&!LJiq83-mIi5|k;?DmCYCfgIteZ%#)c-R1o+m0! z7S-Kdov8F8omKT{xzw9ZJ%dB#vWG@Wv9d~@btlSrG>(I=kOS4jW97|U*07(&sl!NQ z(}LC%q(8@$dg9xvhsMhRo_O6*+dEOtQPsbaF)mn)kW@*NBKRWn}(GD8XO@(f-h`s4LSprbmsTAKERhJjik zzwn7$(I@U7c@bucrgdT0TNnin)yPIyK9wQEC^TsIR^;9p-W>f(OqjaCt17l*(@o|o zveZ;WeRGqX;cq(?imIixGU=a({_y4+;%C+82TP=>KDF&B`tdE{chI@ZSg3#WOQBj diff --git a/internal/php7/php7.y b/internal/php7/php7.y index c6bc108..e8ed084 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -989,15 +989,13 @@ statement: } | expr ';' { - $$ = &ast.StmtExpression{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = &ast.StmtExpression{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $2), + }, + Expr: $1, + SemiColonTkn: $2, + } } | T_UNSET '(' unset_variables possible_comma ')' ';' { @@ -1366,22 +1364,23 @@ trait_declaration_statement: interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' { - name := &ast.Identifier{ + $$ = &ast.StmtInterface{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $7), }, - IdentifierTkn: $2, - Value: $2.Value, + InterfaceTkn: $1, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, + Extends: $3, + OpenCurlyBracketTkn: $5, + Stmts: $6, + CloseCurlyBracketTkn: $7, } - $$ = &ast.StmtInterface{ast.Node{}, name, $3, $6} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $7) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.SkippedTokens) } ; @@ -2609,42 +2608,46 @@ property_list: property: T_VARIABLE backup_doc_comment { - identifier := &ast.Identifier{ + $$ = &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + Expr: nil, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtProperty{ast.Node{}, variable, nil} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' expr backup_doc_comment { - identifier := &ast.Identifier{ + $$ = &ast.StmtProperty{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokenNodePosition($1, $3), }, - IdentifierTkn: $1, - Value: $1.Value, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + EqualTkn: $2, + Expr: $3, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtProperty{ast.Node{}, variable, $3} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index fb50e7f..c6311fd 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -438,7 +438,8 @@ func (n *StmtElseIf) Accept(v NodeVisitor) { // StmtExpression node type StmtExpression struct { Node - Expr Vertex + Expr Vertex + SemiColonTkn *token.Token } func (n *StmtExpression) Accept(v NodeVisitor) { @@ -594,9 +595,12 @@ func (n *StmtInlineHtml) Accept(v NodeVisitor) { // StmtInterface node type StmtInterface struct { Node - InterfaceName Vertex - Extends Vertex - Stmts []Vertex + InterfaceTkn *token.Token + InterfaceName Vertex + Extends Vertex + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token } func (n *StmtInterface) Accept(v NodeVisitor) { @@ -654,8 +658,9 @@ func (n *StmtNop) Accept(v NodeVisitor) { // StmtProperty node type StmtProperty struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *StmtProperty) Accept(v NodeVisitor) {