From 132db0e06bdc444fece1750c27ca0576cc8f2ade Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 12:22:06 +0200 Subject: [PATCH] [refactoring] update ast structure of "ClassMethod", "Function", "ArrowFunction" and "Closure" nodes --- internal/php5/php5.go | Bin 263926 -> 264589 bytes internal/php5/php5.y | 30 ++++++++++++++++++------------ internal/php7/php7.go | Bin 217768 -> 219415 bytes internal/php7/php7.y | 28 +++++++++++++++++----------- pkg/ast/node.go | 4 ++++ 5 files changed, 39 insertions(+), 23 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 384171331321d906823c36b5920101b8e76080e1..664719238ff45eadb75c96c1a8e75f16e221581f 100644 GIT binary patch delta 11519 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 variable_name variable_without_objects dynamic_class_name_reference new_expr class_name_reference static_member %type function_call fully_qualified_class_name combined_scalar combined_scalar_offset general_constant parenthesis_expr %type exit_expr yield_expr function_declaration_statement class_declaration_statement constant_declaration -%type else_single new_else_single unset_variable declare_statement +%type else_single new_else_single unset_variable declare_statement parameter_list non_empty_parameter_list %type finally_statement additional_catch unticked_function_declaration_statement unticked_class_declaration_statement %type optional_class_type parameter class_entry_type class_statement class_constant_declaration %type trait_use_statement function_call_parameter trait_adaptation_statement trait_precedence trait_alias @@ -250,7 +250,7 @@ import ( %type inner_statement_list encaps_list %type elseif_list new_elseif_list non_empty_for_expr %type for_expr case_list catch_statement additional_catches -%type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list +%type non_empty_additional_catches class_statement_list %type class_statement_list variable_modifiers method_modifiers %type trait_adaptation_list non_empty_trait_adaptation_list %type non_empty_member_modifiers backticks_expr @@ -1383,7 +1383,8 @@ unticked_function_declaration_statement: Value: $3.Value, }, OpenParenthesisTkn: $4, - Params: $5, + Params: $5.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $6, OpenCurlyBracketTkn: $7, Stmts: $8, @@ -2003,25 +2004,27 @@ new_else_single: parameter_list: non_empty_parameter_list { - $$ = $1; + $$ = $1 } | /* empty */ { - $$ = nil + $$ = &ast.ParserSeparatedList{} } ; non_empty_parameter_list: parameter { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | non_empty_parameter_list ',' parameter { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; @@ -2447,7 +2450,8 @@ class_statement: Value: $4.Value, }, OpenParenthesisTkn: $5, - Params: $6, + Params: $6.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $6.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $7, Stmt: $8, } @@ -3893,7 +3897,8 @@ expr_without_variable: FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, - Params: $4, + Params: $4.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $4.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $5, ClosureUse: $6, OpenCurlyBracketTkn: $7, @@ -3911,7 +3916,8 @@ expr_without_variable: FunctionTkn: $2, AmpersandTkn: $3, OpenParenthesisTkn: $4, - Params: $5, + Params: $5.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $6, ClosureUse: $7, OpenCurlyBracketTkn: $8, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index ee03b47f693dffc962ba58b832347e3481c01121..4eb37848a20a7b3a6b5af32abbbeab70a995845e 100644 GIT binary patch delta 15938 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 C<3v^f delta 14208 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

