From b383fe98fe608200eaaa911ec14715142a325a1a Mon Sep 17 00:00:00 2001 From: z7zmey Date: Sun, 27 May 2018 22:15:27 +0300 Subject: [PATCH] create token name constants in `comment` package --- comment/comment.go | 16 +- comment/tokenNames.go | 176 ++++ parser/comments.go | 16 + php5/php5.go | 1032 ++++++++++----------- php5/php5.y | 1 + php7/parser.go | 1 - php7/php7.go | 2004 +++++++++++++++++++++-------------------- php7/php7.y | 971 ++++++++++---------- 8 files changed, 2217 insertions(+), 2000 deletions(-) create mode 100644 comment/tokenNames.go diff --git a/comment/comment.go b/comment/comment.go index 3aa4958..943bd60 100644 --- a/comment/comment.go +++ b/comment/comment.go @@ -6,8 +6,9 @@ import ( // Comment aggrigates information about comment /** type Comment struct { - value string - position *position.Position + value string + position *position.Position + tokenName TokenName } // NewComment - Comment constructor @@ -15,9 +16,20 @@ func NewComment(value string, pos *position.Position) *Comment { return &Comment{ value, pos, + UnknownToken, } } +// SetTokenName sets token name +func (c *Comment) SetTokenName(tokenName TokenName) { + c.tokenName = tokenName +} + +// TokenName returns token name +func (c *Comment) TokenName() TokenName { + return c.tokenName +} + func (c *Comment) String() string { return c.value } diff --git a/comment/tokenNames.go b/comment/tokenNames.go new file mode 100644 index 0000000..75add38 --- /dev/null +++ b/comment/tokenNames.go @@ -0,0 +1,176 @@ +package comment + +// TokenName is used to specify a comment position +type TokenName int + +const ( + UnknownToken TokenName = iota + IncludeToken + IncludeOnceToken + ExitToken + IfToken + LnumberToken + DnumberToken + StringToken + StringVarnameToken + VariableToken + NumStringToken + InlineHTMLToken + CharacterToken + BadCharacterToken + EncapsedAndWhitespaceToken + ConstantEncapsedStringToken + EchoToken + DoToken + WhileToken + EndwhileToken + ForToken + EndforToken + ForeachToken + EndforeachToken + DeclareToken + EnddeclareToken + AsToken + SwitchToken + EndswitchToken + CaseToken + DefaultToken + BreakToken + ContinueToken + GotoToken + FunctionToken + ConstToken + ReturnToken + TryToken + CatchToken + FinallyToken + ThrowToken + UseToken + InsteadofToken + GlobalToken + VarToken + UnsetToken + IssetToken + EmptyToken + HalcompilerToken + ClassToken + TraitToken + InterfaceToken + ExtendsToken + ImplementsToken + ObjecoperatorToken + DoubleArrowToken + ListToken + ArrayToken + CallableToken + ClassCToken + TraitCToken + MethodCToken + FuncCToken + LineToken + FileToken + CommentToken + DocCommentToken + OpenTagToken + OpenTagWithEchoToken + CloseTagToken + WhitespaceToken + StartHeredocToken + EndHeredocToken + DollarOpenCurlyBracesToken + CurlyOpenToken + PaamayimNekudotayimToken + NamespaceToken + NsCToken + DirToken + NsSeparatorToken + EllipsisToken + EvalToken + RequireToken + RequireOnceToken + LogicalOrToken + LogicalXorToken + LogicalAndToken + InstanceofToken + NewToken + CloneToken + ElseifToken + ElseToken + EndifToken + PrintToken + YieldToken + StaticToken + AbstractToken + FinalToken + PrivateToken + ProtectedToken + PublicToken + IncToken + DecToken + YieldFromToken + ObjectOperatorToken + IntCastToken + DoubleCastToken + StringCastToken + ArrayCastToken + ObjectCastToken + BoolCastToken + UnsetCastToken + CoalesceToken + SpaceshipToken + NoelseToken + PlusEqualToken + MinusEqualToken + MulEqualToken + PowEqualToken + DivEqualToken + ConcatEqualToken + ModEqualToken + AndEqualToken + OrEqualToken + XorEqualToken + SlEqualToken + SrEqualToken + BooleanOrToken + BooleanAndToken + PowToken + SlToken + SrToken + IsIdenticalToken + IsNotIdenticalToken + IsEqualToken + IsNotEqualToken + IsSmallerOrEqualToken + IsGreaterOrEqualToken + HaltCompilerToken + IdentifierToken + CaseSeparatorToken // ';' or ':' + DoubleQuoteToken // '"' + BackquoteToken // '`' + OpenCurlyBracesToken // '{' + CloseCurlyBracesToken // '}' + SemiColonToken // ';' + ColonToken // ':' + OpenParenthesisToken // '(' + CloseParenthesisToken // ')' + OpenSquareBracket // '[' + CloseSquareBracket // ']' + QuestionMarkToken // '?' + AmpersandToken // '&' + MinusToken // '-' + PlusToken // '+' + ExclamationMarkToken // '!' + TildeToken // '~' + AtToken // '@' + DollarToken // '$' + CommaToken // ',' + VerticalBarToken // '|' + EqualToken // '=' + CaretToken // '^' + AsteriskToken // '*' + SlashToken // '/' + PercentToken // '%' + LessToken // '<' + GreaterToken // '>' + DotToken // '.' +) diff --git a/parser/comments.go b/parser/comments.go index c5aac8b..070d04a 100644 --- a/parser/comments.go +++ b/parser/comments.go @@ -3,6 +3,7 @@ package parser import ( "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/scanner" ) // Comments a collection of comment groups assigned to nodes @@ -12,3 +13,18 @@ type Comments map[node.Node][]*comment.Comment func (c Comments) AddComments(node node.Node, comments []*comment.Comment) { c[node] = append(c[node], comments...) } + +func (c Comments) AddFromToken(node node.Node, token *scanner.Token, tokenName comment.TokenName) { + comments := token.Comments() + + for _, cmt := range comments { + cmt.SetTokenName(tokenName) + } + + c.AddComments(node, comments) +} + +func (c Comments) AddFromChildNode(n node.Node, ch node.Node) { + c.AddComments(n, c[ch]) + delete(c, ch) +} diff --git a/php5/php5.go b/php5/php5.go index 07307a3..51560c5 100644 --- a/php5/php5.go +++ b/php5/php5.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php5/php5.y:3857 +//line php5/php5.y:3858 type foreachVariable struct { node node.Node @@ -2345,14 +2345,14 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:268 + //line php5/php5.y:269 { yylex.(*Parser).rootNode = stmt.NewStmtList(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(yylex.(*Parser).rootNode, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) } case 2: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:276 + //line php5/php5.y:277 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2360,13 +2360,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:281 + //line php5/php5.y:282 { yyVAL.list = []node.Node{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:286 + //line php5/php5.y:287 { namePart := name.NewNamePart(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -2375,7 +2375,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:293 + //line php5/php5.y:294 { namePart := name.NewNamePart(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -2384,32 +2384,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:303 + //line php5/php5.y:304 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:308 + //line php5/php5.y:309 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:310 + //line php5/php5.y:311 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:312 + //line php5/php5.y:313 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:314 + //line php5/php5.y:315 { yyVAL.node = stmt.NewHaltCompiler() yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -2417,7 +2417,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:320 + //line php5/php5.y:321 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2429,7 +2429,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:330 + //line php5/php5.y:331 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2441,7 +2441,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:340 + //line php5/php5.y:341 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -2449,7 +2449,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:346 + //line php5/php5.y:347 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2457,7 +2457,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:352 + //line php5/php5.y:353 { useType := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -2469,7 +2469,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:362 + //line php5/php5.y:363 { useType := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -2481,25 +2481,25 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:372 + //line php5/php5.y:373 { yyVAL.node = yyDollar[1].node } case 18: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:377 + //line php5/php5.y:378 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:379 + //line php5/php5.y:380 { yyVAL.list = []node.Node{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:384 + //line php5/php5.y:385 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2511,7 +2511,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:394 + //line php5/php5.y:395 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2526,7 +2526,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:407 + //line php5/php5.y:408 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2538,7 +2538,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:417 + //line php5/php5.y:418 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2553,19 +2553,19 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:433 + //line php5/php5.y:434 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:435 + //line php5/php5.y:436 { yyVAL.list = []node.Node{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:440 + //line php5/php5.y:441 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2577,7 +2577,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:450 + //line php5/php5.y:451 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2592,7 +2592,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:463 + //line php5/php5.y:464 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2604,7 +2604,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:473 + //line php5/php5.y:474 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2619,19 +2619,19 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:489 + //line php5/php5.y:490 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:491 + //line php5/php5.y:492 { yyVAL.list = []node.Node{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:496 + //line php5/php5.y:497 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2643,7 +2643,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:506 + //line php5/php5.y:507 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -2658,7 +2658,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:519 + //line php5/php5.y:520 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2670,7 +2670,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:529 + //line php5/php5.y:530 { name := name.NewName(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) @@ -2685,7 +2685,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:545 + //line php5/php5.y:546 { name := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -2703,7 +2703,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:561 + //line php5/php5.y:562 { name := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -2721,7 +2721,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:580 + //line php5/php5.y:581 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2729,38 +2729,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:586 + //line php5/php5.y:587 { yyVAL.list = []node.Node{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:592 + //line php5/php5.y:593 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:597 + //line php5/php5.y:598 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:599 + //line php5/php5.y:600 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:601 + //line php5/php5.y:602 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:603 + //line php5/php5.y:604 { yyVAL.node = stmt.NewHaltCompiler() yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -2768,13 +2768,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:613 + //line php5/php5.y:614 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:615 + //line php5/php5.y:616 { label := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -2786,7 +2786,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:628 + //line php5/php5.y:629 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2794,7 +2794,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:634 + //line php5/php5.y:635 { yyVAL.node = stmt.NewIf(yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node) @@ -2810,7 +2810,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:648 + //line php5/php5.y:649 { stmts := stmt.NewStmtList(yyDollar[4].list) yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list)) @@ -2821,7 +2821,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:657 + //line php5/php5.y:658 { if yyDollar[3].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltWhile(yyDollar[2].node, yyDollar[3].altSyntaxNode.node) @@ -2833,7 +2833,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:667 + //line php5/php5.y:668 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) @@ -2841,7 +2841,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:673 + //line php5/php5.y:674 { if yyDollar[9].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltFor(yyDollar[3].list, yyDollar[5].list, yyDollar[7].list, yyDollar[9].altSyntaxNode.node) @@ -2853,7 +2853,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:683 + //line php5/php5.y:684 { if yyDollar[3].nodesWithEndToken.endToken.Value == ";" { yyVAL.node = stmt.NewAltSwitch(yyDollar[2].node, yyDollar[3].nodesWithEndToken.nodes) @@ -2865,7 +2865,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:693 + //line php5/php5.y:694 { yyVAL.node = stmt.NewBreak(nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) @@ -2873,7 +2873,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:699 + //line php5/php5.y:700 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2881,7 +2881,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:705 + //line php5/php5.y:706 { yyVAL.node = stmt.NewContinue(nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) @@ -2889,7 +2889,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:711 + //line php5/php5.y:712 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2897,7 +2897,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:717 + //line php5/php5.y:718 { yyVAL.node = stmt.NewReturn(nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) @@ -2905,7 +2905,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:723 + //line php5/php5.y:724 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2913,7 +2913,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:729 + //line php5/php5.y:730 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2921,7 +2921,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:735 + //line php5/php5.y:736 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) @@ -2929,7 +2929,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:741 + //line php5/php5.y:742 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2937,7 +2937,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:747 + //line php5/php5.y:748 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2945,7 +2945,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:753 + //line php5/php5.y:754 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -2953,7 +2953,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:759 + //line php5/php5.y:760 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -2961,7 +2961,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:765 + //line php5/php5.y:766 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) @@ -2969,7 +2969,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:771 + //line php5/php5.y:772 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) @@ -2977,7 +2977,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:777 + //line php5/php5.y:778 { if yyDollar[6].foreachVariable.node == nil { if yyDollar[8].altSyntaxNode.isAlt { @@ -2997,7 +2997,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:795 + //line php5/php5.y:796 { if yyDollar[6].foreachVariable.node == nil { if yyDollar[8].altSyntaxNode.isAlt { @@ -3017,7 +3017,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:813 + //line php5/php5.y:814 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) @@ -3025,7 +3025,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:819 + //line php5/php5.y:820 { yyVAL.node = stmt.NewNop() yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3033,7 +3033,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:825 + //line php5/php5.y:826 { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3047,7 +3047,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:837 + //line php5/php5.y:838 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -3055,7 +3055,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:843 + //line php5/php5.y:844 { label := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(label, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -3067,13 +3067,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:856 + //line php5/php5.y:857 { yyVAL.list = []node.Node{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:858 + //line php5/php5.y:859 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -3091,13 +3091,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:876 + //line php5/php5.y:877 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:878 + //line php5/php5.y:879 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -3105,31 +3105,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:887 + //line php5/php5.y:888 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:889 + //line php5/php5.y:890 { yyVAL.list = []node.Node{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:894 + //line php5/php5.y:895 { yyVAL.list = []node.Node{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:896 + //line php5/php5.y:897 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:901 + //line php5/php5.y:902 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -3145,61 +3145,61 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:918 + //line php5/php5.y:919 { yyVAL.list = []node.Node{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:920 + //line php5/php5.y:921 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:925 + //line php5/php5.y:926 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:930 + //line php5/php5.y:931 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:935 + //line php5/php5.y:936 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:940 + //line php5/php5.y:941 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:942 + //line php5/php5.y:943 { yyVAL.boolWithToken = boolWithToken{true, yyDollar[1].token} } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:947 + //line php5/php5.y:948 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:949 + //line php5/php5.y:950 { yyVAL.boolWithToken = boolWithToken{true, yyDollar[1].token} } case 93: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:954 + //line php5/php5.y:955 { name := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -3211,7 +3211,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - //line php5/php5.y:967 + //line php5/php5.y:968 { switch n := yyDollar[1].node.(type) { case *stmt.Class: @@ -3234,7 +3234,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:988 + //line php5/php5.y:989 { name := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -3246,7 +3246,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1002 + //line php5/php5.y:1003 { yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3254,7 +3254,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1008 + //line php5/php5.y:1009 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3266,7 +3266,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1018 + //line php5/php5.y:1019 { yyVAL.node = stmt.NewTrait(nil, nil, "") yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3274,7 +3274,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1024 + //line php5/php5.y:1025 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(classModifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3286,85 +3286,85 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1037 + //line php5/php5.y:1038 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1039 + //line php5/php5.y:1040 { yyVAL.node = yyDollar[2].node } case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1044 + //line php5/php5.y:1045 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1049 + //line php5/php5.y:1050 { yyVAL.list = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1051 + //line php5/php5.y:1052 { yyVAL.list = yyDollar[2].list } case 105: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1056 + //line php5/php5.y:1057 { yyVAL.list = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1058 + //line php5/php5.y:1059 { yyVAL.list = yyDollar[2].list } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1063 + //line php5/php5.y:1064 { yyVAL.list = []node.Node{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1065 + //line php5/php5.y:1066 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 109: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1070 + //line php5/php5.y:1071 { yyVAL.foreachVariable = foreachVariable{nil, false} } case 110: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1072 + //line php5/php5.y:1073 { yyVAL.foreachVariable = yyDollar[2].foreachVariable } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1077 + //line php5/php5.y:1078 { yyVAL.foreachVariable = foreachVariable{yyDollar[1].node, false} } case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1079 + //line php5/php5.y:1080 { yyVAL.foreachVariable = foreachVariable{yyDollar[2].node, true} } case 113: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1081 + //line php5/php5.y:1082 { list := expr.NewList(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -3373,39 +3373,39 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1091 + //line php5/php5.y:1092 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 115: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1093 + //line php5/php5.y:1094 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1102 + //line php5/php5.y:1103 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 117: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1104 + //line php5/php5.y:1105 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1113 + //line php5/php5.y:1114 { yyVAL.node = yyDollar[1].node } case 119: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1115 + //line php5/php5.y:1116 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -3413,7 +3413,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1125 + //line php5/php5.y:1126 { name := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3427,7 +3427,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1137 + //line php5/php5.y:1138 { name := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -3441,37 +3441,37 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1153 + //line php5/php5.y:1154 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1155 + //line php5/php5.y:1156 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[4].token} } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1157 + //line php5/php5.y:1158 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[4].token} } case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1159 + //line php5/php5.y:1160 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[5].token} } case 126: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1165 + //line php5/php5.y:1166 { yyVAL.list = []node.Node{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1167 + //line php5/php5.y:1168 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) @@ -3480,7 +3480,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1174 + //line php5/php5.y:1175 { _default := stmt.NewDefault(yyDollar[4].list) yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) @@ -3489,26 +3489,26 @@ yydefault: } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1191 + //line php5/php5.y:1192 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1193 + //line php5/php5.y:1194 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1203 + //line php5/php5.y:1204 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1205 + //line php5/php5.y:1206 { _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) @@ -3518,13 +3518,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1217 + //line php5/php5.y:1218 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1219 + //line php5/php5.y:1220 { stmts := stmt.NewStmtList(yyDollar[5].list) yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[5].list)) @@ -3537,13 +3537,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1234 + //line php5/php5.y:1235 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1236 + //line php5/php5.y:1237 { yyVAL.node = stmt.NewElse(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -3551,13 +3551,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1246 + //line php5/php5.y:1247 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1248 + //line php5/php5.y:1249 { stmts := stmt.NewStmtList(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(stmts, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) @@ -3568,31 +3568,31 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1261 + //line php5/php5.y:1262 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1263 + //line php5/php5.y:1264 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1268 + //line php5/php5.y:1269 { yyVAL.list = []node.Node{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1270 + //line php5/php5.y:1271 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1275 + //line php5/php5.y:1276 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -3620,7 +3620,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1301 + //line php5/php5.y:1302 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -3648,13 +3648,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1331 + //line php5/php5.y:1332 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1333 + //line php5/php5.y:1334 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3662,7 +3662,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1339 + //line php5/php5.y:1340 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3670,25 +3670,25 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1345 + //line php5/php5.y:1346 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1351 + //line php5/php5.y:1352 { yyVAL.nodesWithEndToken = &nodesWithEndToken{[]node.Node{}, yyDollar[2].token} } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1353 + //line php5/php5.y:1354 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1355 + //line php5/php5.y:1356 { arg := node.NewArgument(yyDollar[2].node, false, false) yylex.(*Parser).positions.AddPosition(arg, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) @@ -3698,19 +3698,19 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1367 + //line php5/php5.y:1368 { yyVAL.list = []node.Node{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1369 + //line php5/php5.y:1370 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1374 + //line php5/php5.y:1375 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -3718,7 +3718,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1380 + //line php5/php5.y:1381 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -3726,7 +3726,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1386 + //line php5/php5.y:1387 { yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) @@ -3734,7 +3734,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1392 + //line php5/php5.y:1393 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -3742,19 +3742,19 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1401 + //line php5/php5.y:1402 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1403 + //line php5/php5.y:1404 { yyVAL.list = []node.Node{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1409 + //line php5/php5.y:1410 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3766,7 +3766,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1419 + //line php5/php5.y:1420 { yyVAL.node = expr.NewVariable(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -3774,7 +3774,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1425 + //line php5/php5.y:1426 { yyVAL.node = expr.NewVariable(yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -3782,7 +3782,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1435 + //line php5/php5.y:1436 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -3801,7 +3801,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1452 + //line php5/php5.y:1453 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -3820,7 +3820,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1469 + //line php5/php5.y:1470 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3839,7 +3839,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1486 + //line php5/php5.y:1487 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -3858,19 +3858,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1508 + //line php5/php5.y:1509 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1510 + //line php5/php5.y:1511 { yyVAL.list = []node.Node{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1516 + //line php5/php5.y:1517 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) @@ -3878,19 +3878,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1522 + //line php5/php5.y:1523 { yyVAL.node = yyDollar[1].node } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1524 + //line php5/php5.y:1525 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1526 + //line php5/php5.y:1527 { name := node.NewIdentifier(yyDollar[4].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -3902,7 +3902,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1539 + //line php5/php5.y:1540 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].nodesWithEndToken.nodes) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) @@ -3910,67 +3910,67 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1548 + //line php5/php5.y:1549 { yyVAL.list = []node.Node{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1550 + //line php5/php5.y:1551 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1555 + //line php5/php5.y:1556 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1557 + //line php5/php5.y:1558 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1562 + //line php5/php5.y:1563 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1564 + //line php5/php5.y:1565 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1569 + //line php5/php5.y:1570 { yyVAL.list = []node.Node{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1571 + //line php5/php5.y:1572 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1576 + //line php5/php5.y:1577 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1578 + //line php5/php5.y:1579 { yyVAL.node = yyDollar[1].node } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1583 + //line php5/php5.y:1584 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) @@ -3978,19 +3978,19 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1592 + //line php5/php5.y:1593 { yyVAL.list = []node.Node{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1594 + //line php5/php5.y:1595 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1599 + //line php5/php5.y:1600 { name := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4002,13 +4002,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1609 + //line php5/php5.y:1610 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1614 + //line php5/php5.y:1615 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -4020,7 +4020,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1627 + //line php5/php5.y:1628 { alias := node.NewIdentifier(yyDollar[4].token.Value) yylex.(*Parser).positions.AddPosition(alias, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -4032,7 +4032,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1637 + //line php5/php5.y:1638 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4040,37 +4040,37 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1646 + //line php5/php5.y:1647 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1648 + //line php5/php5.y:1649 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1653 + //line php5/php5.y:1654 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1655 + //line php5/php5.y:1656 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1660 + //line php5/php5.y:1661 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1662 + //line php5/php5.y:1663 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4080,31 +4080,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1673 + //line php5/php5.y:1674 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1675 + //line php5/php5.y:1676 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1680 + //line php5/php5.y:1681 { yyVAL.list = []node.Node{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1682 + //line php5/php5.y:1683 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1687 + //line php5/php5.y:1688 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4112,7 +4112,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1693 + //line php5/php5.y:1694 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4120,7 +4120,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1699 + //line php5/php5.y:1700 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4128,7 +4128,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1705 + //line php5/php5.y:1706 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4136,7 +4136,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1711 + //line php5/php5.y:1712 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4144,7 +4144,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1717 + //line php5/php5.y:1718 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4152,7 +4152,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1726 + //line php5/php5.y:1727 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -4170,7 +4170,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1742 + //line php5/php5.y:1743 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -4188,7 +4188,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1758 + //line php5/php5.y:1759 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4206,7 +4206,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1774 + //line php5/php5.y:1775 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4224,7 +4224,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1793 + //line php5/php5.y:1794 { name := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -4241,7 +4241,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1808 + //line php5/php5.y:1809 { name := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -4257,55 +4257,55 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1825 + //line php5/php5.y:1826 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1827 + //line php5/php5.y:1828 { yyVAL.list = []node.Node{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1833 + //line php5/php5.y:1834 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1835 + //line php5/php5.y:1836 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1840 + //line php5/php5.y:1841 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1842 + //line php5/php5.y:1843 { yyVAL.list = []node.Node{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1847 + //line php5/php5.y:1848 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1849 + //line php5/php5.y:1850 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1854 + //line php5/php5.y:1855 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -4314,7 +4314,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1861 + //line php5/php5.y:1862 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) @@ -4323,37 +4323,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1871 + //line php5/php5.y:1872 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1873 + //line php5/php5.y:1874 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1875 + //line php5/php5.y:1876 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1880 + //line php5/php5.y:1881 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1882 + //line php5/php5.y:1883 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1887 + //line php5/php5.y:1888 { if yyDollar[3].nodesWithEndToken != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].nodesWithEndToken.nodes) @@ -4367,7 +4367,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1902 + //line php5/php5.y:1903 { list := expr.NewList(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -4379,7 +4379,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1912 + //line php5/php5.y:1913 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4387,7 +4387,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1918 + //line php5/php5.y:1919 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -4395,7 +4395,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1924 + //line php5/php5.y:1925 { _new := expr.NewNew(yyDollar[5].node, nil) yylex.(*Parser).positions.AddPosition(_new, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node)) @@ -4412,7 +4412,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1939 + //line php5/php5.y:1940 { yyVAL.node = expr.NewClone(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4420,7 +4420,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1945 + //line php5/php5.y:1946 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4428,7 +4428,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1951 + //line php5/php5.y:1952 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4436,7 +4436,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1957 + //line php5/php5.y:1958 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4444,7 +4444,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1963 + //line php5/php5.y:1964 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4452,7 +4452,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1969 + //line php5/php5.y:1970 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4460,7 +4460,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1975 + //line php5/php5.y:1976 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4468,7 +4468,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1981 + //line php5/php5.y:1982 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4476,7 +4476,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1987 + //line php5/php5.y:1988 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4484,7 +4484,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1993 + //line php5/php5.y:1994 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4492,7 +4492,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1999 + //line php5/php5.y:2000 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4500,7 +4500,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2005 + //line php5/php5.y:2006 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4508,7 +4508,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2011 + //line php5/php5.y:2012 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4516,7 +4516,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2017 + //line php5/php5.y:2018 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) @@ -4524,7 +4524,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2023 + //line php5/php5.y:2024 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4532,7 +4532,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2029 + //line php5/php5.y:2030 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) @@ -4540,7 +4540,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2035 + //line php5/php5.y:2036 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4548,7 +4548,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2041 + //line php5/php5.y:2042 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4556,7 +4556,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2047 + //line php5/php5.y:2048 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4564,7 +4564,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2053 + //line php5/php5.y:2054 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4572,7 +4572,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2059 + //line php5/php5.y:2060 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4580,7 +4580,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2065 + //line php5/php5.y:2066 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4588,7 +4588,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2071 + //line php5/php5.y:2072 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4596,7 +4596,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2077 + //line php5/php5.y:2078 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4604,7 +4604,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2083 + //line php5/php5.y:2084 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4612,7 +4612,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2089 + //line php5/php5.y:2090 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4620,7 +4620,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2095 + //line php5/php5.y:2096 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4628,7 +4628,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2101 + //line php5/php5.y:2102 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4636,7 +4636,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2107 + //line php5/php5.y:2108 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4644,7 +4644,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2113 + //line php5/php5.y:2114 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4652,7 +4652,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2119 + //line php5/php5.y:2120 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4660,7 +4660,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2125 + //line php5/php5.y:2126 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4668,7 +4668,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2131 + //line php5/php5.y:2132 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4676,7 +4676,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2137 + //line php5/php5.y:2138 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4684,7 +4684,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2143 + //line php5/php5.y:2144 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4692,7 +4692,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2149 + //line php5/php5.y:2150 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4700,7 +4700,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2155 + //line php5/php5.y:2156 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4708,7 +4708,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2161 + //line php5/php5.y:2162 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4716,7 +4716,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2167 + //line php5/php5.y:2168 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4724,7 +4724,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2173 + //line php5/php5.y:2174 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4732,7 +4732,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2179 + //line php5/php5.y:2180 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4740,7 +4740,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2185 + //line php5/php5.y:2186 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4748,7 +4748,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2191 + //line php5/php5.y:2192 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4756,7 +4756,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2197 + //line php5/php5.y:2198 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4764,7 +4764,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2203 + //line php5/php5.y:2204 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4772,7 +4772,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2209 + //line php5/php5.y:2210 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4780,7 +4780,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2215 + //line php5/php5.y:2216 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -4788,19 +4788,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2221 + //line php5/php5.y:2222 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2223 + //line php5/php5.y:2224 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2225 + //line php5/php5.y:2226 { yyVAL.node = yyDollar[2].node @@ -4828,7 +4828,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2251 + //line php5/php5.y:2252 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) @@ -4836,7 +4836,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2257 + //line php5/php5.y:2258 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -4844,13 +4844,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2263 + //line php5/php5.y:2264 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2265 + //line php5/php5.y:2266 { yyVAL.node = cast.NewInt(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4858,7 +4858,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2271 + //line php5/php5.y:2272 { yyVAL.node = cast.NewDouble(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4866,7 +4866,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2277 + //line php5/php5.y:2278 { yyVAL.node = cast.NewString(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4874,7 +4874,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2283 + //line php5/php5.y:2284 { yyVAL.node = cast.NewArray(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4882,7 +4882,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2289 + //line php5/php5.y:2290 { yyVAL.node = cast.NewObject(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4890,7 +4890,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2295 + //line php5/php5.y:2296 { yyVAL.node = cast.NewBool(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4898,7 +4898,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2301 + //line php5/php5.y:2302 { yyVAL.node = cast.NewUnset(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4906,7 +4906,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2307 + //line php5/php5.y:2308 { if strings.EqualFold(yyDollar[1].token.Value, "die") { yyVAL.node = expr.NewDie(yyDollar[2].node) @@ -4918,7 +4918,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2317 + //line php5/php5.y:2318 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4926,25 +4926,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2323 + //line php5/php5.y:2324 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2325 + //line php5/php5.y:2326 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2327 + //line php5/php5.y:2328 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2329 + //line php5/php5.y:2330 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -4952,7 +4952,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2335 + //line php5/php5.y:2336 { yyVAL.node = expr.NewPrint(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4960,7 +4960,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2341 + //line php5/php5.y:2342 { yyVAL.node = expr.NewYield(nil, nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -4968,7 +4968,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:2347 + //line php5/php5.y:2348 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].list, nil, yyDollar[8].list, false, yyDollar[2].boolWithToken.value, "") yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) @@ -4977,7 +4977,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:2354 + //line php5/php5.y:2355 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].list, nil, yyDollar[9].list, true, yyDollar[3].boolWithToken.value, "") yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token)) @@ -4986,7 +4986,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2364 + //line php5/php5.y:2365 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -4994,7 +4994,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2370 + //line php5/php5.y:2371 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5002,7 +5002,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2376 + //line php5/php5.y:2377 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) @@ -5010,7 +5010,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2382 + //line php5/php5.y:2383 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) @@ -5018,7 +5018,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2391 + //line php5/php5.y:2392 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -5026,7 +5026,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2397 + //line php5/php5.y:2398 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -5034,7 +5034,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2403 + //line php5/php5.y:2404 { str := scalar.NewString(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(str, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5046,7 +5046,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2413 + //line php5/php5.y:2414 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -5054,7 +5054,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2422 + //line php5/php5.y:2423 { yyVAL.node = expr.NewArray(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -5062,7 +5062,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2428 + //line php5/php5.y:2429 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -5070,25 +5070,25 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2437 + //line php5/php5.y:2438 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2442 + //line php5/php5.y:2443 { yyVAL.list = []node.Node{} } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2444 + //line php5/php5.y:2445 { yyVAL.list = yyDollar[3].list } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2449 + //line php5/php5.y:2450 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[3].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -5106,7 +5106,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2465 + //line php5/php5.y:2466 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) @@ -5124,7 +5124,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2481 + //line php5/php5.y:2482 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5142,7 +5142,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2497 + //line php5/php5.y:2498 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[2].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -5160,7 +5160,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2516 + //line php5/php5.y:2517 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -5172,7 +5172,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2526 + //line php5/php5.y:2527 { funcName := name.NewRelative(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) @@ -5184,7 +5184,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2536 + //line php5/php5.y:2537 { funcName := name.NewFullyQualified(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(funcName, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) @@ -5196,7 +5196,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2546 + //line php5/php5.y:2547 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) @@ -5204,7 +5204,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2552 + //line php5/php5.y:2553 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) @@ -5212,7 +5212,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2558 + //line php5/php5.y:2559 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) @@ -5220,7 +5220,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2564 + //line php5/php5.y:2565 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) @@ -5228,7 +5228,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2570 + //line php5/php5.y:2571 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].nodesWithEndToken.nodes) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].nodesWithEndToken.endToken)) @@ -5236,7 +5236,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2579 + //line php5/php5.y:2580 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5244,7 +5244,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2585 + //line php5/php5.y:2586 { yyVAL.node = name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -5252,7 +5252,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2591 + //line php5/php5.y:2592 { yyVAL.node = name.NewRelative(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) @@ -5260,7 +5260,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2597 + //line php5/php5.y:2598 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) @@ -5268,7 +5268,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2606 + //line php5/php5.y:2607 { yyVAL.node = name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -5276,7 +5276,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2612 + //line php5/php5.y:2613 { yyVAL.node = name.NewRelative(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) @@ -5284,7 +5284,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2618 + //line php5/php5.y:2619 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) @@ -5292,19 +5292,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2627 + //line php5/php5.y:2628 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2629 + //line php5/php5.y:2630 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2634 + //line php5/php5.y:2635 { yyVAL.node = yyDollar[1].node @@ -5342,79 +5342,79 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2670 + //line php5/php5.y:2671 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2676 + //line php5/php5.y:2677 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2678 + //line php5/php5.y:2679 { yyVAL.list = []node.Node{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2684 + //line php5/php5.y:2685 { yyVAL.list = yyDollar[2].list } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2689 + //line php5/php5.y:2690 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2691 + //line php5/php5.y:2692 { yyVAL.node = nil } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2693 + //line php5/php5.y:2694 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2698 + //line php5/php5.y:2699 { yyVAL.list = []node.Node{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2700 + //line php5/php5.y:2701 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2702 + //line php5/php5.y:2703 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2707 + //line php5/php5.y:2708 { yyVAL.nodesWithEndToken = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2709 + //line php5/php5.y:2710 { yyVAL.nodesWithEndToken = yyDollar[1].nodesWithEndToken } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2714 + //line php5/php5.y:2715 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5422,7 +5422,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2720 + //line php5/php5.y:2721 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5430,7 +5430,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2726 + //line php5/php5.y:2727 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5438,7 +5438,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2732 + //line php5/php5.y:2733 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5446,7 +5446,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2738 + //line php5/php5.y:2739 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5454,7 +5454,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2744 + //line php5/php5.y:2745 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5462,7 +5462,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2750 + //line php5/php5.y:2751 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5470,7 +5470,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2756 + //line php5/php5.y:2757 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5478,7 +5478,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2762 + //line php5/php5.y:2763 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5486,7 +5486,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2768 + //line php5/php5.y:2769 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5494,7 +5494,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2774 + //line php5/php5.y:2775 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -5506,7 +5506,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2784 + //line php5/php5.y:2785 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) @@ -5514,7 +5514,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2793 + //line php5/php5.y:2794 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -5526,25 +5526,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2806 + //line php5/php5.y:2807 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2811 + //line php5/php5.y:2812 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2813 + //line php5/php5.y:2814 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2815 + //line php5/php5.y:2816 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -5556,7 +5556,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2825 + //line php5/php5.y:2826 { name := name.NewRelative(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) @@ -5568,7 +5568,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2835 + //line php5/php5.y:2836 { name := name.NewFullyQualified(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) @@ -5580,7 +5580,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2845 + //line php5/php5.y:2846 { yyVAL.node = expr.NewArray(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -5588,7 +5588,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2851 + //line php5/php5.y:2852 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -5596,13 +5596,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2857 + //line php5/php5.y:2858 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2859 + //line php5/php5.y:2860 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5610,13 +5610,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2865 + //line php5/php5.y:2866 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2870 + //line php5/php5.y:2871 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -5624,7 +5624,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2876 + //line php5/php5.y:2877 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5632,7 +5632,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2882 + //line php5/php5.y:2883 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5640,7 +5640,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2888 + //line php5/php5.y:2889 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5648,7 +5648,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2894 + //line php5/php5.y:2895 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5656,7 +5656,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2900 + //line php5/php5.y:2901 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5664,7 +5664,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2906 + //line php5/php5.y:2907 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5672,7 +5672,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2912 + //line php5/php5.y:2913 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5680,7 +5680,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2918 + //line php5/php5.y:2919 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5688,7 +5688,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2924 + //line php5/php5.y:2925 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5696,7 +5696,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2930 + //line php5/php5.y:2931 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5704,7 +5704,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2936 + //line php5/php5.y:2937 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5712,7 +5712,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2942 + //line php5/php5.y:2943 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5720,7 +5720,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2948 + //line php5/php5.y:2949 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5728,7 +5728,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2954 + //line php5/php5.y:2955 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5736,7 +5736,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2960 + //line php5/php5.y:2961 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5744,7 +5744,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2966 + //line php5/php5.y:2967 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5752,7 +5752,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2972 + //line php5/php5.y:2973 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5760,7 +5760,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2978 + //line php5/php5.y:2979 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5768,7 +5768,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2984 + //line php5/php5.y:2985 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5776,7 +5776,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2990 + //line php5/php5.y:2991 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5784,7 +5784,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2996 + //line php5/php5.y:2997 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5792,7 +5792,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3002 + //line php5/php5.y:3003 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5800,7 +5800,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3008 + //line php5/php5.y:3009 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5808,7 +5808,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3014 + //line php5/php5.y:3015 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5816,7 +5816,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3020 + //line php5/php5.y:3021 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5824,7 +5824,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3026 + //line php5/php5.y:3027 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5832,7 +5832,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3032 + //line php5/php5.y:3033 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -5840,7 +5840,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3038 + //line php5/php5.y:3039 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -5848,7 +5848,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3044 + //line php5/php5.y:3045 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) @@ -5856,7 +5856,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3050 + //line php5/php5.y:3051 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5864,7 +5864,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3056 + //line php5/php5.y:3057 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -5872,19 +5872,19 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3062 + //line php5/php5.y:3063 { yyVAL.node = yyDollar[2].node } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3067 + //line php5/php5.y:3068 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3069 + //line php5/php5.y:3070 { name := name.NewName(yyDollar[1].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) @@ -5896,7 +5896,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3079 + //line php5/php5.y:3080 { name := name.NewRelative(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) @@ -5908,7 +5908,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3089 + //line php5/php5.y:3090 { name := name.NewFullyQualified(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) @@ -5920,7 +5920,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3102 + //line php5/php5.y:3103 { name := node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5932,25 +5932,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3112 + //line php5/php5.y:3113 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3114 + //line php5/php5.y:3115 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3116 + //line php5/php5.y:3117 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3118 + //line php5/php5.y:3119 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -5958,7 +5958,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3124 + //line php5/php5.y:3125 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -5966,7 +5966,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3130 + //line php5/php5.y:3131 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -5974,19 +5974,19 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3139 + //line php5/php5.y:3140 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3141 + //line php5/php5.y:3142 { yyVAL.list = yyDollar[1].list } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3151 + //line php5/php5.y:3152 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) @@ -5996,7 +5996,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3159 + //line php5/php5.y:3160 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6006,7 +6006,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3167 + //line php5/php5.y:3168 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -6016,7 +6016,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3175 + //line php5/php5.y:3176 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -6026,49 +6026,49 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3186 + //line php5/php5.y:3187 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3188 + //line php5/php5.y:3189 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3193 + //line php5/php5.y:3194 { yyVAL.node = yyDollar[2].node } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3195 + //line php5/php5.y:3196 { yyVAL.node = yyDollar[2].node } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3201 + //line php5/php5.y:3202 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3207 + //line php5/php5.y:3208 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3212 + //line php5/php5.y:3213 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3217 + //line php5/php5.y:3218 { yyVAL.node = yyDollar[1].node @@ -6123,25 +6123,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3270 + //line php5/php5.y:3271 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3275 + //line php5/php5.y:3276 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3277 + //line php5/php5.y:3278 { yyVAL.list = []node.Node{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3283 + //line php5/php5.y:3284 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -6152,7 +6152,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3295 + //line php5/php5.y:3296 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6161,7 +6161,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3302 + //line php5/php5.y:3303 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6170,38 +6170,38 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3312 + //line php5/php5.y:3313 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].nodesWithEndToken.nodes) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].nodesWithEndToken.nodes, yyDollar[1].nodesWithEndToken.endToken)) } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3320 + //line php5/php5.y:3321 { yyVAL.list = []node.Node{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3322 + //line php5/php5.y:3323 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3324 + //line php5/php5.y:3325 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3329 + //line php5/php5.y:3330 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3331 + //line php5/php5.y:3332 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -6213,7 +6213,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3344 + //line php5/php5.y:3345 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -6221,7 +6221,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3350 + //line php5/php5.y:3351 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -6229,13 +6229,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3360 + //line php5/php5.y:3361 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3365 + //line php5/php5.y:3366 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -6243,7 +6243,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3371 + //line php5/php5.y:3372 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -6251,31 +6251,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3379 + //line php5/php5.y:3380 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3380 + //line php5/php5.y:3381 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3381 + //line php5/php5.y:3382 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3387 + //line php5/php5.y:3388 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3389 + //line php5/php5.y:3390 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -6287,13 +6287,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3399 + //line php5/php5.y:3400 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3404 + //line php5/php5.y:3405 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -6301,7 +6301,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3410 + //line php5/php5.y:3411 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) @@ -6309,13 +6309,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3416 + //line php5/php5.y:3417 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3422 + //line php5/php5.y:3423 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6327,7 +6327,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3432 + //line php5/php5.y:3433 { yyVAL.node = expr.NewVariable(yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6335,25 +6335,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3441 + //line php5/php5.y:3442 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3443 + //line php5/php5.y:3444 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3449 + //line php5/php5.y:3450 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3451 + //line php5/php5.y:3452 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -6362,7 +6362,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3461 + //line php5/php5.y:3462 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6371,7 +6371,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3468 + //line php5/php5.y:3469 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6380,7 +6380,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3475 + //line php5/php5.y:3476 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yylex.(*Parser).positions.AddPosition(fetch, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -6389,7 +6389,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3485 + //line php5/php5.y:3486 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6397,13 +6397,13 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3491 + //line php5/php5.y:3492 { yyVAL.node = yyDollar[2].node } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3496 + //line php5/php5.y:3497 { n := expr.NewVariable(nil) yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6413,7 +6413,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3504 + //line php5/php5.y:3505 { n := expr.NewVariable(nil) yylex.(*Parser).positions.AddPosition(n, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -6427,13 +6427,13 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3519 + //line php5/php5.y:3520 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3521 + //line php5/php5.y:3522 { if yyDollar[1].node == nil { yyVAL.list = []node.Node{} @@ -6443,7 +6443,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3533 + //line php5/php5.y:3534 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -6451,7 +6451,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3539 + //line php5/php5.y:3540 { item := expr.NewList(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(item, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6463,25 +6463,25 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3549 + //line php5/php5.y:3550 { yyVAL.node = nil } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3555 + //line php5/php5.y:3556 { yyVAL.list = []node.Node{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3557 + //line php5/php5.y:3558 { yyVAL.list = yyDollar[1].list } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3562 + //line php5/php5.y:3563 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) @@ -6491,7 +6491,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3570 + //line php5/php5.y:3571 { arrayItem := expr.NewArrayItem(nil, yyDollar[3].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) @@ -6501,7 +6501,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3578 + //line php5/php5.y:3579 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -6511,7 +6511,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3586 + //line php5/php5.y:3587 { arrayItem := expr.NewArrayItem(nil, yyDollar[1].node, false) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -6521,7 +6521,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3594 + //line php5/php5.y:3595 { arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[6].node, true) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node)) @@ -6531,7 +6531,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3602 + //line php5/php5.y:3603 { arrayItem := expr.NewArrayItem(nil, yyDollar[4].node, true) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) @@ -6541,7 +6541,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3610 + //line php5/php5.y:3611 { arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[4].node, true) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -6551,7 +6551,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3618 + //line php5/php5.y:3619 { arrayItem := expr.NewArrayItem(nil, yyDollar[2].node, true) yylex.(*Parser).positions.AddPosition(arrayItem, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -6561,13 +6561,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3629 + //line php5/php5.y:3630 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3631 + //line php5/php5.y:3632 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -6576,13 +6576,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3638 + //line php5/php5.y:3639 { yyVAL.list = []node.Node{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3640 + //line php5/php5.y:3641 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6591,7 +6591,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3650 + //line php5/php5.y:3651 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(name, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6603,7 +6603,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3660 + //line php5/php5.y:3661 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6618,7 +6618,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3673 + //line php5/php5.y:3674 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6636,7 +6636,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3689 + //line php5/php5.y:3690 { yyVAL.node = yyDollar[2].node yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) @@ -6644,7 +6644,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3695 + //line php5/php5.y:3696 { identifier := node.NewIdentifier(yyDollar[2].token.Value) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) @@ -6659,13 +6659,13 @@ yydefault: } case 500: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3709 + //line php5/php5.y:3710 { yyVAL.node = yyDollar[2].node } case 501: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3714 + //line php5/php5.y:3715 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6673,7 +6673,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3720 + //line php5/php5.y:3721 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -6687,7 +6687,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3732 + //line php5/php5.y:3733 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yylex.(*Parser).positions.AddPosition(identifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) @@ -6699,7 +6699,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3745 + //line php5/php5.y:3746 { yyVAL.node = expr.NewIsset(yyDollar[3].list) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6707,7 +6707,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3751 + //line php5/php5.y:3752 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6715,7 +6715,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3757 + //line php5/php5.y:3758 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6723,7 +6723,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3763 + //line php5/php5.y:3764 { yyVAL.node = expr.NewInclude(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -6731,7 +6731,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3769 + //line php5/php5.y:3770 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -6739,7 +6739,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3775 + //line php5/php5.y:3776 { yyVAL.node = expr.NewEval(yyDollar[3].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -6747,7 +6747,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3781 + //line php5/php5.y:3782 { yyVAL.node = expr.NewRequire(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -6755,7 +6755,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3787 + //line php5/php5.y:3788 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -6763,31 +6763,31 @@ yydefault: } case 512: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3796 + //line php5/php5.y:3797 { yyVAL.list = []node.Node{yyDollar[1].node} } case 513: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3798 + //line php5/php5.y:3799 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 514: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3803 + //line php5/php5.y:3804 { yyVAL.node = yyDollar[1].node } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3805 + //line php5/php5.y:3806 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3810 + //line php5/php5.y:3811 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -6799,7 +6799,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3820 + //line php5/php5.y:3821 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -6811,7 +6811,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3833 + //line php5/php5.y:3834 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) @@ -6823,7 +6823,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3846 + //line php5/php5.y:3847 { target := node.NewIdentifier(yyDollar[3].token.Value) yylex.(*Parser).positions.AddPosition(target, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) diff --git a/php5/php5.y b/php5/php5.y index 52df78e..8d620e6 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -193,6 +193,7 @@ import ( %token '%' %token '<' %token '>' +%token '.' %left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE %left ',' diff --git a/php7/parser.go b/php7/parser.go index 4ca16d4..7dad2bc 100644 --- a/php7/parser.go +++ b/php7/parser.go @@ -96,7 +96,6 @@ func (l *Parser) GetPositions() parser.Positions { return l.positions } -// GetPositions returns positions list func (l *Parser) setCommentsFromChildNode(n node.Node, c node.Node) { l.comments.AddComments(n, l.comments[c]) delete(l.comments, c) diff --git a/php7/php7.go b/php7/php7.go index 3f7b6a8..b4eac43 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -8,6 +8,7 @@ import ( "strconv" "strings" + "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/expr" "github.com/z7zmey/php-parser/node/expr/assign" @@ -19,7 +20,7 @@ import ( "github.com/z7zmey/php-parser/scanner" ) -//line php7/php7.y:21 +//line php7/php7.y:22 type yySymType struct { yys int node node.Node @@ -344,7 +345,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php7/php7.y:4107 +//line php7/php7.y:4114 type foreachVariable struct { node node.Node @@ -2132,7 +2133,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:291 + //line php7/php7.y:293 { yylex.(*Parser).rootNode = stmt.NewStmtList(yyDollar[1].list) @@ -2141,463 +2142,463 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:300 + //line php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:300 + //line php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:300 + //line php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:300 + //line php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:300 + //line php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:300 + //line php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:300 + //line php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:300 + //line php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:301 + //line php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:302 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:302 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:302 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:302 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:302 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:302 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:302 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:302 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:302 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:302 + //line php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:303 + //line php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:304 + //line php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:305 + //line php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:306 + //line php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:311 + //line php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:312 + //line php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:319 + //line php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:324 + //line php7/php7.y:326 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2605,13 +2606,13 @@ yydefault: } case 79: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:330 + //line php7/php7.y:332 { yyVAL.list = []node.Node{} } case 80: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:335 + //line php7/php7.y:337 { namePart := name.NewNamePart(yyDollar[1].token.Value) yyVAL.list = []node.Node{namePart} @@ -2620,11 +2621,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(namePart, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(namePart, yyDollar[1].token, comment.StringToken) } case 81: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:346 + //line php7/php7.y:348 { namePart := name.NewNamePart(yyDollar[3].token.Value) yyVAL.list = append(yyDollar[1].list, namePart) @@ -2633,12 +2634,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(namePart, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken(namePart, yyDollar[3].token, comment.StringToken) } case 82: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:361 + //line php7/php7.y:363 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -2647,7 +2648,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:368 + //line php7/php7.y:370 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -2655,12 +2656,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NsSeparatorToken) } case 84: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:379 + //line php7/php7.y:381 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -2668,48 +2669,48 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) } case 85: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:392 + //line php7/php7.y:394 { // error yyVAL.node = nil } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:397 + //line php7/php7.y:399 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:399 + //line php7/php7.y:401 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:401 + //line php7/php7.y:403 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:403 + //line php7/php7.y:405 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:405 + //line php7/php7.y:407 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:407 + //line php7/php7.y:409 { yyVAL.node = stmt.NewHaltCompiler() @@ -2717,14 +2718,14 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.HaltCompilerToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) } case 92: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:420 + //line php7/php7.y:422 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2734,12 +2735,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 93: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:433 + //line php7/php7.y:435 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2749,13 +2750,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseCurlyBracesToken) } case 94: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:447 + //line php7/php7.y:449 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2763,13 +2764,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NamespaceToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) } case 95: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:459 + //line php7/php7.y:461 { yyVAL.node = yyDollar[2].node @@ -2777,12 +2778,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 96: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:470 + //line php7/php7.y:472 { yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) @@ -2790,12 +2791,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) } case 97: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:481 + //line php7/php7.y:483 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2803,12 +2804,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 98: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:492 + //line php7/php7.y:494 { yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) @@ -2816,12 +2817,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) } case 99: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:503 + //line php7/php7.y:505 { yyVAL.node = stmt.NewConstList(yyDollar[2].list) @@ -2829,12 +2830,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 100: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:517 + //line php7/php7.y:519 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2842,11 +2843,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FunctionToken) } case 101: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:527 + //line php7/php7.y:529 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2854,11 +2855,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstToken) } case 102: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:540 + //line php7/php7.y:542 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2868,16 +2869,16 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.OpenCurlyBracesToken) if yyDollar[5].token != nil { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CommaToken) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseCurlyBracesToken) } case 103: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:557 + //line php7/php7.y:559 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2887,17 +2888,17 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.OpenCurlyBracesToken) if yyDollar[6].token != nil { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CommaToken) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[7].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseCurlyBracesToken) } case 104: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:578 + //line php7/php7.y:580 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2907,16 +2908,16 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.OpenCurlyBracesToken) if yyDollar[5].token != nil { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CommaToken) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseCurlyBracesToken) } case 105: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:595 + //line php7/php7.y:597 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2926,86 +2927,86 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.OpenCurlyBracesToken) if yyDollar[6].token != nil { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CommaToken) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[7].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseCurlyBracesToken) } case 106: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:616 + //line php7/php7.y:618 { yyVAL.token = nil } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:618 + //line php7/php7.y:620 { yyVAL.token = yyDollar[1].token } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:623 + //line php7/php7.y:625 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 109: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:630 + //line php7/php7.y:632 { yyVAL.list = []node.Node{yyDollar[1].node} } case 110: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:635 + //line php7/php7.y:637 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:642 + //line php7/php7.y:644 { yyVAL.list = []node.Node{yyDollar[1].node} } case 112: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:647 + //line php7/php7.y:649 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:654 + //line php7/php7.y:656 { yyVAL.list = []node.Node{yyDollar[1].node} } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:659 + //line php7/php7.y:661 { yyVAL.node = yyDollar[1].node } case 115: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:661 + //line php7/php7.y:663 { yyVAL.node = yyDollar[2].node.(*stmt.Use).SetUseType(yyDollar[1].node) } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:666 + //line php7/php7.y:668 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -3016,7 +3017,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:675 + //line php7/php7.y:677 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -3028,42 +3029,42 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(alias, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(alias, yyDollar[3].token, comment.StringToken) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:693 + //line php7/php7.y:695 { yyVAL.node = yyDollar[1].node } case 119: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:695 + //line php7/php7.y:697 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsSeparatorToken) } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:705 + //line php7/php7.y:707 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:712 + //line php7/php7.y:714 { yyVAL.list = []node.Node{yyDollar[1].node} } case 122: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:717 + //line php7/php7.y:719 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3071,50 +3072,50 @@ yydefault: } case 123: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:723 + //line php7/php7.y:725 { yyVAL.list = []node.Node{} } case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:728 + //line php7/php7.y:730 { // error yyVAL.node = nil } case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:733 + //line php7/php7.y:735 { yyVAL.node = yyDollar[1].node } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:735 + //line php7/php7.y:737 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:737 + //line php7/php7.y:739 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:739 + //line php7/php7.y:741 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:741 + //line php7/php7.y:743 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:743 + //line php7/php7.y:745 { yyVAL.node = stmt.NewHaltCompiler() @@ -3122,14 +3123,14 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.HaltCompilerToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) } case 131: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:758 + //line php7/php7.y:760 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3137,24 +3138,24 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) } case 132: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:769 - { - yyVAL.node = yyDollar[1].node - } - case 133: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:771 { yyVAL.node = yyDollar[1].node } + case 133: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:773 + { + yyVAL.node = yyDollar[1].node + } case 134: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:773 + //line php7/php7.y:775 { if yyDollar[5].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltWhile(yyDollar[3].node, yyDollar[5].altSyntaxNode.node) @@ -3166,13 +3167,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].altSyntaxNode.node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.WhileToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) } case 135: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:789 + //line php7/php7.y:791 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) @@ -3180,15 +3181,15 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[7].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.WhileToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.SemiColonToken) } case 136: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:803 + //line php7/php7.y:805 { if yyDollar[9].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltFor(yyDollar[3].list, yyDollar[5].list, yyDollar[7].list, yyDollar[9].altSyntaxNode.node) @@ -3200,15 +3201,15 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].altSyntaxNode.node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[8].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ForToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.SemiColonToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseParenthesisToken) } case 137: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:821 + //line php7/php7.y:823 { if yyDollar[5].nodesWithEndToken.endToken.Value == ";" { yyVAL.node = stmt.NewAltSwitch(yyDollar[3].node, yyDollar[5].nodesWithEndToken.nodes) @@ -3220,13 +3221,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].nodesWithEndToken.endToken)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SwitchToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) } case 138: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:837 + //line php7/php7.y:839 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3234,12 +3235,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BreakToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:848 + //line php7/php7.y:850 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3247,12 +3248,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ContinueToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:859 + //line php7/php7.y:861 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3260,12 +3261,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ReturnToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:870 + //line php7/php7.y:872 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3273,12 +3274,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.GlobalToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:881 + //line php7/php7.y:883 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3286,12 +3287,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 143: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:892 + //line php7/php7.y:894 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3299,12 +3300,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EchoToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 144: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:903 + //line php7/php7.y:905 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3312,11 +3313,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.InlineHTMLToken) } case 145: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:913 + //line php7/php7.y:915 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3324,11 +3325,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:923 + //line php7/php7.y:925 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3336,17 +3337,17 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UnsetToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) if yyDollar[4].token != nil { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CommaToken) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.SemiColonToken) } case 147: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:939 + //line php7/php7.y:941 { if yyDollar[7].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltForeach(yyDollar[3].node, nil, yyDollar[5].foreachVariable.node, yyDollar[7].altSyntaxNode.node, yyDollar[5].foreachVariable.byRef) @@ -3358,14 +3359,14 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].altSyntaxNode.node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ForeachToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseParenthesisToken) } case 148: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:956 + //line php7/php7.y:958 { if yyDollar[9].altSyntaxNode.isAlt { yyVAL.node = stmt.NewAltForeach(yyDollar[3].node, yyDollar[5].node, yyDollar[7].foreachVariable.node, yyDollar[9].altSyntaxNode.node, yyDollar[7].foreachVariable.byRef) @@ -3377,15 +3378,15 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].altSyntaxNode.node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[8].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ForeachToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.DoubleArrowToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseParenthesisToken) } case 149: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:974 + //line php7/php7.y:976 { yyVAL.node = stmt.NewDeclare(yyDollar[3].list, yyDollar[5].node) @@ -3393,13 +3394,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DeclareToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:986 + //line php7/php7.y:988 { yyVAL.node = stmt.NewNop() @@ -3407,11 +3408,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.SemiColonToken) } case 151: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:996 + //line php7/php7.y:998 { if yyDollar[6].node == nil { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3422,13 +3423,13 @@ yydefault: } // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TryToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1011 + //line php7/php7.y:1013 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3436,12 +3437,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ThrowToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1022 + //line php7/php7.y:1024 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3451,13 +3452,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(label, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.GotoToken) + yylex.(*Parser).comments.AddFromToken(label, yyDollar[2].token, comment.StringToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 154: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1036 + //line php7/php7.y:1038 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -3467,18 +3468,18 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - yylex.(*Parser).comments.AddComments(label, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(label, yyDollar[1].token, comment.StringToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ColonToken) } case 155: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1051 + //line php7/php7.y:1053 { yyVAL.list = []node.Node{} } case 156: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1053 + //line php7/php7.y:1055 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[5].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -3491,37 +3492,37 @@ yydefault: yylex.(*Parser).positions.AddPosition(catch, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token)) // save comments - yylex.(*Parser).comments.AddComments(catch, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(catch, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(variable, yyDollar[5].token.Comments()) - yylex.(*Parser).comments.AddComments(catch, yyDollar[6].token.Comments()) - yylex.(*Parser).comments.AddComments(catch, yyDollar[7].token.Comments()) - yylex.(*Parser).comments.AddComments(catch, yyDollar[9].token.Comments()) + yylex.(*Parser).comments.AddFromToken(catch, yyDollar[2].token, comment.CatchToken) + yylex.(*Parser).comments.AddFromToken(catch, yyDollar[3].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[5].token, comment.StringToken) + yylex.(*Parser).comments.AddFromToken(catch, yyDollar[6].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(catch, yyDollar[7].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(catch, yyDollar[9].token, comment.CloseCurlyBracesToken) } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1075 + //line php7/php7.y:1077 { yyVAL.list = []node.Node{yyDollar[1].node} } case 158: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1077 + //line php7/php7.y:1079 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.VerticalBarToken) } case 159: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1087 + //line php7/php7.y:1089 { yyVAL.node = nil } case 160: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1089 + //line php7/php7.y:1091 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3529,34 +3530,34 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinallyToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1104 + //line php7/php7.y:1106 { yyVAL.list = []node.Node{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1106 + //line php7/php7.y:1108 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 163: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1116 + //line php7/php7.y:1118 { yyVAL.node = yyDollar[1].node } case 164: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:1121 + //line php7/php7.y:1123 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].boolWithToken.value, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str) @@ -3566,43 +3567,43 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FunctionToken) if yyDollar[2].boolWithToken.token != nil { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].boolWithToken.token, comment.AmpersandToken) } - yylex.(*Parser).comments.AddComments(name, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(name, yyDollar[5].token.Comments()) - yylex.(*Parser).comments.AddComments(name, yyDollar[7].token.Comments()) - yylex.(*Parser).comments.AddComments(name, yyDollar[9].token.Comments()) - yylex.(*Parser).comments.AddComments(name, yyDollar[11].token.Comments()) + yylex.(*Parser).comments.AddFromToken(name, yyDollar[3].token, comment.StringToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[9].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[11].token, comment.CloseCurlyBracesToken) } case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1144 + //line php7/php7.y:1146 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 166: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1146 + //line php7/php7.y:1148 { yyVAL.boolWithToken = boolWithToken{true, yyDollar[1].token} } case 167: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1151 + //line php7/php7.y:1153 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1153 + //line php7/php7.y:1155 { yyVAL.boolWithToken = boolWithToken{true, yyDollar[1].token} } case 169: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1158 + //line php7/php7.y:1160 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].node, yyDollar[5].list, yyDollar[8].list, yyDollar[6].str) @@ -3612,20 +3613,20 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(name, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ClassToken) + yylex.(*Parser).comments.AddFromToken(name, yyDollar[3].token, comment.StringToken) if yyDollar[4].node != nil { - yylex.(*Parser).setCommentsFromChildNode(yyVAL.node, yyDollar[4].node) + yylex.(*Parser).comments.AddFromChildNode(yyVAL.node, yyDollar[4].node) } if yyDollar[5].list != nil { - yylex.(*Parser).setCommentsFromChildNode(yyVAL.node, firstNode(yyDollar[5].list)) + yylex.(*Parser).comments.AddFromChildNode(yyVAL.node, firstNode(yyDollar[5].list)) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[7].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[9].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[9].token, comment.CloseCurlyBracesToken) } case 170: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:1179 + //line php7/php7.y:1181 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str) @@ -3635,32 +3636,32 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassToken) + yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) if yyDollar[3].node != nil { - yylex.(*Parser).setCommentsFromChildNode(yyVAL.node, yyDollar[3].node) + yylex.(*Parser).comments.AddFromChildNode(yyVAL.node, yyDollar[3].node) } if yyDollar[4].list != nil { - yylex.(*Parser).setCommentsFromChildNode(yyVAL.node, firstNode(yyDollar[4].list)) + yylex.(*Parser).comments.AddFromChildNode(yyVAL.node, firstNode(yyDollar[4].list)) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[8].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseCurlyBracesToken) } case 171: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1203 + //line php7/php7.y:1205 { yyVAL.list = []node.Node{yyDollar[1].node} } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1205 + //line php7/php7.y:1207 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1210 + //line php7/php7.y:1212 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3668,11 +3669,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AbstractToken) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1220 + //line php7/php7.y:1222 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3680,11 +3681,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinalToken) } case 175: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1233 + //line php7/php7.y:1235 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) @@ -3694,14 +3695,14 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TraitToken) + yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseCurlyBracesToken) } case 176: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1251 + //line php7/php7.y:1253 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].list, yyDollar[6].list, yyDollar[4].str) @@ -3711,68 +3712,68 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.InterfaceToken) + yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringToken) if yyDollar[3].list != nil { - yylex.(*Parser).setCommentsFromChildNode(yyVAL.node, firstNode(yyDollar[3].list)) + yylex.(*Parser).comments.AddFromChildNode(yyVAL.node, firstNode(yyDollar[3].list)) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[7].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseCurlyBracesToken) } case 177: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1272 + //line php7/php7.y:1274 { yyVAL.node = nil } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1274 + //line php7/php7.y:1276 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ExtendsToken) } case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1284 + //line php7/php7.y:1286 { yyVAL.list = nil } case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1286 + //line php7/php7.y:1288 { yyVAL.list = yyDollar[2].list // save comments - yylex.(*Parser).comments.AddComments(firstNode(yyVAL.list), yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(firstNode(yyVAL.list), yyDollar[1].token, comment.ExtendsToken) } case 181: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1296 + //line php7/php7.y:1298 { yyVAL.list = nil } case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1298 + //line php7/php7.y:1300 { yyVAL.list = yyDollar[2].list // save comments - yylex.(*Parser).comments.AddComments(firstNode(yyVAL.list), yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(firstNode(yyVAL.list), yyDollar[1].token, comment.ImplementsToken) } case 183: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1308 + //line php7/php7.y:1310 { yyVAL.foreachVariable = foreachVariable{yyDollar[1].node, false} } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1310 + //line php7/php7.y:1312 { yyVAL.foreachVariable = foreachVariable{yyDollar[2].node, true} @@ -3780,11 +3781,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyDollar[2].node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyDollar[2].node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyDollar[2].node, yyDollar[1].token, comment.AmpersandToken) } case 185: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1320 + //line php7/php7.y:1322 { list := expr.NewList(yyDollar[3].list) yyVAL.foreachVariable = foreachVariable{list, false} @@ -3793,13 +3794,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(list, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(list, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(list, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[1].token, comment.ListToken) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[4].token, comment.CloseParenthesisToken) } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1333 + //line php7/php7.y:1335 { list := expr.NewShortList(yyDollar[2].list) yyVAL.foreachVariable = foreachVariable{list, false} @@ -3808,18 +3809,18 @@ yydefault: yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(list, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(list, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[1].token, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[3].token, comment.CloseSquareBracket) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1348 + //line php7/php7.y:1350 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 188: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1350 + //line php7/php7.y:1352 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} @@ -3827,19 +3828,19 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.altSyntaxNode.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.altSyntaxNode.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.altSyntaxNode.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.altSyntaxNode.node, yyDollar[1].token, comment.ColonToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.altSyntaxNode.node, yyDollar[3].token, comment.EndforToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.altSyntaxNode.node, yyDollar[4].token, comment.SemiColonToken) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1365 + //line php7/php7.y:1367 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 190: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1367 + //line php7/php7.y:1369 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} @@ -3847,19 +3848,19 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.altSyntaxNode.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.altSyntaxNode.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.altSyntaxNode.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.altSyntaxNode.node, yyDollar[1].token, comment.ColonToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.altSyntaxNode.node, yyDollar[3].token, comment.EndforeachToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.altSyntaxNode.node, yyDollar[4].token, comment.SemiColonToken) } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1382 + //line php7/php7.y:1384 { yyVAL.node = yyDollar[1].node } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1384 + //line php7/php7.y:1386 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3867,43 +3868,43 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.EnddeclareToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1398 + //line php7/php7.y:1400 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 194: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1399 + //line php7/php7.y:1401 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[4].token} } case 195: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1400 + //line php7/php7.y:1402 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[4].token} } case 196: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1401 + //line php7/php7.y:1403 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[3].list, yyDollar[5].token} } case 197: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1406 + //line php7/php7.y:1408 { yyVAL.list = []node.Node{} } case 198: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1408 + //line php7/php7.y:1410 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -3912,12 +3913,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) // save comments - yylex.(*Parser).comments.AddComments(_case, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(_case, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(_case, yyDollar[2].token, comment.CaseToken) + yylex.(*Parser).comments.AddFromToken(_case, yyDollar[4].token, comment.CaseSeparatorToken) } case 199: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1420 + //line php7/php7.y:1422 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -3926,30 +3927,30 @@ yydefault: yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) // save comments - yylex.(*Parser).comments.AddComments(_default, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(_default, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(_default, yyDollar[2].token, comment.DefaultToken) + yylex.(*Parser).comments.AddFromToken(_default, yyDollar[3].token, comment.CaseSeparatorToken) } case 200: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1435 - { - yyVAL.token = yyDollar[1].token - } - case 201: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:1437 { yyVAL.token = yyDollar[1].token } + case 201: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:1439 + { + yyVAL.token = yyDollar[1].token + } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1442 + //line php7/php7.y:1444 { yyVAL.altSyntaxNode = altSyntaxNode{yyDollar[1].node, false} } case 203: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1444 + //line php7/php7.y:1446 { yyVAL.altSyntaxNode = altSyntaxNode{stmt.NewStmtList(yyDollar[2].list), true} @@ -3957,13 +3958,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.altSyntaxNode.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.altSyntaxNode.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.altSyntaxNode.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.altSyntaxNode.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.altSyntaxNode.node, yyDollar[1].token, comment.ColonToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.altSyntaxNode.node, yyDollar[3].token, comment.EndwhileToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.altSyntaxNode.node, yyDollar[4].token, comment.SemiColonToken) } case 204: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1459 + //line php7/php7.y:1461 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) @@ -3971,13 +3972,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IfToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) } case 205: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1471 + //line php7/php7.y:1473 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) @@ -3987,19 +3988,19 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) // save comments - yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[2].token, comment.ElseifToken) + yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[3].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[5].token, comment.CloseParenthesisToken) } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1488 + //line php7/php7.y:1490 { yyVAL.node = yyDollar[1].node } case 207: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1490 + //line php7/php7.y:1492 { _else := stmt.NewElse(yyDollar[3].node) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) @@ -4009,11 +4010,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ElseToken) } case 208: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1505 + //line php7/php7.y:1507 { stmts := stmt.NewStmtList(yyDollar[6].list) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) @@ -4023,14 +4024,14 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IfToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.ColonToken) } case 209: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1520 + //line php7/php7.y:1522 { stmts := stmt.NewStmtList(yyDollar[7].list) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) @@ -4041,14 +4042,14 @@ yydefault: yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list)) // save comments - yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[5].token.Comments()) - yylex.(*Parser).comments.AddComments(_elseIf, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[2].token, comment.ElseifToken) + yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[3].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[5].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(_elseIf, yyDollar[6].token, comment.ColonToken) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1539 + //line php7/php7.y:1541 { yyVAL.node = yyDollar[1].node @@ -4056,12 +4057,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EndifToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 211: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1550 + //line php7/php7.y:1552 { stmts := stmt.NewStmtList(yyDollar[4].list) _else := stmt.NewAltElse(stmts) @@ -4073,41 +4074,41 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) // save comments - yylex.(*Parser).comments.AddComments(_else, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(_else, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(_else, yyDollar[2].token, comment.ElseToken) + yylex.(*Parser).comments.AddFromToken(_else, yyDollar[3].token, comment.ColonToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.EndifToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.SemiColonToken) } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1570 + //line php7/php7.y:1572 { yyVAL.list = yyDollar[1].list } case 213: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1572 + //line php7/php7.y:1574 { yyVAL.list = nil } case 214: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1577 + //line php7/php7.y:1579 { yyVAL.list = []node.Node{yyDollar[1].node} } case 215: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1579 + //line php7/php7.y:1581 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 216: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1589 + //line php7/php7.y:1591 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4137,16 +4138,16 @@ yydefault: // save comments if yyDollar[2].boolWithToken.value { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].boolWithToken.token, comment.AmpersandToken) } if yyDollar[3].boolWithToken.value { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].boolWithToken.token, comment.EllipsisToken) } - yylex.(*Parser).comments.AddComments(variable, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[4].token, comment.VariableToken) } case 217: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1626 + //line php7/php7.y:1628 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[4].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4175,35 +4176,35 @@ yydefault: // save comments if yyDollar[2].boolWithToken.value { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].boolWithToken.token, comment.AmpersandToken) } if yyDollar[3].boolWithToken.value { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].boolWithToken.token, comment.EllipsisToken) } - yylex.(*Parser).comments.AddComments(variable, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[4].token, comment.VariableToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.EqualToken) } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1666 + //line php7/php7.y:1668 { yyVAL.node = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1668 + //line php7/php7.y:1670 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1673 + //line php7/php7.y:1675 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1675 + //line php7/php7.y:1677 { yyVAL.node = node.NewNullable(yyDollar[2].node) @@ -4211,11 +4212,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.QuestionMarkToken) } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1688 + //line php7/php7.y:1690 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4223,11 +4224,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1698 + //line php7/php7.y:1700 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4235,59 +4236,59 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CallableToken) } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1708 + //line php7/php7.y:1710 { yyVAL.node = yyDollar[1].node } case 225: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1713 + //line php7/php7.y:1715 { yyVAL.node = nil } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1715 + //line php7/php7.y:1717 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ColonToken) } case 227: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1725 + //line php7/php7.y:1727 { yyVAL.nodesWithEndToken = &nodesWithEndToken{[]node.Node{}, yyDollar[2].token} } case 228: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1727 + //line php7/php7.y:1729 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[4].token} } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1732 + //line php7/php7.y:1734 { yyVAL.list = []node.Node{yyDollar[1].node} } case 230: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1734 + //line php7/php7.y:1736 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 231: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1744 + //line php7/php7.y:1746 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4296,7 +4297,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1751 + //line php7/php7.y:1753 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4304,47 +4305,47 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EllipsisToken) } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1764 + //line php7/php7.y:1766 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 234: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1771 + //line php7/php7.y:1773 { yyVAL.list = []node.Node{yyDollar[1].node} } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1776 + //line php7/php7.y:1778 { yyVAL.node = yyDollar[1].node } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1781 + //line php7/php7.y:1783 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 237: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1788 + //line php7/php7.y:1790 { yyVAL.list = []node.Node{yyDollar[1].node} } case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1793 + //line php7/php7.y:1795 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4356,11 +4357,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1807 + //line php7/php7.y:1809 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4372,24 +4373,24 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) } case 240: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1825 + //line php7/php7.y:1827 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 241: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1827 + //line php7/php7.y:1829 { yyVAL.list = []node.Node{} } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1832 + //line php7/php7.y:1834 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) @@ -4397,11 +4398,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.SemiColonToken) } case 243: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1842 + //line php7/php7.y:1844 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) @@ -4409,12 +4410,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ConstToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.SemiColonToken) } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1853 + //line php7/php7.y:1855 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].nodesWithEndToken.nodes) @@ -4422,11 +4423,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].nodesWithEndToken.endToken)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UseToken) } case 245: yyDollar = yyS[yypt-10 : yypt+1] - //line php7/php7.y:1863 + //line php7/php7.y:1865 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].boolWithToken.value, yyDollar[7].list, yyDollar[9].node, yyDollar[10].nodesWithEndToken.nodes, yyDollar[5].str) @@ -4436,80 +4437,80 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[10].nodesWithEndToken.endToken)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.FunctionToken) if yyDollar[3].boolWithToken.value { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].boolWithToken.token, comment.AmpersandToken) } - yylex.(*Parser).comments.AddComments(name, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[8].token.Comments()) + yylex.(*Parser).comments.AddFromToken(name, yyDollar[4].token, comment.IdentifierToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseParenthesisToken) } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1884 + //line php7/php7.y:1886 { yyVAL.list = []node.Node{yyDollar[1].node} } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1886 + //line php7/php7.y:1888 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 248: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1896 + //line php7/php7.y:1898 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1898 + //line php7/php7.y:1900 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[2].token} } case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1900 + //line php7/php7.y:1902 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1905 + //line php7/php7.y:1907 { yyVAL.list = []node.Node{yyDollar[1].node} } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1907 + //line php7/php7.y:1909 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1912 + //line php7/php7.y:1914 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1919 + //line php7/php7.y:1921 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SemiColonToken) } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1929 + //line php7/php7.y:1931 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -4517,11 +4518,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.InsteadofToken) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1942 + //line php7/php7.y:1944 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4531,12 +4532,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(alias, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(alias, yyDollar[3].token, comment.StringToken) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1955 + //line php7/php7.y:1957 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -4546,12 +4547,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(alias, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(alias, yyDollar[3].token, comment.StringToken) } case 258: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1968 + //line php7/php7.y:1970 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -4561,12 +4562,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(alias, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(alias, yyDollar[4].token, comment.IdentifierToken) } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1981 + //line php7/php7.y:1983 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -4574,11 +4575,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsToken) } case 260: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1994 + //line php7/php7.y:1996 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -4588,17 +4589,17 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.IdentifierToken) } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2006 + //line php7/php7.y:2008 { yyVAL.node = yyDollar[1].node } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2011 + //line php7/php7.y:2013 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -4608,30 +4609,30 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + yylex.(*Parser).comments.AddFromToken(target, yyDollar[3].token, comment.IdentifierToken) } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2026 + //line php7/php7.y:2028 { yyVAL.nodesWithEndToken = &nodesWithEndToken{nil, yyDollar[1].token} } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2027 + //line php7/php7.y:2029 { yyVAL.nodesWithEndToken = &nodesWithEndToken{yyDollar[2].list, yyDollar[3].token} } case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2032 + //line php7/php7.y:2034 { yyVAL.list = yyDollar[1].list } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2034 + //line php7/php7.y:2036 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -4640,35 +4641,35 @@ yydefault: yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(modifier, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(modifier, yyDollar[1].token, comment.VarToken) } case 267: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2048 + //line php7/php7.y:2050 { yyVAL.list = nil } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2050 + //line php7/php7.y:2052 { yyVAL.list = yyDollar[1].list } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2055 + //line php7/php7.y:2057 { yyVAL.list = []node.Node{yyDollar[1].node} } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2057 + //line php7/php7.y:2059 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2062 + //line php7/php7.y:2064 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4676,11 +4677,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PublicToken) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2072 + //line php7/php7.y:2074 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4688,11 +4689,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ProtectedToken) } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2082 + //line php7/php7.y:2084 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4700,11 +4701,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PrivateToken) } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2092 + //line php7/php7.y:2094 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4712,11 +4713,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2102 + //line php7/php7.y:2104 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4724,11 +4725,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AbstractToken) } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2112 + //line php7/php7.y:2114 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4736,26 +4737,26 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FinalToken) } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2125 + //line php7/php7.y:2127 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2132 + //line php7/php7.y:2134 { yyVAL.list = []node.Node{yyDollar[1].node} } case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2137 + //line php7/php7.y:2139 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4767,11 +4768,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) } case 280: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2151 + //line php7/php7.y:2153 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -4783,27 +4784,27 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2169 + //line php7/php7.y:2171 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2176 + //line php7/php7.y:2178 { yyVAL.list = []node.Node{yyDollar[1].node} } case 283: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2181 + //line php7/php7.y:2183 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -4813,12 +4814,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.IdentifierToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) } case 284: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2197 + //line php7/php7.y:2199 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -4828,60 +4829,60 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(name, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(name, yyDollar[1].token, comment.StringToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2213 + //line php7/php7.y:2215 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2220 + //line php7/php7.y:2222 { yyVAL.list = []node.Node{yyDollar[1].node} } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2225 + //line php7/php7.y:2227 { yyVAL.node = yyDollar[1].node } case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2230 + //line php7/php7.y:2232 { yyVAL.list = nil } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2232 + //line php7/php7.y:2234 { yyVAL.list = yyDollar[1].list } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2237 + //line php7/php7.y:2239 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2244 + //line php7/php7.y:2246 { yyVAL.list = []node.Node{yyDollar[1].node} } case 292: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:2249 + //line php7/php7.y:2251 { if yyDollar[2].nodesWithEndToken != nil { yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].nodesWithEndToken.nodes, yyDollar[3].node, yyDollar[4].list, yyDollar[7].list, yyDollar[5].str) @@ -4893,19 +4894,19 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassToken) if yyDollar[3].node != nil { - yylex.(*Parser).setCommentsFromChildNode(yyVAL.node, yyDollar[3].node) + yylex.(*Parser).comments.AddFromChildNode(yyVAL.node, yyDollar[3].node) } if yyDollar[4].list != nil { - yylex.(*Parser).setCommentsFromChildNode(yyVAL.node, firstNode(yyDollar[4].list)) + yylex.(*Parser).comments.AddFromChildNode(yyVAL.node, firstNode(yyDollar[4].list)) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[8].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[8].token, comment.CloseCurlyBracesToken) } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2274 + //line php7/php7.y:2276 { if yyDollar[3].nodesWithEndToken != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].nodesWithEndToken.nodes) @@ -4916,11 +4917,11 @@ yydefault: } // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NewToken) } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2287 + //line php7/php7.y:2289 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -4928,11 +4929,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NewToken) } case 295: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2300 + //line php7/php7.y:2302 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(list, yyDollar[6].node) @@ -4942,14 +4943,14 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) // save comments - yylex.(*Parser).comments.AddComments(list, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(list, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(list, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[1].token, comment.ListToken) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[4].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.EqualToken) } case 296: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:2315 + //line php7/php7.y:2317 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -4959,13 +4960,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) // save comments - yylex.(*Parser).comments.AddComments(shortList, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(shortList, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(shortList, yyDollar[1].token, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken(shortList, yyDollar[3].token, comment.CloseSquareBracket) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.EqualToken) } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2329 + //line php7/php7.y:2331 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -4973,11 +4974,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) } case 298: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2339 + //line php7/php7.y:2341 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -4985,12 +4986,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.EqualToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.AmpersandToken) } case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2350 + //line php7/php7.y:2352 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -4998,11 +4999,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.CloneToken) } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2360 + //line php7/php7.y:2362 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5010,11 +5011,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusEqualToken) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2370 + //line php7/php7.y:2372 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5022,11 +5023,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusEqualToken) } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2380 + //line php7/php7.y:2382 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5034,11 +5035,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MulEqualToken) } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2390 + //line php7/php7.y:2392 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5046,11 +5047,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowEqualToken) } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2400 + //line php7/php7.y:2402 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5058,11 +5059,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DivEqualToken) } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2410 + //line php7/php7.y:2412 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5070,11 +5071,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ConcatEqualToken) } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2420 + //line php7/php7.y:2422 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5082,11 +5083,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ModEqualToken) } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2430 + //line php7/php7.y:2432 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5094,11 +5095,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AndEqualToken) } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2440 + //line php7/php7.y:2442 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5106,11 +5107,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OrEqualToken) } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2450 + //line php7/php7.y:2452 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5118,11 +5119,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.XorEqualToken) } case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2460 + //line php7/php7.y:2462 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5130,11 +5131,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlEqualToken) } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2470 + //line php7/php7.y:2472 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5142,11 +5143,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrEqualToken) } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2480 + //line php7/php7.y:2482 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5154,11 +5155,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IncToken) } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2490 + //line php7/php7.y:2492 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5166,11 +5167,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncToken) } case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2500 + //line php7/php7.y:2502 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5178,11 +5179,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DecToken) } case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2510 + //line php7/php7.y:2512 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5190,11 +5191,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DecToken) } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2520 + //line php7/php7.y:2522 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5202,11 +5203,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanOrToken) } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2530 + //line php7/php7.y:2532 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5214,11 +5215,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.BooleanAndToken) } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2540 + //line php7/php7.y:2542 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5226,11 +5227,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalOrToken) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2550 + //line php7/php7.y:2552 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5238,11 +5239,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalAndToken) } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2560 + //line php7/php7.y:2562 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5250,11 +5251,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LogicalXorToken) } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2570 + //line php7/php7.y:2572 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5262,11 +5263,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.VerticalBarToken) } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2580 + //line php7/php7.y:2582 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5274,11 +5275,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AmpersandToken) } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2590 + //line php7/php7.y:2592 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5286,18 +5287,23 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CaretToken) } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2600 + //line php7/php7.y:2602 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) + + // save position yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + + // save comments + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DotToken) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2605 + //line php7/php7.y:2612 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5305,11 +5311,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PlusToken) } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2615 + //line php7/php7.y:2622 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5317,11 +5323,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.MinusToken) } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2625 + //line php7/php7.y:2632 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5329,11 +5335,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.AsteriskToken) } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2635 + //line php7/php7.y:2642 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5341,11 +5347,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PowToken) } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2645 + //line php7/php7.y:2652 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5353,11 +5359,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlashToken) } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2655 + //line php7/php7.y:2662 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5365,11 +5371,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PercentToken) } case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2665 + //line php7/php7.y:2672 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5377,11 +5383,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SlToken) } case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2675 + //line php7/php7.y:2682 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5389,11 +5395,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SrToken) } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2685 + //line php7/php7.y:2692 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -5401,11 +5407,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PlusToken) } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2695 + //line php7/php7.y:2702 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -5413,11 +5419,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MinusToken) } case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2705 + //line php7/php7.y:2712 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -5425,11 +5431,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ExclamationMarkToken) } case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2715 + //line php7/php7.y:2722 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -5437,11 +5443,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TildeToken) } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2725 + //line php7/php7.y:2732 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -5449,11 +5455,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsIdenticalToken) } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2735 + //line php7/php7.y:2742 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -5461,11 +5467,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotIdenticalToken) } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2745 + //line php7/php7.y:2752 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -5473,11 +5479,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsEqualToken) } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2755 + //line php7/php7.y:2762 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -5485,11 +5491,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsNotEqualToken) } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2765 + //line php7/php7.y:2772 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -5497,11 +5503,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.LessToken) } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2775 + //line php7/php7.y:2782 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -5509,11 +5515,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsSmallerOrEqualToken) } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2785 + //line php7/php7.y:2792 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -5521,11 +5527,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.GreaterToken) } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2795 + //line php7/php7.y:2802 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -5533,11 +5539,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.IsGreaterOrEqualToken) } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2805 + //line php7/php7.y:2812 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -5545,11 +5551,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.SpaceshipToken) } case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2815 + //line php7/php7.y:2822 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -5557,27 +5563,27 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.InstanceofToken) } case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2825 + //line php7/php7.y:2832 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2833 + //line php7/php7.y:2840 { yyVAL.node = yyDollar[1].node } case 349: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:2835 + //line php7/php7.y:2842 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -5585,12 +5591,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.ColonToken) } case 350: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2846 + //line php7/php7.y:2853 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -5598,12 +5604,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.QuestionMarkToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.ColonToken) } case 351: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2857 + //line php7/php7.y:2864 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -5611,17 +5617,17 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.CoalesceToken) } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2867 + //line php7/php7.y:2874 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2869 + //line php7/php7.y:2876 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -5629,11 +5635,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IntCastToken) } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2879 + //line php7/php7.y:2886 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -5641,11 +5647,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleCastToken) } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2889 + //line php7/php7.y:2896 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -5653,11 +5659,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringCastToken) } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2899 + //line php7/php7.y:2906 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -5665,11 +5671,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayCastToken) } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2909 + //line php7/php7.y:2916 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -5677,11 +5683,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ObjectCastToken) } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2919 + //line php7/php7.y:2926 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -5689,11 +5695,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BoolCastToken) } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2929 + //line php7/php7.y:2936 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -5701,11 +5707,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.UnsetCastToken) } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2939 + //line php7/php7.y:2946 { if strings.EqualFold(yyDollar[1].token.Value, "die") { yyVAL.node = expr.NewDie(yyDollar[2].node) @@ -5717,11 +5723,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ExitToken) } case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2953 + //line php7/php7.y:2960 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -5729,17 +5735,17 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AtToken) } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2963 + //line php7/php7.y:2970 { yyVAL.node = yyDollar[1].node } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2965 + //line php7/php7.y:2972 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -5747,12 +5753,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.BackquoteToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.BackquoteToken) } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2976 + //line php7/php7.y:2983 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -5760,11 +5766,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.PrintToken) } case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2986 + //line php7/php7.y:2993 { yyVAL.node = expr.NewYield(nil, nil) @@ -5772,11 +5778,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2996 + //line php7/php7.y:3003 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -5784,11 +5790,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) } case 367: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3006 + //line php7/php7.y:3013 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -5796,12 +5802,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.DoubleArrowToken) } case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3017 + //line php7/php7.y:3024 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -5809,11 +5815,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.YieldFromToken) } case 369: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:3027 + //line php7/php7.y:3034 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].list, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].boolWithToken.value, yyDollar[3].str) @@ -5821,18 +5827,18 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FunctionToken) if yyDollar[2].boolWithToken.value { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].boolWithToken.token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].boolWithToken.token, comment.AmpersandToken) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[9].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[11].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[9].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[11].token, comment.CloseCurlyBracesToken) } case 370: yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:3044 + //line php7/php7.y:3051 { yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].list, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].boolWithToken.value, yyDollar[4].str) @@ -5840,65 +5846,65 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[12].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.FunctionToken) if yyDollar[3].boolWithToken.value { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].boolWithToken.token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].boolWithToken.token, comment.AmpersandToken) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[7].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[10].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[12].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[7].token, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[10].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[12].token, comment.CloseCurlyBracesToken) } case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3065 + //line php7/php7.y:3072 { yyVAL.str = yylex.(*Parser).PhpDocComment yylex.(*Parser).PhpDocComment = "" } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3073 + //line php7/php7.y:3080 { yyVAL.boolWithToken = boolWithToken{false, nil} } case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3075 + //line php7/php7.y:3082 { yyVAL.boolWithToken = boolWithToken{true, yyDollar[1].token} } case 374: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3080 + //line php7/php7.y:3087 { yyVAL.list = []node.Node{} } case 375: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3082 + //line php7/php7.y:3089 { yyVAL.list = yyDollar[3].list } case 376: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3087 + //line php7/php7.y:3094 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3094 + //line php7/php7.y:3101 { yyVAL.list = []node.Node{yyDollar[1].node} } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3099 + //line php7/php7.y:3106 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -5910,11 +5916,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3113 + //line php7/php7.y:3120 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[2].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -5926,12 +5932,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - yylex.(*Parser).comments.AddComments(variable, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AmpersandToken) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[2].token, comment.VariableToken) } case 380: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3131 + //line php7/php7.y:3138 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].nodesWithEndToken.nodes) @@ -5940,7 +5946,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3138 + //line php7/php7.y:3145 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) @@ -5948,11 +5954,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) } case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3148 + //line php7/php7.y:3155 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) @@ -5960,11 +5966,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3158 + //line php7/php7.y:3165 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].nodesWithEndToken.nodes) @@ -5973,7 +5979,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3168 + //line php7/php7.y:3175 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5981,71 +5987,71 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StaticToken) } case 385: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3178 - { - yyVAL.node = yyDollar[1].node - } - case 386: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3183 - { - yyVAL.node = yyDollar[1].node - } - case 387: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:3185 { yyVAL.node = yyDollar[1].node } + case 386: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:3190 + { + yyVAL.node = yyDollar[1].node + } + case 387: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:3192 + { + yyVAL.node = yyDollar[1].node + } case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3190 + //line php7/php7.y:3197 { yyVAL.node = nil } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3192 + //line php7/php7.y:3199 { yyVAL.node = yyDollar[2].node } case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3197 + //line php7/php7.y:3204 { yyVAL.list = []node.Node{} } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3199 + //line php7/php7.y:3206 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token.Value)} } case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3201 + //line php7/php7.y:3208 { yyVAL.list = yyDollar[1].list } case 393: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3206 + //line php7/php7.y:3213 { yyVAL.nodesWithEndToken = nil } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3208 + //line php7/php7.y:3215 { yyVAL.nodesWithEndToken = yyDollar[1].nodesWithEndToken } case 395: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3213 + //line php7/php7.y:3220 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6053,13 +6059,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ArrayToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3225 + //line php7/php7.y:3232 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6067,12 +6073,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseSquareBracket) } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3236 + //line php7/php7.y:3243 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6080,11 +6086,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ConstantEncapsedStringToken) } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3249 + //line php7/php7.y:3256 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -6092,11 +6098,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.LnumberToken) } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3259 + //line php7/php7.y:3266 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -6104,11 +6110,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DnumberToken) } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3269 + //line php7/php7.y:3276 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6116,11 +6122,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.LineToken) } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3279 + //line php7/php7.y:3286 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6128,11 +6134,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FileToken) } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3289 + //line php7/php7.y:3296 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6140,11 +6146,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DirToken) } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3299 + //line php7/php7.y:3306 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6152,11 +6158,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.TraitCToken) } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3309 + //line php7/php7.y:3316 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6164,11 +6170,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MethodCToken) } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3319 + //line php7/php7.y:3326 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6176,11 +6182,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.FuncCToken) } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3329 + //line php7/php7.y:3336 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6188,11 +6194,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NsCToken) } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3339 + //line php7/php7.y:3346 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -6200,11 +6206,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.ClassCToken) } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3349 + //line php7/php7.y:3356 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -6214,11 +6220,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) } case 409: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3361 + //line php7/php7.y:3368 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -6226,11 +6232,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3371 + //line php7/php7.y:3378 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -6238,11 +6244,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DoubleQuoteToken) } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3381 + //line php7/php7.y:3388 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -6250,23 +6256,23 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StartHeredocToken) } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3391 + //line php7/php7.y:3398 { yyVAL.node = yyDollar[1].node } case 413: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3393 + //line php7/php7.y:3400 { yyVAL.node = yyDollar[1].node } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3398 + //line php7/php7.y:3405 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) @@ -6275,7 +6281,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3405 + //line php7/php7.y:3412 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -6285,12 +6291,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + yylex.(*Parser).comments.AddFromToken(target, yyDollar[3].token, comment.IdentifierToken) } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3418 + //line php7/php7.y:3425 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -6300,92 +6306,92 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(target, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) + yylex.(*Parser).comments.AddFromToken(target, yyDollar[3].token, comment.IdentifierToken) } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3434 + //line php7/php7.y:3441 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3436 + //line php7/php7.y:3443 { yyVAL.node = yyDollar[1].node } case 419: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3441 + //line php7/php7.y:3448 { yyVAL.node = nil } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3443 + //line php7/php7.y:3450 { yyVAL.node = yyDollar[1].node } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3448 + //line php7/php7.y:3455 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3453 + //line php7/php7.y:3460 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3455 + //line php7/php7.y:3462 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3463 + //line php7/php7.y:3470 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3468 + //line php7/php7.y:3475 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3470 + //line php7/php7.y:3477 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseParenthesisToken) } case 427: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3478 + //line php7/php7.y:3485 { yyVAL.node = yyDollar[1].node } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3483 + //line php7/php7.y:3490 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3485 + //line php7/php7.y:3492 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6393,12 +6399,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) } case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3496 + //line php7/php7.y:3503 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6406,12 +6412,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3507 + //line php7/php7.y:3514 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6419,12 +6425,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) } case 432: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3518 + //line php7/php7.y:3525 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].nodesWithEndToken.nodes) @@ -6432,29 +6438,29 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].nodesWithEndToken.endToken)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) } case 433: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3528 - { - yyVAL.node = yyDollar[1].node - } - case 434: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3533 - { - yyVAL.node = yyDollar[1].node - } - case 435: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:3535 { yyVAL.node = yyDollar[1].node } + case 434: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:3540 + { + yyVAL.node = yyDollar[1].node + } + case 435: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:3542 + { + yyVAL.node = yyDollar[1].node + } case 436: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3537 + //line php7/php7.y:3544 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6462,11 +6468,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3550 + //line php7/php7.y:3557 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yyVAL.node = expr.NewVariable(name) @@ -6476,11 +6482,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) } case 438: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3562 + //line php7/php7.y:3569 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -6488,13 +6494,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) } case 439: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3574 + //line php7/php7.y:3581 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -6502,11 +6508,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarToken) } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3587 + //line php7/php7.y:3594 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6514,11 +6520,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) } case 441: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3597 + //line php7/php7.y:3604 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6526,17 +6532,17 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) } case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3610 + //line php7/php7.y:3617 { yyVAL.node = yyDollar[1].node } case 443: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3612 + //line php7/php7.y:3619 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6544,12 +6550,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) } case 444: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3623 + //line php7/php7.y:3630 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6557,12 +6563,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseCurlyBracesToken) } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3634 + //line php7/php7.y:3641 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6570,11 +6576,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) } case 446: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3644 + //line php7/php7.y:3651 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6582,11 +6588,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) } case 447: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3654 + //line php7/php7.y:3661 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -6594,11 +6600,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.PaamayimNekudotayimToken) } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3667 + //line php7/php7.y:3674 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6606,27 +6612,27 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IdentifierToken) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3677 + //line php7/php7.y:3684 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) } case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3685 + //line php7/php7.y:3692 { yyVAL.node = yyDollar[1].node } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3690 + //line php7/php7.y:3697 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6634,27 +6640,27 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringToken) } case 452: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3700 + //line php7/php7.y:3707 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) } case 453: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3708 + //line php7/php7.y:3715 { yyVAL.node = yyDollar[1].node } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3713 + //line php7/php7.y:3720 { if yyDollar[1].list[len(yyDollar[1].list)-1] == nil { yyVAL.list = yyDollar[1].list[:len(yyDollar[1].list)-1] @@ -6664,34 +6670,34 @@ yydefault: } case 455: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3724 + //line php7/php7.y:3731 { yyVAL.node = nil } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3726 + //line php7/php7.y:3733 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3731 + //line php7/php7.y:3738 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3738 + //line php7/php7.y:3745 { yyVAL.list = []node.Node{yyDollar[1].node} } case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3743 + //line php7/php7.y:3750 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) @@ -6699,11 +6705,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DoubleArrowToken) } case 460: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3753 + //line php7/php7.y:3760 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) @@ -6712,7 +6718,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3760 + //line php7/php7.y:3767 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[4].node, true) @@ -6720,12 +6726,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DoubleArrowToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.AmpersandToken) } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3771 + //line php7/php7.y:3778 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[2].node, true) @@ -6733,11 +6739,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.AmpersandToken) } case 463: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3781 + //line php7/php7.y:3788 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) @@ -6748,14 +6754,14 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(list, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(list, yyDollar[4].token.Comments()) - yylex.(*Parser).comments.AddComments(list, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.DoubleArrowToken) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[3].token, comment.ListToken) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[4].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[6].token, comment.CloseParenthesisToken) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3797 + //line php7/php7.y:3804 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) @@ -6766,19 +6772,19 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(list, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(list, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(list, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[1].token, comment.ListToken) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(list, yyDollar[4].token, comment.CloseParenthesisToken) } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3815 + //line php7/php7.y:3822 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3817 + //line php7/php7.y:3824 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -6787,17 +6793,17 @@ yydefault: yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) // save comments - yylex.(*Parser).comments.AddComments(encapsed, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(encapsed, yyDollar[2].token, comment.EncapsedAndWhitespaceToken) } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3828 + //line php7/php7.y:3835 { yyVAL.list = []node.Node{yyDollar[1].node} } case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3830 + //line php7/php7.y:3837 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -6806,11 +6812,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(encapsed, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(encapsed, yyDollar[1].token, comment.EncapsedAndWhitespaceToken) } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3844 + //line php7/php7.y:3851 { name := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yyVAL.node = expr.NewVariable(name) @@ -6820,11 +6826,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3856 + //line php7/php7.y:3863 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -6836,13 +6842,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseSquareBracket) } case 471: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3872 + //line php7/php7.y:3879 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) variable := expr.NewVariable(identifier) @@ -6856,13 +6862,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(variable, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(fetch, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[1].token, comment.VariableToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.ObjectOperatorToken) + yylex.(*Parser).comments.AddFromToken(fetch, yyDollar[3].token, comment.StringToken) } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3890 + //line php7/php7.y:3897 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -6870,12 +6876,12 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3901 + //line php7/php7.y:3908 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = expr.NewVariable(name) @@ -6885,13 +6891,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(name, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(name, yyDollar[2].token, comment.StringVarnameToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.CloseCurlyBracesToken) } case 474: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3915 + //line php7/php7.y:3922 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -6903,21 +6909,21 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(variable, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[3].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[6].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.DollarOpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(variable, yyDollar[2].token, comment.StringVarnameToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[3].token, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseSquareBracket) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[6].token, comment.CloseCurlyBracesToken) } case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3933 + //line php7/php7.y:3940 { yyVAL.node = yyDollar[2].node } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3939 + //line php7/php7.y:3946 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -6925,11 +6931,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.StringToken) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3949 + //line php7/php7.y:3956 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -6942,11 +6948,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.NumStringToken) } case 478: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3964 + //line php7/php7.y:3971 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -6968,16 +6974,16 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.MinusToken) if isInt { - yylex.(*Parser).comments.AddComments(lnumber, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lnumber, yyDollar[2].token, comment.NumStringToken) } else { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.NumStringToken) } } case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3993 + //line php7/php7.y:4000 { identifier := node.NewIdentifier(strings.TrimLeft(yyDollar[1].token.Value, "$")) yyVAL.node = expr.NewVariable(identifier) @@ -6987,11 +6993,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.VariableToken) } case 480: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:4008 + //line php7/php7.y:4015 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -6999,16 +7005,16 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IssetToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) if yyDollar[4].token != nil { - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CommaToken) } - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[5].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[5].token, comment.CloseParenthesisToken) } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4023 + //line php7/php7.y:4030 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -7016,13 +7022,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EmptyToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4035 + //line php7/php7.y:4042 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -7030,11 +7036,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncludeToken) } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4045 + //line php7/php7.y:4052 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -7042,11 +7048,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.IncludeOnceToken) } case 484: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4055 + //line php7/php7.y:4062 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -7054,13 +7060,13 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[2].token.Comments()) - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[4].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.EvalToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[2].token, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[4].token, comment.CloseParenthesisToken) } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4067 + //line php7/php7.y:4074 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -7068,11 +7074,11 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.RequireToken) } case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4077 + //line php7/php7.y:4084 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -7080,26 +7086,26 @@ yydefault: yylex.(*Parser).positions.AddPosition(yyVAL.node, yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) // save comments - yylex.(*Parser).comments.AddComments(yyVAL.node, yyDollar[1].token.Comments()) + yylex.(*Parser).comments.AddFromToken(yyVAL.node, yyDollar[1].token, comment.RequireOnceToken) } case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4090 + //line php7/php7.y:4097 { yyVAL.list = []node.Node{yyDollar[1].node} } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4092 + //line php7/php7.y:4099 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).comments.AddComments(lastNode(yyDollar[1].list), yyDollar[2].token.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode(yyDollar[1].list), yyDollar[2].token, comment.CommaToken) } case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4102 + //line php7/php7.y:4109 { yyVAL.node = yyDollar[1].node } diff --git a/php7/php7.y b/php7/php7.y index bb72887..60ee744 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -5,6 +5,7 @@ import ( "strings" "strconv" + "github.com/z7zmey/php-parser/comment" "github.com/z7zmey/php-parser/scanner" "github.com/z7zmey/php-parser/node" "github.com/z7zmey/php-parser/node/scalar" @@ -193,6 +194,7 @@ import ( %token '%' %token '<' %token '>' +%token '.' %left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE %left ',' @@ -340,7 +342,7 @@ namespace_name: yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments(namePart, $1.Comments()) + yylex.(*Parser).comments.AddFromToken(namePart, $1, comment.StringToken) } | namespace_name T_NS_SEPARATOR T_STRING { @@ -351,8 +353,8 @@ namespace_name: yylex.(*Parser).positions.AddPosition(namePart, yylex.(*Parser).positionBuilder.NewTokenPosition($3)) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) - yylex.(*Parser).comments.AddComments(namePart, $3.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken(namePart, $3, comment.StringToken) } ; @@ -372,8 +374,8 @@ name: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.NsSeparatorToken) } | T_NS_SEPARATOR namespace_name { @@ -383,7 +385,7 @@ name: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) } ; @@ -411,10 +413,10 @@ top_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.HaltCompilerToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) } | T_NAMESPACE namespace_name ';' { @@ -426,8 +428,8 @@ top_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_NAMESPACE namespace_name '{' top_statement_list '}' { @@ -439,9 +441,9 @@ top_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) - yylex.(*Parser).comments.AddComments($$, $5.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseCurlyBracesToken) } | T_NAMESPACE '{' top_statement_list '}' { @@ -451,9 +453,9 @@ top_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NamespaceToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) } | T_USE mixed_group_use_declaration ';' { @@ -463,8 +465,8 @@ top_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_USE use_type group_use_declaration ';' { @@ -474,8 +476,8 @@ top_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) } | T_USE use_declarations ';' { @@ -485,8 +487,8 @@ top_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_USE use_type use_declarations ';' { @@ -496,8 +498,8 @@ top_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) } | T_CONST const_list ';' { @@ -507,8 +509,8 @@ top_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } ; @@ -521,7 +523,7 @@ use_type: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.FunctionToken) } | T_CONST { @@ -531,7 +533,7 @@ use_type: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstToken) } ; @@ -546,12 +548,12 @@ group_use_declaration: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.OpenCurlyBracesToken) if $5 != nil { - yylex.(*Parser).comments.AddComments($$, $5.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.CommaToken) } - yylex.(*Parser).comments.AddComments($$, $6.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseCurlyBracesToken) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { @@ -563,13 +565,13 @@ group_use_declaration: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.OpenCurlyBracesToken) if $6 != nil { - yylex.(*Parser).comments.AddComments($$, $6.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.CommaToken) } - yylex.(*Parser).comments.AddComments($$, $7.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseCurlyBracesToken) } ; @@ -584,12 +586,12 @@ mixed_group_use_declaration: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.OpenCurlyBracesToken) if $5 != nil { - yylex.(*Parser).comments.AddComments($$, $5.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.CommaToken) } - yylex.(*Parser).comments.AddComments($$, $6.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseCurlyBracesToken) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { @@ -601,13 +603,13 @@ mixed_group_use_declaration: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.NsSeparatorToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.OpenCurlyBracesToken) if $6 != nil { - yylex.(*Parser).comments.AddComments($$, $6.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.CommaToken) } - yylex.(*Parser).comments.AddComments($$, $7.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseCurlyBracesToken) } ; @@ -624,7 +626,7 @@ inline_use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | inline_use_declaration { $$ = []node.Node{$1} } @@ -636,7 +638,7 @@ unprefixed_use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | unprefixed_use_declaration { $$ = []node.Node{$1} } @@ -648,7 +650,7 @@ use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | use_declaration { $$ = []node.Node{$1} } @@ -683,8 +685,8 @@ unprefixed_use_declaration: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments(alias, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(alias, $3, comment.StringToken) } ; @@ -696,7 +698,7 @@ use_declaration: $$ = $2; // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsSeparatorToken) } ; @@ -706,7 +708,7 @@ const_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | const_decl { $$ = []node.Node{$1} } @@ -747,10 +749,10 @@ inner_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.HaltCompilerToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) } statement: @@ -762,8 +764,8 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) } | if_stmt { $$ = $1; } @@ -781,9 +783,9 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5.node)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.WhileToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) } | T_DO statement T_WHILE '(' expr ')' ';' { @@ -793,11 +795,11 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) - yylex.(*Parser).comments.AddComments($$, $6.Comments()) - yylex.(*Parser).comments.AddComments($$, $7.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.WhileToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $7, comment.SemiColonToken) } | T_FOR '(' for_exprs ';' for_exprs ';' for_exprs ')' for_statement { @@ -811,11 +813,11 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9.node)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) - yylex.(*Parser).comments.AddComments($$, $6.Comments()) - yylex.(*Parser).comments.AddComments($$, $8.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ForToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.SemiColonToken) + yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseParenthesisToken) } | T_SWITCH '(' expr ')' switch_case_list { @@ -829,9 +831,9 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5.endToken)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.SwitchToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) } | T_BREAK optional_expr ';' { @@ -841,8 +843,8 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.BreakToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_CONTINUE optional_expr ';' { @@ -852,8 +854,8 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ContinueToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_RETURN optional_expr ';' { @@ -863,8 +865,8 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ReturnToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_GLOBAL global_var_list ';' { @@ -874,8 +876,8 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.GlobalToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_STATIC static_var_list ';' { @@ -885,8 +887,8 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_ECHO echo_expr_list ';' { @@ -896,8 +898,8 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.EchoToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_INLINE_HTML { @@ -907,7 +909,7 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.InlineHTMLToken) } | expr ';' { @@ -917,7 +919,7 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) } | T_UNSET '(' unset_variables possible_comma ')' ';' { @@ -927,13 +929,13 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.UnsetToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) if $4 != nil { - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CommaToken) } - yylex.(*Parser).comments.AddComments($$, $5.Comments()) - yylex.(*Parser).comments.AddComments($$, $6.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.SemiColonToken) } | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement { @@ -947,10 +949,10 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $7.node)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) - yylex.(*Parser).comments.AddComments($$, $6.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ForeachToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.AsToken) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseParenthesisToken) } | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement { @@ -964,11 +966,11 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9.node)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) - yylex.(*Parser).comments.AddComments($$, $6.Comments()) - yylex.(*Parser).comments.AddComments($$, $8.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ForeachToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.AsToken) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.DoubleArrowToken) + yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseParenthesisToken) } | T_DECLARE '(' const_list ')' declare_statement { @@ -978,9 +980,9 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DeclareToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) } | ';' { @@ -990,7 +992,7 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.SemiColonToken) } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { @@ -1003,9 +1005,9 @@ statement: } // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.TryToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) } | T_THROW expr ';' { @@ -1015,8 +1017,8 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ThrowToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_GOTO T_STRING ';' { @@ -1028,9 +1030,9 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments(label, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.GotoToken) + yylex.(*Parser).comments.AddFromToken(label, $2, comment.StringToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | T_STRING ':' { @@ -1042,8 +1044,8 @@ statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments(label, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken(label, $1, comment.StringToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.ColonToken) } catch_list: @@ -1062,12 +1064,12 @@ catch_list: yylex.(*Parser).positions.AddPosition(catch, yylex.(*Parser).positionBuilder.NewTokensPosition($2, $9)) // save comments - yylex.(*Parser).comments.AddComments(catch, $2.Comments()) - yylex.(*Parser).comments.AddComments(catch, $3.Comments()) - yylex.(*Parser).comments.AddComments(variable, $5.Comments()) - yylex.(*Parser).comments.AddComments(catch, $6.Comments()) - yylex.(*Parser).comments.AddComments(catch, $7.Comments()) - yylex.(*Parser).comments.AddComments(catch, $9.Comments()) + yylex.(*Parser).comments.AddFromToken(catch, $2, comment.CatchToken) + yylex.(*Parser).comments.AddFromToken(catch, $3, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(variable, $5, comment.StringToken) + yylex.(*Parser).comments.AddFromToken(catch, $6, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(catch, $7, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(catch, $9, comment.CloseCurlyBracesToken) } ; catch_name_list: @@ -1078,7 +1080,7 @@ catch_name_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.VerticalBarToken) } ; @@ -1093,9 +1095,9 @@ finally_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinallyToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) } ; @@ -1107,7 +1109,7 @@ unset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } ; @@ -1127,15 +1129,15 @@ function_declaration_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.FunctionToken) if $2.token != nil { - yylex.(*Parser).comments.AddComments($$, $2.token.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2.token, comment.AmpersandToken) } - yylex.(*Parser).comments.AddComments(name, $3.Comments()) - yylex.(*Parser).comments.AddComments(name, $5.Comments()) - yylex.(*Parser).comments.AddComments(name, $7.Comments()) - yylex.(*Parser).comments.AddComments(name, $9.Comments()) - yylex.(*Parser).comments.AddComments(name, $11.Comments()) + yylex.(*Parser).comments.AddFromToken(name, $3, comment.StringToken) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $9, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $11, comment.CloseCurlyBracesToken) } ; @@ -1164,16 +1166,16 @@ class_declaration_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $9)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments(name, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.ClassToken) + yylex.(*Parser).comments.AddFromToken(name, $3, comment.StringToken) if $4 != nil { - yylex.(*Parser).setCommentsFromChildNode($$, $4) + yylex.(*Parser).comments.AddFromChildNode($$, $4) } if $5 != nil { - yylex.(*Parser).setCommentsFromChildNode($$, firstNode($5)) + yylex.(*Parser).comments.AddFromChildNode($$, firstNode($5)) } - yylex.(*Parser).comments.AddComments($$, $7.Comments()) - yylex.(*Parser).comments.AddComments($$, $9.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $7, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $9, comment.CloseCurlyBracesToken) } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { @@ -1185,16 +1187,16 @@ class_declaration_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments(name, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassToken) + yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) if $3 != nil { - yylex.(*Parser).setCommentsFromChildNode($$, $3) + yylex.(*Parser).comments.AddFromChildNode($$, $3) } if $4 != nil { - yylex.(*Parser).setCommentsFromChildNode($$, firstNode($4)) + yylex.(*Parser).comments.AddFromChildNode($$, firstNode($4)) } - yylex.(*Parser).comments.AddComments($$, $6.Comments()) - yylex.(*Parser).comments.AddComments($$, $8.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseCurlyBracesToken) } ; @@ -1214,7 +1216,7 @@ class_modifier: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.AbstractToken) } | T_FINAL { @@ -1224,7 +1226,7 @@ class_modifier: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinalToken) } ; @@ -1239,10 +1241,10 @@ trait_declaration_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments(name, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) - yylex.(*Parser).comments.AddComments($$, $6.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.TraitToken) + yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseCurlyBracesToken) } ; @@ -1257,13 +1259,13 @@ interface_declaration_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments(name, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.InterfaceToken) + yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringToken) if $3 != nil { - yylex.(*Parser).setCommentsFromChildNode($$, firstNode($3)) + yylex.(*Parser).comments.AddFromChildNode($$, firstNode($3)) } - yylex.(*Parser).comments.AddComments($$, $5.Comments()) - yylex.(*Parser).comments.AddComments($$, $7.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseCurlyBracesToken) } ; @@ -1275,7 +1277,7 @@ extends_from: $$ = $2; // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExtendsToken) } ; @@ -1287,7 +1289,7 @@ interface_extends_list: $$ = $2; // save comments - yylex.(*Parser).comments.AddComments(firstNode($$), $1.Comments()) + yylex.(*Parser).comments.AddFromToken(firstNode($$), $1, comment.ExtendsToken) } ; @@ -1299,7 +1301,7 @@ implements_list: $$ = $2; // save comments - yylex.(*Parser).comments.AddComments(firstNode($$), $1.Comments()) + yylex.(*Parser).comments.AddFromToken(firstNode($$), $1, comment.ImplementsToken) } ; @@ -1314,7 +1316,7 @@ foreach_variable: yylex.(*Parser).positions.AddPosition($2, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($2, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($2, $1, comment.AmpersandToken) } | T_LIST '(' array_pair_list ')' { @@ -1325,9 +1327,9 @@ foreach_variable: yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments(list, $1.Comments()) - yylex.(*Parser).comments.AddComments(list, $2.Comments()) - yylex.(*Parser).comments.AddComments(list, $4.Comments()) + yylex.(*Parser).comments.AddFromToken(list, $1, comment.ListToken) + yylex.(*Parser).comments.AddFromToken(list, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(list, $4, comment.CloseParenthesisToken) } | '[' array_pair_list ']' { @@ -1338,8 +1340,8 @@ foreach_variable: yylex.(*Parser).positions.AddPosition(list, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments(list, $1.Comments()) - yylex.(*Parser).comments.AddComments(list, $3.Comments()) + yylex.(*Parser).comments.AddFromToken(list, $1, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken(list, $3, comment.CloseSquareBracket) } ; @@ -1354,9 +1356,9 @@ for_statement: yylex.(*Parser).positions.AddPosition($$.node, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$.node, $1.Comments()) - yylex.(*Parser).comments.AddComments($$.node, $3.Comments()) - yylex.(*Parser).comments.AddComments($$.node, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$.node, $1, comment.ColonToken) + yylex.(*Parser).comments.AddFromToken($$.node, $3, comment.EndforToken) + yylex.(*Parser).comments.AddFromToken($$.node, $4, comment.SemiColonToken) } ; @@ -1371,9 +1373,9 @@ foreach_statement: yylex.(*Parser).positions.AddPosition($$.node, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$.node, $1.Comments()) - yylex.(*Parser).comments.AddComments($$.node, $3.Comments()) - yylex.(*Parser).comments.AddComments($$.node, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$.node, $1, comment.ColonToken) + yylex.(*Parser).comments.AddFromToken($$.node, $3, comment.EndforeachToken) + yylex.(*Parser).comments.AddFromToken($$.node, $4, comment.SemiColonToken) } ; @@ -1388,9 +1390,9 @@ declare_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.EnddeclareToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) } ; @@ -1413,8 +1415,8 @@ case_list: yylex.(*Parser).positions.AddPosition(_case, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) // save comments - yylex.(*Parser).comments.AddComments(_case, $2.Comments()) - yylex.(*Parser).comments.AddComments(_case, $4.Comments()) + yylex.(*Parser).comments.AddFromToken(_case, $2, comment.CaseToken) + yylex.(*Parser).comments.AddFromToken(_case, $4, comment.CaseSeparatorToken) } | case_list T_DEFAULT case_separator inner_statement_list { @@ -1425,8 +1427,8 @@ case_list: yylex.(*Parser).positions.AddPosition(_default, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) // save comments - yylex.(*Parser).comments.AddComments(_default, $2.Comments()) - yylex.(*Parser).comments.AddComments(_default, $3.Comments()) + yylex.(*Parser).comments.AddFromToken(_default, $2, comment.DefaultToken) + yylex.(*Parser).comments.AddFromToken(_default, $3, comment.CaseSeparatorToken) } ; @@ -1448,9 +1450,9 @@ while_statement: yylex.(*Parser).positions.AddPosition($$.node, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$.node, $1.Comments()) - yylex.(*Parser).comments.AddComments($$.node, $3.Comments()) - yylex.(*Parser).comments.AddComments($$.node, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$.node, $1, comment.ColonToken) + yylex.(*Parser).comments.AddFromToken($$.node, $3, comment.EndwhileToken) + yylex.(*Parser).comments.AddFromToken($$.node, $4, comment.SemiColonToken) } ; @@ -1463,9 +1465,9 @@ if_stmt_without_else: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.IfToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) } | if_stmt_without_else T_ELSEIF '(' expr ')' statement { @@ -1477,9 +1479,9 @@ if_stmt_without_else: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) // save comments - yylex.(*Parser).comments.AddComments(_elseIf, $2.Comments()) - yylex.(*Parser).comments.AddComments(_elseIf, $3.Comments()) - yylex.(*Parser).comments.AddComments(_elseIf, $5.Comments()) + yylex.(*Parser).comments.AddFromToken(_elseIf, $2, comment.ElseifToken) + yylex.(*Parser).comments.AddFromToken(_elseIf, $3, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(_elseIf, $5, comment.CloseParenthesisToken) } ; @@ -1496,7 +1498,7 @@ if_stmt: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.ElseToken) } ; @@ -1511,10 +1513,10 @@ alt_if_stmt_without_else: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $6)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) - yylex.(*Parser).comments.AddComments($$, $5.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.IfToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.ColonToken) } | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { @@ -1527,10 +1529,10 @@ alt_if_stmt_without_else: yylex.(*Parser).positions.AddPosition(_elseIf, yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $7)) // save comments - yylex.(*Parser).comments.AddComments(_elseIf, $2.Comments()) - yylex.(*Parser).comments.AddComments(_elseIf, $3.Comments()) - yylex.(*Parser).comments.AddComments(_elseIf, $5.Comments()) - yylex.(*Parser).comments.AddComments(_elseIf, $6.Comments()) + yylex.(*Parser).comments.AddFromToken(_elseIf, $2, comment.ElseifToken) + yylex.(*Parser).comments.AddFromToken(_elseIf, $3, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(_elseIf, $5, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken(_elseIf, $6, comment.ColonToken) } ; @@ -1543,8 +1545,8 @@ alt_if_stmt: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.EndifToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { @@ -1558,10 +1560,10 @@ alt_if_stmt: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) // save comments - yylex.(*Parser).comments.AddComments(_else, $2.Comments()) - yylex.(*Parser).comments.AddComments(_else, $3.Comments()) - yylex.(*Parser).comments.AddComments($$, $5.Comments()) - yylex.(*Parser).comments.AddComments($$, $6.Comments()) + yylex.(*Parser).comments.AddFromToken(_else, $2, comment.ElseToken) + yylex.(*Parser).comments.AddFromToken(_else, $3, comment.ColonToken) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.EndifToken) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.SemiColonToken) } ; @@ -1580,7 +1582,7 @@ non_empty_parameter_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } ; @@ -1615,12 +1617,12 @@ parameter: // save comments if $2.value { - yylex.(*Parser).comments.AddComments($$, $2.token.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2.token, comment.AmpersandToken) } if $3.value { - yylex.(*Parser).comments.AddComments($$, $3.token.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $3.token, comment.EllipsisToken) } - yylex.(*Parser).comments.AddComments(variable, $4.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, $4, comment.VariableToken) } | optional_type is_reference is_variadic T_VARIABLE '=' expr { @@ -1651,13 +1653,13 @@ parameter: // save comments if $2.value { - yylex.(*Parser).comments.AddComments($$, $2.token.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2.token, comment.AmpersandToken) } if $3.value { - yylex.(*Parser).comments.AddComments($$, $3.token.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $3.token, comment.EllipsisToken) } - yylex.(*Parser).comments.AddComments(variable, $4.Comments()) - yylex.(*Parser).comments.AddComments($$, $5.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, $4, comment.VariableToken) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.EqualToken) } ; @@ -1679,7 +1681,7 @@ type_expr: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.QuestionMarkToken) } ; @@ -1692,7 +1694,7 @@ type: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) } | T_CALLABLE { @@ -1702,7 +1704,7 @@ type: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.CallableToken) } | name { $$ = $1; } @@ -1716,7 +1718,7 @@ return_type: $$ = $2; // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ColonToken) } ; @@ -1735,7 +1737,7 @@ non_empty_argument_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } ; @@ -1755,7 +1757,7 @@ argument: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.EllipsisToken) } ; @@ -1765,7 +1767,7 @@ global_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | global_var { $$ = []node.Node{$1} } @@ -1782,7 +1784,7 @@ static_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | static_var { $$ = []node.Node{$1} } @@ -1801,7 +1803,7 @@ static_var: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) } | T_VARIABLE '=' expr { @@ -1815,8 +1817,8 @@ static_var: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments(variable, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) } ; @@ -1836,7 +1838,7 @@ class_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.SemiColonToken) } | method_modifiers T_CONST class_const_list ';' { @@ -1846,8 +1848,8 @@ class_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.ConstToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.SemiColonToken) } | T_USE name_list trait_adaptations { @@ -1857,7 +1859,7 @@ class_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3.endToken)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.UseToken) } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { @@ -1869,13 +1871,13 @@ class_statement: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $10.endToken)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.FunctionToken) if $3.value { - yylex.(*Parser).comments.AddComments($$, $3.token.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $3.token, comment.AmpersandToken) } - yylex.(*Parser).comments.AddComments(name, $4.Comments()) - yylex.(*Parser).comments.AddComments($$, $6.Comments()) - yylex.(*Parser).comments.AddComments($$, $8.Comments()) + yylex.(*Parser).comments.AddFromToken(name, $4, comment.IdentifierToken) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseParenthesisToken) } ; @@ -1887,7 +1889,7 @@ name_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } ; @@ -1913,14 +1915,14 @@ trait_adaptation: $$ = $1; // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) } | trait_alias ';' { $$ = $1; // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.SemiColonToken) } ; @@ -1933,7 +1935,7 @@ trait_precedence: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.InsteadofToken) } ; @@ -1948,8 +1950,8 @@ trait_alias: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments(alias, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(alias, $3, comment.StringToken) } | trait_method_reference T_AS reserved_non_modifiers { @@ -1961,8 +1963,8 @@ trait_alias: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments(alias, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(alias, $3, comment.StringToken) } | trait_method_reference T_AS member_modifier identifier { @@ -1974,8 +1976,8 @@ trait_alias: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments(alias, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) + yylex.(*Parser).comments.AddFromToken(alias, $4, comment.IdentifierToken) } | trait_method_reference T_AS member_modifier { @@ -1985,7 +1987,7 @@ trait_alias: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsToken) } ; @@ -2000,7 +2002,7 @@ trait_method_reference: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments(name, $1.Comments()) + yylex.(*Parser).comments.AddFromToken(name, $1, comment.IdentifierToken) } | absolute_trait_method_reference { $$ = $1; } @@ -2017,8 +2019,8 @@ absolute_trait_method_reference: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + yylex.(*Parser).comments.AddFromToken(target, $3, comment.IdentifierToken) } ; @@ -2039,7 +2041,7 @@ variable_modifiers: yylex.(*Parser).positions.AddPosition(modifier, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments(modifier, $1.Comments()) + yylex.(*Parser).comments.AddFromToken(modifier, $1, comment.VarToken) } ; @@ -2066,7 +2068,7 @@ member_modifier: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.PublicToken) } | T_PROTECTED { @@ -2076,7 +2078,7 @@ member_modifier: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ProtectedToken) } | T_PRIVATE { @@ -2086,7 +2088,7 @@ member_modifier: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.PrivateToken) } | T_STATIC { @@ -2096,7 +2098,7 @@ member_modifier: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) } | T_ABSTRACT { @@ -2106,7 +2108,7 @@ member_modifier: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.AbstractToken) } | T_FINAL { @@ -2116,7 +2118,7 @@ member_modifier: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.FinalToken) } ; @@ -2126,7 +2128,7 @@ property_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | property { $$ = []node.Node{$1} } @@ -2145,7 +2147,7 @@ property: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) } | T_VARIABLE '=' expr backup_doc_comment { @@ -2159,8 +2161,8 @@ property: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments(variable, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) } ; @@ -2170,7 +2172,7 @@ class_const_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | class_const_decl { $$ = []node.Node{$1} } @@ -2187,8 +2189,8 @@ class_const_decl: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments(name, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken(name, $1, comment.IdentifierToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) } ; @@ -2203,8 +2205,8 @@ const_decl: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments(name, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken(name, $1, comment.StringToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) } ; @@ -2214,7 +2216,7 @@ echo_expr_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | echo_expr { $$ = []node.Node{$1} } @@ -2238,7 +2240,7 @@ non_empty_for_exprs: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | expr { $$ = []node.Node{$1} } @@ -2257,15 +2259,15 @@ anonymous_class: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassToken) if $3 != nil { - yylex.(*Parser).setCommentsFromChildNode($$, $3) + yylex.(*Parser).comments.AddFromChildNode($$, $3) } if $4 != nil { - yylex.(*Parser).setCommentsFromChildNode($$, firstNode($4)) + yylex.(*Parser).comments.AddFromChildNode($$, firstNode($4)) } - yylex.(*Parser).comments.AddComments($$, $6.Comments()) - yylex.(*Parser).comments.AddComments($$, $8.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $8, comment.CloseCurlyBracesToken) } ; @@ -2281,7 +2283,7 @@ new_expr: } // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NewToken) } | T_NEW anonymous_class { @@ -2291,7 +2293,7 @@ new_expr: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NewToken) } ; @@ -2306,10 +2308,10 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) // save comments - yylex.(*Parser).comments.AddComments(list, $1.Comments()) - yylex.(*Parser).comments.AddComments(list, $2.Comments()) - yylex.(*Parser).comments.AddComments(list, $4.Comments()) - yylex.(*Parser).comments.AddComments($$, $5.Comments()) + yylex.(*Parser).comments.AddFromToken(list, $1, comment.ListToken) + yylex.(*Parser).comments.AddFromToken(list, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(list, $4, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.EqualToken) } | '[' array_pair_list ']' '=' expr { @@ -2321,9 +2323,9 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) // save comments - yylex.(*Parser).comments.AddComments(shortList, $1.Comments()) - yylex.(*Parser).comments.AddComments(shortList, $3.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken(shortList, $1, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken(shortList, $3, comment.CloseSquareBracket) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.EqualToken) } | variable '=' expr { @@ -2333,7 +2335,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) } | variable '=' '&' expr { @@ -2343,8 +2345,8 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.EqualToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.AmpersandToken) } | T_CLONE expr { @@ -2354,7 +2356,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.CloneToken) } | variable T_PLUS_EQUAL expr { @@ -2364,7 +2366,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusEqualToken) } | variable T_MINUS_EQUAL expr { @@ -2374,7 +2376,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusEqualToken) } | variable T_MUL_EQUAL expr { @@ -2384,7 +2386,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.MulEqualToken) } | variable T_POW_EQUAL expr { @@ -2394,7 +2396,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowEqualToken) } | variable T_DIV_EQUAL expr { @@ -2404,7 +2406,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.DivEqualToken) } | variable T_CONCAT_EQUAL expr { @@ -2414,7 +2416,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.ConcatEqualToken) } | variable T_MOD_EQUAL expr { @@ -2424,7 +2426,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.ModEqualToken) } | variable T_AND_EQUAL expr { @@ -2434,7 +2436,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.AndEqualToken) } | variable T_OR_EQUAL expr { @@ -2444,7 +2446,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OrEqualToken) } | variable T_XOR_EQUAL expr { @@ -2454,7 +2456,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.XorEqualToken) } | variable T_SL_EQUAL expr { @@ -2464,7 +2466,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlEqualToken) } | variable T_SR_EQUAL expr { @@ -2474,7 +2476,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrEqualToken) } | variable T_INC { @@ -2484,7 +2486,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.IncToken) } | T_INC variable { @@ -2494,7 +2496,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncToken) } | variable T_DEC { @@ -2504,7 +2506,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.DecToken) } | T_DEC variable { @@ -2514,7 +2516,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DecToken) } | expr T_BOOLEAN_OR expr { @@ -2524,7 +2526,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanOrToken) } | expr T_BOOLEAN_AND expr { @@ -2534,7 +2536,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.BooleanAndToken) } | expr T_LOGICAL_OR expr { @@ -2544,7 +2546,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalOrToken) } | expr T_LOGICAL_AND expr { @@ -2554,7 +2556,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalAndToken) } | expr T_LOGICAL_XOR expr { @@ -2564,7 +2566,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.LogicalXorToken) } | expr '|' expr { @@ -2574,7 +2576,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.VerticalBarToken) } | expr '&' expr { @@ -2584,7 +2586,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.AmpersandToken) } | expr '^' expr { @@ -2594,12 +2596,17 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.CaretToken) } | expr '.' expr { $$ = binary.NewConcat($1, $3) + + // save position yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + + // save comments + yylex.(*Parser).comments.AddFromToken($$, $2, comment.DotToken) } | expr '+' expr { @@ -2609,7 +2616,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PlusToken) } | expr '-' expr { @@ -2619,7 +2626,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.MinusToken) } | expr '*' expr { @@ -2629,7 +2636,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.AsteriskToken) } | expr T_POW expr { @@ -2639,7 +2646,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PowToken) } | expr '/' expr { @@ -2649,7 +2656,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlashToken) } | expr '%' expr { @@ -2659,7 +2666,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PercentToken) } | expr T_SL expr { @@ -2669,7 +2676,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.SlToken) } | expr T_SR expr { @@ -2679,7 +2686,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.SrToken) } | '+' expr %prec T_INC { @@ -2689,7 +2696,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.PlusToken) } | '-' expr %prec T_INC { @@ -2699,7 +2706,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.MinusToken) } | '!' expr { @@ -2709,7 +2716,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExclamationMarkToken) } | '~' expr { @@ -2719,7 +2726,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.TildeToken) } | expr T_IS_IDENTICAL expr { @@ -2729,7 +2736,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsIdenticalToken) } | expr T_IS_NOT_IDENTICAL expr { @@ -2739,7 +2746,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotIdenticalToken) } | expr T_IS_EQUAL expr { @@ -2749,7 +2756,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsEqualToken) } | expr T_IS_NOT_EQUAL expr { @@ -2759,7 +2766,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsNotEqualToken) } | expr '<' expr { @@ -2769,7 +2776,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.LessToken) } | expr T_IS_SMALLER_OR_EQUAL expr { @@ -2779,7 +2786,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsSmallerOrEqualToken) } | expr '>' expr { @@ -2789,7 +2796,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.GreaterToken) } | expr T_IS_GREATER_OR_EQUAL expr { @@ -2799,7 +2806,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.IsGreaterOrEqualToken) } | expr T_SPACESHIP expr { @@ -2809,7 +2816,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.SpaceshipToken) } | expr T_INSTANCEOF class_name_reference { @@ -2819,15 +2826,15 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.InstanceofToken) } | '(' expr ')' { $$ = $2; // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) } | new_expr { $$ = $1; } @@ -2839,8 +2846,8 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.ColonToken) } | expr '?' ':' expr { @@ -2850,8 +2857,8 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.QuestionMarkToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.ColonToken) } | expr T_COALESCE expr { @@ -2861,7 +2868,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.CoalesceToken) } | internal_functions_in_yacc { $$ = $1} @@ -2873,7 +2880,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.IntCastToken) } | T_DOUBLE_CAST expr { @@ -2883,7 +2890,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleCastToken) } | T_STRING_CAST expr { @@ -2893,7 +2900,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringCastToken) } | T_ARRAY_CAST expr { @@ -2903,7 +2910,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayCastToken) } | T_OBJECT_CAST expr { @@ -2913,7 +2920,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ObjectCastToken) } | T_BOOL_CAST expr { @@ -2923,7 +2930,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.BoolCastToken) } | T_UNSET_CAST expr { @@ -2933,7 +2940,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.UnsetCastToken) } | T_EXIT exit_expr { @@ -2947,7 +2954,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ExitToken) } | '@' expr { @@ -2957,7 +2964,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.AtToken) } | scalar { $$ = $1; } @@ -2969,8 +2976,8 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.BackquoteToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.BackquoteToken) } | T_PRINT expr { @@ -2980,7 +2987,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.PrintToken) } | T_YIELD { @@ -2990,7 +2997,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) } | T_YIELD expr { @@ -3000,7 +3007,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) } | T_YIELD expr T_DOUBLE_ARROW expr { @@ -3010,8 +3017,8 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.DoubleArrowToken) } | T_YIELD_FROM expr { @@ -3021,7 +3028,7 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.YieldFromToken) } | T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { @@ -3031,14 +3038,14 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.FunctionToken) if $2.value { - yylex.(*Parser).comments.AddComments($$, $2.token.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2.token, comment.AmpersandToken) } - yylex.(*Parser).comments.AddComments($$, $4.Comments()) - yylex.(*Parser).comments.AddComments($$, $6.Comments()) - yylex.(*Parser).comments.AddComments($$, $9.Comments()) - yylex.(*Parser).comments.AddComments($$, $11.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $9, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $11, comment.CloseCurlyBracesToken) } | T_STATIC T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { @@ -3048,15 +3055,15 @@ expr_without_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $12)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.FunctionToken) if $3.value { - yylex.(*Parser).comments.AddComments($$, $3.token.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $3.token, comment.AmpersandToken) } - yylex.(*Parser).comments.AddComments($$, $5.Comments()) - yylex.(*Parser).comments.AddComments($$, $7.Comments()) - yylex.(*Parser).comments.AddComments($$, $10.Comments()) - yylex.(*Parser).comments.AddComments($$, $12.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $7, comment.CloseParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $10, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $12, comment.CloseCurlyBracesToken) } ; @@ -3088,7 +3095,7 @@ lexical_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | lexical_var { $$ = []node.Node{$1} } @@ -3107,7 +3114,7 @@ lexical_var: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments(variable, $1.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) } | '&' T_VARIABLE { @@ -3121,8 +3128,8 @@ lexical_var: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments(variable, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.AmpersandToken) + yylex.(*Parser).comments.AddFromToken(variable, $2, comment.VariableToken) } ; @@ -3142,7 +3149,7 @@ function_call: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4.endToken)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { @@ -3152,7 +3159,7 @@ function_call: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4.endToken)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) } | callable_expr argument_list { @@ -3172,7 +3179,7 @@ class_name: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.StaticToken) } | name { $$ = $1; } @@ -3217,9 +3224,9 @@ dereferencable_scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ArrayToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) } | '[' array_pair_list ']' { @@ -3229,8 +3236,8 @@ dereferencable_scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseSquareBracket) } | T_CONSTANT_ENCAPSED_STRING { @@ -3240,7 +3247,7 @@ dereferencable_scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ConstantEncapsedStringToken) } ; @@ -3253,7 +3260,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.LnumberToken) } | T_DNUMBER { @@ -3263,7 +3270,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DnumberToken) } | T_LINE { @@ -3273,7 +3280,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.LineToken) } | T_FILE { @@ -3283,7 +3290,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.FileToken) } | T_DIR { @@ -3293,7 +3300,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DirToken) } | T_TRAIT_C { @@ -3303,7 +3310,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.TraitCToken) } | T_METHOD_C { @@ -3313,7 +3320,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.MethodCToken) } | T_FUNC_C { @@ -3323,7 +3330,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.FuncCToken) } | T_NS_C { @@ -3333,7 +3340,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NsCToken) } | T_CLASS_C { @@ -3343,7 +3350,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.ClassCToken) } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { @@ -3355,7 +3362,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) } | T_START_HEREDOC T_END_HEREDOC { @@ -3365,7 +3372,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) } | '"' encaps_list '"' { @@ -3375,7 +3382,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DoubleQuoteToken) } | T_START_HEREDOC encaps_list T_END_HEREDOC { @@ -3385,7 +3392,7 @@ scalar: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.StartHeredocToken) } | dereferencable_scalar { $$ = $1; } @@ -3411,8 +3418,8 @@ constant: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + yylex.(*Parser).comments.AddFromToken(target, $3, comment.IdentifierToken) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { @@ -3424,8 +3431,8 @@ constant: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments(target, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) + yylex.(*Parser).comments.AddFromToken(target, $3, comment.IdentifierToken) } ; @@ -3456,8 +3463,8 @@ dereferencable: $$ = $2; // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) } | dereferencable_scalar { $$ = $1; } @@ -3471,8 +3478,8 @@ callable_expr: $$ = $2; // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseParenthesisToken) } | dereferencable_scalar { $$ = $1; } @@ -3489,8 +3496,8 @@ callable_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) } | constant '[' optional_expr ']' { @@ -3500,8 +3507,8 @@ callable_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) } | dereferencable '{' expr '}' { @@ -3511,8 +3518,8 @@ callable_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) } | dereferencable T_OBJECT_OPERATOR property_name argument_list { @@ -3522,7 +3529,7 @@ callable_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4.endToken)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) } | function_call { $$ = $1; } @@ -3541,7 +3548,7 @@ variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) } ; @@ -3556,7 +3563,7 @@ simple_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) } | '$' '{' expr '}' { @@ -3566,9 +3573,9 @@ simple_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) } | '$' simple_variable { @@ -3578,7 +3585,7 @@ simple_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarToken) } ; @@ -3591,7 +3598,7 @@ static_member: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { @@ -3601,7 +3608,7 @@ static_member: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) } ; @@ -3616,8 +3623,8 @@ new_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) } | new_variable '{' expr '}' { @@ -3627,8 +3634,8 @@ new_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseCurlyBracesToken) } | new_variable T_OBJECT_OPERATOR property_name { @@ -3638,7 +3645,7 @@ new_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { @@ -3648,7 +3655,7 @@ new_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) } | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { @@ -3658,7 +3665,7 @@ new_variable: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.PaamayimNekudotayimToken) } ; @@ -3671,15 +3678,15 @@ member_name: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.IdentifierToken) } | '{' expr '}' { $$ = $2; // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) } | simple_variable { $$ = $1 } @@ -3694,15 +3701,15 @@ property_name: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringToken) } | '{' expr '}' { $$ = $2; // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.OpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) } | simple_variable { $$ = $1 } @@ -3732,7 +3739,7 @@ non_empty_array_pair_list: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } | possible_array_pair { $$ = []node.Node{$1} } @@ -3747,7 +3754,7 @@ array_pair: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.DoubleArrowToken) } | expr { @@ -3764,8 +3771,8 @@ array_pair: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.DoubleArrowToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.AmpersandToken) } | '&' variable { @@ -3775,7 +3782,7 @@ array_pair: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.AmpersandToken) } | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { @@ -3788,10 +3795,10 @@ array_pair: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) // save comments - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments(list, $3.Comments()) - yylex.(*Parser).comments.AddComments(list, $4.Comments()) - yylex.(*Parser).comments.AddComments(list, $6.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.DoubleArrowToken) + yylex.(*Parser).comments.AddFromToken(list, $3, comment.ListToken) + yylex.(*Parser).comments.AddFromToken(list, $4, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(list, $6, comment.CloseParenthesisToken) } | T_LIST '(' array_pair_list ')' { @@ -3804,9 +3811,9 @@ array_pair: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments(list, $1.Comments()) - yylex.(*Parser).comments.AddComments(list, $2.Comments()) - yylex.(*Parser).comments.AddComments(list, $4.Comments()) + yylex.(*Parser).comments.AddFromToken(list, $1, comment.ListToken) + yylex.(*Parser).comments.AddFromToken(list, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken(list, $4, comment.CloseParenthesisToken) } ; @@ -3822,7 +3829,7 @@ encaps_list: yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($2)) // save comments - yylex.(*Parser).comments.AddComments(encapsed, $2.Comments()) + yylex.(*Parser).comments.AddFromToken(encapsed, $2, comment.EncapsedAndWhitespaceToken) } | encaps_var { $$ = []node.Node{$1} } @@ -3835,7 +3842,7 @@ encaps_list: yylex.(*Parser).positions.AddPosition(encapsed, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments(encapsed, $1.Comments()) + yylex.(*Parser).comments.AddFromToken(encapsed, $1, comment.EncapsedAndWhitespaceToken) } ; @@ -3850,7 +3857,7 @@ encaps_var: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) } | T_VARIABLE '[' encaps_var_offset ']' { @@ -3864,9 +3871,9 @@ encaps_var: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments(variable, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseSquareBracket) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { @@ -3882,9 +3889,9 @@ encaps_var: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments(variable, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments(fetch, $3.Comments()) + yylex.(*Parser).comments.AddFromToken(variable, $1, comment.VariableToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.ObjectOperatorToken) + yylex.(*Parser).comments.AddFromToken(fetch, $3, comment.StringToken) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { @@ -3894,8 +3901,8 @@ encaps_var: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { @@ -3907,9 +3914,9 @@ encaps_var: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments(name, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(name, $2, comment.StringVarnameToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.CloseCurlyBracesToken) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { @@ -3923,11 +3930,11 @@ encaps_var: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments(variable, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $3.Comments()) - yylex.(*Parser).comments.AddComments($$, $5.Comments()) - yylex.(*Parser).comments.AddComments($$, $6.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.DollarOpenCurlyBracesToken) + yylex.(*Parser).comments.AddFromToken(variable, $2, comment.StringVarnameToken) + yylex.(*Parser).comments.AddFromToken($$, $3, comment.OpenSquareBracket) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseSquareBracket) + yylex.(*Parser).comments.AddFromToken($$, $6, comment.CloseCurlyBracesToken) } | T_CURLY_OPEN variable '}' { @@ -3943,7 +3950,7 @@ encaps_var_offset: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.StringToken) } | T_NUM_STRING { @@ -3958,7 +3965,7 @@ encaps_var_offset: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.NumStringToken) } | '-' T_NUM_STRING { @@ -3982,11 +3989,11 @@ encaps_var_offset: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.MinusToken) if isInt { - yylex.(*Parser).comments.AddComments(lnumber, $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lnumber, $2, comment.NumStringToken) } else { - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.NumStringToken) } } | T_VARIABLE @@ -3999,7 +4006,7 @@ encaps_var_offset: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenPosition($1)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.VariableToken) } ; @@ -4012,12 +4019,12 @@ internal_functions_in_yacc: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.IssetToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) if $4 != nil { - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CommaToken) } - yylex.(*Parser).comments.AddComments($$, $5.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $5, comment.CloseParenthesisToken) } | T_EMPTY '(' expr ')' { @@ -4027,9 +4034,9 @@ internal_functions_in_yacc: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.EmptyToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) } | T_INCLUDE expr { @@ -4039,7 +4046,7 @@ internal_functions_in_yacc: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncludeToken) } | T_INCLUDE_ONCE expr { @@ -4049,7 +4056,7 @@ internal_functions_in_yacc: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.IncludeOnceToken) } | T_EVAL '(' expr ')' { @@ -4059,9 +4066,9 @@ internal_functions_in_yacc: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) - yylex.(*Parser).comments.AddComments($$, $2.Comments()) - yylex.(*Parser).comments.AddComments($$, $4.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.EvalToken) + yylex.(*Parser).comments.AddFromToken($$, $2, comment.OpenParenthesisToken) + yylex.(*Parser).comments.AddFromToken($$, $4, comment.CloseParenthesisToken) } | T_REQUIRE expr { @@ -4071,7 +4078,7 @@ internal_functions_in_yacc: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.RequireToken) } | T_REQUIRE_ONCE expr { @@ -4081,7 +4088,7 @@ internal_functions_in_yacc: yylex.(*Parser).positions.AddPosition($$, yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) // save comments - yylex.(*Parser).comments.AddComments($$, $1.Comments()) + yylex.(*Parser).comments.AddFromToken($$, $1, comment.RequireOnceToken) } ; @@ -4093,7 +4100,7 @@ isset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).comments.AddComments(lastNode($1), $2.Comments()) + yylex.(*Parser).comments.AddFromToken(lastNode($1), $2, comment.CommaToken) } ;