diff --git a/main.go b/main.go index 6ccd7c8..3d0a4df 100644 --- a/main.go +++ b/main.go @@ -18,6 +18,7 @@ import ( "github.com/z7zmey/php-parser/parser" "github.com/z7zmey/php-parser/php5" "github.com/z7zmey/php-parser/php7" + "github.com/z7zmey/php-parser/printer" "github.com/z7zmey/php-parser/visitor" ) @@ -27,6 +28,7 @@ var dumpType string var profiler string var withMeta *bool var showResolvedNs *bool +var printBack *bool type file struct { path string @@ -37,6 +39,7 @@ func main() { usePhp5 = flag.Bool("php5", false, "parse as PHP5") withMeta = flag.Bool("meta", false, "show meta") showResolvedNs = flag.Bool("r", false, "resolve names") + printBack = flag.Bool("pb", false, "print AST back into the parsed file") flag.StringVar(&dumpType, "d", "", "dump format: [custom, go, json, pretty_json]") flag.StringVar(&profiler, "prof", "", "start profiler: [cpu, mem, trace]") @@ -62,7 +65,7 @@ func main() { } // run printer goroutine - go printer(resultCh) + go printerWorker(resultCh) // process files processPath(flag.Args(), fileCh) @@ -133,7 +136,7 @@ func parserWorker(fileCh <-chan *file, result chan<- parser.Parser) { } } -func printer(result <-chan parser.Parser) { +func printerWorker(result <-chan parser.Parser) { var counter int w := bufio.NewWriter(os.Stdout) @@ -153,6 +156,15 @@ func printer(result <-chan parser.Parser) { fmt.Fprintln(w, e) } + if *printBack { + o := bytes.NewBuffer([]byte{}) + p := printer.NewPrinter(o) + p.Print(parserWorker.GetRootNode()) + + err := ioutil.WriteFile(parserWorker.GetPath(), o.Bytes(), 0644) + checkErr(err) + } + var nsResolver *visitor.NamespaceResolver if *showResolvedNs { nsResolver = visitor.NewNamespaceResolver() diff --git a/meta/collection.go b/meta/collection.go new file mode 100644 index 0000000..c0500a0 --- /dev/null +++ b/meta/collection.go @@ -0,0 +1,115 @@ +package meta + +// Collection of Meta objects +type Collection []*Data + +// SetTokenName sets TokenName for the all elements in the collection +func (mc *Collection) SetTokenName(tn TokenName) *Collection { + for _, m := range *mc { + m.TokenName = tn + } + + return mc +} + +// Push adds elements to the end of an Collection +func (mc *Collection) Push(mm ...*Data) *Collection { + *mc = append(*mc, mm...) + return mc +} + +// Unshift prepends elements to the beginning of an Collection +func (mc *Collection) Unshift(mm ...*Data) *Collection { + *mc = append(mm, *mc...) + return mc +} + +// AppendTo - appends elements of the collection to the end of the target collection +func (mc *Collection) AppendTo(target *Collection) *Collection { + if len(*mc) == 0 { + return mc + } + *target = append(*target, *mc...) + return mc +} + +// PrependTo - prepends elements of the collection to the start of the target collection +func (mc *Collection) PrependTo(target *Collection) *Collection { + if len(*mc) == 0 { + return mc + } + *target = append(*mc, *target...) + return mc +} + +// Cut elements by TokenName +func (mc *Collection) Cut(f Filter) *Collection { + collection := (*mc)[:0] + cutted := Collection{} + + for _, m := range *mc { + if fr := f(m); fr { + cutted = append(cutted, m) + } else { + collection = append(collection, m) + } + } + + *mc = collection + + return &cutted +} + +// Filter function signature +type Filter func(d *Data) bool + +// TokenNameFilter generates filter function that returns true +// if data.TokenName exactly same as given +func TokenNameFilter(tn TokenName) Filter { + return func(d *Data) bool { + return d.TokenName == tn + } +} + +// TypeFilter generates filter function that returns true +// if data.Type exactly same as given +func TypeFilter(t Type) Filter { + return func(d *Data) bool { + return d.Type == t + } +} + +// AndFilter generates filter function that returns true +// if all given filters return true +func AndFilter(filters ...Filter) Filter { + return func(d *Data) bool { + for _, filter := range filters { + if result := filter(d); !result { + return false + } + } + + return true + } +} + +// OrFilter generates filter function that returns true +// if one of given filters return true +func OrFilter(filters ...Filter) Filter { + return func(d *Data) bool { + for _, filter := range filters { + if result := filter(d); result { + return true + } + } + + return false + } +} + +// NotFilter negates given filter +func NotFilter(f Filter) Filter { + return func(d *Data) bool { + return !f(d) + } +} diff --git a/meta/collection_test.go b/meta/collection_test.go new file mode 100644 index 0000000..652b001 --- /dev/null +++ b/meta/collection_test.go @@ -0,0 +1,422 @@ +package meta_test + +import ( + "reflect" + "testing" + + "github.com/kylelemons/godebug/pretty" + "github.com/z7zmey/php-parser/meta" +) + +func TestCollectionSetTokenName(t *testing.T) { + + // prepare + + whiteSpace := &meta.Data{ + Type: meta.WhiteSpaceType, + Value: "\n", + } + comment := &meta.Data{ + Type: meta.CommentType, + Value: "// some comment", + } + + baseCollection := meta.Collection{whiteSpace, comment} + + // action + + baseCollection.SetTokenName(meta.OpenParenthesisToken) + + // check + + for _, m := range baseCollection { + if m.TokenName != meta.OpenParenthesisToken { + t.Error("The TokenName must be set for all Meta objects") + } + } +} + +func TestCollectionPush(t *testing.T) { + + // prepare + + whiteSpace := &meta.Data{ + Type: meta.WhiteSpaceType, + Value: "\n", + } + comment := &meta.Data{ + Type: meta.CommentType, + Value: "// some comment", + } + + actualCollection := meta.Collection{whiteSpace} + expectedCollection := meta.Collection{whiteSpace, comment} + + // action + + actualCollection.Push(comment) + + // check + + if !reflect.DeepEqual(expectedCollection, actualCollection) { + diff := pretty.Compare(expectedCollection, actualCollection) + + if diff != "" { + t.Errorf("\nexpected and actual collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual collections are not equal\n") + } + } +} + +func TestCollectionUnshift(t *testing.T) { + + // prepare + + whiteSpace := &meta.Data{ + Type: meta.WhiteSpaceType, + Value: "\n", + } + comment := &meta.Data{ + Type: meta.CommentType, + Value: "// some comment", + } + + actualCollection := meta.Collection{comment} + expectedCollection := meta.Collection{whiteSpace, comment} + + // action + + actualCollection.Unshift(whiteSpace) + + // check + + if !reflect.DeepEqual(expectedCollection, actualCollection) { + diff := pretty.Compare(expectedCollection, actualCollection) + + if diff != "" { + t.Errorf("\nexpected and actual collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual collections are not equal\n") + } + } +} + +func TestCollectionAppendTo(t *testing.T) { + + // prepare + + whiteSpace := &meta.Data{ + Type: meta.WhiteSpaceType, + Value: "\n", + } + comment := &meta.Data{ + Type: meta.CommentType, + Value: "// some comment", + } + + actualCollection := meta.Collection{whiteSpace} + expectedCollection := meta.Collection{whiteSpace, comment} + + baseCollection := meta.Collection{comment} + + // action + + baseCollection.AppendTo(&actualCollection) + + // check + + if !reflect.DeepEqual(expectedCollection, actualCollection) { + diff := pretty.Compare(expectedCollection, actualCollection) + + if diff != "" { + t.Errorf("\nexpected and actual collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual collections are not equal\n") + } + } +} + +func TestEmptyCollectionAppendTo(t *testing.T) { + + // prepare + + whiteSpace := &meta.Data{ + Type: meta.WhiteSpaceType, + Value: "\n", + } + + actualCollection := meta.Collection{whiteSpace} + expectedCollection := meta.Collection{whiteSpace} + + var baseCollection meta.Collection = nil + + // action + + baseCollection.AppendTo(&actualCollection) + + // check + + if !reflect.DeepEqual(expectedCollection, actualCollection) { + diff := pretty.Compare(expectedCollection, actualCollection) + + if diff != "" { + t.Errorf("\nexpected and actual collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual collections are not equal\n") + } + } +} + +func TestCollectionPrependTo(t *testing.T) { + + // prepare + + whiteSpace := &meta.Data{ + Type: meta.WhiteSpaceType, + Value: "\n", + } + comment := &meta.Data{ + Type: meta.CommentType, + Value: "// some comment", + } + + actualCollection := meta.Collection{comment} + expectedCollection := meta.Collection{whiteSpace, comment} + + baseCollection := meta.Collection{whiteSpace} + + // action + + baseCollection.PrependTo(&actualCollection) + + // check + + if !reflect.DeepEqual(expectedCollection, actualCollection) { + diff := pretty.Compare(expectedCollection, actualCollection) + + if diff != "" { + t.Errorf("\nexpected and actual collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual collections are not equal\n") + } + } +} + +func TestEmptyCollectionPrependTo(t *testing.T) { + + // prepare + + comment := &meta.Data{ + Type: meta.CommentType, + Value: "// some comment", + } + + actualCollection := meta.Collection{comment} + expectedCollection := meta.Collection{comment} + + baseCollection := meta.Collection{} + + // action + + baseCollection.PrependTo(&actualCollection) + + // check + + if !reflect.DeepEqual(expectedCollection, actualCollection) { + diff := pretty.Compare(expectedCollection, actualCollection) + + if diff != "" { + t.Errorf("\nexpected and actual collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual collections are not equal\n") + } + } +} + +func TestCollectionCutByTokenName(t *testing.T) { + + // prepare + + whiteSpace := &meta.Data{ + Type: meta.WhiteSpaceType, + Value: "\n", + } + OpenParenthesisComment := &meta.Data{ + Type: meta.CommentType, + Value: "// some comment", + TokenName: meta.OpenParenthesisToken, + } + OpenParenthesisToken := &meta.Data{ + Type: meta.TokenType, + Value: "(", + TokenName: meta.OpenParenthesisToken, + } + CloseParenthesisToken := &meta.Data{ + Type: meta.TokenType, + Value: ")", + TokenName: meta.CloseParenthesisToken, + } + + actualCollection := meta.Collection{whiteSpace, OpenParenthesisComment, OpenParenthesisToken, CloseParenthesisToken} + + expectedCollection := meta.Collection{whiteSpace, CloseParenthesisToken} + expectedCuttedCollection := &meta.Collection{OpenParenthesisComment, OpenParenthesisToken} + + // action + + actualCuttedCollection := actualCollection.Cut( + meta.TokenNameFilter(meta.OpenParenthesisToken), + ) + + // check + + if !reflect.DeepEqual(expectedCollection, actualCollection) { + diff := pretty.Compare(expectedCollection, actualCollection) + + if diff != "" { + t.Errorf("\nexpected and actual collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual collections are not equal\n") + } + } + + if !reflect.DeepEqual(expectedCuttedCollection, actualCuttedCollection) { + diff := pretty.Compare(expectedCuttedCollection, actualCuttedCollection) + + if diff != "" { + t.Errorf("\nexpected and actual cutted collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual cutted collections are not equal\n") + } + } +} + +func TestCollectionCutByTokenTypes(t *testing.T) { + + // prepare + + whiteSpace := &meta.Data{ + Type: meta.WhiteSpaceType, + Value: "\n", + } + OpenParenthesisComment := &meta.Data{ + Type: meta.CommentType, + Value: "// some comment", + TokenName: meta.OpenParenthesisToken, + } + OpenParenthesisToken := &meta.Data{ + Type: meta.TokenType, + Value: "(", + TokenName: meta.OpenParenthesisToken, + } + CloseParenthesisToken := &meta.Data{ + Type: meta.TokenType, + Value: ")", + TokenName: meta.CloseParenthesisToken, + } + + actualCollection := meta.Collection{whiteSpace, OpenParenthesisComment, OpenParenthesisToken, CloseParenthesisToken} + + expectedCollection := meta.Collection{OpenParenthesisToken, CloseParenthesisToken} + expectedCuttedCollection := &meta.Collection{whiteSpace, OpenParenthesisComment} + + // action + + actualCuttedCollection := actualCollection.Cut(meta.OrFilter( + meta.TypeFilter(meta.CommentType), + meta.TypeFilter(meta.WhiteSpaceType)), + ) + + // check + + if !reflect.DeepEqual(expectedCollection, actualCollection) { + diff := pretty.Compare(expectedCollection, actualCollection) + + if diff != "" { + t.Errorf("\nexpected and actual collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual collections are not equal\n") + } + } + + if !reflect.DeepEqual(expectedCuttedCollection, actualCuttedCollection) { + diff := pretty.Compare(expectedCuttedCollection, actualCuttedCollection) + + if diff != "" { + t.Errorf("\nexpected and actual cutted collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual cutted collections are not equal\n") + } + } +} + +func TestCollectionCutByTokenNameButNotType(t *testing.T) { + + // prepare + + whiteSpace := &meta.Data{ + Type: meta.WhiteSpaceType, + Value: "\n", + } + OpenParenthesisComment := &meta.Data{ + Type: meta.CommentType, + Value: "// some comment", + TokenName: meta.OpenParenthesisToken, + } + OpenParenthesisToken := &meta.Data{ + Type: meta.TokenType, + Value: "(", + TokenName: meta.OpenParenthesisToken, + } + CloseParenthesisToken := &meta.Data{ + Type: meta.TokenType, + Value: ")", + TokenName: meta.CloseParenthesisToken, + } + + actualCollection := meta.Collection{ + whiteSpace, + OpenParenthesisComment, + OpenParenthesisToken, + CloseParenthesisToken, + } + + expectedCollection := meta.Collection{ + whiteSpace, + OpenParenthesisToken, + CloseParenthesisToken, + } + expectedCuttedCollection := &meta.Collection{ + OpenParenthesisComment, + } + + // action + + actualCuttedCollection := actualCollection.Cut(meta.AndFilter( + meta.TokenNameFilter(meta.OpenParenthesisToken), + meta.NotFilter(meta.TypeFilter(meta.TokenType))), + ) + + // check + + if !reflect.DeepEqual(expectedCollection, actualCollection) { + diff := pretty.Compare(expectedCollection, actualCollection) + + if diff != "" { + t.Errorf("\nexpected and actual collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual collections are not equal\n") + } + } + + if !reflect.DeepEqual(expectedCuttedCollection, actualCuttedCollection) { + diff := pretty.Compare(expectedCuttedCollection, actualCuttedCollection) + + if diff != "" { + t.Errorf("\nexpected and actual cutted collections are not equal\ndiff: (-expected +actual)\n%s", diff) + } else { + t.Errorf("\nexpected and actual cutted collections are not equal\n") + } + } +} diff --git a/meta/comment.go b/meta/comment.go deleted file mode 100644 index c264f58..0000000 --- a/meta/comment.go +++ /dev/null @@ -1,39 +0,0 @@ -package meta - -import ( - "github.com/z7zmey/php-parser/position" -) - -// Comment aggrigates information about comment /** -type Comment struct { - Value string - Position *position.Position - TokenName TokenName -} - -// NewComment - Comment constructor -func NewComment(value string, pos *position.Position) *Comment { - return &Comment{ - Value: value, - Position: pos, - TokenName: UnknownToken, - } -} - -// SetTokenName sets token name -func (c *Comment) SetTokenName(tokenName TokenName) { - c.TokenName = tokenName -} - -// GetTokenName returns token name -func (c *Comment) GetTokenName() TokenName { - return c.TokenName -} - -func (c *Comment) String() string { - return c.Value -} - -func (c *Comment) GetPosition() *position.Position { - return c.Position -} diff --git a/meta/comment_test.go b/meta/comment_test.go deleted file mode 100644 index d509113..0000000 --- a/meta/comment_test.go +++ /dev/null @@ -1,44 +0,0 @@ -package meta_test - -import ( - "testing" - - "github.com/z7zmey/php-parser/position" - - "github.com/z7zmey/php-parser/meta" -) - -func TestCommentPrint(t *testing.T) { - expected := "/** hello world */" - - comment := meta.NewComment(expected, nil) - - actual := comment.String() - - if expected != actual { - t.Errorf("expected and actual are not equal\n") - } -} - -func TestCommentSetGetTokenName(t *testing.T) { - expected := meta.ArrayToken - c := meta.NewComment("/** hello world */", nil) - c.SetTokenName(expected) - - actual := c.GetTokenName() - - if expected != actual { - t.Errorf("expected and actual are not equal\n") - } -} - -func TestCommentGetPosition(t *testing.T) { - expected := position.NewPosition(1, 1, 1, 1) - c := meta.NewComment("/** hello world */", expected) - - actual := c.GetPosition() - - if expected != actual { - t.Errorf("expected and actual are not equal\n") - } -} diff --git a/meta/data.go b/meta/data.go new file mode 100644 index 0000000..e45e6a0 --- /dev/null +++ b/meta/data.go @@ -0,0 +1,17 @@ +package meta + +import ( + "github.com/z7zmey/php-parser/position" +) + +// Data contain additional information that isn't part of AST +type Data struct { + Value string + Type Type + Position *position.Position + TokenName TokenName +} + +func (d *Data) String() string { + return d.Value +} diff --git a/meta/data_test.go b/meta/data_test.go new file mode 100644 index 0000000..cb5c5e8 --- /dev/null +++ b/meta/data_test.go @@ -0,0 +1,21 @@ +package meta_test + +import ( + "testing" + + "github.com/z7zmey/php-parser/meta" +) + +func TestCommentPrint(t *testing.T) { + expected := "/** hello world */" + + comment := meta.Data{ + Value: expected, + } + + actual := comment.String() + + if expected != actual { + t.Errorf("expected and actual are not equal\n") + } +} diff --git a/meta/meta.go b/meta/meta.go deleted file mode 100644 index d14d504..0000000 --- a/meta/meta.go +++ /dev/null @@ -1,12 +0,0 @@ -package meta - -import ( - "github.com/z7zmey/php-parser/position" -) - -type Meta interface { - String() string - SetTokenName(tn TokenName) - GetTokenName() TokenName - GetPosition() *position.Position -} diff --git a/meta/tokenName.go b/meta/tokenName.go index f3ad33d..05a08f0 100644 --- a/meta/tokenName.go +++ b/meta/tokenName.go @@ -36,7 +36,6 @@ const ( EnddeclareToken AsToken SwitchToken - SwitchSemicolonToken EndswitchToken CaseToken DefaultToken @@ -68,9 +67,11 @@ const ( CallableToken StartHeredocToken DollarOpenCurlyBracesToken + DollarCloseCurlyBracesToken CurlyOpenToken PaamayimNekudotayimToken NamespaceToken + UseLeadingNsSeparatorToken NsSeparatorToken EllipsisToken EvalToken @@ -80,7 +81,7 @@ const ( LogicalXorToken LogicalAndToken InstanceofToken - NewToken + NewAnchor CloneToken ElseifToken ElseToken diff --git a/meta/tokenName_string.go b/meta/tokenName_string.go index a906696..819f7f0 100644 --- a/meta/tokenName_string.go +++ b/meta/tokenName_string.go @@ -4,9 +4,9 @@ package meta import "strconv" -const _TokenName_name = "UnknownTokenNodeStartNodeEndMagicConstantTokenIncludeTokenIncludeOnceTokenExitTokenIfTokenLnumberTokenDnumberTokenStringTokenStringVarnameTokenVariableTokenNumStringTokenInlineHTMLTokenEncapsedAndWhitespaceTokenConstantEncapsedStringTokenEchoTokenDoTokenWhileTokenEndwhileTokenForInitSemicolonTokenForCondSemicolonTokenForTokenEndforTokenForeachTokenEndforeachTokenDeclareTokenEnddeclareTokenAsTokenSwitchTokenSwitchSemicolonTokenEndswitchTokenCaseTokenDefaultTokenBreakTokenContinueTokenGotoTokenFunctionTokenConstTokenReturnTokenTryTokenCatchTokenFinallyTokenThrowTokenUseTokenInsteadofTokenGlobalTokenVarTokenUnsetTokenIssetTokenEmptyTokenClassTokenTraitTokenInterfaceTokenExtendsTokenImplementsTokenDoubleArrowTokenListTokenArrayTokenCallableTokenStartHeredocTokenDollarOpenCurlyBracesTokenCurlyOpenTokenPaamayimNekudotayimTokenNamespaceTokenNsSeparatorTokenEllipsisTokenEvalTokenRequireTokenRequireOnceTokenLogicalOrTokenLogicalXorTokenLogicalAndTokenInstanceofTokenNewTokenCloneTokenElseifTokenElseTokenEndifTokenPrintTokenYieldTokenStaticTokenAbstractTokenFinalTokenPrivateTokenProtectedTokenPublicTokenIncTokenDecTokenYieldFromTokenObjectOperatorTokenIntCastTokenDoubleCastTokenStringCastTokenArrayCastTokenObjectCastTokenBoolCastTokenUnsetCastTokenCoalesceTokenSpaceshipTokenPlusEqualTokenMinusEqualTokenMulEqualTokenPowEqualTokenDivEqualTokenConcatEqualTokenModEqualTokenAndEqualTokenOrEqualTokenXorEqualTokenSlEqualTokenSrEqualTokenBooleanOrTokenBooleanAndTokenPowTokenSlTokenSrTokenIsIdenticalTokenIsNotIdenticalTokenIsEqualTokenIsNotEqualTokenIsSmallerOrEqualTokenIsGreaterOrEqualTokenHaltCompilerTokenIdentifierTokenCaseSeparatorTokenDoubleQuoteTokenBackquoteTokenOpenCurlyBracesTokenCloseCurlyBracesTokenSemiColonTokenColonTokenOpenParenthesisTokenCloseParenthesisTokenOpenSquareBracketCloseSquareBracketQuestionMarkTokenAmpersandTokenMinusTokenPlusTokenExclamationMarkTokenTildeTokenAtTokenDollarTokenCommaTokenVerticalBarTokenEqualTokenCaretTokenAsteriskTokenSlashTokenPercentTokenLessTokenGreaterTokenDotToken" +const _TokenName_name = "UnknownTokenNodeStartNodeEndMagicConstantTokenIncludeTokenIncludeOnceTokenExitTokenIfTokenLnumberTokenDnumberTokenStringTokenStringVarnameTokenVariableTokenNumStringTokenInlineHTMLTokenEncapsedAndWhitespaceTokenConstantEncapsedStringTokenEchoTokenDoTokenWhileTokenEndwhileTokenForInitSemicolonTokenForCondSemicolonTokenForTokenEndforTokenForeachTokenEndforeachTokenDeclareTokenEnddeclareTokenAsTokenSwitchTokenEndswitchTokenCaseTokenDefaultTokenBreakTokenContinueTokenGotoTokenFunctionTokenConstTokenReturnTokenTryTokenCatchTokenFinallyTokenThrowTokenUseTokenInsteadofTokenGlobalTokenVarTokenUnsetTokenIssetTokenEmptyTokenClassTokenTraitTokenInterfaceTokenExtendsTokenImplementsTokenDoubleArrowTokenListTokenArrayTokenCallableTokenStartHeredocTokenDollarOpenCurlyBracesTokenDollarCloseCurlyBracesTokenCurlyOpenTokenPaamayimNekudotayimTokenNamespaceTokenUseLeadingNsSeparatorTokenNsSeparatorTokenEllipsisTokenEvalTokenRequireTokenRequireOnceTokenLogicalOrTokenLogicalXorTokenLogicalAndTokenInstanceofTokenNewAnchorCloneTokenElseifTokenElseTokenEndifTokenPrintTokenYieldTokenStaticTokenAbstractTokenFinalTokenPrivateTokenProtectedTokenPublicTokenIncTokenDecTokenYieldFromTokenObjectOperatorTokenIntCastTokenDoubleCastTokenStringCastTokenArrayCastTokenObjectCastTokenBoolCastTokenUnsetCastTokenCoalesceTokenSpaceshipTokenPlusEqualTokenMinusEqualTokenMulEqualTokenPowEqualTokenDivEqualTokenConcatEqualTokenModEqualTokenAndEqualTokenOrEqualTokenXorEqualTokenSlEqualTokenSrEqualTokenBooleanOrTokenBooleanAndTokenPowTokenSlTokenSrTokenIsIdenticalTokenIsNotIdenticalTokenIsEqualTokenIsNotEqualTokenIsSmallerOrEqualTokenIsGreaterOrEqualTokenHaltCompilerTokenIdentifierTokenCaseSeparatorTokenDoubleQuoteTokenBackquoteTokenOpenCurlyBracesTokenCloseCurlyBracesTokenSemiColonTokenColonTokenOpenParenthesisTokenCloseParenthesisTokenOpenSquareBracketCloseSquareBracketQuestionMarkTokenAmpersandTokenMinusTokenPlusTokenExclamationMarkTokenTildeTokenAtTokenDollarTokenCommaTokenVerticalBarTokenEqualTokenCaretTokenAsteriskTokenSlashTokenPercentTokenLessTokenGreaterTokenDotToken" -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, 430, 444, 453, 465, 475, 488, 497, 510, 520, 531, 539, 549, 561, 571, 579, 593, 604, 612, 622, 632, 642, 652, 662, 676, 688, 703, 719, 728, 738, 751, 768, 794, 808, 832, 846, 862, 875, 884, 896, 912, 926, 941, 956, 971, 979, 989, 1000, 1009, 1019, 1029, 1039, 1050, 1063, 1073, 1085, 1099, 1110, 1118, 1126, 1140, 1159, 1171, 1186, 1201, 1215, 1230, 1243, 1257, 1270, 1284, 1298, 1313, 1326, 1339, 1352, 1368, 1381, 1394, 1406, 1419, 1431, 1443, 1457, 1472, 1480, 1487, 1494, 1510, 1529, 1541, 1556, 1577, 1598, 1615, 1630, 1648, 1664, 1678, 1698, 1719, 1733, 1743, 1763, 1784, 1801, 1819, 1836, 1850, 1860, 1869, 1889, 1899, 1906, 1917, 1927, 1943, 1953, 1963, 1976, 1986, 1998, 2007, 2019, 2027} +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} func (i TokenName) String() string { if i < 0 || i >= TokenName(len(_TokenName_index)-1) { diff --git a/meta/type.go b/meta/type.go new file mode 100644 index 0000000..783149f --- /dev/null +++ b/meta/type.go @@ -0,0 +1,11 @@ +package meta + +// Type TODO +type Type int + +//go:generate stringer -type=Type -output ./type_string.go +const ( + CommentType Type = iota + WhiteSpaceType + TokenType +) diff --git a/meta/type_string.go b/meta/type_string.go new file mode 100644 index 0000000..69cb010 --- /dev/null +++ b/meta/type_string.go @@ -0,0 +1,16 @@ +// Code generated by "stringer -type=Type -output ./type_string.go"; DO NOT EDIT. + +package meta + +import "strconv" + +const _Type_name = "CommentTypeWhiteSpaceTypeTokenType" + +var _Type_index = [...]uint8{0, 11, 25, 34} + +func (i Type) String() string { + if i < 0 || i >= Type(len(_Type_index)-1) { + return "Type(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _Type_name[_Type_index[i]:_Type_index[i+1]] +} diff --git a/meta/type_test.go b/meta/type_test.go new file mode 100644 index 0000000..bb2564e --- /dev/null +++ b/meta/type_test.go @@ -0,0 +1,29 @@ +package meta_test + +import ( + "testing" + + "github.com/z7zmey/php-parser/meta" +) + +func TestTypeString(t *testing.T) { + c := meta.CommentType + + expected := "CommentType" + actual := c.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestWrongTypeString(t *testing.T) { + c := meta.Type(-1) + + expected := "Type(-1)" + actual := c.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} diff --git a/meta/white_space.go b/meta/white_space.go deleted file mode 100644 index ea12613..0000000 --- a/meta/white_space.go +++ /dev/null @@ -1,37 +0,0 @@ -package meta - -import ( - "github.com/z7zmey/php-parser/position" -) - -type WhiteSpace struct { - Value string - Position *position.Position - TokenName TokenName -} - -func NewWhiteSpace(value string, pos *position.Position) *WhiteSpace { - return &WhiteSpace{ - Value: value, - Position: pos, - TokenName: UnknownToken, - } -} - -// SetTokenName sets token name -func (c *WhiteSpace) SetTokenName(tokenName TokenName) { - c.TokenName = tokenName -} - -// GetTokenName returns token name -func (c *WhiteSpace) GetTokenName() TokenName { - return c.TokenName -} - -func (el *WhiteSpace) String() string { - return el.Value -} - -func (el *WhiteSpace) GetPosition() *position.Position { - return el.Position -} diff --git a/meta/white_space_test.go b/meta/white_space_test.go deleted file mode 100644 index b609126..0000000 --- a/meta/white_space_test.go +++ /dev/null @@ -1,44 +0,0 @@ -package meta_test - -import ( - "testing" - - "github.com/z7zmey/php-parser/position" - - "github.com/z7zmey/php-parser/meta" -) - -func TestWhiteSpacePrint(t *testing.T) { - expected := "\n " - - w := meta.NewWhiteSpace(expected, nil) - - actual := w.String() - - if expected != actual { - t.Errorf("expected and actual are not equal\n") - } -} - -func TestWhiteSpaceSetGetTokenName(t *testing.T) { - expected := meta.ArrayToken - w := meta.NewWhiteSpace("\n ", nil) - w.SetTokenName(expected) - - actual := w.GetTokenName() - - if expected != actual { - t.Errorf("expected and actual are not equal\n") - } -} - -func TestWhiteSpaceGetPosition(t *testing.T) { - expected := position.NewPosition(1, 1, 1, 1) - q := meta.NewWhiteSpace("\n ", expected) - - actual := q.GetPosition() - - if expected != actual { - t.Errorf("expected and actual are not equal\n") - } -} diff --git a/node/expr/assign/n_assign.go b/node/expr/assign/n_assign.go index 87048b0..d2d4db4 100644 --- a/node/expr/assign/n_assign.go +++ b/node/expr/assign/n_assign.go @@ -9,7 +9,7 @@ import ( // Assign node type Assign struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *Assign) GetPosition() *position.Position { return n.Position } -func (n *Assign) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Assign) GetMeta() []meta.Meta { - return n.Meta +func (n *Assign) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_assign_ref.go b/node/expr/assign/n_assign_ref.go index ec9970e..90eff92 100644 --- a/node/expr/assign/n_assign_ref.go +++ b/node/expr/assign/n_assign_ref.go @@ -9,7 +9,7 @@ import ( // Reference node type Reference struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *Reference) GetPosition() *position.Position { return n.Position } -func (n *Reference) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Reference) GetMeta() []meta.Meta { - return n.Meta +func (n *Reference) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_bitwise_and.go b/node/expr/assign/n_bitwise_and.go index 088e125..5d84216 100644 --- a/node/expr/assign/n_bitwise_and.go +++ b/node/expr/assign/n_bitwise_and.go @@ -9,7 +9,7 @@ import ( // BitwiseAnd node type BitwiseAnd struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *BitwiseAnd) GetPosition() *position.Position { return n.Position } -func (n *BitwiseAnd) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *BitwiseAnd) GetMeta() []meta.Meta { - return n.Meta +func (n *BitwiseAnd) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_bitwise_or.go b/node/expr/assign/n_bitwise_or.go index 216d511..bb54040 100644 --- a/node/expr/assign/n_bitwise_or.go +++ b/node/expr/assign/n_bitwise_or.go @@ -9,7 +9,7 @@ import ( // BitwiseOr node type BitwiseOr struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *BitwiseOr) GetPosition() *position.Position { return n.Position } -func (n *BitwiseOr) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *BitwiseOr) GetMeta() []meta.Meta { - return n.Meta +func (n *BitwiseOr) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_bitwise_xor.go b/node/expr/assign/n_bitwise_xor.go index 2d43254..b1f9dad 100644 --- a/node/expr/assign/n_bitwise_xor.go +++ b/node/expr/assign/n_bitwise_xor.go @@ -9,7 +9,7 @@ import ( // BitwiseXor node type BitwiseXor struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *BitwiseXor) GetPosition() *position.Position { return n.Position } -func (n *BitwiseXor) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *BitwiseXor) GetMeta() []meta.Meta { - return n.Meta +func (n *BitwiseXor) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_concat.go b/node/expr/assign/n_concat.go index 9b8f65a..44c175b 100644 --- a/node/expr/assign/n_concat.go +++ b/node/expr/assign/n_concat.go @@ -9,7 +9,7 @@ import ( // Concat node type Concat struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *Concat) GetPosition() *position.Position { return n.Position } -func (n *Concat) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Concat) GetMeta() []meta.Meta { - return n.Meta +func (n *Concat) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_div.go b/node/expr/assign/n_div.go index ca53aa9..a988398 100644 --- a/node/expr/assign/n_div.go +++ b/node/expr/assign/n_div.go @@ -9,7 +9,7 @@ import ( // Div node type Div struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *Div) GetPosition() *position.Position { return n.Position } -func (n *Div) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Div) GetMeta() []meta.Meta { - return n.Meta +func (n *Div) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_minus.go b/node/expr/assign/n_minus.go index af84b16..1ea308c 100644 --- a/node/expr/assign/n_minus.go +++ b/node/expr/assign/n_minus.go @@ -9,7 +9,7 @@ import ( // Minus node type Minus struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *Minus) GetPosition() *position.Position { return n.Position } -func (n *Minus) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Minus) GetMeta() []meta.Meta { - return n.Meta +func (n *Minus) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_mod.go b/node/expr/assign/n_mod.go index 64c9dac..281394e 100644 --- a/node/expr/assign/n_mod.go +++ b/node/expr/assign/n_mod.go @@ -9,7 +9,7 @@ import ( // Mod node type Mod struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *Mod) GetPosition() *position.Position { return n.Position } -func (n *Mod) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Mod) GetMeta() []meta.Meta { - return n.Meta +func (n *Mod) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_mul.go b/node/expr/assign/n_mul.go index 5e9b4fe..f2cb5ae 100644 --- a/node/expr/assign/n_mul.go +++ b/node/expr/assign/n_mul.go @@ -9,7 +9,7 @@ import ( // Mul node type Mul struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *Mul) GetPosition() *position.Position { return n.Position } -func (n *Mul) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Mul) GetMeta() []meta.Meta { - return n.Meta +func (n *Mul) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_plus.go b/node/expr/assign/n_plus.go index fd3d6a3..0f3b137 100644 --- a/node/expr/assign/n_plus.go +++ b/node/expr/assign/n_plus.go @@ -9,7 +9,7 @@ import ( // Plus node type Plus struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *Plus) GetPosition() *position.Position { return n.Position } -func (n *Plus) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Plus) GetMeta() []meta.Meta { - return n.Meta +func (n *Plus) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_pow.go b/node/expr/assign/n_pow.go index e42ee3e..fa5a17f 100644 --- a/node/expr/assign/n_pow.go +++ b/node/expr/assign/n_pow.go @@ -9,7 +9,7 @@ import ( // Pow node type Pow struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *Pow) GetPosition() *position.Position { return n.Position } -func (n *Pow) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Pow) GetMeta() []meta.Meta { - return n.Meta +func (n *Pow) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_shift_left.go b/node/expr/assign/n_shift_left.go index 38184e4..963bf56 100644 --- a/node/expr/assign/n_shift_left.go +++ b/node/expr/assign/n_shift_left.go @@ -9,7 +9,7 @@ import ( // ShiftLeft node type ShiftLeft struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *ShiftLeft) GetPosition() *position.Position { return n.Position } -func (n *ShiftLeft) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ShiftLeft) GetMeta() []meta.Meta { - return n.Meta +func (n *ShiftLeft) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/n_shift_right.go b/node/expr/assign/n_shift_right.go index 728ccd3..3a1cd4c 100644 --- a/node/expr/assign/n_shift_right.go +++ b/node/expr/assign/n_shift_right.go @@ -9,7 +9,7 @@ import ( // ShiftRight node type ShiftRight struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expression node.Node @@ -33,12 +33,8 @@ func (n *ShiftRight) GetPosition() *position.Position { return n.Position } -func (n *ShiftRight) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ShiftRight) GetMeta() []meta.Meta { - return n.Meta +func (n *ShiftRight) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/assign/t_meta_test.go b/node/expr/assign/t_meta_test.go index 0de3e2f..c9d7e0b 100644 --- a/node/expr/assign/t_meta_test.go +++ b/node/expr/assign/t_meta_test.go @@ -29,12 +29,20 @@ var nodes = []node.Node{ } func TestMeta(t *testing.T) { - expected := []meta.Meta{ - meta.NewComment("//comment\n", nil), - meta.NewWhiteSpace(" ", nil), + expected := &meta.Collection{ + &meta.Data{ + Value: "//comment\n", + Type: meta.CommentType, + Position: nil, + }, + &meta.Data{ + Value: " ", + Type: meta.WhiteSpaceType, + Position: nil, + }, } for _, n := range nodes { - n.AddMeta(expected) + n.GetMeta().Push(*expected...) actual := n.GetMeta() assertEqual(t, expected, actual) } diff --git a/node/expr/binary/n_bitwise_and.go b/node/expr/binary/n_bitwise_and.go index 667cf67..f10c1da 100644 --- a/node/expr/binary/n_bitwise_and.go +++ b/node/expr/binary/n_bitwise_and.go @@ -9,7 +9,7 @@ import ( // BitwiseAnd node type BitwiseAnd struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *BitwiseAnd) GetPosition() *position.Position { return n.Position } -func (n *BitwiseAnd) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *BitwiseAnd) GetMeta() []meta.Meta { - return n.Meta +func (n *BitwiseAnd) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_bitwise_or.go b/node/expr/binary/n_bitwise_or.go index 3acce02..31583c5 100644 --- a/node/expr/binary/n_bitwise_or.go +++ b/node/expr/binary/n_bitwise_or.go @@ -9,7 +9,7 @@ import ( // BitwiseOr node type BitwiseOr struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *BitwiseOr) GetPosition() *position.Position { return n.Position } -func (n *BitwiseOr) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *BitwiseOr) GetMeta() []meta.Meta { - return n.Meta +func (n *BitwiseOr) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_bitwise_xor.go b/node/expr/binary/n_bitwise_xor.go index 56885e3..567d434 100644 --- a/node/expr/binary/n_bitwise_xor.go +++ b/node/expr/binary/n_bitwise_xor.go @@ -9,7 +9,7 @@ import ( // BitwiseXor node type BitwiseXor struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *BitwiseXor) GetPosition() *position.Position { return n.Position } -func (n *BitwiseXor) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *BitwiseXor) GetMeta() []meta.Meta { - return n.Meta +func (n *BitwiseXor) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_boolean_and.go b/node/expr/binary/n_boolean_and.go index ef62f9d..80ac46e 100644 --- a/node/expr/binary/n_boolean_and.go +++ b/node/expr/binary/n_boolean_and.go @@ -9,7 +9,7 @@ import ( // BooleanAnd node type BooleanAnd struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *BooleanAnd) GetPosition() *position.Position { return n.Position } -func (n *BooleanAnd) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *BooleanAnd) GetMeta() []meta.Meta { - return n.Meta +func (n *BooleanAnd) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_boolean_or.go b/node/expr/binary/n_boolean_or.go index 6cc1aaa..08abce1 100644 --- a/node/expr/binary/n_boolean_or.go +++ b/node/expr/binary/n_boolean_or.go @@ -9,7 +9,7 @@ import ( // BooleanOr node type BooleanOr struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *BooleanOr) GetPosition() *position.Position { return n.Position } -func (n *BooleanOr) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *BooleanOr) GetMeta() []meta.Meta { - return n.Meta +func (n *BooleanOr) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_coalesce.go b/node/expr/binary/n_coalesce.go index f015108..a0b5094 100644 --- a/node/expr/binary/n_coalesce.go +++ b/node/expr/binary/n_coalesce.go @@ -9,7 +9,7 @@ import ( // Coalesce node type Coalesce struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Coalesce) GetPosition() *position.Position { return n.Position } -func (n *Coalesce) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Coalesce) GetMeta() []meta.Meta { - return n.Meta +func (n *Coalesce) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_concat.go b/node/expr/binary/n_concat.go index 2a35877..9761226 100644 --- a/node/expr/binary/n_concat.go +++ b/node/expr/binary/n_concat.go @@ -9,7 +9,7 @@ import ( // Concat node type Concat struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Concat) GetPosition() *position.Position { return n.Position } -func (n *Concat) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Concat) GetMeta() []meta.Meta { - return n.Meta +func (n *Concat) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_div.go b/node/expr/binary/n_div.go index 833ba44..0bd20d4 100644 --- a/node/expr/binary/n_div.go +++ b/node/expr/binary/n_div.go @@ -9,7 +9,7 @@ import ( // Div node type Div struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Div) GetPosition() *position.Position { return n.Position } -func (n *Div) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Div) GetMeta() []meta.Meta { - return n.Meta +func (n *Div) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_equal.go b/node/expr/binary/n_equal.go index d5ff654..fdb9d85 100644 --- a/node/expr/binary/n_equal.go +++ b/node/expr/binary/n_equal.go @@ -9,7 +9,7 @@ import ( // Equal node type Equal struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Equal) GetPosition() *position.Position { return n.Position } -func (n *Equal) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Equal) GetMeta() []meta.Meta { - return n.Meta +func (n *Equal) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_greater.go b/node/expr/binary/n_greater.go index d177855..d615051 100644 --- a/node/expr/binary/n_greater.go +++ b/node/expr/binary/n_greater.go @@ -9,7 +9,7 @@ import ( // Greater node type Greater struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Greater) GetPosition() *position.Position { return n.Position } -func (n *Greater) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Greater) GetMeta() []meta.Meta { - return n.Meta +func (n *Greater) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_greater_or_equal.go b/node/expr/binary/n_greater_or_equal.go index abf9bb6..59cd5e0 100644 --- a/node/expr/binary/n_greater_or_equal.go +++ b/node/expr/binary/n_greater_or_equal.go @@ -9,7 +9,7 @@ import ( // GreaterOrEqual node type GreaterOrEqual struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *GreaterOrEqual) GetPosition() *position.Position { return n.Position } -func (n *GreaterOrEqual) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *GreaterOrEqual) GetMeta() []meta.Meta { - return n.Meta +func (n *GreaterOrEqual) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_identical.go b/node/expr/binary/n_identical.go index 885f6d7..9a2f4aa 100644 --- a/node/expr/binary/n_identical.go +++ b/node/expr/binary/n_identical.go @@ -9,7 +9,7 @@ import ( // Identical node type Identical struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Identical) GetPosition() *position.Position { return n.Position } -func (n *Identical) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Identical) GetMeta() []meta.Meta { - return n.Meta +func (n *Identical) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_logical_and.go b/node/expr/binary/n_logical_and.go index 7296a1d..de907ca 100644 --- a/node/expr/binary/n_logical_and.go +++ b/node/expr/binary/n_logical_and.go @@ -9,7 +9,7 @@ import ( // LogicalAnd node type LogicalAnd struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *LogicalAnd) GetPosition() *position.Position { return n.Position } -func (n *LogicalAnd) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *LogicalAnd) GetMeta() []meta.Meta { - return n.Meta +func (n *LogicalAnd) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_logical_or.go b/node/expr/binary/n_logical_or.go index 35d1609..1102b03 100644 --- a/node/expr/binary/n_logical_or.go +++ b/node/expr/binary/n_logical_or.go @@ -9,7 +9,7 @@ import ( // LogicalOr node type LogicalOr struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *LogicalOr) GetPosition() *position.Position { return n.Position } -func (n *LogicalOr) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *LogicalOr) GetMeta() []meta.Meta { - return n.Meta +func (n *LogicalOr) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_logical_xor.go b/node/expr/binary/n_logical_xor.go index f986eb9..fd2373a 100644 --- a/node/expr/binary/n_logical_xor.go +++ b/node/expr/binary/n_logical_xor.go @@ -9,7 +9,7 @@ import ( // LogicalXor node type LogicalXor struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *LogicalXor) GetPosition() *position.Position { return n.Position } -func (n *LogicalXor) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *LogicalXor) GetMeta() []meta.Meta { - return n.Meta +func (n *LogicalXor) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_minus.go b/node/expr/binary/n_minus.go index 89909e8..c86be72 100644 --- a/node/expr/binary/n_minus.go +++ b/node/expr/binary/n_minus.go @@ -9,7 +9,7 @@ import ( // Minus node type Minus struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Minus) GetPosition() *position.Position { return n.Position } -func (n *Minus) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Minus) GetMeta() []meta.Meta { - return n.Meta +func (n *Minus) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_mod.go b/node/expr/binary/n_mod.go index aeaaa67..4bf928d 100644 --- a/node/expr/binary/n_mod.go +++ b/node/expr/binary/n_mod.go @@ -9,7 +9,7 @@ import ( // Mod node type Mod struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Mod) GetPosition() *position.Position { return n.Position } -func (n *Mod) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Mod) GetMeta() []meta.Meta { - return n.Meta +func (n *Mod) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_mul.go b/node/expr/binary/n_mul.go index 9f92791..98b9a7e 100644 --- a/node/expr/binary/n_mul.go +++ b/node/expr/binary/n_mul.go @@ -9,7 +9,7 @@ import ( // Mul node type Mul struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Mul) GetPosition() *position.Position { return n.Position } -func (n *Mul) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Mul) GetMeta() []meta.Meta { - return n.Meta +func (n *Mul) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_not_equal.go b/node/expr/binary/n_not_equal.go index 9a684c1..915fae3 100644 --- a/node/expr/binary/n_not_equal.go +++ b/node/expr/binary/n_not_equal.go @@ -9,7 +9,7 @@ import ( // NotEqual node type NotEqual struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *NotEqual) GetPosition() *position.Position { return n.Position } -func (n *NotEqual) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *NotEqual) GetMeta() []meta.Meta { - return n.Meta +func (n *NotEqual) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_not_identical.go b/node/expr/binary/n_not_identical.go index de510ba..629b491 100644 --- a/node/expr/binary/n_not_identical.go +++ b/node/expr/binary/n_not_identical.go @@ -9,7 +9,7 @@ import ( // NotIdentical node type NotIdentical struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *NotIdentical) GetPosition() *position.Position { return n.Position } -func (n *NotIdentical) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *NotIdentical) GetMeta() []meta.Meta { - return n.Meta +func (n *NotIdentical) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_plus.go b/node/expr/binary/n_plus.go index 1c2e9ec..ffb81ed 100644 --- a/node/expr/binary/n_plus.go +++ b/node/expr/binary/n_plus.go @@ -9,7 +9,7 @@ import ( // Plus node type Plus struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Plus) GetPosition() *position.Position { return n.Position } -func (n *Plus) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Plus) GetMeta() []meta.Meta { - return n.Meta +func (n *Plus) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_pow.go b/node/expr/binary/n_pow.go index 82a7993..e07820c 100644 --- a/node/expr/binary/n_pow.go +++ b/node/expr/binary/n_pow.go @@ -9,7 +9,7 @@ import ( // Pow node type Pow struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Pow) GetPosition() *position.Position { return n.Position } -func (n *Pow) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Pow) GetMeta() []meta.Meta { - return n.Meta +func (n *Pow) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_shift_left.go b/node/expr/binary/n_shift_left.go index 5cb657d..7d15f7c 100644 --- a/node/expr/binary/n_shift_left.go +++ b/node/expr/binary/n_shift_left.go @@ -9,7 +9,7 @@ import ( // ShiftLeft node type ShiftLeft struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *ShiftLeft) GetPosition() *position.Position { return n.Position } -func (n *ShiftLeft) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ShiftLeft) GetMeta() []meta.Meta { - return n.Meta +func (n *ShiftLeft) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_shift_right.go b/node/expr/binary/n_shift_right.go index aa94382..8e6087d 100644 --- a/node/expr/binary/n_shift_right.go +++ b/node/expr/binary/n_shift_right.go @@ -9,7 +9,7 @@ import ( // ShiftRight node type ShiftRight struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *ShiftRight) GetPosition() *position.Position { return n.Position } -func (n *ShiftRight) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ShiftRight) GetMeta() []meta.Meta { - return n.Meta +func (n *ShiftRight) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_smaller.go b/node/expr/binary/n_smaller.go index cdaeeba..e598b75 100644 --- a/node/expr/binary/n_smaller.go +++ b/node/expr/binary/n_smaller.go @@ -9,7 +9,7 @@ import ( // Smaller node type Smaller struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Smaller) GetPosition() *position.Position { return n.Position } -func (n *Smaller) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Smaller) GetMeta() []meta.Meta { - return n.Meta +func (n *Smaller) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_smaller_or_equal.go b/node/expr/binary/n_smaller_or_equal.go index c2b81e4..14b82c8 100644 --- a/node/expr/binary/n_smaller_or_equal.go +++ b/node/expr/binary/n_smaller_or_equal.go @@ -9,7 +9,7 @@ import ( // SmallerOrEqual node type SmallerOrEqual struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *SmallerOrEqual) GetPosition() *position.Position { return n.Position } -func (n *SmallerOrEqual) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *SmallerOrEqual) GetMeta() []meta.Meta { - return n.Meta +func (n *SmallerOrEqual) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/n_spaceship.go b/node/expr/binary/n_spaceship.go index 3c18715..d47aa06 100644 --- a/node/expr/binary/n_spaceship.go +++ b/node/expr/binary/n_spaceship.go @@ -9,7 +9,7 @@ import ( // Spaceship node type Spaceship struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Left node.Node Right node.Node @@ -33,12 +33,8 @@ func (n *Spaceship) GetPosition() *position.Position { return n.Position } -func (n *Spaceship) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Spaceship) GetMeta() []meta.Meta { - return n.Meta +func (n *Spaceship) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/binary/t_meta_test.go b/node/expr/binary/t_meta_test.go index 5c29048..95caac7 100644 --- a/node/expr/binary/t_meta_test.go +++ b/node/expr/binary/t_meta_test.go @@ -41,12 +41,20 @@ var nodes = []node.Node{ } func TestMeta(t *testing.T) { - expected := []meta.Meta{ - meta.NewComment("//comment\n", nil), - meta.NewWhiteSpace(" ", nil), + expected := &meta.Collection{ + &meta.Data{ + Value: "//comment\n", + Type: meta.CommentType, + Position: nil, + }, + &meta.Data{ + Value: " ", + Type: meta.WhiteSpaceType, + Position: nil, + }, } for _, n := range nodes { - n.AddMeta(expected) + n.GetMeta().Push(*expected...) actual := n.GetMeta() assertEqual(t, expected, actual) } diff --git a/node/expr/cast/n_cast_array.go b/node/expr/cast/n_cast_array.go index 7d5c417..a9cdca6 100644 --- a/node/expr/cast/n_cast_array.go +++ b/node/expr/cast/n_cast_array.go @@ -9,7 +9,7 @@ import ( // Array node type Array struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Array) GetPosition() *position.Position { return n.Position } -func (n *Array) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Array) GetMeta() []meta.Meta { - return n.Meta +func (n *Array) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/cast/n_cast_bool.go b/node/expr/cast/n_cast_bool.go index 00e807c..6ee1ab8 100644 --- a/node/expr/cast/n_cast_bool.go +++ b/node/expr/cast/n_cast_bool.go @@ -9,7 +9,7 @@ import ( // Bool node type Bool struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Bool) GetPosition() *position.Position { return n.Position } -func (n *Bool) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Bool) GetMeta() []meta.Meta { - return n.Meta +func (n *Bool) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/cast/n_cast_double.go b/node/expr/cast/n_cast_double.go index 0abc582..621ae30 100644 --- a/node/expr/cast/n_cast_double.go +++ b/node/expr/cast/n_cast_double.go @@ -9,7 +9,7 @@ import ( // Double node type Double struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Double) GetPosition() *position.Position { return n.Position } -func (n *Double) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Double) GetMeta() []meta.Meta { - return n.Meta +func (n *Double) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/cast/n_cast_int.go b/node/expr/cast/n_cast_int.go index d9247b2..f0ec5ef 100644 --- a/node/expr/cast/n_cast_int.go +++ b/node/expr/cast/n_cast_int.go @@ -9,7 +9,7 @@ import ( // Int node type Int struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Int) GetPosition() *position.Position { return n.Position } -func (n *Int) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Int) GetMeta() []meta.Meta { - return n.Meta +func (n *Int) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/cast/n_cast_object.go b/node/expr/cast/n_cast_object.go index 02de408..35b2136 100644 --- a/node/expr/cast/n_cast_object.go +++ b/node/expr/cast/n_cast_object.go @@ -9,7 +9,7 @@ import ( // Object node type Object struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Object) GetPosition() *position.Position { return n.Position } -func (n *Object) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Object) GetMeta() []meta.Meta { - return n.Meta +func (n *Object) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/cast/n_cast_string.go b/node/expr/cast/n_cast_string.go index e58fb5e..6e51ea6 100644 --- a/node/expr/cast/n_cast_string.go +++ b/node/expr/cast/n_cast_string.go @@ -9,7 +9,7 @@ import ( // String node type String struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *String) GetPosition() *position.Position { return n.Position } -func (n *String) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *String) GetMeta() []meta.Meta { - return n.Meta +func (n *String) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/cast/n_cast_unset.go b/node/expr/cast/n_cast_unset.go index 8e52521..72c7ba6 100644 --- a/node/expr/cast/n_cast_unset.go +++ b/node/expr/cast/n_cast_unset.go @@ -9,7 +9,7 @@ import ( // Unset node type Unset struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Unset) GetPosition() *position.Position { return n.Position } -func (n *Unset) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Unset) GetMeta() []meta.Meta { - return n.Meta +func (n *Unset) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/cast/t_meta_test.go b/node/expr/cast/t_meta_test.go index e2e4dbb..167b0ad 100644 --- a/node/expr/cast/t_meta_test.go +++ b/node/expr/cast/t_meta_test.go @@ -21,12 +21,20 @@ var nodes = []node.Node{ } func TestMeta(t *testing.T) { - expected := []meta.Meta{ - meta.NewComment("//comment\n", nil), - meta.NewWhiteSpace(" ", nil), + expected := &meta.Collection{ + &meta.Data{ + Value: "//comment\n", + Type: meta.CommentType, + Position: nil, + }, + &meta.Data{ + Value: " ", + Type: meta.WhiteSpaceType, + Position: nil, + }, } for _, n := range nodes { - n.AddMeta(expected) + n.GetMeta().Push(*expected...) actual := n.GetMeta() assertEqual(t, expected, actual) } diff --git a/node/expr/n_array.go b/node/expr/n_array.go index 986d070..a407fde 100644 --- a/node/expr/n_array.go +++ b/node/expr/n_array.go @@ -9,7 +9,7 @@ import ( // Array node type Array struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Items []node.Node } @@ -31,12 +31,8 @@ func (n *Array) GetPosition() *position.Position { return n.Position } -func (n *Array) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Array) GetMeta() []meta.Meta { - return n.Meta +func (n *Array) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_array_dim_fetch.go b/node/expr/n_array_dim_fetch.go index 71e9bce..abe104e 100644 --- a/node/expr/n_array_dim_fetch.go +++ b/node/expr/n_array_dim_fetch.go @@ -9,7 +9,7 @@ import ( // ArrayDimFetch node type ArrayDimFetch struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Dim node.Node @@ -33,12 +33,8 @@ func (n *ArrayDimFetch) GetPosition() *position.Position { return n.Position } -func (n *ArrayDimFetch) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ArrayDimFetch) GetMeta() []meta.Meta { - return n.Meta +func (n *ArrayDimFetch) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_array_item.go b/node/expr/n_array_item.go index e41c6e7..6ab5574 100644 --- a/node/expr/n_array_item.go +++ b/node/expr/n_array_item.go @@ -9,7 +9,7 @@ import ( // ArrayItem node type ArrayItem struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Key node.Node Val node.Node @@ -33,12 +33,8 @@ func (n *ArrayItem) GetPosition() *position.Position { return n.Position } -func (n *ArrayItem) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ArrayItem) GetMeta() []meta.Meta { - return n.Meta +func (n *ArrayItem) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_bitwise_not.go b/node/expr/n_bitwise_not.go index 102acbc..62065dc 100644 --- a/node/expr/n_bitwise_not.go +++ b/node/expr/n_bitwise_not.go @@ -9,7 +9,7 @@ import ( // BitwiseNot node type BitwiseNot struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *BitwiseNot) GetPosition() *position.Position { return n.Position } -func (n *BitwiseNot) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *BitwiseNot) GetMeta() []meta.Meta { - return n.Meta +func (n *BitwiseNot) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_boolean_not.go b/node/expr/n_boolean_not.go index 7f688fa..85438dd 100644 --- a/node/expr/n_boolean_not.go +++ b/node/expr/n_boolean_not.go @@ -9,7 +9,7 @@ import ( // BooleanNot node type BooleanNot struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *BooleanNot) GetPosition() *position.Position { return n.Position } -func (n *BooleanNot) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *BooleanNot) GetMeta() []meta.Meta { - return n.Meta +func (n *BooleanNot) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_class_const_fetch.go b/node/expr/n_class_const_fetch.go index 093a3b9..511d6b7 100644 --- a/node/expr/n_class_const_fetch.go +++ b/node/expr/n_class_const_fetch.go @@ -9,7 +9,7 @@ import ( // ClassConstFetch node type ClassConstFetch struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Class node.Node ConstantName node.Node @@ -33,12 +33,8 @@ func (n *ClassConstFetch) GetPosition() *position.Position { return n.Position } -func (n *ClassConstFetch) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ClassConstFetch) GetMeta() []meta.Meta { - return n.Meta +func (n *ClassConstFetch) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_clone.go b/node/expr/n_clone.go index 09a4a1b..79688cc 100644 --- a/node/expr/n_clone.go +++ b/node/expr/n_clone.go @@ -9,7 +9,7 @@ import ( // Clone node type Clone struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Clone) GetPosition() *position.Position { return n.Position } -func (n *Clone) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Clone) GetMeta() []meta.Meta { - return n.Meta +func (n *Clone) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_closure.go b/node/expr/n_closure.go index 57e455e..e863df9 100644 --- a/node/expr/n_closure.go +++ b/node/expr/n_closure.go @@ -9,7 +9,7 @@ import ( // Closure node type Closure struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position ReturnsRef bool Static bool @@ -43,12 +43,8 @@ func (n *Closure) GetPosition() *position.Position { return n.Position } -func (n *Closure) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Closure) GetMeta() []meta.Meta { - return n.Meta +func (n *Closure) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_closure_use.go b/node/expr/n_closure_use.go index d17cbe7..24ab5fc 100644 --- a/node/expr/n_closure_use.go +++ b/node/expr/n_closure_use.go @@ -9,7 +9,7 @@ import ( // ClosureUse node type ClosureUse struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Uses []node.Node } @@ -31,12 +31,8 @@ func (n *ClosureUse) GetPosition() *position.Position { return n.Position } -func (n *ClosureUse) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ClosureUse) GetMeta() []meta.Meta { - return n.Meta +func (n *ClosureUse) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_const_fetch.go b/node/expr/n_const_fetch.go index ef027da..f11ce1d 100644 --- a/node/expr/n_const_fetch.go +++ b/node/expr/n_const_fetch.go @@ -9,7 +9,7 @@ import ( // ConstFetch node type ConstFetch struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Constant node.Node } @@ -31,12 +31,8 @@ func (n *ConstFetch) GetPosition() *position.Position { return n.Position } -func (n *ConstFetch) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ConstFetch) GetMeta() []meta.Meta { - return n.Meta +func (n *ConstFetch) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_empty.go b/node/expr/n_empty.go index a46f25e..47d57f5 100644 --- a/node/expr/n_empty.go +++ b/node/expr/n_empty.go @@ -9,7 +9,7 @@ import ( // Empty node type Empty struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Empty) GetPosition() *position.Position { return n.Position } -func (n *Empty) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Empty) GetMeta() []meta.Meta { - return n.Meta +func (n *Empty) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_error_suppress.go b/node/expr/n_error_suppress.go index 8c61212..35179fc 100644 --- a/node/expr/n_error_suppress.go +++ b/node/expr/n_error_suppress.go @@ -9,7 +9,7 @@ import ( // ErrorSuppress node type ErrorSuppress struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *ErrorSuppress) GetPosition() *position.Position { return n.Position } -func (n *ErrorSuppress) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ErrorSuppress) GetMeta() []meta.Meta { - return n.Meta +func (n *ErrorSuppress) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_eval.go b/node/expr/n_eval.go index 4b6e32c..ee83c72 100644 --- a/node/expr/n_eval.go +++ b/node/expr/n_eval.go @@ -9,7 +9,7 @@ import ( // Eval node type Eval struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Eval) GetPosition() *position.Position { return n.Position } -func (n *Eval) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Eval) GetMeta() []meta.Meta { - return n.Meta +func (n *Eval) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_exit.go b/node/expr/n_exit.go index 721f2f2..c64b123 100644 --- a/node/expr/n_exit.go +++ b/node/expr/n_exit.go @@ -9,7 +9,7 @@ import ( // Exit node type Exit struct { - Meta []meta.Meta + Meta meta.Collection Die bool Position *position.Position Expr node.Node @@ -32,12 +32,8 @@ func (n *Exit) GetPosition() *position.Position { return n.Position } -func (n *Exit) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Exit) GetMeta() []meta.Meta { - return n.Meta +func (n *Exit) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_function_call.go b/node/expr/n_function_call.go index ef12d05..b10d331 100644 --- a/node/expr/n_function_call.go +++ b/node/expr/n_function_call.go @@ -9,7 +9,7 @@ import ( // FunctionCall node type FunctionCall struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Function node.Node ArgumentList *node.ArgumentList @@ -33,12 +33,8 @@ func (n *FunctionCall) GetPosition() *position.Position { return n.Position } -func (n *FunctionCall) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *FunctionCall) GetMeta() []meta.Meta { - return n.Meta +func (n *FunctionCall) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_include.go b/node/expr/n_include.go index ccae9be..0c9f76e 100644 --- a/node/expr/n_include.go +++ b/node/expr/n_include.go @@ -9,7 +9,7 @@ import ( // Include node type Include struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Include) GetPosition() *position.Position { return n.Position } -func (n *Include) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Include) GetMeta() []meta.Meta { - return n.Meta +func (n *Include) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_include_once.go b/node/expr/n_include_once.go index 5e54048..b613453 100644 --- a/node/expr/n_include_once.go +++ b/node/expr/n_include_once.go @@ -9,7 +9,7 @@ import ( // IncludeOnce node type IncludeOnce struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *IncludeOnce) GetPosition() *position.Position { return n.Position } -func (n *IncludeOnce) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *IncludeOnce) GetMeta() []meta.Meta { - return n.Meta +func (n *IncludeOnce) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_instance_of.go b/node/expr/n_instance_of.go index 1e2d6ce..15cd423 100644 --- a/node/expr/n_instance_of.go +++ b/node/expr/n_instance_of.go @@ -9,7 +9,7 @@ import ( // InstanceOf node type InstanceOf struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node Class node.Node @@ -33,12 +33,8 @@ func (n *InstanceOf) GetPosition() *position.Position { return n.Position } -func (n *InstanceOf) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *InstanceOf) GetMeta() []meta.Meta { - return n.Meta +func (n *InstanceOf) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_isset.go b/node/expr/n_isset.go index 6d556b2..c3064e7 100644 --- a/node/expr/n_isset.go +++ b/node/expr/n_isset.go @@ -9,7 +9,7 @@ import ( // Isset node type Isset struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variables []node.Node } @@ -31,12 +31,8 @@ func (n *Isset) GetPosition() *position.Position { return n.Position } -func (n *Isset) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Isset) GetMeta() []meta.Meta { - return n.Meta +func (n *Isset) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_list.go b/node/expr/n_list.go index d1862a3..cd691ef 100644 --- a/node/expr/n_list.go +++ b/node/expr/n_list.go @@ -9,7 +9,7 @@ import ( // List node type List struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Items []node.Node } @@ -31,12 +31,8 @@ func (n *List) GetPosition() *position.Position { return n.Position } -func (n *List) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *List) GetMeta() []meta.Meta { - return n.Meta +func (n *List) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_method_call.go b/node/expr/n_method_call.go index 6cd1b33..12c0284 100644 --- a/node/expr/n_method_call.go +++ b/node/expr/n_method_call.go @@ -9,7 +9,7 @@ import ( // MethodCall node type MethodCall struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Method node.Node @@ -35,12 +35,8 @@ func (n *MethodCall) GetPosition() *position.Position { return n.Position } -func (n *MethodCall) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *MethodCall) GetMeta() []meta.Meta { - return n.Meta +func (n *MethodCall) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_new.go b/node/expr/n_new.go index 3ff14fb..0d7a1d1 100644 --- a/node/expr/n_new.go +++ b/node/expr/n_new.go @@ -9,7 +9,7 @@ import ( // New node type New struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Class node.Node ArgumentList *node.ArgumentList @@ -33,12 +33,8 @@ func (n *New) GetPosition() *position.Position { return n.Position } -func (n *New) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *New) GetMeta() []meta.Meta { - return n.Meta +func (n *New) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_post_dec.go b/node/expr/n_post_dec.go index ef5d0c2..fb8e732 100644 --- a/node/expr/n_post_dec.go +++ b/node/expr/n_post_dec.go @@ -9,7 +9,7 @@ import ( // PostDec node type PostDec struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node } @@ -31,12 +31,8 @@ func (n *PostDec) GetPosition() *position.Position { return n.Position } -func (n *PostDec) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *PostDec) GetMeta() []meta.Meta { - return n.Meta +func (n *PostDec) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_post_inc.go b/node/expr/n_post_inc.go index 2d1e917..eca9350 100644 --- a/node/expr/n_post_inc.go +++ b/node/expr/n_post_inc.go @@ -9,7 +9,7 @@ import ( // PostInc node type PostInc struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node } @@ -31,12 +31,8 @@ func (n *PostInc) GetPosition() *position.Position { return n.Position } -func (n *PostInc) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *PostInc) GetMeta() []meta.Meta { - return n.Meta +func (n *PostInc) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_pre_dec.go b/node/expr/n_pre_dec.go index f5bf0fb..26854dc 100644 --- a/node/expr/n_pre_dec.go +++ b/node/expr/n_pre_dec.go @@ -9,7 +9,7 @@ import ( // PreDec node type PreDec struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node } @@ -31,12 +31,8 @@ func (n *PreDec) GetPosition() *position.Position { return n.Position } -func (n *PreDec) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *PreDec) GetMeta() []meta.Meta { - return n.Meta +func (n *PreDec) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_pre_inc.go b/node/expr/n_pre_inc.go index 8b31e4e..072095b 100644 --- a/node/expr/n_pre_inc.go +++ b/node/expr/n_pre_inc.go @@ -9,7 +9,7 @@ import ( // PreInc node type PreInc struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node } @@ -31,12 +31,8 @@ func (n *PreInc) GetPosition() *position.Position { return n.Position } -func (n *PreInc) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *PreInc) GetMeta() []meta.Meta { - return n.Meta +func (n *PreInc) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_print.go b/node/expr/n_print.go index 52bef36..3cda268 100644 --- a/node/expr/n_print.go +++ b/node/expr/n_print.go @@ -9,7 +9,7 @@ import ( // Print node type Print struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Print) GetPosition() *position.Position { return n.Position } -func (n *Print) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Print) GetMeta() []meta.Meta { - return n.Meta +func (n *Print) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_property_fetch.go b/node/expr/n_property_fetch.go index 4b7f56d..80ef03b 100644 --- a/node/expr/n_property_fetch.go +++ b/node/expr/n_property_fetch.go @@ -9,7 +9,7 @@ import ( // PropertyFetch node type PropertyFetch struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Property node.Node @@ -33,12 +33,8 @@ func (n *PropertyFetch) GetPosition() *position.Position { return n.Position } -func (n *PropertyFetch) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *PropertyFetch) GetMeta() []meta.Meta { - return n.Meta +func (n *PropertyFetch) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_reference.go b/node/expr/n_reference.go index 22f305a..761d113 100644 --- a/node/expr/n_reference.go +++ b/node/expr/n_reference.go @@ -9,7 +9,7 @@ import ( // Reference node type Reference struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node } @@ -31,12 +31,8 @@ func (n *Reference) GetPosition() *position.Position { return n.Position } -func (n *Reference) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Reference) GetMeta() []meta.Meta { - return n.Meta +func (n *Reference) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_require.go b/node/expr/n_require.go index 0a3144e..6252809 100644 --- a/node/expr/n_require.go +++ b/node/expr/n_require.go @@ -9,7 +9,7 @@ import ( // Require node type Require struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Require) GetPosition() *position.Position { return n.Position } -func (n *Require) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Require) GetMeta() []meta.Meta { - return n.Meta +func (n *Require) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_require_once.go b/node/expr/n_require_once.go index 2dc6161..04f2722 100644 --- a/node/expr/n_require_once.go +++ b/node/expr/n_require_once.go @@ -9,7 +9,7 @@ import ( // RequireOnce node type RequireOnce struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *RequireOnce) GetPosition() *position.Position { return n.Position } -func (n *RequireOnce) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *RequireOnce) GetMeta() []meta.Meta { - return n.Meta +func (n *RequireOnce) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_shell_exec.go b/node/expr/n_shell_exec.go index 749a51b..e426c7e 100644 --- a/node/expr/n_shell_exec.go +++ b/node/expr/n_shell_exec.go @@ -9,7 +9,7 @@ import ( // ShellExec node type ShellExec struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Parts []node.Node } @@ -31,12 +31,8 @@ func (n *ShellExec) GetPosition() *position.Position { return n.Position } -func (n *ShellExec) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ShellExec) GetMeta() []meta.Meta { - return n.Meta +func (n *ShellExec) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_short_array.go b/node/expr/n_short_array.go index ab04658..8128cee 100644 --- a/node/expr/n_short_array.go +++ b/node/expr/n_short_array.go @@ -9,7 +9,7 @@ import ( // ShortArray node type ShortArray struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Items []node.Node } @@ -31,12 +31,8 @@ func (n *ShortArray) GetPosition() *position.Position { return n.Position } -func (n *ShortArray) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ShortArray) GetMeta() []meta.Meta { - return n.Meta +func (n *ShortArray) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_short_list.go b/node/expr/n_short_list.go index c2ba2a7..f76c6ac 100644 --- a/node/expr/n_short_list.go +++ b/node/expr/n_short_list.go @@ -9,7 +9,7 @@ import ( // ShortList node type ShortList struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Items []node.Node } @@ -31,12 +31,8 @@ func (n *ShortList) GetPosition() *position.Position { return n.Position } -func (n *ShortList) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ShortList) GetMeta() []meta.Meta { - return n.Meta +func (n *ShortList) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_static_call.go b/node/expr/n_static_call.go index 61ac3ff..cf0c0aa 100644 --- a/node/expr/n_static_call.go +++ b/node/expr/n_static_call.go @@ -9,7 +9,7 @@ import ( // StaticCall node type StaticCall struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Class node.Node Call node.Node @@ -35,12 +35,8 @@ func (n *StaticCall) GetPosition() *position.Position { return n.Position } -func (n *StaticCall) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *StaticCall) GetMeta() []meta.Meta { - return n.Meta +func (n *StaticCall) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_static_property_fetch.go b/node/expr/n_static_property_fetch.go index 58b2b96..351809c 100644 --- a/node/expr/n_static_property_fetch.go +++ b/node/expr/n_static_property_fetch.go @@ -9,7 +9,7 @@ import ( // StaticPropertyFetch node type StaticPropertyFetch struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Class node.Node Property node.Node @@ -33,12 +33,8 @@ func (n *StaticPropertyFetch) GetPosition() *position.Position { return n.Position } -func (n *StaticPropertyFetch) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *StaticPropertyFetch) GetMeta() []meta.Meta { - return n.Meta +func (n *StaticPropertyFetch) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_ternary.go b/node/expr/n_ternary.go index 99bbb50..b9c9b9d 100644 --- a/node/expr/n_ternary.go +++ b/node/expr/n_ternary.go @@ -9,7 +9,7 @@ import ( // Ternary node type Ternary struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Condition node.Node IfTrue node.Node @@ -35,12 +35,8 @@ func (n *Ternary) GetPosition() *position.Position { return n.Position } -func (n *Ternary) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Ternary) GetMeta() []meta.Meta { - return n.Meta +func (n *Ternary) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_unary_minus.go b/node/expr/n_unary_minus.go index aa89cd8..ba5e774 100644 --- a/node/expr/n_unary_minus.go +++ b/node/expr/n_unary_minus.go @@ -9,7 +9,7 @@ import ( // UnaryMinus node type UnaryMinus struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *UnaryMinus) GetPosition() *position.Position { return n.Position } -func (n *UnaryMinus) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *UnaryMinus) GetMeta() []meta.Meta { - return n.Meta +func (n *UnaryMinus) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_unary_plus.go b/node/expr/n_unary_plus.go index 4de08aa..54da742 100644 --- a/node/expr/n_unary_plus.go +++ b/node/expr/n_unary_plus.go @@ -9,7 +9,7 @@ import ( // UnaryPlus node type UnaryPlus struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *UnaryPlus) GetPosition() *position.Position { return n.Position } -func (n *UnaryPlus) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *UnaryPlus) GetMeta() []meta.Meta { - return n.Meta +func (n *UnaryPlus) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_variable.go b/node/expr/n_variable.go index 5b29038..858e736 100644 --- a/node/expr/n_variable.go +++ b/node/expr/n_variable.go @@ -9,9 +9,10 @@ import ( // Variable node type Variable struct { - Meta []meta.Meta - Position *position.Position - VarName node.Node + Meta meta.Collection + StringVar bool + Position *position.Position + VarName node.Node } // NewVariable node constructor @@ -31,17 +32,15 @@ func (n *Variable) GetPosition() *position.Position { return n.Position } -func (n *Variable) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Variable) GetMeta() []meta.Meta { - return n.Meta +func (n *Variable) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map func (n *Variable) Attributes() map[string]interface{} { - return nil + return map[string]interface{}{ + "StringVar": n.StringVar, + } } // SetVarName reset var name diff --git a/node/expr/n_yield.go b/node/expr/n_yield.go index 453b479..fd71f53 100644 --- a/node/expr/n_yield.go +++ b/node/expr/n_yield.go @@ -9,7 +9,7 @@ import ( // Yield node type Yield struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Key node.Node Value node.Node @@ -33,12 +33,8 @@ func (n *Yield) GetPosition() *position.Position { return n.Position } -func (n *Yield) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Yield) GetMeta() []meta.Meta { - return n.Meta +func (n *Yield) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/n_yield_from.go b/node/expr/n_yield_from.go index 561cec1..758de2c 100644 --- a/node/expr/n_yield_from.go +++ b/node/expr/n_yield_from.go @@ -9,7 +9,7 @@ import ( // YieldFrom node type YieldFrom struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *YieldFrom) GetPosition() *position.Position { return n.Position } -func (n *YieldFrom) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *YieldFrom) GetMeta() []meta.Meta { - return n.Meta +func (n *YieldFrom) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/expr/t_meta_test.go b/node/expr/t_meta_test.go index 4c95b99..fd80d3b 100644 --- a/node/expr/t_meta_test.go +++ b/node/expr/t_meta_test.go @@ -56,12 +56,20 @@ var nodes = []node.Node{ } func TestMeta(t *testing.T) { - expected := []meta.Meta{ - meta.NewComment("//comment\n", nil), - meta.NewWhiteSpace(" ", nil), + expected := &meta.Collection{ + &meta.Data{ + Value: "//comment\n", + Type: meta.CommentType, + Position: nil, + }, + &meta.Data{ + Value: " ", + Type: meta.WhiteSpaceType, + Position: nil, + }, } for _, n := range nodes { - n.AddMeta(expected) + n.GetMeta().Push(*expected...) actual := n.GetMeta() assertEqual(t, expected, actual) } diff --git a/node/expr/t_visitor_test.go b/node/expr/t_visitor_test.go index a8bc087..2087c81 100644 --- a/node/expr/t_visitor_test.go +++ b/node/expr/t_visitor_test.go @@ -333,7 +333,9 @@ var nodesToTest = []struct { { &expr.Variable{VarName: &node.Identifier{Value: "a"}}, []string{"VarName"}, - map[string]interface{}{}, + map[string]interface{}{ + "StringVar": false, + }, }, { &expr.YieldFrom{ diff --git a/node/n_argument.go b/node/n_argument.go index 5d42fb4..c88a4d6 100644 --- a/node/n_argument.go +++ b/node/n_argument.go @@ -8,7 +8,7 @@ import ( // Argument node type Argument struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variadic bool // if ... before variable IsReference bool // if & before variable @@ -34,12 +34,8 @@ func (n *Argument) GetPosition() *position.Position { return n.Position } -func (n *Argument) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Argument) GetMeta() []meta.Meta { - return n.Meta +func (n *Argument) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/n_argument_list.go b/node/n_argument_list.go index ef5563f..ecfa40e 100644 --- a/node/n_argument_list.go +++ b/node/n_argument_list.go @@ -8,7 +8,7 @@ import ( // ArgumentList node type ArgumentList struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Arguments []Node } @@ -30,12 +30,8 @@ func (n *ArgumentList) GetPosition() *position.Position { return n.Position } -func (n *ArgumentList) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ArgumentList) GetMeta() []meta.Meta { - return n.Meta +func (n *ArgumentList) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/n_identifier.go b/node/n_identifier.go index 9604465..5d35674 100644 --- a/node/n_identifier.go +++ b/node/n_identifier.go @@ -8,7 +8,7 @@ import ( // Identifier node type Identifier struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Value string } @@ -30,12 +30,8 @@ func (n *Identifier) GetPosition() *position.Position { return n.Position } -func (n *Identifier) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Identifier) GetMeta() []meta.Meta { - return n.Meta +func (n *Identifier) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/n_nullable.go b/node/n_nullable.go index aa1e745..f62a2b5 100644 --- a/node/n_nullable.go +++ b/node/n_nullable.go @@ -8,7 +8,7 @@ import ( // Nullable node type Nullable struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr Node } @@ -30,12 +30,8 @@ func (n *Nullable) GetPosition() *position.Position { return n.Position } -func (n *Nullable) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Nullable) GetMeta() []meta.Meta { - return n.Meta +func (n *Nullable) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/n_parameter.go b/node/n_parameter.go index 6a571e3..e1def7b 100644 --- a/node/n_parameter.go +++ b/node/n_parameter.go @@ -8,7 +8,7 @@ import ( // Parameter node type Parameter struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position ByRef bool Variadic bool @@ -38,12 +38,8 @@ func (n *Parameter) GetPosition() *position.Position { return n.Position } -func (n *Parameter) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Parameter) GetMeta() []meta.Meta { - return n.Meta +func (n *Parameter) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/n_root.go b/node/n_root.go index 1b14629..f95d301 100644 --- a/node/n_root.go +++ b/node/n_root.go @@ -8,7 +8,7 @@ import ( // Root node type Root struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Stmts []Node } @@ -30,12 +30,8 @@ func (n *Root) GetPosition() *position.Position { return n.Position } -func (n *Root) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Root) GetMeta() []meta.Meta { - return n.Meta +func (n *Root) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/name/n_fully_qualified.go b/node/name/n_fully_qualified.go index ca936b9..7f632c8 100644 --- a/node/name/n_fully_qualified.go +++ b/node/name/n_fully_qualified.go @@ -9,7 +9,7 @@ import ( // FullyQualified node type FullyQualified struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Parts []node.Node } @@ -31,12 +31,8 @@ func (n *FullyQualified) GetPosition() *position.Position { return n.Position } -func (n *FullyQualified) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *FullyQualified) GetMeta() []meta.Meta { - return n.Meta +func (n *FullyQualified) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/name/n_name.go b/node/name/n_name.go index d6cc74d..4113c3e 100644 --- a/node/name/n_name.go +++ b/node/name/n_name.go @@ -9,7 +9,7 @@ import ( // Name node type Name struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Parts []node.Node } @@ -31,12 +31,8 @@ func (n *Name) GetPosition() *position.Position { return n.Position } -func (n *Name) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Name) GetMeta() []meta.Meta { - return n.Meta +func (n *Name) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/name/n_name_part.go b/node/name/n_name_part.go index 3074009..9c371f2 100644 --- a/node/name/n_name_part.go +++ b/node/name/n_name_part.go @@ -8,7 +8,7 @@ import ( // NamePart node type NamePart struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Value string } @@ -30,12 +30,8 @@ func (n *NamePart) GetPosition() *position.Position { return n.Position } -func (n *NamePart) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *NamePart) GetMeta() []meta.Meta { - return n.Meta +func (n *NamePart) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/name/n_relative.go b/node/name/n_relative.go index 271110e..561dfb1 100644 --- a/node/name/n_relative.go +++ b/node/name/n_relative.go @@ -9,7 +9,7 @@ import ( // Relative node type Relative struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Parts []node.Node } @@ -31,12 +31,8 @@ func (n *Relative) GetPosition() *position.Position { return n.Position } -func (n *Relative) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Relative) GetMeta() []meta.Meta { - return n.Meta +func (n *Relative) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/name/t_meta_test.go b/node/name/t_meta_test.go index 4b35fe2..3f4cc7a 100644 --- a/node/name/t_meta_test.go +++ b/node/name/t_meta_test.go @@ -18,12 +18,20 @@ var nodes = []node.Node{ } func TestMeta(t *testing.T) { - expected := []meta.Meta{ - meta.NewComment("//comment\n", nil), - meta.NewWhiteSpace(" ", nil), + expected := &meta.Collection{ + &meta.Data{ + Value: "//comment\n", + Type: meta.CommentType, + Position: nil, + }, + &meta.Data{ + Value: " ", + Type: meta.WhiteSpaceType, + Position: nil, + }, } for _, n := range nodes { - n.AddMeta(expected) + n.GetMeta().Push(*expected...) actual := n.GetMeta() assertEqual(t, expected, actual) } diff --git a/node/node.go b/node/node.go index c3c94e1..390374f 100644 --- a/node/node.go +++ b/node/node.go @@ -12,6 +12,5 @@ type Node interface { Attributes() map[string]interface{} // Attributes returns node attributes as map SetPosition(p *position.Position) GetPosition() *position.Position - AddMeta(m []meta.Meta) - GetMeta() []meta.Meta + GetMeta() *meta.Collection } diff --git a/node/scalar/node_dnumber.go b/node/scalar/node_dnumber.go index 06e1946..1368e7f 100644 --- a/node/scalar/node_dnumber.go +++ b/node/scalar/node_dnumber.go @@ -8,7 +8,7 @@ import ( // Dnumber node type Dnumber struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Value string } @@ -30,12 +30,8 @@ func (n *Dnumber) GetPosition() *position.Position { return n.Position } -func (n *Dnumber) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Dnumber) GetMeta() []meta.Meta { - return n.Meta +func (n *Dnumber) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/scalar/node_encapsed.go b/node/scalar/node_encapsed.go index 1a971e5..44c61a1 100644 --- a/node/scalar/node_encapsed.go +++ b/node/scalar/node_encapsed.go @@ -9,7 +9,7 @@ import ( // Encapsed node type Encapsed struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Parts []node.Node } @@ -31,12 +31,8 @@ func (n *Encapsed) GetPosition() *position.Position { return n.Position } -func (n *Encapsed) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Encapsed) GetMeta() []meta.Meta { - return n.Meta +func (n *Encapsed) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/scalar/node_encapsed_string_part.go b/node/scalar/node_encapsed_string_part.go index a0d6ab7..1b30c95 100644 --- a/node/scalar/node_encapsed_string_part.go +++ b/node/scalar/node_encapsed_string_part.go @@ -8,7 +8,7 @@ import ( // EncapsedStringPart node type EncapsedStringPart struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Value string } @@ -30,12 +30,8 @@ func (n *EncapsedStringPart) GetPosition() *position.Position { return n.Position } -func (n *EncapsedStringPart) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *EncapsedStringPart) GetMeta() []meta.Meta { - return n.Meta +func (n *EncapsedStringPart) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/scalar/node_heredoc.go b/node/scalar/node_heredoc.go index 6d49063..205d53d 100644 --- a/node/scalar/node_heredoc.go +++ b/node/scalar/node_heredoc.go @@ -9,7 +9,7 @@ import ( // Heredoc node type Heredoc struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Label string Parts []node.Node @@ -33,12 +33,8 @@ func (n *Heredoc) GetPosition() *position.Position { return n.Position } -func (n *Heredoc) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Heredoc) GetMeta() []meta.Meta { - return n.Meta +func (n *Heredoc) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/scalar/node_lnumber.go b/node/scalar/node_lnumber.go index 96fd4d3..9d82183 100644 --- a/node/scalar/node_lnumber.go +++ b/node/scalar/node_lnumber.go @@ -8,7 +8,7 @@ import ( // Lnumber node type Lnumber struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Value string } @@ -30,12 +30,8 @@ func (n *Lnumber) GetPosition() *position.Position { return n.Position } -func (n *Lnumber) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Lnumber) GetMeta() []meta.Meta { - return n.Meta +func (n *Lnumber) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/scalar/node_magic_constant.go b/node/scalar/node_magic_constant.go index 5edc129..a8f3f94 100644 --- a/node/scalar/node_magic_constant.go +++ b/node/scalar/node_magic_constant.go @@ -8,7 +8,7 @@ import ( // MagicConstant node type MagicConstant struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Value string } @@ -30,12 +30,8 @@ func (n *MagicConstant) GetPosition() *position.Position { return n.Position } -func (n *MagicConstant) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *MagicConstant) GetMeta() []meta.Meta { - return n.Meta +func (n *MagicConstant) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/scalar/node_string.go b/node/scalar/node_string.go index 8692098..6c42b73 100644 --- a/node/scalar/node_string.go +++ b/node/scalar/node_string.go @@ -8,7 +8,7 @@ import ( // String node type String struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Value string } @@ -30,12 +30,8 @@ func (n *String) GetPosition() *position.Position { return n.Position } -func (n *String) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *String) GetMeta() []meta.Meta { - return n.Meta +func (n *String) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/scalar/t_encapsed_test.go b/node/scalar/t_encapsed_test.go index c77cd8d..6669ecf 100644 --- a/node/scalar/t_encapsed_test.go +++ b/node/scalar/t_encapsed_test.go @@ -453,6 +453,7 @@ func TestDollarOpenCurlyBraces(t *testing.T) { StartPos: 10, EndPos: 15, }, + StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, @@ -529,6 +530,7 @@ func TestDollarOpenCurlyBracesDimNumber(t *testing.T) { StartPos: 12, EndPos: 14, }, + StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, diff --git a/node/scalar/t_meta_test.go b/node/scalar/t_meta_test.go index 449db8b..4040547 100644 --- a/node/scalar/t_meta_test.go +++ b/node/scalar/t_meta_test.go @@ -21,12 +21,20 @@ var nodes = []node.Node{ } func TestMeta(t *testing.T) { - expected := []meta.Meta{ - meta.NewComment("//comment\n", nil), - meta.NewWhiteSpace(" ", nil), + expected := &meta.Collection{ + &meta.Data{ + Value: "//comment\n", + Type: meta.CommentType, + Position: nil, + }, + &meta.Data{ + Value: " ", + Type: meta.WhiteSpaceType, + Position: nil, + }, } for _, n := range nodes { - n.AddMeta(expected) + n.GetMeta().Push(*expected...) actual := n.GetMeta() assertEqual(t, expected, actual) } diff --git a/node/stmt/n_alt_else.go b/node/stmt/n_alt_else.go index d3534e7..e9afe4a 100644 --- a/node/stmt/n_alt_else.go +++ b/node/stmt/n_alt_else.go @@ -9,7 +9,7 @@ import ( // AltElse node type AltElse struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Stmt node.Node } @@ -31,12 +31,8 @@ func (n *AltElse) GetPosition() *position.Position { return n.Position } -func (n *AltElse) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *AltElse) GetMeta() []meta.Meta { - return n.Meta +func (n *AltElse) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_alt_else_if.go b/node/stmt/n_alt_else_if.go index e42f4c3..b5b262f 100644 --- a/node/stmt/n_alt_else_if.go +++ b/node/stmt/n_alt_else_if.go @@ -9,7 +9,7 @@ import ( // AltElseIf node type AltElseIf struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Cond node.Node Stmt node.Node @@ -33,12 +33,8 @@ func (n *AltElseIf) GetPosition() *position.Position { return n.Position } -func (n *AltElseIf) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *AltElseIf) GetMeta() []meta.Meta { - return n.Meta +func (n *AltElseIf) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_alt_for.go b/node/stmt/n_alt_for.go index df75b75..55e7468 100644 --- a/node/stmt/n_alt_for.go +++ b/node/stmt/n_alt_for.go @@ -9,7 +9,7 @@ import ( // AltFor node type AltFor struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Init []node.Node Cond []node.Node @@ -37,12 +37,8 @@ func (n *AltFor) GetPosition() *position.Position { return n.Position } -func (n *AltFor) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *AltFor) GetMeta() []meta.Meta { - return n.Meta +func (n *AltFor) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_alt_foreach.go b/node/stmt/n_alt_foreach.go index d953524..fcc5193 100644 --- a/node/stmt/n_alt_foreach.go +++ b/node/stmt/n_alt_foreach.go @@ -9,7 +9,7 @@ import ( // AltForeach node type AltForeach struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node Key node.Node @@ -37,12 +37,8 @@ func (n *AltForeach) GetPosition() *position.Position { return n.Position } -func (n *AltForeach) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *AltForeach) GetMeta() []meta.Meta { - return n.Meta +func (n *AltForeach) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_alt_if.go b/node/stmt/n_alt_if.go index 928bc1b..4bc17f5 100644 --- a/node/stmt/n_alt_if.go +++ b/node/stmt/n_alt_if.go @@ -9,7 +9,7 @@ import ( // AltIf node type AltIf struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Cond node.Node Stmt node.Node @@ -37,12 +37,8 @@ func (n *AltIf) GetPosition() *position.Position { return n.Position } -func (n *AltIf) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *AltIf) GetMeta() []meta.Meta { - return n.Meta +func (n *AltIf) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_alt_switch.go b/node/stmt/n_alt_switch.go index 7156324..028f522 100644 --- a/node/stmt/n_alt_switch.go +++ b/node/stmt/n_alt_switch.go @@ -9,7 +9,7 @@ import ( // AltSwitch node type AltSwitch struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Cond node.Node CaseList *CaseList @@ -33,12 +33,8 @@ func (n *AltSwitch) GetPosition() *position.Position { return n.Position } -func (n *AltSwitch) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *AltSwitch) GetMeta() []meta.Meta { - return n.Meta +func (n *AltSwitch) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_alt_while.go b/node/stmt/n_alt_while.go index 563477c..1727fd9 100644 --- a/node/stmt/n_alt_while.go +++ b/node/stmt/n_alt_while.go @@ -9,7 +9,7 @@ import ( // AltWhile node type AltWhile struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Cond node.Node Stmt node.Node @@ -33,12 +33,8 @@ func (n *AltWhile) GetPosition() *position.Position { return n.Position } -func (n *AltWhile) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *AltWhile) GetMeta() []meta.Meta { - return n.Meta +func (n *AltWhile) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_break.go b/node/stmt/n_break.go index ef0edb0..b2937c5 100644 --- a/node/stmt/n_break.go +++ b/node/stmt/n_break.go @@ -9,7 +9,7 @@ import ( // Break node type Break struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Break) GetPosition() *position.Position { return n.Position } -func (n *Break) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Break) GetMeta() []meta.Meta { - return n.Meta +func (n *Break) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_case.go b/node/stmt/n_case.go index 4e811fe..9c186a0 100644 --- a/node/stmt/n_case.go +++ b/node/stmt/n_case.go @@ -9,7 +9,7 @@ import ( // Case node type Case struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Cond node.Node Stmts []node.Node @@ -33,12 +33,8 @@ func (n *Case) GetPosition() *position.Position { return n.Position } -func (n *Case) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Case) GetMeta() []meta.Meta { - return n.Meta +func (n *Case) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_case_list.go b/node/stmt/n_case_list.go index 11a4db3..7b86545 100644 --- a/node/stmt/n_case_list.go +++ b/node/stmt/n_case_list.go @@ -9,7 +9,7 @@ import ( // CaseList node type CaseList struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Cases []node.Node } @@ -31,12 +31,8 @@ func (n *CaseList) GetPosition() *position.Position { return n.Position } -func (n *CaseList) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *CaseList) GetMeta() []meta.Meta { - return n.Meta +func (n *CaseList) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_catch.go b/node/stmt/n_catch.go index 124660b..6e57e07 100644 --- a/node/stmt/n_catch.go +++ b/node/stmt/n_catch.go @@ -9,7 +9,7 @@ import ( // Catch node type Catch struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Types []node.Node Variable node.Node @@ -35,12 +35,8 @@ func (n *Catch) GetPosition() *position.Position { return n.Position } -func (n *Catch) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Catch) GetMeta() []meta.Meta { - return n.Meta +func (n *Catch) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_class.go b/node/stmt/n_class.go index c47225b..0d3be18 100644 --- a/node/stmt/n_class.go +++ b/node/stmt/n_class.go @@ -9,7 +9,7 @@ import ( // Class node type Class struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position PhpDocComment string ClassName node.Node @@ -43,12 +43,8 @@ func (n *Class) GetPosition() *position.Position { return n.Position } -func (n *Class) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Class) GetMeta() []meta.Meta { - return n.Meta +func (n *Class) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_class_const_list.go b/node/stmt/n_class_const_list.go index 5370239..13215dc 100644 --- a/node/stmt/n_class_const_list.go +++ b/node/stmt/n_class_const_list.go @@ -9,7 +9,7 @@ import ( // ClassConstList node type ClassConstList struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Modifiers []node.Node Consts []node.Node @@ -33,12 +33,8 @@ func (n *ClassConstList) GetPosition() *position.Position { return n.Position } -func (n *ClassConstList) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ClassConstList) GetMeta() []meta.Meta { - return n.Meta +func (n *ClassConstList) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_class_extends.go b/node/stmt/n_class_extends.go index 5400b21..58400fd 100644 --- a/node/stmt/n_class_extends.go +++ b/node/stmt/n_class_extends.go @@ -9,7 +9,7 @@ import ( // ClassExtends node type ClassExtends struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position ClassName node.Node } @@ -31,12 +31,8 @@ func (n *ClassExtends) GetPosition() *position.Position { return n.Position } -func (n *ClassExtends) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ClassExtends) GetMeta() []meta.Meta { - return n.Meta +func (n *ClassExtends) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_class_implements.go b/node/stmt/n_class_implements.go index e47a83f..0251cf0 100644 --- a/node/stmt/n_class_implements.go +++ b/node/stmt/n_class_implements.go @@ -9,7 +9,7 @@ import ( // ClassImplements node type ClassImplements struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position InterfaceNames []node.Node } @@ -31,12 +31,8 @@ func (n *ClassImplements) GetPosition() *position.Position { return n.Position } -func (n *ClassImplements) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ClassImplements) GetMeta() []meta.Meta { - return n.Meta +func (n *ClassImplements) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_class_method.go b/node/stmt/n_class_method.go index 7d849f0..10c25d9 100644 --- a/node/stmt/n_class_method.go +++ b/node/stmt/n_class_method.go @@ -9,7 +9,7 @@ import ( // ClassMethod node type ClassMethod struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position ReturnsRef bool PhpDocComment string @@ -43,12 +43,8 @@ func (n *ClassMethod) GetPosition() *position.Position { return n.Position } -func (n *ClassMethod) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ClassMethod) GetMeta() []meta.Meta { - return n.Meta +func (n *ClassMethod) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_const_list.go b/node/stmt/n_const_list.go index 3a284fe..69282bd 100644 --- a/node/stmt/n_const_list.go +++ b/node/stmt/n_const_list.go @@ -9,7 +9,7 @@ import ( // ConstList node type ConstList struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Consts []node.Node } @@ -31,12 +31,8 @@ func (n *ConstList) GetPosition() *position.Position { return n.Position } -func (n *ConstList) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ConstList) GetMeta() []meta.Meta { - return n.Meta +func (n *ConstList) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_constant.go b/node/stmt/n_constant.go index c544cdc..aa4f49a 100644 --- a/node/stmt/n_constant.go +++ b/node/stmt/n_constant.go @@ -9,7 +9,7 @@ import ( // Constant node type Constant struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position PhpDocComment string ConstantName node.Node @@ -35,12 +35,8 @@ func (n *Constant) GetPosition() *position.Position { return n.Position } -func (n *Constant) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Constant) GetMeta() []meta.Meta { - return n.Meta +func (n *Constant) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_continue.go b/node/stmt/n_continue.go index a155b0f..3db197f 100644 --- a/node/stmt/n_continue.go +++ b/node/stmt/n_continue.go @@ -9,7 +9,7 @@ import ( // Continue node type Continue struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Continue) GetPosition() *position.Position { return n.Position } -func (n *Continue) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Continue) GetMeta() []meta.Meta { - return n.Meta +func (n *Continue) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_declare.go b/node/stmt/n_declare.go index e5a5805..a07a84d 100644 --- a/node/stmt/n_declare.go +++ b/node/stmt/n_declare.go @@ -9,17 +9,19 @@ import ( // Declare node type Declare struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Consts []node.Node Stmt node.Node + Alt bool } // NewDeclare node constructor -func NewDeclare(Consts []node.Node, Stmt node.Node) *Declare { +func NewDeclare(Consts []node.Node, Stmt node.Node, alt bool) *Declare { return &Declare{ Consts: Consts, Stmt: Stmt, + Alt: alt, } } @@ -33,12 +35,8 @@ func (n *Declare) GetPosition() *position.Position { return n.Position } -func (n *Declare) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Declare) GetMeta() []meta.Meta { - return n.Meta +func (n *Declare) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_default.go b/node/stmt/n_default.go index 7197b44..8348b29 100644 --- a/node/stmt/n_default.go +++ b/node/stmt/n_default.go @@ -9,7 +9,7 @@ import ( // Default node type Default struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Stmts []node.Node } @@ -31,12 +31,8 @@ func (n *Default) GetPosition() *position.Position { return n.Position } -func (n *Default) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Default) GetMeta() []meta.Meta { - return n.Meta +func (n *Default) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_do.go b/node/stmt/n_do.go index ebcd3d9..9a946ee 100644 --- a/node/stmt/n_do.go +++ b/node/stmt/n_do.go @@ -9,7 +9,7 @@ import ( // Do node type Do struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Stmt node.Node Cond node.Node @@ -33,12 +33,8 @@ func (n *Do) GetPosition() *position.Position { return n.Position } -func (n *Do) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Do) GetMeta() []meta.Meta { - return n.Meta +func (n *Do) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_echo.go b/node/stmt/n_echo.go index 5770cdc..89bdb26 100644 --- a/node/stmt/n_echo.go +++ b/node/stmt/n_echo.go @@ -9,7 +9,7 @@ import ( // Echo node type Echo struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Exprs []node.Node } @@ -31,12 +31,8 @@ func (n *Echo) GetPosition() *position.Position { return n.Position } -func (n *Echo) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Echo) GetMeta() []meta.Meta { - return n.Meta +func (n *Echo) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_else.go b/node/stmt/n_else.go index 209caa0..b8135b2 100644 --- a/node/stmt/n_else.go +++ b/node/stmt/n_else.go @@ -9,7 +9,7 @@ import ( // Else node type Else struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Stmt node.Node } @@ -31,12 +31,8 @@ func (n *Else) GetPosition() *position.Position { return n.Position } -func (n *Else) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Else) GetMeta() []meta.Meta { - return n.Meta +func (n *Else) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_else_if.go b/node/stmt/n_else_if.go index 504a800..9dc3533 100644 --- a/node/stmt/n_else_if.go +++ b/node/stmt/n_else_if.go @@ -9,7 +9,7 @@ import ( // ElseIf node type ElseIf struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Cond node.Node Stmt node.Node @@ -33,12 +33,8 @@ func (n *ElseIf) GetPosition() *position.Position { return n.Position } -func (n *ElseIf) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *ElseIf) GetMeta() []meta.Meta { - return n.Meta +func (n *ElseIf) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_expression.go b/node/stmt/n_expression.go index 189f8f0..caf05ad 100644 --- a/node/stmt/n_expression.go +++ b/node/stmt/n_expression.go @@ -9,7 +9,7 @@ import ( // Expression node type Expression struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Expression) GetPosition() *position.Position { return n.Position } -func (n *Expression) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Expression) GetMeta() []meta.Meta { - return n.Meta +func (n *Expression) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_finally.go b/node/stmt/n_finally.go index a5e2803..49a7892 100644 --- a/node/stmt/n_finally.go +++ b/node/stmt/n_finally.go @@ -9,7 +9,7 @@ import ( // Finally node type Finally struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Stmts []node.Node } @@ -31,12 +31,8 @@ func (n *Finally) GetPosition() *position.Position { return n.Position } -func (n *Finally) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Finally) GetMeta() []meta.Meta { - return n.Meta +func (n *Finally) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_for.go b/node/stmt/n_for.go index e9c04d9..c3d9b6a 100644 --- a/node/stmt/n_for.go +++ b/node/stmt/n_for.go @@ -9,7 +9,7 @@ import ( // For node type For struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Init []node.Node Cond []node.Node @@ -37,12 +37,8 @@ func (n *For) GetPosition() *position.Position { return n.Position } -func (n *For) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *For) GetMeta() []meta.Meta { - return n.Meta +func (n *For) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_foreach.go b/node/stmt/n_foreach.go index 243618b..1065add 100644 --- a/node/stmt/n_foreach.go +++ b/node/stmt/n_foreach.go @@ -9,7 +9,7 @@ import ( // Foreach node type Foreach struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node Key node.Node @@ -37,12 +37,8 @@ func (n *Foreach) GetPosition() *position.Position { return n.Position } -func (n *Foreach) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Foreach) GetMeta() []meta.Meta { - return n.Meta +func (n *Foreach) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_function.go b/node/stmt/n_function.go index 8138a37..3babf8f 100644 --- a/node/stmt/n_function.go +++ b/node/stmt/n_function.go @@ -9,7 +9,7 @@ import ( // Function node type Function struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position ReturnsRef bool PhpDocComment string @@ -41,12 +41,8 @@ func (n *Function) GetPosition() *position.Position { return n.Position } -func (n *Function) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Function) GetMeta() []meta.Meta { - return n.Meta +func (n *Function) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_global.go b/node/stmt/n_global.go index 61e23a2..2b298a9 100644 --- a/node/stmt/n_global.go +++ b/node/stmt/n_global.go @@ -9,7 +9,7 @@ import ( // Global node type Global struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Vars []node.Node } @@ -31,12 +31,8 @@ func (n *Global) GetPosition() *position.Position { return n.Position } -func (n *Global) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Global) GetMeta() []meta.Meta { - return n.Meta +func (n *Global) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_goto.go b/node/stmt/n_goto.go index b5531ec..4cd6ba2 100644 --- a/node/stmt/n_goto.go +++ b/node/stmt/n_goto.go @@ -9,7 +9,7 @@ import ( // Goto node type Goto struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Label node.Node } @@ -31,12 +31,8 @@ func (n *Goto) GetPosition() *position.Position { return n.Position } -func (n *Goto) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Goto) GetMeta() []meta.Meta { - return n.Meta +func (n *Goto) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_group_use.go b/node/stmt/n_group_use.go index ad857de..565535a 100644 --- a/node/stmt/n_group_use.go +++ b/node/stmt/n_group_use.go @@ -9,7 +9,7 @@ import ( // GroupUse node type GroupUse struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position UseType node.Node Prefix node.Node @@ -35,12 +35,8 @@ func (n *GroupUse) GetPosition() *position.Position { return n.Position } -func (n *GroupUse) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *GroupUse) GetMeta() []meta.Meta { - return n.Meta +func (n *GroupUse) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_halt_compiler.go b/node/stmt/n_halt_compiler.go index 4e13216..001b977 100644 --- a/node/stmt/n_halt_compiler.go +++ b/node/stmt/n_halt_compiler.go @@ -8,7 +8,7 @@ import ( // HaltCompiler node type HaltCompiler struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position } @@ -27,12 +27,8 @@ func (n *HaltCompiler) GetPosition() *position.Position { return n.Position } -func (n *HaltCompiler) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *HaltCompiler) GetMeta() []meta.Meta { - return n.Meta +func (n *HaltCompiler) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_if.go b/node/stmt/n_if.go index b88f4db..67a2e38 100644 --- a/node/stmt/n_if.go +++ b/node/stmt/n_if.go @@ -9,7 +9,7 @@ import ( // If node type If struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Cond node.Node Stmt node.Node @@ -37,12 +37,8 @@ func (n *If) GetPosition() *position.Position { return n.Position } -func (n *If) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *If) GetMeta() []meta.Meta { - return n.Meta +func (n *If) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_inline_html.go b/node/stmt/n_inline_html.go index 0e0d073..3c7fd50 100644 --- a/node/stmt/n_inline_html.go +++ b/node/stmt/n_inline_html.go @@ -8,7 +8,7 @@ import ( // InlineHtml node type InlineHtml struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Value string } @@ -30,12 +30,8 @@ func (n *InlineHtml) GetPosition() *position.Position { return n.Position } -func (n *InlineHtml) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *InlineHtml) GetMeta() []meta.Meta { - return n.Meta +func (n *InlineHtml) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_interface.go b/node/stmt/n_interface.go index 4d69753..5064126 100644 --- a/node/stmt/n_interface.go +++ b/node/stmt/n_interface.go @@ -9,7 +9,7 @@ import ( // Interface node type Interface struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position PhpDocComment string InterfaceName node.Node @@ -37,12 +37,8 @@ func (n *Interface) GetPosition() *position.Position { return n.Position } -func (n *Interface) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Interface) GetMeta() []meta.Meta { - return n.Meta +func (n *Interface) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_interface_extends.go b/node/stmt/n_interface_extends.go index 1e6950f..849c832 100644 --- a/node/stmt/n_interface_extends.go +++ b/node/stmt/n_interface_extends.go @@ -9,7 +9,7 @@ import ( // InterfaceExtends node type InterfaceExtends struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position InterfaceNames []node.Node } @@ -31,12 +31,8 @@ func (n *InterfaceExtends) GetPosition() *position.Position { return n.Position } -func (n *InterfaceExtends) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *InterfaceExtends) GetMeta() []meta.Meta { - return n.Meta +func (n *InterfaceExtends) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_label.go b/node/stmt/n_label.go index 06d850a..1b27d5d 100644 --- a/node/stmt/n_label.go +++ b/node/stmt/n_label.go @@ -9,7 +9,7 @@ import ( // Label node type Label struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position LabelName node.Node } @@ -31,12 +31,8 @@ func (n *Label) GetPosition() *position.Position { return n.Position } -func (n *Label) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Label) GetMeta() []meta.Meta { - return n.Meta +func (n *Label) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_namespace.go b/node/stmt/n_namespace.go index 8680b0c..3d60882 100644 --- a/node/stmt/n_namespace.go +++ b/node/stmt/n_namespace.go @@ -9,7 +9,7 @@ import ( // Namespace node type Namespace struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position NamespaceName node.Node Stmts []node.Node @@ -33,12 +33,8 @@ func (n *Namespace) GetPosition() *position.Position { return n.Position } -func (n *Namespace) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Namespace) GetMeta() []meta.Meta { - return n.Meta +func (n *Namespace) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_nop.go b/node/stmt/n_nop.go index 1b1282c..1f73a7e 100644 --- a/node/stmt/n_nop.go +++ b/node/stmt/n_nop.go @@ -8,7 +8,7 @@ import ( // Nop node type Nop struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position } @@ -27,12 +27,8 @@ func (n *Nop) GetPosition() *position.Position { return n.Position } -func (n *Nop) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Nop) GetMeta() []meta.Meta { - return n.Meta +func (n *Nop) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_property.go b/node/stmt/n_property.go index 0e8d595..1af560d 100644 --- a/node/stmt/n_property.go +++ b/node/stmt/n_property.go @@ -9,7 +9,7 @@ import ( // Property node type Property struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position PhpDocComment string Variable node.Node @@ -35,12 +35,8 @@ func (n *Property) GetPosition() *position.Position { return n.Position } -func (n *Property) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Property) GetMeta() []meta.Meta { - return n.Meta +func (n *Property) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_property_list.go b/node/stmt/n_property_list.go index 0819af5..06b04cf 100644 --- a/node/stmt/n_property_list.go +++ b/node/stmt/n_property_list.go @@ -9,7 +9,7 @@ import ( // PropertyList node type PropertyList struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Modifiers []node.Node Properties []node.Node @@ -33,12 +33,8 @@ func (n *PropertyList) GetPosition() *position.Position { return n.Position } -func (n *PropertyList) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *PropertyList) GetMeta() []meta.Meta { - return n.Meta +func (n *PropertyList) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_return.go b/node/stmt/n_return.go index 8a6fea2..b2781c3 100644 --- a/node/stmt/n_return.go +++ b/node/stmt/n_return.go @@ -9,7 +9,7 @@ import ( // Return node type Return struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Return) GetPosition() *position.Position { return n.Position } -func (n *Return) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Return) GetMeta() []meta.Meta { - return n.Meta +func (n *Return) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_static.go b/node/stmt/n_static.go index f4486af..532aab0 100644 --- a/node/stmt/n_static.go +++ b/node/stmt/n_static.go @@ -9,7 +9,7 @@ import ( // Static node type Static struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Vars []node.Node } @@ -31,12 +31,8 @@ func (n *Static) GetPosition() *position.Position { return n.Position } -func (n *Static) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Static) GetMeta() []meta.Meta { - return n.Meta +func (n *Static) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_static_var.go b/node/stmt/n_static_var.go index 8b25dbd..0e38d7a 100644 --- a/node/stmt/n_static_var.go +++ b/node/stmt/n_static_var.go @@ -9,7 +9,7 @@ import ( // StaticVar node type StaticVar struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Variable node.Node Expr node.Node @@ -33,12 +33,8 @@ func (n *StaticVar) GetPosition() *position.Position { return n.Position } -func (n *StaticVar) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *StaticVar) GetMeta() []meta.Meta { - return n.Meta +func (n *StaticVar) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_stmt_list.go b/node/stmt/n_stmt_list.go index 929765c..31f8371 100644 --- a/node/stmt/n_stmt_list.go +++ b/node/stmt/n_stmt_list.go @@ -9,7 +9,7 @@ import ( // StmtList node type StmtList struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Stmts []node.Node } @@ -31,12 +31,8 @@ func (n *StmtList) GetPosition() *position.Position { return n.Position } -func (n *StmtList) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *StmtList) GetMeta() []meta.Meta { - return n.Meta +func (n *StmtList) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_switch.go b/node/stmt/n_switch.go index 7db1b82..ce58b16 100644 --- a/node/stmt/n_switch.go +++ b/node/stmt/n_switch.go @@ -9,7 +9,7 @@ import ( // Switch node type Switch struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Cond node.Node CaseList *CaseList @@ -33,12 +33,8 @@ func (n *Switch) GetPosition() *position.Position { return n.Position } -func (n *Switch) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Switch) GetMeta() []meta.Meta { - return n.Meta +func (n *Switch) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_throw.go b/node/stmt/n_throw.go index bc80c84..747fff0 100644 --- a/node/stmt/n_throw.go +++ b/node/stmt/n_throw.go @@ -9,7 +9,7 @@ import ( // Throw node type Throw struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Expr node.Node } @@ -31,12 +31,8 @@ func (n *Throw) GetPosition() *position.Position { return n.Position } -func (n *Throw) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Throw) GetMeta() []meta.Meta { - return n.Meta +func (n *Throw) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_trait.go b/node/stmt/n_trait.go index 9b54109..b9c621a 100644 --- a/node/stmt/n_trait.go +++ b/node/stmt/n_trait.go @@ -9,7 +9,7 @@ import ( // Trait node type Trait struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position PhpDocComment string TraitName node.Node @@ -35,12 +35,8 @@ func (n *Trait) GetPosition() *position.Position { return n.Position } -func (n *Trait) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Trait) GetMeta() []meta.Meta { - return n.Meta +func (n *Trait) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_trait_adaptation_list.go b/node/stmt/n_trait_adaptation_list.go index 0624c72..95db99a 100644 --- a/node/stmt/n_trait_adaptation_list.go +++ b/node/stmt/n_trait_adaptation_list.go @@ -9,7 +9,7 @@ import ( // TraitAdaptationList node type TraitAdaptationList struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Adaptations []node.Node } @@ -31,12 +31,8 @@ func (n *TraitAdaptationList) GetPosition() *position.Position { return n.Position } -func (n *TraitAdaptationList) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *TraitAdaptationList) GetMeta() []meta.Meta { - return n.Meta +func (n *TraitAdaptationList) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_trait_method_ref.go b/node/stmt/n_trait_method_ref.go index 7f90bbb..cb31e95 100644 --- a/node/stmt/n_trait_method_ref.go +++ b/node/stmt/n_trait_method_ref.go @@ -9,7 +9,7 @@ import ( // TraitMethodRef node type TraitMethodRef struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Trait node.Node Method node.Node @@ -33,12 +33,8 @@ func (n *TraitMethodRef) GetPosition() *position.Position { return n.Position } -func (n *TraitMethodRef) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *TraitMethodRef) GetMeta() []meta.Meta { - return n.Meta +func (n *TraitMethodRef) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_trait_use.go b/node/stmt/n_trait_use.go index b8c454f..7ae9775 100644 --- a/node/stmt/n_trait_use.go +++ b/node/stmt/n_trait_use.go @@ -9,7 +9,7 @@ import ( // TraitUse node type TraitUse struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Traits []node.Node TraitAdaptationList node.Node @@ -33,12 +33,8 @@ func (n *TraitUse) GetPosition() *position.Position { return n.Position } -func (n *TraitUse) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *TraitUse) GetMeta() []meta.Meta { - return n.Meta +func (n *TraitUse) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_trait_use_alias.go b/node/stmt/n_trait_use_alias.go index 0b23a20..cbe2dd3 100644 --- a/node/stmt/n_trait_use_alias.go +++ b/node/stmt/n_trait_use_alias.go @@ -9,7 +9,7 @@ import ( // TraitUseAlias node type TraitUseAlias struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Ref node.Node Modifier node.Node @@ -35,12 +35,8 @@ func (n *TraitUseAlias) GetPosition() *position.Position { return n.Position } -func (n *TraitUseAlias) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *TraitUseAlias) GetMeta() []meta.Meta { - return n.Meta +func (n *TraitUseAlias) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_trait_use_precedence.go b/node/stmt/n_trait_use_precedence.go index c6ae475..ff6e244 100644 --- a/node/stmt/n_trait_use_precedence.go +++ b/node/stmt/n_trait_use_precedence.go @@ -9,7 +9,7 @@ import ( // TraitUsePrecedence node type TraitUsePrecedence struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Ref node.Node Insteadof []node.Node @@ -33,12 +33,8 @@ func (n *TraitUsePrecedence) GetPosition() *position.Position { return n.Position } -func (n *TraitUsePrecedence) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *TraitUsePrecedence) GetMeta() []meta.Meta { - return n.Meta +func (n *TraitUsePrecedence) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_try.go b/node/stmt/n_try.go index 6a93cb3..8755892 100644 --- a/node/stmt/n_try.go +++ b/node/stmt/n_try.go @@ -9,7 +9,7 @@ import ( // Try node type Try struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Stmts []node.Node Catches []node.Node @@ -35,12 +35,8 @@ func (n *Try) GetPosition() *position.Position { return n.Position } -func (n *Try) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Try) GetMeta() []meta.Meta { - return n.Meta +func (n *Try) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_unset.go b/node/stmt/n_unset.go index d787066..7704dab 100644 --- a/node/stmt/n_unset.go +++ b/node/stmt/n_unset.go @@ -9,7 +9,7 @@ import ( // Unset node type Unset struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Vars []node.Node } @@ -31,12 +31,8 @@ func (n *Unset) GetPosition() *position.Position { return n.Position } -func (n *Unset) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Unset) GetMeta() []meta.Meta { - return n.Meta +func (n *Unset) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_use.go b/node/stmt/n_use.go index e5fb6f3..62d9b8e 100644 --- a/node/stmt/n_use.go +++ b/node/stmt/n_use.go @@ -9,7 +9,7 @@ import ( // Use node type Use struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position UseType node.Node Use node.Node @@ -35,12 +35,8 @@ func (n *Use) GetPosition() *position.Position { return n.Position } -func (n *Use) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *Use) GetMeta() []meta.Meta { - return n.Meta +func (n *Use) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_use_list.go b/node/stmt/n_use_list.go index 09ef434..989173a 100644 --- a/node/stmt/n_use_list.go +++ b/node/stmt/n_use_list.go @@ -9,7 +9,7 @@ import ( // UseList node type UseList struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position UseType node.Node Uses []node.Node @@ -33,12 +33,8 @@ func (n *UseList) GetPosition() *position.Position { return n.Position } -func (n *UseList) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *UseList) GetMeta() []meta.Meta { - return n.Meta +func (n *UseList) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/n_while.go b/node/stmt/n_while.go index 897425b..00702b8 100644 --- a/node/stmt/n_while.go +++ b/node/stmt/n_while.go @@ -9,7 +9,7 @@ import ( // While node type While struct { - Meta []meta.Meta + Meta meta.Collection Position *position.Position Cond node.Node Stmt node.Node @@ -33,12 +33,8 @@ func (n *While) GetPosition() *position.Position { return n.Position } -func (n *While) AddMeta(m []meta.Meta) { - n.Meta = append(n.Meta, m...) -} - -func (n *While) GetMeta() []meta.Meta { - return n.Meta +func (n *While) GetMeta() *meta.Collection { + return &n.Meta } // Attributes returns node attributes as map diff --git a/node/stmt/t_alt_if_test.go b/node/stmt/t_alt_if_test.go index 03ffff3..d70bd0c 100644 --- a/node/stmt/t_alt_if_test.go +++ b/node/stmt/t_alt_if_test.go @@ -5,6 +5,8 @@ import ( "reflect" "testing" + "github.com/davecgh/go-spew/spew" + "github.com/z7zmey/php-parser/node/expr" "github.com/z7zmey/php-parser/position" @@ -23,6 +25,7 @@ func assertEqual(t *testing.T, expected interface{}, actual interface{}) { t.Errorf("diff: (-expected +actual)\n%s", diff) } else { t.Errorf("expected and actual are not equal\nexpectd: %+v\nactual: %+v\n", expected, actual) + t.Log(spew.Sdump(expected, actual)) } } diff --git a/node/stmt/t_declare_test.go b/node/stmt/t_declare_test.go index a4348f5..4266b69 100644 --- a/node/stmt/t_declare_test.go +++ b/node/stmt/t_declare_test.go @@ -230,13 +230,14 @@ func TestAltDeclare(t *testing.T) { }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 20, - EndPos: 32, + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, }, Stmts: []node.Node{}, }, + Alt: true, }, }, } diff --git a/node/stmt/t_meta_test.go b/node/stmt/t_meta_test.go index 6c0562d..a0b1bbc 100644 --- a/node/stmt/t_meta_test.go +++ b/node/stmt/t_meta_test.go @@ -74,12 +74,20 @@ var nodes = []node.Node{ } func TestMeta(t *testing.T) { - expected := []meta.Meta{ - meta.NewComment("//comment\n", nil), - meta.NewWhiteSpace(" ", nil), + expected := &meta.Collection{ + &meta.Data{ + Value: "//comment\n", + Type: meta.CommentType, + Position: nil, + }, + &meta.Data{ + Value: " ", + Type: meta.WhiteSpaceType, + Position: nil, + }, } for _, n := range nodes { - n.AddMeta(expected) + n.GetMeta().Push(*expected...) actual := n.GetMeta() assertEqual(t, expected, actual) } diff --git a/node/t_meta_test.go b/node/t_meta_test.go index 819693f..56e73eb 100644 --- a/node/t_meta_test.go +++ b/node/t_meta_test.go @@ -18,12 +18,20 @@ var nodes = []node.Node{ } func TestMeta(t *testing.T) { - expected := []meta.Meta{ - meta.NewComment("//comment\n", nil), - meta.NewWhiteSpace(" ", nil), + expected := &meta.Collection{ + &meta.Data{ + Value: "//comment\n", + Type: meta.CommentType, + Position: nil, + }, + &meta.Data{ + Value: " ", + Type: meta.WhiteSpaceType, + Position: nil, + }, } for _, n := range nodes { - n.AddMeta(expected) + n.GetMeta().Push(*expected...) actual := n.GetMeta() assertEqual(t, expected, actual) } diff --git a/php5/parser.go b/php5/parser.go index ee887f8..16596c2 100644 --- a/php5/parser.go +++ b/php5/parser.go @@ -65,7 +65,7 @@ func (l *Parser) Parse() int { return yyParse(l) } -func (l *Parser) listGetFirstNodeMeta(list []node.Node) []meta.Meta { +func (l *Parser) listGetFirstNodeMeta(list []node.Node) *meta.Collection { if len(list) == 0 { return nil } @@ -107,12 +107,34 @@ func isDollar(r rune) bool { return r == '$' } -func addMeta(n node.Node, mm []meta.Meta, tn meta.TokenName) { - for _, m := range mm { - m.SetTokenName(tn) +func (l *Parser) appendMetaToken(n node.Node, t *scanner.Token, tn meta.TokenName) { + if !l.Lexer.WithMeta { + return } - n.AddMeta(mm) + m := &meta.Data{ + Value: t.Value, + Type: meta.TokenType, + Position: l.positionBuilder.NewTokenPosition(t), + TokenName: tn, + } + + n.GetMeta().Push(m) +} + +func (l *Parser) prependMetaToken(n node.Node, t *scanner.Token, tn meta.TokenName) { + if !l.Lexer.WithMeta { + return + } + + m := &meta.Data{ + Value: t.Value, + Type: meta.TokenType, + Position: l.positionBuilder.NewTokenPosition(t), + TokenName: tn, + } + + n.GetMeta().Unshift(m) } func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { diff --git a/php5/php5.go b/php5/php5.go index ec7b0b3..eae36b4 100644 --- a/php5/php5.go +++ b/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php5/php5.y:6803 +//line php5/php5.y:6965 type simpleIndirectReference struct { all []*expr.Variable last *expr.Variable @@ -2333,7 +2333,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) if yylex.(*Parser).currentToken.Value == "\xff" { - addMeta(yylex.(*Parser).rootNode, yylex.(*Parser).currentToken.Meta, meta.NodeEnd) + yylex.(*Parser).currentToken.Meta.SetTokenName(meta.NodeEnd).AppendTo(yylex.(*Parser).rootNode.GetMeta()) } } case 2: @@ -2365,7 +2365,7 @@ yydefault: namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(namePart, yyDollar[1].token.Meta, meta.StringToken) + yyDollar[1].token.Meta.SetTokenName(meta.StringToken).AppendTo(namePart.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2380,8 +2380,8 @@ yydefault: namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NsSeparatorToken) - addMeta(namePart, yyDollar[3].token.Meta, meta.StringToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.StringToken).AppendTo(namePart.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2428,10 +2428,11 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.HaltCompilerToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.HaltCompilerToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2439,7 +2440,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:384 + //line php5/php5.y:385 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2449,14 +2450,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 12: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:399 + //line php5/php5.y:401 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2466,15 +2468,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 13: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:415 + //line php5/php5.y:417 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2482,15 +2484,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 14: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:429 + //line php5/php5.y:431 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2498,14 +2500,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UseToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 15: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:442 + //line php5/php5.y:445 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2515,15 +2518,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UseToken) - addMeta(useType, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(useType.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 16: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:458 + //line php5/php5.y:462 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2533,15 +2537,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UseToken) - addMeta(useType, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(useType.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 17: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:474 + //line php5/php5.y:479 { yyVAL.node = yyDollar[1].node @@ -2549,24 +2554,25 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 18: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:489 + //line php5/php5.y:495 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:498 + //line php5/php5.y:504 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2574,7 +2580,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:507 + //line php5/php5.y:513 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2587,7 +2593,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:518 + //line php5/php5.y:524 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2599,14 +2605,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 22: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:535 + //line php5/php5.y:541 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2616,13 +2622,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UseLeadingNsSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:549 + //line php5/php5.y:556 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2634,26 +2641,27 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[4].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UseLeadingNsSeparatorToken) + yyDollar[3].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 24: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:570 + //line php5/php5.y:578 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:579 + //line php5/php5.y:587 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2661,7 +2669,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:588 + //line php5/php5.y:596 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2674,7 +2682,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:599 + //line php5/php5.y:607 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2686,14 +2694,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 28: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:616 + //line php5/php5.y:624 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2703,13 +2711,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UseLeadingNsSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 29: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:630 + //line php5/php5.y:639 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2721,26 +2730,27 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[4].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UseLeadingNsSeparatorToken) + yyDollar[3].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:651 + //line php5/php5.y:661 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:660 + //line php5/php5.y:670 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2748,7 +2758,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:669 + //line php5/php5.y:679 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2761,7 +2771,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:680 + //line php5/php5.y:690 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2773,14 +2783,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 34: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:697 + //line php5/php5.y:707 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2790,13 +2800,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UseLeadingNsSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 35: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:711 + //line php5/php5.y:722 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2808,19 +2819,21 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[4].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UseLeadingNsSeparatorToken) + yyDollar[3].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 36: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:732 + //line php5/php5.y:744 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") constList := yyDollar[1].node.(*stmt.ConstList) + lastConst := lastNode(constList.Consts) constList.Consts = append(constList.Consts, constant) yyVAL.node = yyDollar[1].node @@ -2830,15 +2843,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts)) // save comments - addMeta(lastNode(constList.Consts), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(name, yyDollar[3].token.Meta, meta.IdentifierToken) - addMeta(constant, yyDollar[4].token.Meta, meta.EqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastConst.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 37: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:752 + //line php5/php5.y:765 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -2851,15 +2864,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, constList)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ConstToken) - addMeta(name, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(constant, yyDollar[3].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.ConstToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 38: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:774 + //line php5/php5.y:787 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2869,7 +2882,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:782 + //line php5/php5.y:795 { yyVAL.list = []node.Node{} @@ -2877,7 +2890,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:792 + //line php5/php5.y:805 { // error yyVAL.node = nil @@ -2886,7 +2899,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:799 + //line php5/php5.y:812 { yyVAL.node = yyDollar[1].node @@ -2894,7 +2907,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:805 + //line php5/php5.y:818 { yyVAL.node = yyDollar[1].node @@ -2902,7 +2915,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:811 + //line php5/php5.y:824 { yyVAL.node = yyDollar[1].node @@ -2910,7 +2923,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:817 + //line php5/php5.y:830 { yyVAL.node = stmt.NewHaltCompiler() @@ -2918,16 +2931,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.HaltCompilerToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.HaltCompilerToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:836 + //line php5/php5.y:850 { yyVAL.node = yyDollar[1].node @@ -2935,7 +2949,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:842 + //line php5/php5.y:856 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -2945,14 +2959,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(label, yyDollar[1].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(label.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 47: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:860 + //line php5/php5.y:874 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -2960,14 +2974,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 48: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:873 + //line php5/php5.y:887 { yyVAL.node = stmt.NewIf(yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node) @@ -2981,13 +2995,15 @@ yydefault: } // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IfToken) + yyDollar[1].token.Meta.SetTokenName(meta.IfToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].node.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].node.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 49: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:891 + //line php5/php5.y:907 { stmts := stmt.NewStmtList(yyDollar[4].list) yyVAL.node = stmt.NewAltIf(yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node) @@ -2997,16 +3013,19 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IfToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.EndifToken) - addMeta(yyVAL.node, yyDollar[8].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.IfToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].node.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].node.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[7].token.Meta.SetTokenName(meta.EndifToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[8].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[8].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 50: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:908 + //line php5/php5.y:927 { switch n := yyDollar[3].node.(type) { case *stmt.While: @@ -3021,13 +3040,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.WhileToken) + yyDollar[1].token.Meta.SetTokenName(meta.WhileToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].node.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].node.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 51: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:927 + //line php5/php5.y:948 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) @@ -3035,15 +3056,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DoToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.WhileToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.DoToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.WhileToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].node.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].node.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(yyVAL.node.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[5].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 52: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:941 + //line php5/php5.y:965 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3062,17 +3086,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ForToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.ForInitSemicolonToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.ForCondSemicolonToken) - addMeta(yyVAL.node, yyDollar[8].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ForToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.ForInitSemicolonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.ForCondSemicolonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[8].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 53: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:968 + //line php5/php5.y:992 { switch n := yyDollar[3].node.(type) { case *stmt.Switch: @@ -3089,13 +3113,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.SwitchToken) + yyDollar[1].token.Meta.SetTokenName(meta.SwitchToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].node.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].node.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:989 + //line php5/php5.y:1015 { yyVAL.node = stmt.NewBreak(nil) @@ -3103,14 +3129,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.BreakToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.BreakToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 55: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1002 + //line php5/php5.y:1029 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3118,14 +3145,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.BreakToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.BreakToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1015 + //line php5/php5.y:1043 { yyVAL.node = stmt.NewContinue(nil) @@ -3133,14 +3161,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ContinueToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ContinueToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 57: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1028 + //line php5/php5.y:1057 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3148,14 +3177,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ContinueToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ContinueToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 58: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1041 + //line php5/php5.y:1071 { yyVAL.node = stmt.NewReturn(nil) @@ -3163,14 +3193,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ReturnToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ReturnToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 59: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1054 + //line php5/php5.y:1085 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3178,14 +3209,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ReturnToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ReturnToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 60: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1067 + //line php5/php5.y:1099 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3193,14 +3225,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ReturnToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ReturnToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1080 + //line php5/php5.y:1113 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3208,13 +3241,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 62: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1092 + //line php5/php5.y:1126 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3222,14 +3256,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.GlobalToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.GlobalToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 63: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1105 + //line php5/php5.y:1140 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3237,14 +3272,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StaticToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.StaticToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 64: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1118 + //line php5/php5.y:1154 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3252,14 +3288,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.EchoToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.EchoToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.EchoToken) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1131 + //line php5/php5.y:1169 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3267,13 +3305,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.InlineHTMLToken) + yyDollar[1].token.Meta.SetTokenName(meta.InlineHTMLToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 66: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1143 + //line php5/php5.y:1181 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3281,13 +3319,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1155 + //line php5/php5.y:1194 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3295,16 +3334,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UnsetToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.UnsetToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[5].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 68: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1170 + //line php5/php5.y:1210 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3334,16 +3374,19 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ForeachToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.AsToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ForeachToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + if yyDollar[6].node != nil { + yyDollar[6].node.GetMeta().Cut(meta.TokenNameFilter(meta.DoubleArrowToken)).AppendTo(yyVAL.node.GetMeta()) + } + yyDollar[7].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 69: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1207 + //line php5/php5.y:1250 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3373,32 +3416,36 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ForeachToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.AsToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ForeachToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + if yyDollar[6].node != nil { + yyDollar[6].node.GetMeta().Cut(meta.TokenNameFilter(meta.DoubleArrowToken)).AppendTo(yyVAL.node.GetMeta()) + } + yyDollar[7].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 70: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1244 + //line php5/php5.y:1290 { - yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) + yyVAL.node = yyDollar[5].node + yyVAL.node.(*stmt.Declare).Consts = yyDollar[3].list // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DeclareToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.DeclareToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1258 + //line php5/php5.y:1305 { yyVAL.node = stmt.NewNop() @@ -3406,13 +3453,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 72: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1270 + //line php5/php5.y:1318 { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3424,15 +3472,15 @@ yydefault: } // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.TryToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.TryToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1288 + //line php5/php5.y:1336 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3440,14 +3488,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ThrowToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ThrowToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1301 + //line php5/php5.y:1350 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3457,15 +3506,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.GotoToken) - addMeta(label, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.GotoToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(label.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 75: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1320 + //line php5/php5.y:1370 { yyVAL.list = []node.Node{} @@ -3473,7 +3523,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1326 + //line php5/php5.y:1376 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3486,18 +3536,18 @@ yydefault: catch.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments - addMeta(catch, yyDollar[1].token.Meta, meta.CatchToken) - addMeta(catch, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(variable, yyDollar[4].token.Meta, meta.VariableToken) - addMeta(catch, yyDollar[5].token.Meta, meta.CloseParenthesisToken) - addMeta(catch, yyDollar[6].token.Meta, meta.OpenCurlyBracesToken) - addMeta(catch, yyDollar[8].token.Meta, meta.CloseCurlyBracesToken) + 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()) + 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()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1351 + //line php5/php5.y:1401 { yyVAL.node = nil @@ -3505,7 +3555,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1357 + //line php5/php5.y:1407 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3513,15 +3563,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.FinallyToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.FinallyToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1374 + //line php5/php5.y:1424 { yyVAL.list = yyDollar[1].list @@ -3529,7 +3579,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1380 + //line php5/php5.y:1430 { yyVAL.list = []node.Node{} @@ -3537,7 +3587,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1389 + //line php5/php5.y:1439 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3545,7 +3595,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1395 + //line php5/php5.y:1445 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3553,7 +3603,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1404 + //line php5/php5.y:1454 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3565,18 +3615,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.CatchToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(variable, yyDollar[4].token.Meta, meta.VariableToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[8].token.Meta, meta.CloseCurlyBracesToken) + 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()) + 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()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1428 + //line php5/php5.y:1478 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3584,18 +3634,18 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1434 + //line php5/php5.y:1484 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1446 + //line php5/php5.y:1496 { yyVAL.node = yyDollar[1].node @@ -3603,7 +3653,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1455 + //line php5/php5.y:1505 { yyVAL.node = yyDollar[1].node @@ -3611,7 +3661,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1464 + //line php5/php5.y:1514 { yyVAL.node = yyDollar[1].node @@ -3619,31 +3669,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1473 + //line php5/php5.y:1523 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1477 + //line php5/php5.y:1527 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1484 + //line php5/php5.y:1534 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1488 + //line php5/php5.y:1538 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1495 + //line php5/php5.y:1545 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[5].list, nil, yyDollar[8].list, "") @@ -3653,21 +3703,21 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.FunctionToken) + yyDollar[1].token.Meta.SetTokenName(meta.FunctionToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[2].token != nil { - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(name, yyDollar[3].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[9].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[7].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[9].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 94: yyDollar = yyS[yypt-7 : yypt+1] - //line php5/php5.y:1520 + //line php5/php5.y:1570 { name := node.NewIdentifier(yyDollar[2].token.Value) switch n := yyDollar[1].node.(type) { @@ -3689,15 +3739,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token)) // save comments - addMeta(name, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[7].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 95: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1548 + //line php5/php5.y:1598 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[5].list, "") @@ -3707,15 +3757,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments - addMeta(name, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.InterfaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1568 + //line php5/php5.y:1619 { yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") @@ -3723,13 +3774,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ClassToken) + yyDollar[1].token.Meta.SetTokenName(meta.ClassToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1580 + //line php5/php5.y:1631 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3739,14 +3790,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(classModifier, yyDollar[1].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ClassToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(classModifier.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.ClassToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1595 + //line php5/php5.y:1646 { yyVAL.node = stmt.NewTrait(nil, nil, "") @@ -3754,13 +3805,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.TraitToken) + yyDollar[1].token.Meta.SetTokenName(meta.TraitToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1607 + //line php5/php5.y:1658 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3770,14 +3821,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(classModifier, yyDollar[1].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ClassToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(classModifier.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.ClassToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 100: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1625 + //line php5/php5.y:1676 { yyVAL.ClassExtends = nil @@ -3785,7 +3836,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1631 + //line php5/php5.y:1682 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3793,19 +3844,19 @@ yydefault: yyVAL.ClassExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.ClassExtends, yyDollar[1].token.Meta, meta.ExtendsToken) + yyDollar[1].token.Meta.SetTokenName(meta.ExtendsToken).AppendTo(yyVAL.ClassExtends.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1646 + //line php5/php5.y:1697 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1653 + //line php5/php5.y:1704 { yyVAL.InterfaceExtends = nil @@ -3813,7 +3864,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1659 + //line php5/php5.y:1710 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3821,13 +3872,13 @@ yydefault: yyVAL.InterfaceExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments - addMeta(yyVAL.InterfaceExtends, yyDollar[1].token.Meta, meta.ExtendsToken) + yyDollar[1].token.Meta.SetTokenName(meta.ExtendsToken).AppendTo(yyVAL.InterfaceExtends.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 105: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1674 + //line php5/php5.y:1725 { yyVAL.ClassImplements = nil @@ -3835,7 +3886,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1680 + //line php5/php5.y:1731 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3843,13 +3894,13 @@ yydefault: yyVAL.ClassImplements.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments - addMeta(yyVAL.ClassImplements, yyDollar[1].token.Meta, meta.ImplementsToken) + yyDollar[1].token.Meta.SetTokenName(meta.ImplementsToken).AppendTo(yyVAL.ClassImplements.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1695 + //line php5/php5.y:1746 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3857,18 +3908,18 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1701 + //line php5/php5.y:1752 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 109: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1713 + //line php5/php5.y:1764 { yyVAL.node = nil @@ -3876,18 +3927,18 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1719 + //line php5/php5.y:1770 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DoubleArrowToken) + yyDollar[1].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1731 + //line php5/php5.y:1782 { yyVAL.node = yyDollar[1].node @@ -3895,7 +3946,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1737 + //line php5/php5.y:1788 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -3903,13 +3954,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.AmpersandToken) + yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 113: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1749 + //line php5/php5.y:1800 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -3917,15 +3968,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ListToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ListToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1766 + //line php5/php5.y:1817 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -3936,7 +3987,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1775 + //line php5/php5.y:1826 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -3946,15 +3997,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EndforToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EndforToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1794 + //line php5/php5.y:1846 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -3965,7 +4017,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1803 + //line php5/php5.y:1855 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -3975,39 +4027,46 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EndforeachToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EndforeachToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1823 + //line php5/php5.y:1876 { - yyVAL.node = yyDollar[1].node + yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 119: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1829 + //line php5/php5.y:1885 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list) + stmtList := stmt.NewStmtList(yyDollar[2].list) + yyVAL.node = stmt.NewDeclare(nil, stmtList, true) // save position + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EnddeclareToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EnddeclareToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1847 + //line php5/php5.y:1906 { name := node.NewIdentifier(yyDollar[1].token.Value) constant := stmt.NewConstant(name, yyDollar[3].node, "") @@ -4018,14 +4077,14 @@ yydefault: constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(name, yyDollar[1].token.Meta, meta.IdentifierToken) - addMeta(constant, yyDollar[2].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 121: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1863 + //line php5/php5.y:1922 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -4036,15 +4095,15 @@ yydefault: constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(name, yyDollar[3].token.Meta, meta.IdentifierToken) - addMeta(constant, yyDollar[4].token.Meta, meta.EqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1884 + //line php5/php5.y:1943 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4054,14 +4113,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(caseList, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(caseList, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(caseList.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(caseList.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1899 + //line php5/php5.y:1958 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4071,15 +4130,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(caseList, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(caseList, yyDollar[2].token.Meta, meta.SemiColonToken) - addMeta(caseList, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(caseList.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(caseList.GetMeta()) + yylex.(*Parser).appendMetaToken(caseList, yyDollar[2].token, meta.CaseSeparatorToken) + yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(caseList.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1915 + //line php5/php5.y:1975 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4089,15 +4149,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EndswitchToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EndswitchToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1931 + //line php5/php5.y:1992 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4108,16 +4169,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SwitchSemicolonToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.EndswitchToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(caseList.GetMeta()) + yylex.(*Parser).appendMetaToken(caseList, yyDollar[2].token, meta.CaseSeparatorToken) + yyDollar[4].token.Meta.SetTokenName(meta.EndswitchToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[5].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 126: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1953 + //line php5/php5.y:2016 { yyVAL.list = []node.Node{} @@ -4125,7 +4188,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1959 + //line php5/php5.y:2022 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4134,14 +4197,15 @@ yydefault: _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) // save comments - addMeta(_case, yyDollar[2].token.Meta, meta.CaseToken) - addMeta(_case, yyDollar[4].token.Meta, meta.CaseSeparatorToken) + yyDollar[2].token.Meta.SetTokenName(meta.CaseToken).AppendTo(_case.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(_case.GetMeta()) + yylex.(*Parser).appendMetaToken(_case, yyDollar[4].token, meta.CaseSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1973 + //line php5/php5.y:2037 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4150,26 +4214,27 @@ yydefault: _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) // save comments - addMeta(_default, yyDollar[2].token.Meta, meta.DefaultToken) - addMeta(_default, yyDollar[3].token.Meta, meta.CaseSeparatorToken) + yyDollar[2].token.Meta.SetTokenName(meta.DefaultToken).AppendTo(_default.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(_default.GetMeta()) + yylex.(*Parser).appendMetaToken(_default, yyDollar[3].token, meta.CaseSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1991 + //line php5/php5.y:2056 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1995 + //line php5/php5.y:2060 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2003 + //line php5/php5.y:2068 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4180,7 +4245,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2012 + //line php5/php5.y:2077 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4190,15 +4255,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EndwhileToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EndwhileToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2033 + //line php5/php5.y:2099 { yyVAL.list = nil @@ -4206,7 +4272,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2039 + //line php5/php5.y:2105 { _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4215,13 +4281,15 @@ yydefault: _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) // save comments - addMeta(_elseIf, yyDollar[2].token.Meta, meta.ElseifToken) + yyDollar[2].token.Meta.SetTokenName(meta.ElseifToken).AppendTo(_elseIf.GetMeta()) + yyDollar[3].node.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(_elseIf.GetMeta()) + yyDollar[3].node.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(_elseIf.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 135: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2056 + //line php5/php5.y:2124 { yyVAL.list = nil @@ -4229,7 +4297,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2062 + //line php5/php5.y:2130 { stmts := stmt.NewStmtList(yyDollar[5].list) _elseIf := stmt.NewAltElseIf(yyDollar[3].node, stmts) @@ -4240,14 +4308,16 @@ yydefault: _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) // save comments - addMeta(_elseIf, yyDollar[2].token.Meta, meta.ElseifToken) - addMeta(_elseIf, yyDollar[4].token.Meta, meta.ColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.ElseifToken).AppendTo(_elseIf.GetMeta()) + yyDollar[3].node.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(_elseIf.GetMeta()) + yyDollar[3].node.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(_elseIf.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.ColonToken).AppendTo(_elseIf.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2082 + //line php5/php5.y:2152 { yyVAL.node = nil @@ -4255,7 +4325,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2088 + //line php5/php5.y:2158 { yyVAL.node = stmt.NewElse(yyDollar[2].node) @@ -4263,13 +4333,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ElseToken) + yyDollar[1].token.Meta.SetTokenName(meta.ElseToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2104 + //line php5/php5.y:2174 { yyVAL.node = nil @@ -4277,7 +4347,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2110 + //line php5/php5.y:2180 { stmts := stmt.NewStmtList(yyDollar[3].list) yyVAL.node = stmt.NewAltElse(stmts) @@ -4287,14 +4357,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ElseToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ElseToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2129 + //line php5/php5.y:2199 { yyVAL.list = yyDollar[1].list @@ -4302,7 +4372,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2135 + //line php5/php5.y:2205 { yyVAL.list = nil @@ -4310,7 +4380,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2144 + //line php5/php5.y:2214 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4318,18 +4388,18 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2150 + //line php5/php5.y:2220 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2162 + //line php5/php5.y:2232 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4350,18 +4420,18 @@ yydefault: // save comments if yyDollar[2].token != nil { - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } if yyDollar[3].token != nil { - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EllipsisToken) + yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(variable, yyDollar[4].token.Meta, meta.VariableToken) + yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:2192 + //line php5/php5.y:2262 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4382,19 +4452,19 @@ yydefault: // save comments if yyDollar[2].token != nil { - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } if yyDollar[3].token != nil { - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EllipsisToken) + yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(variable, yyDollar[4].token.Meta, meta.VariableToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.EqualToken) + yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2227 + //line php5/php5.y:2297 { yyVAL.node = nil @@ -4402,7 +4472,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2233 + //line php5/php5.y:2303 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4410,13 +4480,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 149: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2245 + //line php5/php5.y:2315 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4424,13 +4494,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2257 + //line php5/php5.y:2327 { yyVAL.node = yyDollar[1].node @@ -4438,7 +4508,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2267 + //line php5/php5.y:2337 { yyVAL.node = node.NewArgumentList(nil) @@ -4446,14 +4516,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2280 + //line php5/php5.y:2350 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4461,14 +4531,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2293 + //line php5/php5.y:2363 { arg := node.NewArgument(yyDollar[2].node, false, false) yyVAL.node = node.NewArgumentList([]node.Node{arg}) @@ -4478,14 +4548,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2312 + //line php5/php5.y:2382 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4493,18 +4563,18 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2318 + //line php5/php5.y:2388 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2330 + //line php5/php5.y:2400 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4515,7 +4585,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2339 + //line php5/php5.y:2409 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4526,7 +4596,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2348 + //line php5/php5.y:2418 { yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) @@ -4534,13 +4604,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.AmpersandToken) + yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2360 + //line php5/php5.y:2430 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4548,24 +4618,24 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.EllipsisToken) + yyDollar[1].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2375 + //line php5/php5.y:2445 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2384 + //line php5/php5.y:2454 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4573,7 +4643,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2394 + //line php5/php5.y:2464 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -4583,13 +4653,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2408 + //line php5/php5.y:2478 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -4597,13 +4667,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2420 + //line php5/php5.y:2490 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -4611,15 +4681,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2438 + //line php5/php5.y:2508 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4632,14 +4702,14 @@ yydefault: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(variable, yyDollar[3].token.Meta, meta.VariableToken) + 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).returnTokenToPool(yyDollar, &yyVAL) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2456 + //line php5/php5.y:2526 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4652,15 +4722,15 @@ yydefault: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(variable, yyDollar[3].token.Meta, meta.VariableToken) - addMeta(staticVar, yyDollar[4].token.Meta, meta.EqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + 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:2475 + //line php5/php5.y:2545 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4673,13 +4743,13 @@ yydefault: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2492 + //line php5/php5.y:2562 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4692,14 +4762,14 @@ yydefault: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) - addMeta(staticVar, yyDollar[2].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + 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:2514 + //line php5/php5.y:2584 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4707,7 +4777,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2520 + //line php5/php5.y:2590 { yyVAL.list = []node.Node{} @@ -4715,7 +4785,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2530 + //line php5/php5.y:2600 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4723,13 +4793,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2542 + //line php5/php5.y:2613 { yyVAL.node = yyDollar[1].node @@ -4737,13 +4808,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2554 + //line php5/php5.y:2626 { yyVAL.node = yyDollar[1].node @@ -4751,7 +4823,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:2560 + //line php5/php5.y:2632 { 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, "") @@ -4765,19 +4837,19 @@ yydefault: } // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.FunctionToken) + yyDollar[2].token.Meta.SetTokenName(meta.FunctionToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[3].token != nil { - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.AmpersandToken) + yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(name, yyDollar[4].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.CloseParenthesisToken) + yyDollar[4].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[7].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2587 + //line php5/php5.y:2659 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4785,13 +4857,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UseToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2602 + //line php5/php5.y:2674 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4799,45 +4871,46 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2608 + //line php5/php5.y:2680 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2620 + //line php5/php5.y:2692 { yyVAL.node = stmt.NewNop() yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2632 + //line php5/php5.y:2705 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2647 + //line php5/php5.y:2720 { yyVAL.list = nil @@ -4845,7 +4918,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2653 + //line php5/php5.y:2726 { yyVAL.list = yyDollar[1].list @@ -4853,7 +4926,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2662 + //line php5/php5.y:2735 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4861,7 +4934,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2668 + //line php5/php5.y:2741 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4869,29 +4942,31 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2677 + //line php5/php5.y:2750 { yyVAL.node = yyDollar[1].node // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2686 + //line php5/php5.y:2760 { yyVAL.node = yyDollar[1].node // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2698 + //line php5/php5.y:2773 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4899,13 +4974,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.InsteadofToken) + yyDollar[2].token.Meta.SetTokenName(meta.InsteadofToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2713 + //line php5/php5.y:2788 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4913,18 +4988,18 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2719 + //line php5/php5.y:2794 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2731 + //line php5/php5.y:2806 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -4934,13 +5009,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(name, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2745 + //line php5/php5.y:2820 { yyVAL.node = yyDollar[1].node @@ -4948,7 +5023,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2754 + //line php5/php5.y:2829 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -4958,14 +5033,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2772 + //line php5/php5.y:2847 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -4975,14 +5050,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[4].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2787 + //line php5/php5.y:2862 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -4990,13 +5065,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2802 + //line php5/php5.y:2877 { yyVAL.node = nil @@ -5004,7 +5079,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2808 + //line php5/php5.y:2883 { yyVAL.node = yyDollar[1].node @@ -5012,7 +5087,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2817 + //line php5/php5.y:2892 { yyVAL.node = stmt.NewNop() @@ -5020,13 +5095,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2829 + //line php5/php5.y:2905 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5034,14 +5110,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2845 + //line php5/php5.y:2921 { yyVAL.list = yyDollar[1].list @@ -5049,7 +5125,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2851 + //line php5/php5.y:2927 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5058,13 +5134,13 @@ yydefault: modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(modifier, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(modifier.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2867 + //line php5/php5.y:2943 { yyVAL.list = nil @@ -5072,7 +5148,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2873 + //line php5/php5.y:2949 { yyVAL.list = yyDollar[1].list @@ -5080,7 +5156,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2882 + //line php5/php5.y:2958 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5088,7 +5164,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2888 + //line php5/php5.y:2964 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5096,7 +5172,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2897 + //line php5/php5.y:2973 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5104,13 +5180,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2909 + //line php5/php5.y:2985 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5118,13 +5194,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2921 + //line php5/php5.y:2997 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5132,13 +5208,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2933 + //line php5/php5.y:3009 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5146,13 +5222,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 208: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2945 + //line php5/php5.y:3021 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5160,13 +5236,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2957 + //line php5/php5.y:3033 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5174,13 +5250,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2972 + //line php5/php5.y:3048 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5193,14 +5269,14 @@ yydefault: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(variable, yyDollar[3].token.Meta, meta.VariableToken) + 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).returnTokenToPool(yyDollar, &yyVAL) } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2990 + //line php5/php5.y:3066 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5213,15 +5289,15 @@ yydefault: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(variable, yyDollar[3].token.Meta, meta.VariableToken) - addMeta(property, yyDollar[4].token.Meta, meta.EqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + 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:3009 + //line php5/php5.y:3085 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5234,13 +5310,13 @@ yydefault: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3026 + //line php5/php5.y:3102 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5253,18 +5329,19 @@ yydefault: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) - addMeta(property, yyDollar[2].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + 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:3047 + //line php5/php5.y:3123 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") constList := yyDollar[1].node.(*stmt.ClassConstList) + lastConst := lastNode(constList.Consts) constList.Consts = append(constList.Consts, constant) yyVAL.node = yyDollar[1].node @@ -5274,15 +5351,15 @@ yydefault: yyDollar[1].node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) // save comments - addMeta(lastNode(constList.Consts), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(name, yyDollar[3].token.Meta, meta.IdentifierToken) - addMeta(constant, yyDollar[4].token.Meta, meta.EqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastConst.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3067 + //line php5/php5.y:3144 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -5294,26 +5371,26 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ConstToken) - addMeta(name, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(constant, yyDollar[3].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.ConstToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3088 + //line php5/php5.y:3165 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3097 + //line php5/php5.y:3174 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5321,7 +5398,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3107 + //line php5/php5.y:3184 { yyVAL.list = nil @@ -5329,7 +5406,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3113 + //line php5/php5.y:3190 { yyVAL.list = yyDollar[1].list @@ -5337,18 +5414,18 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3122 + //line php5/php5.y:3199 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3131 + //line php5/php5.y:3208 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5356,7 +5433,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3140 + //line php5/php5.y:3217 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5364,7 +5441,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3146 + //line php5/php5.y:3223 { yyVAL.list = yyDollar[1].list @@ -5372,7 +5449,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3155 + //line php5/php5.y:3232 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -5381,14 +5458,16 @@ yydefault: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments - addMeta(fetch, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(fetch, yyDollar[4].token.Meta, meta.CloseSquareBracket) + yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[2].token, meta.OpenSquareBracket) + yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3169 + //line php5/php5.y:3248 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) yyVAL.list = []node.Node{fetch} @@ -5397,14 +5476,16 @@ yydefault: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) // save comments - addMeta(fetch, yyDollar[1].token.Meta, meta.OpenSquareBracket) - addMeta(fetch, yyDollar[3].token.Meta, meta.CloseSquareBracket) + yyDollar[1].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[1].token, meta.OpenSquareBracket) + yyDollar[3].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[3].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3186 + //line php5/php5.y:3267 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5412,7 +5493,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3192 + //line php5/php5.y:3273 { yyVAL.list = yyDollar[1].list @@ -5420,7 +5501,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3198 + //line php5/php5.y:3279 { yyVAL.list = yyDollar[1].list @@ -5428,7 +5509,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3207 + //line php5/php5.y:3288 { yyVAL.list = nil @@ -5436,7 +5517,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3213 + //line php5/php5.y:3294 { yyVAL.list = yyDollar[1].list @@ -5444,7 +5525,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3222 + //line php5/php5.y:3303 { if yyDollar[3].node != nil { @@ -5456,13 +5537,13 @@ yydefault: } // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NewToken) + yyDollar[1].token.Meta.SetTokenName(meta.NewAnchor).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3241 + //line php5/php5.y:3322 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5472,16 +5553,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) // save comments - addMeta(list, yyDollar[1].token.Meta, meta.ListToken) - addMeta(list, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(list, yyDollar[4].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.ListToken).AppendTo(list.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3258 + //line php5/php5.y:3339 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5489,13 +5570,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.EqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3270 + //line php5/php5.y:3351 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5503,14 +5584,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.EqualToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3283 + //line php5/php5.y:3364 { var _new *expr.New @@ -5530,15 +5611,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, _new)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.EqualToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.AmpersandToken) - addMeta(_new, yyDollar[4].token.Meta, meta.NewToken) + yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.NewAnchor).AppendTo(_new.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3309 + //line php5/php5.y:3390 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5546,13 +5627,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.CloneToken) + yyDollar[1].token.Meta.SetTokenName(meta.CloneToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3321 + //line php5/php5.y:3402 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5560,13 +5641,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PlusEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.PlusEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3333 + //line php5/php5.y:3414 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5574,13 +5655,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.MinusEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.MinusEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3345 + //line php5/php5.y:3426 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5588,13 +5669,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.MulEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.MulEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3357 + //line php5/php5.y:3438 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5602,13 +5683,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PowEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.PowEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3369 + //line php5/php5.y:3450 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5616,13 +5697,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.DivEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.DivEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3381 + //line php5/php5.y:3462 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5630,13 +5711,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ConcatEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.ConcatEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3393 + //line php5/php5.y:3474 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5644,13 +5725,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ModEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.ModEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3405 + //line php5/php5.y:3486 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5658,13 +5739,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AndEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.AndEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3417 + //line php5/php5.y:3498 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5672,13 +5753,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OrEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.OrEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3429 + //line php5/php5.y:3510 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5686,13 +5767,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.XorEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.XorEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3441 + //line php5/php5.y:3522 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5700,13 +5781,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SlEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.SlEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3453 + //line php5/php5.y:3534 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5714,13 +5795,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SrEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.SrEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3465 + //line php5/php5.y:3546 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5728,13 +5809,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IncToken) + yyDollar[2].token.Meta.SetTokenName(meta.IncToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3477 + //line php5/php5.y:3558 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5742,13 +5823,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IncToken) + yyDollar[1].token.Meta.SetTokenName(meta.IncToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3489 + //line php5/php5.y:3570 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5756,13 +5837,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.DecToken) + yyDollar[2].token.Meta.SetTokenName(meta.DecToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3501 + //line php5/php5.y:3582 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5770,13 +5851,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DecToken) + yyDollar[1].token.Meta.SetTokenName(meta.DecToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3513 + //line php5/php5.y:3594 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5784,13 +5865,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.BooleanOrToken) + yyDollar[2].token.Meta.SetTokenName(meta.BooleanOrToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3525 + //line php5/php5.y:3606 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5798,13 +5879,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.BooleanAndToken) + yyDollar[2].token.Meta.SetTokenName(meta.BooleanAndToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3537 + //line php5/php5.y:3618 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5812,13 +5893,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LogicalOrToken) + yyDollar[2].token.Meta.SetTokenName(meta.LogicalOrToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3549 + //line php5/php5.y:3630 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5826,13 +5907,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LogicalAndToken) + yyDollar[2].token.Meta.SetTokenName(meta.LogicalAndToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3561 + //line php5/php5.y:3642 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5840,13 +5921,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LogicalXorToken) + yyDollar[2].token.Meta.SetTokenName(meta.LogicalXorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3573 + //line php5/php5.y:3654 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5854,13 +5935,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.VerticalBarToken) + yyDollar[2].token.Meta.SetTokenName(meta.VerticalBarToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3585 + //line php5/php5.y:3666 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5868,13 +5949,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3597 + //line php5/php5.y:3678 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5882,13 +5963,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.CaretToken) + yyDollar[2].token.Meta.SetTokenName(meta.CaretToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3609 + //line php5/php5.y:3690 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5896,13 +5977,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.DotToken) + yyDollar[2].token.Meta.SetTokenName(meta.DotToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3621 + //line php5/php5.y:3702 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5910,13 +5991,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PlusToken) + yyDollar[2].token.Meta.SetTokenName(meta.PlusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3633 + //line php5/php5.y:3714 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5924,13 +6005,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.MinusToken) + yyDollar[2].token.Meta.SetTokenName(meta.MinusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3645 + //line php5/php5.y:3726 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5938,13 +6019,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsteriskToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsteriskToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3657 + //line php5/php5.y:3738 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5952,13 +6033,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PowToken) + yyDollar[2].token.Meta.SetTokenName(meta.PowToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3669 + //line php5/php5.y:3750 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5966,13 +6047,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SlashToken) + yyDollar[2].token.Meta.SetTokenName(meta.SlashToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3681 + //line php5/php5.y:3762 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5980,13 +6061,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PercentToken) + yyDollar[2].token.Meta.SetTokenName(meta.PercentToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3693 + //line php5/php5.y:3774 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5994,13 +6075,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SlToken) + yyDollar[2].token.Meta.SetTokenName(meta.SlToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3705 + //line php5/php5.y:3786 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6008,13 +6089,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SrToken) + yyDollar[2].token.Meta.SetTokenName(meta.SrToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3717 + //line php5/php5.y:3798 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6022,13 +6103,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.PlusToken) + yyDollar[1].token.Meta.SetTokenName(meta.PlusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3729 + //line php5/php5.y:3810 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6036,13 +6117,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MinusToken) + yyDollar[1].token.Meta.SetTokenName(meta.MinusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3741 + //line php5/php5.y:3822 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6050,13 +6131,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ExclamationMarkToken) + yyDollar[1].token.Meta.SetTokenName(meta.ExclamationMarkToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3753 + //line php5/php5.y:3834 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6064,13 +6145,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.TildeToken) + yyDollar[1].token.Meta.SetTokenName(meta.TildeToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3765 + //line php5/php5.y:3846 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6078,13 +6159,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsIdenticalToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsIdenticalToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3777 + //line php5/php5.y:3858 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6092,13 +6173,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsNotIdenticalToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsNotIdenticalToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3789 + //line php5/php5.y:3870 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6106,13 +6187,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3801 + //line php5/php5.y:3882 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6120,13 +6201,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsNotEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsNotEqualToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.IsNotEqualToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3813 + //line php5/php5.y:3895 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6134,13 +6216,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LessToken) + yyDollar[2].token.Meta.SetTokenName(meta.LessToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3825 + //line php5/php5.y:3907 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6148,13 +6230,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsSmallerOrEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsSmallerOrEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3837 + //line php5/php5.y:3919 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6162,13 +6244,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.GreaterToken) + yyDollar[2].token.Meta.SetTokenName(meta.GreaterToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3849 + //line php5/php5.y:3931 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6176,13 +6258,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsGreaterOrEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsGreaterOrEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3861 + //line php5/php5.y:3943 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6190,21 +6272,24 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.InstanceofToken) + yyDollar[2].token.Meta.SetTokenName(meta.InstanceofToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3873 + //line php5/php5.y:3955 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + + yyVAL.node.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).SetTokenName(meta.NodeStart).PrependTo(yyVAL.node.GetMeta()) + yyVAL.node.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3879 + //line php5/php5.y:3964 { yyVAL.node = yyDollar[1].node @@ -6212,7 +6297,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3885 + //line php5/php5.y:3970 { yyVAL.node = yyDollar[2].node @@ -6236,14 +6321,14 @@ yydefault: } // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3914 + //line php5/php5.y:3999 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6251,14 +6336,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.QuestionMarkToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.ColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3927 + //line php5/php5.y:4012 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6266,14 +6351,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.QuestionMarkToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.ColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3940 + //line php5/php5.y:4025 { yyVAL.node = yyDollar[1].node @@ -6281,7 +6366,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3946 + //line php5/php5.y:4031 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6289,13 +6374,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IntCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.IntCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.IntCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3958 + //line php5/php5.y:4044 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6303,13 +6389,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DoubleCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.DoubleCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DoubleCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3970 + //line php5/php5.y:4057 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6317,13 +6404,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StringCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.StringCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.StringCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3982 + //line php5/php5.y:4070 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6331,13 +6419,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ArrayCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.ArrayCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.ArrayCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3994 + //line php5/php5.y:4083 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6345,13 +6434,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ObjectCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.ObjectCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.ObjectCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4006 + //line php5/php5.y:4096 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6359,13 +6449,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.BoolCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.BoolCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.BoolCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4018 + //line php5/php5.y:4109 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6373,13 +6464,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UnsetCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.UnsetCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UnsetCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4030 + //line php5/php5.y:4122 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6402,13 +6494,13 @@ yydefault: } // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ExitToken) + yyDollar[1].token.Meta.SetTokenName(meta.ExitToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4057 + //line php5/php5.y:4149 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6416,13 +6508,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.AtToken) + yyDollar[1].token.Meta.SetTokenName(meta.AtToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4069 + //line php5/php5.y:4161 { yyVAL.node = yyDollar[1].node @@ -6430,7 +6522,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4075 + //line php5/php5.y:4167 { yyVAL.node = yyDollar[1].node @@ -6438,7 +6530,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4081 + //line php5/php5.y:4173 { yyVAL.node = yyDollar[1].node @@ -6446,7 +6538,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4087 + //line php5/php5.y:4179 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6454,14 +6546,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.BackquoteToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.BackquoteToken) + yyDollar[1].token.Meta.SetTokenName(meta.BackquoteToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.BackquoteToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4100 + //line php5/php5.y:4192 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6469,13 +6561,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.PrintToken) + yyDollar[1].token.Meta.SetTokenName(meta.PrintToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4112 + //line php5/php5.y:4204 { yyVAL.node = expr.NewYield(nil, nil) @@ -6483,13 +6575,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.YieldToken) + yyDollar[1].token.Meta.SetTokenName(meta.YieldToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:4124 + //line php5/php5.y:4216 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list, false, yyDollar[2].token != nil, "") @@ -6497,20 +6589,20 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.FunctionToken) + yyDollar[1].token.Meta.SetTokenName(meta.FunctionToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[2].token != nil { - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[9].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[3].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[7].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[9].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:4143 + //line php5/php5.y:4235 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list, true, yyDollar[3].token != nil, "") @@ -6518,21 +6610,21 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StaticToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.FunctionToken) + yyDollar[1].token.Meta.SetTokenName(meta.StaticToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.FunctionToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[3].token != nil { - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.AmpersandToken) + yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[8].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[10].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[4].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[8].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[10].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4166 + //line php5/php5.y:4258 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6540,13 +6632,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.YieldToken) + yyDollar[1].token.Meta.SetTokenName(meta.YieldToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4178 + //line php5/php5.y:4270 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6554,13 +6646,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.YieldToken) + yyDollar[1].token.Meta.SetTokenName(meta.YieldToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4190 + //line php5/php5.y:4282 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6568,14 +6660,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.YieldToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.DoubleArrowToken) + yyDollar[1].token.Meta.SetTokenName(meta.YieldToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4203 + //line php5/php5.y:4295 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6583,14 +6675,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.YieldToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.DoubleArrowToken) + yyDollar[1].token.Meta.SetTokenName(meta.YieldToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4219 + //line php5/php5.y:4311 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6598,14 +6690,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4232 + //line php5/php5.y:4326 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6613,14 +6707,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4245 + //line php5/php5.y:4341 { str := scalar.NewString(yyDollar[1].token.Value) yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) @@ -6630,14 +6726,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4260 + //line php5/php5.y:4358 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6645,14 +6743,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4276 + //line php5/php5.y:4376 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6660,15 +6760,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ArrayToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ArrayToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4290 + //line php5/php5.y:4390 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6676,20 +6776,20 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseSquareBracket) + yyDollar[1].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4306 + //line php5/php5.y:4406 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4313 + //line php5/php5.y:4413 { yyVAL.ClosureUse = nil @@ -6697,17 +6797,23 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4319 + //line php5/php5.y:4419 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) + // save position yyVAL.ClosureUse.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + // save comments + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.ClosureUse.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.ClosureUse.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.ClosureUse.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4330 + //line php5/php5.y:4436 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6718,14 +6824,14 @@ yydefault: variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(variable, yyDollar[3].token.Meta, meta.VariableToken) + 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).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4346 + //line php5/php5.y:4452 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6738,15 +6844,15 @@ yydefault: reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(reference, yyDollar[3].token.Meta, meta.VariableToken) - addMeta(variable, yyDollar[4].token.Meta, meta.VariableToken) + 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).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4365 + //line php5/php5.y:4471 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6757,13 +6863,13 @@ yydefault: variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4380 + //line php5/php5.y:4486 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6776,14 +6882,14 @@ yydefault: reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(reference, yyDollar[1].token.Meta, meta.VariableToken) - addMeta(variable, yyDollar[2].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4401 + //line php5/php5.y:4507 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].node.(*node.ArgumentList)) @@ -6796,7 +6902,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4412 + //line php5/php5.y:4518 { funcName := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].node.(*node.ArgumentList)) @@ -6806,14 +6912,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[4].node)) // save comments - addMeta(funcName, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(funcName, yyDollar[2].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(funcName.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(funcName.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4427 + //line php5/php5.y:4533 { funcName := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].node.(*node.ArgumentList)) @@ -6823,13 +6929,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[3].node)) // save comments - addMeta(funcName, yyDollar[1].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(funcName.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4441 + //line php5/php5.y:4547 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6837,13 +6943,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4453 + //line php5/php5.y:4559 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6851,13 +6957,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4465 + //line php5/php5.y:4571 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6865,13 +6971,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4477 + //line php5/php5.y:4583 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6879,13 +6985,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4489 + //line php5/php5.y:4595 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6896,7 +7002,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4501 + //line php5/php5.y:4607 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6904,13 +7010,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4513 + //line php5/php5.y:4619 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -6921,7 +7027,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4522 + //line php5/php5.y:4628 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -6929,14 +7035,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4535 + //line php5/php5.y:4641 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -6944,13 +7050,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4550 + //line php5/php5.y:4656 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -6961,7 +7067,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4559 + //line php5/php5.y:4665 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -6969,14 +7075,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4572 + //line php5/php5.y:4678 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -6984,13 +7090,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4587 + //line php5/php5.y:4693 { yyVAL.node = yyDollar[1].node @@ -6998,7 +7104,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4593 + //line php5/php5.y:4699 { yyVAL.node = yyDollar[1].node @@ -7006,12 +7112,12 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4602 + //line php5/php5.y:4708 { yyVAL.node = yyDollar[1].node // save comments - addMeta(yyDollar[3].list[0], yyDollar[2].token.Meta, meta.ObjectOperatorToken) + yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyDollar[3].list[0].GetMeta()) for _, n := range yyDollar[3].list { switch nn := n.(type) { @@ -7045,7 +7151,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4639 + //line php5/php5.y:4745 { yyVAL.node = yyDollar[1].node @@ -7053,7 +7159,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4649 + //line php5/php5.y:4755 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7061,7 +7167,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4655 + //line php5/php5.y:4761 { yyVAL.list = []node.Node{} @@ -7069,18 +7175,18 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4665 + //line php5/php5.y:4771 { yyVAL.list = yyDollar[2].list // save comments - addMeta(yyDollar[2].list[0], yyDollar[1].token.Meta, meta.ObjectOperatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyDollar[2].list[0].GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4677 + //line php5/php5.y:4783 { yyVAL.node = nil @@ -7088,7 +7194,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4683 + //line php5/php5.y:4789 { yyVAL.node = expr.NewExit(nil) @@ -7096,14 +7202,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.OpenParenthesisToken) + yyDollar[2].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.CloseParenthesisToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4696 + //line php5/php5.y:4804 { yyVAL.node = expr.NewExit(yyDollar[1].node) @@ -7115,10 +7223,14 @@ yydefault: } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + + // save comments + yyDollar[1].node.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).AppendTo(yyVAL.node.GetMeta()) + yyDollar[1].node.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).AppendTo(yyVAL.node.GetMeta()) } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4712 + //line php5/php5.y:4824 { yyVAL.list = []node.Node{} @@ -7126,7 +7238,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4718 + //line php5/php5.y:4830 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -7134,7 +7246,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4724 + //line php5/php5.y:4836 { yyVAL.list = yyDollar[1].list @@ -7142,7 +7254,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4733 + //line php5/php5.y:4845 { yyVAL.node = nil @@ -7150,7 +7262,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4739 + //line php5/php5.y:4851 { yyVAL.node = yyDollar[1].node @@ -7158,7 +7270,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4748 + //line php5/php5.y:4860 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -7166,13 +7278,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.LnumberToken) + yyDollar[1].token.Meta.SetTokenName(meta.LnumberToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4760 + //line php5/php5.y:4872 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -7180,13 +7292,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DnumberToken) + yyDollar[1].token.Meta.SetTokenName(meta.DnumberToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4772 + //line php5/php5.y:4884 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7194,13 +7306,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ConstantEncapsedStringToken) + yyDollar[1].token.Meta.SetTokenName(meta.ConstantEncapsedStringToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4784 + //line php5/php5.y:4896 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7208,13 +7320,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4796 + //line php5/php5.y:4908 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7222,13 +7334,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4808 + //line php5/php5.y:4920 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7236,13 +7348,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4820 + //line php5/php5.y:4932 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7250,13 +7362,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4832 + //line php5/php5.y:4944 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7264,13 +7376,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4844 + //line php5/php5.y:4956 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7278,13 +7390,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4856 + //line php5/php5.y:4968 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7292,13 +7404,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4868 + //line php5/php5.y:4980 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7308,13 +7420,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StartHeredocToken) + yyDollar[1].token.Meta.SetTokenName(meta.StartHeredocToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4882 + //line php5/php5.y:4994 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7322,13 +7434,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StartHeredocToken) + yyDollar[1].token.Meta.SetTokenName(meta.StartHeredocToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4897 + //line php5/php5.y:5009 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7338,14 +7450,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4915 + //line php5/php5.y:5027 { yyVAL.node = yyDollar[1].node @@ -7353,7 +7465,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4924 + //line php5/php5.y:5036 { yyVAL.node = yyDollar[1].node @@ -7361,7 +7473,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4930 + //line php5/php5.y:5042 { yyVAL.node = yyDollar[1].node @@ -7369,7 +7481,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4936 + //line php5/php5.y:5048 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7382,7 +7494,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4947 + //line php5/php5.y:5059 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7392,14 +7504,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments - addMeta(name, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(name, yyDollar[2].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(name.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4962 + //line php5/php5.y:5074 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7409,13 +7521,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments - addMeta(name, yyDollar[1].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4976 + //line php5/php5.y:5088 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -7423,15 +7535,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ArrayToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ArrayToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4990 + //line php5/php5.y:5102 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -7439,14 +7551,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseSquareBracket) + yyDollar[1].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5003 + //line php5/php5.y:5115 { yyVAL.node = yyDollar[1].node @@ -7454,7 +7566,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5009 + //line php5/php5.y:5121 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7462,13 +7574,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5021 + //line php5/php5.y:5133 { yyVAL.node = yyDollar[1].node @@ -7476,7 +7588,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5030 + //line php5/php5.y:5142 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7484,14 +7596,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5043 + //line php5/php5.y:5157 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -7499,13 +7613,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PlusToken) + yyDollar[2].token.Meta.SetTokenName(meta.PlusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5055 + //line php5/php5.y:5169 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -7513,13 +7627,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.MinusToken) + yyDollar[2].token.Meta.SetTokenName(meta.MinusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5067 + //line php5/php5.y:5181 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -7527,13 +7641,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsteriskToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsteriskToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5079 + //line php5/php5.y:5193 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -7541,13 +7655,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PowToken) + yyDollar[2].token.Meta.SetTokenName(meta.PowToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5091 + //line php5/php5.y:5205 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -7555,13 +7669,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SlashToken) + yyDollar[2].token.Meta.SetTokenName(meta.SlashToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5103 + //line php5/php5.y:5217 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -7569,13 +7683,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PercentToken) + yyDollar[2].token.Meta.SetTokenName(meta.PercentToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5115 + //line php5/php5.y:5229 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -7583,13 +7697,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ExclamationMarkToken) + yyDollar[1].token.Meta.SetTokenName(meta.ExclamationMarkToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5127 + //line php5/php5.y:5241 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -7597,13 +7711,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.TildeToken) + yyDollar[1].token.Meta.SetTokenName(meta.TildeToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5139 + //line php5/php5.y:5253 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -7611,13 +7725,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.VerticalBarToken) + yyDollar[2].token.Meta.SetTokenName(meta.VerticalBarToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5151 + //line php5/php5.y:5265 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -7625,13 +7739,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5163 + //line php5/php5.y:5277 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -7639,13 +7753,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.CaretToken) + yyDollar[2].token.Meta.SetTokenName(meta.CaretToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5175 + //line php5/php5.y:5289 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -7653,13 +7767,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SlToken) + yyDollar[2].token.Meta.SetTokenName(meta.SlToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5187 + //line php5/php5.y:5301 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -7667,13 +7781,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SrToken) + yyDollar[2].token.Meta.SetTokenName(meta.SrToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5199 + //line php5/php5.y:5313 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -7681,13 +7795,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.DotToken) + yyDollar[2].token.Meta.SetTokenName(meta.DotToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5211 + //line php5/php5.y:5325 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -7695,13 +7809,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LogicalXorToken) + yyDollar[2].token.Meta.SetTokenName(meta.LogicalXorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5223 + //line php5/php5.y:5337 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -7709,13 +7823,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LogicalAndToken) + yyDollar[2].token.Meta.SetTokenName(meta.LogicalAndToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5235 + //line php5/php5.y:5349 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -7723,13 +7837,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LogicalOrToken) + yyDollar[2].token.Meta.SetTokenName(meta.LogicalOrToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5247 + //line php5/php5.y:5361 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -7737,13 +7851,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.BooleanAndToken) + yyDollar[2].token.Meta.SetTokenName(meta.BooleanAndToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5259 + //line php5/php5.y:5373 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -7751,13 +7865,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.BooleanOrToken) + yyDollar[2].token.Meta.SetTokenName(meta.BooleanOrToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5271 + //line php5/php5.y:5385 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7765,13 +7879,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsIdenticalToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsIdenticalToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5283 + //line php5/php5.y:5397 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -7779,13 +7893,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsNotIdenticalToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsNotIdenticalToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5295 + //line php5/php5.y:5409 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -7793,13 +7907,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5307 + //line php5/php5.y:5421 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -7807,13 +7921,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsNotEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsNotEqualToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.IsNotEqualToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5319 + //line php5/php5.y:5434 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -7821,13 +7936,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LessToken) + yyDollar[2].token.Meta.SetTokenName(meta.LessToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5331 + //line php5/php5.y:5446 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -7835,13 +7950,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.GreaterToken) + yyDollar[2].token.Meta.SetTokenName(meta.GreaterToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5343 + //line php5/php5.y:5458 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7849,13 +7964,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsSmallerOrEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsSmallerOrEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5355 + //line php5/php5.y:5470 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -7863,13 +7978,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsGreaterOrEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsGreaterOrEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5367 + //line php5/php5.y:5482 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -7877,14 +7992,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.QuestionMarkToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.ColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5380 + //line php5/php5.y:5495 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -7892,14 +8007,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.QuestionMarkToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.ColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5393 + //line php5/php5.y:5508 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -7907,13 +8022,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.PlusToken) + yyDollar[1].token.Meta.SetTokenName(meta.PlusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5405 + //line php5/php5.y:5520 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -7921,25 +8036,25 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MinusToken) + yyDollar[1].token.Meta.SetTokenName(meta.MinusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5417 + //line php5/php5.y:5532 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5430 + //line php5/php5.y:5545 { yyVAL.node = yyDollar[1].node @@ -7947,7 +8062,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5436 + //line php5/php5.y:5551 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7960,7 +8075,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5447 + //line php5/php5.y:5562 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7968,14 +8083,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) // save comments - addMeta(name, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(name, yyDollar[2].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(name.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5460 + //line php5/php5.y:5575 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7985,13 +8100,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) // save comments - addMeta(name, yyDollar[1].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5477 + //line php5/php5.y:5592 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = expr.NewVariable(name) @@ -8001,13 +8116,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(name, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5491 + //line php5/php5.y:5606 { yyVAL.node = yyDollar[1].node @@ -8015,7 +8130,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5497 + //line php5/php5.y:5612 { yyVAL.node = yyDollar[1].node @@ -8023,7 +8138,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5503 + //line php5/php5.y:5618 { yyVAL.node = yyDollar[1].node @@ -8031,7 +8146,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5509 + //line php5/php5.y:5624 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -8039,13 +8154,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DoubleQuoteToken) + yyDollar[1].token.Meta.SetTokenName(meta.DoubleQuoteToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5521 + //line php5/php5.y:5636 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -8053,13 +8168,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StartHeredocToken) + yyDollar[1].token.Meta.SetTokenName(meta.StartHeredocToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5533 + //line php5/php5.y:5648 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -8067,13 +8182,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5548 + //line php5/php5.y:5663 { yyVAL.list = nil @@ -8081,32 +8196,32 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5554 + //line php5/php5.y:5669 { yyVAL.list = yyDollar[1].list // save comments if yyDollar[2].token != nil { - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 423: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5568 + //line php5/php5.y:5683 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5572 + //line php5/php5.y:5687 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5579 + //line php5/php5.y:5694 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8115,14 +8230,14 @@ yydefault: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(arrayItem, yyDollar[4].token.Meta, meta.DoubleArrowToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5593 + //line php5/php5.y:5708 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8131,13 +8246,13 @@ yydefault: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5606 + //line php5/php5.y:5721 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -8146,13 +8261,13 @@ yydefault: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(arrayItem, yyDollar[2].token.Meta, meta.DoubleArrowToken) + yyDollar[2].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5619 + //line php5/php5.y:5734 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} @@ -8164,7 +8279,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5632 + //line php5/php5.y:5747 { yyVAL.node = yyDollar[1].node @@ -8172,7 +8287,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5638 + //line php5/php5.y:5753 { yyVAL.node = yyDollar[1].node @@ -8180,31 +8295,35 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5647 + //line php5/php5.y:5762 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.OpenParenthesisToken) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.CloseParenthesisToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5657 + //line php5/php5.y:5774 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.OpenParenthesisToken) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.CloseParenthesisToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5671 + //line php5/php5.y:5790 { yyVAL.node = yyDollar[1].node @@ -8212,7 +8331,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5681 + //line php5/php5.y:5800 { yyVAL.node = yyDollar[1].node @@ -8220,7 +8339,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5690 + //line php5/php5.y:5809 { yyVAL.node = yyDollar[1].node @@ -8228,7 +8347,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5699 + //line php5/php5.y:5818 { yyVAL.node = yyDollar[1].node @@ -8238,7 +8357,7 @@ yydefault: } // save comments - addMeta(yyDollar[3].list[0], yyDollar[2].token.Meta, meta.ObjectOperatorToken) + yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyDollar[3].list[0].GetMeta()) for _, n := range yyDollar[3].list { switch nn := n.(type) { @@ -8282,7 +8401,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5751 + //line php5/php5.y:5870 { yyVAL.node = yyDollar[1].node @@ -8290,7 +8409,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5760 + //line php5/php5.y:5879 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8298,7 +8417,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5766 + //line php5/php5.y:5885 { yyVAL.list = []node.Node{} @@ -8306,7 +8425,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5776 + //line php5/php5.y:5895 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -8316,13 +8435,13 @@ yydefault: yyVAL.list = yyDollar[2].list // save comments - addMeta(yyDollar[2].list[0], yyDollar[1].token.Meta, meta.ObjectOperatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyDollar[2].list[0].GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5793 + //line php5/php5.y:5912 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8331,14 +8450,16 @@ yydefault: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments - addMeta(fetch, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(fetch, yyDollar[4].token.Meta, meta.CloseSquareBracket) + yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[2].token, meta.OpenSquareBracket) + yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5807 + //line php5/php5.y:5928 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = []node.Node{yyDollar[1].node, fetch} @@ -8347,14 +8468,16 @@ yydefault: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments - addMeta(fetch, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(fetch, yyDollar[4].token.Meta, meta.CloseSquareBracket) + yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[2].token, meta.OpenSquareBracket) + yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5824 + //line php5/php5.y:5947 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) @@ -8365,7 +8488,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5836 + //line php5/php5.y:5959 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8373,7 +8496,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5842 + //line php5/php5.y:5965 { yyVAL.list = yyDollar[1].list @@ -8381,7 +8504,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5848 + //line php5/php5.y:5971 { yyVAL.list = nil @@ -8389,7 +8512,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5857 + //line php5/php5.y:5980 { yyVAL.node = yyDollar[1].node @@ -8397,7 +8520,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5863 + //line php5/php5.y:5986 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8411,7 +8534,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5878 + //line php5/php5.y:6001 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8419,13 +8542,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5890 + //line php5/php5.y:6013 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8433,13 +8556,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5905 + //line php5/php5.y:6028 { yyVAL.node = yyDollar[1].node @@ -8447,7 +8570,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5914 + //line php5/php5.y:6037 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8455,14 +8578,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5927 + //line php5/php5.y:6052 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8470,14 +8595,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5943 + //line php5/php5.y:6070 { yyVAL.node = yyDollar[1].node @@ -8485,7 +8612,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5949 + //line php5/php5.y:6076 { yyVAL.node = yyDollar[1].node @@ -8493,7 +8620,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5955 + //line php5/php5.y:6082 { yyVAL.node = yyDollar[1].node @@ -8501,7 +8628,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5965 + //line php5/php5.y:6092 { yyVAL.node = yyDollar[1].node @@ -8509,7 +8636,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5971 + //line php5/php5.y:6098 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8523,7 +8650,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5983 + //line php5/php5.y:6110 { yyVAL.node = yyDollar[1].node @@ -8531,7 +8658,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5992 + //line php5/php5.y:6119 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8539,14 +8666,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6005 + //line php5/php5.y:6134 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8554,14 +8683,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6018 + //line php5/php5.y:6149 { yyVAL.node = yyDollar[1].node @@ -8569,7 +8700,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6028 + //line php5/php5.y:6159 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -8579,13 +8710,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6042 + //line php5/php5.y:6173 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -8593,15 +8724,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6059 + //line php5/php5.y:6192 { yyVAL.node = nil @@ -8609,7 +8742,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6065 + //line php5/php5.y:6198 { yyVAL.node = yyDollar[1].node @@ -8617,7 +8750,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6075 + //line php5/php5.y:6208 { yyVAL.list = yyDollar[1].list @@ -8625,7 +8758,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6081 + //line php5/php5.y:6214 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -8637,7 +8770,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6094 + //line php5/php5.y:6227 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8646,14 +8779,16 @@ yydefault: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments - addMeta(fetch, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(fetch, yyDollar[4].token.Meta, meta.CloseSquareBracket) + yyDollar[2].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[2].token, meta.OpenSquareBracket) + yyDollar[4].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6108 + //line php5/php5.y:6243 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8662,14 +8797,16 @@ yydefault: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments - addMeta(fetch, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(fetch, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[2].token, meta.OpenCurlyBracesToken) + yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, yyDollar[4].token, meta.CloseCurlyBracesToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6122 + //line php5/php5.y:6259 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -8681,7 +8818,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6135 + //line php5/php5.y:6272 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -8689,13 +8826,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6147 + //line php5/php5.y:6284 { yyVAL.node = yyDollar[2].node @@ -8703,14 +8840,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + 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 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6163 + //line php5/php5.y:6302 { n := expr.NewVariable(nil) yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} @@ -8719,13 +8858,13 @@ yydefault: n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(n, yyDollar[1].token.Meta, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6176 + //line php5/php5.y:6315 { n := expr.NewVariable(nil) @@ -8738,13 +8877,13 @@ yydefault: n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) // save comments - addMeta(n, yyDollar[2].token.Meta, meta.DollarToken) + yyDollar[2].token.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6196 + //line php5/php5.y:6335 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} @@ -8753,13 +8892,13 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6209 + //line php5/php5.y:6348 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -8771,7 +8910,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6223 + //line php5/php5.y:6362 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) @@ -8782,7 +8921,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6232 + //line php5/php5.y:6371 { item := expr.NewList(yyDollar[3].list) yyVAL.node = expr.NewArrayItem(nil, item) @@ -8792,15 +8931,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(item)) // save comments - addMeta(item, yyDollar[1].token.Meta, meta.ListToken) - addMeta(item, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(item, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ListToken).AppendTo(item.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(item.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(item.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6248 + //line php5/php5.y:6387 { yyVAL.node = expr.NewArrayItem(nil, nil) @@ -8808,7 +8947,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6258 + //line php5/php5.y:6397 { yyVAL.list = []node.Node{} @@ -8816,7 +8955,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6264 + //line php5/php5.y:6403 { yyVAL.list = yyDollar[1].list @@ -8826,14 +8965,14 @@ yydefault: // save comments if yyDollar[2].token != nil { - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:6282 + //line php5/php5.y:6421 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8842,14 +8981,14 @@ yydefault: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(arrayItem, yyDollar[4].token.Meta, meta.DoubleArrowToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6296 + //line php5/php5.y:6435 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8858,13 +8997,13 @@ yydefault: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6309 + //line php5/php5.y:6448 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) yyVAL.list = []node.Node{arrayItem} @@ -8873,13 +9012,13 @@ yydefault: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(arrayItem, yyDollar[2].token.Meta, meta.DoubleArrowToken) + yyDollar[2].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6322 + //line php5/php5.y:6461 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) yyVAL.list = []node.Node{arrayItem} @@ -8891,7 +9030,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6332 + //line php5/php5.y:6471 { reference := expr.NewReference(yyDollar[6].node) arrayItem := expr.NewArrayItem(yyDollar[3].node, reference) @@ -8902,15 +9041,15 @@ yydefault: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(arrayItem, yyDollar[4].token.Meta, meta.DoubleArrowToken) - addMeta(reference, yyDollar[5].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6349 + //line php5/php5.y:6488 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -8921,14 +9060,14 @@ yydefault: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.CommaToken) - addMeta(reference, yyDollar[3].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6365 + //line php5/php5.y:6504 { reference := expr.NewReference(yyDollar[4].node) arrayItem := expr.NewArrayItem(yyDollar[1].node, reference) @@ -8939,14 +9078,14 @@ yydefault: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(arrayItem, yyDollar[2].token.Meta, meta.DoubleArrowToken) - addMeta(reference, yyDollar[3].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6381 + //line php5/php5.y:6520 { reference := expr.NewReference(yyDollar[2].node) arrayItem := expr.NewArrayItem(nil, reference) @@ -8957,13 +9096,13 @@ yydefault: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(reference, yyDollar[1].token.Meta, meta.AmpersandToken) + yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6399 + //line php5/php5.y:6538 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -8971,7 +9110,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6405 + //line php5/php5.y:6544 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8980,13 +9119,13 @@ yydefault: encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) // save comments - addMeta(encapsed, yyDollar[2].token.Meta, meta.EncapsedAndWhitespaceToken) + yyDollar[2].token.Meta.SetTokenName(meta.EncapsedAndWhitespaceToken).AppendTo(encapsed.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6418 + //line php5/php5.y:6557 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8994,7 +9133,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6424 + //line php5/php5.y:6563 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -9003,13 +9142,13 @@ yydefault: encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(encapsed, yyDollar[1].token.Meta, meta.EncapsedAndWhitespaceToken) + yyDollar[1].token.Meta.SetTokenName(meta.EncapsedAndWhitespaceToken).AppendTo(encapsed.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6440 + //line php5/php5.y:6579 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -9019,13 +9158,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6454 + //line php5/php5.y:6593 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9037,15 +9176,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6472 + //line php5/php5.y:6613 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9059,51 +9200,62 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ObjectOperatorToken) - addMeta(fetch, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(fetch.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6492 + //line php5/php5.y:6633 { - yyVAL.node = expr.NewVariable(yyDollar[2].node) + variable := expr.NewVariable(yyDollar[2].node) + variable.StringVar = true + + yyVAL.node = variable // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarOpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6505 + //line php5/php5.y:6651 { name := node.NewIdentifier(yyDollar[2].token.Value) - yyVAL.node = expr.NewVariable(name) + variable := expr.NewVariable(name) + variable.StringVar = true + + yyVAL.node = variable // save position name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarOpenCurlyBracesToken) - addMeta(name, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarOpenCurlyBracesToken) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 500: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6521 + //line php5/php5.y:6672 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) + variable.StringVar = true yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node) // save position @@ -9112,25 +9264,35 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarOpenCurlyBracesToken) - addMeta(variable, yyDollar[2].token.Meta, meta.StringVarnameToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.CloseSquareBracket) - addMeta(yyVAL.node, yyDollar[6].token.Meta, 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.StringVarnameToken).AppendTo(variable.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.OpenSquareBracket) + yyDollar[5].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[5].token, meta.CloseSquareBracket) + yyDollar[6].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[6].token, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 501: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6541 + //line php5/php5.y:6697 { 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[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 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6550 + //line php5/php5.y:6712 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -9138,13 +9300,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StringToken) + yyDollar[1].token.Meta.SetTokenName(meta.StringToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6562 + //line php5/php5.y:6724 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -9157,13 +9319,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NumStringToken) + yyDollar[1].token.Meta.SetTokenName(meta.NumStringToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6579 + //line php5/php5.y:6741 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -9173,13 +9335,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6596 + //line php5/php5.y:6758 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -9187,15 +9349,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IssetToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.IssetToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6610 + //line php5/php5.y:6772 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9203,15 +9365,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.EmptyToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.EmptyToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6624 + //line php5/php5.y:6786 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9219,15 +9381,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.EmptyToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.EmptyToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6638 + //line php5/php5.y:6800 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -9235,13 +9397,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IncludeToken) + yyDollar[1].token.Meta.SetTokenName(meta.IncludeToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6650 + //line php5/php5.y:6812 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -9249,13 +9411,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IncludeOnceToken) + yyDollar[1].token.Meta.SetTokenName(meta.IncludeOnceToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 510: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6662 + //line php5/php5.y:6824 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -9263,15 +9425,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.EvalToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.EvalToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6676 + //line php5/php5.y:6838 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -9279,13 +9441,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.RequireToken) + yyDollar[1].token.Meta.SetTokenName(meta.RequireToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 512: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6688 + //line php5/php5.y:6850 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -9293,13 +9455,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.RequireOnceToken) + yyDollar[1].token.Meta.SetTokenName(meta.RequireOnceToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6703 + //line php5/php5.y:6865 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9307,18 +9469,18 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6709 + //line php5/php5.y:6871 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6721 + //line php5/php5.y:6883 { yyVAL.node = yyDollar[1].node @@ -9326,7 +9488,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6727 + //line php5/php5.y:6889 { yyVAL.node = yyDollar[1].node @@ -9334,7 +9496,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6736 + //line php5/php5.y:6898 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9344,14 +9506,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6751 + //line php5/php5.y:6913 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9361,14 +9523,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6769 + //line php5/php5.y:6931 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9378,14 +9540,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 520: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6787 + //line php5/php5.y:6949 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9395,8 +9557,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/php5/php5.y b/php5/php5.y index a3b4084..9d8e7ae 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -285,7 +285,7 @@ start: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) if yylex.(*Parser).currentToken.Value == "\xff" { - addMeta(yylex.(*Parser).rootNode, yylex.(*Parser).currentToken.Meta, meta.NodeEnd) + yylex.(*Parser).currentToken.Meta.SetTokenName(meta.NodeEnd).AppendTo(yylex.(*Parser).rootNode.GetMeta()) } } ; @@ -317,7 +317,7 @@ namespace_name: namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(namePart, $1.Meta, meta.StringToken) + $1.Meta.SetTokenName(meta.StringToken).AppendTo(namePart.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -330,8 +330,8 @@ namespace_name: namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments - addMeta(lastNode($1), $2.Meta, meta.NsSeparatorToken) - addMeta(namePart, $3.Meta, meta.StringToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.Meta.SetTokenName(meta.StringToken).AppendTo(namePart.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -371,10 +371,11 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.HaltCompilerToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.HaltCompilerToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -390,8 +391,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.NamespaceToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -405,9 +407,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.NamespaceToken) - addMeta($$, $3.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $5.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $5.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -419,9 +421,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.NamespaceToken) - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -433,8 +435,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.UseToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -448,9 +451,10 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.UseToken) - addMeta(useType, $2.Meta, meta.IdentifierToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(useType.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -464,9 +468,10 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.UseToken) - addMeta(useType, $2.Meta, meta.IdentifierToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(useType.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -478,7 +483,8 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - addMeta($$, $2.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -490,7 +496,7 @@ use_declarations: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -526,8 +532,8 @@ use_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsToken) - addMeta(alias, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -541,7 +547,8 @@ use_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -557,9 +564,10 @@ use_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) - addMeta($$, $3.Meta, meta.AsToken) - addMeta(alias, $4.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) + $3.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -571,7 +579,7 @@ use_function_declarations: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -607,8 +615,8 @@ use_function_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsToken) - addMeta(alias, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -622,7 +630,8 @@ use_function_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -638,9 +647,10 @@ use_function_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) - addMeta($$, $3.Meta, meta.AsToken) - addMeta(alias, $4.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) + $3.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -652,7 +662,7 @@ use_const_declarations: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -688,8 +698,8 @@ use_const_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsToken) - addMeta(alias, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -703,7 +713,8 @@ use_const_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -719,9 +730,10 @@ use_const_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) - addMeta($$, $3.Meta, meta.AsToken) - addMeta(alias, $4.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) + $3.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -733,6 +745,7 @@ constant_declaration: name := node.NewIdentifier($3.Value) constant := stmt.NewConstant(name, $5, "") constList := $1.(*stmt.ConstList) + lastConst := lastNode(constList.Consts) constList.Consts = append(constList.Consts, constant) $$ = $1 @@ -742,9 +755,9 @@ constant_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, constList.Consts)) // save comments - addMeta(lastNode(constList.Consts), $2.Meta, meta.CommaToken) - addMeta(name, $3.Meta, meta.IdentifierToken) - addMeta(constant, $4.Meta, meta.EqualToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastConst.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $4.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -761,9 +774,9 @@ constant_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, constList)) // save comments - addMeta($$, $1.Meta, meta.ConstToken) - addMeta(name, $2.Meta, meta.IdentifierToken) - addMeta(constant, $3.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.ConstToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $3.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -821,10 +834,11 @@ inner_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.HaltCompilerToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.HaltCompilerToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -848,8 +862,8 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta(label, $1.Meta, meta.IdentifierToken) - addMeta($$, $2.Meta, meta.ColonToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(label.GetMeta()) + $2.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -864,8 +878,8 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -883,7 +897,9 @@ unticked_statement: } // save comments - addMeta($$, $1.Meta, meta.IfToken) + $1.Meta.SetTokenName(meta.IfToken).AppendTo($$.GetMeta()) + $2.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo($$.GetMeta()) + $2.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -897,10 +913,13 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments - addMeta($$, $1.Meta, meta.IfToken) - addMeta($$, $3.Meta, meta.ColonToken) - addMeta($$, $7.Meta, meta.EndifToken) - addMeta($$, $8.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.IfToken).AppendTo($$.GetMeta()) + $2.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo($$.GetMeta()) + $2.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $7.Meta.SetTokenName(meta.EndifToken).AppendTo($$.GetMeta()) + $8.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $8, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -919,7 +938,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.WhileToken) + $1.Meta.SetTokenName(meta.WhileToken).AppendTo($$.GetMeta()) + $2.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo($$.GetMeta()) + $2.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -931,9 +952,12 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.DoToken) - addMeta($$, $3.Meta, meta.WhileToken) - addMeta($$, $5.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.DoToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.WhileToken).AppendTo($$.GetMeta()) + $4.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo($$.GetMeta()) + $4.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo($$.GetMeta()) + $5.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $5, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -956,11 +980,11 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) // save comments - addMeta($$, $1.Meta, meta.ForToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.ForInitSemicolonToken) - addMeta($$, $6.Meta, meta.ForCondSemicolonToken) - addMeta($$, $8.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ForToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.ForInitSemicolonToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.ForCondSemicolonToken).AppendTo($$.GetMeta()) + $8.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -981,7 +1005,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.SwitchToken) + $1.Meta.SetTokenName(meta.SwitchToken).AppendTo($$.GetMeta()) + $2.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo($$.GetMeta()) + $2.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -993,8 +1019,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.BreakToken) - addMeta($$, $2.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.BreakToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1006,8 +1033,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.BreakToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.BreakToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1019,8 +1047,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ContinueToken) - addMeta($$, $2.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ContinueToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1032,8 +1061,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.ContinueToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ContinueToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1045,8 +1075,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ReturnToken) - addMeta($$, $2.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ReturnToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1058,8 +1089,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.ReturnToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ReturnToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1071,8 +1103,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.ReturnToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ReturnToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1084,7 +1117,8 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - addMeta($$, $2.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1096,8 +1130,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.GlobalToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.GlobalToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1109,8 +1144,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.StaticToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.StaticToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1122,8 +1158,10 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.EchoToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.EchoToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.EchoToken) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1135,7 +1173,7 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.InlineHTMLToken) + $1.Meta.SetTokenName(meta.InlineHTMLToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1147,7 +1185,8 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - addMeta($$, $2.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1159,10 +1198,11 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.UnsetToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) - addMeta($$, $5.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.UnsetToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $5.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $5, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1196,10 +1236,13 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8)) // save comments - addMeta($$, $1.Meta, meta.ForeachToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.AsToken) - addMeta($$, $7.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ForeachToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + if $6 != nil { + $6.GetMeta().Cut(meta.TokenNameFilter(meta.DoubleArrowToken)).AppendTo($$.GetMeta()) + } + $7.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1233,24 +1276,28 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8)) // save comments - addMeta($$, $1.Meta, meta.ForeachToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.AsToken) - addMeta($$, $7.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ForeachToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + if $6 != nil { + $6.GetMeta().Cut(meta.TokenNameFilter(meta.DoubleArrowToken)).AppendTo($$.GetMeta()) + } + $7.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DECLARE '(' declare_list ')' declare_statement { - $$ = stmt.NewDeclare($3, $5) + $$ = $5 + $$.(*stmt.Declare).Consts = $3 // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.DeclareToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.DeclareToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1262,7 +1309,8 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1278,9 +1326,9 @@ unticked_statement: } // save comments - addMeta($$, $1.Meta, meta.TryToken) - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.TryToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1292,8 +1340,9 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.ThrowToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ThrowToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1307,9 +1356,10 @@ unticked_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.GotoToken) - addMeta(label, $2.Meta, meta.IdentifierToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.GotoToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(label.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1335,12 +1385,12 @@ catch_statement: catch.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments - addMeta(catch, $1.Meta, meta.CatchToken) - addMeta(catch, $2.Meta, meta.OpenParenthesisToken) - addMeta(variable, $4.Meta, meta.VariableToken) - addMeta(catch, $5.Meta, meta.CloseParenthesisToken) - addMeta(catch, $6.Meta, meta.OpenCurlyBracesToken) - addMeta(catch, $8.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.CatchToken).AppendTo(catch.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(catch.GetMeta()) + $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $5.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(catch.GetMeta()) + $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(catch.GetMeta()) + $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(catch.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1361,9 +1411,9 @@ finally_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.FinallyToken) - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.FinallyToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1412,12 +1462,12 @@ additional_catch: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments - addMeta($$, $1.Meta, meta.CatchToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta(variable, $4.Meta, meta.VariableToken) - addMeta($$, $5.Meta, meta.CloseParenthesisToken) - addMeta($$, $6.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $8.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.CatchToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $5.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1435,7 +1485,7 @@ unset_variables: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1501,15 +1551,15 @@ unticked_function_declaration_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9)) // save comments - addMeta($$, $1.Meta, meta.FunctionToken) + $1.Meta.SetTokenName(meta.FunctionToken).AppendTo($$.GetMeta()) if $2 != nil { - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } - addMeta(name, $3.Meta, meta.IdentifierToken) - addMeta($$, $4.Meta, meta.OpenParenthesisToken) - addMeta($$, $6.Meta, meta.CloseParenthesisToken) - addMeta($$, $7.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $9.Meta, meta.CloseCurlyBracesToken) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $4.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $7.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $9.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1538,9 +1588,9 @@ unticked_class_declaration_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $7)) // save comments - addMeta(name, $2.Meta, meta.IdentifierToken) - addMeta($$, $5.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $7.Meta, meta.CloseCurlyBracesToken) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $5.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $7.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1554,9 +1604,10 @@ unticked_class_declaration_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments - addMeta(name, $2.Meta, meta.IdentifierToken) - addMeta($$, $4.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $6.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.InterfaceToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $4.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1572,7 +1623,7 @@ class_entry_type: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.ClassToken) + $1.Meta.SetTokenName(meta.ClassToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1586,8 +1637,8 @@ class_entry_type: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta(classModifier, $1.Meta, meta.IdentifierToken) - addMeta($$, $2.Meta, meta.ClassToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(classModifier.GetMeta()) + $2.Meta.SetTokenName(meta.ClassToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1599,7 +1650,7 @@ class_entry_type: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.TraitToken) + $1.Meta.SetTokenName(meta.TraitToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1613,8 +1664,8 @@ class_entry_type: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta(classModifier, $1.Meta, meta.IdentifierToken) - addMeta($$, $2.Meta, meta.ClassToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(classModifier.GetMeta()) + $2.Meta.SetTokenName(meta.ClassToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1635,7 +1686,7 @@ extends_from: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ExtendsToken) + $1.Meta.SetTokenName(meta.ExtendsToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1663,7 +1714,7 @@ interface_extends_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ExtendsToken) + $1.Meta.SetTokenName(meta.ExtendsToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1684,7 +1735,7 @@ implements_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ImplementsToken) + $1.Meta.SetTokenName(meta.ImplementsToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1702,7 +1753,7 @@ interface_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1720,7 +1771,7 @@ foreach_optional_arg: $$ = $2 // save comments - addMeta($$, $1.Meta, meta.DoubleArrowToken) + $1.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1741,7 +1792,7 @@ foreach_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.AmpersandToken) + $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1753,9 +1804,9 @@ foreach_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ListToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ListToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1781,9 +1832,10 @@ for_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $3.Meta, meta.EndforToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.EndforToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1809,9 +1861,10 @@ foreach_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $3.Meta, meta.EndforeachToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.EndforeachToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1821,21 +1874,27 @@ foreach_statement: declare_statement: statement { - $$ = $1; + $$ = stmt.NewDeclare(nil, $1, false) + + // save position + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDDECLARE ';' { - $$ = stmt.NewStmtList($2) + stmtList := stmt.NewStmtList($2) + $$ = stmt.NewDeclare(nil, stmtList, true) // save position + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $3.Meta, meta.EnddeclareToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.EnddeclareToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1854,8 +1913,8 @@ declare_list: constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta(name, $1.Meta, meta.IdentifierToken) - addMeta(constant, $2.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1870,9 +1929,9 @@ declare_list: constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(name, $3.Meta, meta.IdentifierToken) - addMeta(constant, $4.Meta, meta.EqualToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $4.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1890,8 +1949,8 @@ switch_case_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta(caseList, $1.Meta, meta.OpenCurlyBracesToken) - addMeta(caseList, $3.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(caseList.GetMeta()) + $3.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(caseList.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1905,9 +1964,10 @@ switch_case_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta(caseList, $1.Meta, meta.OpenCurlyBracesToken) - addMeta(caseList, $2.Meta, meta.SemiColonToken) - addMeta(caseList, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(caseList.GetMeta()) + $2.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(caseList.GetMeta()) + yylex.(*Parser).appendMetaToken(caseList, $2, meta.CaseSeparatorToken) + $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(caseList.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1921,9 +1981,10 @@ switch_case_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $3.Meta, meta.EndswitchToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.EndswitchToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1938,10 +1999,12 @@ switch_case_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $2.Meta, meta.SwitchSemicolonToken) - addMeta($$, $4.Meta, meta.EndswitchToken) - addMeta($$, $5.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(caseList.GetMeta()) + yylex.(*Parser).appendMetaToken(caseList, $2, meta.CaseSeparatorToken) + $4.Meta.SetTokenName(meta.EndswitchToken).AppendTo($$.GetMeta()) + $5.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $5, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1964,8 +2027,9 @@ case_list: _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) // save comments - addMeta(_case, $2.Meta, meta.CaseToken) - addMeta(_case, $4.Meta, meta.CaseSeparatorToken) + $2.Meta.SetTokenName(meta.CaseToken).AppendTo(_case.GetMeta()) + $4.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(_case.GetMeta()) + yylex.(*Parser).appendMetaToken(_case, $4, meta.CaseSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1978,8 +2042,9 @@ case_list: _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) // save comments - addMeta(_default, $2.Meta, meta.DefaultToken) - addMeta(_default, $3.Meta, meta.CaseSeparatorToken) + $2.Meta.SetTokenName(meta.DefaultToken).AppendTo(_default.GetMeta()) + $3.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(_default.GetMeta()) + yylex.(*Parser).appendMetaToken(_default, $3, meta.CaseSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2018,9 +2083,10 @@ while_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $3.Meta, meta.EndwhileToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.EndwhileToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2044,7 +2110,9 @@ elseif_list: _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) // save comments - addMeta(_elseIf, $2.Meta, meta.ElseifToken) + $2.Meta.SetTokenName(meta.ElseifToken).AppendTo(_elseIf.GetMeta()) + $3.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(_elseIf.GetMeta()) + $3.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(_elseIf.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2069,8 +2137,10 @@ new_elseif_list: _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) // save comments - addMeta(_elseIf, $2.Meta, meta.ElseifToken) - addMeta(_elseIf, $4.Meta, meta.ColonToken) + $2.Meta.SetTokenName(meta.ElseifToken).AppendTo(_elseIf.GetMeta()) + $3.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(_elseIf.GetMeta()) + $3.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).Cut(meta.NotFilter(meta.TypeFilter(meta.TokenType))).AppendTo(_elseIf.GetMeta()) + $4.Meta.SetTokenName(meta.ColonToken).AppendTo(_elseIf.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2092,7 +2162,7 @@ else_single: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ElseToken) + $1.Meta.SetTokenName(meta.ElseToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2116,8 +2186,8 @@ new_else_single: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.ElseToken) - addMeta($$, $2.Meta, meta.ColonToken) + $1.Meta.SetTokenName(meta.ElseToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2151,7 +2221,7 @@ non_empty_parameter_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2179,12 +2249,12 @@ parameter: // save comments if $2 != nil { - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } if $3 != nil { - addMeta($$, $3.Meta, meta.EllipsisToken) + $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - addMeta(variable, $4.Meta, meta.VariableToken) + $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2209,13 +2279,13 @@ parameter: // save comments if $2 != nil { - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } if $3 != nil { - addMeta($$, $3.Meta, meta.EllipsisToken) + $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - addMeta(variable, $4.Meta, meta.VariableToken) - addMeta($$, $5.Meta, meta.EqualToken) + $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $5.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2237,7 +2307,7 @@ optional_class_type: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2249,7 +2319,7 @@ optional_class_type: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2271,8 +2341,8 @@ function_call_parameter_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $2.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2284,8 +2354,8 @@ function_call_parameter_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2299,8 +2369,8 @@ function_call_parameter_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2319,7 +2389,7 @@ non_empty_function_call_parameter_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2352,7 +2422,7 @@ function_call_parameter: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($2)) // save comments - addMeta($$, $1.Meta, meta.AmpersandToken) + $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2364,7 +2434,7 @@ function_call_parameter: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.EllipsisToken) + $1.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2376,7 +2446,7 @@ global_var_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2400,7 +2470,7 @@ global_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2412,7 +2482,7 @@ global_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.DollarToken) + $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2424,9 +2494,9 @@ global_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.DollarToken) - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2447,8 +2517,8 @@ static_var_list: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(variable, $3.Meta, meta.VariableToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2465,9 +2535,9 @@ static_var_list: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(variable, $3.Meta, meta.VariableToken) - addMeta(staticVar, $4.Meta, meta.EqualToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $4.Meta.SetTokenName(meta.EqualToken).AppendTo(staticVar.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2484,7 +2554,7 @@ static_var_list: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2501,8 +2571,8 @@ static_var_list: staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) - addMeta(staticVar, $2.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo(staticVar.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2534,7 +2604,8 @@ class_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments - addMeta($$, $3.Meta, meta.SemiColonToken) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2546,7 +2617,8 @@ class_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - addMeta($$, $2.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2570,13 +2642,13 @@ class_statement: } // save comments - addMeta($$, $2.Meta, meta.FunctionToken) + $2.Meta.SetTokenName(meta.FunctionToken).AppendTo($$.GetMeta()) if $3 != nil { - addMeta($$, $3.Meta, meta.AmpersandToken) + $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } - addMeta(name, $4.Meta, meta.IdentifierToken) - addMeta($$, $5.Meta, meta.OpenParenthesisToken) - addMeta($$, $7.Meta, meta.CloseParenthesisToken) + $4.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $5.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $7.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2591,7 +2663,7 @@ trait_use_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.UseToken) + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2609,7 +2681,7 @@ trait_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2623,7 +2695,8 @@ trait_adaptations: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2635,8 +2708,8 @@ trait_adaptations: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2678,7 +2751,8 @@ trait_adaptation_statement: $$ = $1; // save comments - addMeta($$, $2.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2687,7 +2761,8 @@ trait_adaptation_statement: $$ = $1; // save comments - addMeta($$, $2.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2702,7 +2777,7 @@ trait_precedence: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.InsteadofToken) + $2.Meta.SetTokenName(meta.InsteadofToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2720,7 +2795,7 @@ trait_reference_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2737,7 +2812,7 @@ trait_method_reference: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(name, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2760,8 +2835,8 @@ trait_method_reference_fully_qualified: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2778,8 +2853,8 @@ trait_alias: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.AsToken) - addMeta(alias, $4.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2791,7 +2866,7 @@ trait_alias: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsToken) + $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2821,7 +2896,8 @@ method_body: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2833,8 +2909,8 @@ method_body: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2856,7 +2932,7 @@ variable_modifiers: modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(modifier, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(modifier.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2901,7 +2977,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2913,7 +2989,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2925,7 +3001,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2937,7 +3013,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2949,7 +3025,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2961,7 +3037,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2981,8 +3057,8 @@ class_variable_declaration: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(variable, $3.Meta, meta.VariableToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2999,9 +3075,9 @@ class_variable_declaration: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(variable, $3.Meta, meta.VariableToken) - addMeta(property, $4.Meta, meta.EqualToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $4.Meta.SetTokenName(meta.EqualToken).AppendTo(property.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3018,7 +3094,7 @@ class_variable_declaration: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3035,8 +3111,8 @@ class_variable_declaration: property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) - addMeta(property, $2.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo(property.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3048,6 +3124,7 @@ class_constant_declaration: name := node.NewIdentifier($3.Value) constant := stmt.NewConstant(name, $5, "") constList := $1.(*stmt.ClassConstList) + lastConst := lastNode(constList.Consts) constList.Consts = append(constList.Consts, constant) $$ = $1 @@ -3057,9 +3134,9 @@ class_constant_declaration: $1.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) // save comments - addMeta(lastNode(constList.Consts), $2.Meta, meta.CommaToken) - addMeta(name, $3.Meta, meta.IdentifierToken) - addMeta(constant, $4.Meta, meta.EqualToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastConst.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $4.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3075,9 +3152,9 @@ class_constant_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ConstToken) - addMeta(name, $2.Meta, meta.IdentifierToken) - addMeta(constant, $3.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.ConstToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $3.Meta.SetTokenName(meta.EqualToken).AppendTo(constant.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3089,7 +3166,7 @@ echo_expr_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3123,7 +3200,7 @@ non_empty_for_expr: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3160,8 +3237,10 @@ chaining_dereference: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments - addMeta(fetch, $2.Meta, meta.OpenSquareBracket) - addMeta(fetch, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3174,8 +3253,10 @@ chaining_dereference: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($2)) // save comments - addMeta(fetch, $1.Meta, meta.OpenSquareBracket) - addMeta(fetch, $3.Meta, meta.CloseSquareBracket) + $1.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $1, meta.OpenSquareBracket) + $3.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $3, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3230,7 +3311,7 @@ new_expr: } // save comments - addMeta($$, $1.Meta, meta.NewToken) + $1.Meta.SetTokenName(meta.NewAnchor).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3247,10 +3328,10 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) // save comments - addMeta(list, $1.Meta, meta.ListToken) - addMeta(list, $2.Meta, meta.OpenParenthesisToken) - addMeta(list, $4.Meta, meta.CloseParenthesisToken) - addMeta($$, $5.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.ListToken).AppendTo(list.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) + $5.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3262,7 +3343,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.EqualToken) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3274,8 +3355,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.EqualToken) - addMeta($$, $3.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3299,9 +3380,9 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, _new)) // save comments - addMeta($$, $2.Meta, meta.EqualToken) - addMeta($$, $3.Meta, meta.AmpersandToken) - addMeta(_new, $4.Meta, meta.NewToken) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.NewAnchor).AppendTo(_new.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3313,7 +3394,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.CloneToken) + $1.Meta.SetTokenName(meta.CloneToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3325,7 +3406,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PlusEqualToken) + $2.Meta.SetTokenName(meta.PlusEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3337,7 +3418,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.MinusEqualToken) + $2.Meta.SetTokenName(meta.MinusEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3349,7 +3430,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.MulEqualToken) + $2.Meta.SetTokenName(meta.MulEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3361,7 +3442,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PowEqualToken) + $2.Meta.SetTokenName(meta.PowEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3373,7 +3454,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.DivEqualToken) + $2.Meta.SetTokenName(meta.DivEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3385,7 +3466,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.ConcatEqualToken) + $2.Meta.SetTokenName(meta.ConcatEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3397,7 +3478,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.ModEqualToken) + $2.Meta.SetTokenName(meta.ModEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3409,7 +3490,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AndEqualToken) + $2.Meta.SetTokenName(meta.AndEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3421,7 +3502,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.OrEqualToken) + $2.Meta.SetTokenName(meta.OrEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3433,7 +3514,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.XorEqualToken) + $2.Meta.SetTokenName(meta.XorEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3445,7 +3526,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SlEqualToken) + $2.Meta.SetTokenName(meta.SlEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3457,7 +3538,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SrEqualToken) + $2.Meta.SetTokenName(meta.SrEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3469,7 +3550,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - addMeta($$, $2.Meta, meta.IncToken) + $2.Meta.SetTokenName(meta.IncToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3481,7 +3562,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.IncToken) + $1.Meta.SetTokenName(meta.IncToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3493,7 +3574,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - addMeta($$, $2.Meta, meta.DecToken) + $2.Meta.SetTokenName(meta.DecToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3505,7 +3586,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.DecToken) + $1.Meta.SetTokenName(meta.DecToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3517,7 +3598,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.BooleanOrToken) + $2.Meta.SetTokenName(meta.BooleanOrToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3529,7 +3610,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.BooleanAndToken) + $2.Meta.SetTokenName(meta.BooleanAndToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3541,7 +3622,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LogicalOrToken) + $2.Meta.SetTokenName(meta.LogicalOrToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3553,7 +3634,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LogicalAndToken) + $2.Meta.SetTokenName(meta.LogicalAndToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3565,7 +3646,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LogicalXorToken) + $2.Meta.SetTokenName(meta.LogicalXorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3577,7 +3658,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.VerticalBarToken) + $2.Meta.SetTokenName(meta.VerticalBarToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3589,7 +3670,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3601,7 +3682,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.CaretToken) + $2.Meta.SetTokenName(meta.CaretToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3613,7 +3694,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.DotToken) + $2.Meta.SetTokenName(meta.DotToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3625,7 +3706,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PlusToken) + $2.Meta.SetTokenName(meta.PlusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3637,7 +3718,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.MinusToken) + $2.Meta.SetTokenName(meta.MinusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3649,7 +3730,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsteriskToken) + $2.Meta.SetTokenName(meta.AsteriskToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3661,7 +3742,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PowToken) + $2.Meta.SetTokenName(meta.PowToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3673,7 +3754,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SlashToken) + $2.Meta.SetTokenName(meta.SlashToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3685,7 +3766,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PercentToken) + $2.Meta.SetTokenName(meta.PercentToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3697,7 +3778,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SlToken) + $2.Meta.SetTokenName(meta.SlToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3709,7 +3790,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SrToken) + $2.Meta.SetTokenName(meta.SrToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3721,7 +3802,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.PlusToken) + $1.Meta.SetTokenName(meta.PlusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3733,7 +3814,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.MinusToken) + $1.Meta.SetTokenName(meta.MinusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3745,7 +3826,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ExclamationMarkToken) + $1.Meta.SetTokenName(meta.ExclamationMarkToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3757,7 +3838,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.TildeToken) + $1.Meta.SetTokenName(meta.TildeToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3769,7 +3850,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsIdenticalToken) + $2.Meta.SetTokenName(meta.IsIdenticalToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3781,7 +3862,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsNotIdenticalToken) + $2.Meta.SetTokenName(meta.IsNotIdenticalToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3793,7 +3874,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsEqualToken) + $2.Meta.SetTokenName(meta.IsEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3805,7 +3886,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsNotEqualToken) + $2.Meta.SetTokenName(meta.IsNotEqualToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.IsNotEqualToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3817,7 +3899,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LessToken) + $2.Meta.SetTokenName(meta.LessToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3829,7 +3911,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsSmallerOrEqualToken) + $2.Meta.SetTokenName(meta.IsSmallerOrEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3841,7 +3923,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.GreaterToken) + $2.Meta.SetTokenName(meta.GreaterToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3853,7 +3935,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsGreaterOrEqualToken) + $2.Meta.SetTokenName(meta.IsGreaterOrEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3865,7 +3947,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.InstanceofToken) + $2.Meta.SetTokenName(meta.InstanceofToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3874,6 +3956,9 @@ expr_without_variable: $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + + $$.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).SetTokenName(meta.NodeStart).PrependTo($$.GetMeta()) + $$.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) } | new_expr { @@ -3905,8 +3990,8 @@ expr_without_variable: } // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3918,8 +4003,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) // save comments - addMeta($$, $2.Meta, meta.QuestionMarkToken) - addMeta($$, $4.Meta, meta.ColonToken) + $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3931,8 +4016,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.QuestionMarkToken) - addMeta($$, $3.Meta, meta.ColonToken) + $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3950,7 +4035,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.IntCastToken) + $1.Meta.SetTokenName(meta.IntCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.IntCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3962,7 +4048,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.DoubleCastToken) + $1.Meta.SetTokenName(meta.DoubleCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.DoubleCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3974,7 +4061,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.StringCastToken) + $1.Meta.SetTokenName(meta.StringCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.StringCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3986,7 +4074,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ArrayCastToken) + $1.Meta.SetTokenName(meta.ArrayCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.ArrayCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3998,7 +4087,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ObjectCastToken) + $1.Meta.SetTokenName(meta.ObjectCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.ObjectCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4010,7 +4100,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.BoolCastToken) + $1.Meta.SetTokenName(meta.BoolCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.BoolCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4022,7 +4113,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.UnsetCastToken) + $1.Meta.SetTokenName(meta.UnsetCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UnsetCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4049,7 +4141,7 @@ expr_without_variable: } // save comments - addMeta($$, $1.Meta, meta.ExitToken) + $1.Meta.SetTokenName(meta.ExitToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4061,7 +4153,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.AtToken) + $1.Meta.SetTokenName(meta.AtToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4091,8 +4183,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.BackquoteToken) - addMeta($$, $3.Meta, meta.BackquoteToken) + $1.Meta.SetTokenName(meta.BackquoteToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.BackquoteToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4104,7 +4196,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.PrintToken) + $1.Meta.SetTokenName(meta.PrintToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4116,7 +4208,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.YieldToken) + $1.Meta.SetTokenName(meta.YieldToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4128,14 +4220,14 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9)) // save comments - addMeta($$, $1.Meta, meta.FunctionToken) + $1.Meta.SetTokenName(meta.FunctionToken).AppendTo($$.GetMeta()) if $2 != nil { - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } - addMeta($$, $3.Meta, meta.OpenParenthesisToken) - addMeta($$, $5.Meta, meta.CloseParenthesisToken) - addMeta($$, $7.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $9.Meta, meta.CloseCurlyBracesToken) + $3.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $5.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $7.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $9.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4147,15 +4239,15 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $10)) // save comments - addMeta($$, $1.Meta, meta.StaticToken) - addMeta($$, $2.Meta, meta.FunctionToken) + $1.Meta.SetTokenName(meta.StaticToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.FunctionToken).AppendTo($$.GetMeta()) if $3 != nil { - addMeta($$, $3.Meta, meta.AmpersandToken) + $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } - addMeta($$, $4.Meta, meta.OpenParenthesisToken) - addMeta($$, $6.Meta, meta.CloseParenthesisToken) - addMeta($$, $8.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $10.Meta, meta.CloseCurlyBracesToken) + $4.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $8.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $10.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4170,7 +4262,7 @@ yield_expr: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.YieldToken) + $1.Meta.SetTokenName(meta.YieldToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4182,7 +4274,7 @@ yield_expr: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.YieldToken) + $1.Meta.SetTokenName(meta.YieldToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4194,8 +4286,8 @@ yield_expr: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.YieldToken) - addMeta($$, $3.Meta, meta.DoubleArrowToken) + $1.Meta.SetTokenName(meta.YieldToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4207,8 +4299,8 @@ yield_expr: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.YieldToken) - addMeta($$, $3.Meta, meta.DoubleArrowToken) + $1.Meta.SetTokenName(meta.YieldToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4223,8 +4315,10 @@ combined_scalar_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4236,8 +4330,10 @@ combined_scalar_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4251,8 +4347,10 @@ combined_scalar_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4264,8 +4362,10 @@ combined_scalar_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4280,9 +4380,9 @@ combined_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ArrayToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ArrayToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4294,8 +4394,8 @@ combined_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenSquareBracket) - addMeta($$, $3.Meta, meta.CloseSquareBracket) + $1.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4319,8 +4419,14 @@ lexical_vars: { $$ = expr.NewClosureUse($3) + // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + // save comments + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4337,8 +4443,8 @@ lexical_var_list: variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(variable, $3.Meta, meta.VariableToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4355,9 +4461,9 @@ lexical_var_list: reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(reference, $3.Meta, meta.VariableToken) - addMeta(variable, $4.Meta, meta.VariableToken) + $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).returnTokenToPool(yyDollar, &yyVAL) } @@ -4372,7 +4478,7 @@ lexical_var_list: variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4389,8 +4495,8 @@ lexical_var_list: reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta(reference, $1.Meta, meta.VariableToken) - addMeta(variable, $2.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) + $2.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4418,8 +4524,8 @@ function_call: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $4)) // save comments - addMeta(funcName, $1.Meta, meta.NamespaceToken) - addMeta(funcName, $2.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo(funcName.GetMeta()) + $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(funcName.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4433,7 +4539,7 @@ function_call: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $3)) // save comments - addMeta(funcName, $1.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(funcName.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4445,7 +4551,7 @@ function_call: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4457,7 +4563,7 @@ function_call: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4469,7 +4575,7 @@ function_call: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4481,7 +4587,7 @@ function_call: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4505,7 +4611,7 @@ class_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4526,8 +4632,8 @@ class_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.NamespaceToken) - addMeta($$, $2.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4539,7 +4645,7 @@ class_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4563,8 +4669,8 @@ fully_qualified_class_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.NamespaceToken) - addMeta($$, $2.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4576,7 +4682,7 @@ fully_qualified_class_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4603,7 +4709,7 @@ dynamic_class_name_reference: $$ = $1 // save comments - addMeta($3[0], $2.Meta, meta.ObjectOperatorToken) + $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($3[0].GetMeta()) for _, n := range($3) { switch nn := n.(type) { @@ -4666,7 +4772,7 @@ dynamic_class_name_variable_property: $$ = $2 // save comments - addMeta($2[0], $1.Meta, meta.ObjectOperatorToken) + $1.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($2[0].GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4687,8 +4793,10 @@ exit_expr: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $2.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.OpenParenthesisToken) + $2.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.CloseParenthesisToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4704,6 +4812,10 @@ exit_expr: } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + + // save comments + $1.GetMeta().Cut(meta.TokenNameFilter(meta.OpenParenthesisToken)).AppendTo($$.GetMeta()) + $1.GetMeta().Cut(meta.TokenNameFilter(meta.CloseParenthesisToken)).AppendTo($$.GetMeta()) } ; @@ -4752,7 +4864,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.LnumberToken) + $1.Meta.SetTokenName(meta.LnumberToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4764,7 +4876,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.DnumberToken) + $1.Meta.SetTokenName(meta.DnumberToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4776,7 +4888,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.ConstantEncapsedStringToken) + $1.Meta.SetTokenName(meta.ConstantEncapsedStringToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4788,7 +4900,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4800,7 +4912,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4812,7 +4924,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4824,7 +4936,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4836,7 +4948,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4848,7 +4960,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4860,7 +4972,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4874,7 +4986,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.StartHeredocToken) + $1.Meta.SetTokenName(meta.StartHeredocToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4886,7 +4998,7 @@ common_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.StartHeredocToken) + $1.Meta.SetTokenName(meta.StartHeredocToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4903,8 +5015,8 @@ static_class_constant: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4953,8 +5065,8 @@ static_scalar_value: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments - addMeta(name, $1.Meta, meta.NamespaceToken) - addMeta(name, $2.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo(name.GetMeta()) + $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4968,7 +5080,7 @@ static_scalar_value: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments - addMeta(name, $1.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4980,9 +5092,9 @@ static_scalar_value: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ArrayToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ArrayToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4994,8 +5106,8 @@ static_scalar_value: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenSquareBracket) - addMeta($$, $3.Meta, meta.CloseSquareBracket) + $1.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5013,7 +5125,7 @@ static_scalar_value: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5034,8 +5146,10 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5047,7 +5161,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PlusToken) + $2.Meta.SetTokenName(meta.PlusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5059,7 +5173,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.MinusToken) + $2.Meta.SetTokenName(meta.MinusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5071,7 +5185,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsteriskToken) + $2.Meta.SetTokenName(meta.AsteriskToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5083,7 +5197,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PowToken) + $2.Meta.SetTokenName(meta.PowToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5095,7 +5209,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SlashToken) + $2.Meta.SetTokenName(meta.SlashToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5107,7 +5221,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PercentToken) + $2.Meta.SetTokenName(meta.PercentToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5119,7 +5233,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ExclamationMarkToken) + $1.Meta.SetTokenName(meta.ExclamationMarkToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5131,7 +5245,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.TildeToken) + $1.Meta.SetTokenName(meta.TildeToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5143,7 +5257,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.VerticalBarToken) + $2.Meta.SetTokenName(meta.VerticalBarToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5155,7 +5269,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5167,7 +5281,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.CaretToken) + $2.Meta.SetTokenName(meta.CaretToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5179,7 +5293,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SlToken) + $2.Meta.SetTokenName(meta.SlToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5191,7 +5305,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SrToken) + $2.Meta.SetTokenName(meta.SrToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5203,7 +5317,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.DotToken) + $2.Meta.SetTokenName(meta.DotToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5215,7 +5329,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LogicalXorToken) + $2.Meta.SetTokenName(meta.LogicalXorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5227,7 +5341,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LogicalAndToken) + $2.Meta.SetTokenName(meta.LogicalAndToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5239,7 +5353,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LogicalOrToken) + $2.Meta.SetTokenName(meta.LogicalOrToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5251,7 +5365,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.BooleanAndToken) + $2.Meta.SetTokenName(meta.BooleanAndToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5263,7 +5377,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.BooleanOrToken) + $2.Meta.SetTokenName(meta.BooleanOrToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5275,7 +5389,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsIdenticalToken) + $2.Meta.SetTokenName(meta.IsIdenticalToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5287,7 +5401,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsNotIdenticalToken) + $2.Meta.SetTokenName(meta.IsNotIdenticalToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5299,7 +5413,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsEqualToken) + $2.Meta.SetTokenName(meta.IsEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5311,7 +5425,8 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsNotEqualToken) + $2.Meta.SetTokenName(meta.IsNotEqualToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.IsNotEqualToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5323,7 +5438,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LessToken) + $2.Meta.SetTokenName(meta.LessToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5335,7 +5450,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.GreaterToken) + $2.Meta.SetTokenName(meta.GreaterToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5347,7 +5462,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsSmallerOrEqualToken) + $2.Meta.SetTokenName(meta.IsSmallerOrEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5359,7 +5474,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsGreaterOrEqualToken) + $2.Meta.SetTokenName(meta.IsGreaterOrEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5371,8 +5486,8 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.QuestionMarkToken) - addMeta($$, $3.Meta, meta.ColonToken) + $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5384,8 +5499,8 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) // save comments - addMeta($$, $2.Meta, meta.QuestionMarkToken) - addMeta($$, $4.Meta, meta.ColonToken) + $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5397,7 +5512,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.PlusToken) + $1.Meta.SetTokenName(meta.PlusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5409,7 +5524,7 @@ static_operation: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.MinusToken) + $1.Meta.SetTokenName(meta.MinusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5418,8 +5533,8 @@ static_operation: $$ = $2 // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5451,8 +5566,8 @@ general_constant: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) // save comments - addMeta(name, $1.Meta, meta.NamespaceToken) - addMeta(name, $2.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo(name.GetMeta()) + $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5466,7 +5581,7 @@ general_constant: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) // save comments - addMeta(name, $1.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5483,7 +5598,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(name, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5513,7 +5628,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.DoubleQuoteToken) + $1.Meta.SetTokenName(meta.DoubleQuoteToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5525,7 +5640,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.StartHeredocToken) + $1.Meta.SetTokenName(meta.StartHeredocToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5537,7 +5652,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5556,7 +5671,7 @@ static_array_pair_list: // save comments if $2 != nil { - addMeta(lastNode($1), $2.Meta, meta.CommaToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5584,8 +5699,8 @@ non_empty_static_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(arrayItem, $4.Meta, meta.DoubleArrowToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $4.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5598,7 +5713,7 @@ non_empty_static_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5611,7 +5726,7 @@ non_empty_static_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta(arrayItem, $2.Meta, meta.DoubleArrowToken) + $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5648,8 +5763,10 @@ parenthesis_expr: $$ = $2 // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.OpenParenthesisToken) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.CloseParenthesisToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5658,8 +5775,10 @@ parenthesis_expr: $$ = $2 // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.OpenParenthesisToken) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.CloseParenthesisToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5705,7 +5824,7 @@ variable: } // save comments - addMeta($3[0], $2.Meta, meta.ObjectOperatorToken) + $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($3[0].GetMeta()) for _, n := range($3) { switch nn := n.(type) { @@ -5782,7 +5901,7 @@ variable_property: $$ = $2 // save comments - addMeta($2[0], $1.Meta, meta.ObjectOperatorToken) + $1.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($2[0].GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5798,8 +5917,10 @@ array_method_dereference: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments - addMeta(fetch, $2.Meta, meta.OpenSquareBracket) - addMeta(fetch, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5812,8 +5933,10 @@ array_method_dereference: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments - addMeta(fetch, $2.Meta, meta.OpenSquareBracket) - addMeta(fetch, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5882,7 +6005,7 @@ static_member: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5894,7 +6017,7 @@ static_member: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5918,8 +6041,10 @@ array_function_dereference: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5931,8 +6056,10 @@ array_function_dereference: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5996,8 +6123,10 @@ reference_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6009,8 +6138,10 @@ reference_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6034,7 +6165,7 @@ compound_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6046,9 +6177,11 @@ compound_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.DollarToken) - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) + $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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6099,8 +6232,10 @@ object_dim_list: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments - addMeta(fetch, $2.Meta, meta.OpenSquareBracket) - addMeta(fetch, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6113,8 +6248,10 @@ object_dim_list: fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments - addMeta(fetch, $2.Meta, meta.OpenCurlyBracesToken) - addMeta(fetch, $4.Meta, meta.CloseCurlyBracesToken) + $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $2, meta.OpenCurlyBracesToken) + $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(fetch.GetMeta()) + yylex.(*Parser).appendMetaToken(fetch, $4, meta.CloseCurlyBracesToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6139,7 +6276,7 @@ variable_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6151,8 +6288,10 @@ variable_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $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) } @@ -6168,7 +6307,7 @@ simple_indirect_reference: n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(n, $1.Meta, meta.DollarToken) + $1.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6185,7 +6324,7 @@ simple_indirect_reference: n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) // save comments - addMeta(n, $2.Meta, meta.DollarToken) + $2.Meta.SetTokenName(meta.DollarToken).AppendTo(n.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6201,7 +6340,7 @@ assignment_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6238,9 +6377,9 @@ assignment_list_element: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(item)) // save comments - addMeta(item, $1.Meta, meta.ListToken) - addMeta(item, $2.Meta, meta.OpenParenthesisToken) - addMeta(item, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ListToken).AppendTo(item.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(item.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(item.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6270,7 +6409,7 @@ array_pair_list: // save comments if $2 != nil { - addMeta(lastNode($1), $2.Meta, meta.CommaToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6287,8 +6426,8 @@ non_empty_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(arrayItem, $4.Meta, meta.DoubleArrowToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $4.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6301,7 +6440,7 @@ non_empty_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6314,7 +6453,7 @@ non_empty_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta(arrayItem, $2.Meta, meta.DoubleArrowToken) + $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6339,9 +6478,9 @@ non_empty_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($3, $6)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(arrayItem, $4.Meta, meta.DoubleArrowToken) - addMeta(reference, $5.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $4.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) + $5.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6356,8 +6495,8 @@ non_empty_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) // save comments - addMeta(lastNode($1), $2.Meta, meta.CommaToken) - addMeta(reference, $3.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6372,8 +6511,8 @@ non_empty_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta(arrayItem, $2.Meta, meta.DoubleArrowToken) - addMeta(reference, $3.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(arrayItem.GetMeta()) + $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6388,7 +6527,7 @@ non_empty_array_pair_list: arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta(reference, $1.Meta, meta.AmpersandToken) + $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6410,7 +6549,7 @@ encaps_list: encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) // save comments - addMeta(encapsed, $2.Meta, meta.EncapsedAndWhitespaceToken) + $2.Meta.SetTokenName(meta.EncapsedAndWhitespaceToken).AppendTo(encapsed.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6429,7 +6568,7 @@ encaps_list: encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(encapsed, $1.Meta, meta.EncapsedAndWhitespaceToken) + $1.Meta.SetTokenName(meta.EncapsedAndWhitespaceToken).AppendTo(encapsed.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6446,7 +6585,7 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6462,9 +6601,11 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6482,38 +6623,48 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) - addMeta($$, $2.Meta, meta.ObjectOperatorToken) - addMeta(fetch, $3.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(fetch.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { - $$ = expr.NewVariable($2) + variable := expr.NewVariable($2) + variable.StringVar = true + + $$ = variable // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.DollarOpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { name := node.NewIdentifier($2.Value) - $$ = expr.NewVariable(name) + variable := expr.NewVariable(name) + variable.StringVar = true + + $$ = variable // save position name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.DollarOpenCurlyBracesToken) - addMeta(name, $2.Meta, meta.IdentifierToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.DollarOpenCurlyBracesToken) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $3.Meta.SetTokenName(meta.DollarCloseCurlyBracesToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.DollarCloseCurlyBracesToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6521,6 +6672,7 @@ encaps_var: { identifier := node.NewIdentifier($2.Value) variable := expr.NewVariable(identifier) + variable.StringVar = true $$ = expr.NewArrayDimFetch(variable, $4) // save position @@ -6529,11 +6681,15 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments - addMeta($$, $1.Meta, meta.DollarOpenCurlyBracesToken) - addMeta(variable, $2.Meta, meta.StringVarnameToken) - addMeta($$, $3.Meta, meta.OpenSquareBracket) - addMeta($$, $5.Meta, meta.CloseSquareBracket) - addMeta($$, $6.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + $2.Meta.SetTokenName(meta.StringVarnameToken).AppendTo(variable.GetMeta()) + $3.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.OpenSquareBracket) + $5.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $5, meta.CloseSquareBracket) + $6.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $6, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6541,6 +6697,12 @@ encaps_var: { $$ = $2; + // save comments + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6554,7 +6716,7 @@ encaps_var_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.StringToken) + $1.Meta.SetTokenName(meta.StringToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6571,7 +6733,7 @@ encaps_var_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.NumStringToken) + $1.Meta.SetTokenName(meta.NumStringToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6585,7 +6747,7 @@ encaps_var_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6600,9 +6762,9 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.IssetToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.IssetToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6614,9 +6776,9 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.EmptyToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.EmptyToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6628,9 +6790,9 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.EmptyToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.EmptyToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6642,7 +6804,7 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.IncludeToken) + $1.Meta.SetTokenName(meta.IncludeToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6654,7 +6816,7 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.IncludeOnceToken) + $1.Meta.SetTokenName(meta.IncludeOnceToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6666,9 +6828,9 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.EvalToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.EvalToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6680,7 +6842,7 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.RequireToken) + $1.Meta.SetTokenName(meta.RequireToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6692,7 +6854,7 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.RequireOnceToken) + $1.Meta.SetTokenName(meta.RequireOnceToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6710,7 +6872,7 @@ isset_variables: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6742,8 +6904,8 @@ class_constant: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6757,8 +6919,8 @@ class_constant: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6775,8 +6937,8 @@ static_class_name_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6793,8 +6955,8 @@ class_name_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/php5/php5_test.go b/php5/php5_test.go index 1610058..33eebe8 100644 --- a/php5/php5_test.go +++ b/php5/php5_test.go @@ -481,6 +481,7 @@ func TestPhp5(t *testing.T) { StartPos: 10, EndPos: 11, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, @@ -508,6 +509,7 @@ func TestPhp5(t *testing.T) { StartPos: 17, EndPos: 18, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, @@ -544,6 +546,7 @@ func TestPhp5(t *testing.T) { StartPos: 24, EndPos: 27, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -578,6 +581,7 @@ func TestPhp5(t *testing.T) { StartPos: 29, EndPos: 30, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -605,6 +609,7 @@ func TestPhp5(t *testing.T) { StartPos: 36, EndPos: 37, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -641,6 +646,7 @@ func TestPhp5(t *testing.T) { StartPos: 43, EndPos: 46, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -684,6 +690,7 @@ func TestPhp5(t *testing.T) { StartPos: 53, EndPos: 54, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -711,6 +718,7 @@ func TestPhp5(t *testing.T) { StartPos: 60, EndPos: 61, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -792,6 +800,7 @@ func TestPhp5(t *testing.T) { StartPos: 76, EndPos: 77, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, @@ -819,6 +828,7 @@ func TestPhp5(t *testing.T) { StartPos: 83, EndPos: 84, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, @@ -855,6 +865,7 @@ func TestPhp5(t *testing.T) { StartPos: 90, EndPos: 93, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -898,6 +909,7 @@ func TestPhp5(t *testing.T) { StartPos: 100, EndPos: 101, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -925,6 +937,7 @@ func TestPhp5(t *testing.T) { StartPos: 107, EndPos: 108, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -997,6 +1010,7 @@ func TestPhp5(t *testing.T) { StartPos: 122, EndPos: 123, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, @@ -1024,6 +1038,7 @@ func TestPhp5(t *testing.T) { StartPos: 129, EndPos: 130, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, @@ -1046,8 +1061,8 @@ func TestPhp5(t *testing.T) { StartPos: 137, EndPos: 180, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 9, @@ -1093,6 +1108,7 @@ func TestPhp5(t *testing.T) { StartPos: 154, EndPos: 157, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, @@ -1166,6 +1182,7 @@ func TestPhp5(t *testing.T) { StartPos: 173, EndPos: 176, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, @@ -1205,8 +1222,8 @@ func TestPhp5(t *testing.T) { StartPos: 195, EndPos: 245, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, MethodName: &node.Identifier{ Position: &position.Position{ StartLine: 10, @@ -1263,6 +1280,7 @@ func TestPhp5(t *testing.T) { StartPos: 219, EndPos: 222, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 10, @@ -1308,8 +1326,8 @@ func TestPhp5(t *testing.T) { StartPos: 230, EndPos: 241, }, - ByRef: true, Variadic: true, + ByRef: true, VariableType: &name.Name{ Position: &position.Position{ StartLine: 10, @@ -1336,6 +1354,7 @@ func TestPhp5(t *testing.T) { StartPos: 238, EndPos: 241, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 10, @@ -1374,9 +1393,9 @@ func TestPhp5(t *testing.T) { StartPos: 250, EndPos: 289, }, - ReturnsRef: false, Static: false, PhpDocComment: "", + ReturnsRef: false, Params: []node.Node{ &node.Parameter{ Position: &position.Position{ @@ -1413,6 +1432,7 @@ func TestPhp5(t *testing.T) { StartPos: 263, EndPos: 266, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 11, @@ -1486,6 +1506,7 @@ func TestPhp5(t *testing.T) { StartPos: 282, EndPos: 285, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 11, @@ -1515,9 +1536,9 @@ func TestPhp5(t *testing.T) { StartPos: 294, EndPos: 340, }, + PhpDocComment: "", ReturnsRef: false, Static: true, - PhpDocComment: "", Params: []node.Node{ &node.Parameter{ Position: &position.Position{ @@ -1526,8 +1547,8 @@ func TestPhp5(t *testing.T) { StartPos: 310, EndPos: 322, }, - ByRef: false, Variadic: false, + ByRef: false, VariableType: &name.Name{ Position: &position.Position{ StartLine: 12, @@ -1554,6 +1575,7 @@ func TestPhp5(t *testing.T) { StartPos: 314, EndPos: 317, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 12, @@ -1627,6 +1649,7 @@ func TestPhp5(t *testing.T) { StartPos: 333, EndPos: 336, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 12, @@ -1928,6 +1951,7 @@ func TestPhp5(t *testing.T) { StartPos: 700, EndPos: 703, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 30, @@ -1979,6 +2003,7 @@ func TestPhp5(t *testing.T) { StartPos: 715, EndPos: 718, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 31, @@ -2040,6 +2065,7 @@ func TestPhp5(t *testing.T) { StartPos: 733, EndPos: 736, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 32, @@ -2101,6 +2127,7 @@ func TestPhp5(t *testing.T) { StartPos: 790, EndPos: 793, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 33, @@ -2162,6 +2189,7 @@ func TestPhp5(t *testing.T) { StartPos: 810, EndPos: 813, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 34, @@ -2179,6 +2207,7 @@ func TestPhp5(t *testing.T) { StartPos: 815, EndPos: 818, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 34, @@ -2215,6 +2244,7 @@ func TestPhp5(t *testing.T) { StartPos: 826, EndPos: 829, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 35, @@ -2241,6 +2271,7 @@ func TestPhp5(t *testing.T) { StartPos: 831, EndPos: 834, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 35, @@ -2292,6 +2323,7 @@ func TestPhp5(t *testing.T) { StartPos: 846, EndPos: 849, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 36, @@ -2355,6 +2387,7 @@ func TestPhp5(t *testing.T) { StartPos: 868, EndPos: 873, }, + StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 37, @@ -2406,6 +2439,7 @@ func TestPhp5(t *testing.T) { StartPos: 887, EndPos: 889, }, + StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 38, @@ -2467,6 +2501,7 @@ func TestPhp5(t *testing.T) { StartPos: 906, EndPos: 909, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 39, @@ -2512,6 +2547,7 @@ func TestPhp5(t *testing.T) { StartPos: 928, EndPos: 929, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 41, @@ -2546,6 +2582,7 @@ func TestPhp5(t *testing.T) { StartPos: 949, EndPos: 950, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 43, @@ -2580,6 +2617,7 @@ func TestPhp5(t *testing.T) { StartPos: 965, EndPos: 966, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 44, @@ -2616,6 +2654,7 @@ func TestPhp5(t *testing.T) { StartPos: 985, EndPos: 986, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 46, @@ -2667,6 +2706,7 @@ func TestPhp5(t *testing.T) { StartPos: 1014, EndPos: 1015, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 49, @@ -2701,6 +2741,7 @@ func TestPhp5(t *testing.T) { StartPos: 1030, EndPos: 1031, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 50, @@ -2735,6 +2776,7 @@ func TestPhp5(t *testing.T) { StartPos: 1045, EndPos: 1046, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 51, @@ -3788,6 +3830,7 @@ func TestPhp5(t *testing.T) { StartPos: 1684, EndPos: 1712, }, + Alt: true, Consts: []node.Node{ &stmt.Constant{ Position: &position.Position{ @@ -3819,10 +3862,10 @@ func TestPhp5(t *testing.T) { }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1700, - EndPos: 1712, + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, }, Stmts: []node.Node{}, }, @@ -3868,6 +3911,7 @@ func TestPhp5(t *testing.T) { StartPos: 1739, EndPos: 1740, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 75, @@ -3904,6 +3948,7 @@ func TestPhp5(t *testing.T) { StartPos: 1753, EndPos: 1754, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 76, @@ -3938,6 +3983,7 @@ func TestPhp5(t *testing.T) { StartPos: 1764, EndPos: 1765, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, @@ -3974,6 +4020,7 @@ func TestPhp5(t *testing.T) { StartPos: 1772, EndPos: 1773, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, @@ -4010,6 +4057,7 @@ func TestPhp5(t *testing.T) { StartPos: 1781, EndPos: 1782, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, @@ -4035,6 +4083,7 @@ func TestPhp5(t *testing.T) { StartPos: 1787, EndPos: 1788, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, @@ -4079,6 +4128,7 @@ func TestPhp5(t *testing.T) { StartPos: 1804, EndPos: 1805, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 78, @@ -4115,6 +4165,7 @@ func TestPhp5(t *testing.T) { StartPos: 1813, EndPos: 1814, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 78, @@ -4151,6 +4202,7 @@ func TestPhp5(t *testing.T) { StartPos: 1840, EndPos: 1841, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 79, @@ -4168,6 +4220,7 @@ func TestPhp5(t *testing.T) { StartPos: 1846, EndPos: 1847, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 79, @@ -4211,6 +4264,7 @@ func TestPhp5(t *testing.T) { StartPos: 1870, EndPos: 1871, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 80, @@ -4245,6 +4299,7 @@ func TestPhp5(t *testing.T) { StartPos: 1888, EndPos: 1889, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 81, @@ -4262,6 +4317,7 @@ func TestPhp5(t *testing.T) { StartPos: 1894, EndPos: 1895, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 81, @@ -4296,6 +4352,7 @@ func TestPhp5(t *testing.T) { StartPos: 1923, EndPos: 1924, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 82, @@ -4313,6 +4370,7 @@ func TestPhp5(t *testing.T) { StartPos: 1929, EndPos: 1930, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 82, @@ -4330,6 +4388,7 @@ func TestPhp5(t *testing.T) { StartPos: 1935, EndPos: 1936, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 82, @@ -4373,6 +4432,7 @@ func TestPhp5(t *testing.T) { StartPos: 1959, EndPos: 1960, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 83, @@ -4390,6 +4450,7 @@ func TestPhp5(t *testing.T) { StartPos: 1965, EndPos: 1966, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 83, @@ -4424,6 +4485,7 @@ func TestPhp5(t *testing.T) { StartPos: 1983, EndPos: 1984, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 84, @@ -4441,6 +4503,7 @@ func TestPhp5(t *testing.T) { StartPos: 1989, EndPos: 1990, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 84, @@ -4465,6 +4528,7 @@ func TestPhp5(t *testing.T) { StartPos: 1996, EndPos: 1997, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 84, @@ -4500,6 +4564,7 @@ func TestPhp5(t *testing.T) { StartPos: 2014, EndPos: 2015, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 85, @@ -4517,6 +4582,7 @@ func TestPhp5(t *testing.T) { StartPos: 2020, EndPos: 2021, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 85, @@ -4549,6 +4615,7 @@ func TestPhp5(t *testing.T) { StartPos: 2031, EndPos: 2032, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 85, @@ -4599,8 +4666,8 @@ func TestPhp5(t *testing.T) { StartPos: 2062, EndPos: 2132, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 88, @@ -4618,8 +4685,8 @@ func TestPhp5(t *testing.T) { StartPos: 2082, EndPos: 2098, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 89, @@ -4664,6 +4731,7 @@ func TestPhp5(t *testing.T) { StartPos: 2126, EndPos: 2127, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, @@ -4721,6 +4789,7 @@ func TestPhp5(t *testing.T) { StartPos: 2158, EndPos: 2159, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, @@ -4757,6 +4826,7 @@ func TestPhp5(t *testing.T) { StartPos: 2171, EndPos: 2172, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, @@ -4825,8 +4895,8 @@ func TestPhp5(t *testing.T) { StartPos: 2217, EndPos: 2234, }, - ReturnsRef: true, PhpDocComment: "", + ReturnsRef: true, FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 96, @@ -4853,6 +4923,7 @@ func TestPhp5(t *testing.T) { StartPos: 2245, EndPos: 2246, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -4870,6 +4941,7 @@ func TestPhp5(t *testing.T) { StartPos: 2249, EndPos: 2250, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -4887,6 +4959,7 @@ func TestPhp5(t *testing.T) { StartPos: 2253, EndPos: 2255, }, + StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 97, @@ -4894,6 +4967,7 @@ func TestPhp5(t *testing.T) { StartPos: 2254, EndPos: 2255, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -4912,6 +4986,7 @@ func TestPhp5(t *testing.T) { StartPos: 2258, EndPos: 2265, }, + StringVar: false, VarName: &expr.FunctionCall{ Position: &position.Position{ StartLine: 97, @@ -4998,6 +5073,7 @@ func TestPhp5(t *testing.T) { StartPos: 2290, EndPos: 2291, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 100, @@ -5032,6 +5108,7 @@ func TestPhp5(t *testing.T) { StartPos: 2303, EndPos: 2304, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 101, @@ -5066,6 +5143,7 @@ func TestPhp5(t *testing.T) { StartPos: 2318, EndPos: 2319, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 101, @@ -5102,6 +5180,7 @@ func TestPhp5(t *testing.T) { StartPos: 2331, EndPos: 2332, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 102, @@ -5153,6 +5232,7 @@ func TestPhp5(t *testing.T) { StartPos: 2352, EndPos: 2353, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, @@ -5187,6 +5267,7 @@ func TestPhp5(t *testing.T) { StartPos: 2367, EndPos: 2368, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, @@ -5221,6 +5302,7 @@ func TestPhp5(t *testing.T) { StartPos: 2382, EndPos: 2383, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, @@ -5274,6 +5356,7 @@ func TestPhp5(t *testing.T) { StartPos: 2403, EndPos: 2404, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 104, @@ -5308,6 +5391,7 @@ func TestPhp5(t *testing.T) { StartPos: 2418, EndPos: 2419, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 104, @@ -5350,6 +5434,7 @@ func TestPhp5(t *testing.T) { StartPos: 2434, EndPos: 2435, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 104, @@ -5665,6 +5750,7 @@ func TestPhp5(t *testing.T) { StartPos: 2627, EndPos: 2628, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 112, @@ -5741,6 +5827,7 @@ func TestPhp5(t *testing.T) { StartPos: 2659, EndPos: 2660, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 113, @@ -5767,6 +5854,7 @@ func TestPhp5(t *testing.T) { StartPos: 2663, EndPos: 2664, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 113, @@ -5852,6 +5940,7 @@ func TestPhp5(t *testing.T) { StartPos: 2699, EndPos: 2700, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 114, @@ -5887,6 +5976,7 @@ func TestPhp5(t *testing.T) { StartPos: 2707, EndPos: 2708, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 114, @@ -5924,6 +6014,7 @@ func TestPhp5(t *testing.T) { StartPos: 2721, EndPos: 2722, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 115, @@ -5949,6 +6040,7 @@ func TestPhp5(t *testing.T) { StartPos: 2725, EndPos: 2726, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 115, @@ -5993,6 +6085,7 @@ func TestPhp5(t *testing.T) { StartPos: 2742, EndPos: 2743, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 116, @@ -6027,6 +6120,7 @@ func TestPhp5(t *testing.T) { StartPos: 2750, EndPos: 2751, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 116, @@ -6351,6 +6445,7 @@ func TestPhp5(t *testing.T) { StartPos: 2994, EndPos: 2995, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 138, @@ -7016,6 +7111,7 @@ func TestPhp5(t *testing.T) { StartPos: 3286, EndPos: 3287, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 147, @@ -7074,6 +7170,7 @@ func TestPhp5(t *testing.T) { StartPos: 3319, EndPos: 3320, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 148, @@ -7121,6 +7218,7 @@ func TestPhp5(t *testing.T) { StartPos: 3350, EndPos: 3351, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 148, @@ -7179,6 +7277,7 @@ func TestPhp5(t *testing.T) { StartPos: 3383, EndPos: 3384, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 149, @@ -7226,6 +7325,7 @@ func TestPhp5(t *testing.T) { StartPos: 3415, EndPos: 3416, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 149, @@ -7273,6 +7373,7 @@ func TestPhp5(t *testing.T) { StartPos: 3457, EndPos: 3458, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 149, @@ -7331,6 +7432,7 @@ func TestPhp5(t *testing.T) { StartPos: 3490, EndPos: 3491, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 150, @@ -7369,6 +7471,7 @@ func TestPhp5(t *testing.T) { StartPos: 3517, EndPos: 3518, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 152, @@ -7386,6 +7489,7 @@ func TestPhp5(t *testing.T) { StartPos: 3521, EndPos: 3522, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 152, @@ -8004,6 +8108,7 @@ func TestPhp5(t *testing.T) { StartPos: 3737, EndPos: 3738, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 164, @@ -8053,6 +8158,7 @@ func TestPhp5(t *testing.T) { StartPos: 3746, EndPos: 3747, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 165, @@ -8198,6 +8304,7 @@ func TestPhp5(t *testing.T) { StartPos: 3794, EndPos: 3795, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 168, @@ -8259,6 +8366,7 @@ func TestPhp5(t *testing.T) { StartPos: 3813, EndPos: 3814, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 169, @@ -8310,6 +8418,7 @@ func TestPhp5(t *testing.T) { StartPos: 3827, EndPos: 3828, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 170, @@ -8395,6 +8504,7 @@ func TestPhp5(t *testing.T) { StartPos: 3845, EndPos: 3846, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 170, @@ -8431,6 +8541,7 @@ func TestPhp5(t *testing.T) { StartPos: 3853, EndPos: 3854, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 171, @@ -8464,6 +8575,7 @@ func TestPhp5(t *testing.T) { StartPos: 3860, EndPos: 3861, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 172, @@ -8541,6 +8653,7 @@ func TestPhp5(t *testing.T) { StartPos: 3885, EndPos: 3886, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 175, @@ -8574,6 +8687,7 @@ func TestPhp5(t *testing.T) { StartPos: 3898, EndPos: 3899, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 176, @@ -8600,9 +8714,9 @@ func TestPhp5(t *testing.T) { StartPos: 3904, EndPos: 3915, }, + PhpDocComment: "", ReturnsRef: false, Static: false, - PhpDocComment: "", Stmts: []node.Node{}, }, }, @@ -8631,8 +8745,8 @@ func TestPhp5(t *testing.T) { StartPos: 3929, EndPos: 3930, }, - Variadic: false, ByRef: false, + Variadic: false, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 178, @@ -8640,6 +8754,7 @@ func TestPhp5(t *testing.T) { StartPos: 3929, EndPos: 3930, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, @@ -8658,8 +8773,8 @@ func TestPhp5(t *testing.T) { StartPos: 3933, EndPos: 3934, }, - Variadic: false, ByRef: false, + Variadic: false, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 178, @@ -8667,6 +8782,7 @@ func TestPhp5(t *testing.T) { StartPos: 3933, EndPos: 3934, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, @@ -8694,6 +8810,7 @@ func TestPhp5(t *testing.T) { StartPos: 3942, EndPos: 3943, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, @@ -8718,6 +8835,7 @@ func TestPhp5(t *testing.T) { StartPos: 3947, EndPos: 3948, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, @@ -8768,6 +8886,7 @@ func TestPhp5(t *testing.T) { StartPos: 3966, EndPos: 3967, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, @@ -8795,6 +8914,7 @@ func TestPhp5(t *testing.T) { StartPos: 3970, EndPos: 3971, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, @@ -8829,6 +8949,7 @@ func TestPhp5(t *testing.T) { StartPos: 3980, EndPos: 3981, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, @@ -8847,6 +8968,7 @@ func TestPhp5(t *testing.T) { StartPos: 3984, EndPos: 3985, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, @@ -9008,6 +9130,7 @@ func TestPhp5(t *testing.T) { StartPos: 4050, EndPos: 4051, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 185, @@ -9084,6 +9207,7 @@ func TestPhp5(t *testing.T) { StartPos: 4072, EndPos: 4073, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 187, @@ -9117,6 +9241,7 @@ func TestPhp5(t *testing.T) { StartPos: 4083, EndPos: 4084, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 188, @@ -9168,6 +9293,7 @@ func TestPhp5(t *testing.T) { StartPos: 4103, EndPos: 4104, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, @@ -9219,6 +9345,7 @@ func TestPhp5(t *testing.T) { StartPos: 4123, EndPos: 4124, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 192, @@ -9331,6 +9458,7 @@ func TestPhp5(t *testing.T) { StartPos: 4154, EndPos: 4155, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 194, @@ -9431,6 +9559,7 @@ func TestPhp5(t *testing.T) { StartPos: 4173, EndPos: 4176, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 196, @@ -9472,6 +9601,7 @@ func TestPhp5(t *testing.T) { StartPos: 4184, EndPos: 4185, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 196, @@ -9509,6 +9639,7 @@ func TestPhp5(t *testing.T) { StartPos: 4192, EndPos: 4193, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 198, @@ -9542,6 +9673,7 @@ func TestPhp5(t *testing.T) { StartPos: 4200, EndPos: 4201, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 199, @@ -9575,6 +9707,7 @@ func TestPhp5(t *testing.T) { StartPos: 4210, EndPos: 4211, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 200, @@ -9608,6 +9741,7 @@ func TestPhp5(t *testing.T) { StartPos: 4218, EndPos: 4219, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 201, @@ -9641,6 +9775,7 @@ func TestPhp5(t *testing.T) { StartPos: 4233, EndPos: 4234, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 203, @@ -9674,6 +9809,7 @@ func TestPhp5(t *testing.T) { StartPos: 4252, EndPos: 4253, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 204, @@ -9707,6 +9843,7 @@ func TestPhp5(t *testing.T) { StartPos: 4266, EndPos: 4267, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 205, @@ -9740,6 +9877,7 @@ func TestPhp5(t *testing.T) { StartPos: 4285, EndPos: 4286, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 206, @@ -9773,6 +9911,7 @@ func TestPhp5(t *testing.T) { StartPos: 4292, EndPos: 4293, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 208, @@ -9825,6 +9964,7 @@ func TestPhp5(t *testing.T) { StartPos: 4313, EndPos: 4314, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 209, @@ -9877,6 +10017,7 @@ func TestPhp5(t *testing.T) { StartPos: 4344, EndPos: 4345, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 210, @@ -9930,6 +10071,7 @@ func TestPhp5(t *testing.T) { StartPos: 4373, EndPos: 4374, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 212, @@ -9947,6 +10089,7 @@ func TestPhp5(t *testing.T) { StartPos: 4377, EndPos: 4378, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 212, @@ -10035,6 +10178,7 @@ func TestPhp5(t *testing.T) { StartPos: 4407, EndPos: 4408, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 214, @@ -10083,6 +10227,7 @@ func TestPhp5(t *testing.T) { StartPos: 4418, EndPos: 4419, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, @@ -10108,6 +10253,7 @@ func TestPhp5(t *testing.T) { StartPos: 4422, EndPos: 4423, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, @@ -10128,6 +10274,7 @@ func TestPhp5(t *testing.T) { StartPos: 4428, EndPos: 4429, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, @@ -10183,6 +10330,7 @@ func TestPhp5(t *testing.T) { StartPos: 4439, EndPos: 4440, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 216, @@ -10204,6 +10352,7 @@ func TestPhp5(t *testing.T) { StartPos: 4447, EndPos: 4448, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 216, @@ -10267,6 +10416,7 @@ func TestPhp5(t *testing.T) { StartPos: 4463, EndPos: 4464, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 217, @@ -10290,6 +10440,7 @@ func TestPhp5(t *testing.T) { StartPos: 4470, EndPos: 4471, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 217, @@ -10323,6 +10474,7 @@ func TestPhp5(t *testing.T) { StartPos: 4477, EndPos: 4478, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 219, @@ -10494,6 +10646,7 @@ func TestPhp5(t *testing.T) { StartPos: 4544, EndPos: 4545, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 223, @@ -10527,6 +10680,7 @@ func TestPhp5(t *testing.T) { StartPos: 4551, EndPos: 4552, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 224, @@ -10576,6 +10730,7 @@ func TestPhp5(t *testing.T) { StartPos: 4562, EndPos: 4563, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 225, @@ -10656,6 +10811,7 @@ func TestPhp5(t *testing.T) { StartPos: 4576, EndPos: 4577, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 226, @@ -10760,6 +10916,7 @@ func TestPhp5(t *testing.T) { StartPos: 4608, EndPos: 4609, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 227, @@ -10840,6 +10997,7 @@ func TestPhp5(t *testing.T) { StartPos: 4632, EndPos: 4633, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 228, @@ -11005,6 +11163,7 @@ func TestPhp5(t *testing.T) { StartPos: 4675, EndPos: 4676, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 233, @@ -11217,6 +11376,7 @@ func TestPhp5(t *testing.T) { StartPos: 4742, EndPos: 4745, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 238, @@ -11258,6 +11418,7 @@ func TestPhp5(t *testing.T) { StartPos: 4752, EndPos: 4755, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 239, @@ -11275,6 +11436,7 @@ func TestPhp5(t *testing.T) { StartPos: 4758, EndPos: 4761, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 239, @@ -11335,6 +11497,7 @@ func TestPhp5(t *testing.T) { StartPos: 4773, EndPos: 4776, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 240, @@ -11387,6 +11550,7 @@ func TestPhp5(t *testing.T) { StartPos: 4796, EndPos: 4799, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 241, @@ -11439,6 +11603,7 @@ func TestPhp5(t *testing.T) { StartPos: 4810, EndPos: 4813, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 242, @@ -11472,6 +11637,7 @@ func TestPhp5(t *testing.T) { StartPos: 4818, EndPos: 4819, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, @@ -11489,6 +11655,7 @@ func TestPhp5(t *testing.T) { StartPos: 4823, EndPos: 4824, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, @@ -11506,6 +11673,7 @@ func TestPhp5(t *testing.T) { StartPos: 4828, EndPos: 4829, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, @@ -11539,6 +11707,7 @@ func TestPhp5(t *testing.T) { StartPos: 4834, EndPos: 4835, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 244, @@ -11556,6 +11725,7 @@ func TestPhp5(t *testing.T) { StartPos: 4841, EndPos: 4842, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 244, @@ -11589,6 +11759,7 @@ func TestPhp5(t *testing.T) { StartPos: 4847, EndPos: 4848, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, @@ -11613,6 +11784,7 @@ func TestPhp5(t *testing.T) { StartPos: 4852, EndPos: 4853, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, @@ -11630,6 +11802,7 @@ func TestPhp5(t *testing.T) { StartPos: 4857, EndPos: 4858, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, @@ -11647,6 +11820,7 @@ func TestPhp5(t *testing.T) { StartPos: 4862, EndPos: 4863, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, @@ -11665,6 +11839,7 @@ func TestPhp5(t *testing.T) { StartPos: 4867, EndPos: 4868, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, @@ -11705,6 +11880,7 @@ func TestPhp5(t *testing.T) { StartPos: 4873, EndPos: 4874, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, @@ -11722,6 +11898,7 @@ func TestPhp5(t *testing.T) { StartPos: 4878, EndPos: 4879, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, @@ -11739,6 +11916,7 @@ func TestPhp5(t *testing.T) { StartPos: 4883, EndPos: 4884, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, @@ -11757,6 +11935,7 @@ func TestPhp5(t *testing.T) { StartPos: 4888, EndPos: 4889, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, @@ -11774,6 +11953,7 @@ func TestPhp5(t *testing.T) { StartPos: 4893, EndPos: 4894, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, @@ -11807,6 +11987,7 @@ func TestPhp5(t *testing.T) { StartPos: 4900, EndPos: 4901, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 247, @@ -11840,6 +12021,7 @@ func TestPhp5(t *testing.T) { StartPos: 4907, EndPos: 4908, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, @@ -11866,6 +12048,7 @@ func TestPhp5(t *testing.T) { StartPos: 4913, EndPos: 4915, }, + StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 249, @@ -11873,6 +12056,7 @@ func TestPhp5(t *testing.T) { StartPos: 4914, EndPos: 4915, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 249, @@ -11899,6 +12083,7 @@ func TestPhp5(t *testing.T) { StartPos: 4920, EndPos: 4923, }, + StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 250, @@ -11906,6 +12091,7 @@ func TestPhp5(t *testing.T) { StartPos: 4921, EndPos: 4923, }, + StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 250, @@ -11913,6 +12099,7 @@ func TestPhp5(t *testing.T) { StartPos: 4922, EndPos: 4923, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 250, @@ -11963,6 +12150,7 @@ func TestPhp5(t *testing.T) { StartPos: 4943, EndPos: 4944, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, @@ -11996,6 +12184,7 @@ func TestPhp5(t *testing.T) { StartPos: 4955, EndPos: 4956, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -12013,6 +12202,7 @@ func TestPhp5(t *testing.T) { StartPos: 4961, EndPos: 4962, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -12098,6 +12288,7 @@ func TestPhp5(t *testing.T) { StartPos: 4993, EndPos: 4994, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 255, @@ -12167,6 +12358,7 @@ func TestPhp5(t *testing.T) { StartPos: 5023, EndPos: 5024, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 257, @@ -12200,6 +12392,7 @@ func TestPhp5(t *testing.T) { StartPos: 5038, EndPos: 5039, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 258, @@ -12233,6 +12426,7 @@ func TestPhp5(t *testing.T) { StartPos: 5050, EndPos: 5051, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 259, @@ -12266,6 +12460,7 @@ func TestPhp5(t *testing.T) { StartPos: 5064, EndPos: 5065, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, @@ -12299,6 +12494,7 @@ func TestPhp5(t *testing.T) { StartPos: 5077, EndPos: 5078, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 261, @@ -12332,6 +12528,7 @@ func TestPhp5(t *testing.T) { StartPos: 5092, EndPos: 5093, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 262, @@ -12365,6 +12562,7 @@ func TestPhp5(t *testing.T) { StartPos: 5103, EndPos: 5104, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 263, @@ -12398,6 +12596,7 @@ func TestPhp5(t *testing.T) { StartPos: 5117, EndPos: 5118, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 264, @@ -12431,6 +12630,7 @@ func TestPhp5(t *testing.T) { StartPos: 5131, EndPos: 5132, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 265, @@ -12464,6 +12664,7 @@ func TestPhp5(t *testing.T) { StartPos: 5144, EndPos: 5145, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 266, @@ -12497,6 +12698,7 @@ func TestPhp5(t *testing.T) { StartPos: 5151, EndPos: 5152, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, @@ -12514,6 +12716,7 @@ func TestPhp5(t *testing.T) { StartPos: 5156, EndPos: 5157, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, @@ -12547,6 +12750,7 @@ func TestPhp5(t *testing.T) { StartPos: 5162, EndPos: 5163, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 269, @@ -12564,6 +12768,7 @@ func TestPhp5(t *testing.T) { StartPos: 5167, EndPos: 5168, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 269, @@ -12597,6 +12802,7 @@ func TestPhp5(t *testing.T) { StartPos: 5173, EndPos: 5174, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, @@ -12614,6 +12820,7 @@ func TestPhp5(t *testing.T) { StartPos: 5178, EndPos: 5179, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, @@ -12647,6 +12854,7 @@ func TestPhp5(t *testing.T) { StartPos: 5184, EndPos: 5185, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, @@ -12664,6 +12872,7 @@ func TestPhp5(t *testing.T) { StartPos: 5190, EndPos: 5191, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, @@ -12697,6 +12906,7 @@ func TestPhp5(t *testing.T) { StartPos: 5196, EndPos: 5197, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, @@ -12714,6 +12924,7 @@ func TestPhp5(t *testing.T) { StartPos: 5202, EndPos: 5203, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, @@ -12747,6 +12958,7 @@ func TestPhp5(t *testing.T) { StartPos: 5208, EndPos: 5209, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 273, @@ -12764,6 +12976,7 @@ func TestPhp5(t *testing.T) { StartPos: 5213, EndPos: 5214, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 273, @@ -12797,6 +13010,7 @@ func TestPhp5(t *testing.T) { StartPos: 5219, EndPos: 5220, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, @@ -12814,6 +13028,7 @@ func TestPhp5(t *testing.T) { StartPos: 5224, EndPos: 5225, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, @@ -12847,6 +13062,7 @@ func TestPhp5(t *testing.T) { StartPos: 5230, EndPos: 5231, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, @@ -12864,6 +13080,7 @@ func TestPhp5(t *testing.T) { StartPos: 5236, EndPos: 5237, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, @@ -12897,6 +13114,7 @@ func TestPhp5(t *testing.T) { StartPos: 5242, EndPos: 5243, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, @@ -12914,6 +13132,7 @@ func TestPhp5(t *testing.T) { StartPos: 5248, EndPos: 5249, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, @@ -12947,6 +13166,7 @@ func TestPhp5(t *testing.T) { StartPos: 5254, EndPos: 5255, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, @@ -12964,6 +13184,7 @@ func TestPhp5(t *testing.T) { StartPos: 5259, EndPos: 5260, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, @@ -12997,6 +13218,7 @@ func TestPhp5(t *testing.T) { StartPos: 5265, EndPos: 5266, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, @@ -13014,6 +13236,7 @@ func TestPhp5(t *testing.T) { StartPos: 5272, EndPos: 5273, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, @@ -13047,6 +13270,7 @@ func TestPhp5(t *testing.T) { StartPos: 5278, EndPos: 5279, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, @@ -13064,6 +13288,7 @@ func TestPhp5(t *testing.T) { StartPos: 5285, EndPos: 5286, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, @@ -13097,6 +13322,7 @@ func TestPhp5(t *testing.T) { StartPos: 5291, EndPos: 5292, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, @@ -13114,6 +13340,7 @@ func TestPhp5(t *testing.T) { StartPos: 5297, EndPos: 5298, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, @@ -13147,6 +13374,7 @@ func TestPhp5(t *testing.T) { StartPos: 5303, EndPos: 5304, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, @@ -13164,6 +13392,7 @@ func TestPhp5(t *testing.T) { StartPos: 5310, EndPos: 5311, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, @@ -13197,6 +13426,7 @@ func TestPhp5(t *testing.T) { StartPos: 5316, EndPos: 5317, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, @@ -13214,6 +13444,7 @@ func TestPhp5(t *testing.T) { StartPos: 5321, EndPos: 5322, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, @@ -13247,6 +13478,7 @@ func TestPhp5(t *testing.T) { StartPos: 5327, EndPos: 5328, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, @@ -13264,6 +13496,7 @@ func TestPhp5(t *testing.T) { StartPos: 5332, EndPos: 5333, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, @@ -13297,6 +13530,7 @@ func TestPhp5(t *testing.T) { StartPos: 5338, EndPos: 5339, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, @@ -13314,6 +13548,7 @@ func TestPhp5(t *testing.T) { StartPos: 5343, EndPos: 5344, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, @@ -13347,6 +13582,7 @@ func TestPhp5(t *testing.T) { StartPos: 5349, EndPos: 5350, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, @@ -13364,6 +13600,7 @@ func TestPhp5(t *testing.T) { StartPos: 5355, EndPos: 5356, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, @@ -13397,6 +13634,7 @@ func TestPhp5(t *testing.T) { StartPos: 5361, EndPos: 5362, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, @@ -13414,6 +13652,7 @@ func TestPhp5(t *testing.T) { StartPos: 5368, EndPos: 5369, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, @@ -13447,6 +13686,7 @@ func TestPhp5(t *testing.T) { StartPos: 5374, EndPos: 5375, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, @@ -13464,6 +13704,7 @@ func TestPhp5(t *testing.T) { StartPos: 5379, EndPos: 5380, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, @@ -13497,6 +13738,7 @@ func TestPhp5(t *testing.T) { StartPos: 5385, EndPos: 5386, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, @@ -13514,6 +13756,7 @@ func TestPhp5(t *testing.T) { StartPos: 5391, EndPos: 5392, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, @@ -13547,6 +13790,7 @@ func TestPhp5(t *testing.T) { StartPos: 5397, EndPos: 5398, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, @@ -13564,6 +13808,7 @@ func TestPhp5(t *testing.T) { StartPos: 5403, EndPos: 5404, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, @@ -13597,6 +13842,7 @@ func TestPhp5(t *testing.T) { StartPos: 5409, EndPos: 5410, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, @@ -13614,6 +13860,7 @@ func TestPhp5(t *testing.T) { StartPos: 5415, EndPos: 5416, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, @@ -13647,6 +13894,7 @@ func TestPhp5(t *testing.T) { StartPos: 5421, EndPos: 5422, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, @@ -13664,6 +13912,7 @@ func TestPhp5(t *testing.T) { StartPos: 5427, EndPos: 5428, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, @@ -13697,6 +13946,7 @@ func TestPhp5(t *testing.T) { StartPos: 5433, EndPos: 5434, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, @@ -13714,6 +13964,7 @@ func TestPhp5(t *testing.T) { StartPos: 5438, EndPos: 5439, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, @@ -13747,6 +13998,7 @@ func TestPhp5(t *testing.T) { StartPos: 5445, EndPos: 5446, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, @@ -13764,6 +14016,7 @@ func TestPhp5(t *testing.T) { StartPos: 5451, EndPos: 5452, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, @@ -13797,6 +14050,7 @@ func TestPhp5(t *testing.T) { StartPos: 5457, EndPos: 5458, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, @@ -13857,6 +14111,7 @@ func TestPhp5(t *testing.T) { StartPos: 5474, EndPos: 5475, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, @@ -13917,6 +14172,7 @@ func TestPhp5(t *testing.T) { StartPos: 5488, EndPos: 5489, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, @@ -13954,6 +14210,7 @@ func TestPhp5(t *testing.T) { StartPos: 5495, EndPos: 5496, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, @@ -13971,6 +14228,7 @@ func TestPhp5(t *testing.T) { StartPos: 5500, EndPos: 5501, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, @@ -14004,6 +14262,7 @@ func TestPhp5(t *testing.T) { StartPos: 5506, EndPos: 5507, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, @@ -14021,6 +14280,7 @@ func TestPhp5(t *testing.T) { StartPos: 5512, EndPos: 5513, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, @@ -14054,6 +14314,7 @@ func TestPhp5(t *testing.T) { StartPos: 5518, EndPos: 5519, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, @@ -14071,6 +14332,7 @@ func TestPhp5(t *testing.T) { StartPos: 5524, EndPos: 5525, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, @@ -14104,6 +14366,7 @@ func TestPhp5(t *testing.T) { StartPos: 5530, EndPos: 5531, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, @@ -14121,6 +14384,7 @@ func TestPhp5(t *testing.T) { StartPos: 5536, EndPos: 5537, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, @@ -14154,6 +14418,7 @@ func TestPhp5(t *testing.T) { StartPos: 5542, EndPos: 5543, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 301, @@ -14171,6 +14436,7 @@ func TestPhp5(t *testing.T) { StartPos: 5548, EndPos: 5549, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 301, @@ -14204,6 +14470,7 @@ func TestPhp5(t *testing.T) { StartPos: 5554, EndPos: 5555, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, @@ -14221,6 +14488,7 @@ func TestPhp5(t *testing.T) { StartPos: 5560, EndPos: 5561, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, @@ -14254,6 +14522,7 @@ func TestPhp5(t *testing.T) { StartPos: 5566, EndPos: 5567, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, @@ -14271,6 +14540,7 @@ func TestPhp5(t *testing.T) { StartPos: 5572, EndPos: 5573, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, @@ -14304,6 +14574,7 @@ func TestPhp5(t *testing.T) { StartPos: 5578, EndPos: 5579, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, @@ -14321,6 +14592,7 @@ func TestPhp5(t *testing.T) { StartPos: 5584, EndPos: 5585, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, @@ -14354,6 +14626,7 @@ func TestPhp5(t *testing.T) { StartPos: 5590, EndPos: 5591, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, @@ -14371,6 +14644,7 @@ func TestPhp5(t *testing.T) { StartPos: 5596, EndPos: 5597, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, @@ -14404,6 +14678,7 @@ func TestPhp5(t *testing.T) { StartPos: 5602, EndPos: 5603, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, @@ -14421,6 +14696,7 @@ func TestPhp5(t *testing.T) { StartPos: 5608, EndPos: 5609, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, @@ -14454,6 +14730,7 @@ func TestPhp5(t *testing.T) { StartPos: 5614, EndPos: 5615, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, @@ -14471,6 +14748,7 @@ func TestPhp5(t *testing.T) { StartPos: 5621, EndPos: 5622, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, @@ -14504,6 +14782,7 @@ func TestPhp5(t *testing.T) { StartPos: 5627, EndPos: 5628, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, @@ -14521,6 +14800,7 @@ func TestPhp5(t *testing.T) { StartPos: 5634, EndPos: 5635, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, @@ -14554,6 +14834,7 @@ func TestPhp5(t *testing.T) { StartPos: 5640, EndPos: 5641, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, @@ -14571,6 +14852,7 @@ func TestPhp5(t *testing.T) { StartPos: 5647, EndPos: 5648, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, @@ -15101,6 +15383,7 @@ func TestPhp5(t *testing.T) { StartPos: 5810, EndPos: 5813, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 322, @@ -15141,6 +15424,7 @@ func TestPhp5(t *testing.T) { StartPos: 5822, EndPos: 5825, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 323, @@ -15158,6 +15442,7 @@ func TestPhp5(t *testing.T) { StartPos: 5828, EndPos: 5831, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 323, @@ -15206,6 +15491,7 @@ func TestPhp5(t *testing.T) { StartPos: 5840, EndPos: 5844, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 324, @@ -15294,6 +15580,7 @@ func TestPhp5(t *testing.T) { StartPos: 5856, EndPos: 5860, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, @@ -15328,6 +15615,7 @@ func TestPhp5(t *testing.T) { StartPos: 5862, EndPos: 5863, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, @@ -15374,6 +15662,7 @@ func TestPhp5(t *testing.T) { StartPos: 5875, EndPos: 5876, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, @@ -15429,6 +15718,7 @@ func TestPhp5(t *testing.T) { StartPos: 5891, EndPos: 5892, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, @@ -15508,6 +15798,7 @@ func TestPhp5(t *testing.T) { StartPos: 5914, EndPos: 5915, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 327, @@ -15560,6 +15851,7 @@ func TestPhp5(t *testing.T) { StartPos: 5932, EndPos: 5933, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, @@ -15612,6 +15904,7 @@ func TestPhp5(t *testing.T) { StartPos: 5950, EndPos: 5951, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 329, @@ -15664,6 +15957,7 @@ func TestPhp5(t *testing.T) { StartPos: 5968, EndPos: 5969, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 330, @@ -15716,6 +16010,7 @@ func TestPhp5(t *testing.T) { StartPos: 5986, EndPos: 5987, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 331, @@ -15760,6 +16055,7 @@ func TestPhp5(t *testing.T) { StartPos: 6005, EndPos: 6006, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 332, @@ -15821,6 +16117,7 @@ func TestPhp5(t *testing.T) { StartPos: 6027, EndPos: 6028, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 333, @@ -15891,6 +16188,7 @@ func TestPhp5(t *testing.T) { StartPos: 6052, EndPos: 6053, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 334, @@ -15952,6 +16250,7 @@ func TestPhp5(t *testing.T) { StartPos: 6073, EndPos: 6074, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 335, @@ -16013,6 +16312,7 @@ func TestPhp5(t *testing.T) { StartPos: 6094, EndPos: 6095, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 336, @@ -16074,6 +16374,7 @@ func TestPhp5(t *testing.T) { StartPos: 6115, EndPos: 6116, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 337, @@ -16135,6 +16436,7 @@ func TestPhp5(t *testing.T) { StartPos: 6137, EndPos: 6138, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 338, @@ -16196,6 +16498,7 @@ func TestPhp5(t *testing.T) { StartPos: 6159, EndPos: 6160, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 339, @@ -16257,6 +16560,7 @@ func TestPhp5(t *testing.T) { StartPos: 6180, EndPos: 6181, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 340, @@ -16318,6 +16622,7 @@ func TestPhp5(t *testing.T) { StartPos: 6201, EndPos: 6202, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 341, @@ -16379,6 +16684,7 @@ func TestPhp5(t *testing.T) { StartPos: 6223, EndPos: 6224, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 342, @@ -16440,6 +16746,7 @@ func TestPhp5(t *testing.T) { StartPos: 6245, EndPos: 6246, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 343, @@ -16501,6 +16808,7 @@ func TestPhp5(t *testing.T) { StartPos: 6266, EndPos: 6267, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 344, @@ -16562,6 +16870,7 @@ func TestPhp5(t *testing.T) { StartPos: 6289, EndPos: 6290, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 345, @@ -16623,6 +16932,7 @@ func TestPhp5(t *testing.T) { StartPos: 6312, EndPos: 6313, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 346, @@ -16684,6 +16994,7 @@ func TestPhp5(t *testing.T) { StartPos: 6334, EndPos: 6335, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 347, @@ -16745,6 +17056,7 @@ func TestPhp5(t *testing.T) { StartPos: 6357, EndPos: 6358, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 348, @@ -16806,6 +17118,7 @@ func TestPhp5(t *testing.T) { StartPos: 6378, EndPos: 6379, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 349, @@ -16867,6 +17180,7 @@ func TestPhp5(t *testing.T) { StartPos: 6399, EndPos: 6400, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 350, @@ -16928,6 +17242,7 @@ func TestPhp5(t *testing.T) { StartPos: 6420, EndPos: 6421, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 351, @@ -16989,6 +17304,7 @@ func TestPhp5(t *testing.T) { StartPos: 6442, EndPos: 6443, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 352, @@ -17050,6 +17366,7 @@ func TestPhp5(t *testing.T) { StartPos: 6465, EndPos: 6466, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 353, @@ -17111,6 +17428,7 @@ func TestPhp5(t *testing.T) { StartPos: 6486, EndPos: 6487, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 354, @@ -17172,6 +17490,7 @@ func TestPhp5(t *testing.T) { StartPos: 6508, EndPos: 6509, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 355, @@ -17233,6 +17552,7 @@ func TestPhp5(t *testing.T) { StartPos: 6530, EndPos: 6531, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 356, @@ -17294,6 +17614,7 @@ func TestPhp5(t *testing.T) { StartPos: 6552, EndPos: 6553, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 357, @@ -17355,6 +17676,7 @@ func TestPhp5(t *testing.T) { StartPos: 6574, EndPos: 6575, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 358, @@ -17416,6 +17738,7 @@ func TestPhp5(t *testing.T) { StartPos: 6595, EndPos: 6596, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 359, @@ -17487,6 +17810,7 @@ func TestPhp5(t *testing.T) { StartPos: 6619, EndPos: 6620, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 360, @@ -17558,6 +17882,7 @@ func TestPhp5(t *testing.T) { StartPos: 6645, EndPos: 6646, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 361, @@ -17602,6 +17927,7 @@ func TestPhp5(t *testing.T) { StartPos: 6670, EndPos: 6671, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 362, @@ -17664,6 +17990,7 @@ func TestPhp5(t *testing.T) { StartPos: 6689, EndPos: 6690, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 363, @@ -17726,6 +18053,7 @@ func TestPhp5(t *testing.T) { StartPos: 6718, EndPos: 6719, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 364, @@ -17788,6 +18116,7 @@ func TestPhp5(t *testing.T) { StartPos: 6738, EndPos: 6739, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 365, @@ -17831,6 +18160,7 @@ func TestPhp5(t *testing.T) { StartPos: 6761, EndPos: 6762, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 366, @@ -17919,6 +18249,7 @@ func TestPhp5(t *testing.T) { StartPos: 6793, EndPos: 6794, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 367, @@ -18076,6 +18407,7 @@ func TestPhp5(t *testing.T) { StartPos: 6840, EndPos: 6844, }, + StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 370, @@ -18083,6 +18415,7 @@ func TestPhp5(t *testing.T) { StartPos: 6841, EndPos: 6844, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 370, @@ -18117,6 +18450,7 @@ func TestPhp5(t *testing.T) { StartPos: 6850, EndPos: 6853, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 372, @@ -18172,6 +18506,7 @@ func TestPhp5(t *testing.T) { StartPos: 6860, EndPos: 6863, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 373, @@ -18233,6 +18568,7 @@ func TestPhp5(t *testing.T) { StartPos: 6876, EndPos: 6877, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 374, @@ -18250,6 +18586,7 @@ func TestPhp5(t *testing.T) { StartPos: 6879, EndPos: 6880, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 374, @@ -18276,6 +18613,7 @@ func TestPhp5(t *testing.T) { StartPos: 6886, EndPos: 6890, }, + StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 375, @@ -18283,6 +18621,7 @@ func TestPhp5(t *testing.T) { StartPos: 6888, EndPos: 6889, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 375, @@ -18316,6 +18655,7 @@ func TestPhp5(t *testing.T) { StartPos: 6895, EndPos: 6898, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 376, @@ -18333,6 +18673,7 @@ func TestPhp5(t *testing.T) { StartPos: 6901, EndPos: 6906, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 376, @@ -18374,6 +18715,7 @@ func TestPhp5(t *testing.T) { StartPos: 6913, EndPos: 6916, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 377, diff --git a/php7/parser.go b/php7/parser.go index 0e24b0f..c850d0c 100644 --- a/php7/parser.go +++ b/php7/parser.go @@ -98,12 +98,34 @@ func isDollar(r rune) bool { return r == '$' } -func addMeta(n node.Node, mm []meta.Meta, tn meta.TokenName) { - for _, m := range mm { - m.SetTokenName(tn) +func (l *Parser) appendMetaToken(n node.Node, t *scanner.Token, tn meta.TokenName) { + if !l.Lexer.WithMeta { + return } - n.AddMeta(mm) + m := &meta.Data{ + Value: t.Value, + Type: meta.TokenType, + Position: l.positionBuilder.NewTokenPosition(t), + TokenName: tn, + } + + n.GetMeta().Push(m) +} + +func (l *Parser) prependMetaToken(n node.Node, t *scanner.Token, tn meta.TokenName) { + if !l.Lexer.WithMeta { + return + } + + m := &meta.Data{ + Value: t.Value, + Type: meta.TokenType, + Position: l.positionBuilder.NewTokenPosition(t), + TokenName: tn, + } + + n.GetMeta().Unshift(m) } func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { diff --git a/php7/php7.go b/php7/php7.go index 0b25bc0..ebe666c 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php7/php7.y:5344 +//line php7/php7.y:5453 //line yacctab:1 var yyExca = [...]int{ @@ -2124,7 +2124,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) if yylex.(*Parser).currentToken.Value == "\xff" { - addMeta(yylex.(*Parser).rootNode, yylex.(*Parser).currentToken.Meta, meta.NodeEnd) + yylex.(*Parser).currentToken.Meta.SetTokenName(meta.NodeEnd).AppendTo(yylex.(*Parser).rootNode.GetMeta()) } } case 2: @@ -2612,7 +2612,7 @@ yydefault: namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(namePart, yyDollar[1].token.Meta, meta.StringToken) + yyDollar[1].token.Meta.SetTokenName(meta.StringToken).AppendTo(namePart.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2627,8 +2627,8 @@ yydefault: namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NsSeparatorToken) - addMeta(namePart, yyDollar[3].token.Meta, meta.StringToken) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.StringToken).AppendTo(namePart.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2653,8 +2653,8 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2668,7 +2668,7 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2731,10 +2731,11 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.HaltCompilerToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.HaltCompilerToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2742,7 +2743,7 @@ yydefault: } case 92: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:483 + //line php7/php7.y:484 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2752,14 +2753,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 93: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:498 + //line php7/php7.y:500 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2769,15 +2771,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 94: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:514 + //line php7/php7.y:516 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2785,15 +2787,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NamespaceToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.NamespaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 95: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:528 + //line php7/php7.y:530 { yyVAL.node = yyDollar[2].node @@ -2801,14 +2803,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UseToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 96: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:541 + //line php7/php7.y:544 { yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) @@ -2816,14 +2819,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UseToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 97: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:554 + //line php7/php7.y:558 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2831,14 +2835,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UseToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 98: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:567 + //line php7/php7.y:572 { yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) @@ -2846,14 +2851,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UseToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 99: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:580 + //line php7/php7.y:586 { yyVAL.node = stmt.NewConstList(yyDollar[2].list) @@ -2861,14 +2867,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ConstToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ConstToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 100: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:596 + //line php7/php7.y:603 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2876,13 +2883,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 101: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:608 + //line php7/php7.y:615 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2890,13 +2897,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 102: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:623 + //line php7/php7.y:630 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2906,18 +2913,19 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.NsSeparatorToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.OpenCurlyBracesToken) + yyDollar[2].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[5].token != nil { - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.CommaToken) + yyDollar[5].token.Meta.SetTokenName(meta.CommaToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[5].token, meta.CommaToken) } - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[6].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 103: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:642 + //line php7/php7.y:650 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2927,19 +2935,21 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.NsSeparatorToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.OpenCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UseLeadingNsSeparatorToken) + yyDollar[3].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[6].token != nil { - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CommaToken) + yyDollar[6].token.Meta.SetTokenName(meta.CommaToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[6].token, meta.CommaToken) } - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[7].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 104: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:665 + //line php7/php7.y:675 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2949,18 +2959,19 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.NsSeparatorToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.OpenCurlyBracesToken) + yyDollar[2].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[5].token != nil { - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.CommaToken) + yyDollar[5].token.Meta.SetTokenName(meta.CommaToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[5].token, meta.CommaToken) } - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[6].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 105: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:684 + //line php7/php7.y:695 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2970,42 +2981,44 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.NsSeparatorToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.OpenCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UseLeadingNsSeparatorToken) + yyDollar[3].token.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[6].token != nil { - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CommaToken) + yyDollar[6].token.Meta.SetTokenName(meta.CommaToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[6].token, meta.CommaToken) } - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[7].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 106: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:707 + //line php7/php7.y:720 { yyVAL.token = nil } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:711 + //line php7/php7.y:724 { yyVAL.token = yyDollar[1].token } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:718 + //line php7/php7.y:731 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 109: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:727 + //line php7/php7.y:740 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3013,18 +3026,18 @@ yydefault: } case 110: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:736 + //line php7/php7.y:749 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:745 + //line php7/php7.y:758 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3032,18 +3045,18 @@ yydefault: } case 112: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:754 + //line php7/php7.y:767 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:763 + //line php7/php7.y:776 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3051,7 +3064,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:772 + //line php7/php7.y:785 { yyVAL.node = yyDollar[1].node @@ -3059,7 +3072,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:778 + //line php7/php7.y:791 { yyVAL.node = yyDollar[2].node.(*stmt.Use).SetUseType(yyDollar[1].node) @@ -3067,7 +3080,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:787 + //line php7/php7.y:800 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -3080,7 +3093,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:798 + //line php7/php7.y:811 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -3092,14 +3105,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:818 + //line php7/php7.y:831 { yyVAL.node = yyDollar[1].node @@ -3107,29 +3120,30 @@ yydefault: } case 119: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:824 + //line php7/php7.y:837 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NsSeparatorToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UseLeadingNsSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:836 + //line php7/php7.y:850 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:845 + //line php7/php7.y:859 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3137,7 +3151,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:854 + //line php7/php7.y:868 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3147,7 +3161,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:862 + //line php7/php7.y:876 { yyVAL.list = []node.Node{} @@ -3155,7 +3169,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:871 + //line php7/php7.y:885 { // error yyVAL.node = nil @@ -3164,7 +3178,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:878 + //line php7/php7.y:892 { yyVAL.node = yyDollar[1].node @@ -3172,7 +3186,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:884 + //line php7/php7.y:898 { yyVAL.node = yyDollar[1].node @@ -3180,7 +3194,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:890 + //line php7/php7.y:904 { yyVAL.node = yyDollar[1].node @@ -3188,7 +3202,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:896 + //line php7/php7.y:910 { yyVAL.node = yyDollar[1].node @@ -3196,7 +3210,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:902 + //line php7/php7.y:916 { yyVAL.node = yyDollar[1].node @@ -3204,7 +3218,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:908 + //line php7/php7.y:922 { yyVAL.node = stmt.NewHaltCompiler() @@ -3212,16 +3226,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.HaltCompilerToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.HaltCompilerToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 131: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:925 + //line php7/php7.y:940 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3229,14 +3244,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 132: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:938 + //line php7/php7.y:953 { yyVAL.node = yyDollar[1].node @@ -3244,7 +3259,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:944 + //line php7/php7.y:959 { yyVAL.node = yyDollar[1].node @@ -3252,7 +3267,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:950 + //line php7/php7.y:965 { switch n := yyDollar[5].node.(type) { case *stmt.While: @@ -3267,15 +3282,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.WhileToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.WhileToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 135: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:971 + //line php7/php7.y:986 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) @@ -3283,17 +3298,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DoToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.WhileToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.DoToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.WhileToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[7].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[7].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 136: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:987 + //line php7/php7.y:1003 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3312,17 +3328,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ForToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.ForInitSemicolonToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.ForCondSemicolonToken) - addMeta(yyVAL.node, yyDollar[8].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ForToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.ForInitSemicolonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.ForCondSemicolonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[8].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1014 + //line php7/php7.y:1030 { switch n := yyDollar[5].node.(type) { case *stmt.Switch: @@ -3339,15 +3355,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.SwitchToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.SwitchToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 138: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1037 + //line php7/php7.y:1053 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3355,14 +3371,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.BreakToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.BreakToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1050 + //line php7/php7.y:1067 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3370,14 +3387,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ContinueToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ContinueToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1063 + //line php7/php7.y:1081 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3385,14 +3403,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ReturnToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ReturnToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1076 + //line php7/php7.y:1095 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3400,14 +3419,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.GlobalToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.GlobalToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1089 + //line php7/php7.y:1109 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3415,14 +3435,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StaticToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.StaticToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 143: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1102 + //line php7/php7.y:1123 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3430,14 +3451,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.EchoToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.EchoToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.EchoToken) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 144: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1115 + //line php7/php7.y:1138 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3445,13 +3468,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.InlineHTMLToken) + yyDollar[1].token.Meta.SetTokenName(meta.InlineHTMLToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 145: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1127 + //line php7/php7.y:1150 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3459,13 +3482,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1139 + //line php7/php7.y:1163 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3473,19 +3497,21 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UnsetToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.UnsetToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[4].token != nil { - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CommaToken) + yyDollar[4].token.Meta.SetTokenName(meta.CommaToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CommaToken) } - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.SemiColonToken) + yyDollar[5].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[6].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 147: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1157 + //line php7/php7.y:1183 { switch n := yyDollar[7].node.(type) { case *stmt.Foreach: @@ -3502,16 +3528,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ForeachToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.AsToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ForeachToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 148: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1181 + //line php7/php7.y:1207 { switch n := yyDollar[9].node.(type) { case *stmt.Foreach: @@ -3530,33 +3556,34 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ForeachToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.AsToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.DoubleArrowToken) - addMeta(yyVAL.node, yyDollar[8].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ForeachToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[8].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 149: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1208 + //line php7/php7.y:1234 { - yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) + yyVAL.node = yyDollar[5].node + yyVAL.node.(*stmt.Declare).Consts = yyDollar[3].list // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DeclareToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.DeclareToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1222 + //line php7/php7.y:1249 { yyVAL.node = stmt.NewNop() @@ -3564,13 +3591,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 151: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1234 + //line php7/php7.y:1262 { if yyDollar[6].node == nil { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3581,15 +3609,15 @@ yydefault: } // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.TryToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.TryToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1251 + //line php7/php7.y:1279 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3597,14 +3625,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ThrowToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ThrowToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1264 + //line php7/php7.y:1293 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3614,15 +3643,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.GotoToken) - addMeta(label, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.GotoToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(label.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 154: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1280 + //line php7/php7.y:1310 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -3632,14 +3662,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(label, yyDollar[1].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(label.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 155: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1297 + //line php7/php7.y:1327 { yyVAL.list = []node.Node{} @@ -3647,7 +3677,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1303 + //line php7/php7.y:1333 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[5].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3660,18 +3690,18 @@ yydefault: catch.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token)) // save comments - addMeta(catch, yyDollar[2].token.Meta, meta.CatchToken) - addMeta(catch, yyDollar[3].token.Meta, meta.OpenParenthesisToken) - addMeta(variable, yyDollar[5].token.Meta, meta.VariableToken) - addMeta(catch, yyDollar[6].token.Meta, meta.CloseParenthesisToken) - addMeta(catch, yyDollar[7].token.Meta, meta.OpenCurlyBracesToken) - addMeta(catch, yyDollar[9].token.Meta, meta.CloseCurlyBracesToken) + 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()) + 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()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1327 + //line php7/php7.y:1357 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3679,18 +3709,18 @@ yydefault: } case 158: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1333 + //line php7/php7.y:1363 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 159: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1345 + //line php7/php7.y:1375 { yyVAL.node = nil @@ -3698,7 +3728,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1351 + //line php7/php7.y:1381 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3706,15 +3736,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.FinallyToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.FinallyToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1368 + //line php7/php7.y:1398 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3722,18 +3752,18 @@ yydefault: } case 162: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1374 + //line php7/php7.y:1404 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 163: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1386 + //line php7/php7.y:1416 { yyVAL.node = yyDollar[1].node @@ -3741,7 +3771,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:1395 + //line php7/php7.y:1425 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str) @@ -3751,45 +3781,45 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.FunctionToken) + yyDollar[1].token.Meta.SetTokenName(meta.FunctionToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[2].token != nil { - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(name, yyDollar[3].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[9].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[11].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[7].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[9].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[11].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1421 + //line php7/php7.y:1451 { yyVAL.token = nil } case 166: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1425 + //line php7/php7.y:1455 { yyVAL.token = yyDollar[1].token } case 167: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1432 + //line php7/php7.y:1462 { yyVAL.token = nil } case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1436 + //line php7/php7.y:1466 { yyVAL.token = yyDollar[1].token } case 169: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1443 + //line php7/php7.y:1473 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list, yyDollar[6].str) @@ -3799,16 +3829,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ClassToken) - addMeta(name, yyDollar[3].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[9].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[2].token.Meta.SetTokenName(meta.ClassToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[7].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[9].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 170: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:1460 + //line php7/php7.y:1490 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -3818,16 +3848,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ClassToken) - addMeta(name, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[8].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.ClassToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[8].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 171: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1480 + //line php7/php7.y:1510 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3835,7 +3865,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1486 + //line php7/php7.y:1516 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3843,7 +3873,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1495 + //line php7/php7.y:1525 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3851,13 +3881,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1507 + //line php7/php7.y:1537 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3865,13 +3895,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 175: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1522 + //line php7/php7.y:1552 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) @@ -3881,16 +3911,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.TraitToken) - addMeta(name, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.TraitToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 176: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1542 + //line php7/php7.y:1572 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[6].list, yyDollar[4].str) @@ -3900,16 +3930,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.InterfaceToken) - addMeta(name, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.InterfaceToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[7].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 177: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1562 + //line php7/php7.y:1592 { yyVAL.ClassExtends = nil @@ -3917,7 +3947,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1568 + //line php7/php7.y:1598 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3925,13 +3955,13 @@ yydefault: yyVAL.ClassExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.ClassExtends, yyDollar[1].token.Meta, meta.ExtendsToken) + yyDollar[1].token.Meta.SetTokenName(meta.ExtendsToken).AppendTo(yyVAL.ClassExtends.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1583 + //line php7/php7.y:1613 { yyVAL.InterfaceExtends = nil @@ -3939,7 +3969,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1589 + //line php7/php7.y:1619 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3947,13 +3977,13 @@ yydefault: yyVAL.InterfaceExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments - addMeta(yyVAL.InterfaceExtends, yyDollar[1].token.Meta, meta.ExtendsToken) + yyDollar[1].token.Meta.SetTokenName(meta.ExtendsToken).AppendTo(yyVAL.InterfaceExtends.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 181: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1604 + //line php7/php7.y:1634 { yyVAL.ClassImplements = nil @@ -3961,7 +3991,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1610 + //line php7/php7.y:1640 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3969,13 +3999,13 @@ yydefault: yyVAL.ClassImplements.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments - addMeta(yyVAL.ClassImplements, yyDollar[1].token.Meta, meta.ImplementsToken) + yyDollar[1].token.Meta.SetTokenName(meta.ImplementsToken).AppendTo(yyVAL.ClassImplements.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 183: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1625 + //line php7/php7.y:1655 { yyVAL.node = yyDollar[1].node @@ -3983,7 +4013,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1631 + //line php7/php7.y:1661 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -3991,13 +4021,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.AmpersandToken) + yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 185: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1643 + //line php7/php7.y:1673 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -4005,15 +4035,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ListToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ListToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1657 + //line php7/php7.y:1687 { yyVAL.node = expr.NewShortList(yyDollar[2].list) @@ -4021,14 +4051,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseSquareBracket) + yyDollar[1].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1673 + //line php7/php7.y:1703 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -4039,7 +4069,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1682 + //line php7/php7.y:1712 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -4049,15 +4079,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EndforToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EndforToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1701 + //line php7/php7.y:1732 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -4068,7 +4099,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1710 + //line php7/php7.y:1741 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -4078,39 +4109,46 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EndforeachToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EndforeachToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1729 + //line php7/php7.y:1761 { - yyVAL.node = yyDollar[1].node + yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1735 + //line php7/php7.y:1770 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list) + stmtList := stmt.NewStmtList(yyDollar[2].list) + yyVAL.node = stmt.NewDeclare(nil, stmtList, true) // save position + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EnddeclareToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EnddeclareToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1752 + //line php7/php7.y:1790 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4120,14 +4158,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(caseList, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(caseList, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(caseList.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(caseList.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 194: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1767 + //line php7/php7.y:1805 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4137,15 +4175,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(caseList, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(caseList, yyDollar[2].token.Meta, meta.SemiColonToken) - addMeta(caseList, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(caseList.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(caseList.GetMeta()) + yylex.(*Parser).appendMetaToken(caseList, yyDollar[2].token, meta.CaseSeparatorToken) + yyDollar[4].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(caseList.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 195: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1783 + //line php7/php7.y:1822 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4155,15 +4194,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EndswitchToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EndswitchToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 196: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1799 + //line php7/php7.y:1839 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4174,16 +4214,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SwitchSemicolonToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.EndswitchToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(caseList.GetMeta()) + yylex.(*Parser).appendMetaToken(caseList, yyDollar[2].token, meta.CaseSeparatorToken) + yyDollar[4].token.Meta.SetTokenName(meta.EndswitchToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[5].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 197: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1820 + //line php7/php7.y:1862 { yyVAL.list = []node.Node{} @@ -4191,7 +4233,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1826 + //line php7/php7.y:1868 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4200,14 +4242,15 @@ yydefault: _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) // save comments - addMeta(_case, yyDollar[2].token.Meta, meta.CaseToken) - addMeta(_case, yyDollar[4].token.Meta, meta.CaseSeparatorToken) + yyDollar[2].token.Meta.SetTokenName(meta.CaseToken).AppendTo(_case.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(_case.GetMeta()) + yylex.(*Parser).appendMetaToken(_case, yyDollar[4].token, meta.CaseSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 199: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1840 + //line php7/php7.y:1883 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4216,26 +4259,27 @@ yydefault: _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) // save comments - addMeta(_default, yyDollar[2].token.Meta, meta.DefaultToken) - addMeta(_default, yyDollar[3].token.Meta, meta.CaseSeparatorToken) + yyDollar[2].token.Meta.SetTokenName(meta.DefaultToken).AppendTo(_default.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(_default.GetMeta()) + yylex.(*Parser).appendMetaToken(_default, yyDollar[3].token, meta.CaseSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1857 + //line php7/php7.y:1901 { yyVAL.token = yyDollar[1].token } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1861 + //line php7/php7.y:1905 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1868 + //line php7/php7.y:1912 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4246,7 +4290,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1877 + //line php7/php7.y:1921 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4256,15 +4300,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EndwhileToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.EndwhileToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 204: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1896 + //line php7/php7.y:1941 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) @@ -4272,15 +4317,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IfToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.IfToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 205: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1910 + //line php7/php7.y:1955 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) @@ -4290,15 +4335,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) // save comments - addMeta(_elseIf, yyDollar[2].token.Meta, meta.ElseifToken) - addMeta(_elseIf, yyDollar[3].token.Meta, meta.OpenParenthesisToken) - addMeta(_elseIf, yyDollar[5].token.Meta, meta.CloseParenthesisToken) + yyDollar[2].token.Meta.SetTokenName(meta.ElseifToken).AppendTo(_elseIf.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(_elseIf.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(_elseIf.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1929 + //line php7/php7.y:1974 { yyVAL.node = yyDollar[1].node @@ -4306,7 +4351,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1935 + //line php7/php7.y:1980 { _else := stmt.NewElse(yyDollar[3].node) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) @@ -4316,13 +4361,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(_else, yyDollar[2].token.Meta, meta.ElseToken) + yyDollar[2].token.Meta.SetTokenName(meta.ElseToken).AppendTo(_else.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 208: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1952 + //line php7/php7.y:1997 { stmts := stmt.NewStmtList(yyDollar[6].list) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) @@ -4332,16 +4377,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IfToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.ColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.IfToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 209: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1969 + //line php7/php7.y:2014 { stmts := stmt.NewStmtList(yyDollar[7].list) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) @@ -4352,16 +4397,16 @@ yydefault: _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list)) // save comments - addMeta(_elseIf, yyDollar[2].token.Meta, meta.ElseifToken) - addMeta(_elseIf, yyDollar[3].token.Meta, meta.OpenParenthesisToken) - addMeta(_elseIf, yyDollar[5].token.Meta, meta.CloseParenthesisToken) - addMeta(_elseIf, yyDollar[6].token.Meta, meta.ColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.ElseifToken).AppendTo(_elseIf.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(_elseIf.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(_elseIf.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.ColonToken).AppendTo(_elseIf.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1990 + //line php7/php7.y:2035 { yyVAL.node = yyDollar[1].node @@ -4369,14 +4414,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.EndifToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.EndifToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 211: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2003 + //line php7/php7.y:2049 { stmts := stmt.NewStmtList(yyDollar[4].list) _else := stmt.NewAltElse(stmts) @@ -4388,16 +4434,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) // save comments - addMeta(_else, yyDollar[2].token.Meta, meta.ElseToken) - addMeta(_else, yyDollar[3].token.Meta, meta.ColonToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.EndifToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.ElseToken).AppendTo(_else.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.ColonToken).AppendTo(_else.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.EndifToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[6].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2025 + //line php7/php7.y:2072 { yyVAL.list = yyDollar[1].list @@ -4405,7 +4452,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2031 + //line php7/php7.y:2078 { yyVAL.list = nil @@ -4413,7 +4460,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2040 + //line php7/php7.y:2087 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4421,18 +4468,18 @@ yydefault: } case 215: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2046 + //line php7/php7.y:2093 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 216: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2058 + //line php7/php7.y:2105 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4453,18 +4500,18 @@ yydefault: // save comments if yyDollar[2].token != nil { - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } if yyDollar[3].token != nil { - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EllipsisToken) + yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(variable, yyDollar[4].token.Meta, meta.VariableToken) + yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 217: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2088 + //line php7/php7.y:2135 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4485,19 +4532,19 @@ yydefault: // save comments if yyDollar[2].token != nil { - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } if yyDollar[3].token != nil { - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.EllipsisToken) + yyDollar[3].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(variable, yyDollar[4].token.Meta, meta.VariableToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.EqualToken) + yyDollar[4].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2122 + //line php7/php7.y:2169 { yyVAL.node = nil @@ -4505,7 +4552,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2128 + //line php7/php7.y:2175 { yyVAL.node = yyDollar[1].node @@ -4513,7 +4560,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2137 + //line php7/php7.y:2184 { yyVAL.node = yyDollar[1].node @@ -4521,7 +4568,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2143 + //line php7/php7.y:2190 { yyVAL.node = node.NewNullable(yyDollar[2].node) @@ -4529,13 +4576,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.QuestionMarkToken) + yyDollar[1].token.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2158 + //line php7/php7.y:2205 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4543,13 +4590,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2170 + //line php7/php7.y:2217 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4557,13 +4604,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2182 + //line php7/php7.y:2229 { yyVAL.node = yyDollar[1].node @@ -4571,7 +4618,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2191 + //line php7/php7.y:2238 { yyVAL.node = nil @@ -4579,18 +4626,18 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2197 + //line php7/php7.y:2244 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 227: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2209 + //line php7/php7.y:2256 { yyVAL.node = node.NewArgumentList(nil) @@ -4598,14 +4645,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 228: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2222 + //line php7/php7.y:2269 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4613,17 +4660,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[3].token != nil { - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CommaToken) + yyDollar[3].token.Meta.SetTokenName(meta.CommaToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.CommaToken) } - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2241 + //line php7/php7.y:2289 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4631,18 +4679,18 @@ yydefault: } case 230: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2247 + //line php7/php7.y:2295 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 231: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2259 + //line php7/php7.y:2307 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4653,7 +4701,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2268 + //line php7/php7.y:2316 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4661,24 +4709,24 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.EllipsisToken) + yyDollar[1].token.Meta.SetTokenName(meta.EllipsisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2283 + //line php7/php7.y:2331 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 234: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2292 + //line php7/php7.y:2340 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4686,7 +4734,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2301 + //line php7/php7.y:2349 { yyVAL.node = yyDollar[1].node @@ -4694,18 +4742,18 @@ yydefault: } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2310 + //line php7/php7.y:2358 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 237: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2319 + //line php7/php7.y:2367 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4713,7 +4761,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2328 + //line php7/php7.y:2376 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4725,13 +4773,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2344 + //line php7/php7.y:2392 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4743,14 +4791,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.NodeStart).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 240: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2364 + //line php7/php7.y:2412 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4758,7 +4806,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2370 + //line php7/php7.y:2418 { yyVAL.list = []node.Node{} @@ -4766,7 +4814,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2379 + //line php7/php7.y:2427 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4774,13 +4822,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.SemiColonToken) + yyDollar[3].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 243: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2391 + //line php7/php7.y:2440 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) @@ -4788,14 +4837,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ConstToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.ConstToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2404 + //line php7/php7.y:2454 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4803,13 +4853,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UseToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 245: yyDollar = yyS[yypt-10 : yypt+1] - //line php7/php7.y:2416 + //line php7/php7.y:2466 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node, yyDollar[5].str) @@ -4823,19 +4873,19 @@ yydefault: } // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.FunctionToken) + yyDollar[2].token.Meta.SetTokenName(meta.FunctionToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[3].token != nil { - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.AmpersandToken) + yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(name, yyDollar[4].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[8].token.Meta, meta.CloseParenthesisToken) + yyDollar[4].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[8].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2443 + //line php7/php7.y:2493 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4843,59 +4893,60 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2449 + //line php7/php7.y:2499 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 248: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2461 + //line php7/php7.y:2511 { yyVAL.node = stmt.NewNop() yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2473 + //line php7/php7.y:2524 { yyVAL.node = stmt.NewTraitAdaptationList(nil) yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2485 + //line php7/php7.y:2536 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2500 + //line php7/php7.y:2551 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4903,7 +4954,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2506 + //line php7/php7.y:2557 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4911,29 +4962,31 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2515 + //line php7/php7.y:2566 { yyVAL.node = yyDollar[1].node // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2524 + //line php7/php7.y:2576 { yyVAL.node = yyDollar[1].node // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SemiColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2536 + //line php7/php7.y:2589 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4941,13 +4994,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.InsteadofToken) + yyDollar[2].token.Meta.SetTokenName(meta.InsteadofToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2551 + //line php7/php7.y:2604 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4957,14 +5010,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2566 + //line php7/php7.y:2619 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4974,14 +5027,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 258: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2581 + //line php7/php7.y:2634 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -4991,14 +5044,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsToken) - addMeta(alias, yyDollar[4].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2596 + //line php7/php7.y:2649 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5006,13 +5059,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 260: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2612 + //line php7/php7.y:2664 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5022,13 +5075,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(name, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2626 + //line php7/php7.y:2678 { yyVAL.node = yyDollar[1].node @@ -5036,7 +5089,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2635 + //line php7/php7.y:2687 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5046,14 +5099,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2653 + //line php7/php7.y:2705 { yyVAL.node = stmt.NewNop() @@ -5061,13 +5114,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.SemiColonToken) + yyDollar[1].token.Meta.SetTokenName(meta.SemiColonToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2665 + //line php7/php7.y:2718 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5075,14 +5129,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2681 + //line php7/php7.y:2734 { yyVAL.list = yyDollar[1].list @@ -5090,7 +5144,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2687 + //line php7/php7.y:2740 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5099,13 +5153,13 @@ yydefault: modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(modifier, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(modifier.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 267: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2703 + //line php7/php7.y:2756 { yyVAL.list = nil @@ -5113,7 +5167,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2709 + //line php7/php7.y:2762 { yyVAL.list = yyDollar[1].list @@ -5121,7 +5175,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2718 + //line php7/php7.y:2771 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5129,7 +5183,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2724 + //line php7/php7.y:2777 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5137,7 +5191,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2733 + //line php7/php7.y:2786 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5145,13 +5199,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2745 + //line php7/php7.y:2798 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5159,13 +5213,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2757 + //line php7/php7.y:2810 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5173,13 +5227,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2769 + //line php7/php7.y:2822 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5187,13 +5241,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2781 + //line php7/php7.y:2834 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5201,13 +5255,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2793 + //line php7/php7.y:2846 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5215,24 +5269,24 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2808 + //line php7/php7.y:2861 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2817 + //line php7/php7.y:2870 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5240,7 +5294,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2826 + //line php7/php7.y:2879 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5252,13 +5306,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 280: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2842 + //line php7/php7.y:2895 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5270,25 +5324,25 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2862 + //line php7/php7.y:2915 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2871 + //line php7/php7.y:2924 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5296,7 +5350,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2880 + //line php7/php7.y:2933 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5306,14 +5360,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(name, yyDollar[1].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 284: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2898 + //line php7/php7.y:2951 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5323,25 +5377,25 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - addMeta(name, yyDollar[1].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2916 + //line php7/php7.y:2969 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2925 + //line php7/php7.y:2978 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5349,7 +5403,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2934 + //line php7/php7.y:2987 { yyVAL.node = yyDollar[1].node @@ -5357,7 +5411,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2943 + //line php7/php7.y:2996 { yyVAL.list = nil @@ -5365,7 +5419,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2949 + //line php7/php7.y:3002 { yyVAL.list = yyDollar[1].list @@ -5373,18 +5427,18 @@ yydefault: } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2958 + //line php7/php7.y:3011 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2967 + //line php7/php7.y:3020 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5392,7 +5446,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:2976 + //line php7/php7.y:3029 { if yyDollar[2].node != nil { yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].node.(*node.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -5404,15 +5458,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ClassToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[8].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.ClassToken).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()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2997 + //line php7/php7.y:3050 { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) @@ -5423,13 +5477,13 @@ yydefault: } // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NewToken) + yyDollar[1].token.Meta.SetTokenName(meta.NewAnchor).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3012 + //line php7/php7.y:3065 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -5437,13 +5491,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NewToken) + yyDollar[1].token.Meta.SetTokenName(meta.NewAnchor).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 295: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3027 + //line php7/php7.y:3080 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -5453,16 +5507,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) // save comments - addMeta(list, yyDollar[1].token.Meta, meta.ListToken) - addMeta(list, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(list, yyDollar[4].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.ListToken).AppendTo(list.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) + yyDollar[5].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 296: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3044 + //line php7/php7.y:3097 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -5472,15 +5526,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments - addMeta(shortList, yyDollar[1].token.Meta, meta.OpenSquareBracket) - addMeta(shortList, yyDollar[3].token.Meta, meta.CloseSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.EqualToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(shortList.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(shortList.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3060 + //line php7/php7.y:3113 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5488,13 +5542,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.EqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 298: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3072 + //line php7/php7.y:3125 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5502,14 +5556,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.EqualToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.EqualToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3085 + //line php7/php7.y:3138 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5517,13 +5571,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.CloneToken) + yyDollar[1].token.Meta.SetTokenName(meta.CloneToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3097 + //line php7/php7.y:3150 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5531,13 +5585,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PlusEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.PlusEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3109 + //line php7/php7.y:3162 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5545,13 +5599,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.MinusEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.MinusEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3121 + //line php7/php7.y:3174 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5559,13 +5613,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.MulEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.MulEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3133 + //line php7/php7.y:3186 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5573,13 +5627,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PowEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.PowEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3145 + //line php7/php7.y:3198 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5587,13 +5641,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.DivEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.DivEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3157 + //line php7/php7.y:3210 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5601,13 +5655,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ConcatEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.ConcatEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3169 + //line php7/php7.y:3222 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5615,13 +5669,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ModEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.ModEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3181 + //line php7/php7.y:3234 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5629,13 +5683,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AndEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.AndEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3193 + //line php7/php7.y:3246 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5643,13 +5697,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OrEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.OrEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3205 + //line php7/php7.y:3258 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5657,13 +5711,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.XorEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.XorEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3217 + //line php7/php7.y:3270 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5671,13 +5725,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SlEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.SlEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3229 + //line php7/php7.y:3282 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5685,13 +5739,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SrEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.SrEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3241 + //line php7/php7.y:3294 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5699,13 +5753,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IncToken) + yyDollar[2].token.Meta.SetTokenName(meta.IncToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3253 + //line php7/php7.y:3306 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5713,13 +5767,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IncToken) + yyDollar[1].token.Meta.SetTokenName(meta.IncToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3265 + //line php7/php7.y:3318 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5727,13 +5781,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.DecToken) + yyDollar[2].token.Meta.SetTokenName(meta.DecToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3277 + //line php7/php7.y:3330 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5741,13 +5795,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DecToken) + yyDollar[1].token.Meta.SetTokenName(meta.DecToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3289 + //line php7/php7.y:3342 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5755,13 +5809,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.BooleanOrToken) + yyDollar[2].token.Meta.SetTokenName(meta.BooleanOrToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3301 + //line php7/php7.y:3354 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5769,13 +5823,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.BooleanAndToken) + yyDollar[2].token.Meta.SetTokenName(meta.BooleanAndToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3313 + //line php7/php7.y:3366 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5783,13 +5837,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LogicalOrToken) + yyDollar[2].token.Meta.SetTokenName(meta.LogicalOrToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3325 + //line php7/php7.y:3378 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5797,13 +5851,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LogicalAndToken) + yyDollar[2].token.Meta.SetTokenName(meta.LogicalAndToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3337 + //line php7/php7.y:3390 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5811,13 +5865,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LogicalXorToken) + yyDollar[2].token.Meta.SetTokenName(meta.LogicalXorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3349 + //line php7/php7.y:3402 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5825,13 +5879,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.VerticalBarToken) + yyDollar[2].token.Meta.SetTokenName(meta.VerticalBarToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3361 + //line php7/php7.y:3414 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5839,13 +5893,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3373 + //line php7/php7.y:3426 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5853,13 +5907,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.CaretToken) + yyDollar[2].token.Meta.SetTokenName(meta.CaretToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3385 + //line php7/php7.y:3438 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5867,13 +5921,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.DotToken) + yyDollar[2].token.Meta.SetTokenName(meta.DotToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3397 + //line php7/php7.y:3450 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5881,13 +5935,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PlusToken) + yyDollar[2].token.Meta.SetTokenName(meta.PlusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3409 + //line php7/php7.y:3462 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5895,13 +5949,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.MinusToken) + yyDollar[2].token.Meta.SetTokenName(meta.MinusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3421 + //line php7/php7.y:3474 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5909,13 +5963,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AsteriskToken) + yyDollar[2].token.Meta.SetTokenName(meta.AsteriskToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3433 + //line php7/php7.y:3486 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5923,13 +5977,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PowToken) + yyDollar[2].token.Meta.SetTokenName(meta.PowToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3445 + //line php7/php7.y:3498 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5937,13 +5991,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SlashToken) + yyDollar[2].token.Meta.SetTokenName(meta.SlashToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3457 + //line php7/php7.y:3510 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5951,13 +6005,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PercentToken) + yyDollar[2].token.Meta.SetTokenName(meta.PercentToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3469 + //line php7/php7.y:3522 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5965,13 +6019,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SlToken) + yyDollar[2].token.Meta.SetTokenName(meta.SlToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3481 + //line php7/php7.y:3534 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5979,13 +6033,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SrToken) + yyDollar[2].token.Meta.SetTokenName(meta.SrToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3493 + //line php7/php7.y:3546 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -5993,13 +6047,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.PlusToken) + yyDollar[1].token.Meta.SetTokenName(meta.PlusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3505 + //line php7/php7.y:3558 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6007,13 +6061,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MinusToken) + yyDollar[1].token.Meta.SetTokenName(meta.MinusToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3517 + //line php7/php7.y:3570 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6021,13 +6075,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ExclamationMarkToken) + yyDollar[1].token.Meta.SetTokenName(meta.ExclamationMarkToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3529 + //line php7/php7.y:3582 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6035,13 +6089,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.TildeToken) + yyDollar[1].token.Meta.SetTokenName(meta.TildeToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3541 + //line php7/php7.y:3594 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6049,13 +6103,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsIdenticalToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsIdenticalToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3553 + //line php7/php7.y:3606 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6063,13 +6117,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsNotIdenticalToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsNotIdenticalToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3565 + //line php7/php7.y:3618 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6077,13 +6131,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3577 + //line php7/php7.y:3630 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6091,13 +6145,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsNotEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsNotEqualToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[2].token, meta.IsNotEqualToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3589 + //line php7/php7.y:3643 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6105,13 +6160,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.LessToken) + yyDollar[2].token.Meta.SetTokenName(meta.LessToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3601 + //line php7/php7.y:3655 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6119,13 +6174,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsSmallerOrEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsSmallerOrEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3613 + //line php7/php7.y:3667 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6133,13 +6188,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.GreaterToken) + yyDollar[2].token.Meta.SetTokenName(meta.GreaterToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3625 + //line php7/php7.y:3679 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6147,13 +6202,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.IsGreaterOrEqualToken) + yyDollar[2].token.Meta.SetTokenName(meta.IsGreaterOrEqualToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3637 + //line php7/php7.y:3691 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -6161,13 +6216,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.SpaceshipToken) + yyDollar[2].token.Meta.SetTokenName(meta.SpaceshipToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3649 + //line php7/php7.y:3703 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6175,25 +6230,27 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.InstanceofToken) + yyDollar[2].token.Meta.SetTokenName(meta.InstanceofToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3661 + //line php7/php7.y:3715 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3671 + //line php7/php7.y:3727 { yyVAL.node = yyDollar[1].node @@ -6201,7 +6258,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3677 + //line php7/php7.y:3733 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6209,14 +6266,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.QuestionMarkToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.ColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 350: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3690 + //line php7/php7.y:3746 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6224,14 +6281,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.QuestionMarkToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.ColonToken) + yyDollar[2].token.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.ColonToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 351: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3703 + //line php7/php7.y:3759 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -6239,13 +6296,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.CoalesceToken) + yyDollar[2].token.Meta.SetTokenName(meta.CoalesceToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3715 + //line php7/php7.y:3771 { yyVAL.node = yyDollar[1].node @@ -6253,7 +6310,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3721 + //line php7/php7.y:3777 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6261,13 +6318,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IntCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.IntCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.IntCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3733 + //line php7/php7.y:3790 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6275,13 +6333,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DoubleCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.DoubleCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DoubleCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3745 + //line php7/php7.y:3803 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6289,13 +6348,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StringCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.StringCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.StringCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3757 + //line php7/php7.y:3816 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6303,13 +6363,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ArrayCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.ArrayCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.ArrayCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3769 + //line php7/php7.y:3829 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6317,13 +6378,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ObjectCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.ObjectCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.ObjectCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3781 + //line php7/php7.y:3842 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6331,13 +6393,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.BoolCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.BoolCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.BoolCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3793 + //line php7/php7.y:3855 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6345,13 +6408,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.UnsetCastToken) + yyDollar[1].token.Meta.SetTokenName(meta.UnsetCastToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.UnsetCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3805 + //line php7/php7.y:3868 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6374,13 +6438,13 @@ yydefault: } // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ExitToken) + yyDollar[1].token.Meta.SetTokenName(meta.ExitToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3832 + //line php7/php7.y:3895 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6388,13 +6452,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.AtToken) + yyDollar[1].token.Meta.SetTokenName(meta.AtToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3844 + //line php7/php7.y:3907 { yyVAL.node = yyDollar[1].node @@ -6402,7 +6466,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3850 + //line php7/php7.y:3913 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6410,14 +6474,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.BackquoteToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.BackquoteToken) + yyDollar[1].token.Meta.SetTokenName(meta.BackquoteToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.BackquoteToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3863 + //line php7/php7.y:3926 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6425,13 +6489,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.PrintToken) + yyDollar[1].token.Meta.SetTokenName(meta.PrintToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3875 + //line php7/php7.y:3938 { yyVAL.node = expr.NewYield(nil, nil) @@ -6439,13 +6503,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.YieldToken) + yyDollar[1].token.Meta.SetTokenName(meta.YieldToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3887 + //line php7/php7.y:3950 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6453,13 +6517,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.YieldToken) + yyDollar[1].token.Meta.SetTokenName(meta.YieldToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 367: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3899 + //line php7/php7.y:3962 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6467,14 +6531,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.YieldToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.DoubleArrowToken) + yyDollar[1].token.Meta.SetTokenName(meta.YieldToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3912 + //line php7/php7.y:3975 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -6482,13 +6546,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.YieldFromToken) + yyDollar[1].token.Meta.SetTokenName(meta.YieldFromToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 369: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:3924 + //line php7/php7.y:3987 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].token != nil, yyDollar[3].str) @@ -6496,20 +6560,20 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.FunctionToken) + yyDollar[1].token.Meta.SetTokenName(meta.FunctionToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[2].token != nil { - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[6].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[9].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[11].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[4].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[9].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[11].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 370: yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:3943 + //line php7/php7.y:4006 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].ClosureUse, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].token != nil, yyDollar[4].str) @@ -6517,21 +6581,21 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[12].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StaticToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.FunctionToken) + yyDollar[1].token.Meta.SetTokenName(meta.StaticToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.FunctionToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[3].token != nil { - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.AmpersandToken) + yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) } - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[7].token.Meta, meta.CloseParenthesisToken) - addMeta(yyVAL.node, yyDollar[10].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[12].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[5].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[7].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[10].token.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[12].token.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3966 + //line php7/php7.y:4029 { yyVAL.str = yylex.(*Parser).PhpDocComment yylex.(*Parser).PhpDocComment = "" @@ -6540,19 +6604,19 @@ yydefault: } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3976 + //line php7/php7.y:4039 { yyVAL.token = nil } case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3980 + //line php7/php7.y:4043 { yyVAL.token = yyDollar[1].token } case 374: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3987 + //line php7/php7.y:4050 { yyVAL.ClosureUse = nil @@ -6560,7 +6624,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3993 + //line php7/php7.y:4056 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6568,26 +6632,26 @@ yydefault: yyVAL.ClosureUse.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.ClosureUse, yyDollar[1].token.Meta, meta.UseToken) - addMeta(yyVAL.ClosureUse, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.ClosureUse, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.UseToken).AppendTo(yyVAL.ClosureUse.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.ClosureUse.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.ClosureUse.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 376: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4010 + //line php7/php7.y:4073 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4019 + //line php7/php7.y:4082 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -6595,7 +6659,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4028 + //line php7/php7.y:4091 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -6605,13 +6669,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4042 + //line php7/php7.y:4105 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6623,14 +6687,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.AmpersandToken) - addMeta(variable, yyDollar[2].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 380: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4062 + //line php7/php7.y:4125 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6641,7 +6705,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4071 + //line php7/php7.y:4134 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6649,13 +6713,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4083 + //line php7/php7.y:4146 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -6663,13 +6727,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4095 + //line php7/php7.y:4158 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -6680,7 +6744,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4107 + //line php7/php7.y:4170 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6688,13 +6752,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4119 + //line php7/php7.y:4182 { yyVAL.node = yyDollar[1].node @@ -6702,7 +6766,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4128 + //line php7/php7.y:4191 { yyVAL.node = yyDollar[1].node @@ -6710,7 +6774,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4134 + //line php7/php7.y:4197 { yyVAL.node = yyDollar[1].node @@ -6718,7 +6782,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4143 + //line php7/php7.y:4206 { yyVAL.node = nil @@ -6726,7 +6790,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4149 + //line php7/php7.y:4212 { yyVAL.node = expr.NewExit(yyDollar[2].node) @@ -6734,14 +6798,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.OpenParenthesisToken) + yyDollar[3].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.CloseParenthesisToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4165 + //line php7/php7.y:4230 { yyVAL.list = []node.Node{} @@ -6749,7 +6815,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4171 + //line php7/php7.y:4236 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} @@ -6757,7 +6823,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4177 + //line php7/php7.y:4242 { yyVAL.list = yyDollar[1].list @@ -6765,7 +6831,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4186 + //line php7/php7.y:4251 { yyVAL.node = nil @@ -6773,7 +6839,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4192 + //line php7/php7.y:4257 { yyVAL.node = yyDollar[1].node @@ -6781,7 +6847,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4201 + //line php7/php7.y:4266 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6789,15 +6855,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ArrayToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ArrayToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4215 + //line php7/php7.y:4280 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6805,14 +6871,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseSquareBracket) + yyDollar[1].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4228 + //line php7/php7.y:4293 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6820,13 +6886,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.ConstantEncapsedStringToken) + yyDollar[1].token.Meta.SetTokenName(meta.ConstantEncapsedStringToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4243 + //line php7/php7.y:4308 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -6834,13 +6900,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.LnumberToken) + yyDollar[1].token.Meta.SetTokenName(meta.LnumberToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4255 + //line php7/php7.y:4320 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -6848,13 +6914,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DnumberToken) + yyDollar[1].token.Meta.SetTokenName(meta.DnumberToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4267 + //line php7/php7.y:4332 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6862,13 +6928,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4279 + //line php7/php7.y:4344 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6876,13 +6942,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4291 + //line php7/php7.y:4356 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6890,13 +6956,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4303 + //line php7/php7.y:4368 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6904,13 +6970,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4315 + //line php7/php7.y:4380 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6918,13 +6984,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4327 + //line php7/php7.y:4392 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6932,13 +6998,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4339 + //line php7/php7.y:4404 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6946,13 +7012,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4351 + //line php7/php7.y:4416 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6960,13 +7026,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MagicConstantToken) + yyDollar[1].token.Meta.SetTokenName(meta.MagicConstantToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4363 + //line php7/php7.y:4428 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -6976,13 +7042,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StartHeredocToken) + yyDollar[1].token.Meta.SetTokenName(meta.StartHeredocToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 409: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4377 + //line php7/php7.y:4442 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -6990,13 +7056,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StartHeredocToken) + yyDollar[1].token.Meta.SetTokenName(meta.StartHeredocToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4389 + //line php7/php7.y:4454 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -7004,13 +7070,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DoubleQuoteToken) + yyDollar[1].token.Meta.SetTokenName(meta.DoubleQuoteToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4401 + //line php7/php7.y:4466 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -7018,13 +7084,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StartHeredocToken) + yyDollar[1].token.Meta.SetTokenName(meta.StartHeredocToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4413 + //line php7/php7.y:4478 { yyVAL.node = yyDollar[1].node @@ -7032,7 +7098,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4419 + //line php7/php7.y:4484 { yyVAL.node = yyDollar[1].node @@ -7040,7 +7106,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4428 + //line php7/php7.y:4493 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) @@ -7051,7 +7117,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4437 + //line php7/php7.y:4502 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7061,14 +7127,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4452 + //line php7/php7.y:4517 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7078,14 +7144,14 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4470 + //line php7/php7.y:4535 { yyVAL.node = yyDollar[1].node @@ -7093,7 +7159,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4476 + //line php7/php7.y:4541 { yyVAL.node = yyDollar[1].node @@ -7101,7 +7167,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4485 + //line php7/php7.y:4550 { yyVAL.node = nil @@ -7109,7 +7175,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4491 + //line php7/php7.y:4556 { yyVAL.node = yyDollar[1].node @@ -7117,7 +7183,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4500 + //line php7/php7.y:4565 { yyVAL.node = yyDollar[1].node @@ -7125,7 +7191,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4509 + //line php7/php7.y:4574 { yyVAL.node = yyDollar[1].node @@ -7133,19 +7199,21 @@ yydefault: } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4515 + //line php7/php7.y:4580 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) + 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 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4525 + //line php7/php7.y:4592 { yyVAL.node = yyDollar[1].node @@ -7153,7 +7221,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4534 + //line php7/php7.y:4601 { yyVAL.node = yyDollar[1].node @@ -7161,19 +7229,21 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4540 + //line php7/php7.y:4607 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseParenthesisToken) + 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 427: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4550 + //line php7/php7.y:4619 { yyVAL.node = yyDollar[1].node @@ -7181,7 +7251,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4559 + //line php7/php7.y:4628 { yyVAL.node = yyDollar[1].node @@ -7189,7 +7259,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4565 + //line php7/php7.y:4634 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7197,14 +7267,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4578 + //line php7/php7.y:4649 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7212,14 +7284,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4591 + //line php7/php7.y:4664 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7227,14 +7301,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 432: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4604 + //line php7/php7.y:4679 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7242,13 +7318,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ObjectOperatorToken) + yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4616 + //line php7/php7.y:4691 { yyVAL.node = yyDollar[1].node @@ -7256,7 +7332,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4625 + //line php7/php7.y:4700 { yyVAL.node = yyDollar[1].node @@ -7264,7 +7340,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4631 + //line php7/php7.y:4706 { yyVAL.node = yyDollar[1].node @@ -7272,7 +7348,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4637 + //line php7/php7.y:4712 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7280,13 +7356,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ObjectOperatorToken) + yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4652 + //line php7/php7.y:4727 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7296,13 +7372,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 438: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4666 + //line php7/php7.y:4741 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -7310,15 +7386,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 439: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4680 + //line php7/php7.y:4757 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7326,13 +7404,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarToken) + yyDollar[1].token.Meta.SetTokenName(meta.DollarToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4695 + //line php7/php7.y:4772 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7340,13 +7418,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 441: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4707 + //line php7/php7.y:4784 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7354,13 +7432,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4722 + //line php7/php7.y:4799 { yyVAL.node = yyDollar[1].node @@ -7368,7 +7446,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4728 + //line php7/php7.y:4805 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7376,14 +7454,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4741 + //line php7/php7.y:4820 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7391,14 +7471,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseCurlyBracesToken) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4754 + //line php7/php7.y:4835 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7406,13 +7488,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ObjectOperatorToken) + yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 446: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4766 + //line php7/php7.y:4847 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7420,13 +7502,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 447: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4778 + //line php7/php7.y:4859 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7434,13 +7516,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.PaamayimNekudotayimToken) + yyDollar[2].token.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4793 + //line php7/php7.y:4874 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7448,25 +7530,27 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4805 + //line php7/php7.y:4886 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + 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 450: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4815 + //line php7/php7.y:4898 { yyVAL.node = yyDollar[1].node @@ -7474,7 +7558,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4824 + //line php7/php7.y:4907 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7482,25 +7566,27 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 452: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4836 + //line php7/php7.y:4919 { yyVAL.node = yyDollar[2].node // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.OpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + 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 453: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4846 + //line php7/php7.y:4931 { yyVAL.node = yyDollar[1].node @@ -7508,7 +7594,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4855 + //line php7/php7.y:4940 { yyVAL.list = yyDollar[1].list @@ -7516,7 +7602,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4864 + //line php7/php7.y:4949 { yyVAL.node = expr.NewArrayItem(nil, nil) @@ -7524,7 +7610,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4870 + //line php7/php7.y:4955 { yyVAL.node = yyDollar[1].node @@ -7532,7 +7618,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4879 + //line php7/php7.y:4964 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} @@ -7541,13 +7627,13 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4892 + //line php7/php7.y:4977 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -7559,7 +7645,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4905 + //line php7/php7.y:4990 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) @@ -7567,13 +7653,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.DoubleArrowToken) + yyDollar[2].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 460: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4917 + //line php7/php7.y:5002 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) @@ -7584,7 +7670,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4926 + //line php7/php7.y:5011 { reference := expr.NewReference(yyDollar[4].node) yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference) @@ -7594,14 +7680,14 @@ yydefault: reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.DoubleArrowToken) - addMeta(reference, yyDollar[3].token.Meta, meta.AmpersandToken) + yyDollar[2].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4941 + //line php7/php7.y:5026 { reference := expr.NewReference(yyDollar[2].node) yyVAL.node = expr.NewArrayItem(nil, reference) @@ -7611,13 +7697,13 @@ yydefault: reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(reference, yyDollar[1].token.Meta, meta.AmpersandToken) + yyDollar[1].token.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 463: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:4955 + //line php7/php7.y:5040 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) @@ -7628,16 +7714,16 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) // save comments - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.DoubleArrowToken) - addMeta(list, yyDollar[3].token.Meta, meta.ListToken) - addMeta(list, yyDollar[4].token.Meta, meta.OpenParenthesisToken) - addMeta(list, yyDollar[6].token.Meta, meta.CloseParenthesisToken) + yyDollar[2].token.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.ListToken).AppendTo(list.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) + yyDollar[6].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4973 + //line php7/php7.y:5058 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) @@ -7648,15 +7734,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(list, yyDollar[1].token.Meta, meta.ListToken) - addMeta(list, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(list, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.ListToken).AppendTo(list.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4993 + //line php7/php7.y:5078 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7664,7 +7750,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4999 + //line php7/php7.y:5084 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7673,13 +7759,13 @@ yydefault: encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) // save comments - addMeta(encapsed, yyDollar[2].token.Meta, meta.EncapsedAndWhitespaceToken) + yyDollar[2].token.Meta.SetTokenName(meta.EncapsedAndWhitespaceToken).AppendTo(encapsed.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5012 + //line php7/php7.y:5097 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -7687,7 +7773,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5018 + //line php7/php7.y:5103 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -7696,13 +7782,13 @@ yydefault: encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(encapsed, yyDollar[1].token.Meta, meta.EncapsedAndWhitespaceToken) + yyDollar[1].token.Meta.SetTokenName(meta.EncapsedAndWhitespaceToken).AppendTo(encapsed.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5034 + //line php7/php7.y:5119 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7712,13 +7798,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5048 + //line php7/php7.y:5133 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7730,15 +7816,17 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseSquareBracket) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + 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()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CloseCurlyBracesToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5066 + //line php7/php7.y:5153 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7752,51 +7840,62 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(variable, yyDollar[1].token.Meta, meta.VariableToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.ObjectOperatorToken) - addMeta(fetch, yyDollar[3].token.Meta, meta.IdentifierToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.IdentifierToken).AppendTo(fetch.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5086 + //line php7/php7.y:5173 { - yyVAL.node = expr.NewVariable(yyDollar[2].node) + variable := expr.NewVariable(yyDollar[2].node) + variable.StringVar = true + + yyVAL.node = variable // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarOpenCurlyBracesToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5099 + //line php7/php7.y:5191 { name := node.NewIdentifier(yyDollar[2].token.Value) - yyVAL.node = expr.NewVariable(name) + variable := expr.NewVariable(name) + variable.StringVar = true + + yyVAL.node = variable // save position name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarOpenCurlyBracesToken) - addMeta(name, yyDollar[2].token.Meta, meta.IdentifierToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.CloseCurlyBracesToken) + yyDollar[1].token.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[1].token, meta.DollarOpenCurlyBracesToken) + 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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 474: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5115 + //line php7/php7.y:5212 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) + variable.StringVar = true yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node) // save position @@ -7805,25 +7904,35 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.DollarOpenCurlyBracesToken) - addMeta(variable, yyDollar[2].token.Meta, meta.StringVarnameToken) - addMeta(yyVAL.node, yyDollar[3].token.Meta, meta.OpenSquareBracket) - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.CloseSquareBracket) - addMeta(yyVAL.node, yyDollar[6].token.Meta, 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.StringVarnameToken).AppendTo(variable.GetMeta()) + yyDollar[3].token.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[3].token, meta.OpenSquareBracket) + yyDollar[5].token.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[5].token, meta.CloseSquareBracket) + yyDollar[6].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[6].token, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5135 + //line php7/php7.y:5237 { 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[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 476: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5144 + //line php7/php7.y:5252 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7831,13 +7940,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.StringToken) + yyDollar[1].token.Meta.SetTokenName(meta.StringToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5156 + //line php7/php7.y:5264 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -7850,13 +7959,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.NumStringToken) + yyDollar[1].token.Meta.SetTokenName(meta.NumStringToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5173 + //line php7/php7.y:5281 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -7878,18 +7987,18 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.MinusToken) + yyDollar[1].token.Meta.SetTokenName(meta.MinusToken).AppendTo(yyVAL.node.GetMeta()) if isInt { - addMeta(lnumber, yyDollar[2].token.Meta, meta.NumStringToken) + yyDollar[2].token.Meta.SetTokenName(meta.NumStringToken).AppendTo(lnumber.GetMeta()) } else { - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.NumStringToken) + yyDollar[2].token.Meta.SetTokenName(meta.NumStringToken).AppendTo(yyVAL.node.GetMeta()) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5204 + //line php7/php7.y:5312 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -7899,13 +8008,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.VariableToken) + yyDollar[1].token.Meta.SetTokenName(meta.VariableToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 480: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:5221 + //line php7/php7.y:5329 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -7913,18 +8022,19 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IssetToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.IssetToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) if yyDollar[4].token != nil { - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CommaToken) + yyDollar[4].token.Meta.SetTokenName(meta.CommaToken).AppendTo(yyVAL.node.GetMeta()) + yylex.(*Parser).appendMetaToken(yyVAL.node, yyDollar[4].token, meta.CommaToken) } - addMeta(yyVAL.node, yyDollar[5].token.Meta, meta.CloseParenthesisToken) + yyDollar[5].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5238 + //line php7/php7.y:5347 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -7932,15 +8042,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.EmptyToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.EmptyToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5252 + //line php7/php7.y:5361 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -7948,13 +8058,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IncludeToken) + yyDollar[1].token.Meta.SetTokenName(meta.IncludeToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5264 + //line php7/php7.y:5373 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -7962,13 +8072,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.IncludeOnceToken) + yyDollar[1].token.Meta.SetTokenName(meta.IncludeOnceToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 484: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5276 + //line php7/php7.y:5385 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -7976,15 +8086,15 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.EvalToken) - addMeta(yyVAL.node, yyDollar[2].token.Meta, meta.OpenParenthesisToken) - addMeta(yyVAL.node, yyDollar[4].token.Meta, meta.CloseParenthesisToken) + yyDollar[1].token.Meta.SetTokenName(meta.EvalToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[2].token.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(yyVAL.node.GetMeta()) + yyDollar[4].token.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5290 + //line php7/php7.y:5399 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -7992,13 +8102,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.RequireToken) + yyDollar[1].token.Meta.SetTokenName(meta.RequireToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5302 + //line php7/php7.y:5411 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -8006,13 +8116,13 @@ yydefault: yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - addMeta(yyVAL.node, yyDollar[1].token.Meta, meta.RequireOnceToken) + yyDollar[1].token.Meta.SetTokenName(meta.RequireOnceToken).AppendTo(yyVAL.node.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5317 + //line php7/php7.y:5426 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8020,18 +8130,18 @@ yydefault: } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5323 + //line php7/php7.y:5432 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - addMeta(lastNode(yyDollar[1].list), yyDollar[2].token.Meta, meta.NodeEnd) + yyDollar[2].token.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode(yyDollar[1].list).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5335 + //line php7/php7.y:5444 { yyVAL.node = yyDollar[1].node diff --git a/php7/php7.y b/php7/php7.y index e96ae93..1be9c53 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -306,7 +306,7 @@ start: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) if yylex.(*Parser).currentToken.Value == "\xff" { - addMeta(yylex.(*Parser).rootNode, yylex.(*Parser).currentToken.Meta, meta.NodeEnd) + yylex.(*Parser).currentToken.Meta.SetTokenName(meta.NodeEnd).AppendTo(yylex.(*Parser).rootNode.GetMeta()) } } ; @@ -367,7 +367,7 @@ namespace_name: namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(namePart, $1.Meta, meta.StringToken) + $1.Meta.SetTokenName(meta.StringToken).AppendTo(namePart.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -380,8 +380,8 @@ namespace_name: namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments - addMeta(lastNode($1), $2.Meta, meta.NsSeparatorToken) - addMeta(namePart, $3.Meta, meta.StringToken) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) + $3.Meta.SetTokenName(meta.StringToken).AppendTo(namePart.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -405,8 +405,8 @@ name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.NamespaceToken) - addMeta($$, $2.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -418,7 +418,7 @@ name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -470,10 +470,11 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.HaltCompilerToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.HaltCompilerToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -489,8 +490,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.NamespaceToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -504,9 +506,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.NamespaceToken) - addMeta($$, $3.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $5.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $5.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -518,9 +520,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.NamespaceToken) - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.NamespaceToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -532,8 +534,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.UseToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -545,8 +548,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.UseToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -558,8 +562,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.UseToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -571,8 +576,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.UseToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -584,8 +590,9 @@ top_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.ConstToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ConstToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -600,7 +607,7 @@ use_type: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -612,7 +619,7 @@ use_type: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -629,12 +636,13 @@ group_use_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) // save comments - addMeta($$, $2.Meta, meta.NsSeparatorToken) - addMeta($$, $3.Meta, meta.OpenCurlyBracesToken) + $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) if $5 != nil { - addMeta($$, $5.Meta, meta.CommaToken) + $5.Meta.SetTokenName(meta.CommaToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $5, meta.CommaToken) } - addMeta($$, $6.Meta, meta.CloseCurlyBracesToken) + $6.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -648,13 +656,15 @@ group_use_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) - addMeta($$, $3.Meta, meta.NsSeparatorToken) - addMeta($$, $4.Meta, meta.OpenCurlyBracesToken) + $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) + $3.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) if $6 != nil { - addMeta($$, $6.Meta, meta.CommaToken) + $6.Meta.SetTokenName(meta.CommaToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $6, meta.CommaToken) } - addMeta($$, $7.Meta, meta.CloseCurlyBracesToken) + $7.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -671,12 +681,13 @@ mixed_group_use_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) // save comments - addMeta($$, $2.Meta, meta.NsSeparatorToken) - addMeta($$, $3.Meta, meta.OpenCurlyBracesToken) + $2.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) if $5 != nil { - addMeta($$, $5.Meta, meta.CommaToken) + $5.Meta.SetTokenName(meta.CommaToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $5, meta.CommaToken) } - addMeta($$, $6.Meta, meta.CloseCurlyBracesToken) + $6.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -690,13 +701,15 @@ mixed_group_use_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) - addMeta($$, $3.Meta, meta.NsSeparatorToken) - addMeta($$, $4.Meta, meta.OpenCurlyBracesToken) + $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) + $3.Meta.SetTokenName(meta.NsSeparatorToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) if $6 != nil { - addMeta($$, $6.Meta, meta.CommaToken) + $6.Meta.SetTokenName(meta.CommaToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $6, meta.CommaToken) } - addMeta($$, $7.Meta, meta.CloseCurlyBracesToken) + $7.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -719,7 +732,7 @@ inline_use_declarations: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -737,7 +750,7 @@ unprefixed_use_declarations: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -755,7 +768,7 @@ use_declarations: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -806,8 +819,8 @@ unprefixed_use_declaration: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsToken) - addMeta(alias, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -825,7 +838,8 @@ use_declaration: $$ = $2; // save comments - addMeta($$, $1.Meta, meta.NsSeparatorToken) + $1.Meta.SetTokenName(meta.UseLeadingNsSeparatorToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UseLeadingNsSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -837,7 +851,7 @@ const_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -912,10 +926,11 @@ inner_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.HaltCompilerToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.HaltCompilerToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -929,8 +944,8 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -961,9 +976,9 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.WhileToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.WhileToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -975,11 +990,12 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments - addMeta($$, $1.Meta, meta.DoToken) - addMeta($$, $3.Meta, meta.WhileToken) - addMeta($$, $4.Meta, meta.OpenParenthesisToken) - addMeta($$, $6.Meta, meta.CloseParenthesisToken) - addMeta($$, $7.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.DoToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.WhileToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $7.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $7, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1002,11 +1018,11 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) // save comments - addMeta($$, $1.Meta, meta.ForToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.ForInitSemicolonToken) - addMeta($$, $6.Meta, meta.ForCondSemicolonToken) - addMeta($$, $8.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ForToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.ForInitSemicolonToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.ForCondSemicolonToken).AppendTo($$.GetMeta()) + $8.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1027,9 +1043,9 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.SwitchToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.SwitchToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1041,8 +1057,9 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.BreakToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.BreakToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1054,8 +1071,9 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.ContinueToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ContinueToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1067,8 +1085,9 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.ReturnToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ReturnToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1080,8 +1099,9 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.GlobalToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.GlobalToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1093,8 +1113,9 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.StaticToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.StaticToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1106,8 +1127,10 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.EchoToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.EchoToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.EchoToken) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1119,7 +1142,7 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.InlineHTMLToken) + $1.Meta.SetTokenName(meta.InlineHTMLToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1131,7 +1154,8 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - addMeta($$, $2.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1143,13 +1167,15 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments - addMeta($$, $1.Meta, meta.UnsetToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) + $1.Meta.SetTokenName(meta.UnsetToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) if $4 != nil { - addMeta($$, $4.Meta, meta.CommaToken) + $4.Meta.SetTokenName(meta.CommaToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CommaToken) } - addMeta($$, $5.Meta, meta.CloseParenthesisToken) - addMeta($$, $6.Meta, meta.SemiColonToken) + $5.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $6, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1170,10 +1196,10 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $7)) // save comments - addMeta($$, $1.Meta, meta.ForeachToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.AsToken) - addMeta($$, $6.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ForeachToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1196,25 +1222,26 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) // save comments - addMeta($$, $1.Meta, meta.ForeachToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.AsToken) - addMeta($$, $6.Meta, meta.DoubleArrowToken) - addMeta($$, $8.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ForeachToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo($$.GetMeta()) + $8.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DECLARE '(' const_list ')' declare_statement { - $$ = stmt.NewDeclare($3, $5) + $$ = $5 + $$.(*stmt.Declare).Consts = $3 // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.DeclareToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.DeclareToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1226,7 +1253,8 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1241,9 +1269,9 @@ statement: } // save comments - addMeta($$, $1.Meta, meta.TryToken) - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.TryToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1255,8 +1283,9 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.ThrowToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ThrowToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1270,9 +1299,10 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.GotoToken) - addMeta(label, $2.Meta, meta.IdentifierToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.GotoToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(label.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1286,8 +1316,8 @@ statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta(label, $1.Meta, meta.IdentifierToken) - addMeta($$, $2.Meta, meta.ColonToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(label.GetMeta()) + $2.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1312,12 +1342,12 @@ catch_list: catch.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($2, $9)) // save comments - addMeta(catch, $2.Meta, meta.CatchToken) - addMeta(catch, $3.Meta, meta.OpenParenthesisToken) - addMeta(variable, $5.Meta, meta.VariableToken) - addMeta(catch, $6.Meta, meta.CloseParenthesisToken) - addMeta(catch, $7.Meta, meta.OpenCurlyBracesToken) - addMeta(catch, $9.Meta, meta.CloseCurlyBracesToken) + $2.Meta.SetTokenName(meta.CatchToken).AppendTo(catch.GetMeta()) + $3.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(catch.GetMeta()) + $5.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $6.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(catch.GetMeta()) + $7.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(catch.GetMeta()) + $9.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(catch.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1334,7 +1364,7 @@ catch_name_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1355,9 +1385,9 @@ finally_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.FinallyToken) - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.FinallyToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1375,7 +1405,7 @@ unset_variables: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1402,15 +1432,15 @@ function_declaration_statement: // save comments - addMeta($$, $1.Meta, meta.FunctionToken) + $1.Meta.SetTokenName(meta.FunctionToken).AppendTo($$.GetMeta()) if $2 != nil { - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } - addMeta(name, $3.Meta, meta.IdentifierToken) - addMeta($$, $5.Meta, meta.OpenParenthesisToken) - addMeta($$, $7.Meta, meta.CloseParenthesisToken) - addMeta($$, $9.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $11.Meta, meta.CloseCurlyBracesToken) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $5.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $7.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $9.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $11.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1449,10 +1479,10 @@ class_declaration_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $9)) // save comments - addMeta($$, $2.Meta, meta.ClassToken) - addMeta(name, $3.Meta, meta.IdentifierToken) - addMeta($$, $7.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $9.Meta, meta.CloseCurlyBracesToken) + $2.Meta.SetTokenName(meta.ClassToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $7.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $9.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1466,10 +1496,10 @@ class_declaration_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments - addMeta($$, $1.Meta, meta.ClassToken) - addMeta(name, $2.Meta, meta.IdentifierToken) - addMeta($$, $6.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $8.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.ClassToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1499,7 +1529,7 @@ class_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1511,7 +1541,7 @@ class_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1528,10 +1558,10 @@ trait_declaration_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments - addMeta($$, $1.Meta, meta.TraitToken) - addMeta(name, $2.Meta, meta.IdentifierToken) - addMeta($$, $4.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $6.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.TraitToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $4.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1548,10 +1578,10 @@ interface_declaration_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments - addMeta($$, $1.Meta, meta.InterfaceToken) - addMeta(name, $2.Meta, meta.IdentifierToken) - addMeta($$, $5.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $7.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.InterfaceToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $5.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $7.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1572,7 +1602,7 @@ extends_from: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ExtendsToken) + $1.Meta.SetTokenName(meta.ExtendsToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1593,7 +1623,7 @@ interface_extends_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ExtendsToken) + $1.Meta.SetTokenName(meta.ExtendsToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1614,7 +1644,7 @@ implements_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ImplementsToken) + $1.Meta.SetTokenName(meta.ImplementsToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1635,7 +1665,7 @@ foreach_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.AmpersandToken) + $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1647,9 +1677,9 @@ foreach_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ListToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ListToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1661,8 +1691,8 @@ foreach_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenSquareBracket) - addMeta($$, $3.Meta, meta.CloseSquareBracket) + $1.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1688,9 +1718,10 @@ for_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $3.Meta, meta.EndforToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.EndforToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1716,9 +1747,10 @@ foreach_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $3.Meta, meta.EndforeachToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.EndforeachToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1727,21 +1759,27 @@ foreach_statement: declare_statement: statement { - $$ = $1 + $$ = stmt.NewDeclare(nil, $1, false) + + // save position + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDDECLARE ';' { - $$ = stmt.NewStmtList($2) + stmtList := stmt.NewStmtList($2) + $$ = stmt.NewDeclare(nil, stmtList, true) // save position + stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $3.Meta, meta.EnddeclareToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.EnddeclareToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1758,8 +1796,8 @@ switch_case_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta(caseList, $1.Meta, meta.OpenCurlyBracesToken) - addMeta(caseList, $3.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(caseList.GetMeta()) + $3.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(caseList.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1773,9 +1811,10 @@ switch_case_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta(caseList, $1.Meta, meta.OpenCurlyBracesToken) - addMeta(caseList, $2.Meta, meta.SemiColonToken) - addMeta(caseList, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo(caseList.GetMeta()) + $2.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(caseList.GetMeta()) + yylex.(*Parser).appendMetaToken(caseList, $2, meta.CaseSeparatorToken) + $4.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo(caseList.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1789,9 +1828,10 @@ switch_case_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $3.Meta, meta.EndswitchToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.EndswitchToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1806,10 +1846,12 @@ switch_case_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $2.Meta, meta.SwitchSemicolonToken) - addMeta($$, $4.Meta, meta.EndswitchToken) - addMeta($$, $5.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(caseList.GetMeta()) + yylex.(*Parser).appendMetaToken(caseList, $2, meta.CaseSeparatorToken) + $4.Meta.SetTokenName(meta.EndswitchToken).AppendTo($$.GetMeta()) + $5.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $5, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1831,8 +1873,9 @@ case_list: _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) // save comments - addMeta(_case, $2.Meta, meta.CaseToken) - addMeta(_case, $4.Meta, meta.CaseSeparatorToken) + $2.Meta.SetTokenName(meta.CaseToken).AppendTo(_case.GetMeta()) + $4.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(_case.GetMeta()) + yylex.(*Parser).appendMetaToken(_case, $4, meta.CaseSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1845,8 +1888,9 @@ case_list: _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) // save comments - addMeta(_default, $2.Meta, meta.DefaultToken) - addMeta(_default, $3.Meta, meta.CaseSeparatorToken) + $2.Meta.SetTokenName(meta.DefaultToken).AppendTo(_default.GetMeta()) + $3.Meta.SetTokenName(meta.CaseSeparatorToken).AppendTo(_default.GetMeta()) + yylex.(*Parser).appendMetaToken(_default, $3, meta.CaseSeparatorToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1883,9 +1927,10 @@ while_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ColonToken) - addMeta($$, $3.Meta, meta.EndwhileToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.EndwhileToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1900,9 +1945,9 @@ if_stmt_without_else: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.IfToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.IfToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1916,9 +1961,9 @@ if_stmt_without_else: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) // save comments - addMeta(_elseIf, $2.Meta, meta.ElseifToken) - addMeta(_elseIf, $3.Meta, meta.OpenParenthesisToken) - addMeta(_elseIf, $5.Meta, meta.CloseParenthesisToken) + $2.Meta.SetTokenName(meta.ElseifToken).AppendTo(_elseIf.GetMeta()) + $3.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(_elseIf.GetMeta()) + $5.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(_elseIf.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1941,7 +1986,7 @@ if_stmt: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta(_else, $2.Meta, meta.ElseToken) + $2.Meta.SetTokenName(meta.ElseToken).AppendTo(_else.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1958,10 +2003,10 @@ alt_if_stmt_without_else: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $6)) // save comments - addMeta($$, $1.Meta, meta.IfToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) - addMeta($$, $5.Meta, meta.ColonToken) + $1.Meta.SetTokenName(meta.IfToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $5.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1976,10 +2021,10 @@ alt_if_stmt_without_else: _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $7)) // save comments - addMeta(_elseIf, $2.Meta, meta.ElseifToken) - addMeta(_elseIf, $3.Meta, meta.OpenParenthesisToken) - addMeta(_elseIf, $5.Meta, meta.CloseParenthesisToken) - addMeta(_elseIf, $6.Meta, meta.ColonToken) + $2.Meta.SetTokenName(meta.ElseifToken).AppendTo(_elseIf.GetMeta()) + $3.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(_elseIf.GetMeta()) + $5.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(_elseIf.GetMeta()) + $6.Meta.SetTokenName(meta.ColonToken).AppendTo(_elseIf.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1994,8 +2039,9 @@ alt_if_stmt: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.EndifToken) - addMeta($$, $3.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.EndifToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2011,10 +2057,11 @@ alt_if_stmt: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) // save comments - addMeta(_else, $2.Meta, meta.ElseToken) - addMeta(_else, $3.Meta, meta.ColonToken) - addMeta($$, $5.Meta, meta.EndifToken) - addMeta($$, $6.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.ElseToken).AppendTo(_else.GetMeta()) + $3.Meta.SetTokenName(meta.ColonToken).AppendTo(_else.GetMeta()) + $5.Meta.SetTokenName(meta.EndifToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $6, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2047,7 +2094,7 @@ non_empty_parameter_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2075,12 +2122,12 @@ parameter: // save comments if $2 != nil { - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } if $3 != nil { - addMeta($$, $3.Meta, meta.EllipsisToken) + $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - addMeta(variable, $4.Meta, meta.VariableToken) + $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2105,13 +2152,13 @@ parameter: // save comments if $2 != nil { - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } if $3 != nil { - addMeta($$, $3.Meta, meta.EllipsisToken) + $3.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) } - addMeta(variable, $4.Meta, meta.VariableToken) - addMeta($$, $5.Meta, meta.EqualToken) + $4.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $5.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2147,7 +2194,7 @@ type_expr: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.QuestionMarkToken) + $1.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2162,7 +2209,7 @@ type: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2174,7 +2221,7 @@ type: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2198,7 +2245,7 @@ return_type: $$ = $2; // save comments - addMeta($$, $1.Meta, meta.ColonToken) + $1.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2213,8 +2260,8 @@ argument_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $2.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2226,11 +2273,12 @@ argument_list: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) if $3 != nil { - addMeta($$, $3.Meta, meta.CommaToken) + $3.Meta.SetTokenName(meta.CommaToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.CommaToken) } - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2248,7 +2296,7 @@ non_empty_argument_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2272,7 +2320,7 @@ argument: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.EllipsisToken) + $1.Meta.SetTokenName(meta.EllipsisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2284,7 +2332,7 @@ global_var_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2311,7 +2359,7 @@ static_var_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2336,7 +2384,7 @@ static_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2352,8 +2400,8 @@ static_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) - addMeta($$, $2.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2383,7 +2431,8 @@ class_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments - addMeta($$, $3.Meta, meta.SemiColonToken) + $3.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2395,8 +2444,9 @@ class_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $4)) // save comments - addMeta($$, $2.Meta, meta.ConstToken) - addMeta($$, $4.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.ConstToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2408,7 +2458,7 @@ class_statement: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.UseToken) + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2426,13 +2476,13 @@ class_statement: } // save comments - addMeta($$, $2.Meta, meta.FunctionToken) + $2.Meta.SetTokenName(meta.FunctionToken).AppendTo($$.GetMeta()) if $3 != nil { - addMeta($$, $3.Meta, meta.AmpersandToken) + $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } - addMeta(name, $4.Meta, meta.IdentifierToken) - addMeta($$, $6.Meta, meta.OpenParenthesisToken) - addMeta($$, $8.Meta, meta.CloseParenthesisToken) + $4.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $6.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $8.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2450,7 +2500,7 @@ name_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2464,7 +2514,8 @@ trait_adaptations: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2476,8 +2527,8 @@ trait_adaptations: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $2.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2488,8 +2539,8 @@ trait_adaptations: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2516,7 +2567,8 @@ trait_adaptation: $$ = $1; // save comments - addMeta($$, $2.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2525,7 +2577,8 @@ trait_adaptation: $$ = $1; // save comments - addMeta($$, $2.Meta, meta.SemiColonToken) + $2.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2540,7 +2593,7 @@ trait_precedence: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.InsteadofToken) + $2.Meta.SetTokenName(meta.InsteadofToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2557,8 +2610,8 @@ trait_alias: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsToken) - addMeta(alias, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2572,8 +2625,8 @@ trait_alias: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsToken) - addMeta(alias, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2587,8 +2640,8 @@ trait_alias: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.AsToken) - addMeta(alias, $4.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.IdentifierToken).AppendTo(alias.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2600,7 +2653,7 @@ trait_alias: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsToken) + $2.Meta.SetTokenName(meta.AsToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2617,7 +2670,7 @@ trait_method_reference: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(name, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2640,8 +2693,8 @@ absolute_trait_method_reference: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2656,7 +2709,8 @@ method_body: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.SemiColonToken) + $1.Meta.SetTokenName(meta.SemiColonToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.SemiColonToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2668,8 +2722,8 @@ method_body: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2691,7 +2745,7 @@ variable_modifiers: modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(modifier, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(modifier.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2736,7 +2790,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2748,7 +2802,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2760,7 +2814,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2772,7 +2826,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2784,7 +2838,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2796,7 +2850,7 @@ member_modifier: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2808,7 +2862,7 @@ property_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2833,7 +2887,7 @@ property: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2849,8 +2903,8 @@ property: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) - addMeta($$, $2.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2862,7 +2916,7 @@ class_const_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2885,8 +2939,8 @@ class_const_decl: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta(name, $1.Meta, meta.IdentifierToken) - addMeta($$, $2.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2903,8 +2957,8 @@ const_decl: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - addMeta(name, $1.Meta, meta.IdentifierToken) - addMeta($$, $2.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2916,7 +2970,7 @@ echo_expr_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2958,7 +3012,7 @@ non_empty_for_exprs: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2983,9 +3037,9 @@ anonymous_class: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments - addMeta($$, $1.Meta, meta.ClassToken) - addMeta($$, $6.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $8.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.ClassToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $8.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3003,7 +3057,7 @@ new_expr: } // save comments - addMeta($$, $1.Meta, meta.NewToken) + $1.Meta.SetTokenName(meta.NewAnchor).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3015,7 +3069,7 @@ new_expr: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.NewToken) + $1.Meta.SetTokenName(meta.NewAnchor).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3032,10 +3086,10 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) // save comments - addMeta(list, $1.Meta, meta.ListToken) - addMeta(list, $2.Meta, meta.OpenParenthesisToken) - addMeta(list, $4.Meta, meta.CloseParenthesisToken) - addMeta($$, $5.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.ListToken).AppendTo(list.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) + $5.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3049,9 +3103,9 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments - addMeta(shortList, $1.Meta, meta.OpenSquareBracket) - addMeta(shortList, $3.Meta, meta.CloseSquareBracket) - addMeta($$, $4.Meta, meta.EqualToken) + $1.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo(shortList.GetMeta()) + $3.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo(shortList.GetMeta()) + $4.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3063,7 +3117,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.EqualToken) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3075,8 +3129,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.EqualToken) - addMeta($$, $3.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.EqualToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3088,7 +3142,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.CloneToken) + $1.Meta.SetTokenName(meta.CloneToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3100,7 +3154,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PlusEqualToken) + $2.Meta.SetTokenName(meta.PlusEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3112,7 +3166,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.MinusEqualToken) + $2.Meta.SetTokenName(meta.MinusEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3124,7 +3178,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.MulEqualToken) + $2.Meta.SetTokenName(meta.MulEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3136,7 +3190,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PowEqualToken) + $2.Meta.SetTokenName(meta.PowEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3148,7 +3202,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.DivEqualToken) + $2.Meta.SetTokenName(meta.DivEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3160,7 +3214,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.ConcatEqualToken) + $2.Meta.SetTokenName(meta.ConcatEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3172,7 +3226,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.ModEqualToken) + $2.Meta.SetTokenName(meta.ModEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3184,7 +3238,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AndEqualToken) + $2.Meta.SetTokenName(meta.AndEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3196,7 +3250,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.OrEqualToken) + $2.Meta.SetTokenName(meta.OrEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3208,7 +3262,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.XorEqualToken) + $2.Meta.SetTokenName(meta.XorEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3220,7 +3274,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SlEqualToken) + $2.Meta.SetTokenName(meta.SlEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3232,7 +3286,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SrEqualToken) + $2.Meta.SetTokenName(meta.SrEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3244,7 +3298,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - addMeta($$, $2.Meta, meta.IncToken) + $2.Meta.SetTokenName(meta.IncToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3256,7 +3310,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.IncToken) + $1.Meta.SetTokenName(meta.IncToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3268,7 +3322,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - addMeta($$, $2.Meta, meta.DecToken) + $2.Meta.SetTokenName(meta.DecToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3280,7 +3334,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.DecToken) + $1.Meta.SetTokenName(meta.DecToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3292,7 +3346,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.BooleanOrToken) + $2.Meta.SetTokenName(meta.BooleanOrToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3304,7 +3358,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.BooleanAndToken) + $2.Meta.SetTokenName(meta.BooleanAndToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3316,7 +3370,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LogicalOrToken) + $2.Meta.SetTokenName(meta.LogicalOrToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3328,7 +3382,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LogicalAndToken) + $2.Meta.SetTokenName(meta.LogicalAndToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3340,7 +3394,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LogicalXorToken) + $2.Meta.SetTokenName(meta.LogicalXorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3352,7 +3406,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.VerticalBarToken) + $2.Meta.SetTokenName(meta.VerticalBarToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3364,7 +3418,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3376,7 +3430,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.CaretToken) + $2.Meta.SetTokenName(meta.CaretToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3388,7 +3442,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.DotToken) + $2.Meta.SetTokenName(meta.DotToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3400,7 +3454,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PlusToken) + $2.Meta.SetTokenName(meta.PlusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3412,7 +3466,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.MinusToken) + $2.Meta.SetTokenName(meta.MinusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3424,7 +3478,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.AsteriskToken) + $2.Meta.SetTokenName(meta.AsteriskToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3436,7 +3490,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PowToken) + $2.Meta.SetTokenName(meta.PowToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3448,7 +3502,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SlashToken) + $2.Meta.SetTokenName(meta.SlashToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3460,7 +3514,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PercentToken) + $2.Meta.SetTokenName(meta.PercentToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3472,7 +3526,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SlToken) + $2.Meta.SetTokenName(meta.SlToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3484,7 +3538,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SrToken) + $2.Meta.SetTokenName(meta.SrToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3496,7 +3550,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.PlusToken) + $1.Meta.SetTokenName(meta.PlusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3508,7 +3562,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.MinusToken) + $1.Meta.SetTokenName(meta.MinusToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3520,7 +3574,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ExclamationMarkToken) + $1.Meta.SetTokenName(meta.ExclamationMarkToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3532,7 +3586,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.TildeToken) + $1.Meta.SetTokenName(meta.TildeToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3544,7 +3598,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsIdenticalToken) + $2.Meta.SetTokenName(meta.IsIdenticalToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3556,7 +3610,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsNotIdenticalToken) + $2.Meta.SetTokenName(meta.IsNotIdenticalToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3568,7 +3622,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsEqualToken) + $2.Meta.SetTokenName(meta.IsEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3580,7 +3634,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsNotEqualToken) + $2.Meta.SetTokenName(meta.IsNotEqualToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.IsNotEqualToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3592,7 +3647,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.LessToken) + $2.Meta.SetTokenName(meta.LessToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3604,7 +3659,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsSmallerOrEqualToken) + $2.Meta.SetTokenName(meta.IsSmallerOrEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3616,7 +3671,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.GreaterToken) + $2.Meta.SetTokenName(meta.GreaterToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3628,7 +3683,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.IsGreaterOrEqualToken) + $2.Meta.SetTokenName(meta.IsGreaterOrEqualToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3640,7 +3695,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.SpaceshipToken) + $2.Meta.SetTokenName(meta.SpaceshipToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3652,7 +3707,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.InstanceofToken) + $2.Meta.SetTokenName(meta.InstanceofToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3661,8 +3716,10 @@ expr_without_variable: $$ = $2; // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) + yylex.(*Parser).prependMetaToken($$, $1, meta.NodeStart) + $1.Meta.SetTokenName(meta.NodeStart).PrependTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3680,8 +3737,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) // save comments - addMeta($$, $2.Meta, meta.QuestionMarkToken) - addMeta($$, $4.Meta, meta.ColonToken) + $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3693,8 +3750,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.QuestionMarkToken) - addMeta($$, $3.Meta, meta.ColonToken) + $2.Meta.SetTokenName(meta.QuestionMarkToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.ColonToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3706,7 +3763,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.CoalesceToken) + $2.Meta.SetTokenName(meta.CoalesceToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3724,7 +3781,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.IntCastToken) + $1.Meta.SetTokenName(meta.IntCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.IntCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3736,7 +3794,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.DoubleCastToken) + $1.Meta.SetTokenName(meta.DoubleCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.DoubleCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3748,7 +3807,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.StringCastToken) + $1.Meta.SetTokenName(meta.StringCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.StringCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3760,7 +3820,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ArrayCastToken) + $1.Meta.SetTokenName(meta.ArrayCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.ArrayCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3772,7 +3833,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.ObjectCastToken) + $1.Meta.SetTokenName(meta.ObjectCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.ObjectCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3784,7 +3846,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.BoolCastToken) + $1.Meta.SetTokenName(meta.BoolCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.BoolCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3796,7 +3859,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.UnsetCastToken) + $1.Meta.SetTokenName(meta.UnsetCastToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.UnsetCastToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3823,7 +3887,7 @@ expr_without_variable: } // save comments - addMeta($$, $1.Meta, meta.ExitToken) + $1.Meta.SetTokenName(meta.ExitToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3835,7 +3899,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.AtToken) + $1.Meta.SetTokenName(meta.AtToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3853,8 +3917,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.BackquoteToken) - addMeta($$, $3.Meta, meta.BackquoteToken) + $1.Meta.SetTokenName(meta.BackquoteToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.BackquoteToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3866,7 +3930,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.PrintToken) + $1.Meta.SetTokenName(meta.PrintToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3878,7 +3942,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.YieldToken) + $1.Meta.SetTokenName(meta.YieldToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3890,7 +3954,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.YieldToken) + $1.Meta.SetTokenName(meta.YieldToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3902,8 +3966,8 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.YieldToken) - addMeta($$, $3.Meta, meta.DoubleArrowToken) + $1.Meta.SetTokenName(meta.YieldToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3915,7 +3979,7 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.YieldFromToken) + $1.Meta.SetTokenName(meta.YieldFromToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3927,14 +3991,14 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) // save comments - addMeta($$, $1.Meta, meta.FunctionToken) + $1.Meta.SetTokenName(meta.FunctionToken).AppendTo($$.GetMeta()) if $2 != nil { - addMeta($$, $2.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } - addMeta($$, $4.Meta, meta.OpenParenthesisToken) - addMeta($$, $6.Meta, meta.CloseParenthesisToken) - addMeta($$, $9.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $11.Meta, meta.CloseCurlyBracesToken) + $4.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $6.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $9.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $11.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3946,15 +4010,15 @@ expr_without_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $12)) // save comments - addMeta($$, $1.Meta, meta.StaticToken) - addMeta($$, $2.Meta, meta.FunctionToken) + $1.Meta.SetTokenName(meta.StaticToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.FunctionToken).AppendTo($$.GetMeta()) if $3 != nil { - addMeta($$, $3.Meta, meta.AmpersandToken) + $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) } - addMeta($$, $5.Meta, meta.OpenParenthesisToken) - addMeta($$, $7.Meta, meta.CloseParenthesisToken) - addMeta($$, $10.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $12.Meta, meta.CloseCurlyBracesToken) + $5.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $7.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + $10.Meta.SetTokenName(meta.OpenCurlyBracesToken).AppendTo($$.GetMeta()) + $12.Meta.SetTokenName(meta.CloseCurlyBracesToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3996,9 +4060,9 @@ lexical_vars: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.UseToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.UseToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4010,7 +4074,7 @@ lexical_var_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4033,7 +4097,7 @@ lexical_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4049,8 +4113,8 @@ lexical_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.AmpersandToken) - addMeta(variable, $2.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4074,7 +4138,7 @@ function_call: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4086,7 +4150,7 @@ function_call: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4110,7 +4174,7 @@ class_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4152,8 +4216,10 @@ exit_expr: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.OpenParenthesisToken) + $3.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.CloseParenthesisToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4204,9 +4270,9 @@ dereferencable_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.ArrayToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ArrayToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4218,8 +4284,8 @@ dereferencable_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.OpenSquareBracket) - addMeta($$, $3.Meta, meta.CloseSquareBracket) + $1.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4231,7 +4297,7 @@ dereferencable_scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.ConstantEncapsedStringToken) + $1.Meta.SetTokenName(meta.ConstantEncapsedStringToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4246,7 +4312,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.LnumberToken) + $1.Meta.SetTokenName(meta.LnumberToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4258,7 +4324,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.DnumberToken) + $1.Meta.SetTokenName(meta.DnumberToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4270,7 +4336,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4282,7 +4348,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4294,7 +4360,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4306,7 +4372,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4318,7 +4384,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4330,7 +4396,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4342,7 +4408,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4354,7 +4420,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.MagicConstantToken) + $1.Meta.SetTokenName(meta.MagicConstantToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4368,7 +4434,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.StartHeredocToken) + $1.Meta.SetTokenName(meta.StartHeredocToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4380,7 +4446,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.StartHeredocToken) + $1.Meta.SetTokenName(meta.StartHeredocToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4392,7 +4458,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.DoubleQuoteToken) + $1.Meta.SetTokenName(meta.DoubleQuoteToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4404,7 +4470,7 @@ scalar: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.StartHeredocToken) + $1.Meta.SetTokenName(meta.StartHeredocToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4442,8 +4508,8 @@ constant: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4457,8 +4523,8 @@ constant: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) - addMeta(target, $3.Meta, meta.IdentifierToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(target.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4515,8 +4581,10 @@ dereferencable: $$ = $2; // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) + $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) } @@ -4540,8 +4608,10 @@ callable_expr: $$ = $2; // save comments - addMeta($$, $1.Meta, meta.OpenParenthesisToken) - addMeta($$, $3.Meta, meta.CloseParenthesisToken) + $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) } @@ -4568,8 +4638,10 @@ callable_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4581,8 +4653,10 @@ callable_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4594,8 +4668,10 @@ callable_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4607,7 +4683,7 @@ callable_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.ObjectOperatorToken) + $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4640,7 +4716,7 @@ variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.ObjectOperatorToken) + $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4657,7 +4733,7 @@ simple_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4669,9 +4745,11 @@ simple_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.DollarToken) - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) + $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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4683,7 +4761,7 @@ simple_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.DollarToken) + $1.Meta.SetTokenName(meta.DollarToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4698,7 +4776,7 @@ static_member: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4710,7 +4788,7 @@ static_member: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4731,8 +4809,10 @@ new_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenSquareBracket) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseSquareBracket) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4744,8 +4824,10 @@ new_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - addMeta($$, $2.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $4.Meta, meta.CloseCurlyBracesToken) + $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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4757,7 +4839,7 @@ new_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.ObjectOperatorToken) + $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4769,7 +4851,7 @@ new_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4781,7 +4863,7 @@ new_variable: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.PaamayimNekudotayimToken) + $2.Meta.SetTokenName(meta.PaamayimNekudotayimToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4796,7 +4878,7 @@ member_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4805,8 +4887,10 @@ member_name: $$ = $2; // save comments - addMeta($$, $1.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $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) } @@ -4827,17 +4911,19 @@ property_name: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.IdentifierToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' expr '}' { $$ = $2; - + // save comments - addMeta($$, $1.Meta, meta.OpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $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) } @@ -4883,7 +4969,7 @@ non_empty_array_pair_list: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4908,7 +4994,7 @@ array_pair: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - addMeta($$, $2.Meta, meta.DoubleArrowToken) + $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4931,8 +5017,8 @@ array_pair: reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) // save comments - addMeta($$, $2.Meta, meta.DoubleArrowToken) - addMeta(reference, $3.Meta, meta.AmpersandToken) + $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4946,7 +5032,7 @@ array_pair: reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta(reference, $1.Meta, meta.AmpersandToken) + $1.Meta.SetTokenName(meta.AmpersandToken).AppendTo(reference.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4961,10 +5047,10 @@ array_pair: $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) // save comments - addMeta($$, $2.Meta, meta.DoubleArrowToken) - addMeta(list, $3.Meta, meta.ListToken) - addMeta(list, $4.Meta, meta.OpenParenthesisToken) - addMeta(list, $6.Meta, meta.CloseParenthesisToken) + $2.Meta.SetTokenName(meta.DoubleArrowToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.ListToken).AppendTo(list.GetMeta()) + $4.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) + $6.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4979,9 +5065,9 @@ array_pair: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta(list, $1.Meta, meta.ListToken) - addMeta(list, $2.Meta, meta.OpenParenthesisToken) - addMeta(list, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.ListToken).AppendTo(list.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo(list.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo(list.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5003,7 +5089,7 @@ encaps_list: encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) // save comments - addMeta(encapsed, $2.Meta, meta.EncapsedAndWhitespaceToken) + $2.Meta.SetTokenName(meta.EncapsedAndWhitespaceToken).AppendTo(encapsed.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5022,7 +5108,7 @@ encaps_list: encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta(encapsed, $1.Meta, meta.EncapsedAndWhitespaceToken) + $1.Meta.SetTokenName(meta.EncapsedAndWhitespaceToken).AppendTo(encapsed.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5039,7 +5125,7 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5055,9 +5141,11 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) - addMeta($$, $2.Meta, meta.OpenSquareBracket) - addMeta($$, $4.Meta, meta.CloseSquareBracket) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $2.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $2, meta.OpenCurlyBracesToken) + $4.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CloseCurlyBracesToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5075,38 +5163,48 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta(variable, $1.Meta, meta.VariableToken) - addMeta($$, $2.Meta, meta.ObjectOperatorToken) - addMeta(fetch, $3.Meta, meta.IdentifierToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo(variable.GetMeta()) + $2.Meta.SetTokenName(meta.ObjectOperatorToken).AppendTo($$.GetMeta()) + $3.Meta.SetTokenName(meta.IdentifierToken).AppendTo(fetch.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { - $$ = expr.NewVariable($2) + variable := expr.NewVariable($2) + variable.StringVar = true + + $$ = variable // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.DollarOpenCurlyBracesToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $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) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { name := node.NewIdentifier($2.Value) - $$ = expr.NewVariable(name) + variable := expr.NewVariable(name) + variable.StringVar = true + + $$ = variable // save position name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - addMeta($$, $1.Meta, meta.DollarOpenCurlyBracesToken) - addMeta(name, $2.Meta, meta.IdentifierToken) - addMeta($$, $3.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.DollarOpenCurlyBracesToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.DollarOpenCurlyBracesToken) + $2.Meta.SetTokenName(meta.IdentifierToken).AppendTo(name.GetMeta()) + $3.Meta.SetTokenName(meta.DollarCloseCurlyBracesToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.DollarCloseCurlyBracesToken) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5114,6 +5212,7 @@ encaps_var: { identifier := node.NewIdentifier($2.Value) variable := expr.NewVariable(identifier) + variable.StringVar = true $$ = expr.NewArrayDimFetch(variable, $4) // save position @@ -5122,11 +5221,15 @@ encaps_var: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments - addMeta($$, $1.Meta, meta.DollarOpenCurlyBracesToken) - addMeta(variable, $2.Meta, meta.StringVarnameToken) - addMeta($$, $3.Meta, meta.OpenSquareBracket) - addMeta($$, $5.Meta, meta.CloseSquareBracket) - addMeta($$, $6.Meta, meta.CloseCurlyBracesToken) + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + $2.Meta.SetTokenName(meta.StringVarnameToken).AppendTo(variable.GetMeta()) + $3.Meta.SetTokenName(meta.OpenSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.OpenSquareBracket) + $5.Meta.SetTokenName(meta.CloseSquareBracket).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $5, meta.CloseSquareBracket) + $6.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $6, meta.NodeEnd) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5134,6 +5237,12 @@ encaps_var: { $$ = $2; + // save comments + $1.Meta.SetTokenName(meta.NodeStart).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $1, meta.NodeStart) + $3.Meta.SetTokenName(meta.NodeEnd).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $3, meta.NodeEnd) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5147,7 +5256,7 @@ encaps_var_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.StringToken) + $1.Meta.SetTokenName(meta.StringToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5164,7 +5273,7 @@ encaps_var_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.NumStringToken) + $1.Meta.SetTokenName(meta.NumStringToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5190,11 +5299,11 @@ encaps_var_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.MinusToken) + $1.Meta.SetTokenName(meta.MinusToken).AppendTo($$.GetMeta()) if isInt { - addMeta(lnumber, $2.Meta, meta.NumStringToken) + $2.Meta.SetTokenName(meta.NumStringToken).AppendTo(lnumber.GetMeta()) } else { - addMeta($$, $2.Meta, meta.NumStringToken) + $2.Meta.SetTokenName(meta.NumStringToken).AppendTo($$.GetMeta()) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5209,7 +5318,7 @@ encaps_var_offset: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - addMeta($$, $1.Meta, meta.VariableToken) + $1.Meta.SetTokenName(meta.VariableToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5224,12 +5333,13 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments - addMeta($$, $1.Meta, meta.IssetToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) + $1.Meta.SetTokenName(meta.IssetToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) if $4 != nil { - addMeta($$, $4.Meta, meta.CommaToken) + $4.Meta.SetTokenName(meta.CommaToken).AppendTo($$.GetMeta()) + yylex.(*Parser).appendMetaToken($$, $4, meta.CommaToken) } - addMeta($$, $5.Meta, meta.CloseParenthesisToken) + $5.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5241,9 +5351,9 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.EmptyToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.EmptyToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5255,7 +5365,7 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.IncludeToken) + $1.Meta.SetTokenName(meta.IncludeToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5267,7 +5377,7 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.IncludeOnceToken) + $1.Meta.SetTokenName(meta.IncludeOnceToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5279,9 +5389,9 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - addMeta($$, $1.Meta, meta.EvalToken) - addMeta($$, $2.Meta, meta.OpenParenthesisToken) - addMeta($$, $4.Meta, meta.CloseParenthesisToken) + $1.Meta.SetTokenName(meta.EvalToken).AppendTo($$.GetMeta()) + $2.Meta.SetTokenName(meta.OpenParenthesisToken).AppendTo($$.GetMeta()) + $4.Meta.SetTokenName(meta.CloseParenthesisToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5293,7 +5403,7 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.RequireToken) + $1.Meta.SetTokenName(meta.RequireToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5305,7 +5415,7 @@ internal_functions_in_yacc: $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - addMeta($$, $1.Meta, meta.RequireOnceToken) + $1.Meta.SetTokenName(meta.RequireOnceToken).AppendTo($$.GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5323,7 +5433,7 @@ isset_variables: $$ = append($1, $3) // save comments - addMeta(lastNode($1), $2.Meta, meta.NodeEnd) + $2.Meta.SetTokenName(meta.NodeEnd).AppendTo(lastNode($1).GetMeta()) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/php7/php7_test.go b/php7/php7_test.go index 53875e1..3ebc9c3 100644 --- a/php7/php7_test.go +++ b/php7/php7_test.go @@ -449,6 +449,7 @@ func TestPhp7(t *testing.T) { StartPos: 10, EndPos: 11, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, @@ -476,6 +477,7 @@ func TestPhp7(t *testing.T) { StartPos: 17, EndPos: 18, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, @@ -512,6 +514,7 @@ func TestPhp7(t *testing.T) { StartPos: 24, EndPos: 27, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -546,6 +549,7 @@ func TestPhp7(t *testing.T) { StartPos: 29, EndPos: 30, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -573,6 +577,7 @@ func TestPhp7(t *testing.T) { StartPos: 36, EndPos: 37, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, @@ -609,6 +614,7 @@ func TestPhp7(t *testing.T) { StartPos: 43, EndPos: 46, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -652,6 +658,7 @@ func TestPhp7(t *testing.T) { StartPos: 53, EndPos: 54, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -670,8 +677,8 @@ func TestPhp7(t *testing.T) { StartPos: 57, EndPos: 61, }, - IsReference: false, Variadic: true, + IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 4, @@ -679,6 +686,7 @@ func TestPhp7(t *testing.T) { StartPos: 60, EndPos: 61, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, @@ -760,6 +768,7 @@ func TestPhp7(t *testing.T) { StartPos: 76, EndPos: 77, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, @@ -787,6 +796,7 @@ func TestPhp7(t *testing.T) { StartPos: 83, EndPos: 84, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, @@ -823,6 +833,7 @@ func TestPhp7(t *testing.T) { StartPos: 90, EndPos: 93, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -857,8 +868,8 @@ func TestPhp7(t *testing.T) { StartPos: 100, EndPos: 101, }, - Variadic: false, IsReference: false, + Variadic: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 6, @@ -866,6 +877,7 @@ func TestPhp7(t *testing.T) { StartPos: 100, EndPos: 101, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -884,8 +896,8 @@ func TestPhp7(t *testing.T) { StartPos: 104, EndPos: 108, }, - IsReference: false, Variadic: true, + IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 6, @@ -893,6 +905,7 @@ func TestPhp7(t *testing.T) { StartPos: 107, EndPos: 108, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, @@ -965,6 +978,7 @@ func TestPhp7(t *testing.T) { StartPos: 122, EndPos: 123, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, @@ -992,6 +1006,7 @@ func TestPhp7(t *testing.T) { StartPos: 129, EndPos: 130, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, @@ -1044,8 +1059,8 @@ func TestPhp7(t *testing.T) { StartPos: 172, EndPos: 173, }, - Variadic: false, IsReference: false, + Variadic: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 9, @@ -1053,6 +1068,7 @@ func TestPhp7(t *testing.T) { StartPos: 172, EndPos: 173, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, @@ -1071,8 +1087,8 @@ func TestPhp7(t *testing.T) { StartPos: 176, EndPos: 180, }, - IsReference: false, Variadic: true, + IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 9, @@ -1080,6 +1096,7 @@ func TestPhp7(t *testing.T) { StartPos: 179, EndPos: 180, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, @@ -1144,6 +1161,7 @@ func TestPhp7(t *testing.T) { StartPos: 209, EndPos: 212, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 11, @@ -1184,6 +1202,7 @@ func TestPhp7(t *testing.T) { StartPos: 221, EndPos: 224, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 12, @@ -1234,6 +1253,7 @@ func TestPhp7(t *testing.T) { StartPos: 236, EndPos: 239, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 13, @@ -1251,6 +1271,7 @@ func TestPhp7(t *testing.T) { StartPos: 241, EndPos: 244, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 13, @@ -1292,6 +1313,7 @@ func TestPhp7(t *testing.T) { StartPos: 254, EndPos: 257, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 14, @@ -1342,6 +1364,7 @@ func TestPhp7(t *testing.T) { StartPos: 271, EndPos: 274, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 15, @@ -1359,6 +1382,7 @@ func TestPhp7(t *testing.T) { StartPos: 277, EndPos: 280, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 15, @@ -1409,6 +1433,7 @@ func TestPhp7(t *testing.T) { StartPos: 297, EndPos: 300, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 16, @@ -1429,8 +1454,8 @@ func TestPhp7(t *testing.T) { StartPos: 306, EndPos: 350, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 18, @@ -1448,8 +1473,8 @@ func TestPhp7(t *testing.T) { StartPos: 319, EndPos: 332, }, - ByRef: false, Variadic: false, + ByRef: false, VariableType: &node.Nullable{ Position: &position.Position{ StartLine: 18, @@ -1484,6 +1509,7 @@ func TestPhp7(t *testing.T) { StartPos: 324, EndPos: 327, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 18, @@ -1557,6 +1583,7 @@ func TestPhp7(t *testing.T) { StartPos: 343, EndPos: 346, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 18, @@ -1626,8 +1653,8 @@ func TestPhp7(t *testing.T) { StartPos: 385, EndPos: 398, }, - Variadic: false, ByRef: false, + Variadic: false, VariableType: &node.Nullable{ Position: &position.Position{ StartLine: 19, @@ -1662,6 +1689,7 @@ func TestPhp7(t *testing.T) { StartPos: 390, EndPos: 393, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 19, @@ -1735,6 +1763,7 @@ func TestPhp7(t *testing.T) { StartPos: 409, EndPos: 412, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 19, @@ -1773,9 +1802,9 @@ func TestPhp7(t *testing.T) { StartPos: 421, EndPos: 461, }, - PhpDocComment: "", ReturnsRef: false, Static: false, + PhpDocComment: "", Params: []node.Node{ &node.Parameter{ Position: &position.Position{ @@ -1820,6 +1849,7 @@ func TestPhp7(t *testing.T) { StartPos: 435, EndPos: 438, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 20, @@ -1893,6 +1923,7 @@ func TestPhp7(t *testing.T) { StartPos: 454, EndPos: 457, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 20, @@ -1933,8 +1964,8 @@ func TestPhp7(t *testing.T) { StartPos: 482, EndPos: 495, }, - ByRef: false, Variadic: false, + ByRef: false, VariableType: &node.Nullable{ Position: &position.Position{ StartLine: 21, @@ -1969,6 +2000,7 @@ func TestPhp7(t *testing.T) { StartPos: 487, EndPos: 490, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 21, @@ -2042,6 +2074,7 @@ func TestPhp7(t *testing.T) { StartPos: 506, EndPos: 509, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 21, @@ -2343,6 +2376,7 @@ func TestPhp7(t *testing.T) { StartPos: 873, EndPos: 876, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 39, @@ -2394,6 +2428,7 @@ func TestPhp7(t *testing.T) { StartPos: 888, EndPos: 891, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 40, @@ -2455,6 +2490,7 @@ func TestPhp7(t *testing.T) { StartPos: 906, EndPos: 909, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 41, @@ -2524,6 +2560,7 @@ func TestPhp7(t *testing.T) { StartPos: 925, EndPos: 928, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 42, @@ -2585,6 +2622,7 @@ func TestPhp7(t *testing.T) { StartPos: 982, EndPos: 985, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 43, @@ -2646,6 +2684,7 @@ func TestPhp7(t *testing.T) { StartPos: 1040, EndPos: 1043, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 44, @@ -2707,6 +2746,7 @@ func TestPhp7(t *testing.T) { StartPos: 1060, EndPos: 1063, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 45, @@ -2724,6 +2764,7 @@ func TestPhp7(t *testing.T) { StartPos: 1065, EndPos: 1068, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 45, @@ -2760,6 +2801,7 @@ func TestPhp7(t *testing.T) { StartPos: 1076, EndPos: 1079, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 46, @@ -2786,6 +2828,7 @@ func TestPhp7(t *testing.T) { StartPos: 1081, EndPos: 1084, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 46, @@ -2837,6 +2880,7 @@ func TestPhp7(t *testing.T) { StartPos: 1096, EndPos: 1099, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 47, @@ -2900,6 +2944,7 @@ func TestPhp7(t *testing.T) { StartPos: 1118, EndPos: 1123, }, + StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 48, @@ -2951,6 +2996,7 @@ func TestPhp7(t *testing.T) { StartPos: 1137, EndPos: 1139, }, + StringVar: true, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 49, @@ -3005,6 +3051,7 @@ func TestPhp7(t *testing.T) { StartPos: 1155, EndPos: 1161, }, + StringVar: true, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 50, @@ -3012,6 +3059,7 @@ func TestPhp7(t *testing.T) { StartPos: 1157, EndPos: 1160, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 50, @@ -3064,6 +3112,7 @@ func TestPhp7(t *testing.T) { StartPos: 1174, EndPos: 1177, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 51, @@ -3109,6 +3158,7 @@ func TestPhp7(t *testing.T) { StartPos: 1196, EndPos: 1197, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 53, @@ -3143,6 +3193,7 @@ func TestPhp7(t *testing.T) { StartPos: 1217, EndPos: 1218, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 55, @@ -3177,6 +3228,7 @@ func TestPhp7(t *testing.T) { StartPos: 1233, EndPos: 1234, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 56, @@ -3213,6 +3265,7 @@ func TestPhp7(t *testing.T) { StartPos: 1253, EndPos: 1254, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 58, @@ -3264,6 +3317,7 @@ func TestPhp7(t *testing.T) { StartPos: 1282, EndPos: 1283, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 61, @@ -3298,6 +3352,7 @@ func TestPhp7(t *testing.T) { StartPos: 1298, EndPos: 1299, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 62, @@ -3332,6 +3387,7 @@ func TestPhp7(t *testing.T) { StartPos: 1313, EndPos: 1314, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 63, @@ -3698,8 +3754,8 @@ func TestPhp7(t *testing.T) { StartPos: 1516, EndPos: 1532, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, MethodName: &node.Identifier{ Position: &position.Position{ StartLine: 72, @@ -4494,6 +4550,7 @@ func TestPhp7(t *testing.T) { StartPos: 1980, EndPos: 2008, }, + Alt: true, Consts: []node.Node{ &stmt.Constant{ Position: &position.Position{ @@ -4525,10 +4582,10 @@ func TestPhp7(t *testing.T) { }, Stmt: &stmt.StmtList{ Position: &position.Position{ - StartLine: 87, - EndLine: 87, - StartPos: 1996, - EndPos: 2008, + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, }, Stmts: []node.Node{}, }, @@ -4574,6 +4631,7 @@ func TestPhp7(t *testing.T) { StartPos: 2035, EndPos: 2036, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 89, @@ -4610,6 +4668,7 @@ func TestPhp7(t *testing.T) { StartPos: 2049, EndPos: 2050, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 90, @@ -4644,6 +4703,7 @@ func TestPhp7(t *testing.T) { StartPos: 2060, EndPos: 2061, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, @@ -4680,6 +4740,7 @@ func TestPhp7(t *testing.T) { StartPos: 2068, EndPos: 2069, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, @@ -4716,6 +4777,7 @@ func TestPhp7(t *testing.T) { StartPos: 2077, EndPos: 2078, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, @@ -4741,6 +4803,7 @@ func TestPhp7(t *testing.T) { StartPos: 2083, EndPos: 2084, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, @@ -4785,6 +4848,7 @@ func TestPhp7(t *testing.T) { StartPos: 2100, EndPos: 2101, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 92, @@ -4821,6 +4885,7 @@ func TestPhp7(t *testing.T) { StartPos: 2109, EndPos: 2110, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 92, @@ -4846,6 +4911,7 @@ func TestPhp7(t *testing.T) { StartPos: 2115, EndPos: 2116, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 92, @@ -4882,6 +4948,7 @@ func TestPhp7(t *testing.T) { StartPos: 2142, EndPos: 2143, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 93, @@ -4899,6 +4966,7 @@ func TestPhp7(t *testing.T) { StartPos: 2148, EndPos: 2149, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 93, @@ -4933,6 +5001,7 @@ func TestPhp7(t *testing.T) { StartPos: 2166, EndPos: 2167, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, @@ -4950,6 +5019,7 @@ func TestPhp7(t *testing.T) { StartPos: 2172, EndPos: 2173, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, @@ -4984,6 +5054,7 @@ func TestPhp7(t *testing.T) { StartPos: 2201, EndPos: 2202, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 95, @@ -5001,6 +5072,7 @@ func TestPhp7(t *testing.T) { StartPos: 2207, EndPos: 2208, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 95, @@ -5018,6 +5090,7 @@ func TestPhp7(t *testing.T) { StartPos: 2213, EndPos: 2214, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 95, @@ -5052,6 +5125,7 @@ func TestPhp7(t *testing.T) { StartPos: 2231, EndPos: 2232, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 96, @@ -5069,6 +5143,7 @@ func TestPhp7(t *testing.T) { StartPos: 2237, EndPos: 2238, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 96, @@ -5093,6 +5168,7 @@ func TestPhp7(t *testing.T) { StartPos: 2244, EndPos: 2245, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 96, @@ -5128,6 +5204,7 @@ func TestPhp7(t *testing.T) { StartPos: 2262, EndPos: 2263, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -5145,6 +5222,7 @@ func TestPhp7(t *testing.T) { StartPos: 2268, EndPos: 2269, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -5177,6 +5255,7 @@ func TestPhp7(t *testing.T) { StartPos: 2279, EndPos: 2280, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, @@ -5214,6 +5293,7 @@ func TestPhp7(t *testing.T) { StartPos: 2298, EndPos: 2299, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 98, @@ -5231,6 +5311,7 @@ func TestPhp7(t *testing.T) { StartPos: 2304, EndPos: 2305, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 98, @@ -5263,6 +5344,7 @@ func TestPhp7(t *testing.T) { StartPos: 2311, EndPos: 2312, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 98, @@ -5380,8 +5462,8 @@ func TestPhp7(t *testing.T) { StartPos: 2398, EndPos: 2421, }, - PhpDocComment: "", ReturnsRef: true, + PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 102, @@ -5427,6 +5509,7 @@ func TestPhp7(t *testing.T) { StartPos: 2432, EndPos: 2433, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, @@ -5444,6 +5527,7 @@ func TestPhp7(t *testing.T) { StartPos: 2436, EndPos: 2437, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, @@ -5504,6 +5588,7 @@ func TestPhp7(t *testing.T) { StartPos: 2462, EndPos: 2463, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 106, @@ -5538,6 +5623,7 @@ func TestPhp7(t *testing.T) { StartPos: 2475, EndPos: 2476, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 107, @@ -5572,6 +5658,7 @@ func TestPhp7(t *testing.T) { StartPos: 2490, EndPos: 2491, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 107, @@ -5608,6 +5695,7 @@ func TestPhp7(t *testing.T) { StartPos: 2503, EndPos: 2504, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 108, @@ -5659,6 +5747,7 @@ func TestPhp7(t *testing.T) { StartPos: 2524, EndPos: 2525, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 109, @@ -5693,6 +5782,7 @@ func TestPhp7(t *testing.T) { StartPos: 2539, EndPos: 2540, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 109, @@ -5727,6 +5817,7 @@ func TestPhp7(t *testing.T) { StartPos: 2554, EndPos: 2555, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 109, @@ -5780,6 +5871,7 @@ func TestPhp7(t *testing.T) { StartPos: 2575, EndPos: 2576, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, @@ -5814,6 +5906,7 @@ func TestPhp7(t *testing.T) { StartPos: 2590, EndPos: 2591, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, @@ -5856,6 +5949,7 @@ func TestPhp7(t *testing.T) { StartPos: 2606, EndPos: 2607, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, @@ -6162,6 +6256,7 @@ func TestPhp7(t *testing.T) { StartPos: 2795, EndPos: 2796, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 118, @@ -6238,6 +6333,7 @@ func TestPhp7(t *testing.T) { StartPos: 2827, EndPos: 2828, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 119, @@ -6264,6 +6360,7 @@ func TestPhp7(t *testing.T) { StartPos: 2831, EndPos: 2832, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 119, @@ -6310,6 +6407,7 @@ func TestPhp7(t *testing.T) { StartPos: 2849, EndPos: 2850, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 120, @@ -6335,6 +6433,7 @@ func TestPhp7(t *testing.T) { StartPos: 2853, EndPos: 2854, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 120, @@ -6668,6 +6767,7 @@ func TestPhp7(t *testing.T) { StartPos: 3102, EndPos: 3103, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 143, @@ -7445,6 +7545,7 @@ func TestPhp7(t *testing.T) { StartPos: 3444, EndPos: 3445, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 154, @@ -7522,6 +7623,7 @@ func TestPhp7(t *testing.T) { StartPos: 3494, EndPos: 3495, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 155, @@ -7580,6 +7682,7 @@ func TestPhp7(t *testing.T) { StartPos: 3527, EndPos: 3528, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 156, @@ -7627,6 +7730,7 @@ func TestPhp7(t *testing.T) { StartPos: 3558, EndPos: 3559, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 156, @@ -7685,6 +7789,7 @@ func TestPhp7(t *testing.T) { StartPos: 3591, EndPos: 3592, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 157, @@ -7723,6 +7828,7 @@ func TestPhp7(t *testing.T) { StartPos: 3618, EndPos: 3619, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 159, @@ -7740,6 +7846,7 @@ func TestPhp7(t *testing.T) { StartPos: 3622, EndPos: 3623, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 159, @@ -8818,6 +8925,7 @@ func TestPhp7(t *testing.T) { StartPos: 3990, EndPos: 3991, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 177, @@ -8867,6 +8975,7 @@ func TestPhp7(t *testing.T) { StartPos: 3999, EndPos: 4000, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, @@ -9012,6 +9121,7 @@ func TestPhp7(t *testing.T) { StartPos: 4047, EndPos: 4048, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 181, @@ -9049,6 +9159,7 @@ func TestPhp7(t *testing.T) { StartPos: 4056, EndPos: 4057, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 182, @@ -9082,6 +9193,7 @@ func TestPhp7(t *testing.T) { StartPos: 4063, EndPos: 4064, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 183, @@ -9159,6 +9271,7 @@ func TestPhp7(t *testing.T) { StartPos: 4082, EndPos: 4085, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 186, @@ -9201,6 +9314,7 @@ func TestPhp7(t *testing.T) { StartPos: 4101, EndPos: 4102, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 187, @@ -9234,6 +9348,7 @@ func TestPhp7(t *testing.T) { StartPos: 4114, EndPos: 4115, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 188, @@ -9260,9 +9375,9 @@ func TestPhp7(t *testing.T) { StartPos: 4120, EndPos: 4131, }, + PhpDocComment: "", ReturnsRef: false, Static: false, - PhpDocComment: "", Stmts: []node.Node{}, }, }, @@ -9300,6 +9415,7 @@ func TestPhp7(t *testing.T) { StartPos: 4145, EndPos: 4146, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, @@ -9327,6 +9443,7 @@ func TestPhp7(t *testing.T) { StartPos: 4149, EndPos: 4150, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, @@ -9354,6 +9471,7 @@ func TestPhp7(t *testing.T) { StartPos: 4158, EndPos: 4159, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, @@ -9378,6 +9496,7 @@ func TestPhp7(t *testing.T) { StartPos: 4163, EndPos: 4164, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, @@ -9559,6 +9678,7 @@ func TestPhp7(t *testing.T) { StartPos: 4235, EndPos: 4236, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 196, @@ -9592,6 +9712,7 @@ func TestPhp7(t *testing.T) { StartPos: 4243, EndPos: 4244, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 197, @@ -9625,6 +9746,7 @@ func TestPhp7(t *testing.T) { StartPos: 4254, EndPos: 4255, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 198, @@ -9676,6 +9798,7 @@ func TestPhp7(t *testing.T) { StartPos: 4274, EndPos: 4275, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 200, @@ -9727,6 +9850,7 @@ func TestPhp7(t *testing.T) { StartPos: 4292, EndPos: 4293, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 202, @@ -9889,6 +10013,7 @@ func TestPhp7(t *testing.T) { StartPos: 4337, EndPos: 4340, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 206, @@ -9930,6 +10055,7 @@ func TestPhp7(t *testing.T) { StartPos: 4348, EndPos: 4349, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 208, @@ -9963,6 +10089,7 @@ func TestPhp7(t *testing.T) { StartPos: 4356, EndPos: 4357, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 209, @@ -9996,6 +10123,7 @@ func TestPhp7(t *testing.T) { StartPos: 4366, EndPos: 4367, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 210, @@ -10029,6 +10157,7 @@ func TestPhp7(t *testing.T) { StartPos: 4374, EndPos: 4375, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 211, @@ -10062,6 +10191,7 @@ func TestPhp7(t *testing.T) { StartPos: 4389, EndPos: 4390, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 213, @@ -10095,6 +10225,7 @@ func TestPhp7(t *testing.T) { StartPos: 4408, EndPos: 4409, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 214, @@ -10128,6 +10259,7 @@ func TestPhp7(t *testing.T) { StartPos: 4422, EndPos: 4423, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, @@ -10161,6 +10293,7 @@ func TestPhp7(t *testing.T) { StartPos: 4441, EndPos: 4442, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 216, @@ -10194,6 +10327,7 @@ func TestPhp7(t *testing.T) { StartPos: 4448, EndPos: 4449, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 218, @@ -10246,6 +10380,7 @@ func TestPhp7(t *testing.T) { StartPos: 4469, EndPos: 4470, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 219, @@ -10298,6 +10433,7 @@ func TestPhp7(t *testing.T) { StartPos: 4500, EndPos: 4501, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 220, @@ -10351,6 +10487,7 @@ func TestPhp7(t *testing.T) { StartPos: 4529, EndPos: 4530, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 222, @@ -10368,6 +10505,7 @@ func TestPhp7(t *testing.T) { StartPos: 4533, EndPos: 4534, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 222, @@ -10417,6 +10555,7 @@ func TestPhp7(t *testing.T) { StartPos: 4545, EndPos: 4546, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 223, @@ -10437,6 +10576,7 @@ func TestPhp7(t *testing.T) { StartPos: 4551, EndPos: 4552, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 223, @@ -10492,6 +10632,7 @@ func TestPhp7(t *testing.T) { StartPos: 4562, EndPos: 4563, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 224, @@ -10513,6 +10654,7 @@ func TestPhp7(t *testing.T) { StartPos: 4570, EndPos: 4571, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 224, @@ -10576,6 +10718,7 @@ func TestPhp7(t *testing.T) { StartPos: 4586, EndPos: 4587, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 225, @@ -10599,6 +10742,7 @@ func TestPhp7(t *testing.T) { StartPos: 4593, EndPos: 4594, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 225, @@ -10632,6 +10776,7 @@ func TestPhp7(t *testing.T) { StartPos: 4600, EndPos: 4601, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 227, @@ -10836,6 +10981,7 @@ func TestPhp7(t *testing.T) { StartPos: 4674, EndPos: 4675, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 231, @@ -10863,6 +11009,7 @@ func TestPhp7(t *testing.T) { StartPos: 4681, EndPos: 4682, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 231, @@ -10901,6 +11048,7 @@ func TestPhp7(t *testing.T) { StartPos: 4697, EndPos: 4698, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 232, @@ -10934,6 +11082,7 @@ func TestPhp7(t *testing.T) { StartPos: 4704, EndPos: 4705, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 233, @@ -10986,6 +11135,7 @@ func TestPhp7(t *testing.T) { StartPos: 4720, EndPos: 4721, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 234, @@ -11151,6 +11301,7 @@ func TestPhp7(t *testing.T) { StartPos: 4763, EndPos: 4764, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 239, @@ -11203,6 +11354,7 @@ func TestPhp7(t *testing.T) { StartPos: 4773, EndPos: 4774, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 241, @@ -11223,6 +11375,7 @@ func TestPhp7(t *testing.T) { StartPos: 4779, EndPos: 4780, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 241, @@ -11278,6 +11431,7 @@ func TestPhp7(t *testing.T) { StartPos: 4786, EndPos: 4787, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 242, @@ -11299,6 +11453,7 @@ func TestPhp7(t *testing.T) { StartPos: 4794, EndPos: 4795, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 242, @@ -11362,6 +11517,7 @@ func TestPhp7(t *testing.T) { StartPos: 4806, EndPos: 4807, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, @@ -11385,6 +11541,7 @@ func TestPhp7(t *testing.T) { StartPos: 4813, EndPos: 4814, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, @@ -11593,6 +11750,7 @@ func TestPhp7(t *testing.T) { StartPos: 4877, EndPos: 4880, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 247, @@ -11626,6 +11784,7 @@ func TestPhp7(t *testing.T) { StartPos: 4885, EndPos: 4888, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, @@ -11643,6 +11802,7 @@ func TestPhp7(t *testing.T) { StartPos: 4891, EndPos: 4894, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, @@ -11695,6 +11855,7 @@ func TestPhp7(t *testing.T) { StartPos: 4914, EndPos: 4917, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 249, @@ -11747,6 +11908,7 @@ func TestPhp7(t *testing.T) { StartPos: 4928, EndPos: 4931, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 250, @@ -11780,6 +11942,7 @@ func TestPhp7(t *testing.T) { StartPos: 4936, EndPos: 4937, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 251, @@ -11797,6 +11960,7 @@ func TestPhp7(t *testing.T) { StartPos: 4941, EndPos: 4942, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 251, @@ -11814,6 +11978,7 @@ func TestPhp7(t *testing.T) { StartPos: 4946, EndPos: 4947, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 251, @@ -11847,6 +12012,7 @@ func TestPhp7(t *testing.T) { StartPos: 4952, EndPos: 4953, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, @@ -11864,6 +12030,7 @@ func TestPhp7(t *testing.T) { StartPos: 4959, EndPos: 4960, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, @@ -11897,6 +12064,7 @@ func TestPhp7(t *testing.T) { StartPos: 4965, EndPos: 4966, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -11921,6 +12089,7 @@ func TestPhp7(t *testing.T) { StartPos: 4970, EndPos: 4971, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -11938,6 +12107,7 @@ func TestPhp7(t *testing.T) { StartPos: 4975, EndPos: 4976, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -11955,6 +12125,7 @@ func TestPhp7(t *testing.T) { StartPos: 4980, EndPos: 4981, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -11973,6 +12144,7 @@ func TestPhp7(t *testing.T) { StartPos: 4985, EndPos: 4986, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, @@ -12013,6 +12185,7 @@ func TestPhp7(t *testing.T) { StartPos: 4991, EndPos: 4992, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, @@ -12030,6 +12203,7 @@ func TestPhp7(t *testing.T) { StartPos: 4996, EndPos: 4997, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, @@ -12047,6 +12221,7 @@ func TestPhp7(t *testing.T) { StartPos: 5001, EndPos: 5002, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, @@ -12065,6 +12240,7 @@ func TestPhp7(t *testing.T) { StartPos: 5006, EndPos: 5007, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, @@ -12082,6 +12258,7 @@ func TestPhp7(t *testing.T) { StartPos: 5011, EndPos: 5012, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, @@ -12115,6 +12292,7 @@ func TestPhp7(t *testing.T) { StartPos: 5018, EndPos: 5019, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 255, @@ -12148,6 +12326,7 @@ func TestPhp7(t *testing.T) { StartPos: 5025, EndPos: 5026, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 256, @@ -12174,6 +12353,7 @@ func TestPhp7(t *testing.T) { StartPos: 5031, EndPos: 5033, }, + StringVar: false, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 257, @@ -12181,6 +12361,7 @@ func TestPhp7(t *testing.T) { StartPos: 5032, EndPos: 5033, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 257, @@ -12230,6 +12411,7 @@ func TestPhp7(t *testing.T) { StartPos: 5053, EndPos: 5054, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 259, @@ -12263,6 +12445,7 @@ func TestPhp7(t *testing.T) { StartPos: 5065, EndPos: 5066, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, @@ -12280,6 +12463,7 @@ func TestPhp7(t *testing.T) { StartPos: 5071, EndPos: 5072, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, @@ -12313,6 +12497,7 @@ func TestPhp7(t *testing.T) { StartPos: 5088, EndPos: 5089, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 261, @@ -12346,6 +12531,7 @@ func TestPhp7(t *testing.T) { StartPos: 5104, EndPos: 5105, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 263, @@ -12379,6 +12565,7 @@ func TestPhp7(t *testing.T) { StartPos: 5119, EndPos: 5120, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 264, @@ -12412,6 +12599,7 @@ func TestPhp7(t *testing.T) { StartPos: 5131, EndPos: 5132, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 265, @@ -12445,6 +12633,7 @@ func TestPhp7(t *testing.T) { StartPos: 5145, EndPos: 5146, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 266, @@ -12478,6 +12667,7 @@ func TestPhp7(t *testing.T) { StartPos: 5158, EndPos: 5159, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 267, @@ -12511,6 +12701,7 @@ func TestPhp7(t *testing.T) { StartPos: 5173, EndPos: 5174, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, @@ -12544,6 +12735,7 @@ func TestPhp7(t *testing.T) { StartPos: 5184, EndPos: 5185, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 269, @@ -12577,6 +12769,7 @@ func TestPhp7(t *testing.T) { StartPos: 5198, EndPos: 5199, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, @@ -12610,6 +12803,7 @@ func TestPhp7(t *testing.T) { StartPos: 5212, EndPos: 5213, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, @@ -12643,6 +12837,7 @@ func TestPhp7(t *testing.T) { StartPos: 5225, EndPos: 5226, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, @@ -12676,6 +12871,7 @@ func TestPhp7(t *testing.T) { StartPos: 5232, EndPos: 5233, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, @@ -12693,6 +12889,7 @@ func TestPhp7(t *testing.T) { StartPos: 5237, EndPos: 5238, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, @@ -12726,6 +12923,7 @@ func TestPhp7(t *testing.T) { StartPos: 5243, EndPos: 5244, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, @@ -12743,6 +12941,7 @@ func TestPhp7(t *testing.T) { StartPos: 5248, EndPos: 5249, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, @@ -12776,6 +12975,7 @@ func TestPhp7(t *testing.T) { StartPos: 5254, EndPos: 5255, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, @@ -12793,6 +12993,7 @@ func TestPhp7(t *testing.T) { StartPos: 5259, EndPos: 5260, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, @@ -12826,6 +13027,7 @@ func TestPhp7(t *testing.T) { StartPos: 5265, EndPos: 5266, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, @@ -12843,6 +13045,7 @@ func TestPhp7(t *testing.T) { StartPos: 5271, EndPos: 5272, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, @@ -12876,6 +13079,7 @@ func TestPhp7(t *testing.T) { StartPos: 5277, EndPos: 5278, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, @@ -12893,6 +13097,7 @@ func TestPhp7(t *testing.T) { StartPos: 5283, EndPos: 5284, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, @@ -12926,6 +13131,7 @@ func TestPhp7(t *testing.T) { StartPos: 5289, EndPos: 5290, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, @@ -12943,6 +13149,7 @@ func TestPhp7(t *testing.T) { StartPos: 5295, EndPos: 5296, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, @@ -12976,6 +13183,7 @@ func TestPhp7(t *testing.T) { StartPos: 5301, EndPos: 5302, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, @@ -12993,6 +13201,7 @@ func TestPhp7(t *testing.T) { StartPos: 5306, EndPos: 5307, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, @@ -13026,6 +13235,7 @@ func TestPhp7(t *testing.T) { StartPos: 5312, EndPos: 5313, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, @@ -13043,6 +13253,7 @@ func TestPhp7(t *testing.T) { StartPos: 5317, EndPos: 5318, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, @@ -13076,6 +13287,7 @@ func TestPhp7(t *testing.T) { StartPos: 5323, EndPos: 5324, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, @@ -13093,6 +13305,7 @@ func TestPhp7(t *testing.T) { StartPos: 5329, EndPos: 5330, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, @@ -13126,6 +13339,7 @@ func TestPhp7(t *testing.T) { StartPos: 5335, EndPos: 5336, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, @@ -13143,6 +13357,7 @@ func TestPhp7(t *testing.T) { StartPos: 5341, EndPos: 5342, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, @@ -13176,6 +13391,7 @@ func TestPhp7(t *testing.T) { StartPos: 5347, EndPos: 5348, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, @@ -13193,6 +13409,7 @@ func TestPhp7(t *testing.T) { StartPos: 5352, EndPos: 5353, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, @@ -13226,6 +13443,7 @@ func TestPhp7(t *testing.T) { StartPos: 5358, EndPos: 5359, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, @@ -13243,6 +13461,7 @@ func TestPhp7(t *testing.T) { StartPos: 5365, EndPos: 5366, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, @@ -13276,6 +13495,7 @@ func TestPhp7(t *testing.T) { StartPos: 5371, EndPos: 5372, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, @@ -13293,6 +13513,7 @@ func TestPhp7(t *testing.T) { StartPos: 5378, EndPos: 5379, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, @@ -13326,6 +13547,7 @@ func TestPhp7(t *testing.T) { StartPos: 5384, EndPos: 5385, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, @@ -13343,6 +13565,7 @@ func TestPhp7(t *testing.T) { StartPos: 5390, EndPos: 5391, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, @@ -13376,6 +13599,7 @@ func TestPhp7(t *testing.T) { StartPos: 5396, EndPos: 5397, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, @@ -13393,6 +13617,7 @@ func TestPhp7(t *testing.T) { StartPos: 5403, EndPos: 5404, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, @@ -13426,6 +13651,7 @@ func TestPhp7(t *testing.T) { StartPos: 5409, EndPos: 5410, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, @@ -13443,6 +13669,7 @@ func TestPhp7(t *testing.T) { StartPos: 5414, EndPos: 5415, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, @@ -13476,6 +13703,7 @@ func TestPhp7(t *testing.T) { StartPos: 5420, EndPos: 5421, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, @@ -13493,6 +13721,7 @@ func TestPhp7(t *testing.T) { StartPos: 5425, EndPos: 5426, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, @@ -13526,6 +13755,7 @@ func TestPhp7(t *testing.T) { StartPos: 5431, EndPos: 5432, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, @@ -13543,6 +13773,7 @@ func TestPhp7(t *testing.T) { StartPos: 5436, EndPos: 5437, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, @@ -13576,6 +13807,7 @@ func TestPhp7(t *testing.T) { StartPos: 5442, EndPos: 5443, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, @@ -13593,6 +13825,7 @@ func TestPhp7(t *testing.T) { StartPos: 5448, EndPos: 5449, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, @@ -13626,6 +13859,7 @@ func TestPhp7(t *testing.T) { StartPos: 5454, EndPos: 5455, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 293, @@ -13643,6 +13877,7 @@ func TestPhp7(t *testing.T) { StartPos: 5461, EndPos: 5462, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 293, @@ -13676,6 +13911,7 @@ func TestPhp7(t *testing.T) { StartPos: 5467, EndPos: 5468, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, @@ -13693,6 +13929,7 @@ func TestPhp7(t *testing.T) { StartPos: 5472, EndPos: 5473, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, @@ -13726,6 +13963,7 @@ func TestPhp7(t *testing.T) { StartPos: 5478, EndPos: 5479, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, @@ -13743,6 +13981,7 @@ func TestPhp7(t *testing.T) { StartPos: 5484, EndPos: 5485, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, @@ -13776,6 +14015,7 @@ func TestPhp7(t *testing.T) { StartPos: 5490, EndPos: 5491, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, @@ -13793,6 +14033,7 @@ func TestPhp7(t *testing.T) { StartPos: 5496, EndPos: 5497, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, @@ -13826,6 +14067,7 @@ func TestPhp7(t *testing.T) { StartPos: 5502, EndPos: 5503, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, @@ -13843,6 +14085,7 @@ func TestPhp7(t *testing.T) { StartPos: 5508, EndPos: 5509, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, @@ -13876,6 +14119,7 @@ func TestPhp7(t *testing.T) { StartPos: 5514, EndPos: 5515, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, @@ -13893,6 +14137,7 @@ func TestPhp7(t *testing.T) { StartPos: 5520, EndPos: 5521, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, @@ -13926,6 +14171,7 @@ func TestPhp7(t *testing.T) { StartPos: 5526, EndPos: 5527, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, @@ -13943,6 +14189,7 @@ func TestPhp7(t *testing.T) { StartPos: 5531, EndPos: 5532, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, @@ -13976,6 +14223,7 @@ func TestPhp7(t *testing.T) { StartPos: 5537, EndPos: 5538, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, @@ -13993,6 +14241,7 @@ func TestPhp7(t *testing.T) { StartPos: 5544, EndPos: 5545, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, @@ -14026,6 +14275,7 @@ func TestPhp7(t *testing.T) { StartPos: 5551, EndPos: 5552, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, @@ -14043,6 +14293,7 @@ func TestPhp7(t *testing.T) { StartPos: 5557, EndPos: 5558, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, @@ -14076,6 +14327,7 @@ func TestPhp7(t *testing.T) { StartPos: 5563, EndPos: 5564, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, @@ -14093,6 +14345,7 @@ func TestPhp7(t *testing.T) { StartPos: 5568, EndPos: 5569, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, @@ -14126,6 +14379,7 @@ func TestPhp7(t *testing.T) { StartPos: 5574, EndPos: 5575, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, @@ -14143,6 +14397,7 @@ func TestPhp7(t *testing.T) { StartPos: 5580, EndPos: 5581, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, @@ -14176,6 +14431,7 @@ func TestPhp7(t *testing.T) { StartPos: 5586, EndPos: 5587, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, @@ -14193,6 +14449,7 @@ func TestPhp7(t *testing.T) { StartPos: 5592, EndPos: 5593, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, @@ -14226,6 +14483,7 @@ func TestPhp7(t *testing.T) { StartPos: 5598, EndPos: 5599, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, @@ -14243,6 +14501,7 @@ func TestPhp7(t *testing.T) { StartPos: 5604, EndPos: 5605, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, @@ -14276,6 +14535,7 @@ func TestPhp7(t *testing.T) { StartPos: 5610, EndPos: 5611, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, @@ -14293,6 +14553,7 @@ func TestPhp7(t *testing.T) { StartPos: 5616, EndPos: 5617, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, @@ -14326,6 +14587,7 @@ func TestPhp7(t *testing.T) { StartPos: 5622, EndPos: 5623, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, @@ -14343,6 +14605,7 @@ func TestPhp7(t *testing.T) { StartPos: 5628, EndPos: 5629, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, @@ -14376,6 +14639,7 @@ func TestPhp7(t *testing.T) { StartPos: 5634, EndPos: 5635, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, @@ -14393,6 +14657,7 @@ func TestPhp7(t *testing.T) { StartPos: 5640, EndPos: 5641, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, @@ -14426,6 +14691,7 @@ func TestPhp7(t *testing.T) { StartPos: 5646, EndPos: 5647, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 310, @@ -14443,6 +14709,7 @@ func TestPhp7(t *testing.T) { StartPos: 5652, EndPos: 5653, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 310, @@ -14476,6 +14743,7 @@ func TestPhp7(t *testing.T) { StartPos: 5658, EndPos: 5659, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 311, @@ -14493,6 +14761,7 @@ func TestPhp7(t *testing.T) { StartPos: 5664, EndPos: 5665, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 311, @@ -14526,6 +14795,7 @@ func TestPhp7(t *testing.T) { StartPos: 5670, EndPos: 5671, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 312, @@ -14543,6 +14813,7 @@ func TestPhp7(t *testing.T) { StartPos: 5676, EndPos: 5677, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 312, @@ -14576,6 +14847,7 @@ func TestPhp7(t *testing.T) { StartPos: 5682, EndPos: 5683, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 313, @@ -14593,6 +14865,7 @@ func TestPhp7(t *testing.T) { StartPos: 5689, EndPos: 5690, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 313, @@ -14626,6 +14899,7 @@ func TestPhp7(t *testing.T) { StartPos: 5695, EndPos: 5696, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 314, @@ -14643,6 +14917,7 @@ func TestPhp7(t *testing.T) { StartPos: 5702, EndPos: 5703, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 314, @@ -14676,6 +14951,7 @@ func TestPhp7(t *testing.T) { StartPos: 5708, EndPos: 5709, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 315, @@ -14693,6 +14969,7 @@ func TestPhp7(t *testing.T) { StartPos: 5715, EndPos: 5716, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 315, @@ -14730,8 +15007,8 @@ func TestPhp7(t *testing.T) { StartPos: 5733, EndPos: 5758, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", MethodName: &node.Identifier{ Position: &position.Position{ StartLine: 317, @@ -14823,8 +15100,8 @@ func TestPhp7(t *testing.T) { StartPos: 5779, EndPos: 5905, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 320, @@ -14842,8 +15119,8 @@ func TestPhp7(t *testing.T) { StartPos: 5792, EndPos: 5794, }, - Variadic: false, ByRef: true, + Variadic: false, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 320, @@ -14851,6 +15128,7 @@ func TestPhp7(t *testing.T) { StartPos: 5793, EndPos: 5794, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 320, @@ -14869,8 +15147,8 @@ func TestPhp7(t *testing.T) { StartPos: 5797, EndPos: 5801, }, - ByRef: false, Variadic: true, + ByRef: false, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 320, @@ -14878,6 +15156,7 @@ func TestPhp7(t *testing.T) { StartPos: 5800, EndPos: 5801, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 320, @@ -14906,8 +15185,8 @@ func TestPhp7(t *testing.T) { StartPos: 5831, EndPos: 5847, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 322, @@ -15013,6 +15292,7 @@ func TestPhp7(t *testing.T) { StartPos: 5926, EndPos: 5927, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, @@ -15049,6 +15329,7 @@ func TestPhp7(t *testing.T) { StartPos: 5937, EndPos: 5938, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, @@ -15076,8 +15357,8 @@ func TestPhp7(t *testing.T) { StartPos: 5945, EndPos: 5950, }, - ByRef: false, Variadic: false, + ByRef: false, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 328, @@ -15085,6 +15366,7 @@ func TestPhp7(t *testing.T) { StartPos: 5945, EndPos: 5946, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, @@ -15115,8 +15397,8 @@ func TestPhp7(t *testing.T) { StartPos: 5958, EndPos: 5995, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 329, @@ -15152,6 +15434,7 @@ func TestPhp7(t *testing.T) { StartPos: 5977, EndPos: 5978, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 329, @@ -15188,6 +15471,7 @@ func TestPhp7(t *testing.T) { StartPos: 5990, EndPos: 5991, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 329, @@ -15247,8 +15531,8 @@ func TestPhp7(t *testing.T) { StartPos: 6026, EndPos: 6066, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", MethodName: &node.Identifier{ Position: &position.Position{ StartLine: 330, @@ -15492,6 +15776,7 @@ func TestPhp7(t *testing.T) { StartPos: 6139, EndPos: 6142, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 334, @@ -15681,6 +15966,7 @@ func TestPhp7(t *testing.T) { StartPos: 6180, EndPos: 6183, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 337, @@ -15716,6 +16002,7 @@ func TestPhp7(t *testing.T) { StartPos: 6191, EndPos: 6198, }, + StringVar: false, VarName: &expr.FunctionCall{ Position: &position.Position{ StartLine: 338, @@ -15793,6 +16080,7 @@ func TestPhp7(t *testing.T) { StartPos: 6209, EndPos: 6212, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 340, @@ -15860,6 +16148,7 @@ func TestPhp7(t *testing.T) { StartPos: 6225, EndPos: 6228, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 341, @@ -15911,6 +16200,7 @@ func TestPhp7(t *testing.T) { StartPos: 6242, EndPos: 6245, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 343, @@ -15928,6 +16218,7 @@ func TestPhp7(t *testing.T) { StartPos: 6248, EndPos: 6251, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 343, @@ -15961,6 +16252,7 @@ func TestPhp7(t *testing.T) { StartPos: 6256, EndPos: 6259, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 344, @@ -15985,6 +16277,7 @@ func TestPhp7(t *testing.T) { StartPos: 6263, EndPos: 6266, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 344, @@ -16052,6 +16345,7 @@ func TestPhp7(t *testing.T) { StartPos: 6281, EndPos: 6282, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 346, @@ -16102,6 +16396,7 @@ func TestPhp7(t *testing.T) { StartPos: 6293, EndPos: 6294, }, + StringVar: false, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 346, diff --git a/printer/pretty_printer.go b/printer/pretty_printer.go index 9331b74..b8f0d29 100644 --- a/printer/pretty_printer.go +++ b/printer/pretty_printer.go @@ -1319,8 +1319,9 @@ func (p *PrettyPrinter) printExprUnaryPlus(n node.Node) { } func (p *PrettyPrinter) printExprVariable(n node.Node) { + nn := n.(*expr.Variable) io.WriteString(p.w, "$") - p.Print(n.(*expr.Variable).VarName) + p.Print(nn.VarName) } func (p *PrettyPrinter) printExprYieldFrom(n node.Node) { diff --git a/printer/printer.go b/printer/printer.go index 26febed..9fe4ec9 100644 --- a/printer/printer.go +++ b/printer/printer.go @@ -48,16 +48,21 @@ func (p *Printer) printNodes(nn []node.Node) { } } -func (p *Printer) printMeta(n node.Node, tn meta.TokenName) { +func (p *Printer) printMeta(n node.Node, tn meta.TokenName) bool { if n == nil { - return + return false } - for _, m := range n.GetMeta() { - if m.GetTokenName() == tn { + r := false + + for _, m := range *n.GetMeta() { + if m.TokenName == tn { io.WriteString(p.w, m.String()) + r = true } } + + return r } func (p *Printer) printNode(n node.Node) { @@ -76,7 +81,7 @@ func (p *Printer) printNode(n node.Node) { case *node.Argument: p.printNodeArgument(n) - // name + // name case *name.NamePart: p.printNameNamePart(n) @@ -87,7 +92,7 @@ func (p *Printer) printNode(n node.Node) { case *name.Relative: p.printNameRelative(n) - // scalar + // scalar case *scalar.Lnumber: p.printScalarLNumber(n) @@ -104,7 +109,7 @@ func (p *Printer) printNode(n node.Node) { case *scalar.MagicConstant: p.printScalarMagicConstant(n) - // assign + // assign case *assign.Assign: p.printAssign(n) @@ -135,7 +140,7 @@ func (p *Printer) printNode(n node.Node) { case *assign.ShiftRight: p.printAssignShiftRight(n) - // binary + // binary case *binary.BitwiseAnd: p.printBinaryBitwiseAnd(n) @@ -192,7 +197,7 @@ func (p *Printer) printNode(n node.Node) { case *binary.Spaceship: p.printBinarySpaceship(n) - // cast + // cast case *cast.Array: p.printArray(n) @@ -209,7 +214,7 @@ func (p *Printer) printNode(n node.Node) { case *cast.Unset: p.printUnset(n) - // expr + // expr case *expr.ArrayDimFetch: p.printExprArrayDimFetch(n) @@ -296,7 +301,7 @@ func (p *Printer) printNode(n node.Node) { case *expr.Yield: p.printExprYield(n) - // stmt + // stmt case *stmt.AltElseIf: p.printStmtAltElseIf(n) @@ -324,6 +329,8 @@ func (p *Printer) printNode(n node.Node) { p.printStmtClass(n) case *stmt.ClassConstList: p.printStmtClassConstList(n) + case *stmt.ConstList: + p.printStmtConstList(n) case *stmt.Constant: p.printStmtConstant(n) case *stmt.Continue: @@ -415,22 +422,23 @@ func (p *Printer) printNodeRoot(n node.Node) { nn := n.(*node.Root) p.printMeta(nn, meta.NodeStart) - var stmts []node.Node + // var stmts []node.Node - if len(nn.Stmts) > 0 { - firstStmt := nn.Stmts[0] - stmts = nn.Stmts[1:] + // if len(nn.Stmts) > 0 { + // firstStmt := nn.Stmts[0] + // stmts = nn.Stmts[1:] - switch fs := firstStmt.(type) { - case *stmt.InlineHtml: - io.WriteString(p.w, fs.Value) - io.WriteString(p.w, " 0 { p.printNodes(nn.Stmts) @@ -2135,17 +2123,20 @@ func (p *Printer) printStmtClass(n node.Node) { p.printMeta(nn.ArgumentList, meta.OpenParenthesisToken) io.WriteString(p.w, "(") p.joinPrint(",", nn.ArgumentList.Arguments) + p.printMeta(nn.ArgumentList, meta.CommaToken) p.printMeta(nn.ArgumentList, meta.CloseParenthesisToken) io.WriteString(p.w, ")") } if nn.Extends != nil { + p.printMeta(nn.Extends, meta.NodeStart) p.printMeta(nn.Extends, meta.ExtendsToken) io.WriteString(p.w, "extends") p.Print(nn.Extends.ClassName) } if nn.Implements != nil { + p.printMeta(nn.Implements, meta.NodeStart) p.printMeta(nn.Implements, meta.ImplementsToken) io.WriteString(p.w, "implements") p.joinPrint(",", nn.Implements.InterfaceNames) @@ -2173,7 +2164,20 @@ func (p *Printer) printStmtClassConstList(n node.Node) { p.joinPrint(",", nn.Consts) p.printMeta(nn, meta.SemiColonToken) - io.WriteString(p.w, ";") + + p.printMeta(nn, meta.NodeEnd) +} + +func (p *Printer) printStmtConstList(n node.Node) { + nn := n.(*stmt.ConstList) + p.printMeta(nn, meta.NodeStart) + + p.printMeta(nn, meta.ConstToken) + io.WriteString(p.w, "const") + + p.joinPrint(",", nn.Consts) + + p.printMeta(nn, meta.SemiColonToken) p.printMeta(nn, meta.NodeEnd) } @@ -2198,15 +2202,10 @@ func (p *Printer) printStmtContinue(n node.Node) { io.WriteString(p.w, "continue") if nn.Expr != nil { - p.printMeta(nn.Expr, meta.OpenParenthesisToken) - io.WriteString(p.w, "(") p.Print(nn.Expr) - p.printMeta(nn.Expr, meta.CloseParenthesisToken) - io.WriteString(p.w, ")") } p.printMeta(nn, meta.SemiColonToken) - io.WriteString(p.w, ";") p.printMeta(nn, meta.NodeEnd) } @@ -2223,7 +2222,20 @@ func (p *Printer) printStmtDeclare(n node.Node) { p.printMeta(nn, meta.CloseParenthesisToken) io.WriteString(p.w, ")") - p.Print(nn.Stmt) + if nn.Alt { + p.printMeta(nn, meta.ColonToken) + io.WriteString(p.w, ":") + + s := nn.Stmt.(*stmt.StmtList) + p.printNodes(s.Stmts) + + p.printMeta(nn, meta.EnddeclareToken) + io.WriteString(p.w, "enddeclare") + p.printMeta(nn, meta.SemiColonToken) + + } else { + p.Print(nn.Stmt) + } p.printMeta(nn, meta.NodeEnd) } @@ -2234,8 +2246,10 @@ func (p *Printer) printStmtDefault(n node.Node) { p.printMeta(nn, meta.DefaultToken) io.WriteString(p.w, "default") - p.printMeta(nn, meta.CaseSeparatorToken) - io.WriteString(p.w, ":") + r := p.printMeta(nn, meta.CaseSeparatorToken) + if !r { + io.WriteString(p.w, ":") + } if len(nn.Stmts) > 0 { p.printNodes(nn.Stmts) @@ -2261,7 +2275,6 @@ func (p *Printer) printStmtDo(n node.Node) { p.printMeta(nn, meta.CloseParenthesisToken) io.WriteString(p.w, ")") p.printMeta(nn, meta.SemiColonToken) - io.WriteString(p.w, ";") p.printMeta(nn, meta.NodeEnd) } @@ -2271,10 +2284,8 @@ func (p *Printer) printStmtEcho(n node.Node) { p.printMeta(nn, meta.NodeStart) p.printMeta(nn, meta.EchoToken) - io.WriteString(p.w, "echo") p.joinPrint(",", nn.Exprs) p.printMeta(nn, meta.SemiColonToken) - io.WriteString(p.w, ";") p.printMeta(nn, meta.NodeEnd) } @@ -2315,7 +2326,6 @@ func (p *Printer) printStmtExpression(n node.Node) { p.Print(nn.Expr) p.printMeta(nn, meta.SemiColonToken) - io.WriteString(p.w, ";") p.printMeta(nn, meta.NodeEnd) } @@ -2428,7 +2438,6 @@ func (p *Printer) printStmtGlobal(n node.Node) { io.WriteString(p.w, "global") p.joinPrint(",", nn.Vars) p.printMeta(nn, meta.SemiColonToken) - io.WriteString(p.w, ";") p.printMeta(nn, meta.NodeEnd) } @@ -2441,7 +2450,6 @@ func (p *Printer) printStmtGoto(n node.Node) { io.WriteString(p.w, "goto") p.Print(nn.Label) p.printMeta(nn, meta.SemiColonToken) - io.WriteString(p.w, ";") p.printMeta(nn, meta.NodeEnd) } @@ -2457,16 +2465,17 @@ func (p *Printer) printStmtGroupUse(n node.Node) { p.Print(nn.UseType) } + p.printMeta(nn, meta.UseLeadingNsSeparatorToken) p.Print(nn.Prefix) p.printMeta(nn, meta.NsSeparatorToken) io.WriteString(p.w, "\\") p.printMeta(nn, meta.OpenCurlyBracesToken) io.WriteString(p.w, "{") p.joinPrint(",", nn.UseList) + p.printMeta(nn, meta.CommaToken) p.printMeta(nn, meta.CloseCurlyBracesToken) io.WriteString(p.w, "}") p.printMeta(nn, meta.SemiColonToken) - io.WriteString(p.w, ";") p.printMeta(nn, meta.NodeEnd) } @@ -2482,7 +2491,6 @@ func (p *Printer) printStmtHaltCompiler(n node.Node) { p.printMeta(n, meta.CloseParenthesisToken) io.WriteString(p.w, ")") p.printMeta(n, meta.SemiColonToken) - io.WriteString(p.w, ";") p.printMeta(nn, meta.NodeEnd) } @@ -2517,9 +2525,9 @@ func (p *Printer) printStmtInlineHTML(n node.Node) { p.printMeta(nn, meta.NodeStart) p.printMeta(n, meta.InlineHTMLToken) - io.WriteString(p.w, "?>") + // io.WriteString(p.w, "?>") io.WriteString(p.w, nn.Value) - io.WriteString(p.w, "Hello + >= $b ; + ` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +// test binary + +func TestParseAndPrintPhp5Binary(t *testing.T) { + src := `= $b ; + $a > $b ; + $a === $b ; + $a and $b ; + $a or $b ; + $a xor $b ; + $a - $b ; + $a % $b ; + $a * $b ; + $a != $b ; + $a <> $b ; + $a !== $b ; + $a + $b ; + $a ** $b ; + $a << $b ; + $a >> $b ; + $a <= $b ; + $a < $b ; + ` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +// test cast + +func TestParseAndPrintPhp5Cast(t *testing.T) { + src := ` $world , + ] ; + ` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5Array(t *testing.T) { + src := ` 2 ) ; + ` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5BitwiseNot(t *testing.T) { + src := ` bar ( $arg ) ;` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5New(t *testing.T) { + src := ` b ;` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5Reference(t *testing.T) { + src := ` & $c ] ; + + $a = function ( ) use ( & $b ) { + // do nothing + } ; + + foreach ( $a as & $b ) { + // do nothing + }` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5Require(t *testing.T) { + + src := ` & $b , // one + $c , /* two */ + ] ; + $a = [0, 1, 2] ;` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5StaticCall(t *testing.T) { + src := ` $v ;` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +// test stmt + +func TestParseAndPrintPhp5AltIf(t *testing.T) { + src := ` & $v ) : + echo $v ; + endforeach ;` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5AltSwitch(t *testing.T) { + src := ` + + + & $v ) { + ; + }` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5Function(t *testing.T) { + + src := `test call ( ) ; + $a -> { $b . 'b' } ; + $a -> $b ( ) -> { $c . 'c' } ; + ` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5ComplexString1(t *testing.T) { + src := `bar" ; + ` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5ComplexString2(t *testing.T) { + src := ` bar }" ; + "test ${ $foo -> bar ( ) }" ; + "test ${ $a . '' }" ; + ` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintPhp5ComplexString3(t *testing.T) { + src := ` bar }" ; + "test {$foo -> bar ( ) }" ; + ` + + actual := printPhp5(parsePhp5(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} diff --git a/printer/printer_parsed_test.go b/printer/printer_parsed_php7_test.go similarity index 54% rename from printer/printer_parsed_test.go rename to printer/printer_parsed_php7_test.go index 5e7858c..06bd502 100644 --- a/printer/printer_parsed_test.go +++ b/printer/printer_parsed_php7_test.go @@ -35,7 +35,7 @@ abstract class Bar extends Baz rootNode := php7parser.GetRootNode() - // change + // change namespace parts := &rootNode.(*node.Root).Stmts[0].(*stmt.Namespace).NamespaceName.(*name.Name).Parts *parts = append(*parts, &name.NamePart{Value: "Quuz"}) @@ -77,40 +77,13 @@ func print(n node.Node) string { return o.String() } +// test node + func TestParseAndPrintRoot(t *testing.T) { - src := `Hello + Hello - bar ( ' ' ) ; - } elseif ( isset ( $b [ 2 ] ) ) - list( , $c , ) = $b; - else if ( 1 ); - else { - echo '' ; - }` + __CLASS__ ; + __DIR__ ; + __FILE__ ; + __FUNCTION__ ; + __LINE__ ; + __NAMESPACE__ ; + __METHOD__ ; + __TRAIT__ ; + ` + + actual := print(parse(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintNumber(t *testing.T) { + src := `>= $b ; + ` + + actual := print(parse(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +// test binary + +func TestParseAndPrintBinary(t *testing.T) { + src := `= $b ; + $a > $b ; + $a === $b ; + $a and $b ; + $a or $b ; + $a xor $b ; + $a - $b ; + $a % $b ; + $a * $b ; + $a != $b ; + $a <> $b ; + $a !== $b ; + $a + $b ; + $a ** $b ; + $a << $b ; + $a >> $b ; + $a <= $b ; + $a < $b ; + $a <=> $b ; + ` + + actual := print(parse(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +// test cast + +func TestParseAndPrintCast(t *testing.T) { + src := ` $world , + ] ; + ` + + actual := print(parse(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintArray(t *testing.T) { + src := ` 2 ) ; + ` + + actual := print(parse(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintBitwiseNot(t *testing.T) { + src := ` bar ( $arg , ) ;` actual := print(parse(src)) @@ -231,9 +648,9 @@ func TestParseAndPrintIncDec(t *testing.T) { } } -func TestParseAndPrintPropertyFetchPrint(t *testing.T) { +func TestParseAndPrintPrint(t *testing.T) { src := ` b ; + print $a ; print ( $a ) ;` actual := print(parse(src)) @@ -243,10 +660,29 @@ func TestParseAndPrintPropertyFetchPrint(t *testing.T) { } } -func TestParseAndPrintForeachReferenceShellExec(t *testing.T) { +func TestParseAndPrintPropertyFetch(t *testing.T) { src := ` & $v ) { - ` + "` {$v} cmd `" + ` ; + $a -> b ;` + + actual := print(parse(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintReference(t *testing.T) { + src := ` & $c ] ; + + $a = function ( ) use ( & $b ) { + // do nothing + } ; + + foreach ( $a as & $b ) { + // do nothing }` actual := print(parse(src)) @@ -256,10 +692,11 @@ func TestParseAndPrintForeachReferenceShellExec(t *testing.T) { } } -func TestParseAndPrintShortListShortArray(t *testing.T) { +func TestParseAndPrintRequire(t *testing.T) { + src := ` & $b , // one + $c , /* two */ + ] ; + $a = [0, 1, 2] ;` + + actual := print(parse(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintShortList(t *testing.T) { + src := ` + + + & $v ) { + ; + }` + + actual := print(parse(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + +func TestParseAndPrintFunction(t *testing.T) { + + src := `testtest call ( ) ; + $a -> { $b . 'b' } ; ` actual := print(parse(src)) @@ -709,11 +1445,13 @@ func TestParseAndPrintDoWhile(t *testing.T) { } } -func TestParseAndPrintNames(t *testing.T) { +func TestParseAndPrintComplexString1(t *testing.T) { src := `bar" ; ` actual := print(parse(src)) @@ -723,13 +1461,19 @@ func TestParseAndPrintNames(t *testing.T) { } } -func TestParseAndPrintScalar(t *testing.T) { +func TestParseAndPrintComplexString2(t *testing.T) { src := ` bar }" ; + "test ${ $foo -> bar ( ) }" ; + "test ${ $a . '' }" ; ` actual := print(parse(src)) @@ -739,227 +1483,13 @@ func TestParseAndPrintScalar(t *testing.T) { } } -func TestParseAndPrintHeredoc(t *testing.T) { +func TestParseAndPrintComplexString3(t *testing.T) { src := `>= $b ; - ` - - actual := print(parse(src)) - - if src != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) - } -} - -func TestParseAndPrintBinary(t *testing.T) { - src := `= $b ; - $a > $b ; - $a === $b ; - $a and $b ; - $a or $b ; - $a xor $b ; - $a - $b ; - $a % $b ; - $a * $b ; - $a != $b ; - $a !== $b ; - $a + $b ; - $a ** $b ; - $a << $b ; - $a >> $b ; - $a <= $b ; - $a < $b ; - $a <=> $b ; - ` - - actual := print(parse(src)) - - if src != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) - } -} - -func TestParseAndPrintUnary(t *testing.T) { - src := ` 2 ] ; - $a = array( 0 , 2 => 2 ) ; - ` - - actual := print(parse(src)) - - if src != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) - } -} - -func TestParseAndPrintClassConstFetch(t *testing.T) { - src := ` bar }" ; + "test {$foo -> bar ( ) }" ; ` actual := print(parse(src)) diff --git a/printer/printer_test.go b/printer/printer_test.go index 2f3e097..6c55f34 100644 --- a/printer/printer_test.go +++ b/printer/printer_test.go @@ -63,7 +63,7 @@ func TestPrinterPrintFile(t *testing.T) { }, }) - expected := `HTML"}, &stmt.Expression{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "HTMLHTML&$val ) :$d; endforeach ;` + expected := ` foreach ($var as$key =>&$val ) :$d endforeach ` actual := o.String() if expected != actual { @@ -3367,31 +3634,42 @@ func TestPrinterPrintAltIf(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.AltIf{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.IfToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ColonToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.EndifToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, Stmt: &stmt.StmtList{ @@ -3422,7 +3700,7 @@ func TestPrinterPrintAltIf(t *testing.T) { }, }) - expected := ` if ($a ) :$d;elseif($b):$b;elseif($c):else:$b; endif ;` + expected := ` if ($a ) :$delseif($b):$belseif($c):else:$b endif ` actual := o.String() if expected != actual { @@ -3435,35 +3713,42 @@ func TestPrinterPrintStmtAltSwitch(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.AltSwitch{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SwitchToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ColonToken, }, - &meta.WhiteSpace{ - Value: " ", - TokenName: meta.SwitchSemicolonToken, - }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.EndswitchToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Cond: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, CaseList: &stmt.CaseList{ @@ -3484,7 +3769,7 @@ func TestPrinterPrintStmtAltSwitch(t *testing.T) { }, }) - expected := ` switch ($var ) : ;case'a':$a;case'b':$b; endswitch ;` + expected := ` switch ($var ) :case'a':$acase'b':$b endswitch ` actual := o.String() if expected != actual { @@ -3497,31 +3782,42 @@ func TestPrinterPrintAltWhile(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.AltWhile{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.WhileToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ColonToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.EndwhileToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, Stmt: &stmt.StmtList{ @@ -3531,7 +3827,7 @@ func TestPrinterPrintAltWhile(t *testing.T) { }, }) - expected := ` while ($a ) :$b; endwhile ;` + expected := ` while ($a ) :$b endwhile ` actual := o.String() if expected != actual { @@ -3544,32 +3840,36 @@ func TestPrinterPrintStmtBreak(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Break{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.BreakToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Expr: &scalar.Lnumber{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", - TokenName: meta.OpenParenthesisToken, - }, - &meta.WhiteSpace{ - Value: " ", - TokenName: meta.CloseParenthesisToken, + TokenName: meta.NodeStart, }, }, Value: "1", }, }) - expected := " break (1 ) ;" + expected := " break 1 " actual := o.String() if expected != actual { @@ -3582,15 +3882,12 @@ func TestPrinterPrintStmtCase(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Case{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CaseToken, }, - &meta.WhiteSpace{ - Value: " ", - TokenName: meta.CaseSeparatorToken, - }, }, Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, Stmts: []node.Node{ @@ -3598,7 +3895,7 @@ func TestPrinterPrintStmtCase(t *testing.T) { }, }) - expected := ` case$a :$a;` + expected := ` case$a:$a` actual := o.String() if expected != actual { @@ -3611,21 +3908,18 @@ func TestPrinterPrintStmtCaseEmpty(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Case{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CaseToken, }, - &meta.WhiteSpace{ - Value: " ", - TokenName: meta.CaseSeparatorToken, - }, }, Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, Stmts: []node.Node{}, }) - expected := " case$a :" + expected := " case$a:" actual := o.String() if expected != actual { @@ -3638,24 +3932,29 @@ func TestPrinterPrintStmtCatch(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Catch{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CatchToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenCurlyBracesToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseCurlyBracesToken, }, @@ -3670,7 +3969,7 @@ func TestPrinterPrintStmtCatch(t *testing.T) { }, }) - expected := ` catch (Exception|\RuntimeException$e ) {$a; }` + expected := ` catch (Exception|\RuntimeException$e ) {$a }` actual := o.String() if expected != actual { @@ -3683,20 +3982,24 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.ClassMethod{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.FunctionToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.AmpersandToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -3717,8 +4020,9 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { }, }, ReturnType: &name.Name{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ColonToken, }, @@ -3726,12 +4030,14 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { Parts: []node.Node{&name.NamePart{Value: "void"}}, }, Stmt: &stmt.StmtList{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenCurlyBracesToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseCurlyBracesToken, }, @@ -3742,32 +4048,37 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { }, }) - expected := `public function &foo (?int&$a=null,...$b ) :void {$a; }` + expected := `public function &foo (?int&$a=null,...$b ) :void {$a }` actual := o.String() if expected != actual { t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) } } + func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) p.Print(&stmt.ClassMethod{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.FunctionToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.AmpersandToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -3788,8 +4099,9 @@ func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { }, }, ReturnType: &name.Name{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ColonToken, }, @@ -3799,7 +4111,7 @@ func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { Stmt: &stmt.Nop{}, }) - expected := `public function &foo (?int&$a=null,...$b ) :void;` + expected := `public function &foo (?int&$a=null,...$b ) :void` actual := o.String() if expected != actual { @@ -3812,16 +4124,19 @@ func TestPrinterPrintStmtClass(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Class{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ClassToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenCurlyBracesToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseCurlyBracesToken, }, @@ -3829,8 +4144,9 @@ func TestPrinterPrintStmtClass(t *testing.T) { Modifiers: []node.Node{&node.Identifier{Value: "abstract"}}, ClassName: &node.Identifier{Value: "Foo"}, Extends: &stmt.ClassExtends{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ExtendsToken, }, @@ -3838,8 +4154,9 @@ func TestPrinterPrintStmtClass(t *testing.T) { ClassName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, }, Implements: &stmt.ClassImplements{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ImplementsToken, }, @@ -3862,7 +4179,7 @@ func TestPrinterPrintStmtClass(t *testing.T) { }, }) - expected := `abstract classFoo extendsBar implementsBaz,Quuz {publicconstFOO='bar'; }` + expected := `abstract classFoo extendsBar implementsBaz,Quuz {publicconstFOO='bar' }` actual := o.String() if expected != actual { @@ -3875,28 +4192,33 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Class{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ClassToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenCurlyBracesToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseCurlyBracesToken, }, }, Modifiers: []node.Node{&node.Identifier{Value: "abstract"}}, ArgumentList: &node.ArgumentList{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -3911,8 +4233,9 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { }, }, Extends: &stmt.ClassExtends{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ExtendsToken, }, @@ -3920,8 +4243,9 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { ClassName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, }, Implements: &stmt.ClassImplements{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ImplementsToken, }, @@ -3944,7 +4268,7 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { }, }) - expected := `abstract class ($a,$b ) extendsBar implementsBaz,Quuz {publicconstFOO='bar'; }` + expected := `abstract class ($a,$b ) extendsBar implementsBaz,Quuz {publicconstFOO='bar' }` actual := o.String() if expected != actual { @@ -3957,15 +4281,22 @@ func TestPrinterPrintStmtClassConstList(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.ClassConstList{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ConstToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Modifiers: []node.Node{&node.Identifier{Value: "public"}}, Consts: []node.Node{ @@ -3980,7 +4311,49 @@ func TestPrinterPrintStmtClassConstList(t *testing.T) { }, }) - expected := `public constFOO='a',BAR='b' ;` + expected := `public constFOO='a',BAR='b' ` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrinterPrintStmtConstList(t *testing.T) { + o := bytes.NewBufferString("") + + p := printer.NewPrinter(o) + p.Print(&stmt.ConstList{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, + Value: " ", + TokenName: meta.ConstToken, + }, + &meta.Data{ + Type: meta.WhiteSpaceType, + Value: " ", + TokenName: meta.SemiColonToken, + }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, + }, + Consts: []node.Node{ + &stmt.Constant{ + ConstantName: &node.Identifier{Value: "FOO"}, + Expr: &scalar.String{Value: "'a'"}, + }, + &stmt.Constant{ + ConstantName: &node.Identifier{Value: "BAR"}, + Expr: &scalar.String{Value: "'b'"}, + }, + }, + }) + + expected := ` constFOO='a',BAR='b' ` actual := o.String() if expected != actual { @@ -3993,8 +4366,9 @@ func TestPrinterPrintStmtConstant(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Constant{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.EqualToken, }, @@ -4016,32 +4390,36 @@ func TestPrinterPrintStmtContinue(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Continue{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ContinueToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Expr: &scalar.Lnumber{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", - TokenName: meta.OpenParenthesisToken, - }, - &meta.WhiteSpace{ - Value: " ", - TokenName: meta.CloseParenthesisToken, + TokenName: meta.NodeStart, }, }, Value: "1", }, }) - expected := ` continue (1 ) ;` + expected := ` continue 1 ` actual := o.String() if expected != actual { @@ -4054,16 +4432,19 @@ func TestPrinterPrintStmtDeclareStmts(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Declare{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.DeclareToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -4081,7 +4462,7 @@ func TestPrinterPrintStmtDeclareStmts(t *testing.T) { }, }) - expected := ` declare (FOO='bar' ){;}` + expected := ` declare (FOO='bar' ){}` actual := o.String() if expected != actual { @@ -4094,16 +4475,19 @@ func TestPrinterPrintStmtDeclareExpr(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Declare{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.DeclareToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -4117,7 +4501,7 @@ func TestPrinterPrintStmtDeclareExpr(t *testing.T) { Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, }) - expected := ` declare (FOO='bar' )'bar';` + expected := ` declare (FOO='bar' )'bar'` actual := o.String() if expected != actual { @@ -4139,7 +4523,7 @@ func TestPrinterPrintStmtDeclareNop(t *testing.T) { Stmt: &stmt.Nop{}, }) - expected := `declare(FOO='bar');` + expected := `declare(FOO='bar')` actual := o.String() if expected != actual { @@ -4152,22 +4536,19 @@ func TestPrinterPrintStmtDefalut(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Default{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.DefaultToken, }, - &meta.WhiteSpace{ - Value: " ", - TokenName: meta.CaseSeparatorToken, - }, }, Stmts: []node.Node{ &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, }, }) - expected := ` default :$a;` + expected := ` default:$a` actual := o.String() if expected != actual { @@ -4180,20 +4561,17 @@ func TestPrinterPrintStmtDefalutEmpty(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Default{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.DefaultToken, }, - &meta.WhiteSpace{ - Value: " ", - TokenName: meta.CaseSeparatorToken, - }, }, Stmts: []node.Node{}, }) - expected := ` default :` + expected := ` default:` actual := o.String() if expected != actual { @@ -4206,27 +4584,37 @@ func TestPrinterPrintStmtDo_Expression(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Do{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.DoToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.WhileToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Cond: &scalar.Lnumber{Value: "1"}, Stmt: &stmt.Expression{ @@ -4234,7 +4622,7 @@ func TestPrinterPrintStmtDo_Expression(t *testing.T) { }, }) - expected := ` do$a; while (1 ) ;` + expected := ` do$a while (1 ) ` actual := o.String() if expected != actual { @@ -4247,27 +4635,37 @@ func TestPrinterPrintStmtDo_StmtList(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Do{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.DoToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.WhileToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Cond: &scalar.Lnumber{Value: "1"}, Stmt: &stmt.StmtList{ @@ -4277,7 +4675,7 @@ func TestPrinterPrintStmtDo_StmtList(t *testing.T) { }, }) - expected := ` do{$a;} while (1 ) ;` + expected := ` do{$a} while (1 ) ` actual := o.String() if expected != actual { @@ -4290,15 +4688,27 @@ func TestPrinterPrintStmtEcho(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Echo{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.TokenType, + Value: "echo", + TokenName: meta.EchoToken, + }, + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.EchoToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Exprs: []node.Node{ &expr.Variable{VarName: &node.Identifier{Value: "a"}}, @@ -4306,7 +4716,7 @@ func TestPrinterPrintStmtEcho(t *testing.T) { }, }) - expected := ` echo$a,$b ;` + expected := `echo $a,$b ` actual := o.String() if expected != actual { @@ -4319,16 +4729,19 @@ func TestPrinterPrintStmtElseIfStmts(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.ElseIf{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ElseifToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -4341,7 +4754,7 @@ func TestPrinterPrintStmtElseIfStmts(t *testing.T) { }, }) - expected := ` elseif ($a ){;}` + expected := ` elseif ($a ){}` actual := o.String() if expected != actual { @@ -4354,16 +4767,19 @@ func TestPrinterPrintStmtElseIfExpr(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.ElseIf{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ElseifToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -4372,7 +4788,7 @@ func TestPrinterPrintStmtElseIfExpr(t *testing.T) { Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, }) - expected := ` elseif ($a )'bar';` + expected := ` elseif ($a )'bar'` actual := o.String() if expected != actual { @@ -4389,7 +4805,7 @@ func TestPrinterPrintStmtElseIfNop(t *testing.T) { Stmt: &stmt.Nop{}, }) - expected := `elseif($a);` + expected := `elseif($a)` actual := o.String() if expected != actual { @@ -4402,8 +4818,9 @@ func TestPrinterPrintStmtElseStmts(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Else{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ElseToken, }, @@ -4415,7 +4832,7 @@ func TestPrinterPrintStmtElseStmts(t *testing.T) { }, }) - expected := ` else{;}` + expected := ` else{}` actual := o.String() if expected != actual { @@ -4428,8 +4845,9 @@ func TestPrinterPrintStmtElseExpr(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Else{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ElseToken, }, @@ -4437,7 +4855,7 @@ func TestPrinterPrintStmtElseExpr(t *testing.T) { Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, }) - expected := ` else'bar';` + expected := ` else'bar'` actual := o.String() if expected != actual { @@ -4453,7 +4871,7 @@ func TestPrinterPrintStmtElseNop(t *testing.T) { Stmt: &stmt.Nop{}, }) - expected := `else;` + expected := `else` actual := o.String() if expected != actual { @@ -4466,16 +4884,22 @@ func TestPrinterPrintExpression(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Expression{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, }) - expected := `$a ;` + expected := `$a ` actual := o.String() if expected != actual { @@ -4488,16 +4912,19 @@ func TestPrinterPrintStmtFinally(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Finally{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.FinallyToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenCurlyBracesToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseCurlyBracesToken, }, @@ -4507,7 +4934,7 @@ func TestPrinterPrintStmtFinally(t *testing.T) { }, }) - expected := ` finally {; }` + expected := ` finally { }` actual := o.String() if expected != actual { @@ -4520,24 +4947,29 @@ func TestPrinterPrintStmtFor(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.For{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ForToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ForInitSemicolonToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ForCondSemicolonToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -4561,7 +4993,7 @@ func TestPrinterPrintStmtFor(t *testing.T) { }, }) - expected := ` for ($a,$b ;$c,$d ;$e,$f ){;}` + expected := ` for ($a,$b ;$c,$d ;$e,$f ){}` actual := o.String() if expected != actual { @@ -4574,24 +5006,29 @@ func TestPrinterPrintStmtForeach(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Foreach{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ForeachToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.AsToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.DoubleArrowToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -4606,7 +5043,7 @@ func TestPrinterPrintStmtForeach(t *testing.T) { }, }) - expected := ` foreach ($a as$k =>$v ){;}` + expected := ` foreach ($a as$k =>$v ){}` actual := o.String() if expected != actual { @@ -4619,28 +5056,34 @@ func TestPrinterPrintStmtFunction(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Function{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.FunctionToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.AmpersandToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenCurlyBracesToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseCurlyBracesToken, }, @@ -4655,8 +5098,9 @@ func TestPrinterPrintStmtFunction(t *testing.T) { }, }, ReturnType: &name.FullyQualified{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.ColonToken, }, @@ -4668,7 +5112,7 @@ func TestPrinterPrintStmtFunction(t *testing.T) { }, }) - expected := ` function &foo (&$var ) :\Foo {; }` + expected := ` function &foo (&$var ) :\Foo { }` actual := o.String() if expected != actual { @@ -4681,15 +5125,22 @@ func TestPrinterPrintStmtGlobal(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Global{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.GlobalToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Vars: []node.Node{ &expr.Variable{VarName: &node.Identifier{Value: "a"}}, @@ -4697,7 +5148,7 @@ func TestPrinterPrintStmtGlobal(t *testing.T) { }, }) - expected := ` global$a,$b ;` + expected := ` global$a,$b ` actual := o.String() if expected != actual { @@ -4710,20 +5161,27 @@ func TestPrinterPrintStmtGoto(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.Goto{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.GotoToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, Label: &node.Identifier{Value: "FOO"}, }) - expected := ` gotoFOO ;` + expected := ` gotoFOO ` actual := o.String() if expected != actual { @@ -4736,27 +5194,37 @@ func TestPrinterPrintStmtGroupUse(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.GroupUse{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.UseToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.NsSeparatorToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenCurlyBracesToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseCurlyBracesToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, UseType: &node.Identifier{Value: "function"}, Prefix: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, @@ -4771,7 +5239,7 @@ func TestPrinterPrintStmtGroupUse(t *testing.T) { }, }) - expected := ` usefunctionFoo \ {BarasBaz,Quuz } ;` + expected := ` usefunctionFoo \ {BarasBaz,Quuz } ` actual := o.String() if expected != actual { @@ -4784,27 +5252,36 @@ func TestPrinterPrintHaltCompiler(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.HaltCompiler{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.HaltCompilerToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.SemiColonToken, }, + &meta.Data{ + Type: meta.TokenType, + Value: "", + TokenName: meta.SemiColonToken, + }, }, }) - expected := ` __halt_compiler ( ) ;` + expected := ` __halt_compiler ( ) ` actual := o.String() if expected != actual { @@ -4817,16 +5294,19 @@ func TestPrinterPrintIfExpression(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.If{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.IfToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -4858,7 +5338,7 @@ func TestPrinterPrintIfExpression(t *testing.T) { }, }) - expected := ` if ($a )$b;elseif($c){$d;}elseif($e);else$f;` + expected := ` if ($a )$belseif($c){$d}elseif($e)else$f` actual := o.String() if expected != actual { @@ -4871,16 +5351,19 @@ func TestPrinterPrintIfStmtList(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.If{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.IfToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.OpenParenthesisToken, }, - &meta.WhiteSpace{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.CloseParenthesisToken, }, @@ -4895,7 +5378,7 @@ func TestPrinterPrintIfStmtList(t *testing.T) { }, }) - expected := ` if ($a ){$b;}` + expected := ` if ($a ){$b}` actual := o.String() if expected != actual { @@ -4912,7 +5395,7 @@ func TestPrinterPrintIfNop(t *testing.T) { Stmt: &stmt.Nop{}, }) - expected := `if($a);` + expected := `if($a)` actual := o.String() if expected != actual { @@ -4925,8 +5408,9 @@ func TestPrinterPrintInlineHtml(t *testing.T) { p := printer.NewPrinter(o) p.Print(&stmt.InlineHtml{ - Meta: []meta.Meta{ - &meta.WhiteSpace{ + Meta: meta.Collection{ + &meta.Data{ + Type: meta.WhiteSpaceType, Value: " ", TokenName: meta.InlineHTMLToken, }, @@ -4934,7 +5418,7 @@ func TestPrinterPrintInlineHtml(t *testing.T) { Value: "test", }) - expected := ` ?>test{NEW_LINE}? @@ -8397,13 +8402,13 @@ yyrule126: // (#|[/][/]) } break } - l.addComments(tb) + l.addMeta(meta.CommentType, tb) goto yystate0 } yyrule127: // [/][*][*][/] { - l.addComments(l.Token()) + l.addMeta(meta.CommentType, l.Token()) goto yystate0 } yyrule128: // ([/][*])|([/][*][*]) @@ -8428,9 +8433,9 @@ yyrule128: // ([/][*])|([/][*][*]) } if is_doc_comment { l.PhpDocComment = string(l.TokenBytes(nil)) - l.addComments(l.Token()) + l.addMeta(meta.CommentType, l.Token()) } else { - l.addComments(l.Token()) + l.addMeta(meta.CommentType, l.Token()) } goto yystate0 } @@ -8476,7 +8481,7 @@ yyrule134: // -> } yyrule135: // [ \t\n\r]+ { - l.addWhiteSpace(l.Token()) + l.addMeta(meta.WhiteSpaceType, l.Token()) goto yystate0 } yyrule136: // -> diff --git a/scanner/scanner.l b/scanner/scanner.l index dd7d756..4fbaae3 100644 --- a/scanner/scanner.l +++ b/scanner/scanner.l @@ -9,6 +9,7 @@ package scanner import ( "fmt" + "github.com/z7zmey/php-parser/meta" "github.com/cznic/golex/lex" ) @@ -58,7 +59,7 @@ NEW_LINE (\r|\n|\r\n) %% c = l.Rule0() -[ \t\n\r]+ +[ \t\n\r]+ l.addMeta(meta.WhiteSpaceType, l.Token()) . tb := []lex.Char{} @@ -85,11 +86,12 @@ NEW_LINE (\r|\n|\r\n) lval.Token(l.createToken(tb)) return int(T_INLINE_HTML) -\<\?php([ \t]|{NEW_LINE}) l.Begin(PHP);l.ungetChars(len(l.Token())-5) -\<\? l.Begin(PHP); +\<\?php([ \t]|{NEW_LINE}) l.addMeta(meta.TokenType, l.Token()[:5]);l.Begin(PHP);l.ungetChars(len(l.Token())-5) +\<\? l.addMeta(meta.TokenType, l.Token());l.Begin(PHP); \<\?= l.Begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_ECHO); -[ \t\n\r]+ l.addWhiteSpace(l.Token()) + +[ \t\n\r]+ l.addMeta(meta.WhiteSpaceType, l.Token()) [;][ \t\n\r]*\?\>{NEW_LINE}? l.Begin(INITIAL);lval.Token(l.createToken(l.Token())); return Rune2Class(';'); \?\>{NEW_LINE}? l.Begin(INITIAL);lval.Token(l.createToken(l.Token())); return Rune2Class(';'); @@ -286,10 +288,10 @@ NEW_LINE (\r|\n|\r\n) break; } - l.addComments(tb) + l.addMeta(meta.CommentType, tb) [/][*][*][/] - l.addComments(l.Token()) + l.addMeta(meta.CommentType, l.Token()) ([/][*])|([/][*][*]) tb := l.Token() is_doc_comment := false @@ -314,9 +316,9 @@ NEW_LINE (\r|\n|\r\n) if is_doc_comment { l.PhpDocComment = string(l.TokenBytes(nil)) - l.addComments(l.Token()) + l.addMeta(meta.CommentType, l.Token()) } else { - l.addComments(l.Token()) + l.addMeta(meta.CommentType, l.Token()) } {OPERATORS} lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) @@ -327,7 +329,7 @@ NEW_LINE (\r|\n|\r\n) {VAR_NAME} lval.Token(l.createToken(l.Token())); return int(T_STRING) -> l.Begin(PROPERTY);lval.Token(l.createToken(l.Token())); return int(T_OBJECT_OPERATOR); -[ \t\n\r]+ l.addWhiteSpace(l.Token()) +[ \t\n\r]+ l.addMeta(meta.WhiteSpaceType, l.Token()) -> lval.Token(l.createToken(l.Token())); return int(T_OBJECT_OPERATOR); {VAR_NAME} l.Begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_STRING); . l.ungetChars(1);l.Begin(PHP) diff --git a/scanner/scanner_test.go b/scanner/scanner_test.go index 0cc599c..8988b55 100644 --- a/scanner/scanner_test.go +++ b/scanner/scanner_test.go @@ -967,9 +967,22 @@ func TestSlashAfterVariable(t *testing.T) { func TestCommentEnd(t *testing.T) { src := ` test` - expected := []meta.Meta{ - meta.NewWhiteSpace("\n\t", position.NewPosition(1, 2, 6, 7)), - meta.NewComment("//test", position.NewPosition(2, 2, 8, 13)), + expected := meta.Collection{ + &meta.Data{ + Value: " 0 { + if mm := n.GetMeta(); len(*mm) > 0 { fmt.Fprintf(d.Writer, "%v\"Meta\":\n", d.Indent+" ") - for _, m := range mm { - fmt.Fprintf(d.Writer, "%v%q before %q\n", d.Indent+" ", m, m.GetTokenName().String()) + for _, m := range *mm { + fmt.Fprintf(d.Writer, "%v%q before %q\n", d.Indent+" ", m, m.TokenName.String()) } } diff --git a/visitor/dumper_test.go b/visitor/dumper_test.go index 73ac034..8866ac4 100644 --- a/visitor/dumper_test.go +++ b/visitor/dumper_test.go @@ -43,6 +43,7 @@ func ExampleDumper() { // | [*stmt.Namespace] // | "Position": Pos{Line: 3-11 Pos: 10-143} // | "Meta": + // | " 0 { + if mm := n.GetMeta(); len(*mm) > 0 { printIndent(d.Writer, d.depth) fmt.Fprint(d.Writer, "Meta: []meta.Meta{\n") d.depth++ - for _, m := range mm { + for _, m := range *mm { printIndent(d.Writer, d.depth) - switch m.(type) { - case *meta.Comment: - fmt.Fprint(d.Writer, "&meta.Comment{\n") - case *meta.WhiteSpace: - fmt.Fprint(d.Writer, "&meta.WhiteSpace{\n") + 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") } d.depth++ @@ -79,13 +81,13 @@ func (d *GoDumper) EnterNode(w walker.Walkable) bool { fmt.Fprint(d.Writer, "Position: &position.Position{\n") d.depth++ printIndent(d.Writer, d.depth) - fmt.Fprintf(d.Writer, "StartLine: %d,\n", m.GetPosition().StartLine) + fmt.Fprintf(d.Writer, "StartLine: %d,\n", m.Position.StartLine) printIndent(d.Writer, d.depth) - fmt.Fprintf(d.Writer, "EndLine: %d,\n", m.GetPosition().EndLine) + fmt.Fprintf(d.Writer, "EndLine: %d,\n", m.Position.EndLine) printIndent(d.Writer, d.depth) - fmt.Fprintf(d.Writer, "StartPos: %d,\n", m.GetPosition().StartPos) + fmt.Fprintf(d.Writer, "StartPos: %d,\n", m.Position.StartPos) printIndent(d.Writer, d.depth) - fmt.Fprintf(d.Writer, "EndPos: %d,\n", m.GetPosition().EndPos) + fmt.Fprintf(d.Writer, "EndPos: %d,\n", m.Position.EndPos) d.depth-- printIndent(d.Writer, d.depth) fmt.Fprint(d.Writer, "},\n") @@ -93,7 +95,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.GetTokenName()) + fmt.Fprintf(d.Writer, "TokenName: %d,\n", m.TokenName) d.depth-- printIndent(d.Writer, d.depth) diff --git a/visitor/go_dumper_test.go b/visitor/go_dumper_test.go index c2c012d..33e9805 100644 --- a/visitor/go_dumper_test.go +++ b/visitor/go_dumper_test.go @@ -15,7 +15,7 @@ func ExampleGoDumper() { class Bar { public function FunctionName(Type $var = null) { - //some comment + // some comment $var; } } @@ -40,7 +40,7 @@ func ExampleGoDumper() { // StartLine: 3, // EndLine: 11, // StartPos: 10, - // EndPos: 142, + // EndPos: 143, // }, // Stmts: []node.Node{ // &stmt.Namespace{ @@ -48,10 +48,20 @@ func ExampleGoDumper() { // StartLine: 3, // EndLine: 11, // StartPos: 10, - // EndPos: 142, + // EndPos: 143, // }, // Meta: []meta.Meta{ - // &meta.WhiteSpace{ + // &meta.TokenType{ + // Position: &position.Position{ + // StartLine: 1, + // EndLine: 1, + // StartPos: 1, + // EndPos: 5, + // }, + // Value: " 0 { + if mm := n.GetMeta(); len(*mm) > 0 { fmt.Fprintf(d.Writer, ",%q:[", "meta") - for k, m := range mm { + for k, m := range *mm { if k != 0 { fmt.Fprint(d.Writer, ",") } - switch m.(type) { - case *meta.Comment: - fmt.Fprintf(d.Writer, "{%q:%q,%q:%q,%q:%q}", "type", "*meta.Comment", "value", m.String(), "tokenName", m.GetTokenName().String()) - case *meta.WhiteSpace: - fmt.Fprintf(d.Writer, "{%q:%q,%q:%q,%q:%q}", "type", "*meta.WhiteSpace", "value", m.String(), "tokenName", m.GetTokenName().String()) + switch m.Type { + case meta.CommentType: + fmt.Fprintf(d.Writer, "{%q:%q,%q:%q,%q:%q}", "type", "*meta.CommentType", "value", m.String(), "tokenName", m.TokenName.String()) + case meta.WhiteSpaceType: + fmt.Fprintf(d.Writer, "{%q:%q,%q:%q,%q:%q}", "type", "*meta.WhiteSpaceType", "value", m.String(), "tokenName", m.TokenName.String()) + case meta.TokenType: + fmt.Fprintf(d.Writer, "{%q:%q,%q:%q,%q:%q}", "type", "*meta.TokenType", "value", m.String(), "tokenName", m.TokenName.String()) } } diff --git a/visitor/json_dumper_test.go b/visitor/json_dumper_test.go index b3baebc..51f8219 100644 --- a/visitor/json_dumper_test.go +++ b/visitor/json_dumper_test.go @@ -37,5 +37,5 @@ func ExampleJsonDumper() { nodes.Walk(dumper) // Output: - // {"type":"*node.Root","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"Stmts":[{"type":"*stmt.Namespace","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"meta":[{"type":"*meta.WhiteSpace","value":"\n\n\t\t","tokenName":"NamespaceToken"},{"type":"*meta.WhiteSpace","value":" ","tokenName":"OpenCurlyBracesToken"},{"type":"*meta.WhiteSpace","value":"\n\t\t","tokenName":"CloseCurlyBracesToken"}],"NamespaceName":{"type":"*name.Name","position":{"startPos":20,"endPos":22,"startLine":3,"endLine":3},"Parts":[{"type":"*name.NamePart","position":{"startPos":20,"endPos":22,"startLine":3,"endLine":3},"meta":[{"type":"*meta.WhiteSpace","value":" ","tokenName":"StringToken"}],"Value":"Foo"}]},"Stmts":[{"type":"*stmt.Class","position":{"startPos":29,"endPos":162,"startLine":4,"endLine":11},"namespacedName":"Foo\\Bar","meta":[{"type":"*meta.WhiteSpace","value":"\n\t\t\t","tokenName":"ClassToken"},{"type":"*meta.WhiteSpace","value":" ","tokenName":"OpenCurlyBracesToken"},{"type":"*meta.WhiteSpace","value":"\n\t\t\t","tokenName":"CloseCurlyBracesToken"}],"PhpDocComment":"","ClassName":{"type":"*node.Identifier","position":{"startPos":35,"endPos":37,"startLine":4,"endLine":4},"meta":[{"type":"*meta.WhiteSpace","value":" ","tokenName":"IdentifierToken"}],"Value":"Bar"},"Stmts":[{"type":"*stmt.ClassMethod","position":{"startPos":45,"endPos":157,"startLine":5,"endLine":10},"meta":[{"type":"*meta.WhiteSpace","value":" ","tokenName":"FunctionToken"}],"PhpDocComment":"","ReturnsRef":false,"MethodName":{"type":"*node.Identifier","position":{"startPos":61,"endPos":72,"startLine":5,"endLine":5},"meta":[{"type":"*meta.WhiteSpace","value":" ","tokenName":"IdentifierToken"}],"Value":"FunctionName"},"Modifiers":[{"type":"*node.Identifier","position":{"startPos":45,"endPos":50,"startLine":5,"endLine":5},"meta":[{"type":"*meta.WhiteSpace","value":"\n\t\t\t\t","tokenName":"IdentifierToken"}],"Value":"public"}],"Params":[{"type":"*node.Parameter","position":{"startPos":74,"endPos":89,"startLine":5,"endLine":5},"meta":[{"type":"*meta.WhiteSpace","value":" ","tokenName":"EqualToken"}],"ByRef":false,"Variadic":false,"VariableType":{"type":"*name.Name","position":{"startPos":74,"endPos":77,"startLine":5,"endLine":5},"namespacedName":"Foo\\Type","Parts":[{"type":"*name.NamePart","position":{"startPos":74,"endPos":77,"startLine":5,"endLine":5},"Value":"Type"}]},"Variable":{"type":"*expr.Variable","position":{"startPos":79,"endPos":82,"startLine":5,"endLine":5},"meta":[{"type":"*meta.WhiteSpace","value":" ","tokenName":"VariableToken"}],"VarName":{"type":"*node.Identifier","position":{"startPos":79,"endPos":82,"startLine":5,"endLine":5},"Value":"var"}},"DefaultValue":{"type":"*expr.ConstFetch","position":{"startPos":86,"endPos":89,"startLine":5,"endLine":5},"Constant":{"type":"*name.Name","position":{"startPos":86,"endPos":89,"startLine":5,"endLine":5},"namespacedName":"null","Parts":[{"type":"*name.NamePart","position":{"startPos":86,"endPos":89,"startLine":5,"endLine":5},"meta":[{"type":"*meta.WhiteSpace","value":" ","tokenName":"StringToken"}],"Value":"null"}]}}}],"Stmt":{"type":"*stmt.StmtList","position":{"startPos":96,"endPos":157,"startLine":6,"endLine":10},"meta":[{"type":"*meta.WhiteSpace","value":"\n\t\t\t\t","tokenName":"OpenCurlyBracesToken"},{"type":"*meta.WhiteSpace","value":"\n\t\t\t\t","tokenName":"CloseCurlyBracesToken"}],"Stmts":[{"type":"*stmt.Expression","position":{"startPos":147,"endPos":151,"startLine":9,"endLine":9},"Expr":{"type":"*expr.Variable","position":{"startPos":147,"endPos":150,"startLine":9,"endLine":9},"meta":[{"type":"*meta.WhiteSpace","value":"\n\t\t\t\t\t","tokenName":"VariableToken"},{"type":"*meta.Comment","value":"// some comment\n","tokenName":"VariableToken"},{"type":"*meta.WhiteSpace","value":"\t\t\t\t\t","tokenName":"VariableToken"},{"type":"*meta.Comment","value":"// second comment\n","tokenName":"VariableToken"},{"type":"*meta.WhiteSpace","value":"\t\t\t\t\t","tokenName":"VariableToken"}],"VarName":{"type":"*node.Identifier","position":{"startPos":147,"endPos":150,"startLine":9,"endLine":9},"Value":"var"}}}]}}]}]}]} + // {"type":"*node.Root","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"Stmts":[{"type":"*stmt.Namespace","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"meta":[{"type":"*meta.TokenType","value":" 0 { + if mm := n.GetMeta(); len(*mm) > 0 { fmt.Fprint(d.Writer, ",\n") d.printIndent(d.Writer) fmt.Fprint(d.Writer, "\"meta\": [\n") d.depth++ - for k, m := range mm { + for k, m := range *mm { if k != 0 { fmt.Fprint(d.Writer, ",\n") } @@ -96,16 +96,18 @@ func (d *PrettyJsonDumper) EnterNode(w walker.Walkable) bool { fmt.Fprint(d.Writer, "{\n") d.depth++ d.printIndent(d.Writer) - switch m.(type) { - case *meta.Comment: - fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "*meta.Comment") - case *meta.WhiteSpace: - fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "*meta.WhiteSpace") + switch m.Type { + case meta.CommentType: + fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "*meta.CommentType") + case meta.WhiteSpaceType: + fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "*meta.WhiteSpaceType") + case meta.TokenType: + fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "*meta.TokenType") } d.printIndent(d.Writer) fmt.Fprintf(d.Writer, "%q: %q,\n", "value", m.String()) d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %q\n", "tokenName", m.GetTokenName().String()) + fmt.Fprintf(d.Writer, "%q: %q\n", "tokenName", m.TokenName.String()) d.depth-- d.printIndent(d.Writer) fmt.Fprint(d.Writer, "}") diff --git a/visitor/pretty_json_dumper_test.go b/visitor/pretty_json_dumper_test.go index 16a1e22..3992a4a 100644 --- a/visitor/pretty_json_dumper_test.go +++ b/visitor/pretty_json_dumper_test.go @@ -21,7 +21,9 @@ func ExamplePrettyJsonDumper() { } } - function foo() {} + function foo() { + ; + } } ` @@ -41,13 +43,13 @@ func ExamplePrettyJsonDumper() { // "type": "*node.Root", // "position": { // "startPos": 10, - // "endPos": 188, + // "endPos": 198, // "startLine": 3, - // "endLine": 14 + // "endLine": 16 // }, // "meta": [ // { - // "type": "*meta.WhiteSpace", + // "type": "*meta.WhiteSpaceType", // "value": "\n\t\t", // "tokenName": "NodeEnd" // } @@ -57,23 +59,28 @@ func ExamplePrettyJsonDumper() { // "type": "*stmt.Namespace", // "position": { // "startPos": 10, - // "endPos": 188, + // "endPos": 198, // "startLine": 3, - // "endLine": 14 + // "endLine": 16 // }, // "meta": [ // { - // "type": "*meta.WhiteSpace", + // "type": "*meta.TokenType", + // "value": "