From 3bda40e8ce866c7574c84f8883553cc72aa97d01 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 23:53:58 +0200 Subject: [PATCH] [refactoring] update ast structure of "MagicConstant" and "String" nodes --- internal/php5/php5.go | Bin 288464 -> 286681 bytes internal/php5/php5.y | 172 ++++++++++++++++++++++-------------------- internal/php7/php7.go | Bin 239445 -> 237609 bytes internal/php7/php7.y | 171 ++++++++++++++++++++--------------------- pkg/ast/node.go | 7 +- 5 files changed, 182 insertions(+), 168 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 51ae8568f9a971bce1b6f0f0018c41b6b3c2aabf..704561a4f8b0cb642ddffb7b4134666177575295 100644 GIT binary patch delta 8684 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 delta 9955 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 delta 7230 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 C59TER diff --git a/internal/php7/php7.y b/internal/php7/php7.y index f896af8..b98517d 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3931,13 +3931,13 @@ dereferencable_scalar: } | T_CONSTANT_ENCAPSED_STRING { - $$ = &ast.ScalarString{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + } } ; @@ -3964,83 +3964,83 @@ scalar: } | T_LINE { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_FILE { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_DIR { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_TRAIT_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_METHOD_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_FUNC_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_NS_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_CLASS_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { @@ -4790,13 +4790,13 @@ encaps_var: encaps_var_offset: T_STRING { - $$ = &ast.ScalarString{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + } } | T_NUM_STRING { @@ -4810,14 +4810,14 @@ encaps_var_offset: Value: $1.Value, } } else { - $$ = &ast.ScalarString{ast.Node{}, $1.Value} + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + } } - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '-' T_NUM_STRING { @@ -4833,16 +4833,17 @@ encaps_var_offset: Value: $2.Value, } $$ = &ast.ExprUnaryMinus{ast.Node{}, lnumber} + $$.GetNode().Position = position.NewTokensPosition($1, $2) } else { - $2.Value = append([]byte("-"), $2.Value...) - $$ = &ast.ScalarString{ast.Node{}, $2.Value} + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + MinusTkn: $1, + StringTkn: $2, + Value: append([]byte("-"), $2.Value...), + } } - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index a1b04f4..d395f57 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -172,7 +172,8 @@ func (n *ScalarLnumber) Accept(v NodeVisitor) { // ScalarMagicConstant node type ScalarMagicConstant struct { Node - Value []byte + MagicConstTkn *token.Token + Value []byte } func (n *ScalarMagicConstant) Accept(v NodeVisitor) { @@ -182,7 +183,9 @@ func (n *ScalarMagicConstant) Accept(v NodeVisitor) { // ScalarString node type ScalarString struct { Node - Value []byte + MinusTkn *token.Token + StringTkn *token.Token + Value []byte } func (n *ScalarString) Accept(v NodeVisitor) {