diff --git a/meta/tokenName.go b/meta/tokenName.go index e1018d1..348a203 100644 --- a/meta/tokenName.go +++ b/meta/tokenName.go @@ -24,7 +24,6 @@ const ( ImplementsToken DoubleArrowToken PaamayimNekudotayimToken - UseLeadingNsSeparatorToken NsSeparatorToken EllipsisToken LogicalOrToken diff --git a/meta/tokenName_string.go b/meta/tokenName_string.go index 10d56de..6eebadc 100644 --- a/meta/tokenName_string.go +++ b/meta/tokenName_string.go @@ -4,9 +4,9 @@ package meta import "strconv" -const _TokenName_name = "NodeStartNodeEndWhileTokenEndwhileTokenForInitSemicolonTokenForCondSemicolonTokenEndforTokenEndforeachTokenEnddeclareTokenAsTokenEndswitchTokenFunctionTokenConstTokenInsteadofTokenClassTokenExtendsTokenImplementsTokenDoubleArrowTokenPaamayimNekudotayimTokenUseLeadingNsSeparatorTokenNsSeparatorTokenEllipsisTokenLogicalOrTokenLogicalXorTokenLogicalAndTokenInstanceofTokenEndifTokenIncTokenDecTokenObjectOperatorTokenCoalesceTokenSpaceshipTokenPlusEqualTokenMinusEqualTokenMulEqualTokenPowEqualTokenDivEqualTokenConcatEqualTokenModEqualTokenAndEqualTokenOrEqualTokenXorEqualTokenSlEqualTokenSrEqualTokenBooleanOrTokenBooleanAndTokenPowTokenSlTokenSrTokenIsIdenticalTokenIsNotIdenticalTokenIsEqualTokenIsNotEqualTokenIsSmallerOrEqualTokenIsGreaterOrEqualTokenCaseSeparatorTokenOpenCurlyBracesTokenCloseCurlyBracesTokenSemiColonTokenColonTokenOpenParenthesisTokenCloseParenthesisTokenOpenSquareBracketCloseSquareBracketQuestionMarkTokenAmpersandTokenMinusTokenPlusTokenCommaTokenVerticalBarTokenEqualTokenCaretTokenAsteriskTokenSlashTokenPercentTokenLessTokenGreaterTokenDotToken" +const _TokenName_name = "NodeStartNodeEndWhileTokenEndwhileTokenForInitSemicolonTokenForCondSemicolonTokenEndforTokenEndforeachTokenEnddeclareTokenAsTokenEndswitchTokenFunctionTokenConstTokenInsteadofTokenClassTokenExtendsTokenImplementsTokenDoubleArrowTokenPaamayimNekudotayimTokenNsSeparatorTokenEllipsisTokenLogicalOrTokenLogicalXorTokenLogicalAndTokenInstanceofTokenEndifTokenIncTokenDecTokenObjectOperatorTokenCoalesceTokenSpaceshipTokenPlusEqualTokenMinusEqualTokenMulEqualTokenPowEqualTokenDivEqualTokenConcatEqualTokenModEqualTokenAndEqualTokenOrEqualTokenXorEqualTokenSlEqualTokenSrEqualTokenBooleanOrTokenBooleanAndTokenPowTokenSlTokenSrTokenIsIdenticalTokenIsNotIdenticalTokenIsEqualTokenIsNotEqualTokenIsSmallerOrEqualTokenIsGreaterOrEqualTokenCaseSeparatorTokenOpenCurlyBracesTokenCloseCurlyBracesTokenSemiColonTokenColonTokenOpenParenthesisTokenCloseParenthesisTokenOpenSquareBracketCloseSquareBracketQuestionMarkTokenAmpersandTokenMinusTokenPlusTokenCommaTokenVerticalBarTokenEqualTokenCaretTokenAsteriskTokenSlashTokenPercentTokenLessTokenGreaterTokenDotToken" -var _TokenName_index = [...]uint16{0, 9, 16, 26, 39, 60, 81, 92, 107, 122, 129, 143, 156, 166, 180, 190, 202, 217, 233, 257, 283, 299, 312, 326, 341, 356, 371, 381, 389, 397, 416, 429, 443, 457, 472, 485, 498, 511, 527, 540, 553, 565, 578, 590, 602, 616, 631, 639, 646, 653, 669, 688, 700, 715, 736, 757, 775, 795, 816, 830, 840, 860, 881, 898, 916, 933, 947, 957, 966, 976, 992, 1002, 1012, 1025, 1035, 1047, 1056, 1068, 1076} +var _TokenName_index = [...]uint16{0, 9, 16, 26, 39, 60, 81, 92, 107, 122, 129, 143, 156, 166, 180, 190, 202, 217, 233, 257, 273, 286, 300, 315, 330, 345, 355, 363, 371, 390, 403, 417, 431, 446, 459, 472, 485, 501, 514, 527, 539, 552, 564, 576, 590, 605, 613, 620, 627, 643, 662, 674, 689, 710, 731, 749, 769, 790, 804, 814, 834, 855, 872, 890, 907, 921, 931, 940, 950, 966, 976, 986, 999, 1009, 1021, 1030, 1042, 1050} func (i TokenName) String() string { if i < 0 || i >= TokenName(len(_TokenName_index)-1) { diff --git a/php5/parser.go b/php5/parser.go index c08eda8..e3c4802 100644 --- a/php5/parser.go +++ b/php5/parser.go @@ -113,6 +113,18 @@ func isDollar(r rune) bool { return r == '$' } +func newInheritMetaFilter() meta.Filter { + return meta.StopOnFailureFilter( + meta.AndFilter( + meta.TokenNameFilter(meta.NodeStart), + meta.OrFilter( + meta.TypeFilter(meta.CommentType, meta.WhiteSpaceType), + meta.ValueFilter("' expr @@ -3943,6 +4066,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.GreaterToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_GREATER_OR_EQUAL expr @@ -3955,6 +4080,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.IsGreaterOrEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_INSTANCEOF class_name_reference @@ -3967,6 +4094,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.InstanceofToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | parenthesis_expr @@ -3988,29 +4117,34 @@ expr_without_variable: { $$ = $2 + // save comments + yylex.(*Parser).prependMetaToken($$, $1, meta.NodeStart) + $1.Meta.SetTokenName(meta.NodeStart).PrependTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) + for _, n := range($4) { switch nn := n.(type) { case *expr.ArrayDimFetch: nn.Variable = $$ $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) case *expr.PropertyFetch: nn.Variable = $$ $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) case *expr.MethodCall: nn.Variable = $$ $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) } // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, n)) } - // save comments - $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) - $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '?' expr ':' expr @@ -4024,6 +4158,8 @@ expr_without_variable: $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) $4.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '?' ':' expr @@ -4037,6 +4173,8 @@ expr_without_variable: $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | internal_functions_in_yacc @@ -4337,6 +4475,8 @@ combined_scalar_offset: $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | combined_scalar_offset '[' dim_offset ']' @@ -4352,6 +4492,8 @@ combined_scalar_offset: $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' @@ -4364,6 +4506,7 @@ combined_scalar_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, $4)) // save comments + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) @@ -4384,6 +4527,8 @@ combined_scalar_offset: $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4533,6 +4678,9 @@ function_call: name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(name, $2)) + // save comments + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list @@ -4545,7 +4693,7 @@ function_call: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $4)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(funcName.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(funcName.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4560,7 +4708,7 @@ function_call: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(funcName.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4573,6 +4721,7 @@ function_call: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4585,6 +4734,7 @@ function_call: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4597,6 +4747,7 @@ function_call: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4609,6 +4760,7 @@ function_call: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4618,6 +4770,7 @@ function_call: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4642,6 +4795,9 @@ class_name: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + // save comments + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4679,6 +4835,9 @@ fully_qualified_class_name: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + + // save comments + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4738,11 +4897,13 @@ dynamic_class_name_reference: nn.Variable = $$ $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) case *expr.PropertyFetch: nn.Variable = $$ $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) } } @@ -4752,11 +4913,13 @@ dynamic_class_name_reference: nn.Variable = $$ $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) case *expr.PropertyFetch: nn.Variable = $$ $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) } } @@ -5039,6 +5202,8 @@ static_class_constant: $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(target.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5074,6 +5239,9 @@ static_scalar_value: name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) + // save comments + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name @@ -5086,7 +5254,7 @@ static_scalar_value: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5101,7 +5269,7 @@ static_scalar_value: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5172,6 +5340,8 @@ static_operation: $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '+' static_scalar_value @@ -5184,6 +5354,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.PlusToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '-' static_scalar_value @@ -5195,6 +5367,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.MinusToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5207,6 +5381,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.AsteriskToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5219,6 +5395,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.PowToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5231,6 +5409,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.SlashToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5243,6 +5423,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.PercentToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5279,6 +5461,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.VerticalBarToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5291,6 +5475,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5303,6 +5489,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.CaretToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5315,6 +5503,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.SlToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5327,6 +5517,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.SrToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5339,6 +5531,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.DotToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5351,6 +5545,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.LogicalXorToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5363,6 +5559,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.LogicalAndToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5375,6 +5573,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.LogicalOrToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5387,6 +5587,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.BooleanAndToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5399,6 +5601,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.BooleanOrToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5411,6 +5615,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.IsIdenticalToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5423,6 +5629,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.IsNotIdenticalToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5435,6 +5643,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.IsEqualToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5448,6 +5658,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.IsNotEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $2, meta.IsNotEqualToken) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5460,6 +5672,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.LessToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5472,6 +5686,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.GreaterToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5484,6 +5700,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.IsSmallerOrEqualToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5496,6 +5714,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.IsGreaterOrEqualToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5509,6 +5729,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5522,6 +5744,8 @@ static_operation: // save comments $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) $4.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5554,8 +5778,10 @@ static_operation: $$ = $2 // save comments - $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) - $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + yylex.(*Parser).prependMetaToken($$, $1, meta.NodeStart) + $1.Meta.SetTokenName(meta.NodeStart).PrependTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5577,6 +5803,9 @@ general_constant: name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) + // save comments + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name @@ -5587,7 +5816,7 @@ general_constant: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5602,7 +5831,7 @@ general_constant: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5724,6 +5953,8 @@ non_empty_static_array_pair_list: $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) $4.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) + $3.GetMeta().Cut(newInheritMetaFilter()).PrependTo(arrayItem.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_static_array_pair_list ',' static_scalar_value @@ -5737,6 +5968,8 @@ non_empty_static_array_pair_list: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.GetMeta().Cut(newInheritMetaFilter()).PrependTo(arrayItem.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_DOUBLE_ARROW static_scalar_value @@ -5750,6 +5983,8 @@ non_empty_static_array_pair_list: // save comments $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo(arrayItem.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value @@ -5760,6 +5995,8 @@ non_empty_static_array_pair_list: // save position arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo(arrayItem.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5785,8 +6022,8 @@ parenthesis_expr: $$ = $2 // save comments - $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.OpenParenthesisToken) + yylex.(*Parser).prependMetaToken($$, $1, meta.OpenParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).PrependTo($$.GetMeta()) $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.CloseParenthesisToken) @@ -5797,8 +6034,8 @@ parenthesis_expr: $$ = $2 // save comments - $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.OpenParenthesisToken) + yylex.(*Parser).prependMetaToken($$, $1, meta.OpenParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).PrependTo($$.GetMeta()) $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.CloseParenthesisToken) @@ -5854,16 +6091,19 @@ variable: nn.Variable = $$ nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) case *expr.PropertyFetch: nn.Variable = $$ nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) case *expr.MethodCall: nn.Variable = $$ nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) } } @@ -5873,16 +6113,19 @@ variable: nn.Variable = $$ nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) case *expr.PropertyFetch: nn.Variable = $$ nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) case *expr.MethodCall: nn.Variable = $$ nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) $$ = nn + nn.Variable.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) } } @@ -6029,6 +6272,8 @@ static_member: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects @@ -6041,6 +6286,8 @@ static_member: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6068,6 +6315,8 @@ array_function_dereference: $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_call '[' dim_offset ']' @@ -6083,6 +6332,8 @@ array_function_dereference: $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6150,6 +6401,8 @@ reference_variable: $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | reference_variable '{' expr '}' @@ -6165,6 +6418,8 @@ reference_variable: $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseCurlyBracesToken) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | compound_variable @@ -6312,8 +6567,8 @@ variable_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + yylex.(*Parser).prependMetaToken($$, $1, meta.NodeStart) + $1.Meta.SetTokenName(meta.NodeStart).PrependTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) @@ -6391,6 +6646,8 @@ assignment_list_element: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LIST '(' assignment_list ')' @@ -6403,7 +6660,7 @@ assignment_list_element: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(item)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(item.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(item.GetMeta()) $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(item.GetMeta()) @@ -6455,6 +6712,8 @@ non_empty_array_pair_list: $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) $4.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) + $3.GetMeta().Cut(newInheritMetaFilter()).PrependTo(arrayItem.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_array_pair_list ',' expr @@ -6468,6 +6727,8 @@ non_empty_array_pair_list: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.GetMeta().Cut(newInheritMetaFilter()).PrependTo(arrayItem.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW expr @@ -6481,6 +6742,8 @@ non_empty_array_pair_list: // save comments $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo(arrayItem.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr @@ -6491,6 +6754,8 @@ non_empty_array_pair_list: // save position arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo(arrayItem.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable @@ -6508,6 +6773,8 @@ non_empty_array_pair_list: $4.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) $5.Meta.SetTokenName(meta.NodeStart).AppendTo(reference.GetMeta()) + $3.GetMeta().Cut(newInheritMetaFilter()).PrependTo(arrayItem.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_array_pair_list ',' '&' w_variable @@ -6522,7 +6789,7 @@ non_empty_array_pair_list: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) - $3.Meta.SetTokenName(meta.NodeStart).AppendTo(reference.GetMeta()) + $3.Meta.SetTokenName(meta.NodeStart).AppendTo(arrayItem.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6540,6 +6807,8 @@ non_empty_array_pair_list: $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(reference.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo(arrayItem.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' w_variable @@ -6553,7 +6822,7 @@ non_empty_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(reference.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo(arrayItem.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6628,7 +6897,6 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) @@ -6651,7 +6919,6 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(fetch.GetMeta()) @@ -6668,7 +6935,6 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) @@ -6687,7 +6953,6 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) $2.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) @@ -6707,7 +6972,6 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) $3.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.OpenSquareBracket) @@ -6723,7 +6987,6 @@ encaps_var: $$ = $2; // save comments - $1.Meta.SetTokenName(meta.NodeStart).PrependTo($$.GetMeta()) yylex.(*Parser).prependMetaToken($$, $1, meta.NodeStart) $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) @@ -6930,6 +7193,8 @@ class_constant: $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(target.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING @@ -6945,6 +7210,8 @@ class_constant: $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(target.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6963,6 +7230,8 @@ static_class_name_scalar: $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(target.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6981,6 +7250,8 @@ class_name_scalar: $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(target.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; diff --git a/php7/parser.go b/php7/parser.go index bf082bb..fe46e28 100644 --- a/php7/parser.go +++ b/php7/parser.go @@ -105,6 +105,18 @@ func isDollar(r rune) bool { return r == '$' } +func newInheritMetaFilter() meta.Filter { + return meta.StopOnFailureFilter( + meta.AndFilter( + meta.TokenNameFilter(meta.NodeStart), + meta.OrFilter( + meta.TypeFilter(meta.CommentType, meta.WhiteSpaceType), + meta.ValueFilter(" 0 { + yyDollar[1].list[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + } + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2498 + //line php7/php7.y:2549 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4900,7 +4949,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2504 + //line php7/php7.y:2555 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4911,7 +4960,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2516 + //line php7/php7.y:2567 { yyVAL.node = stmt.NewNop() @@ -4925,7 +4974,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2529 + //line php7/php7.y:2580 { yyVAL.node = stmt.NewTraitAdaptationList(nil) @@ -4939,7 +4988,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2541 + //line php7/php7.y:2592 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4953,7 +5002,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2556 + //line php7/php7.y:2607 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4961,7 +5010,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2562 + //line php7/php7.y:2613 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4969,7 +5018,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2571 + //line php7/php7.y:2622 { yyVAL.node = yyDollar[1].node @@ -4981,7 +5030,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2581 + //line php7/php7.y:2632 { yyVAL.node = yyDollar[1].node @@ -4993,7 +5042,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2594 + //line php7/php7.y:2645 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -5003,11 +5052,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.InsteadofToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2609 + //line php7/php7.y:2662 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -5020,11 +5071,13 @@ 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(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2624 + //line php7/php7.y:2679 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -5037,11 +5090,13 @@ 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(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 258: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2639 + //line php7/php7.y:2696 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -5054,11 +5109,13 @@ 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(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2654 + //line php7/php7.y:2713 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5068,11 +5125,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 260: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2669 + //line php7/php7.y:2730 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5082,13 +5141,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2683 + //line php7/php7.y:2744 { yyVAL.node = yyDollar[1].node @@ -5096,7 +5155,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2692 + //line php7/php7.y:2753 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5109,11 +5168,13 @@ 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(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2710 + //line php7/php7.y:2773 { yyVAL.node = stmt.NewNop() @@ -5128,7 +5189,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2723 + //line php7/php7.y:2786 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5143,7 +5204,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2739 + //line php7/php7.y:2802 { yyVAL.list = yyDollar[1].list @@ -5151,7 +5212,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2745 + //line php7/php7.y:2808 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5166,7 +5227,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2761 + //line php7/php7.y:2824 { yyVAL.list = nil @@ -5174,7 +5235,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2767 + //line php7/php7.y:2830 { yyVAL.list = yyDollar[1].list @@ -5182,7 +5243,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2776 + //line php7/php7.y:2839 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5190,7 +5251,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2782 + //line php7/php7.y:2845 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5198,7 +5259,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2791 + //line php7/php7.y:2854 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5212,7 +5273,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2803 + //line php7/php7.y:2866 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5226,7 +5287,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2815 + //line php7/php7.y:2878 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5240,7 +5301,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2827 + //line php7/php7.y:2890 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5254,7 +5315,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2839 + //line php7/php7.y:2902 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5268,7 +5329,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2851 + //line php7/php7.y:2914 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5282,7 +5343,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2866 + //line php7/php7.y:2929 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5293,7 +5354,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2875 + //line php7/php7.y:2938 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5301,7 +5362,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2884 + //line php7/php7.y:2947 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5313,14 +5374,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 280: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2901 + //line php7/php7.y:2964 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5332,7 +5393,7 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) @@ -5340,7 +5401,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2922 + //line php7/php7.y:2985 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5351,7 +5412,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2931 + //line php7/php7.y:2994 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5359,7 +5420,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2940 + //line php7/php7.y:3003 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5369,14 +5430,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 284: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2958 + //line php7/php7.y:3021 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5386,14 +5447,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2976 + //line php7/php7.y:3039 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5404,7 +5465,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2985 + //line php7/php7.y:3048 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5412,7 +5473,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2994 + //line php7/php7.y:3057 { yyVAL.node = yyDollar[1].node @@ -5420,7 +5481,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3003 + //line php7/php7.y:3066 { yyVAL.list = nil @@ -5428,7 +5489,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3009 + //line php7/php7.y:3072 { yyVAL.list = yyDollar[1].list @@ -5436,7 +5497,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3018 + //line php7/php7.y:3081 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5447,7 +5508,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3027 + //line php7/php7.y:3090 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5455,7 +5516,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:3036 + //line php7/php7.y:3099 { if yyDollar[2].node != nil { yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].node.(*node.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -5467,7 +5528,7 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.ClassToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yyDollar[6].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[8].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) @@ -5475,7 +5536,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3057 + //line php7/php7.y:3120 { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) @@ -5492,7 +5553,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3072 + //line php7/php7.y:3135 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -5506,7 +5567,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3087 + //line php7/php7.y:3150 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5516,7 +5577,7 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(list.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) yyDollar[5].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) @@ -5525,7 +5586,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3104 + //line php7/php7.y:3167 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -5535,7 +5596,7 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(shortList.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(shortList.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) @@ -5543,7 +5604,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3120 + //line php7/php7.y:3183 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5553,11 +5614,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 298: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3132 + //line php7/php7.y:3197 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5568,11 +5631,13 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3145 + //line php7/php7.y:3212 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5586,7 +5651,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3157 + //line php7/php7.y:3224 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5596,11 +5661,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PlusEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3169 + //line php7/php7.y:3238 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5610,11 +5677,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.MinusEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3181 + //line php7/php7.y:3252 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5624,11 +5693,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.MulEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3193 + //line php7/php7.y:3266 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5638,11 +5709,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PowEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3205 + //line php7/php7.y:3280 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5652,11 +5725,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.DivEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3217 + //line php7/php7.y:3294 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5666,11 +5741,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.ConcatEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3229 + //line php7/php7.y:3308 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5680,11 +5757,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.ModEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3241 + //line php7/php7.y:3322 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5694,11 +5773,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.AndEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3253 + //line php7/php7.y:3336 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5708,11 +5789,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.OrEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3265 + //line php7/php7.y:3350 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5722,11 +5805,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.XorEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3277 + //line php7/php7.y:3364 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5736,11 +5821,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.SlEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3289 + //line php7/php7.y:3378 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5750,11 +5837,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.SrEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3301 + //line php7/php7.y:3392 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5764,11 +5853,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.IncToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3313 + //line php7/php7.y:3406 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5782,7 +5873,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3325 + //line php7/php7.y:3418 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5792,11 +5883,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.DecToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3337 + //line php7/php7.y:3432 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5810,7 +5903,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3349 + //line php7/php7.y:3444 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5820,11 +5913,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.BooleanOrToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3361 + //line php7/php7.y:3458 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5834,11 +5929,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.BooleanAndToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3373 + //line php7/php7.y:3472 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5848,11 +5945,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.LogicalOrToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3385 + //line php7/php7.y:3486 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5862,11 +5961,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.LogicalAndToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3397 + //line php7/php7.y:3500 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5876,11 +5977,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.LogicalXorToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3409 + //line php7/php7.y:3514 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5890,11 +5993,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.VerticalBarToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3421 + //line php7/php7.y:3528 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5904,11 +6009,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3433 + //line php7/php7.y:3542 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5918,11 +6025,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.CaretToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3445 + //line php7/php7.y:3556 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5932,11 +6041,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.DotToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3457 + //line php7/php7.y:3570 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5946,11 +6057,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PlusToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3469 + //line php7/php7.y:3584 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5960,11 +6073,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.MinusToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3481 + //line php7/php7.y:3598 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5974,11 +6089,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.AsteriskToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3493 + //line php7/php7.y:3612 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5988,11 +6105,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PowToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3505 + //line php7/php7.y:3626 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -6002,11 +6121,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.SlashToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3517 + //line php7/php7.y:3640 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -6016,11 +6137,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PercentToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3529 + //line php7/php7.y:3654 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6030,11 +6153,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.SlToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3541 + //line php7/php7.y:3668 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6044,11 +6169,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.SrToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3553 + //line php7/php7.y:3682 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6062,7 +6189,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3565 + //line php7/php7.y:3694 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6076,7 +6203,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3577 + //line php7/php7.y:3706 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6090,7 +6217,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3589 + //line php7/php7.y:3718 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6104,7 +6231,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3601 + //line php7/php7.y:3730 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6114,11 +6241,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.IsIdenticalToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3613 + //line php7/php7.y:3744 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6128,11 +6257,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.IsNotIdenticalToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3625 + //line php7/php7.y:3758 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6142,11 +6273,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.IsEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3637 + //line php7/php7.y:3772 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6157,11 +6290,13 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.IsNotEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.IsNotEqualToken) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3650 + //line php7/php7.y:3787 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6171,11 +6306,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.LessToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3662 + //line php7/php7.y:3801 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6185,11 +6322,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.IsSmallerOrEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3674 + //line php7/php7.y:3815 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6199,11 +6338,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.GreaterToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3686 + //line php7/php7.y:3829 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6213,11 +6354,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.IsGreaterOrEqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3698 + //line php7/php7.y:3843 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -6227,11 +6370,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.SpaceshipToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3710 + //line php7/php7.y:3857 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6241,11 +6386,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.InstanceofToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3722 + //line php7/php7.y:3871 { yyVAL.node = yyDollar[2].node @@ -6259,7 +6406,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3734 + //line php7/php7.y:3883 { yyVAL.node = yyDollar[1].node @@ -6267,7 +6414,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3740 + //line php7/php7.y:3889 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6278,11 +6425,13 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 350: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3753 + //line php7/php7.y:3904 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6293,11 +6442,13 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 351: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3766 + //line php7/php7.y:3919 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -6307,11 +6458,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.CoalesceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3778 + //line php7/php7.y:3933 { yyVAL.node = yyDollar[1].node @@ -6319,7 +6472,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3784 + //line php7/php7.y:3939 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6334,7 +6487,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3797 + //line php7/php7.y:3952 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6349,7 +6502,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3810 + //line php7/php7.y:3965 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6364,7 +6517,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3823 + //line php7/php7.y:3978 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6379,7 +6532,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3836 + //line php7/php7.y:3991 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6394,7 +6547,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3849 + //line php7/php7.y:4004 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6409,7 +6562,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3862 + //line php7/php7.y:4017 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6424,7 +6577,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3875 + //line php7/php7.y:4030 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6453,7 +6606,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3902 + //line php7/php7.y:4057 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6467,7 +6620,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3914 + //line php7/php7.y:4069 { yyVAL.node = yyDollar[1].node @@ -6475,7 +6628,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3920 + //line php7/php7.y:4075 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6489,7 +6642,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3932 + //line php7/php7.y:4087 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6503,7 +6656,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3944 + //line php7/php7.y:4099 { yyVAL.node = expr.NewYield(nil, nil) @@ -6517,7 +6670,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3956 + //line php7/php7.y:4111 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6531,7 +6684,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3968 + //line php7/php7.y:4123 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6546,7 +6699,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3981 + //line php7/php7.y:4136 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -6560,7 +6713,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:3993 + //line php7/php7.y:4148 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].token != nil, yyDollar[3].str) @@ -6581,7 +6734,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:4012 + //line php7/php7.y:4167 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].ClosureUse, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].token != nil, yyDollar[4].str) @@ -6603,7 +6756,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4035 + //line php7/php7.y:4190 { yyVAL.str = yylex.(*Parser).PhpDocComment yylex.(*Parser).PhpDocComment = "" @@ -6612,19 +6765,19 @@ yydefault: } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4045 + //line php7/php7.y:4200 { yyVAL.token = nil } case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4049 + //line php7/php7.y:4204 { yyVAL.token = yyDollar[1].token } case 374: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4056 + //line php7/php7.y:4211 { yyVAL.ClosureUse = nil @@ -6632,7 +6785,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4062 + //line php7/php7.y:4217 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6648,7 +6801,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4079 + //line php7/php7.y:4234 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6659,7 +6812,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4088 + //line php7/php7.y:4243 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -6667,7 +6820,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4097 + //line php7/php7.y:4252 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -6684,7 +6837,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4112 + //line php7/php7.y:4267 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6704,18 +6857,21 @@ yydefault: } case 380: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4133 + //line php7/php7.y:4288 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + // save comments + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 381: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4142 + //line php7/php7.y:4300 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6724,12 +6880,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4154 + //line php7/php7.y:4313 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6738,23 +6895,25 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4166 + //line php7/php7.y:4326 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4178 + //line php7/php7.y:4339 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6768,7 +6927,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4190 + //line php7/php7.y:4351 { yyVAL.node = yyDollar[1].node @@ -6776,7 +6935,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4199 + //line php7/php7.y:4360 { yyVAL.node = yyDollar[1].node @@ -6784,7 +6943,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4205 + //line php7/php7.y:4366 { yyVAL.node = yyDollar[1].node @@ -6792,7 +6951,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4214 + //line php7/php7.y:4375 { yyVAL.node = nil @@ -6800,7 +6959,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4220 + //line php7/php7.y:4381 { yyVAL.node = expr.NewExit(yyDollar[2].node) @@ -6808,8 +6967,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.OpenParenthesisToken) + yylex.(*Parser).prependMetaToken(yyVAL.node, yyDollar[1].token, meta.OpenParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).PrependTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.CloseParenthesisToken) @@ -6817,7 +6976,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4238 + //line php7/php7.y:4399 { yyVAL.list = []node.Node{} @@ -6825,7 +6984,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4244 + //line php7/php7.y:4405 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -6833,7 +6992,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4250 + //line php7/php7.y:4411 { yyVAL.list = yyDollar[1].list @@ -6841,7 +7000,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4259 + //line php7/php7.y:4420 { yyVAL.node = nil @@ -6849,7 +7008,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4265 + //line php7/php7.y:4426 { yyVAL.node = yyDollar[1].node @@ -6857,7 +7016,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4274 + //line php7/php7.y:4435 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6873,7 +7032,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4288 + //line php7/php7.y:4449 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6888,7 +7047,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4301 + //line php7/php7.y:4462 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6902,7 +7061,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4316 + //line php7/php7.y:4477 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -6916,7 +7075,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4328 + //line php7/php7.y:4489 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -6930,7 +7089,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4340 + //line php7/php7.y:4501 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6944,7 +7103,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4352 + //line php7/php7.y:4513 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6958,7 +7117,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4364 + //line php7/php7.y:4525 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6972,7 +7131,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4376 + //line php7/php7.y:4537 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6986,7 +7145,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4388 + //line php7/php7.y:4549 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7000,7 +7159,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4400 + //line php7/php7.y:4561 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7014,7 +7173,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4412 + //line php7/php7.y:4573 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7028,7 +7187,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4424 + //line php7/php7.y:4585 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7042,7 +7201,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4436 + //line php7/php7.y:4597 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7058,7 +7217,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4450 + //line php7/php7.y:4611 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7072,7 +7231,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4462 + //line php7/php7.y:4623 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -7086,7 +7245,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4474 + //line php7/php7.y:4635 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -7100,7 +7259,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4486 + //line php7/php7.y:4647 { yyVAL.node = yyDollar[1].node @@ -7108,7 +7267,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4492 + //line php7/php7.y:4653 { yyVAL.node = yyDollar[1].node @@ -7116,18 +7275,21 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4501 + //line php7/php7.y:4662 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + // save comments + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4510 + //line php7/php7.y:4674 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7140,11 +7302,13 @@ 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(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4525 + //line php7/php7.y:4691 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7157,11 +7321,13 @@ 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(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4543 + //line php7/php7.y:4711 { yyVAL.node = yyDollar[1].node @@ -7169,7 +7335,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4549 + //line php7/php7.y:4717 { yyVAL.node = yyDollar[1].node @@ -7177,7 +7343,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4558 + //line php7/php7.y:4726 { yyVAL.node = nil @@ -7185,7 +7351,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4564 + //line php7/php7.y:4732 { yyVAL.node = yyDollar[1].node @@ -7193,7 +7359,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4573 + //line php7/php7.y:4741 { yyVAL.node = yyDollar[1].node @@ -7201,7 +7367,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4582 + //line php7/php7.y:4750 { yyVAL.node = yyDollar[1].node @@ -7209,7 +7375,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4588 + //line php7/php7.y:4756 { yyVAL.node = yyDollar[2].node @@ -7223,7 +7389,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4600 + //line php7/php7.y:4768 { yyVAL.node = yyDollar[1].node @@ -7231,7 +7397,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4609 + //line php7/php7.y:4777 { yyVAL.node = yyDollar[1].node @@ -7239,13 +7405,13 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4615 + //line php7/php7.y:4783 { yyVAL.node = yyDollar[2].node // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) + yylex.(*Parser).prependMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).PrependTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.NodeEnd) @@ -7253,7 +7419,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4627 + //line php7/php7.y:4795 { yyVAL.node = yyDollar[1].node @@ -7261,7 +7427,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4636 + //line php7/php7.y:4804 { yyVAL.node = yyDollar[1].node @@ -7269,7 +7435,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4642 + //line php7/php7.y:4810 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7277,16 +7443,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenSquareBracket) + yylex.(*Parser).prependMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenSquareBracket) + yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).PrependTo(yyVAL.node.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4657 + //line php7/php7.y:4827 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7294,16 +7462,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenSquareBracket) + yylex.(*Parser).prependMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenSquareBracket) + yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).PrependTo(yyVAL.node.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4672 + //line php7/php7.y:4844 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7311,16 +7481,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenCurlyBracesToken) + yylex.(*Parser).prependMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenCurlyBracesToken) + yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).PrependTo(yyVAL.node.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseCurlyBracesToken) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 432: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4687 + //line php7/php7.y:4861 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7330,11 +7502,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4699 + //line php7/php7.y:4875 { yyVAL.node = yyDollar[1].node @@ -7342,7 +7516,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4708 + //line php7/php7.y:4884 { yyVAL.node = yyDollar[1].node @@ -7350,7 +7524,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4714 + //line php7/php7.y:4890 { yyVAL.node = yyDollar[1].node @@ -7358,7 +7532,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4720 + //line php7/php7.y:4896 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7368,11 +7542,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4735 + //line php7/php7.y:4913 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7389,7 +7565,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4750 + //line php7/php7.y:4928 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -7408,7 +7584,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4767 + //line php7/php7.y:4945 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7423,7 +7599,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4783 + //line php7/php7.y:4961 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7433,11 +7609,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 441: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4795 + //line php7/php7.y:4975 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7447,11 +7625,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4810 + //line php7/php7.y:4992 { yyVAL.node = yyDollar[1].node @@ -7459,7 +7639,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4816 + //line php7/php7.y:4998 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7467,16 +7647,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenSquareBracket) + yylex.(*Parser).prependMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenSquareBracket) + yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).PrependTo(yyVAL.node.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4831 + //line php7/php7.y:5015 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7484,16 +7666,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenCurlyBracesToken) + yylex.(*Parser).prependMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenCurlyBracesToken) + yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).PrependTo(yyVAL.node.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseCurlyBracesToken) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4846 + //line php7/php7.y:5032 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7503,11 +7687,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 446: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4858 + //line php7/php7.y:5046 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7517,11 +7703,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 447: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4870 + //line php7/php7.y:5060 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7531,11 +7719,13 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4885 + //line php7/php7.y:5077 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7549,13 +7739,13 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4897 + //line php7/php7.y:5089 { yyVAL.node = yyDollar[2].node // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) + yylex.(*Parser).prependMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).PrependTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.NodeEnd) @@ -7563,7 +7753,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4909 + //line php7/php7.y:5101 { yyVAL.node = yyDollar[1].node @@ -7571,7 +7761,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4918 + //line php7/php7.y:5110 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7585,13 +7775,13 @@ yydefault: } case 452: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4930 + //line php7/php7.y:5122 { yyVAL.node = yyDollar[2].node // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) + yylex.(*Parser).prependMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).PrependTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.NodeEnd) @@ -7599,7 +7789,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4942 + //line php7/php7.y:5134 { yyVAL.node = yyDollar[1].node @@ -7607,7 +7797,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4951 + //line php7/php7.y:5143 { yyVAL.list = yyDollar[1].list @@ -7615,7 +7805,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4960 + //line php7/php7.y:5152 { yyVAL.node = expr.NewArrayItem(nil, nil) @@ -7623,7 +7813,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4966 + //line php7/php7.y:5158 { yyVAL.node = yyDollar[1].node @@ -7631,7 +7821,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4975 + //line php7/php7.y:5167 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} @@ -7646,7 +7836,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4988 + //line php7/php7.y:5180 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -7658,7 +7848,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5001 + //line php7/php7.y:5193 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) @@ -7668,22 +7858,26 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 460: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5013 + //line php7/php7.y:5207 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5022 + //line php7/php7.y:5218 { reference := expr.NewReference(yyDollar[4].node) yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference) @@ -7696,11 +7890,13 @@ yydefault: yyDollar[2].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.NodeStart).AppendTo(reference.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5037 + //line php7/php7.y:5235 { reference := expr.NewReference(yyDollar[2].node) yyVAL.node = expr.NewArrayItem(nil, reference) @@ -7710,13 +7906,13 @@ yydefault: reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(reference.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 463: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5051 + //line php7/php7.y:5249 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) @@ -7732,11 +7928,13 @@ yydefault: yyDollar[4].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) yyDollar[6].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) + yyDollar[1].node.GetMeta().Cut(newInheritMetaFilter()).PrependTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5069 + //line php7/php7.y:5269 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) @@ -7747,7 +7945,7 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(list.GetMeta()) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) @@ -7755,7 +7953,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5089 + //line php7/php7.y:5289 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7763,7 +7961,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5095 + //line php7/php7.y:5295 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7778,7 +7976,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5108 + //line php7/php7.y:5308 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -7786,7 +7984,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5114 + //line php7/php7.y:5314 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -7801,7 +7999,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5130 + //line php7/php7.y:5330 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7818,7 +8016,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5145 + //line php7/php7.y:5345 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7830,18 +8028,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenCurlyBracesToken) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenSquareBracket) yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseCurlyBracesToken) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5166 + //line php7/php7.y:5365 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7855,7 +8052,6 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.NodeStart).AppendTo(fetch.GetMeta()) @@ -7864,7 +8060,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5187 + //line php7/php7.y:5385 { variable := expr.NewVariable(yyDollar[2].node) @@ -7874,7 +8070,6 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) yyDollar[3].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.NodeEnd) @@ -7883,7 +8078,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5204 + //line php7/php7.y:5401 { name := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(name) @@ -7895,7 +8090,6 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) yyDollar[2].token.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) @@ -7905,7 +8099,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5224 + //line php7/php7.y:5420 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -7917,7 +8111,6 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) yyDollar[3].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.OpenSquareBracket) @@ -7930,12 +8123,11 @@ yydefault: } case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5247 + //line php7/php7.y:5442 { yyVAL.node = yyDollar[2].node // save comments - yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).PrependTo(yyVAL.node.GetMeta()) yylex.(*Parser).prependMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) yyDollar[3].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.NodeEnd) @@ -7944,7 +8136,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5262 + //line php7/php7.y:5456 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7958,7 +8150,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5274 + //line php7/php7.y:5468 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -7970,11 +8162,14 @@ yydefault: // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + // save comments + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5288 + //line php7/php7.y:5485 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -8002,7 +8197,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5314 + //line php7/php7.y:5511 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -8019,7 +8214,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:5332 + //line php7/php7.y:5529 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -8039,7 +8234,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5350 + //line php7/php7.y:5547 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -8055,7 +8250,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5364 + //line php7/php7.y:5561 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -8069,7 +8264,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5376 + //line php7/php7.y:5573 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -8083,7 +8278,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5388 + //line php7/php7.y:5585 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -8099,7 +8294,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5402 + //line php7/php7.y:5599 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -8113,7 +8308,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5414 + //line php7/php7.y:5611 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -8127,7 +8322,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5429 + //line php7/php7.y:5626 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8135,7 +8330,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5435 + //line php7/php7.y:5632 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8146,7 +8341,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5447 + //line php7/php7.y:5644 { yyVAL.node = yyDollar[1].node diff --git a/php7/php7.y b/php7/php7.y index 7e6529f..f1ecbed 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -395,6 +395,9 @@ name: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + // save comments + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name @@ -644,6 +647,8 @@ group_use_declaration: } $6.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' @@ -656,8 +661,9 @@ group_use_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments - $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + yylex.(*Parser).appendMetaToken(name, $1, meta.NodeStart) + $2[0].GetMeta().Cut(newInheritMetaFilter()).AppendTo(name.GetMeta()) $3.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) $4.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) if $6 != nil { @@ -689,6 +695,8 @@ mixed_group_use_declaration: } $6.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' @@ -701,8 +709,9 @@ mixed_group_use_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments - $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + yylex.(*Parser).appendMetaToken(name, $1, meta.NodeStart) + $2[0].GetMeta().Cut(newInheritMetaFilter()).AppendTo(name.GetMeta()) $3.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) $4.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) if $6 != nil { @@ -711,6 +720,8 @@ mixed_group_use_declaration: } $7.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) + $2[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -785,12 +796,16 @@ inline_use_declaration: { $$ = $1 + $1.(*stmt.Use).Use.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | use_type unprefixed_use_declaration { $$ = $2.(*stmt.Use).SetUseType($1) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -805,6 +820,8 @@ unprefixed_use_declaration: name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING @@ -822,6 +839,8 @@ unprefixed_use_declaration: $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo(name.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -831,6 +850,8 @@ use_declaration: { $$ = $1 + $1.(*stmt.Use).Use.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR unprefixed_use_declaration @@ -838,8 +859,9 @@ use_declaration: $$ = $2; // save comments - $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + $2.(*stmt.Use).Use.GetMeta().Cut(newInheritMetaFilter()).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1157,6 +1179,8 @@ statement: $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_UNSET '(' unset_variables possible_comma ')' ';' @@ -1316,7 +1340,7 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(label.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1485,6 +1509,8 @@ class_declaration_statement: $7.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) $9.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' @@ -1497,7 +1523,7 @@ class_declaration_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments - $1.Meta.SetTokenName(meta.ClassToken).AppendTo($$.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) @@ -2122,13 +2148,20 @@ parameter: } // save comments + if $1 != nil { + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + } if $2 != nil { $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } if $3 != nil { $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - $4.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + if $1 == nil && $2 == nil && $3 == nil { + $4.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + } else { + $4.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + } yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2153,13 +2186,20 @@ parameter: } // save comments + if $1 != nil { + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + } if $2 != nil { $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } if $3 != nil { $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - $4.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + if $1 == nil && $2 == nil && $3 == nil { + $4.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + } else { + $4.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + } yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $5.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) @@ -2313,6 +2353,9 @@ argument: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + // save comments + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ELLIPSIS expr @@ -2323,7 +2366,7 @@ argument: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - $1.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2439,6 +2482,8 @@ class_statement: $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | method_modifiers T_CONST class_const_list ';' @@ -2453,6 +2498,8 @@ class_statement: $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE name_list trait_adaptations @@ -2489,6 +2536,10 @@ class_statement: $6.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) $8.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + if len($1) > 0 { + $1[0].GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + } + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2600,6 +2651,8 @@ trait_precedence: // save comments $2.Meta.SetTokenName(meta.InsteadofToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2618,6 +2671,8 @@ trait_alias: $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_method_reference T_AS reserved_non_modifiers @@ -2633,6 +2688,8 @@ trait_alias: $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_method_reference T_AS member_modifier identifier @@ -2648,6 +2705,8 @@ trait_alias: $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) $4.Meta.SetTokenName(meta.NodeStart).AppendTo(alias.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_method_reference T_AS member_modifier @@ -2660,6 +2719,8 @@ trait_alias: // save comments $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2675,7 +2736,7 @@ trait_method_reference: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2701,6 +2762,8 @@ absolute_trait_method_reference: $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(target.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2892,7 +2955,7 @@ property: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2909,7 +2972,7 @@ property: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) @@ -2946,7 +3009,7 @@ class_const_decl: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2964,7 +3027,7 @@ const_decl: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3044,7 +3107,7 @@ anonymous_class: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments - $1.Meta.SetTokenName(meta.ClassToken).AppendTo($$.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) @@ -3093,7 +3156,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(list.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) $5.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) @@ -3110,7 +3173,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(shortList.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(shortList.GetMeta()) $4.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) @@ -3126,6 +3189,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable '=' '&' expr @@ -3139,6 +3204,8 @@ expr_without_variable: $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLONE expr @@ -3163,6 +3230,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.PlusEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MINUS_EQUAL expr @@ -3175,6 +3244,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.MinusEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MUL_EQUAL expr @@ -3187,6 +3258,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.MulEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_POW_EQUAL expr @@ -3199,6 +3272,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.PowEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_DIV_EQUAL expr @@ -3211,6 +3286,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.DivEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_CONCAT_EQUAL expr @@ -3223,6 +3300,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.ConcatEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MOD_EQUAL expr @@ -3235,6 +3314,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.ModEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_AND_EQUAL expr @@ -3247,6 +3328,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.AndEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_OR_EQUAL expr @@ -3259,6 +3342,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.OrEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_XOR_EQUAL expr @@ -3271,6 +3356,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.XorEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_SL_EQUAL expr @@ -3283,6 +3370,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.SlEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_SR_EQUAL expr @@ -3295,6 +3384,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.SrEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_INC @@ -3307,6 +3398,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.IncToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INC variable @@ -3331,6 +3424,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.DecToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DEC variable @@ -3355,6 +3450,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.BooleanOrToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_BOOLEAN_AND expr @@ -3367,6 +3464,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.BooleanAndToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_OR expr @@ -3379,6 +3478,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.LogicalOrToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_AND expr @@ -3391,6 +3492,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.LogicalAndToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_XOR expr @@ -3403,6 +3506,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.LogicalXorToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '|' expr @@ -3415,6 +3520,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.VerticalBarToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '&' expr @@ -3427,6 +3534,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '^' expr @@ -3439,6 +3548,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.CaretToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '.' expr @@ -3451,6 +3562,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.DotToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '+' expr @@ -3463,6 +3576,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.PlusToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '-' expr @@ -3475,6 +3590,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.MinusToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '*' expr @@ -3487,6 +3604,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.AsteriskToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_POW expr @@ -3499,6 +3618,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.PowToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '/' expr @@ -3511,6 +3632,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.SlashToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '%' expr @@ -3523,6 +3646,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.PercentToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_SL expr @@ -3535,6 +3660,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.SlToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_SR expr @@ -3547,6 +3674,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.SrToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '+' expr %prec T_INC @@ -3607,6 +3736,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.IsIdenticalToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_NOT_IDENTICAL expr @@ -3619,6 +3750,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.IsNotIdenticalToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_EQUAL expr @@ -3631,6 +3764,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.IsEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_NOT_EQUAL expr @@ -3644,6 +3779,8 @@ expr_without_variable: $2.Meta.SetTokenName(meta.IsNotEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $2, meta.IsNotEqualToken) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '<' expr @@ -3656,6 +3793,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.LessToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_SMALLER_OR_EQUAL expr @@ -3668,6 +3807,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.IsSmallerOrEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '>' expr @@ -3680,6 +3821,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.GreaterToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_GREATER_OR_EQUAL expr @@ -3692,6 +3835,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.IsGreaterOrEqualToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_SPACESHIP expr @@ -3704,6 +3849,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.SpaceshipToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_INSTANCEOF class_name_reference @@ -3716,6 +3863,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.InstanceofToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' expr ')' @@ -3747,6 +3896,8 @@ expr_without_variable: $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) $4.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '?' ':' expr @@ -3760,6 +3911,8 @@ expr_without_variable: $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_COALESCE expr @@ -3772,6 +3925,8 @@ expr_without_variable: // save comments $2.Meta.SetTokenName(meta.CoalesceToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | internal_functions_in_yacc @@ -4136,6 +4291,9 @@ function_call: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) + // save comments + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list @@ -4147,6 +4305,7 @@ function_call: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4159,6 +4318,7 @@ function_call: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4168,6 +4328,7 @@ function_call: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4224,8 +4385,8 @@ exit_expr: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.OpenParenthesisToken) + yylex.(*Parser).prependMetaToken($$, $1, meta.OpenParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).PrependTo($$.GetMeta()) $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.CloseParenthesisToken) @@ -4504,6 +4665,9 @@ constant: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + // save comments + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier @@ -4519,6 +4683,8 @@ constant: $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(target.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier @@ -4534,6 +4700,8 @@ constant: $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(target.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4616,8 +4784,8 @@ callable_expr: $$ = $2; // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + yylex.(*Parser).prependMetaToken($$, $1, meta.NodeStart) + $1.Meta.SetTokenName(meta.NodeStart).PrependTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) @@ -4646,11 +4814,13 @@ callable_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + yylex.(*Parser).prependMetaToken($$, $2, meta.OpenSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).PrependTo($$.GetMeta()) $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | constant '[' optional_expr ']' @@ -4661,11 +4831,13 @@ callable_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + yylex.(*Parser).prependMetaToken($$, $2, meta.OpenSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).PrependTo($$.GetMeta()) $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dereferencable '{' expr '}' @@ -4676,11 +4848,13 @@ callable_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $2, meta.OpenCurlyBracesToken) + yylex.(*Parser).prependMetaToken($$, $2, meta.OpenCurlyBracesToken) + $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).PrependTo($$.GetMeta()) $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseCurlyBracesToken) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dereferencable T_OBJECT_OPERATOR property_name argument_list @@ -4693,6 +4867,8 @@ callable_variable: // save comments $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_call @@ -4726,6 +4902,8 @@ variable: // save comments $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4789,6 +4967,8 @@ static_member: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable @@ -4801,6 +4981,8 @@ static_member: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4820,11 +5002,13 @@ new_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + yylex.(*Parser).prependMetaToken($$, $2, meta.OpenSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).PrependTo($$.GetMeta()) $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_variable '{' expr '}' @@ -4835,11 +5019,13 @@ new_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $2, meta.OpenCurlyBracesToken) + yylex.(*Parser).prependMetaToken($$, $2, meta.OpenCurlyBracesToken) + $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).PrependTo($$.GetMeta()) $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $4, meta.CloseCurlyBracesToken) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_variable T_OBJECT_OPERATOR property_name @@ -4852,6 +5038,8 @@ new_variable: // save comments $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable @@ -4864,6 +5052,8 @@ new_variable: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable @@ -4876,6 +5066,8 @@ new_variable: // save comments $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4898,8 +5090,8 @@ member_name: $$ = $2; // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + yylex.(*Parser).prependMetaToken($$, $1, meta.NodeStart) + $1.Meta.SetTokenName(meta.NodeStart).PrependTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) @@ -4931,8 +5123,8 @@ property_name: $$ = $2; // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + yylex.(*Parser).prependMetaToken($$, $1, meta.NodeStart) + $1.Meta.SetTokenName(meta.NodeStart).PrependTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) @@ -5007,6 +5199,8 @@ array_pair: // save comments $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr @@ -5016,6 +5210,8 @@ array_pair: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW '&' variable @@ -5031,6 +5227,8 @@ array_pair: $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(reference.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' variable @@ -5043,7 +5241,7 @@ array_pair: reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(reference.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5063,6 +5261,8 @@ array_pair: $4.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) $6.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) + $1.GetMeta().Cut(newInheritMetaFilter()).PrependTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LIST '(' array_pair_list ')' @@ -5076,7 +5276,7 @@ array_pair: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(list.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) @@ -5153,12 +5353,11 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $2, meta.OpenCurlyBracesToken) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $4, meta.CloseCurlyBracesToken) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5176,7 +5375,6 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) $3.Meta.SetTokenName(meta.NodeStart).AppendTo(fetch.GetMeta()) @@ -5193,7 +5391,6 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) @@ -5212,7 +5409,6 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) $2.Meta.SetTokenName(meta.NodeStart).AppendTo(name.GetMeta()) $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) @@ -5232,7 +5428,6 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) $3.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.OpenSquareBracket) @@ -5248,7 +5443,6 @@ encaps_var: $$ = $2; // save comments - $1.Meta.SetTokenName(meta.NodeStart).PrependTo($$.GetMeta()) yylex.(*Parser).prependMetaToken($$, $1, meta.NodeStart) $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) @@ -5282,6 +5476,9 @@ encaps_var_offset: // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + // save comments + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '-' T_NUM_STRING diff --git a/printer/printer.go b/printer/printer.go index 24b2bbb..e6d701f 100644 --- a/printer/printer.go +++ b/printer/printer.go @@ -2293,7 +2293,6 @@ func (p *Printer) printStmtGroupUse(n node.Node) { p.Print(nn.UseType) } - p.printMeta(nn, meta.UseLeadingNsSeparatorToken) p.Print(nn.Prefix) p.printMeta(nn, meta.NsSeparatorToken) io.WriteString(p.w, "\\") @@ -2675,8 +2674,6 @@ func (p *Printer) printStmtUse(n node.Node) { p.Print(nn.UseType) } - p.printMeta(nn, meta.UseLeadingNsSeparatorToken) - p.Print(nn.Use) if nn.Alias != nil { diff --git a/visitor/dumper_test.go b/visitor/dumper_test.go index f69b879..6451ca1 100644 --- a/visitor/dumper_test.go +++ b/visitor/dumper_test.go @@ -61,7 +61,7 @@ func ExampleDumper() { // | "Position": Pos{Line: 4-10 Pos: 29-139} // | "NamespacedName": "Foo\\Bar" // | "Meta": - // | "\n\t\t\t" before "ClassToken" + // | "\n\t\t\t" before "NodeStart" // | " " before "OpenCurlyBracesToken" // | "\n\t\t\t" before "CloseCurlyBracesToken" // | "PhpDocComment": "" @@ -75,6 +75,7 @@ func ExampleDumper() { // | [*stmt.ClassMethod] // | "Position": Pos{Line: 5-9 Pos: 45-134} // | "Meta": + // | "\n\t\t\t\t" before "NodeStart" // | " " before "FunctionToken" // | "ReturnsRef": false // | "PhpDocComment": "" @@ -87,8 +88,6 @@ func ExampleDumper() { // | "Modifiers": // | [*node.Identifier] // | "Position": Pos{Line: 5-5 Pos: 45-50} - // | "Meta": - // | "\n\t\t\t\t" before "NodeStart" // | "Value": "public" // | "Params": // | [*node.Parameter] @@ -118,6 +117,8 @@ func ExampleDumper() { // | "DefaultValue": // | [*expr.ConstFetch] // | "Position": Pos{Line: 5-5 Pos: 86-89} + // | "Meta": + // | " " before "NodeStart" // | "Constant": // | [*name.Name] // | "Position": Pos{Line: 5-5 Pos: 86-89} @@ -125,8 +126,6 @@ func ExampleDumper() { // | "Parts": // | [*name.NamePart] // | "Position": Pos{Line: 5-5 Pos: 86-89} - // | "Meta": - // | " " before "NodeStart" // | "Value": "null" // | "Stmt": // | [*stmt.StmtList] @@ -138,14 +137,14 @@ func ExampleDumper() { // | [*stmt.Expression] // | "Position": Pos{Line: 8-8 Pos: 124-128} // | "Meta": + // | "\n\t\t\t\t\t" before "NodeStart" + // | "// some comment\n" before "NodeStart" + // | "\t\t\t\t\t" before "NodeStart" // | ";" before "SemiColonToken" // | "Expr": // | [*expr.Variable] // | "Position": Pos{Line: 8-8 Pos: 124-127} // | "Meta": - // | "\n\t\t\t\t\t" before "NodeStart" - // | "// some comment\n" before "NodeStart" - // | "\t\t\t\t\t" before "NodeStart" // | "$" before "NodeStart" // | "VarName": // | [*node.Identifier] diff --git a/visitor/go_dumper_test.go b/visitor/go_dumper_test.go index e06a3a1..c7aa0db 100644 --- a/visitor/go_dumper_test.go +++ b/visitor/go_dumper_test.go @@ -146,7 +146,7 @@ func ExampleGoDumper() { // EndPos: 28, // }, // Value: "\n\t\t\t", - // TokenName: meta.ClassToken, + // TokenName: meta.NodeStart, // }, // &meta.Data{ // Type: meta.WhiteSpaceType, @@ -206,6 +206,17 @@ func ExampleGoDumper() { // &meta.Data{ // Type: meta.WhiteSpaceType, // Position: &position.Position{ + // StartLine: 4, + // EndLine: 5, + // StartPos: 40, + // EndPos: 44, + // }, + // Value: "\n\t\t\t\t", + // TokenName: meta.NodeStart, + // }, + // &meta.Data{ + // Type: meta.WhiteSpaceType, + // Position: &position.Position{ // StartLine: 5, // EndLine: 5, // StartPos: 51, @@ -247,19 +258,6 @@ func ExampleGoDumper() { // StartPos: 45, // EndPos: 50, // }, - // Meta: meta.Collection{ - // &meta.Data{ - // Type: meta.WhiteSpaceType, - // Position: &position.Position{ - // StartLine: 4, - // EndLine: 5, - // StartPos: 40, - // EndPos: 44, - // }, - // Value: "\n\t\t\t\t", - // TokenName: meta.NodeStart, - // }, - // }, // Value: "public", // }, // }, @@ -348,6 +346,19 @@ func ExampleGoDumper() { // StartPos: 86, // EndPos: 89, // }, + // Meta: meta.Collection{ + // &meta.Data{ + // Type: meta.WhiteSpaceType, + // Position: &position.Position{ + // StartLine: 5, + // EndLine: 5, + // StartPos: 85, + // EndPos: 85, + // }, + // Value: " ", + // TokenName: meta.NodeStart, + // }, + // }, // Constant: &name.Name{ // Position: &position.Position{ // StartLine: 5, @@ -363,19 +374,6 @@ func ExampleGoDumper() { // StartPos: 86, // EndPos: 89, // }, - // Meta: meta.Collection{ - // &meta.Data{ - // Type: meta.WhiteSpaceType, - // Position: &position.Position{ - // StartLine: 5, - // EndLine: 5, - // StartPos: 85, - // EndPos: 85, - // }, - // Value: " ", - // TokenName: meta.NodeStart, - // }, - // }, // Value: "null", // }, // }, @@ -424,6 +422,39 @@ func ExampleGoDumper() { // }, // Meta: meta.Collection{ // &meta.Data{ + // Type: meta.WhiteSpaceType, + // Position: &position.Position{ + // StartLine: 6, + // EndLine: 7, + // StartPos: 97, + // EndPos: 102, + // }, + // Value: "\n\t\t\t\t\t", + // TokenName: meta.NodeStart, + // }, + // &meta.Data{ + // Type: meta.CommentType, + // Position: &position.Position{ + // StartLine: 7, + // EndLine: 7, + // StartPos: 103, + // EndPos: 118, + // }, + // Value: "// some comment\n", + // TokenName: meta.NodeStart, + // }, + // &meta.Data{ + // Type: meta.WhiteSpaceType, + // Position: &position.Position{ + // StartLine: 8, + // EndLine: 8, + // StartPos: 119, + // EndPos: 123, + // }, + // Value: "\t\t\t\t\t", + // TokenName: meta.NodeStart, + // }, + // &meta.Data{ // Type: meta.TokenType, // Position: &position.Position{ // StartLine: 8, @@ -444,39 +475,6 @@ func ExampleGoDumper() { // }, // Meta: meta.Collection{ // &meta.Data{ - // Type: meta.WhiteSpaceType, - // Position: &position.Position{ - // StartLine: 6, - // EndLine: 7, - // StartPos: 97, - // EndPos: 102, - // }, - // Value: "\n\t\t\t\t\t", - // TokenName: meta.NodeStart, - // }, - // &meta.Data{ - // Type: meta.CommentType, - // Position: &position.Position{ - // StartLine: 7, - // EndLine: 7, - // StartPos: 103, - // EndPos: 118, - // }, - // Value: "// some comment\n", - // TokenName: meta.NodeStart, - // }, - // &meta.Data{ - // Type: meta.WhiteSpaceType, - // Position: &position.Position{ - // StartLine: 8, - // EndLine: 8, - // StartPos: 119, - // EndPos: 123, - // }, - // Value: "\t\t\t\t\t", - // TokenName: meta.NodeStart, - // }, - // &meta.Data{ // Type: meta.TokenType, // Position: nil, // Value: "$", diff --git a/visitor/json_dumper_test.go b/visitor/json_dumper_test.go index 9d91c7a..aacc186 100644 --- a/visitor/json_dumper_test.go +++ b/visitor/json_dumper_test.go @@ -37,5 +37,5 @@ func ExampleJsonDumper() { nodes.Walk(dumper) // Output: - // {"type":"*node.Root","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"Stmts":[{"type":"*stmt.Namespace","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"meta":[{"type":"*meta.TokenType","value":"