From 5e964e074b6959b82599e648d627673ba6ea5ba0 Mon Sep 17 00:00:00 2001 From: z7zmey Date: Wed, 24 Oct 2018 22:32:35 +0300 Subject: [PATCH] remove meta.VariableToken meta.DollarOpenCurlyBracesToken meta.DollarToken and fix go_dumper --- meta/tokenName.go | 4 - meta/tokenName_string.go | 4 +- php5/php5.go | 863 ++++++++++++++-------------- php5/php5.y | 146 ++--- php7/php7.go | 94 ++- php7/php7.y | 92 +-- printer/printer.go | 24 +- printer/printer_parsed_php5_test.go | 1 + printer/printer_test.go | 520 ++++++++--------- visitor/dumper_test.go | 12 +- visitor/go_dumper.go | 25 +- visitor/go_dumper_test.go | 141 +++-- visitor/json_dumper_test.go | 2 +- visitor/pretty_json_dumper_test.go | 16 +- 14 files changed, 975 insertions(+), 969 deletions(-) diff --git a/meta/tokenName.go b/meta/tokenName.go index 05a08f0..c1f9ba0 100644 --- a/meta/tokenName.go +++ b/meta/tokenName.go @@ -17,7 +17,6 @@ const ( DnumberToken StringToken StringVarnameToken - VariableToken NumStringToken InlineHTMLToken EncapsedAndWhitespaceToken @@ -66,8 +65,6 @@ const ( ArrayToken CallableToken StartHeredocToken - DollarOpenCurlyBracesToken - DollarCloseCurlyBracesToken CurlyOpenToken PaamayimNekudotayimToken NamespaceToken @@ -150,7 +147,6 @@ const ( ExclamationMarkToken // '!' TildeToken // '~' AtToken // '@' - DollarToken // '$' CommaToken // ',' VerticalBarToken // '|' EqualToken // '=' diff --git a/meta/tokenName_string.go b/meta/tokenName_string.go index 819f7f0..4af347c 100644 --- a/meta/tokenName_string.go +++ b/meta/tokenName_string.go @@ -4,9 +4,9 @@ package meta import "strconv" -const _TokenName_name = "UnknownTokenNodeStartNodeEndMagicConstantTokenIncludeTokenIncludeOnceTokenExitTokenIfTokenLnumberTokenDnumberTokenStringTokenStringVarnameTokenVariableTokenNumStringTokenInlineHTMLTokenEncapsedAndWhitespaceTokenConstantEncapsedStringTokenEchoTokenDoTokenWhileTokenEndwhileTokenForInitSemicolonTokenForCondSemicolonTokenForTokenEndforTokenForeachTokenEndforeachTokenDeclareTokenEnddeclareTokenAsTokenSwitchTokenEndswitchTokenCaseTokenDefaultTokenBreakTokenContinueTokenGotoTokenFunctionTokenConstTokenReturnTokenTryTokenCatchTokenFinallyTokenThrowTokenUseTokenInsteadofTokenGlobalTokenVarTokenUnsetTokenIssetTokenEmptyTokenClassTokenTraitTokenInterfaceTokenExtendsTokenImplementsTokenDoubleArrowTokenListTokenArrayTokenCallableTokenStartHeredocTokenDollarOpenCurlyBracesTokenDollarCloseCurlyBracesTokenCurlyOpenTokenPaamayimNekudotayimTokenNamespaceTokenUseLeadingNsSeparatorTokenNsSeparatorTokenEllipsisTokenEvalTokenRequireTokenRequireOnceTokenLogicalOrTokenLogicalXorTokenLogicalAndTokenInstanceofTokenNewAnchorCloneTokenElseifTokenElseTokenEndifTokenPrintTokenYieldTokenStaticTokenAbstractTokenFinalTokenPrivateTokenProtectedTokenPublicTokenIncTokenDecTokenYieldFromTokenObjectOperatorTokenIntCastTokenDoubleCastTokenStringCastTokenArrayCastTokenObjectCastTokenBoolCastTokenUnsetCastTokenCoalesceTokenSpaceshipTokenPlusEqualTokenMinusEqualTokenMulEqualTokenPowEqualTokenDivEqualTokenConcatEqualTokenModEqualTokenAndEqualTokenOrEqualTokenXorEqualTokenSlEqualTokenSrEqualTokenBooleanOrTokenBooleanAndTokenPowTokenSlTokenSrTokenIsIdenticalTokenIsNotIdenticalTokenIsEqualTokenIsNotEqualTokenIsSmallerOrEqualTokenIsGreaterOrEqualTokenHaltCompilerTokenIdentifierTokenCaseSeparatorTokenDoubleQuoteTokenBackquoteTokenOpenCurlyBracesTokenCloseCurlyBracesTokenSemiColonTokenColonTokenOpenParenthesisTokenCloseParenthesisTokenOpenSquareBracketCloseSquareBracketQuestionMarkTokenAmpersandTokenMinusTokenPlusTokenExclamationMarkTokenTildeTokenAtTokenDollarTokenCommaTokenVerticalBarTokenEqualTokenCaretTokenAsteriskTokenSlashTokenPercentTokenLessTokenGreaterTokenDotToken" +const _TokenName_name = "UnknownTokenNodeStartNodeEndMagicConstantTokenIncludeTokenIncludeOnceTokenExitTokenIfTokenLnumberTokenDnumberTokenStringTokenStringVarnameTokenNumStringTokenInlineHTMLTokenEncapsedAndWhitespaceTokenConstantEncapsedStringTokenEchoTokenDoTokenWhileTokenEndwhileTokenForInitSemicolonTokenForCondSemicolonTokenForTokenEndforTokenForeachTokenEndforeachTokenDeclareTokenEnddeclareTokenAsTokenSwitchTokenEndswitchTokenCaseTokenDefaultTokenBreakTokenContinueTokenGotoTokenFunctionTokenConstTokenReturnTokenTryTokenCatchTokenFinallyTokenThrowTokenUseTokenInsteadofTokenGlobalTokenVarTokenUnsetTokenIssetTokenEmptyTokenClassTokenTraitTokenInterfaceTokenExtendsTokenImplementsTokenDoubleArrowTokenListTokenArrayTokenCallableTokenStartHeredocTokenCurlyOpenTokenPaamayimNekudotayimTokenNamespaceTokenUseLeadingNsSeparatorTokenNsSeparatorTokenEllipsisTokenEvalTokenRequireTokenRequireOnceTokenLogicalOrTokenLogicalXorTokenLogicalAndTokenInstanceofTokenNewAnchorCloneTokenElseifTokenElseTokenEndifTokenPrintTokenYieldTokenStaticTokenAbstractTokenFinalTokenPrivateTokenProtectedTokenPublicTokenIncTokenDecTokenYieldFromTokenObjectOperatorTokenIntCastTokenDoubleCastTokenStringCastTokenArrayCastTokenObjectCastTokenBoolCastTokenUnsetCastTokenCoalesceTokenSpaceshipTokenPlusEqualTokenMinusEqualTokenMulEqualTokenPowEqualTokenDivEqualTokenConcatEqualTokenModEqualTokenAndEqualTokenOrEqualTokenXorEqualTokenSlEqualTokenSrEqualTokenBooleanOrTokenBooleanAndTokenPowTokenSlTokenSrTokenIsIdenticalTokenIsNotIdenticalTokenIsEqualTokenIsNotEqualTokenIsSmallerOrEqualTokenIsGreaterOrEqualTokenHaltCompilerTokenIdentifierTokenCaseSeparatorTokenDoubleQuoteTokenBackquoteTokenOpenCurlyBracesTokenCloseCurlyBracesTokenSemiColonTokenColonTokenOpenParenthesisTokenCloseParenthesisTokenOpenSquareBracketCloseSquareBracketQuestionMarkTokenAmpersandTokenMinusTokenPlusTokenExclamationMarkTokenTildeTokenAtTokenCommaTokenVerticalBarTokenEqualTokenCaretTokenAsteriskTokenSlashTokenPercentTokenLessTokenGreaterTokenDotToken" -var _TokenName_index = [...]uint16{0, 12, 21, 28, 46, 58, 74, 83, 90, 102, 114, 125, 143, 156, 170, 185, 211, 238, 247, 254, 264, 277, 298, 319, 327, 338, 350, 365, 377, 392, 399, 410, 424, 433, 445, 455, 468, 477, 490, 500, 511, 519, 529, 541, 551, 559, 573, 584, 592, 602, 612, 622, 632, 642, 656, 668, 683, 699, 708, 718, 731, 748, 774, 801, 815, 839, 853, 879, 895, 908, 917, 929, 945, 959, 974, 989, 1004, 1013, 1023, 1034, 1043, 1053, 1063, 1073, 1084, 1097, 1107, 1119, 1133, 1144, 1152, 1160, 1174, 1193, 1205, 1220, 1235, 1249, 1264, 1277, 1291, 1304, 1318, 1332, 1347, 1360, 1373, 1386, 1402, 1415, 1428, 1440, 1453, 1465, 1477, 1491, 1506, 1514, 1521, 1528, 1544, 1563, 1575, 1590, 1611, 1632, 1649, 1664, 1682, 1698, 1712, 1732, 1753, 1767, 1777, 1797, 1818, 1835, 1853, 1870, 1884, 1894, 1903, 1923, 1933, 1940, 1951, 1961, 1977, 1987, 1997, 2010, 2020, 2032, 2041, 2053, 2061} +var _TokenName_index = [...]uint16{0, 12, 21, 28, 46, 58, 74, 83, 90, 102, 114, 125, 143, 157, 172, 198, 225, 234, 241, 251, 264, 285, 306, 314, 325, 337, 352, 364, 379, 386, 397, 411, 420, 432, 442, 455, 464, 477, 487, 498, 506, 516, 528, 538, 546, 560, 571, 579, 589, 599, 609, 619, 629, 643, 655, 670, 686, 695, 705, 718, 735, 749, 773, 787, 813, 829, 842, 851, 863, 879, 893, 908, 923, 938, 947, 957, 968, 977, 987, 997, 1007, 1018, 1031, 1041, 1053, 1067, 1078, 1086, 1094, 1108, 1127, 1139, 1154, 1169, 1183, 1198, 1211, 1225, 1238, 1252, 1266, 1281, 1294, 1307, 1320, 1336, 1349, 1362, 1374, 1387, 1399, 1411, 1425, 1440, 1448, 1455, 1462, 1478, 1497, 1509, 1524, 1545, 1566, 1583, 1598, 1616, 1632, 1646, 1666, 1687, 1701, 1711, 1731, 1752, 1769, 1787, 1804, 1818, 1828, 1837, 1857, 1867, 1874, 1884, 1900, 1910, 1920, 1933, 1943, 1955, 1964, 1976, 1984} func (i TokenName) String() string { if i < 0 || i >= TokenName(len(_TokenName_index)-1) { diff --git a/php5/php5.go b/php5/php5.go index e98e183..331e056 100644 --- a/php5/php5.go +++ b/php5/php5.go @@ -1,5 +1,3 @@ -// Code generated by goyacc -o php5/php5.go php5/php5.y. DO NOT EDIT. - //line php5/php5.y:2 package php5 @@ -348,7 +346,8 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php5/php5.y:6991 +//line php5/php5.y:6993 + type simpleIndirectReference struct { all []*expr.Variable last *expr.Variable @@ -3540,8 +3539,8 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.CatchToken).AppendTo(catch.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(catch.GetMeta()) - yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[5].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(catch.GetMeta()) yyDollar[6].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(catch.GetMeta()) yyDollar[8].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(catch.GetMeta()) @@ -3620,8 +3619,8 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.CatchToken).AppendTo(yyVAL.node.GetMeta()) yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) - yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[5].token.Meta.SetTokenName(meta.CloseParenthesisToken).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()) @@ -4429,8 +4428,8 @@ yydefault: if yyDollar[3].token != nil { yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } - yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[4].token.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) } @@ -4462,8 +4461,8 @@ yydefault: if yyDollar[3].token != nil { yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } - yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[5].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4659,8 +4658,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4674,9 +4673,9 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarToken) - yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4690,16 +4689,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarToken) - yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + 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(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.NodeStart) + yyDollar[4].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2516 + //line php5/php5.y:2518 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4713,14 +4714,14 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) - yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[3].token.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) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2535 + //line php5/php5.y:2537 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4734,15 +4735,15 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) - yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[3].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[4].token.Meta.SetTokenName(meta.EqualToken).AppendTo(staticVar.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2555 + //line php5/php5.y:2557 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4755,14 +4756,14 @@ yydefault: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.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) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2573 + //line php5/php5.y:2575 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4775,15 +4776,15 @@ yydefault: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + 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.EqualToken).AppendTo(staticVar.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2596 + //line php5/php5.y:2598 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4791,7 +4792,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2602 + //line php5/php5.y:2604 { yyVAL.list = []node.Node{} @@ -4799,7 +4800,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2612 + //line php5/php5.y:2614 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4814,7 +4815,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2625 + //line php5/php5.y:2627 { yyVAL.node = yyDollar[1].node @@ -4829,7 +4830,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2638 + //line php5/php5.y:2640 { yyVAL.node = yyDollar[1].node @@ -4837,7 +4838,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:2644 + //line php5/php5.y:2646 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[6].list, nil, yyDollar[8].node, "") @@ -4863,7 +4864,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2671 + //line php5/php5.y:2673 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4877,7 +4878,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2686 + //line php5/php5.y:2688 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4885,7 +4886,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2692 + //line php5/php5.y:2694 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4896,7 +4897,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2704 + //line php5/php5.y:2706 { yyVAL.node = stmt.NewNop() @@ -4910,7 +4911,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2717 + //line php5/php5.y:2719 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -4924,7 +4925,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2732 + //line php5/php5.y:2734 { yyVAL.list = nil @@ -4932,7 +4933,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2738 + //line php5/php5.y:2740 { yyVAL.list = yyDollar[1].list @@ -4940,7 +4941,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2747 + //line php5/php5.y:2749 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4948,7 +4949,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2753 + //line php5/php5.y:2755 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4956,7 +4957,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2762 + //line php5/php5.y:2764 { yyVAL.node = yyDollar[1].node @@ -4968,7 +4969,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2772 + //line php5/php5.y:2774 { yyVAL.node = yyDollar[1].node @@ -4980,7 +4981,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2785 + //line php5/php5.y:2787 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4994,7 +4995,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2800 + //line php5/php5.y:2802 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5002,7 +5003,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2806 + //line php5/php5.y:2808 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5013,7 +5014,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2818 + //line php5/php5.y:2820 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5029,7 +5030,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2832 + //line php5/php5.y:2834 { yyVAL.node = yyDollar[1].node @@ -5037,7 +5038,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2841 + //line php5/php5.y:2843 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5054,7 +5055,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2859 + //line php5/php5.y:2861 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -5071,7 +5072,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2874 + //line php5/php5.y:2876 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5085,7 +5086,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2889 + //line php5/php5.y:2891 { yyVAL.node = nil @@ -5093,7 +5094,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2895 + //line php5/php5.y:2897 { yyVAL.node = yyDollar[1].node @@ -5101,7 +5102,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2904 + //line php5/php5.y:2906 { yyVAL.node = stmt.NewNop() @@ -5116,7 +5117,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2917 + //line php5/php5.y:2919 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5131,7 +5132,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2933 + //line php5/php5.y:2935 { yyVAL.list = yyDollar[1].list @@ -5139,7 +5140,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2939 + //line php5/php5.y:2941 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5154,7 +5155,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2955 + //line php5/php5.y:2957 { yyVAL.list = nil @@ -5162,7 +5163,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2961 + //line php5/php5.y:2963 { yyVAL.list = yyDollar[1].list @@ -5170,7 +5171,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2970 + //line php5/php5.y:2972 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5178,7 +5179,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2976 + //line php5/php5.y:2978 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5186,7 +5187,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2985 + //line php5/php5.y:2987 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5200,7 +5201,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2997 + //line php5/php5.y:2999 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5214,7 +5215,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3009 + //line php5/php5.y:3011 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5228,7 +5229,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3021 + //line php5/php5.y:3023 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5242,7 +5243,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3033 + //line php5/php5.y:3035 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5256,7 +5257,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3045 + //line php5/php5.y:3047 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5270,7 +5271,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3060 + //line php5/php5.y:3062 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5284,14 +5285,14 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) - yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[3].token.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) } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3079 + //line php5/php5.y:3081 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5305,15 +5306,15 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) - yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[3].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[4].token.Meta.SetTokenName(meta.EqualToken).AppendTo(property.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3099 + //line php5/php5.y:3101 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5326,14 +5327,14 @@ yydefault: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.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) } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3117 + //line php5/php5.y:3119 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5346,15 +5347,15 @@ yydefault: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + 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.EqualToken).AppendTo(property.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3139 + //line php5/php5.y:3141 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -5377,7 +5378,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3160 + //line php5/php5.y:3162 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -5397,7 +5398,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3181 + //line php5/php5.y:3183 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5408,7 +5409,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3190 + //line php5/php5.y:3192 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5416,7 +5417,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3200 + //line php5/php5.y:3202 { yyVAL.list = nil @@ -5424,7 +5425,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3206 + //line php5/php5.y:3208 { yyVAL.list = yyDollar[1].list @@ -5432,7 +5433,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3215 + //line php5/php5.y:3217 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5443,7 +5444,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3224 + //line php5/php5.y:3226 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5451,7 +5452,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3233 + //line php5/php5.y:3235 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5459,7 +5460,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3239 + //line php5/php5.y:3241 { yyVAL.list = yyDollar[1].list @@ -5467,7 +5468,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3248 + //line php5/php5.y:3250 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -5485,7 +5486,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3264 + //line php5/php5.y:3266 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) yyVAL.list = []node.Node{fetch} @@ -5503,7 +5504,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3283 + //line php5/php5.y:3285 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5511,7 +5512,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3289 + //line php5/php5.y:3291 { yyVAL.list = yyDollar[1].list @@ -5519,7 +5520,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3295 + //line php5/php5.y:3297 { yyVAL.list = yyDollar[1].list @@ -5527,7 +5528,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3304 + //line php5/php5.y:3306 { yyVAL.list = nil @@ -5535,7 +5536,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3310 + //line php5/php5.y:3312 { yyVAL.list = yyDollar[1].list @@ -5543,7 +5544,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3319 + //line php5/php5.y:3321 { if yyDollar[3].node != nil { @@ -5561,7 +5562,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3338 + //line php5/php5.y:3340 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5580,7 +5581,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3355 + //line php5/php5.y:3357 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5594,7 +5595,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3367 + //line php5/php5.y:3369 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5609,7 +5610,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3380 + //line php5/php5.y:3382 { var _new *expr.New @@ -5637,7 +5638,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3406 + //line php5/php5.y:3408 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5651,7 +5652,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3418 + //line php5/php5.y:3420 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5665,7 +5666,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3430 + //line php5/php5.y:3432 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5679,7 +5680,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3442 + //line php5/php5.y:3444 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5693,7 +5694,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3454 + //line php5/php5.y:3456 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5707,7 +5708,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3466 + //line php5/php5.y:3468 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5721,7 +5722,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3478 + //line php5/php5.y:3480 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5735,7 +5736,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3490 + //line php5/php5.y:3492 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5749,7 +5750,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3502 + //line php5/php5.y:3504 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5763,7 +5764,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3514 + //line php5/php5.y:3516 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5777,7 +5778,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3526 + //line php5/php5.y:3528 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5791,7 +5792,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3538 + //line php5/php5.y:3540 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5805,7 +5806,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3550 + //line php5/php5.y:3552 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5819,7 +5820,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3562 + //line php5/php5.y:3564 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5833,7 +5834,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3574 + //line php5/php5.y:3576 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5847,7 +5848,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3586 + //line php5/php5.y:3588 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5861,7 +5862,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3598 + //line php5/php5.y:3600 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5875,7 +5876,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3610 + //line php5/php5.y:3612 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5889,7 +5890,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3622 + //line php5/php5.y:3624 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5903,7 +5904,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3634 + //line php5/php5.y:3636 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5917,7 +5918,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3646 + //line php5/php5.y:3648 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5931,7 +5932,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3658 + //line php5/php5.y:3660 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5945,7 +5946,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3670 + //line php5/php5.y:3672 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5959,7 +5960,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3682 + //line php5/php5.y:3684 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5973,7 +5974,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3694 + //line php5/php5.y:3696 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5987,7 +5988,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3706 + //line php5/php5.y:3708 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -6001,7 +6002,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3718 + //line php5/php5.y:3720 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -6015,7 +6016,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3730 + //line php5/php5.y:3732 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -6029,7 +6030,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3742 + //line php5/php5.y:3744 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -6043,7 +6044,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3754 + //line php5/php5.y:3756 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -6057,7 +6058,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3766 + //line php5/php5.y:3768 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -6071,7 +6072,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3778 + //line php5/php5.y:3780 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -6085,7 +6086,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3790 + //line php5/php5.y:3792 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6099,7 +6100,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3802 + //line php5/php5.y:3804 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6113,7 +6114,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3814 + //line php5/php5.y:3816 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6127,7 +6128,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3826 + //line php5/php5.y:3828 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6141,7 +6142,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3838 + //line php5/php5.y:3840 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6155,7 +6156,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3850 + //line php5/php5.y:3852 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6169,7 +6170,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3862 + //line php5/php5.y:3864 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6183,7 +6184,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3874 + //line php5/php5.y:3876 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6197,7 +6198,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3886 + //line php5/php5.y:3888 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6211,7 +6212,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3898 + //line php5/php5.y:3900 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6226,7 +6227,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3911 + //line php5/php5.y:3913 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6240,7 +6241,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3923 + //line php5/php5.y:3925 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6254,7 +6255,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3935 + //line php5/php5.y:3937 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6268,7 +6269,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3947 + //line php5/php5.y:3949 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6282,7 +6283,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3959 + //line php5/php5.y:3961 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6296,7 +6297,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3971 + //line php5/php5.y:3973 { yyVAL.node = yyDollar[1].node @@ -6307,7 +6308,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3980 + //line php5/php5.y:3982 { yyVAL.node = yyDollar[1].node @@ -6315,7 +6316,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3986 + //line php5/php5.y:3988 { yyVAL.node = yyDollar[2].node @@ -6346,7 +6347,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:4015 + //line php5/php5.y:4017 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6361,7 +6362,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4028 + //line php5/php5.y:4030 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6376,7 +6377,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4041 + //line php5/php5.y:4043 { yyVAL.node = yyDollar[1].node @@ -6384,7 +6385,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4047 + //line php5/php5.y:4049 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6399,7 +6400,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4060 + //line php5/php5.y:4062 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6414,7 +6415,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4073 + //line php5/php5.y:4075 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6429,7 +6430,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4086 + //line php5/php5.y:4088 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6444,7 +6445,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4099 + //line php5/php5.y:4101 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6459,7 +6460,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4112 + //line php5/php5.y:4114 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6474,7 +6475,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4125 + //line php5/php5.y:4127 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6489,7 +6490,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4138 + //line php5/php5.y:4140 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6518,7 +6519,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4165 + //line php5/php5.y:4167 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6532,7 +6533,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4177 + //line php5/php5.y:4179 { yyVAL.node = yyDollar[1].node @@ -6540,7 +6541,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4183 + //line php5/php5.y:4185 { yyVAL.node = yyDollar[1].node @@ -6548,7 +6549,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4189 + //line php5/php5.y:4191 { yyVAL.node = yyDollar[1].node @@ -6556,7 +6557,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4195 + //line php5/php5.y:4197 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6571,7 +6572,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4208 + //line php5/php5.y:4210 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6585,7 +6586,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4220 + //line php5/php5.y:4222 { yyVAL.node = expr.NewYield(nil, nil) @@ -6599,7 +6600,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:4232 + //line php5/php5.y:4234 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list, false, yyDollar[2].token != nil, "") @@ -6620,7 +6621,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:4251 + //line php5/php5.y:4253 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list, true, yyDollar[3].token != nil, "") @@ -6642,7 +6643,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4274 + //line php5/php5.y:4276 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6656,7 +6657,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4286 + //line php5/php5.y:4288 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6670,7 +6671,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4298 + //line php5/php5.y:4300 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6685,7 +6686,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4311 + //line php5/php5.y:4313 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6700,7 +6701,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4327 + //line php5/php5.y:4329 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6717,7 +6718,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4342 + //line php5/php5.y:4344 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6734,7 +6735,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4357 + //line php5/php5.y:4359 { str := scalar.NewString(yyDollar[1].token.Value) yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) @@ -6753,7 +6754,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4374 + //line php5/php5.y:4376 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6770,7 +6771,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4392 + //line php5/php5.y:4394 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6786,7 +6787,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4406 + //line php5/php5.y:4408 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6801,13 +6802,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4422 + //line php5/php5.y:4424 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4429 + //line php5/php5.y:4431 { yyVAL.ClosureUse = nil @@ -6815,7 +6816,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4435 + //line php5/php5.y:4437 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6831,7 +6832,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4452 + //line php5/php5.y:4454 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6843,14 +6844,14 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) - yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[3].token.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) } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4469 + //line php5/php5.y:4471 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6865,14 +6866,14 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) - yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[4].token.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) } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4489 + //line php5/php5.y:4491 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6883,14 +6884,14 @@ yydefault: variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.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) } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4505 + //line php5/php5.y:4507 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6904,14 +6905,14 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) - yyDollar[2].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[2].token.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) } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4527 + //line php5/php5.y:4529 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].node.(*node.ArgumentList)) @@ -6924,7 +6925,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4538 + //line php5/php5.y:4540 { funcName := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].node.(*node.ArgumentList)) @@ -6941,7 +6942,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4553 + //line php5/php5.y:4555 { funcName := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].node.(*node.ArgumentList)) @@ -6957,7 +6958,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4567 + //line php5/php5.y:4569 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6971,7 +6972,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4579 + //line php5/php5.y:4581 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6985,7 +6986,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4591 + //line php5/php5.y:4593 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6999,7 +7000,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4603 + //line php5/php5.y:4605 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7013,7 +7014,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4615 + //line php5/php5.y:4617 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -7024,7 +7025,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4627 + //line php5/php5.y:4629 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7038,7 +7039,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4639 + //line php5/php5.y:4641 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -7049,7 +7050,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4648 + //line php5/php5.y:4650 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -7064,7 +7065,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4661 + //line php5/php5.y:4663 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -7078,7 +7079,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4676 + //line php5/php5.y:4678 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -7089,7 +7090,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4685 + //line php5/php5.y:4687 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -7104,7 +7105,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4698 + //line php5/php5.y:4700 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -7118,7 +7119,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4713 + //line php5/php5.y:4715 { yyVAL.node = yyDollar[1].node @@ -7126,7 +7127,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4719 + //line php5/php5.y:4721 { yyVAL.node = yyDollar[1].node @@ -7134,7 +7135,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4728 + //line php5/php5.y:4730 { yyVAL.node = yyDollar[1].node @@ -7173,7 +7174,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4765 + //line php5/php5.y:4767 { yyVAL.node = yyDollar[1].node @@ -7181,7 +7182,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4775 + //line php5/php5.y:4777 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7189,7 +7190,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4781 + //line php5/php5.y:4783 { yyVAL.list = []node.Node{} @@ -7197,7 +7198,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4791 + //line php5/php5.y:4793 { yyVAL.list = yyDollar[2].list @@ -7208,7 +7209,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4803 + //line php5/php5.y:4805 { yyVAL.node = nil @@ -7216,7 +7217,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4809 + //line php5/php5.y:4811 { yyVAL.node = expr.NewExit(nil) @@ -7233,7 +7234,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4824 + //line php5/php5.y:4826 { yyVAL.node = expr.NewExit(yyDollar[1].node) @@ -7252,7 +7253,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4844 + //line php5/php5.y:4846 { yyVAL.list = []node.Node{} @@ -7260,7 +7261,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4850 + //line php5/php5.y:4852 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -7268,7 +7269,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4856 + //line php5/php5.y:4858 { yyVAL.list = yyDollar[1].list @@ -7276,7 +7277,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4865 + //line php5/php5.y:4867 { yyVAL.node = nil @@ -7284,7 +7285,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4871 + //line php5/php5.y:4873 { yyVAL.node = yyDollar[1].node @@ -7292,7 +7293,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4880 + //line php5/php5.y:4882 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -7306,7 +7307,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4892 + //line php5/php5.y:4894 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -7320,7 +7321,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4904 + //line php5/php5.y:4906 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7334,7 +7335,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4916 + //line php5/php5.y:4918 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7348,7 +7349,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4928 + //line php5/php5.y:4930 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7362,7 +7363,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4940 + //line php5/php5.y:4942 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7376,7 +7377,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4952 + //line php5/php5.y:4954 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7390,7 +7391,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4964 + //line php5/php5.y:4966 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7404,7 +7405,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4976 + //line php5/php5.y:4978 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7418,7 +7419,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4988 + //line php5/php5.y:4990 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7432,7 +7433,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5000 + //line php5/php5.y:5002 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7448,7 +7449,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5014 + //line php5/php5.y:5016 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7462,7 +7463,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5029 + //line php5/php5.y:5031 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7479,7 +7480,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5047 + //line php5/php5.y:5049 { yyVAL.node = yyDollar[1].node @@ -7487,7 +7488,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5056 + //line php5/php5.y:5058 { yyVAL.node = yyDollar[1].node @@ -7495,7 +7496,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5062 + //line php5/php5.y:5064 { yyVAL.node = yyDollar[1].node @@ -7503,7 +7504,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5068 + //line php5/php5.y:5070 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7516,7 +7517,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5079 + //line php5/php5.y:5081 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7533,7 +7534,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5094 + //line php5/php5.y:5096 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7549,7 +7550,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5108 + //line php5/php5.y:5110 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -7565,7 +7566,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5122 + //line php5/php5.y:5124 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -7580,7 +7581,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5135 + //line php5/php5.y:5137 { yyVAL.node = yyDollar[1].node @@ -7588,7 +7589,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5141 + //line php5/php5.y:5143 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7602,7 +7603,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5153 + //line php5/php5.y:5155 { yyVAL.node = yyDollar[1].node @@ -7610,7 +7611,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5162 + //line php5/php5.y:5164 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7627,7 +7628,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5177 + //line php5/php5.y:5179 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -7641,7 +7642,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5189 + //line php5/php5.y:5191 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -7655,7 +7656,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5201 + //line php5/php5.y:5203 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -7669,7 +7670,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5213 + //line php5/php5.y:5215 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -7683,7 +7684,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5225 + //line php5/php5.y:5227 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -7697,7 +7698,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5237 + //line php5/php5.y:5239 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -7711,7 +7712,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5249 + //line php5/php5.y:5251 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -7725,7 +7726,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5261 + //line php5/php5.y:5263 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -7739,7 +7740,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5273 + //line php5/php5.y:5275 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -7753,7 +7754,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5285 + //line php5/php5.y:5287 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -7767,7 +7768,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5297 + //line php5/php5.y:5299 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -7781,7 +7782,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5309 + //line php5/php5.y:5311 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -7795,7 +7796,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5321 + //line php5/php5.y:5323 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -7809,7 +7810,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5333 + //line php5/php5.y:5335 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -7823,7 +7824,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5345 + //line php5/php5.y:5347 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -7837,7 +7838,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5357 + //line php5/php5.y:5359 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -7851,7 +7852,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5369 + //line php5/php5.y:5371 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -7865,7 +7866,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5381 + //line php5/php5.y:5383 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -7879,7 +7880,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5393 + //line php5/php5.y:5395 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -7893,7 +7894,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5405 + //line php5/php5.y:5407 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7907,7 +7908,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5417 + //line php5/php5.y:5419 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7921,7 +7922,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5429 + //line php5/php5.y:5431 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -7935,7 +7936,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5441 + //line php5/php5.y:5443 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -7950,7 +7951,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5454 + //line php5/php5.y:5456 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -7964,7 +7965,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5466 + //line php5/php5.y:5468 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -7978,7 +7979,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5478 + //line php5/php5.y:5480 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7992,7 +7993,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5490 + //line php5/php5.y:5492 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -8006,7 +8007,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5502 + //line php5/php5.y:5504 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -8021,7 +8022,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5515 + //line php5/php5.y:5517 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -8036,7 +8037,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5528 + //line php5/php5.y:5530 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -8050,7 +8051,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5540 + //line php5/php5.y:5542 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -8064,7 +8065,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5552 + //line php5/php5.y:5554 { yyVAL.node = yyDollar[2].node @@ -8076,7 +8077,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5565 + //line php5/php5.y:5567 { yyVAL.node = yyDollar[1].node @@ -8084,7 +8085,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5571 + //line php5/php5.y:5573 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -8097,7 +8098,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5582 + //line php5/php5.y:5584 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -8112,7 +8113,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5595 + //line php5/php5.y:5597 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -8128,7 +8129,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5612 + //line php5/php5.y:5614 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = expr.NewVariable(name) @@ -8139,13 +8140,13 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) - yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5627 + //line php5/php5.y:5629 { yyVAL.node = yyDollar[1].node @@ -8153,7 +8154,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5633 + //line php5/php5.y:5635 { yyVAL.node = yyDollar[1].node @@ -8161,7 +8162,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5639 + //line php5/php5.y:5641 { yyVAL.node = yyDollar[1].node @@ -8169,7 +8170,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5645 + //line php5/php5.y:5647 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -8183,7 +8184,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5657 + //line php5/php5.y:5659 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -8197,7 +8198,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5669 + //line php5/php5.y:5671 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -8211,7 +8212,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5684 + //line php5/php5.y:5686 { yyVAL.list = nil @@ -8219,7 +8220,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5690 + //line php5/php5.y:5692 { yyVAL.list = yyDollar[1].list @@ -8232,19 +8233,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5704 + //line php5/php5.y:5706 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5708 + //line php5/php5.y:5710 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5715 + //line php5/php5.y:5717 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8260,7 +8261,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5729 + //line php5/php5.y:5731 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8275,7 +8276,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5742 + //line php5/php5.y:5744 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -8290,7 +8291,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5755 + //line php5/php5.y:5757 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} @@ -8302,7 +8303,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5768 + //line php5/php5.y:5770 { yyVAL.node = yyDollar[1].node @@ -8310,7 +8311,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5774 + //line php5/php5.y:5776 { yyVAL.node = yyDollar[1].node @@ -8318,7 +8319,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5783 + //line php5/php5.y:5785 { yyVAL.node = yyDollar[2].node @@ -8332,7 +8333,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5795 + //line php5/php5.y:5797 { yyVAL.node = yyDollar[2].node @@ -8346,7 +8347,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5811 + //line php5/php5.y:5813 { yyVAL.node = yyDollar[1].node @@ -8354,7 +8355,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5821 + //line php5/php5.y:5823 { yyVAL.node = yyDollar[1].node @@ -8362,7 +8363,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5830 + //line php5/php5.y:5832 { yyVAL.node = yyDollar[1].node @@ -8370,7 +8371,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5839 + //line php5/php5.y:5841 { yyVAL.node = yyDollar[1].node @@ -8424,7 +8425,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5891 + //line php5/php5.y:5893 { yyVAL.node = yyDollar[1].node @@ -8432,7 +8433,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5900 + //line php5/php5.y:5902 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8440,7 +8441,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5906 + //line php5/php5.y:5908 { yyVAL.list = []node.Node{} @@ -8448,7 +8449,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5916 + //line php5/php5.y:5918 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -8464,7 +8465,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5933 + //line php5/php5.y:5935 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8482,7 +8483,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5949 + //line php5/php5.y:5951 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = []node.Node{yyDollar[1].node, fetch} @@ -8500,7 +8501,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5968 + //line php5/php5.y:5970 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) @@ -8511,7 +8512,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5980 + //line php5/php5.y:5982 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8519,7 +8520,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5986 + //line php5/php5.y:5988 { yyVAL.list = yyDollar[1].list @@ -8527,7 +8528,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5992 + //line php5/php5.y:5994 { yyVAL.list = nil @@ -8535,7 +8536,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6001 + //line php5/php5.y:6003 { yyVAL.node = yyDollar[1].node @@ -8543,7 +8544,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6007 + //line php5/php5.y:6009 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8557,7 +8558,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6022 + //line php5/php5.y:6024 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8571,7 +8572,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6034 + //line php5/php5.y:6036 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8585,7 +8586,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6049 + //line php5/php5.y:6051 { yyVAL.node = yyDollar[1].node @@ -8593,7 +8594,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6058 + //line php5/php5.y:6060 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8610,7 +8611,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6073 + //line php5/php5.y:6075 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8627,7 +8628,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6091 + //line php5/php5.y:6093 { yyVAL.node = yyDollar[1].node @@ -8635,7 +8636,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6097 + //line php5/php5.y:6099 { yyVAL.node = yyDollar[1].node @@ -8643,7 +8644,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6103 + //line php5/php5.y:6105 { yyVAL.node = yyDollar[1].node @@ -8651,7 +8652,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6113 + //line php5/php5.y:6115 { yyVAL.node = yyDollar[1].node @@ -8659,7 +8660,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6119 + //line php5/php5.y:6121 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8673,7 +8674,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6131 + //line php5/php5.y:6133 { yyVAL.node = yyDollar[1].node @@ -8681,7 +8682,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6140 + //line php5/php5.y:6142 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8698,7 +8699,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6155 + //line php5/php5.y:6157 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8715,7 +8716,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6170 + //line php5/php5.y:6172 { yyVAL.node = yyDollar[1].node @@ -8723,7 +8724,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6180 + //line php5/php5.y:6182 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -8733,14 +8734,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6195 + //line php5/php5.y:6197 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -8748,18 +8749,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarToken) - yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenCurlyBracesToken) - yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseCurlyBracesToken) + 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(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.NodeStart) + yyDollar[4].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6215 + //line php5/php5.y:6217 { yyVAL.node = nil @@ -8767,7 +8768,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6221 + //line php5/php5.y:6223 { yyVAL.node = yyDollar[1].node @@ -8775,7 +8776,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6231 + //line php5/php5.y:6233 { yyVAL.list = yyDollar[1].list @@ -8783,7 +8784,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6237 + //line php5/php5.y:6239 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -8795,7 +8796,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6250 + //line php5/php5.y:6252 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8813,7 +8814,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6266 + //line php5/php5.y:6268 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8831,7 +8832,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6282 + //line php5/php5.y:6284 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -8843,7 +8844,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6295 + //line php5/php5.y:6297 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -8857,7 +8858,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6307 + //line php5/php5.y:6309 { yyVAL.node = yyDollar[2].node @@ -8874,7 +8875,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6325 + //line php5/php5.y:6327 { n := expr.NewVariable(nil) yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} @@ -8883,14 +8884,14 @@ yydefault: n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) - yylex.(*Parser).appendMetaToken(n, yyDollar[1].token, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(n.GetMeta()) + yylex.(*Parser).appendMetaToken(n, yyDollar[1].token, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6339 + //line php5/php5.y:6341 { n := expr.NewVariable(nil) @@ -8903,14 +8904,14 @@ yydefault: n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) // save comments - yyDollar[2].token.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) - yylex.(*Parser).appendMetaToken(n, yyDollar[2].token, meta.DollarToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeStart).AppendTo(n.GetMeta()) + yylex.(*Parser).appendMetaToken(n, yyDollar[2].token, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6360 + //line php5/php5.y:6362 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} @@ -8925,7 +8926,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6373 + //line php5/php5.y:6375 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -8937,7 +8938,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6387 + //line php5/php5.y:6389 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) @@ -8948,7 +8949,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6396 + //line php5/php5.y:6398 { item := expr.NewList(yyDollar[3].list) yyVAL.node = expr.NewArrayItem(nil, item) @@ -8966,7 +8967,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6412 + //line php5/php5.y:6414 { yyVAL.node = expr.NewArrayItem(nil, nil) @@ -8974,7 +8975,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6422 + //line php5/php5.y:6424 { yyVAL.list = []node.Node{} @@ -8982,7 +8983,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6428 + //line php5/php5.y:6430 { yyVAL.list = yyDollar[1].list @@ -8999,7 +9000,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:6446 + //line php5/php5.y:6448 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9015,7 +9016,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6460 + //line php5/php5.y:6462 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9030,7 +9031,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6473 + //line php5/php5.y:6475 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -9045,7 +9046,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6486 + //line php5/php5.y:6488 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} @@ -9057,7 +9058,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6496 + //line php5/php5.y:6498 { reference := expr.NewReference(yyDollar[6].node) arrayItem := expr.NewArrayItem(yyDollar[3].node, reference) @@ -9076,7 +9077,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6513 + //line php5/php5.y:6515 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -9094,7 +9095,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6529 + //line php5/php5.y:6531 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(yyDollar[1].node, reference) @@ -9112,7 +9113,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6545 + //line php5/php5.y:6547 { reference := expr.NewReference(yyDollar[2].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -9129,7 +9130,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6563 + //line php5/php5.y:6565 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9137,7 +9138,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6569 + //line php5/php5.y:6571 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9152,7 +9153,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6582 + //line php5/php5.y:6584 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9160,7 +9161,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6588 + //line php5/php5.y:6590 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -9175,7 +9176,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6604 + //line php5/php5.y:6606 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -9185,14 +9186,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6619 + //line php5/php5.y:6621 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9204,8 +9205,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + 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.OpenSquareBracket) yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) @@ -9215,7 +9216,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6640 + //line php5/php5.y:6642 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9229,8 +9230,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + 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.IdentifierToken).AppendTo(fetch.GetMeta()) @@ -9238,7 +9239,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6661 + //line php5/php5.y:6663 { variable := expr.NewVariable(yyDollar[2].node) @@ -9248,16 +9249,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarOpenCurlyBracesToken) - yyDollar[3].token.Meta.SetTokenName(meta.DollarCloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.DollarCloseCurlyBracesToken) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6678 + //line php5/php5.y:6680 { name := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(name) @@ -9269,17 +9270,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarOpenCurlyBracesToken) + 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.IdentifierToken).AppendTo(name.GetMeta()) - yyDollar[3].token.Meta.SetTokenName(meta.DollarCloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.DollarCloseCurlyBracesToken) + yyDollar[3].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 500: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6698 + //line php5/php5.y:6700 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -9305,13 +9306,13 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6722 + //line php5/php5.y:6724 { 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) + 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) @@ -9319,7 +9320,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6737 + //line php5/php5.y:6739 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -9333,7 +9334,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6749 + //line php5/php5.y:6751 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -9352,7 +9353,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6766 + //line php5/php5.y:6768 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -9362,14 +9363,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6784 + //line php5/php5.y:6786 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -9385,7 +9386,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6798 + //line php5/php5.y:6800 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9401,7 +9402,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6812 + //line php5/php5.y:6814 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9417,7 +9418,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6826 + //line php5/php5.y:6828 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -9431,7 +9432,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6838 + //line php5/php5.y:6840 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -9445,7 +9446,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6850 + //line php5/php5.y:6852 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -9461,7 +9462,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6864 + //line php5/php5.y:6866 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -9475,7 +9476,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6876 + //line php5/php5.y:6878 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -9489,7 +9490,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6891 + //line php5/php5.y:6893 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9497,7 +9498,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6897 + //line php5/php5.y:6899 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9508,7 +9509,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6909 + //line php5/php5.y:6911 { yyVAL.node = yyDollar[1].node @@ -9516,7 +9517,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6915 + //line php5/php5.y:6917 { yyVAL.node = yyDollar[1].node @@ -9524,7 +9525,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6924 + //line php5/php5.y:6926 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9541,7 +9542,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6939 + //line php5/php5.y:6941 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9558,7 +9559,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6957 + //line php5/php5.y:6959 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9575,7 +9576,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6975 + //line php5/php5.y:6977 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) diff --git a/php5/php5.y b/php5/php5.y index 49fe6c4..63dc8cb 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -1387,8 +1387,8 @@ catch_statement: // save comments $1.Meta.SetTokenName(meta.CatchToken).AppendTo(catch.GetMeta()) $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(catch.GetMeta()) - $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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.CloseParenthesisToken).AppendTo(catch.GetMeta()) $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(catch.GetMeta()) $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(catch.GetMeta()) @@ -1465,8 +1465,8 @@ additional_catch: // save comments $1.Meta.SetTokenName(meta.CatchToken).AppendTo($$.GetMeta()) $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) - $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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.CloseParenthesisToken).AppendTo($$.GetMeta()) $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) @@ -2256,8 +2256,8 @@ parameter: if $3 != nil { $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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) } @@ -2287,8 +2287,8 @@ parameter: if $3 != nil { $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2474,8 +2474,8 @@ global_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2487,9 +2487,9 @@ global_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.DollarToken) - yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2501,10 +2501,12 @@ global_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.DollarToken) - $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) - $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + $2.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.NodeStart) + $4.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2526,8 +2528,8 @@ static_var_list: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) - $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $3.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) } @@ -2545,8 +2547,8 @@ static_var_list: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) - $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $3.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $4.Meta.SetTokenName(meta.EqualToken).AppendTo(staticVar.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2564,8 +2566,8 @@ static_var_list: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.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) } @@ -2582,8 +2584,8 @@ static_var_list: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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.EqualToken).AppendTo(staticVar.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3070,8 +3072,8 @@ class_variable_declaration: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) - $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $3.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) } @@ -3089,8 +3091,8 @@ class_variable_declaration: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) - $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $3.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $4.Meta.SetTokenName(meta.EqualToken).AppendTo(property.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3108,8 +3110,8 @@ class_variable_declaration: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.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) } @@ -3126,8 +3128,8 @@ class_variable_declaration: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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.EqualToken).AppendTo(property.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4460,8 +4462,8 @@ lexical_var_list: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) - $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $3.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) } @@ -4480,8 +4482,8 @@ lexical_var_list: // save comments $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) - $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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) } @@ -4496,8 +4498,8 @@ lexical_var_list: variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.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) } @@ -4515,8 +4517,8 @@ lexical_var_list: // save comments $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) - $2.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $2.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) } @@ -5619,7 +5621,7 @@ scalar: // save comments $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) - yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6186,8 +6188,8 @@ compound_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6199,12 +6201,12 @@ compound_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.DollarToken) - $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $2, meta.OpenCurlyBracesToken) - $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $4, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + $2.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.NodeStart) + $4.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6330,8 +6332,8 @@ simple_indirect_reference: n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) - yylex.(*Parser).appendMetaToken(n, $1, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo(n.GetMeta()) + yylex.(*Parser).appendMetaToken(n, $1, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6348,8 +6350,8 @@ simple_indirect_reference: n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) // save comments - $2.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) - yylex.(*Parser).appendMetaToken(n, $2, meta.DollarToken) + $2.Meta.SetTokenName(meta.NodeStart).AppendTo(n.GetMeta()) + yylex.(*Parser).appendMetaToken(n, $2, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6610,8 +6612,8 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6627,8 +6629,8 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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) $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) @@ -6650,8 +6652,8 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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.IdentifierToken).AppendTo(fetch.GetMeta()) @@ -6667,10 +6669,10 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.DollarOpenCurlyBracesToken) - $3.Meta.SetTokenName(meta.DollarCloseCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $3, meta.DollarCloseCurlyBracesToken) + $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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6686,11 +6688,11 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.DollarOpenCurlyBracesToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) - $3.Meta.SetTokenName(meta.DollarCloseCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $3, meta.DollarCloseCurlyBracesToken) + $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6723,8 +6725,8 @@ encaps_var: $$ = $2; // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + $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) @@ -6772,8 +6774,8 @@ encaps_var_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/php7/php7.go b/php7/php7.go index 3bc23af..2af9f58 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -1,5 +1,3 @@ -// Code generated by goyacc -o php7/php7.go php7/php7.y. DO NOT EDIT. - //line php7/php7.y:2 package php7 @@ -3694,8 +3692,8 @@ yydefault: // save comments yyDollar[2].token.Meta.SetTokenName(meta.CatchToken).AppendTo(catch.GetMeta()) yyDollar[3].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(catch.GetMeta()) - yyDollar[5].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[5].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[6].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(catch.GetMeta()) yyDollar[7].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(catch.GetMeta()) yyDollar[9].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(catch.GetMeta()) @@ -4508,8 +4506,8 @@ yydefault: if yyDollar[3].token != nil { yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } - yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[4].token.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) } @@ -4541,8 +4539,8 @@ yydefault: if yyDollar[3].token != nil { yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } - yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[4].token.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[5].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4779,7 +4777,7 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4798,7 +4796,7 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5313,8 +5311,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.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) } @@ -5332,8 +5330,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + 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.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6678,8 +6676,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6698,8 +6696,8 @@ yydefault: // save comments yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) - yyDollar[2].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[2].token.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) } @@ -7215,8 +7213,8 @@ yydefault: 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) @@ -7383,8 +7381,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7398,12 +7396,12 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarToken) - yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.OpenCurlyBracesToken) - yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseCurlyBracesToken) + 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(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.NodeStart) + yyDollar[4].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7417,8 +7415,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7812,8 +7810,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7831,8 +7829,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + 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) yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) @@ -7856,8 +7854,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + 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.IdentifierToken).AppendTo(fetch.GetMeta()) @@ -7875,10 +7873,10 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarOpenCurlyBracesToken) - yyDollar[3].token.Meta.SetTokenName(meta.DollarCloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.DollarCloseCurlyBracesToken) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7896,11 +7894,11 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarOpenCurlyBracesToken) + 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.IdentifierToken).AppendTo(name.GetMeta()) - yyDollar[3].token.Meta.SetTokenName(meta.DollarCloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.DollarCloseCurlyBracesToken) + yyDollar[3].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7937,8 +7935,8 @@ yydefault: 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) + 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) @@ -8022,8 +8020,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) - yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMeta(yyVAL.node, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/php7/php7.y b/php7/php7.y index 3c8dd08..06e370c 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -1344,8 +1344,8 @@ catch_list: // save comments $2.Meta.SetTokenName(meta.CatchToken).AppendTo(catch.GetMeta()) $3.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(catch.GetMeta()) - $5.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $5.Meta.SetTokenName(meta.NodeStart).AppendTo(variable.GetMeta()) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $6.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(catch.GetMeta()) $7.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(catch.GetMeta()) $9.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(catch.GetMeta()) @@ -2128,8 +2128,8 @@ parameter: if $3 != nil { $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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) } @@ -2159,8 +2159,8 @@ parameter: if $3 != nil { $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2388,7 +2388,7 @@ static_var: // save comments $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2405,7 +2405,7 @@ static_var: // save comments $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2892,8 +2892,8 @@ property: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.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) } @@ -2909,8 +2909,8 @@ property: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4104,8 +4104,8 @@ lexical_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4122,8 +4122,8 @@ lexical_var: // save comments $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) - $2.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $2.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) } @@ -4590,8 +4590,8 @@ dereferencable: $$ = $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) @@ -4742,8 +4742,8 @@ simple_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4755,12 +4755,12 @@ simple_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.DollarToken) - $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $2, meta.OpenCurlyBracesToken) - $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $4, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + $2.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.NodeStart) + $4.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4772,8 +4772,8 @@ simple_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5137,8 +5137,8 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5154,8 +5154,8 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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) $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) @@ -5177,8 +5177,8 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) - yylex.(*Parser).appendMeta(variable, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $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.IdentifierToken).AppendTo(fetch.GetMeta()) @@ -5194,10 +5194,10 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.DollarOpenCurlyBracesToken) - $3.Meta.SetTokenName(meta.DollarCloseCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $3, meta.DollarCloseCurlyBracesToken) + $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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5213,11 +5213,11 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - $1.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.DollarOpenCurlyBracesToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) - $3.Meta.SetTokenName(meta.DollarCloseCurlyBracesToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $3, meta.DollarCloseCurlyBracesToken) + $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5250,8 +5250,8 @@ encaps_var: $$ = $2; // save comments - $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + $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) @@ -5330,8 +5330,8 @@ encaps_var_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) - yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.DollarToken}, meta.DollarToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMeta($$, &meta.Data{"$", meta.TokenType, nil, meta.NodeStart}, meta.NodeStart) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/printer/printer.go b/printer/printer.go index 648a4b5..cdd578a 100644 --- a/printer/printer.go +++ b/printer/printer.go @@ -654,14 +654,7 @@ func (p *Printer) printScalarHeredoc(n node.Node) { io.WriteString(p.w, "\n") for _, part := range nn.Parts { - switch part.(type) { - case *scalar.EncapsedStringPart: - p.Print(part) - default: - p.printMeta(part, meta.DollarOpenCurlyBracesToken) - p.Print(part) - p.printMeta(part, meta.DollarCloseCurlyBracesToken) - } + p.Print(part) } io.WriteString(p.w, "\n") @@ -1673,14 +1666,7 @@ func (p *Printer) printExprShellExec(n node.Node) { p.printMeta(nn, meta.BackquoteToken) io.WriteString(p.w, "`") for _, part := range nn.Parts { - switch part.(type) { - case *scalar.EncapsedStringPart: - p.Print(part) - default: - p.printMeta(part, meta.DollarOpenCurlyBracesToken) - p.Print(part) - p.printMeta(part, meta.DollarCloseCurlyBracesToken) - } + p.Print(part) } io.WriteString(p.w, "`") @@ -1787,14 +1773,8 @@ func (p *Printer) printExprUnaryPlus(n node.Node) { func (p *Printer) printExprVariable(n node.Node) { nn := n.(*expr.Variable) p.printMeta(nn, meta.NodeStart) - p.printMeta(nn, meta.VariableToken) - p.printMeta(nn, meta.DollarOpenCurlyBracesToken) - p.printMeta(nn, meta.DollarToken) - p.printMeta(nn, meta.OpenCurlyBracesToken) p.Print(nn.VarName) - p.printMeta(nn, meta.DollarCloseCurlyBracesToken) - p.printMeta(nn, meta.CloseCurlyBracesToken) p.printMeta(nn, meta.NodeEnd) } diff --git a/printer/printer_parsed_php5_test.go b/printer/printer_parsed_php5_test.go index 61b5a15..a6cfff8 100644 --- a/printer/printer_parsed_php5_test.go +++ b/printer/printer_parsed_php5_test.go @@ -1318,6 +1318,7 @@ func TestParseAndPrintPhp5While(t *testing.T) { func TestParseAndPrintPhp5Parentheses(t *testing.T) { src := ` 0 { printIndent(d.Writer, d.depth) - fmt.Fprint(d.Writer, "Meta: []meta.Meta{\n") + fmt.Fprint(d.Writer, "Meta: meta.Collection{\n") d.depth++ for _, m := range *mm { printIndent(d.Writer, d.depth) - switch m.Type { - case meta.CommentType: - fmt.Fprint(d.Writer, "&meta.CommentType{\n") - case meta.WhiteSpaceType: - fmt.Fprint(d.Writer, "&meta.WhiteSpaceType{\n") - case meta.TokenType: - fmt.Fprint(d.Writer, "&meta.TokenType{\n") - } + fmt.Fprint(d.Writer, "&meta.Data{\n") d.depth++ printIndent(d.Writer, d.depth) + + switch m.Type { + case meta.CommentType: + fmt.Fprint(d.Writer, "Type: meta.CommentType,\n") + case meta.WhiteSpaceType: + fmt.Fprint(d.Writer, "Type: meta.WhiteSpaceType,\n") + case meta.TokenType: + fmt.Fprint(d.Writer, "Type: meta.TokenType,\n") + } + + printIndent(d.Writer, d.depth) + if m.Position != nil { fmt.Fprint(d.Writer, "Position: &position.Position{\n") d.depth++ @@ -99,7 +104,7 @@ func (d *GoDumper) EnterNode(w walker.Walkable) bool { printIndent(d.Writer, d.depth) fmt.Fprintf(d.Writer, "Value: %q,\n", m.String()) printIndent(d.Writer, d.depth) - fmt.Fprintf(d.Writer, "TokenName: %d,\n", m.TokenName) + fmt.Fprintf(d.Writer, "TokenName: meta.%s,\n", m.TokenName.String()) d.depth-- printIndent(d.Writer, d.depth) diff --git a/visitor/go_dumper_test.go b/visitor/go_dumper_test.go index dc87a47..759ee3c 100644 --- a/visitor/go_dumper_test.go +++ b/visitor/go_dumper_test.go @@ -50,8 +50,9 @@ func ExampleGoDumper() { // StartPos: 10, // EndPos: 143, // }, - // Meta: []meta.Meta{ - // &meta.TokenType{ + // Meta: meta.Collection{ + // &meta.Data{ + // Type: meta.TokenType, // Position: &position.Position{ // StartLine: 1, // EndLine: 1, @@ -59,9 +60,10 @@ func ExampleGoDumper() { // EndPos: 5, // }, // Value: "