From 7e2965f53b0f48b94d03ccace652839f65eaf2b1 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 22:57:27 +0200 Subject: [PATCH] [refactoring] update ast structure of "Argument" and "ArgumentList" nodes --- internal/php5/php5.go | Bin 288363 -> 288783 bytes internal/php5/php5.y | 120 +++++++++++++++++----------------- internal/php7/php7.go | Bin 239265 -> 239825 bytes internal/php7/php7.y | 73 ++++++++++----------- pkg/ast/node.go | 11 ++-- pkg/ast/visitor/dump.go | 10 --- pkg/printer/pretty_printer.go | 4 +- pkg/printer/printer.go | 4 +- 8 files changed, 106 insertions(+), 116 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 199faecd90d1e29eefba5daee8ffbce002b0b852..1e89fea02c196214cf799a1f33cd76dc8a4b1093 100644 GIT binary patch delta 14364 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 delta 12594 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 Qqq11akX diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 0e7e6fa..f905e1d 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -242,7 +242,7 @@ import ( %type static_scalar_value static_operation static_var_list global_var_list %type ctor_arguments function_call_parameter_list echo_expr_list %type trait_adaptations unset_variables declare_list -%type switch_case_list +%type switch_case_list non_empty_function_call_parameter_list %type method_body %type foreach_statement for_statement while_statement %type foreach_variable foreach_optional_arg @@ -258,7 +258,7 @@ import ( %type for_expr case_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list %type class_statement_list variable_modifiers method_modifiers class_variable_declaration -%type interface_list non_empty_function_call_parameter_list trait_list trait_adaptation_list non_empty_trait_adaptation_list +%type interface_list trait_list trait_adaptation_list non_empty_trait_adaptation_list %type trait_reference_list non_empty_member_modifiers backticks_expr static_array_pair_list non_empty_static_array_pair_list %type chaining_dereference chaining_instance_call chaining_method_or_property instance_call variable_property @@ -2170,38 +2170,40 @@ optional_class_type: function_call_parameter_list: '(' ')' { - $$ = &ast.ArgumentList{ast.Node{}, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.SkippedTokens) + $$ = &ast.ArgumentList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + OpenParenthesisTkn: $1, + CloseParenthesisTkn: $2, + } } | '(' non_empty_function_call_parameter_list ')' { - $$ = &ast.ArgumentList{ast.Node{}, $2} + argumentList := $2.(*ast.ArgumentList) + argumentList.Position = position.NewTokensPosition($1, $3) + argumentList.OpenParenthesisTkn = $1 + argumentList.CloseParenthesisTkn = $3 - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = argumentList } | '(' yield_expr ')' { - arg := &ast.Argument{ast.Node{}, false, false, $2} - $$ = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} - - // save position - arg.GetNode().Position = position.NewNodePosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = &ast.ArgumentList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenParenthesisTkn: $1, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition($2), + }, + Expr: $2, + }, + }, + CloseParenthesisTkn: $3, + } } ; @@ -2209,57 +2211,57 @@ function_call_parameter_list: non_empty_function_call_parameter_list: function_call_parameter { - $$ = []ast.Vertex{$1} + $$ = &ast.ArgumentList{ + Arguments: []ast.Vertex{$1}, + } } | non_empty_function_call_parameter_list ',' function_call_parameter { - $$ = append($1, $3) + $1.(*ast.ArgumentList).SeparatorTkns = append($1.(*ast.ArgumentList).SeparatorTkns, $2) + $1.(*ast.ArgumentList).Arguments = append($1.(*ast.ArgumentList).Arguments, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; function_call_parameter: expr_without_variable { - $$ = &ast.Argument{ast.Node{}, false, false, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Expr: $1, + } } | variable { - $$ = &ast.Argument{ast.Node{}, false, false, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Expr: $1, + } } | '&' w_variable { - $$ = &ast.Argument{ast.Node{}, false, true, $2} - - // save position - $$.GetNode().Position = position.NewNodePosition($2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + AmpersandTkn: $1, + Expr: $2, + } } | T_ELLIPSIS expr { - $$ = &ast.Argument{ast.Node{}, true, false, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + VariadicTkn: $1, + Expr: $2, + } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 62c54a9db833c3a233ea77f83e09ff033627c32d..a66ce9259d8c3eaa4ac90001eed929d29f88aa41 100644 GIT binary patch delta 12237 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 delta 10554 zcmZ`;2YA&*w*O{^R9Zp}E%%0QNbvq|{a@731VsTu5J5pnP|8{;q8N1%Q5WSYQm$}B z5CPxX3rHDtb;XW_65#ovxGV0isO+k+>$+I*z2BLc|4s1oeINJFnbYR9IaAWm&}zf3 zR-1}Di}aQ@ohwQfBx31`a5U!Q6HQbU7WfGs`!Rfy5&n1;;Y1WNx`^k!M%y7psOr|jO(^3Ag!USvZd6rZflvFHIacMXPMA%P&9!s%`bc#Pv zo=mWGf~8YY$fRR&Ad?uUcp9Hoq$7~?_f8_Op794u%}@gNE~0gpJE ze#LoVkEM-V0&+1np8Z9_hYFoE4S8&Ttvx>c$u%Z zRpqeHsZ3;h=PqoU7s1$zK!^Q!%;|ZVsoS3k!7ML=4|{@NVL=pZ{Nuc(y-ZY>FW~UA z2qyDj8z&AwL>>t9gRz`Q&Q8;x&;GGapTmJ4d&WPT+Q$FAh$)}6u@xZ8;U7czg^=bj z|B@K+FBJzPK4DHq%FFzq`&J;dK7O3e?2lRT^C5~K;^1)zykutN^CR1_4xhuvUU4bl zlX>d-iX8Cx$;_Xg?>>>E@GC!4=lm%wFf|3wJ+3$NNdbt$EEI+LajLusPsU$>a37y7 zm%MPk=z&>zjd;8=AcucxjxVR&#hrv01s5Wn}$zhII%Z!If^ zwV?7W>_%lOk!kbxJ%#Ko%cawq$KSqnD4Pt}A?SmsTX%O8(agHt z{d1WmdBv6E{=Myb)HS zH^4ZkTE5V1_fff<-=<$*qV zW*R@a<@E!qKZycas*gx9P0;du5u(XCB1Y?*iC#^HopPECCo~~6&uv18(H*A_Po6rQ zmv;*DH+iBrs~SsJ=37F&9bQ&ohhynr7OE)>aPMcK;mrfwjx02w1#opOL_L4TQva5A zIF=q`$SVS_d#eCin}s^G4sgq|P+^h9)myQj-LQskD2CxsRYS+K&{b`K6YZe>NE?V5 zsJ3kYedM5eOW55mAe`GifL?P@4V}@!s;Z%FS?KhRz%_J)`X@R<0#Lmjt}C&_u~gD2 zfL3Io7M%m!B8E0}5o1?%aRA-qpn8L+nO#Ac6M|Qtcg17|s_Pa&hqBPP(g3$73yla_ zTs@18rK&Jg4ekNx`79JI3vf?mq2ApC-1;okxrfEoTLrCp+F=dd+0)JuqTM~k#Z=q} z>VMk{R0DmNg=Y5-a7P_fZ(07_hY3%}F!kyyCNLDDb$y`NKG*k7FO=x0SlPeH{o6{6cb$Q$T;PmHJIY2fBW z0nMpWVLBQG)!^!4z!i@M^}_(tW8&f#p&Jrnryx;}DPBwoAv4E2mFh!jF;@Tz=~-up za)!F;=g$=9Tc~@LsIt(4fmq9i+HA0R#zGB4M1h6A9~wYq!^9@m+)W=lCxBi#Puyj3 z(?&TQC91_}W}}VOVv+&6jS(LjpnZ*)VSu$Y4s+jFF@u&*6s6SlLUGVS?Z%1e7Fsio z!wsr#cag|Nh9trNr)$=DF3CW;9fP~4F|ne&t@V!+`Uc6w)Qj#R+9V@>YtwEb^n3Vuaao+TL z93{mupr;=f*BM9;egai&!7HE4f|;kp-<`MXo)s;PAEor(b7Guj9kfN3`=P4z8JM`g>xY15ds$wm1cQcO!g;e%2mw zx1)ctmv?c-(#(Bgl7)_Dp=tZYUMq9a0r7>Cx$Fb+u%NO-$YA$_;&y33dg~)`u?F&h zBX#(bm}*IS?I+@Y9Jt~yS%cNz#CI-Voj!K~qs-^d$W>niDZJ|o@vXIC?U$l`t_2&u z5g%KSc75kWXuy90HCqEn_dg-pIJ;}V=d_!{%iSyLX4z}pPvWHb?D*A`aDV$$eaCzO_sdy}*hB0nx6-jzDXOtXB zVuQq41J(eQU{rfr|Ap92FH47)kra8ORTnn1prmf@b^S-rx?<|h^DDyB>aLzU)%{0< zr>leXq=FNyOh)`hp`xZj*Ij%4RH{9Qoo~~F>R%E@6(10t=-61%!bzqnG)A7cUpFZYDP1ggLaFf z;gn6wb78^L=g55hb&+gsRF=}@HKK&}rbL0RYAdJM0#wmxoQ@~3J|h+2{<58{4hXS0 zHEhH_+4Aow$MsjBfQ}88CA6TwyigD8C_iY%hL);mDq@RZe%GJ~qN%uktE-%EHOZ(? zV^(7WJ(`j$s6)tc!OFUps-rQ8C(oga%48S)U`Wn&aK_fX#o>J2P3p6(5joU3DLd$!VzRA`fQVB#Uq$I~JP1HM5vSq`^?9R= zhRjkIu((@+x0cFP^jkm3Rosv3%~M5K&}V6`Cp;43>HVHq|PRmYnGXMS{ZhY7n(QE2}B?>#2G?;E;(J;V{~Pt0RXd z50Y=wfhrdps5?GabhX%%107Z-5~oW1!)7;;JQe*mT`(jolKLgBerT5F|B|-hY)4Z` z8wl6rwhjwCPeypr4yLn)XF0tjFLrDZdw!B_Oky;aCC>F`?IdG~Uy^y%hUnw@>Tw!0 zNt{NJNfN8?QEUd`?s69GxCJe0=*S?D$%Ic!M#@*6x@4SJz*OsbGDXX)kif$euyU4F z%VJ5VRR``Rkz({hy|h}UT(PD+WP3EHqs^q|_V*p!|O&?=RT zt-3BmO3&)o(K%~qfFG3C(5Kn!Bo>zmi-1nn>Ntw();DA`Iy^&=o5~ojrw!-f3D6hO+QU_Yf$VvZj`O{u9hal)mpOV-z1 z+H<4K(?8zO$dNGHmxe(b17&U<0o6fox;bD~X|z4#>mBoD#_|$QLfsm*>&q6%`*2ah zQx3M?Mn}^NB~G*k?HNCHi`(TL79+7MEx%BO_5M5LV2h&TXQ3x^e)PCS0Uw$myRJLm zC5Jk;$Y@+?BTHp2Ew~$AJ-L`o#Vpv7pO$5`ez9z>7v0Ty!GlS-NhBcCQcqc8JZs17 zW&^()DM>DsD+Rx9gl$il&B!*(8HqQAFuYp0O7_zq+$a-*4*wS#`K0?$*m!ve@m^eo z+!%wtUIByl-p6w@jq08Umq9+YDvQKvuD4!zzr4UQq1&Mbdg+c2aJjIU#45*pJ@r>> zIMrqr)7$MV`i%zzU8vc>=Vp5KLyX4L#4mi#)iXC33QC0!lUc8aJ{+KF^Bt&sc0rf? zo^#1B6%sp?G2>s4a3IVxhHgV{YFu=75MJot+y^z|0-~ zqbq-&BijV@zhB|7SryJB-t6?CxH=?ge^DSU-jOapn zm!q-|PnF~J8E;Blj4c~(3FsagY&fV`6gmQT3KP-)-N_5q;<1ck*s?!+*UhTp3D?#} zy%%`IYi*_Ix@r&3iT!rT`vY0@Ty9?IxrI7s4_VsgTjCCfXGQ6yG%!P?9W^<#ZKF*mtd
F@$Ila5v3QdP7`TtT?_ zoNw7DT%|hbAAgd2(Ai)ET9}9apqu}%X^4zT+g+`Cw93^FN`d z$TvN6hU(N3Vq9v70Pc4k$;`1Rz^Zh_6pBZpm2#aTZ8}9yeN8KM(v@l2b%iI3)Dsp3 zb!KawRjP97tEH-fHkGKq(xYwRqp56rUg%1*OR@G^w^P{U7*BH^Qzdk)lWMN-Y#$(H zI>{;Ms=?e@P`i?>DXFIT6`itpTn-!gi@Id->8AL5y8>TU9%MLB-=Z`?<7VZw48k_U zjHY22#x8;i%HRy6xyg59nmY*@ z+SlDxzJ9;AI>XUi=P*%$+(d&m#|Dp1oQ4D%+sxtH6;y4xO53-2B$c~sjy_bbaLMEM zdg(9V^9pYK?YVx? zDq|`P{~J7PF-IK-Z^vc@AO_k-N2d_** z!EyY#L83S@het&zq>M4aStF4ASkMJ&OA9wKJu(1Zy_?2#Mh!N3qh{y;r>4oVa8s3f zP|!JNI$qwd_-ts==T!kchyUDh+ojks%{da3*YI}E#+a&g=q-cPixy3dZW}vZ8xrXD zd5?+FnL`^9=>8sU9qJrL1kCRH?1c({C0H^H<`%;mJcMc7>+ux((m4)AL!JmO2HY!G zov#Y${n>I9?QNyr;m5cFT{}WycVl^UZ0?7|oZHV=5sS4KV&fCK-i?Bej)GlgzTkQS z{5r>sKOW!=RL!a7!vK5?bCA{w8dl?M;yvn6Z9#|aA6Hlj^ls5Y3_=ZmI$+bFKH*s#eJAqY9N z^cq!6OY77So(h%7W!!U$>Vv;3m8wJ}u4hhBvxFUaiS2lPGXp-Mn9Q7_B#%Csq1xzW z8{{xSFHEyqur$$y++FY#_7*gBx;klf`djIX}9>JtAieSUDVm}`z%JqUp3V%jn35i(ZRC3L)9XK=$`GYiUXacB} zke+mp%5j2xxh+G_;B8UwU7~PoGYZoY{o}o=pUsOON$3&F)of+5W?R&BN*}!@^wySPiU|L2oSMC%KM~s@_HisyBGH-$vz+nL@?3wMJCX JLyxKG{{h?$=F variable_class_name dereferencable_scalar constant dereferencable %type callable_expr callable_variable static_member new_variable %type encaps_var encaps_var_offset echo_expr_list catch_name_list -%type if_stmt const_list +%type if_stmt const_list non_empty_argument_list %type alt_if_stmt %type if_stmt_without_else %type class_const_decl @@ -280,7 +280,7 @@ import ( %type unprefixed_use_declarations inline_use_declarations property_list %type case_list trait_adaptation_list %type use_declarations lexical_var_list isset_variables non_empty_array_pair_list -%type array_pair_list non_empty_argument_list top_statement_list +%type array_pair_list top_statement_list %type inner_statement_list parameter_list non_empty_parameter_list class_statement_list %type method_modifiers variable_modifiers %type non_empty_member_modifiers name_list class_modifiers @@ -2030,66 +2030,61 @@ return_type: argument_list: '(' ')' { - $$ = &ast.ArgumentList{ast.Node{}, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.SkippedTokens) + $$ = &ast.ArgumentList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + OpenParenthesisTkn: $1, + CloseParenthesisTkn: $2, + } } | '(' non_empty_argument_list possible_comma ')' { - $$ = &ast.ArgumentList{ast.Node{}, $2} + argumentList := $2.(*ast.ArgumentList) + argumentList.Position = position.NewTokensPosition($1, $4) + argumentList.OpenParenthesisTkn = $1 + argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, $3) + argumentList.CloseParenthesisTkn = $4 - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - if $3 != nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($3.SkippedTokens, $4.SkippedTokens...)) - } else { - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) - } + $$ = argumentList } ; non_empty_argument_list: argument { - $$ = []ast.Vertex{$1} + $$ = &ast.ArgumentList{ + Arguments: []ast.Vertex{$1}, + } } | non_empty_argument_list ',' argument { - $$ = append($1, $3) + $1.(*ast.ArgumentList).SeparatorTkns = append($1.(*ast.ArgumentList).SeparatorTkns, $2) + $1.(*ast.ArgumentList).Arguments = append($1.(*ast.ArgumentList).Arguments, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; argument: expr { - $$ = &ast.Argument{ast.Node{}, false, false, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Expr: $1, + } } | T_ELLIPSIS expr { - $$ = &ast.Argument{ast.Node{}, true, false, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + VariadicTkn: $1, + Expr: $2, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 8d4b885..9cc59f4 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -90,7 +90,10 @@ func (n *Identifier) Accept(v NodeVisitor) { // ArgumentList node type ArgumentList struct { Node - Arguments []Vertex + OpenParenthesisTkn *token.Token + Arguments []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token } func (n *ArgumentList) Accept(v NodeVisitor) { @@ -100,9 +103,9 @@ func (n *ArgumentList) Accept(v NodeVisitor) { // Argument node type Argument struct { Node - Variadic bool - IsReference bool - Expr Vertex + VariadicTkn *token.Token + AmpersandTkn *token.Token + Expr Vertex } func (n *Argument) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index d8160c1..7e11d72 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -240,16 +240,6 @@ func (v *Dump) Argument(n *ast.Argument) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Argument{\n") v.printNode(n.GetNode()) - - if n.Variadic { - v.printIndent(v.indent) - v.print("Variadic: true,\n") - } - - if n.IsReference { - v.printIndent(v.indent) - v.print("IsReference: true,\n") - } } func (v *Dump) StmtBreak(n *ast.StmtBreak) { diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 67d4571..6caa793 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -465,11 +465,11 @@ func (p *PrettyPrinter) printNodeNullable(n ast.Vertex) { func (p *PrettyPrinter) printNodeArgument(n ast.Vertex) { nn := n.(*ast.Argument) - if nn.IsReference { + if nn.AmpersandTkn != nil { io.WriteString(p.w, "&") } - if nn.Variadic { + if nn.VariadicTkn != nil { io.WriteString(p.w, "...") } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 2dd68a4..7f5fae5 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -561,12 +561,12 @@ func (p *Printer) printNodeArgument(n ast.Vertex) { nn := n.(*ast.Argument) p.printFreeFloating(nn, token.Start) - if nn.IsReference { + if nn.AmpersandTkn != nil { p.write([]byte("&")) } p.printFreeFloating(nn, token.Ampersand) - if nn.Variadic { + if nn.VariadicTkn != nil { p.write([]byte("...")) }