From efbc5b2291b6ac700873e8e9db3fe8ccf281ea01 Mon Sep 17 00:00:00 2001 From: z7zmey Date: Mon, 31 Dec 2018 17:06:27 +0200 Subject: [PATCH] #70: [php7] fix meta filter --- php7/parser.go | 20 ++++++++++++-------- php7/php7.go | 48 +++++++++++++++++++++++------------------------- php7/php7.y | 46 +++++++++++++++++++++++----------------------- 3 files changed, 58 insertions(+), 56 deletions(-) diff --git a/php7/parser.go b/php7/parser.go index c8cb795..fe46e28 100644 --- a/php7/parser.go +++ b/php7/parser.go @@ -13,14 +13,6 @@ import ( "github.com/z7zmey/php-parser/scanner" ) -var inheritMetaFilter = meta.AndFilter( - meta.TokenNameFilter(meta.NodeStart), - meta.OrFilter( - meta.TypeFilter(meta.CommentType, meta.WhiteSpaceType), - meta.ValueFilter(" 0 { - yyDollar[1].list[0].GetMeta().Cut(inheritMetaFilter).PrependTo(yyVAL.node.GetMeta()) + yyDollar[1].list[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5051,7 +5049,7 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.InsteadofToken).AppendTo(yyVAL.node.GetMeta()) - yyDollar[1].node.GetMeta().Cut(inheritMetaFilter).PrependTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5070,7 +5068,7 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) - yyDollar[1].node.GetMeta().Cut(inheritMetaFilter).PrependTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5089,7 +5087,7 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) - yyDollar[1].node.GetMeta().Cut(inheritMetaFilter).PrependTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5108,7 +5106,7 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) - yyDollar[1].node.GetMeta().Cut(inheritMetaFilter).PrependTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5124,7 +5122,7 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) - yyDollar[1].node.GetMeta().Cut(inheritMetaFilter).PrependTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5167,7 +5165,7 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.NodeStart).AppendTo(target.GetMeta()) - yyDollar[1].node.GetMeta().Cut(inheritMetaFilter).PrependTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/php7/php7.y b/php7/php7.y index 8ac9435..cbba504 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -396,7 +396,7 @@ name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) // save comments - $1[0].GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -647,7 +647,7 @@ group_use_declaration: } $6.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) - $1[0].GetMeta().Cut(inheritMetaFilter).PrependTo(name.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -671,7 +671,7 @@ group_use_declaration: } $7.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) - $2[0].GetMeta().Cut(inheritMetaFilter).PrependTo(name.GetMeta()) + $2[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -696,7 +696,7 @@ mixed_group_use_declaration: } $6.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) - $1[0].GetMeta().Cut(inheritMetaFilter).PrependTo(name.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -720,7 +720,7 @@ mixed_group_use_declaration: } $7.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) - $2[0].GetMeta().Cut(inheritMetaFilter).PrependTo(name.GetMeta()) + $2[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -796,7 +796,7 @@ inline_use_declaration: { $$ = $1 - $1.(*stmt.Use).Use.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.(*stmt.Use).Use.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -804,7 +804,7 @@ inline_use_declaration: { $$ = $2.(*stmt.Use).SetUseType($1) - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -820,7 +820,7 @@ unprefixed_use_declaration: name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - $1[0].GetMeta().Cut(inheritMetaFilter).PrependTo(name.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -839,7 +839,7 @@ unprefixed_use_declaration: $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) - $1[0].GetMeta().Cut(inheritMetaFilter).PrependTo(name.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -850,7 +850,7 @@ use_declaration: { $$ = $1 - $1.(*stmt.Use).Use.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.(*stmt.Use).Use.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1178,7 +1178,7 @@ statement: $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1508,7 +1508,7 @@ class_declaration_statement: $7.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) $9.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) - $1[0].GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2148,7 +2148,7 @@ parameter: // save comments if $1 != nil { - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) } if $2 != nil { $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) @@ -2186,7 +2186,7 @@ parameter: // save comments if $1 != nil { - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) } if $2 != nil { $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) @@ -2353,7 +2353,7 @@ argument: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) // save comments - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2481,7 +2481,7 @@ class_statement: $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) - $1[0].GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2536,7 +2536,7 @@ class_statement: $8.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) if len($1) > 0 { - $1[0].GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2650,7 +2650,7 @@ trait_precedence: // save comments $2.Meta.SetTokenName(meta.InsteadofToken).AppendTo($$.GetMeta()) - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2670,7 +2670,7 @@ trait_alias: $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2687,7 +2687,7 @@ trait_alias: $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2704,7 +2704,7 @@ trait_alias: $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) $4.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2718,7 +2718,7 @@ trait_alias: // save comments $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2761,7 +2761,7 @@ absolute_trait_method_reference: $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(target.GetMeta()) - $1.GetMeta().Cut(inheritMetaFilter).PrependTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) }