BJa1!wWs*9F|8_+K z>jQG;`rugd>n);ABz?6>C!lC1juRiZQE0A8Y4+xTm|W=CQ~B2cR0qfRUv4pYw*EyA zBAaaAqL&+z_-8)c)r4s47G0IQ?dnNW-qri%hm#=RqaVzp1zYte2I{g`;;3`HQ%v7& z(@W^KZO|S6(gH7(Dd0B6)v(?vP?|Im4z%DyT}Rut8%)&Q<;ZpdYwv`gT7&Phf2Za#h)n)7rEHhK?8?J231E3uFJ5!|g?11q*AsI-NL5{;KHl zZvr4Xd`qq3pOz~Qa0H@D5B<}!6%-LZ?pX?3zq1thIKuZ>qOvjHV+DTs3v=>}(fZ&M zwMzn{v_D*Y`yPD;J$evl4Ec>vnq{QfRut-wS1|hq?f-$@j()aCEnNTJK4}v45Okw2%yT&&Z&0JxPlJ@?y#Cl;&xf0rgxcxKC!}y z%Dt>VqMK7}rGz6$L&JrLqGb*a_yHP~_i(Pav~9a|1Qxi%MV&vOr{kGl+cmDFeva6V z{%R0m&sMawr!&%@Q|U~%45r*f?#A_OvsDULvyLwF{~B?623R-%$Zvxe^a*U0ic2NN zSz<}l87?akm3&O$P6Yu~9Scm9!hP})siTsFq2Njww?D5XoTu#W_O=0z+@E&b1-={5 z{OYt5vuaD*Um;<^IsQ!@6;#_2O@8EyT_-%$duNhK& z8zgBY>N+D8jXOEe2L2c)Rk^3^D($b2F@2bU2A6dL6; zqY0-uUmAWfh2H`ES)-jQD}Sc(!K7lWv)>4eC}}u(j2-73wqWagxj3K?#s?P8q;P%l UA8)r2S-S#0 group_use_declaration inline_use_declaration %type mixed_group_use_declaration use_declaration unprefixed_use_declaration %type const_decl inner_statement -%type expr optional_expr +%type expr optional_expr parameter_list non_empty_parameter_list %type declare_statement finally_statement unset_variable variable %type parameter optional_type argument expr_without_variable global_var_list global_var %type static_var_list static_var class_statement trait_adaptation trait_precedence trait_alias @@ -277,7 +277,7 @@ import ( %type case_list trait_adaptation_list %type use_declarations %type top_statement_list -%type inner_statement_list parameter_list non_empty_parameter_list class_statement_list +%type inner_statement_list class_statement_list %type method_modifiers variable_modifiers %type non_empty_member_modifiers class_modifiers @@ -1222,7 +1222,8 @@ function_declaration_statement: Value: $3.Value, }, OpenParenthesisTkn: $5, - Params: $6, + Params: $6.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $6.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $7, ColonTkn: $8.(*ast.ReturnType).ColonTkn, ReturnType: $8.(*ast.ReturnType).Type, @@ -1828,21 +1829,23 @@ parameter_list: } | /* empty */ { - $$ = nil + $$ = &ast.ParserSeparatedList{} } ; non_empty_parameter_list: parameter { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | non_empty_parameter_list ',' parameter { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; @@ -2201,7 +2204,8 @@ class_statement: Value: $4.Value, }, OpenParenthesisTkn: $6, - Params: $7, + Params: $7.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $7.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $8, ColonTkn: $9.(*ast.ReturnType).ColonTkn, ReturnType: $9.(*ast.ReturnType).Type, @@ -3608,7 +3612,8 @@ inline_function: FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $4, - Params: $5, + Params: $5.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $6, ClosureUse: $7, ColonTkn: $8.(*ast.ReturnType).ColonTkn, @@ -3627,7 +3632,8 @@ inline_function: FnTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, - Params: $4, + Params: $4.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $4.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $5, ColonTkn: $6.(*ast.ReturnType).ColonTkn, ReturnType: $6.(*ast.ReturnType).Type, diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 6283064..c231894 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -269,6 +269,7 @@ type StmtClassMethod struct { MethodName Vertex OpenParenthesisTkn *token.Token Params []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token ColonTkn *token.Token ReturnType Vertex @@ -482,6 +483,7 @@ type StmtFunction struct { FunctionName Vertex OpenParenthesisTkn *token.Token Params []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token ColonTkn *token.Token ReturnType Vertex @@ -955,6 +957,7 @@ type ExprArrowFunction struct { AmpersandTkn *token.Token OpenParenthesisTkn *token.Token Params []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token ColonTkn *token.Token ReturnType Vertex @@ -1019,6 +1022,7 @@ type ExprClosure struct { AmpersandTkn *token.Token OpenParenthesisTkn *token.Token Params []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token ClosureUse *ExprClosureUse ColonTkn *token.Token