From 9b122de8bf290a30c98832b93a1129bc832e7519 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 1 Dec 2020 11:58:09 +0200 Subject: [PATCH] [refactoring] update ast structure of "Eval", "Exit", "FunctionCall", "Include" and "IncludeOnce" nodes --- internal/php5/php5.go | 1284 +++++++++++++++++---------------- internal/php5/php5.y | 148 ++-- internal/php7/php7.go | 1082 ++++++++++++++------------- internal/php7/php7.y | 98 ++- pkg/ast/node.go | 23 +- pkg/ast/traverser/dfs.go | 10 +- pkg/ast/visitor/dump.go | 5 - pkg/printer/pretty_printer.go | 8 +- pkg/printer/printer.go | 10 +- 9 files changed, 1333 insertions(+), 1335 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index f22f338..9b23a93 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -8,7 +8,6 @@ import __yyfmt__ "fmt" // line internal/php5/php5.y:2 import ( - "bytes" "strconv" "github.com/z7zmey/php-parser/internal/position" @@ -16,7 +15,7 @@ import ( "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/php5/php5.y:15 +// line internal/php5/php5.y:14 type yySymType struct { yys int node ast.Vertex @@ -344,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6520 +// line internal/php5/php5.y:6524 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2323,7 +2322,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:271 +// line internal/php5/php5.y:270 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2332,7 +2331,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:281 +// line internal/php5/php5.y:280 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2345,13 +2344,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:292 +// line internal/php5/php5.y:291 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:299 +// line internal/php5/php5.y:298 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2365,7 +2364,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:311 +// line internal/php5/php5.y:310 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2378,32 +2377,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:325 +// line internal/php5/php5.y:324 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:330 +// line internal/php5/php5.y:329 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 +// line internal/php5/php5.y:333 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 +// line internal/php5/php5.y:337 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:342 +// line internal/php5/php5.y:341 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2417,7 +2416,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:354 +// line internal/php5/php5.y:353 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2435,7 +2434,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:370 +// line internal/php5/php5.y:369 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2455,7 +2454,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:388 +// line internal/php5/php5.y:387 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2469,7 +2468,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:400 +// line internal/php5/php5.y:399 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2482,7 +2481,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:411 +// line internal/php5/php5.y:410 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2502,7 +2501,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:429 +// line internal/php5/php5.y:428 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2522,7 +2521,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:447 +// line internal/php5/php5.y:446 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2530,7 +2529,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:456 +// line internal/php5/php5.y:455 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2538,13 +2537,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:462 +// line internal/php5/php5.y:461 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:469 +// line internal/php5/php5.y:468 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2560,7 +2559,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:483 +// line internal/php5/php5.y:482 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2584,7 +2583,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:505 +// line internal/php5/php5.y:504 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2601,7 +2600,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:520 +// line internal/php5/php5.y:519 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2626,7 +2625,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:546 +// line internal/php5/php5.y:545 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2634,13 +2633,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:552 +// line internal/php5/php5.y:551 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:559 +// line internal/php5/php5.y:558 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2656,7 +2655,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:573 +// line internal/php5/php5.y:572 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2680,7 +2679,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:595 +// line internal/php5/php5.y:594 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2697,7 +2696,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:610 +// line internal/php5/php5.y:609 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2722,7 +2721,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:636 +// line internal/php5/php5.y:635 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2730,13 +2729,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:642 +// line internal/php5/php5.y:641 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:649 +// line internal/php5/php5.y:648 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2752,7 +2751,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:663 +// line internal/php5/php5.y:662 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2776,7 +2775,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:685 +// line internal/php5/php5.y:684 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2793,7 +2792,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:700 +// line internal/php5/php5.y:699 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2818,7 +2817,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:726 +// line internal/php5/php5.y:725 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2844,7 +2843,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:750 +// line internal/php5/php5.y:749 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2873,7 +2872,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:780 +// line internal/php5/php5.y:779 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2886,38 +2885,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:791 +// line internal/php5/php5.y:790 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:799 +// line internal/php5/php5.y:798 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:804 +// line internal/php5/php5.y:803 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:808 +// line internal/php5/php5.y:807 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:812 +// line internal/php5/php5.y:811 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:816 +// line internal/php5/php5.y:815 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2931,13 +2930,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:832 +// line internal/php5/php5.y:831 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:836 +// line internal/php5/php5.y:835 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2955,7 +2954,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:855 +// line internal/php5/php5.y:854 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2968,7 +2967,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:866 +// line internal/php5/php5.y:865 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2992,7 +2991,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:888 +// line internal/php5/php5.y:887 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3018,7 +3017,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:912 +// line internal/php5/php5.y:911 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3030,7 +3029,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:922 +// line internal/php5/php5.y:921 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3047,7 +3046,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:937 +// line internal/php5/php5.y:936 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3063,7 +3062,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:951 +// line internal/php5/php5.y:950 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3075,7 +3074,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:961 +// line internal/php5/php5.y:960 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3087,7 +3086,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:971 +// line internal/php5/php5.y:970 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3100,7 +3099,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:982 +// line internal/php5/php5.y:981 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3112,7 +3111,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:992 +// line internal/php5/php5.y:991 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3125,7 +3124,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1003 +// line internal/php5/php5.y:1002 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3137,7 +3136,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1013 +// line internal/php5/php5.y:1012 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3150,7 +3149,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1024 +// line internal/php5/php5.y:1023 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3163,7 +3162,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1035 +// line internal/php5/php5.y:1034 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3175,7 +3174,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1045 +// line internal/php5/php5.y:1044 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3186,7 +3185,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1054 +// line internal/php5/php5.y:1053 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3197,7 +3196,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1063 +// line internal/php5/php5.y:1062 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3207,7 +3206,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1071 +// line internal/php5/php5.y:1070 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3219,7 +3218,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1081 +// line internal/php5/php5.y:1080 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3231,7 +3230,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1091 +// line internal/php5/php5.y:1090 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3243,7 +3242,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1101 +// line internal/php5/php5.y:1100 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3263,7 +3262,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1119 +// line internal/php5/php5.y:1118 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3283,7 +3282,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1137 +// line internal/php5/php5.y:1136 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3296,7 +3295,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1148 +// line internal/php5/php5.y:1147 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3307,7 +3306,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1157 +// line internal/php5/php5.y:1156 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3326,7 +3325,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1174 +// line internal/php5/php5.y:1173 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3339,7 +3338,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1185 +// line internal/php5/php5.y:1184 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3358,13 +3357,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1205 +// line internal/php5/php5.y:1204 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1209 +// line internal/php5/php5.y:1208 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3397,13 +3396,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1243 +// line internal/php5/php5.y:1242 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1247 +// line internal/php5/php5.y:1246 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3417,31 +3416,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1262 +// line internal/php5/php5.y:1261 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1266 +// line internal/php5/php5.y:1265 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1273 +// line internal/php5/php5.y:1272 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1277 +// line internal/php5/php5.y:1276 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1284 +// line internal/php5/php5.y:1283 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3473,7 +3472,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1317 +// line internal/php5/php5.y:1316 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3481,7 +3480,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1323 +// line internal/php5/php5.y:1322 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3490,49 +3489,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1333 +// line internal/php5/php5.y:1332 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1340 +// line internal/php5/php5.y:1339 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1347 +// line internal/php5/php5.y:1346 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1354 +// line internal/php5/php5.y:1353 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1358 +// line internal/php5/php5.y:1357 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1365 +// line internal/php5/php5.y:1364 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1369 +// line internal/php5/php5.y:1368 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1376 +// line internal/php5/php5.y:1375 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3557,7 +3556,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1402 +// line internal/php5/php5.y:1401 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3594,7 +3593,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1437 +// line internal/php5/php5.y:1436 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3616,7 +3615,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1461 +// line internal/php5/php5.y:1460 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3627,7 +3626,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1470 +// line internal/php5/php5.y:1469 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,7 +3646,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1488 +// line internal/php5/php5.y:1487 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3658,7 +3657,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1497 +// line internal/php5/php5.y:1496 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3678,13 +3677,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1518 +// line internal/php5/php5.y:1517 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1522 +// line internal/php5/php5.y:1521 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3696,19 +3695,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1535 +// line internal/php5/php5.y:1534 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1542 +// line internal/php5/php5.y:1541 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1546 +// line internal/php5/php5.y:1545 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3721,13 +3720,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1560 +// line internal/php5/php5.y:1559 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1564 +// line internal/php5/php5.y:1563 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3740,7 +3739,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1578 +// line internal/php5/php5.y:1577 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3748,7 +3747,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1584 +// line internal/php5/php5.y:1583 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3757,13 +3756,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1594 +// line internal/php5/php5.y:1593 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1598 +// line internal/php5/php5.y:1597 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3772,13 +3771,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1608 +// line internal/php5/php5.y:1607 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1612 +// line internal/php5/php5.y:1611 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3790,7 +3789,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1622 +// line internal/php5/php5.y:1621 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3812,7 +3811,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1645 +// line internal/php5/php5.y:1644 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3823,7 +3822,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1654 +// line internal/php5/php5.y:1653 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3843,7 +3842,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1675 +// line internal/php5/php5.y:1674 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3854,7 +3853,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1684 +// line internal/php5/php5.y:1683 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3874,7 +3873,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1706 +// line internal/php5/php5.y:1705 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3885,7 +3884,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1715 +// line internal/php5/php5.y:1714 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3905,7 +3904,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1737 +// line internal/php5/php5.y:1736 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3930,7 +3929,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1760 +// line internal/php5/php5.y:1759 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3957,7 +3956,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1789 +// line internal/php5/php5.y:1788 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3969,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1800 +// line internal/php5/php5.y:1799 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3984,7 +3983,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1812 +// line internal/php5/php5.y:1811 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3999,7 +3998,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1825 +// line internal/php5/php5.y:1824 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4015,13 +4014,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1843 +// line internal/php5/php5.y:1842 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1847 +// line internal/php5/php5.y:1846 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4035,7 +4034,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1859 +// line internal/php5/php5.y:1858 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4048,19 +4047,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1874 +// line internal/php5/php5.y:1873 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1878 +// line internal/php5/php5.y:1877 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1886 +// line internal/php5/php5.y:1885 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4071,7 +4070,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1895 +// line internal/php5/php5.y:1894 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4091,13 +4090,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1918 +// line internal/php5/php5.y:1917 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1922 +// line internal/php5/php5.y:1921 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4112,13 +4111,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1939 +// line internal/php5/php5.y:1938 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1943 +// line internal/php5/php5.y:1942 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4140,13 +4139,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1967 +// line internal/php5/php5.y:1966 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1971 +// line internal/php5/php5.y:1970 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4158,13 +4157,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1985 +// line internal/php5/php5.y:1984 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1989 +// line internal/php5/php5.y:1988 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4183,25 +4182,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2010 +// line internal/php5/php5.y:2009 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2014 +// line internal/php5/php5.y:2013 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2021 +// line internal/php5/php5.y:2020 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2025 +// line internal/php5/php5.y:2024 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4210,7 +4209,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2035 +// line internal/php5/php5.y:2034 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4264,7 +4263,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2087 +// line internal/php5/php5.y:2086 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4321,13 +4320,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2146 +// line internal/php5/php5.y:2145 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2150 +// line internal/php5/php5.y:2149 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4339,7 +4338,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2160 +// line internal/php5/php5.y:2159 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4351,13 +4350,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2170 +// line internal/php5/php5.y:2169 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2178 +// line internal/php5/php5.y:2177 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4369,7 +4368,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2188 +// line internal/php5/php5.y:2187 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4380,7 +4379,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2197 +// line internal/php5/php5.y:2196 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4400,7 +4399,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2219 +// line internal/php5/php5.y:2218 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4408,7 +4407,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2225 +// line internal/php5/php5.y:2224 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4417,7 +4416,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2235 +// line internal/php5/php5.y:2234 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4428,7 +4427,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2244 +// line internal/php5/php5.y:2243 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4439,7 +4438,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2253 +// line internal/php5/php5.y:2252 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4451,7 +4450,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2263 +// line internal/php5/php5.y:2262 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4463,7 +4462,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2276 +// line internal/php5/php5.y:2275 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4472,7 +4471,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2283 +// line internal/php5/php5.y:2282 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4480,7 +4479,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2293 +// line internal/php5/php5.y:2292 { name := &ast.Identifier{ Node: ast.Node{ @@ -4499,7 +4498,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2310 +// line internal/php5/php5.y:2309 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4511,7 +4510,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2320 +// line internal/php5/php5.y:2319 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4525,7 +4524,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2336 +// line internal/php5/php5.y:2335 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4554,7 +4553,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2363 +// line internal/php5/php5.y:2362 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4585,7 +4584,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2392 +// line internal/php5/php5.y:2391 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4615,7 +4614,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2420 +// line internal/php5/php5.y:2419 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4647,19 +4646,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2454 +// line internal/php5/php5.y:2453 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2458 +// line internal/php5/php5.y:2457 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2466 +// line internal/php5/php5.y:2465 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4673,7 +4672,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2478 +// line internal/php5/php5.y:2477 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4681,13 +4680,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2484 +// line internal/php5/php5.y:2483 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2488 +// line internal/php5/php5.y:2487 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4716,7 +4715,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2518 +// line internal/php5/php5.y:2517 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4730,7 +4729,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2533 +// line internal/php5/php5.y:2532 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4738,7 +4737,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2539 +// line internal/php5/php5.y:2538 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4747,7 +4746,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2549 +// line internal/php5/php5.y:2548 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4758,7 +4757,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2558 +// line internal/php5/php5.y:2557 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4771,31 +4770,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2572 +// line internal/php5/php5.y:2571 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2576 +// line internal/php5/php5.y:2575 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2583 +// line internal/php5/php5.y:2582 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2587 +// line internal/php5/php5.y:2586 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2594 +// line internal/php5/php5.y:2593 { yyVAL.node = yyDollar[1].node @@ -4805,7 +4804,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2602 +// line internal/php5/php5.y:2601 { yyVAL.node = yyDollar[1].node @@ -4815,7 +4814,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2613 +// line internal/php5/php5.y:2612 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4829,7 +4828,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2628 +// line internal/php5/php5.y:2627 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4837,7 +4836,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2634 +// line internal/php5/php5.y:2633 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4846,7 +4845,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2644 +// line internal/php5/php5.y:2643 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4863,13 +4862,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2659 +// line internal/php5/php5.y:2658 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2666 +// line internal/php5/php5.y:2665 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4888,7 +4887,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2686 +// line internal/php5/php5.y:2685 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4908,7 +4907,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2704 +// line internal/php5/php5.y:2703 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4921,19 +4920,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2718 +// line internal/php5/php5.y:2717 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2722 +// line internal/php5/php5.y:2721 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2729 +// line internal/php5/php5.y:2728 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4944,7 +4943,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2738 +// line internal/php5/php5.y:2737 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4957,13 +4956,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2752 +// line internal/php5/php5.y:2751 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2756 +// line internal/php5/php5.y:2755 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4977,31 +4976,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2771 +// line internal/php5/php5.y:2770 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2775 +// line internal/php5/php5.y:2774 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2782 +// line internal/php5/php5.y:2781 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2786 +// line internal/php5/php5.y:2785 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2793 +// line internal/php5/php5.y:2792 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5013,7 +5012,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2803 +// line internal/php5/php5.y:2802 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5025,7 +5024,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2813 +// line internal/php5/php5.y:2812 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5037,7 +5036,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2823 +// line internal/php5/php5.y:2822 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5049,7 +5048,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2833 +// line internal/php5/php5.y:2832 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5061,7 +5060,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2843 +// line internal/php5/php5.y:2842 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5073,7 +5072,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2856 +// line internal/php5/php5.y:2855 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5100,7 +5099,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2881 +// line internal/php5/php5.y:2880 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5129,7 +5128,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2908 +// line internal/php5/php5.y:2907 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5156,7 +5155,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2933 +// line internal/php5/php5.y:2932 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5184,7 +5183,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2962 +// line internal/php5/php5.y:2961 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5210,7 +5209,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2986 +// line internal/php5/php5.y:2985 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5239,7 +5238,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3016 +// line internal/php5/php5.y:3015 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5248,7 +5247,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3023 +// line internal/php5/php5.y:3022 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5256,19 +5255,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3033 +// line internal/php5/php5.y:3032 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3037 +// line internal/php5/php5.y:3036 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3044 +// line internal/php5/php5.y:3043 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5277,25 +5276,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3051 +// line internal/php5/php5.y:3050 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3058 +// line internal/php5/php5.y:3057 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3062 +// line internal/php5/php5.y:3061 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3069 +// line internal/php5/php5.y:3068 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5311,7 +5310,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3083 +// line internal/php5/php5.y:3082 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5327,37 +5326,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3100 +// line internal/php5/php5.y:3099 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3104 +// line internal/php5/php5.y:3103 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3108 +// line internal/php5/php5.y:3107 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3115 +// line internal/php5/php5.y:3114 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3119 +// line internal/php5/php5.y:3118 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3126 +// line internal/php5/php5.y:3125 { if yyDollar[3].node != nil { @@ -5373,7 +5372,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3143 +// line internal/php5/php5.y:3142 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -5406,7 +5405,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3174 +// line internal/php5/php5.y:3173 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5419,7 +5418,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3185 +// line internal/php5/php5.y:3184 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5433,7 +5432,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3197 +// line internal/php5/php5.y:3196 { var _new *ast.ExprNew @@ -5460,7 +5459,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3222 +// line internal/php5/php5.y:3221 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5472,7 +5471,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3232 +// line internal/php5/php5.y:3231 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5484,7 +5483,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3242 +// line internal/php5/php5.y:3241 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5497,7 +5496,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3253 +// line internal/php5/php5.y:3252 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5510,7 +5509,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3264 +// line internal/php5/php5.y:3263 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5523,7 +5522,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3275 +// line internal/php5/php5.y:3274 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5536,7 +5535,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3286 +// line internal/php5/php5.y:3285 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5549,7 +5548,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3297 +// line internal/php5/php5.y:3296 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5562,7 +5561,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3308 +// line internal/php5/php5.y:3307 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5575,7 +5574,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3319 +// line internal/php5/php5.y:3318 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5588,7 +5587,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3330 +// line internal/php5/php5.y:3329 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5601,7 +5600,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3341 +// line internal/php5/php5.y:3340 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5613,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3352 +// line internal/php5/php5.y:3351 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5627,7 +5626,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3363 +// line internal/php5/php5.y:3362 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5640,7 +5639,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3374 +// line internal/php5/php5.y:3373 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5652,7 +5651,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3384 +// line internal/php5/php5.y:3383 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5665,7 +5664,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3395 +// line internal/php5/php5.y:3394 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5677,7 +5676,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3405 +// line internal/php5/php5.y:3404 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5690,7 +5689,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3416 +// line internal/php5/php5.y:3415 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5703,7 +5702,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3427 +// line internal/php5/php5.y:3426 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5716,7 +5715,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3438 +// line internal/php5/php5.y:3437 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5729,7 +5728,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3449 +// line internal/php5/php5.y:3448 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5742,7 +5741,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3460 +// line internal/php5/php5.y:3459 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5755,7 +5754,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3471 +// line internal/php5/php5.y:3470 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5768,7 +5767,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3482 +// line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5781,7 +5780,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3493 +// line internal/php5/php5.y:3492 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5792,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3503 +// line internal/php5/php5.y:3502 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5806,7 +5805,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3514 +// line internal/php5/php5.y:3513 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5818,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3525 +// line internal/php5/php5.y:3524 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5832,7 +5831,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3536 +// line internal/php5/php5.y:3535 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5845,7 +5844,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3547 +// line internal/php5/php5.y:3546 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5858,7 +5857,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3558 +// line internal/php5/php5.y:3557 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5871,7 +5870,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3569 +// line internal/php5/php5.y:3568 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5884,7 +5883,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3580 +// line internal/php5/php5.y:3579 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5897,7 +5896,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3591 +// line internal/php5/php5.y:3590 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5909,7 +5908,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3601 +// line internal/php5/php5.y:3600 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5921,7 +5920,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3611 +// line internal/php5/php5.y:3610 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5933,7 +5932,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3621 +// line internal/php5/php5.y:3620 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5945,7 +5944,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3631 +// line internal/php5/php5.y:3630 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5958,7 +5957,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3642 +// line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5971,7 +5970,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3653 +// line internal/php5/php5.y:3652 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5984,7 +5983,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3664 +// line internal/php5/php5.y:3663 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5998,7 +5997,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3676 +// line internal/php5/php5.y:3675 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6011,7 +6010,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3687 +// line internal/php5/php5.y:3686 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6024,7 +6023,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3698 +// line internal/php5/php5.y:3697 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6037,7 +6036,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3709 +// line internal/php5/php5.y:3708 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6050,7 +6049,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3720 +// line internal/php5/php5.y:3719 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6063,19 +6062,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3731 +// line internal/php5/php5.y:3730 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3735 +// line internal/php5/php5.y:3734 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3739 +// line internal/php5/php5.y:3738 { yyVAL.node = yyDollar[2].node @@ -6107,7 +6106,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3769 +// line internal/php5/php5.y:3768 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6121,7 +6120,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3781 +// line internal/php5/php5.y:3780 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6135,13 +6134,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3793 +// line internal/php5/php5.y:3792 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3797 +// line internal/php5/php5.y:3796 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6154,7 +6153,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3808 +// line internal/php5/php5.y:3807 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6167,7 +6166,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3819 +// line internal/php5/php5.y:3818 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6180,7 +6179,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3830 +// line internal/php5/php5.y:3829 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6193,7 +6192,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3841 +// line internal/php5/php5.y:3840 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6206,7 +6205,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3852 +// line internal/php5/php5.y:3851 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6219,7 +6218,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3863 +// line internal/php5/php5.y:3862 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6232,27 +6231,26 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3874 +// line internal/php5/php5.y:3873 { - yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} - - if bytes.EqualFold(yyDollar[1].token.Value, []byte("die")) { - yyVAL.node.(*ast.ExprExit).Die = true + exit := &ast.ExprExit{ + DieTkn: yyDollar[1].token, } - // save position if yyDollar[2].node == nil { - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + exit.Node.Position = position.NewTokenPosition(yyDollar[1].token) } else { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn + exit.Expr = yyDollar[2].node.(*ast.ParserBrackets).Child + exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn } - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = exit } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3892 +// line internal/php5/php5.y:3890 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6264,25 +6262,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3902 +// line internal/php5/php5.y:3900 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3906 +// line internal/php5/php5.y:3904 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3910 +// line internal/php5/php5.y:3908 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3914 +// line internal/php5/php5.y:3912 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6294,7 +6292,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3924 +// line internal/php5/php5.y:3922 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6306,7 +6304,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3934 +// line internal/php5/php5.y:3932 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6318,7 +6316,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3944 +// line internal/php5/php5.y:3942 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6337,7 +6335,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3961 +// line internal/php5/php5.y:3959 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6357,7 +6355,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3982 +// line internal/php5/php5.y:3980 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6369,7 +6367,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3992 +// line internal/php5/php5.y:3990 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6381,7 +6379,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4002 +// line internal/php5/php5.y:4000 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6394,7 +6392,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4013 +// line internal/php5/php5.y:4011 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6407,7 +6405,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4027 +// line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6421,7 +6419,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4039 +// line internal/php5/php5.y:4037 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6435,7 +6433,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4051 +// line internal/php5/php5.y:4049 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6455,7 +6453,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4069 +// line internal/php5/php5.y:4067 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6469,7 +6467,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4084 +// line internal/php5/php5.y:4082 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6484,7 +6482,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4097 +// line internal/php5/php5.y:4095 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6498,19 +6496,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4112 +// line internal/php5/php5.y:4110 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4119 +// line internal/php5/php5.y:4117 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4123 +// line internal/php5/php5.y:4121 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6525,7 +6523,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4139 +// line internal/php5/php5.y:4137 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6547,7 +6545,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4159 +// line internal/php5/php5.y:4157 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6574,7 +6572,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4184 +// line internal/php5/php5.y:4182 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6595,7 +6593,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4203 +// line internal/php5/php5.y:4201 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6621,55 +6619,67 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4230 +// line internal/php5/php5.y:4228 { - name := &ast.NameName{ + yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[2].node), }, - Parts: yyDollar[1].list, + Function: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, } - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[2].node) } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4243 +// line internal/php5/php5.y:4245 { - name := &ast.NameRelative{ + yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), }, - NsTkn: yyDollar[1].token, - NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].list, + Function: &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + NsTkn: yyDollar[1].token, + NsSeparatorTkn: yyDollar[2].token, + Parts: yyDollar[3].list, + }, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, } - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[4].node) } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4258 +// line internal/php5/php5.y:4264 { - name := &ast.NameFullyQualified{ + yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), }, - NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].list, + Function: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + }, + OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, } - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[3].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[3].node) } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4272 +// line internal/php5/php5.y:4282 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6682,7 +6692,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4283 +// line internal/php5/php5.y:4293 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6695,7 +6705,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4294 +// line internal/php5/php5.y:4304 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6708,7 +6718,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4305 +// line internal/php5/php5.y:4315 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6721,19 +6731,21 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4316 +// line internal/php5/php5.y:4326 { - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), + }, + Function: yyDollar[1].node, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4329 +// line internal/php5/php5.y:4341 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6745,7 +6757,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4339 +// line internal/php5/php5.y:4351 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6756,7 +6768,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4348 +// line internal/php5/php5.y:4360 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6769,7 +6781,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4359 +// line internal/php5/php5.y:4371 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6781,7 +6793,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4372 +// line internal/php5/php5.y:4384 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6792,7 +6804,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4381 +// line internal/php5/php5.y:4393 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6805,7 +6817,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4392 +// line internal/php5/php5.y:4404 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6817,19 +6829,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4405 +// line internal/php5/php5.y:4417 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4409 +// line internal/php5/php5.y:4421 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4416 +// line internal/php5/php5.y:4428 { yyVAL.node = yyDollar[1].node @@ -6870,25 +6882,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4455 +// line internal/php5/php5.y:4467 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4463 +// line internal/php5/php5.y:4475 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4467 +// line internal/php5/php5.y:4479 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4475 +// line internal/php5/php5.y:4487 { yyVAL.list = yyDollar[2].list @@ -6897,13 +6909,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4485 +// line internal/php5/php5.y:4497 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4489 +// line internal/php5/php5.y:4501 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6919,19 +6931,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4503 +// line internal/php5/php5.y:4515 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4510 +// line internal/php5/php5.y:4522 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4514 +// line internal/php5/php5.y:4526 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6945,25 +6957,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4526 +// line internal/php5/php5.y:4538 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4533 +// line internal/php5/php5.y:4545 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4537 +// line internal/php5/php5.y:4549 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4544 +// line internal/php5/php5.y:4556 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6975,7 +6987,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4554 +// line internal/php5/php5.y:4566 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6987,7 +6999,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4564 +// line internal/php5/php5.y:4576 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6999,7 +7011,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4574 +// line internal/php5/php5.y:4586 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7011,7 +7023,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4584 +// line internal/php5/php5.y:4596 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7023,7 +7035,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4594 +// line internal/php5/php5.y:4606 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7035,7 +7047,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4604 +// line internal/php5/php5.y:4616 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7047,7 +7059,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4614 +// line internal/php5/php5.y:4626 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7059,7 +7071,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4624 +// line internal/php5/php5.y:4636 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7071,7 +7083,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4634 +// line internal/php5/php5.y:4646 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7083,7 +7095,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4644 +// line internal/php5/php5.y:4656 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7104,7 +7116,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4663 +// line internal/php5/php5.y:4675 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7116,7 +7128,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4676 +// line internal/php5/php5.y:4688 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7135,25 +7147,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4696 +// line internal/php5/php5.y:4708 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4703 +// line internal/php5/php5.y:4715 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4707 +// line internal/php5/php5.y:4719 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4711 +// line internal/php5/php5.y:4723 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7169,7 +7181,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4725 +// line internal/php5/php5.y:4737 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7187,7 +7199,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4741 +// line internal/php5/php5.y:4753 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7204,7 +7216,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4756 +// line internal/php5/php5.y:4768 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7219,7 +7231,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4769 +// line internal/php5/php5.y:4781 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7233,13 +7245,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4781 +// line internal/php5/php5.y:4793 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4785 +// line internal/php5/php5.y:4797 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7251,13 +7263,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4795 +// line internal/php5/php5.y:4807 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4802 +// line internal/php5/php5.y:4814 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7271,7 +7283,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4814 +// line internal/php5/php5.y:4826 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7284,7 +7296,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4825 +// line internal/php5/php5.y:4837 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7297,7 +7309,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4836 +// line internal/php5/php5.y:4848 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7310,7 +7322,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4847 +// line internal/php5/php5.y:4859 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7323,7 +7335,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4858 +// line internal/php5/php5.y:4870 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7336,7 +7348,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4869 +// line internal/php5/php5.y:4881 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7349,7 +7361,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4880 +// line internal/php5/php5.y:4892 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7361,7 +7373,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4890 +// line internal/php5/php5.y:4902 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7373,7 +7385,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4900 +// line internal/php5/php5.y:4912 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7386,7 +7398,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4911 +// line internal/php5/php5.y:4923 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7399,7 +7411,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4922 +// line internal/php5/php5.y:4934 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7412,7 +7424,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4933 +// line internal/php5/php5.y:4945 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7425,7 +7437,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4944 +// line internal/php5/php5.y:4956 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7438,7 +7450,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4955 +// line internal/php5/php5.y:4967 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7451,7 +7463,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4966 +// line internal/php5/php5.y:4978 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7464,7 +7476,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4977 +// line internal/php5/php5.y:4989 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7477,7 +7489,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4988 +// line internal/php5/php5.y:5000 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7490,7 +7502,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4999 +// line internal/php5/php5.y:5011 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7503,7 +7515,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5010 +// line internal/php5/php5.y:5022 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7516,7 +7528,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5021 +// line internal/php5/php5.y:5033 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7529,7 +7541,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5032 +// line internal/php5/php5.y:5044 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7542,7 +7554,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5043 +// line internal/php5/php5.y:5055 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7555,7 +7567,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5054 +// line internal/php5/php5.y:5066 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7569,7 +7581,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5066 +// line internal/php5/php5.y:5078 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7582,7 +7594,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5077 +// line internal/php5/php5.y:5089 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7595,7 +7607,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5088 +// line internal/php5/php5.y:5100 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7608,7 +7620,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5099 +// line internal/php5/php5.y:5111 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7621,7 +7633,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5110 +// line internal/php5/php5.y:5122 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7635,7 +7647,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5122 +// line internal/php5/php5.y:5134 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7649,7 +7661,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5134 +// line internal/php5/php5.y:5146 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7661,7 +7673,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5144 +// line internal/php5/php5.y:5156 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7673,7 +7685,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5154 +// line internal/php5/php5.y:5166 { yyVAL.node = yyDollar[2].node @@ -7683,13 +7695,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5165 +// line internal/php5/php5.y:5177 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5169 +// line internal/php5/php5.y:5181 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7705,7 +7717,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5183 +// line internal/php5/php5.y:5195 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7723,7 +7735,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5199 +// line internal/php5/php5.y:5211 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7740,7 +7752,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5217 +// line internal/php5/php5.y:5229 { name := &ast.Identifier{ Node: ast.Node{ @@ -7759,25 +7771,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5234 +// line internal/php5/php5.y:5246 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5238 +// line internal/php5/php5.y:5250 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5242 +// line internal/php5/php5.y:5254 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5246 +// line internal/php5/php5.y:5258 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7790,7 +7802,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5257 +// line internal/php5/php5.y:5269 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7803,7 +7815,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5268 +// line internal/php5/php5.y:5280 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7815,13 +7827,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5281 +// line internal/php5/php5.y:5293 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5285 +// line internal/php5/php5.y:5297 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7832,19 +7844,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5297 +// line internal/php5/php5.y:5309 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5301 +// line internal/php5/php5.y:5313 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5308 +// line internal/php5/php5.y:5320 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7862,7 +7874,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5324 +// line internal/php5/php5.y:5336 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7878,7 +7890,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5338 +// line internal/php5/php5.y:5350 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7895,7 +7907,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5353 +// line internal/php5/php5.y:5365 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7910,19 +7922,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5369 +// line internal/php5/php5.y:5381 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5373 +// line internal/php5/php5.y:5385 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5380 +// line internal/php5/php5.y:5392 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7939,7 +7951,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5395 +// line internal/php5/php5.y:5407 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7956,25 +7968,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5414 +// line internal/php5/php5.y:5426 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5422 +// line internal/php5/php5.y:5434 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5429 +// line internal/php5/php5.y:5441 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5436 +// line internal/php5/php5.y:5448 { yyVAL.node = yyDollar[1].node @@ -8032,25 +8044,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5492 +// line internal/php5/php5.y:5504 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5499 +// line internal/php5/php5.y:5511 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5503 +// line internal/php5/php5.y:5515 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5511 +// line internal/php5/php5.y:5523 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8064,7 +8076,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5526 +// line internal/php5/php5.y:5538 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8080,7 +8092,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5540 +// line internal/php5/php5.y:5552 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8096,7 +8108,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5557 +// line internal/php5/php5.y:5569 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8105,31 +8117,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5567 +// line internal/php5/php5.y:5579 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5571 +// line internal/php5/php5.y:5583 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5575 +// line internal/php5/php5.y:5587 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5582 +// line internal/php5/php5.y:5594 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5586 +// line internal/php5/php5.y:5598 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8141,7 +8153,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5599 +// line internal/php5/php5.y:5611 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8154,7 +8166,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5610 +// line internal/php5/php5.y:5622 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8167,26 +8179,12 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5624 +// line internal/php5/php5.y:5636 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5631 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - } - case 453: - yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:5643 { yyVAL.node = &ast.ExprArrayDimFetch{ @@ -8199,51 +8197,9 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 454: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5658 - { - yyVAL.node = yyDollar[1].node - } - case 455: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5662 - { - yyVAL.node = yyDollar[1].node - } - case 456: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5666 - { - yyVAL.node = yyDollar[1].node - } - case 457: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5674 - { - yyVAL.node = yyDollar[1].node - } - case 458: - yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5678 - { - yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node - - for _, n := range yyDollar[1].simpleIndirectReference.all { - n.GetNode().Position = position.NewNodesPosition(n, yyDollar[2].node) - } - - yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] - } - case 459: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5688 - { - yyVAL.node = yyDollar[1].node - } - case 460: + case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5695 +// line internal/php5/php5.y:5655 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8255,7 +8211,49 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 461: + case 454: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5670 + { + yyVAL.node = yyDollar[1].node + } + case 455: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5674 + { + yyVAL.node = yyDollar[1].node + } + case 456: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5678 + { + yyVAL.node = yyDollar[1].node + } + case 457: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5686 + { + yyVAL.node = yyDollar[1].node + } + case 458: + yyDollar = yyS[yypt-2 : yypt+1] +// line internal/php5/php5.y:5690 + { + yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node + + for _, n := range yyDollar[1].simpleIndirectReference.all { + n.GetNode().Position = position.NewNodesPosition(n, yyDollar[2].node) + } + + yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] + } + case 459: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5700 + { + yyVAL.node = yyDollar[1].node + } + case 460: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:5707 { @@ -8269,15 +8267,29 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } + case 461: + yyDollar = yyS[yypt-4 : yypt+1] +// line internal/php5/php5.y:5719 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5719 +// line internal/php5/php5.y:5731 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5727 +// line internal/php5/php5.y:5739 { name := &ast.Identifier{ Node: ast.Node{ @@ -8296,7 +8308,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5744 +// line internal/php5/php5.y:5756 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8310,25 +8322,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5759 +// line internal/php5/php5.y:5771 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5763 +// line internal/php5/php5.y:5775 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5771 +// line internal/php5/php5.y:5783 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5775 +// line internal/php5/php5.y:5787 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8338,7 +8350,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5786 +// line internal/php5/php5.y:5798 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8354,7 +8366,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5800 +// line internal/php5/php5.y:5812 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8370,7 +8382,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5814 +// line internal/php5/php5.y:5826 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8380,7 +8392,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5825 +// line internal/php5/php5.y:5837 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8392,7 +8404,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5835 +// line internal/php5/php5.y:5847 { yyVAL.node = yyDollar[2].node @@ -8405,7 +8417,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5849 +// line internal/php5/php5.y:5861 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8418,7 +8430,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5860 +// line internal/php5/php5.y:5872 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8435,7 +8447,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5878 +// line internal/php5/php5.y:5890 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8444,7 +8456,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5885 +// line internal/php5/php5.y:5897 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8452,7 +8464,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5895 +// line internal/php5/php5.y:5907 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8463,7 +8475,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5904 +// line internal/php5/php5.y:5916 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8490,19 +8502,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5929 +// line internal/php5/php5.y:5941 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5937 +// line internal/php5/php5.y:5949 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5941 +// line internal/php5/php5.y:5953 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8513,7 +8525,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5953 +// line internal/php5/php5.y:5965 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8531,7 +8543,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5969 +// line internal/php5/php5.y:5981 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8547,7 +8559,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5983 +// line internal/php5/php5.y:5995 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8564,7 +8576,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5998 +// line internal/php5/php5.y:6010 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8579,7 +8591,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6011 +// line internal/php5/php5.y:6023 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8602,7 +8614,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6032 +// line internal/php5/php5.y:6044 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8623,7 +8635,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6051 +// line internal/php5/php5.y:6063 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8645,7 +8657,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6071 +// line internal/php5/php5.y:6083 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8665,13 +8677,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6092 +// line internal/php5/php5.y:6104 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6096 +// line internal/php5/php5.y:6108 { yyVAL.list = append( yyDollar[1].list, @@ -8686,13 +8698,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6109 +// line internal/php5/php5.y:6121 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6113 +// line internal/php5/php5.y:6125 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8707,7 +8719,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6129 +// line internal/php5/php5.y:6141 { name := &ast.Identifier{ Node: ast.Node{ @@ -8726,7 +8738,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6146 +// line internal/php5/php5.y:6158 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8751,7 +8763,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6169 +// line internal/php5/php5.y:6181 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8779,7 +8791,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6195 +// line internal/php5/php5.y:6207 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8794,7 +8806,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6208 +// line internal/php5/php5.y:6220 { name := &ast.Identifier{ Node: ast.Node{ @@ -8816,7 +8828,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6228 +// line internal/php5/php5.y:6240 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8843,7 +8855,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6253 +// line internal/php5/php5.y:6265 { yyVAL.node = yyDollar[2].node @@ -8853,7 +8865,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6264 +// line internal/php5/php5.y:6276 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8865,7 +8877,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6274 +// line internal/php5/php5.y:6286 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8894,7 +8906,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6301 +// line internal/php5/php5.y:6313 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8913,7 +8925,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6321 +// line internal/php5/php5.y:6333 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8927,7 +8939,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6333 +// line internal/php5/php5.y:6345 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8941,7 +8953,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6345 +// line internal/php5/php5.y:6357 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8955,53 +8967,45 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6357 +// line internal/php5/php5.y:6369 { - yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprInclude{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + IncludeTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6367 +// line internal/php5/php5.y:6379 { - yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprIncludeOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + IncludeTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6377 +// line internal/php5/php5.y:6389 { - exprBrackets := &ast.ParserBrackets{ + yyVAL.node = &ast.ExprEval{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, + EvalTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + CloseParenthesisTkn: yyDollar[4].token, } - yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6397 +// line internal/php5/php5.y:6401 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9013,7 +9017,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6407 +// line internal/php5/php5.y:6411 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9025,13 +9029,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6420 +// line internal/php5/php5.y:6424 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6424 +// line internal/php5/php5.y:6428 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9040,19 +9044,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6434 +// line internal/php5/php5.y:6438 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6438 +// line internal/php5/php5.y:6442 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6445 +// line internal/php5/php5.y:6449 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9071,7 +9075,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6462 +// line internal/php5/php5.y:6466 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9090,7 +9094,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6482 +// line internal/php5/php5.y:6486 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9109,7 +9113,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6502 +// line internal/php5/php5.y:6506 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index d38e937..0613a54 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2,7 +2,6 @@ package php5 import ( - "bytes" "strconv" "github.com/z7zmey/php-parser/internal/position" @@ -3872,21 +3871,20 @@ expr_without_variable: } | T_EXIT exit_expr { - $$ = &ast.ExprExit{ast.Node{}, false, $2} - - if (bytes.EqualFold($1.Value, []byte("die"))) { - $$.(*ast.ExprExit).Die = true + exit := &ast.ExprExit{ + DieTkn: $1, } - // save position if $2 == nil { - $$.GetNode().Position = position.NewTokenPosition($1) + exit.Node.Position = position.NewTokenPosition($1) } else { - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) + exit.Node.Position = position.NewTokenNodePosition($1, $2) + exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn + exit.Expr = $2.(*ast.ParserBrackets).Child + exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn } - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = exit } | '@' expr { @@ -4228,45 +4226,57 @@ lexical_var_list: function_call: namespace_name function_call_parameter_list { - name := &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1), + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodeListNodePosition($1, $2), }, - Parts: $1, + Function: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, } - $$ = &ast.ExprFunctionCall{ast.Node{}, name, $2.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition(name, $2) } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { - name := &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $4), }, - NsTkn: $1, - NsSeparatorTkn: $2, - Parts: $3, + Function: &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $3), + }, + NsTkn: $1, + NsSeparatorTkn: $2, + Parts: $3, + }, + OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, } - $$ = &ast.ExprFunctionCall{ast.Node{}, name, $4.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition(name, $4) } | T_NS_SEPARATOR namespace_name function_call_parameter_list { - name := &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), }, - NsSeparatorTkn: $1, - Parts: $2, + Function: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Parts: $2, + }, + OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $3.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, } - $$ = &ast.ExprFunctionCall{ast.Node{}, name, $3.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition(name, $3) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { @@ -4314,13 +4324,15 @@ function_call: } | variable_without_objects function_call_parameter_list { - $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $2), + }, + Function: $1, + OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + } } ; @@ -6355,43 +6367,35 @@ internal_functions_in_yacc: } | T_INCLUDE expr { - $$ = &ast.ExprInclude{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprInclude{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + IncludeTkn: $1, + Expr: $2, + } } | T_INCLUDE_ONCE expr { - $$ = &ast.ExprIncludeOnce{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprIncludeOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + IncludeTkn: $1, + Expr: $2, + } } | T_EVAL '(' expr ')' { - exprBrackets := &ast.ParserBrackets{ + $$ = &ast.ExprEval{ Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), + Position: position.NewTokensPosition($1, $4), }, - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, + EvalTkn: $1, + OpenParenthesisTkn: $2, + Expr: $3, + CloseParenthesisTkn: $4, } - $$ = &ast.ExprEval{ast.Node{}, exprBrackets} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_REQUIRE expr { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index c397bc8..25bfa12 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -8,7 +8,6 @@ import __yyfmt__ "fmt" // line internal/php7/php7.y:2 import ( - "bytes" "strconv" "github.com/z7zmey/php-parser/internal/position" @@ -16,7 +15,7 @@ import ( "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/php7/php7.y:15 +// line internal/php7/php7.y:14 type yySymType struct { yys int node ast.Vertex @@ -344,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4998 +// line internal/php7/php7.y:4992 // line yacctab:1 var yyExca = [...]int{ @@ -2111,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:291 +// line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2122,469 +2121,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 +// line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:325 +// line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:332 +// line internal/php7/php7.y:331 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2597,13 +2596,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:343 +// line internal/php7/php7.y:342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:350 +// line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2617,7 +2616,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:362 +// line internal/php7/php7.y:361 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2630,7 +2629,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:376 +// line internal/php7/php7.y:375 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2641,7 +2640,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:385 +// line internal/php7/php7.y:384 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2653,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:396 +// line internal/php7/php7.y:395 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2666,44 +2665,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:409 +// line internal/php7/php7.y:408 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:414 +// line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:418 +// line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:422 +// line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:426 +// line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:430 +// line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:434 +// line internal/php7/php7.y:433 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2717,7 +2716,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:446 +// line internal/php7/php7.y:445 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2735,7 +2734,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:462 +// line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2755,7 +2754,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:480 +// line internal/php7/php7.y:479 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2769,7 +2768,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:492 +// line internal/php7/php7.y:491 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2781,7 +2780,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:502 +// line internal/php7/php7.y:501 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2794,7 +2793,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:513 +// line internal/php7/php7.y:512 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2807,7 +2806,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:524 +// line internal/php7/php7.y:523 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2821,7 +2820,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:536 +// line internal/php7/php7.y:535 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2835,7 +2834,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:551 +// line internal/php7/php7.y:550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2847,7 +2846,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:561 +// line internal/php7/php7.y:560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2859,7 +2858,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:574 +// line internal/php7/php7.y:573 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2883,7 +2882,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:596 +// line internal/php7/php7.y:595 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2906,7 +2905,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:620 +// line internal/php7/php7.y:619 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2928,7 +2927,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:640 +// line internal/php7/php7.y:639 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2951,19 +2950,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:664 +// line internal/php7/php7.y:663 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:668 +// line internal/php7/php7.y:667 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:675 +// line internal/php7/php7.y:674 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2971,13 +2970,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:681 +// line internal/php7/php7.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:688 +// line internal/php7/php7.y:687 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2985,13 +2984,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:694 +// line internal/php7/php7.y:693 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:701 +// line internal/php7/php7.y:700 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2999,19 +2998,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:707 +// line internal/php7/php7.y:706 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:714 +// line internal/php7/php7.y:713 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:718 +// line internal/php7/php7.y:717 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3021,7 +3020,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:729 +// line internal/php7/php7.y:728 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3037,7 +3036,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:743 +// line internal/php7/php7.y:742 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3060,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:768 +// line internal/php7/php7.y:767 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:772 +// line internal/php7/php7.y:771 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3076,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:783 +// line internal/php7/php7.y:782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3086,7 +3085,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:790 +// line internal/php7/php7.y:789 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3094,7 +3093,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:799 +// line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3107,50 +3106,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:810 +// line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:817 +// line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:822 +// line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:826 +// line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:830 +// line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:834 +// line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:838 +// line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:842 +// line internal/php7/php7.y:841 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3164,7 +3163,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:856 +// line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3177,19 +3176,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:867 +// line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:871 +// line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:875 +// line internal/php7/php7.y:874 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3201,7 +3200,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:885 +// line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3218,7 +3217,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:900 +// line internal/php7/php7.y:899 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3234,7 +3233,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:914 +// line internal/php7/php7.y:913 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3245,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:924 +// line internal/php7/php7.y:923 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3259,7 +3258,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:935 +// line internal/php7/php7.y:934 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3272,7 +3271,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:946 +// line internal/php7/php7.y:945 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3285,7 +3284,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:957 +// line internal/php7/php7.y:956 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3295,7 +3294,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:965 +// line internal/php7/php7.y:964 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3305,7 +3304,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:973 +// line internal/php7/php7.y:972 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3315,7 +3314,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:981 +// line internal/php7/php7.y:980 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3327,7 +3326,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:991 +// line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3339,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1001 +// line internal/php7/php7.y:1000 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3352,7 +3351,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1012 +// line internal/php7/php7.y:1011 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3366,7 +3365,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1024 +// line internal/php7/php7.y:1023 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3382,7 +3381,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1038 +// line internal/php7/php7.y:1037 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3395,7 +3394,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1049 +// line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3406,7 +3405,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1058 +// line internal/php7/php7.y:1057 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3425,7 +3424,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1075 +// line internal/php7/php7.y:1074 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3438,7 +3437,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1086 +// line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3457,7 +3456,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1103 +// line internal/php7/php7.y:1102 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3475,13 +3474,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1121 +// line internal/php7/php7.y:1120 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1125 +// line internal/php7/php7.y:1124 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3512,7 +3511,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1156 +// line internal/php7/php7.y:1155 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3520,7 +3519,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1162 +// line internal/php7/php7.y:1161 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3529,13 +3528,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1172 +// line internal/php7/php7.y:1171 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1176 +// line internal/php7/php7.y:1175 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3549,7 +3548,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1191 +// line internal/php7/php7.y:1190 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3557,7 +3556,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1197 +// line internal/php7/php7.y:1196 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3566,13 +3565,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1207 +// line internal/php7/php7.y:1206 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1214 +// line internal/php7/php7.y:1213 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3599,31 +3598,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1242 +// line internal/php7/php7.y:1241 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1246 +// line internal/php7/php7.y:1245 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1253 +// line internal/php7/php7.y:1252 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1257 +// line internal/php7/php7.y:1256 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1264 +// line internal/php7/php7.y:1263 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,7 +3646,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1286 +// line internal/php7/php7.y:1285 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3670,19 +3669,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1310 +// line internal/php7/php7.y:1309 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1314 +// line internal/php7/php7.y:1313 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1321 +// line internal/php7/php7.y:1320 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3694,7 +3693,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1331 +// line internal/php7/php7.y:1330 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3706,7 +3705,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1344 +// line internal/php7/php7.y:1343 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3727,7 +3726,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1366 +// line internal/php7/php7.y:1365 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3749,13 +3748,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1389 +// line internal/php7/php7.y:1388 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1393 +// line internal/php7/php7.y:1392 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3767,13 +3766,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1406 +// line internal/php7/php7.y:1405 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1410 +// line internal/php7/php7.y:1409 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3786,13 +3785,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1424 +// line internal/php7/php7.y:1423 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1428 +// line internal/php7/php7.y:1427 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3805,13 +3804,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1442 +// line internal/php7/php7.y:1441 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1446 +// line internal/php7/php7.y:1445 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3823,7 +3822,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1456 +// line internal/php7/php7.y:1455 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3838,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1469 +// line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3852,7 +3851,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1484 +// line internal/php7/php7.y:1483 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3863,7 +3862,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1493 +// line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3883,7 +3882,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1514 +// line internal/php7/php7.y:1513 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3894,7 +3893,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1523 +// line internal/php7/php7.y:1522 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3914,7 +3913,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1544 +// line internal/php7/php7.y:1543 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3925,7 +3924,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1553 +// line internal/php7/php7.y:1552 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3945,7 +3944,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1574 +// line internal/php7/php7.y:1573 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3958,7 +3957,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1585 +// line internal/php7/php7.y:1584 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3972,7 +3971,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1597 +// line internal/php7/php7.y:1596 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3987,7 +3986,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1610 +// line internal/php7/php7.y:1609 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4003,13 +4002,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1627 +// line internal/php7/php7.y:1626 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1631 +// line internal/php7/php7.y:1630 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4023,7 +4022,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1643 +// line internal/php7/php7.y:1642 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4036,19 +4035,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1657 +// line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1661 +// line internal/php7/php7.y:1660 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1668 +// line internal/php7/php7.y:1667 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4059,7 +4058,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1677 +// line internal/php7/php7.y:1676 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4079,7 +4078,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1698 +// line internal/php7/php7.y:1697 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4094,7 +4093,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1711 +// line internal/php7/php7.y:1710 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4113,13 +4112,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1731 +// line internal/php7/php7.y:1730 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1735 +// line internal/php7/php7.y:1734 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4135,7 +4134,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1752 +// line internal/php7/php7.y:1751 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4157,7 +4156,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1772 +// line internal/php7/php7.y:1771 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4181,7 +4180,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1797 +// line internal/php7/php7.y:1796 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4191,7 +4190,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1805 +// line internal/php7/php7.y:1804 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4215,25 +4214,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1830 +// line internal/php7/php7.y:1829 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1834 +// line internal/php7/php7.y:1833 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1841 +// line internal/php7/php7.y:1840 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1845 +// line internal/php7/php7.y:1844 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4242,7 +4241,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1855 +// line internal/php7/php7.y:1854 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4296,7 +4295,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1907 +// line internal/php7/php7.y:1906 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4353,25 +4352,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1965 +// line internal/php7/php7.y:1964 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1969 +// line internal/php7/php7.y:1968 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1976 +// line internal/php7/php7.y:1975 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1980 +// line internal/php7/php7.y:1979 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4383,7 +4382,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1993 +// line internal/php7/php7.y:1992 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4395,7 +4394,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2003 +// line internal/php7/php7.y:2002 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4407,19 +4406,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2013 +// line internal/php7/php7.y:2012 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2020 +// line internal/php7/php7.y:2019 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2024 +// line internal/php7/php7.y:2023 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4428,7 +4427,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2034 +// line internal/php7/php7.y:2033 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4440,7 +4439,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2044 +// line internal/php7/php7.y:2043 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4452,7 +4451,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2057 +// line internal/php7/php7.y:2056 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4460,7 +4459,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2063 +// line internal/php7/php7.y:2062 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4469,7 +4468,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2073 +// line internal/php7/php7.y:2072 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4480,7 +4479,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2082 +// line internal/php7/php7.y:2081 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4492,7 +4491,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2095 +// line internal/php7/php7.y:2094 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4501,7 +4500,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2102 +// line internal/php7/php7.y:2101 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4509,13 +4508,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2111 +// line internal/php7/php7.y:2110 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2118 +// line internal/php7/php7.y:2117 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4524,7 +4523,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2125 +// line internal/php7/php7.y:2124 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4532,7 +4531,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2134 +// line internal/php7/php7.y:2133 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4558,7 +4557,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2158 +// line internal/php7/php7.y:2157 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4585,19 +4584,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2186 +// line internal/php7/php7.y:2185 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2190 +// line internal/php7/php7.y:2189 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2197 +// line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4612,7 +4611,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2210 +// line internal/php7/php7.y:2209 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4626,7 +4625,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2222 +// line internal/php7/php7.y:2221 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4640,7 +4639,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2234 +// line internal/php7/php7.y:2233 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4671,7 +4670,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2266 +// line internal/php7/php7.y:2265 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4679,7 +4678,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2272 +// line internal/php7/php7.y:2271 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4688,7 +4687,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2282 +// line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4699,7 +4698,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2291 +// line internal/php7/php7.y:2290 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4711,7 +4710,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2301 +// line internal/php7/php7.y:2300 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4724,19 +4723,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2315 +// line internal/php7/php7.y:2314 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2319 +// line internal/php7/php7.y:2318 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2326 +// line internal/php7/php7.y:2325 { yyVAL.node = yyDollar[1].node @@ -4746,7 +4745,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2334 +// line internal/php7/php7.y:2333 { yyVAL.node = yyDollar[1].node @@ -4756,7 +4755,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2345 +// line internal/php7/php7.y:2344 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4770,7 +4769,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2360 +// line internal/php7/php7.y:2359 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4789,7 +4788,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2377 +// line internal/php7/php7.y:2376 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4808,7 +4807,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2394 +// line internal/php7/php7.y:2393 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4828,7 +4827,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2412 +// line internal/php7/php7.y:2411 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4841,7 +4840,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2426 +// line internal/php7/php7.y:2425 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4858,13 +4857,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2441 +// line internal/php7/php7.y:2440 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2448 +// line internal/php7/php7.y:2447 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4883,7 +4882,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2468 +// line internal/php7/php7.y:2467 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4894,7 +4893,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2477 +// line internal/php7/php7.y:2476 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4907,13 +4906,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2491 +// line internal/php7/php7.y:2490 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2495 +// line internal/php7/php7.y:2494 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4927,31 +4926,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2510 +// line internal/php7/php7.y:2509 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2514 +// line internal/php7/php7.y:2513 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2521 +// line internal/php7/php7.y:2520 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2525 +// line internal/php7/php7.y:2524 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2532 +// line internal/php7/php7.y:2531 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4963,7 +4962,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2542 +// line internal/php7/php7.y:2541 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4975,7 +4974,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2552 +// line internal/php7/php7.y:2551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4987,7 +4986,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2562 +// line internal/php7/php7.y:2561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4999,7 +4998,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2572 +// line internal/php7/php7.y:2571 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5011,7 +5010,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2582 +// line internal/php7/php7.y:2581 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5023,7 +5022,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2595 +// line internal/php7/php7.y:2594 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5032,7 +5031,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2602 +// line internal/php7/php7.y:2601 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5040,7 +5039,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2611 +// line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5063,7 +5062,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2632 +// line internal/php7/php7.y:2631 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5087,7 +5086,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2657 +// line internal/php7/php7.y:2656 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5095,13 +5094,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2663 +// line internal/php7/php7.y:2662 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2670 +// line internal/php7/php7.y:2669 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5122,7 +5121,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2692 +// line internal/php7/php7.y:2691 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5143,7 +5142,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2714 +// line internal/php7/php7.y:2713 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5152,7 +5151,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2721 +// line internal/php7/php7.y:2720 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5160,25 +5159,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2730 +// line internal/php7/php7.y:2729 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2737 +// line internal/php7/php7.y:2736 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2741 +// line internal/php7/php7.y:2740 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2748 +// line internal/php7/php7.y:2747 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5187,13 +5186,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2755 +// line internal/php7/php7.y:2754 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2762 +// line internal/php7/php7.y:2761 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5210,7 +5209,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2780 +// line internal/php7/php7.y:2779 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5225,7 +5224,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2793 +// line internal/php7/php7.y:2792 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5237,7 +5236,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2806 +// line internal/php7/php7.y:2805 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5259,7 +5258,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2826 +// line internal/php7/php7.y:2825 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5280,7 +5279,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2845 +// line internal/php7/php7.y:2844 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5293,7 +5292,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2856 +// line internal/php7/php7.y:2855 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5307,7 +5306,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2868 +// line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5319,7 +5318,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2878 +// line internal/php7/php7.y:2877 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5332,7 +5331,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2889 +// line internal/php7/php7.y:2888 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5345,7 +5344,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2900 +// line internal/php7/php7.y:2899 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5358,7 +5357,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2911 +// line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5371,7 +5370,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2922 +// line internal/php7/php7.y:2921 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5384,7 +5383,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2933 +// line internal/php7/php7.y:2932 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5397,7 +5396,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2944 +// line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5410,7 +5409,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2955 +// line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5423,7 +5422,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2966 +// line internal/php7/php7.y:2965 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5436,7 +5435,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2977 +// line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5449,7 +5448,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2988 +// line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5462,7 +5461,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2999 +// line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5475,7 +5474,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3010 +// line internal/php7/php7.y:3009 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5488,7 +5487,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3021 +// line internal/php7/php7.y:3020 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5501,7 +5500,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3032 +// line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5513,7 +5512,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3042 +// line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5526,7 +5525,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3053 +// line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5538,7 +5537,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3063 +// line internal/php7/php7.y:3062 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5551,7 +5550,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3074 +// line internal/php7/php7.y:3073 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5564,7 +5563,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3085 +// line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5577,7 +5576,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3096 +// line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5590,7 +5589,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3107 +// line internal/php7/php7.y:3106 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5603,7 +5602,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3118 +// line internal/php7/php7.y:3117 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5616,7 +5615,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3129 +// line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5629,7 +5628,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3140 +// line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5642,7 +5641,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3151 +// line internal/php7/php7.y:3150 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5653,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3161 +// line internal/php7/php7.y:3160 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5666,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3172 +// line internal/php7/php7.y:3171 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5679,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3183 +// line internal/php7/php7.y:3182 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5692,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3194 +// line internal/php7/php7.y:3193 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5705,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3205 +// line internal/php7/php7.y:3204 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5718,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3216 +// line internal/php7/php7.y:3215 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,7 +5731,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3227 +// line internal/php7/php7.y:3226 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5745,7 +5744,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3238 +// line internal/php7/php7.y:3237 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5758,7 +5757,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3249 +// line internal/php7/php7.y:3248 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5770,7 +5769,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3259 +// line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5782,7 +5781,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3269 +// line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5794,7 +5793,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3279 +// line internal/php7/php7.y:3278 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5806,7 +5805,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3289 +// line internal/php7/php7.y:3288 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5818,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3300 +// line internal/php7/php7.y:3299 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5832,7 +5831,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3311 +// line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5845,7 +5844,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3322 +// line internal/php7/php7.y:3321 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5858,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3334 +// line internal/php7/php7.y:3333 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,7 +5871,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3345 +// line internal/php7/php7.y:3344 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5885,7 +5884,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3356 +// line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5898,7 +5897,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3367 +// line internal/php7/php7.y:3366 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5911,7 +5910,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3378 +// line internal/php7/php7.y:3377 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5924,7 +5923,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3389 +// line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5937,7 +5936,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3400 +// line internal/php7/php7.y:3399 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5954,13 +5953,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3415 +// line internal/php7/php7.y:3414 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3419 +// line internal/php7/php7.y:3418 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5974,7 +5973,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3431 +// line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5988,7 +5987,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3443 +// line internal/php7/php7.y:3442 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6001,13 +6000,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3454 +// line internal/php7/php7.y:3453 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3458 +// line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6020,7 +6019,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3469 +// line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6033,7 +6032,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3480 +// line internal/php7/php7.y:3479 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6046,7 +6045,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3491 +// line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6059,7 +6058,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3502 +// line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6072,7 +6071,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3513 +// line internal/php7/php7.y:3512 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6085,7 +6084,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3524 +// line internal/php7/php7.y:3523 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6098,27 +6097,26 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3535 +// line internal/php7/php7.y:3534 { - yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} - - if bytes.EqualFold(yyDollar[1].token.Value, []byte("die")) { - yyVAL.node.(*ast.ExprExit).Die = true + exit := &ast.ExprExit{ + DieTkn: yyDollar[1].token, } - // save position if yyDollar[2].node == nil { - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + exit.Node.Position = position.NewTokenPosition(yyDollar[1].token) } else { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn + exit.Expr = yyDollar[2].node.(*ast.ParserBrackets).Child + exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn } - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = exit } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3553 +// line internal/php7/php7.y:3551 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6130,13 +6128,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3563 +// line internal/php7/php7.y:3561 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3567 +// line internal/php7/php7.y:3565 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6148,7 +6146,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3577 +// line internal/php7/php7.y:3575 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6160,7 +6158,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3587 +// line internal/php7/php7.y:3585 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6172,7 +6170,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3597 +// line internal/php7/php7.y:3595 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6184,7 +6182,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3607 +// line internal/php7/php7.y:3605 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6197,7 +6195,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3618 +// line internal/php7/php7.y:3616 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6209,13 +6207,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3628 +// line internal/php7/php7.y:3626 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3632 +// line internal/php7/php7.y:3630 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6230,7 +6228,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3648 +// line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6251,7 +6249,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3667 +// line internal/php7/php7.y:3665 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6270,25 +6268,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3691 +// line internal/php7/php7.y:3689 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3695 +// line internal/php7/php7.y:3693 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3702 +// line internal/php7/php7.y:3700 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3706 +// line internal/php7/php7.y:3704 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6303,7 +6301,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3722 +// line internal/php7/php7.y:3720 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6312,7 +6310,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3729 +// line internal/php7/php7.y:3727 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6320,7 +6318,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3738 +// line internal/php7/php7.y:3736 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6339,7 +6337,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3755 +// line internal/php7/php7.y:3753 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6361,15 +6359,17 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3778 +// line internal/php7/php7.y:3776 { - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), + }, + Function: yyDollar[1].node, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 385: yyDollar = yyS[yypt-4 : yypt+1] @@ -6401,17 +6401,19 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:3810 { - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), + }, + Function: yyDollar[1].node, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3823 +// line internal/php7/php7.y:3825 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6423,31 +6425,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3833 +// line internal/php7/php7.y:3835 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3840 +// line internal/php7/php7.y:3842 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3844 +// line internal/php7/php7.y:3846 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3851 +// line internal/php7/php7.y:3853 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3855 +// line internal/php7/php7.y:3857 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6464,13 +6466,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3873 +// line internal/php7/php7.y:3875 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3877 +// line internal/php7/php7.y:3879 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6484,25 +6486,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3889 +// line internal/php7/php7.y:3891 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3896 +// line internal/php7/php7.y:3898 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3900 +// line internal/php7/php7.y:3902 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3907 +// line internal/php7/php7.y:3909 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6517,7 +6519,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3920 +// line internal/php7/php7.y:3922 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6531,7 +6533,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3932 +// line internal/php7/php7.y:3934 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6543,7 +6545,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3945 +// line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6555,7 +6557,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3955 +// line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6567,7 +6569,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3965 +// line internal/php7/php7.y:3967 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6579,7 +6581,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3975 +// line internal/php7/php7.y:3977 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6591,7 +6593,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3985 +// line internal/php7/php7.y:3987 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6603,7 +6605,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3995 +// line internal/php7/php7.y:3997 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6615,7 +6617,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4005 +// line internal/php7/php7.y:4007 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6627,7 +6629,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4015 +// line internal/php7/php7.y:4017 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6639,7 +6641,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4025 +// line internal/php7/php7.y:4027 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6651,7 +6653,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4035 +// line internal/php7/php7.y:4037 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6663,7 +6665,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4045 +// line internal/php7/php7.y:4047 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6684,7 +6686,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4064 +// line internal/php7/php7.y:4066 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6696,7 +6698,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4074 +// line internal/php7/php7.y:4076 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6709,7 +6711,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4085 +// line internal/php7/php7.y:4087 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6722,19 +6724,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4096 +// line internal/php7/php7.y:4098 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4100 +// line internal/php7/php7.y:4102 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4107 +// line internal/php7/php7.y:4109 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6745,7 +6747,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4116 +// line internal/php7/php7.y:4118 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6764,7 +6766,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4133 +// line internal/php7/php7.y:4135 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6783,43 +6785,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4153 +// line internal/php7/php7.y:4155 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4157 +// line internal/php7/php7.y:4159 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4164 +// line internal/php7/php7.y:4166 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4168 +// line internal/php7/php7.y:4170 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4175 +// line internal/php7/php7.y:4177 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4182 +// line internal/php7/php7.y:4184 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4186 +// line internal/php7/php7.y:4188 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6836,19 +6838,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4201 +// line internal/php7/php7.y:4203 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4208 +// line internal/php7/php7.y:4210 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4212 +// line internal/php7/php7.y:4214 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6865,19 +6867,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4227 +// line internal/php7/php7.y:4229 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4234 +// line internal/php7/php7.y:4236 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4238 +// line internal/php7/php7.y:4240 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6891,7 +6893,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4250 +// line internal/php7/php7.y:4252 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6905,7 +6907,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4262 +// line internal/php7/php7.y:4264 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6919,7 +6921,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4274 +// line internal/php7/php7.y:4276 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6932,25 +6934,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4285 +// line internal/php7/php7.y:4287 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4292 +// line internal/php7/php7.y:4294 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4296 +// line internal/php7/php7.y:4298 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4300 +// line internal/php7/php7.y:4302 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6963,7 +6965,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4314 +// line internal/php7/php7.y:4316 { name := &ast.Identifier{ Node: ast.Node{ @@ -6982,7 +6984,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4331 +// line internal/php7/php7.y:4333 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6996,7 +6998,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4343 +// line internal/php7/php7.y:4345 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7008,7 +7010,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4356 +// line internal/php7/php7.y:4358 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7021,7 +7023,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4367 +// line internal/php7/php7.y:4369 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7034,13 +7036,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4381 +// line internal/php7/php7.y:4383 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4385 +// line internal/php7/php7.y:4387 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7054,7 +7056,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4397 +// line internal/php7/php7.y:4399 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7068,7 +7070,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4409 +// line internal/php7/php7.y:4411 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7081,7 +7083,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4420 +// line internal/php7/php7.y:4422 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7094,7 +7096,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4431 +// line internal/php7/php7.y:4433 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7107,7 +7109,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4445 +// line internal/php7/php7.y:4447 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7119,7 +7121,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4455 +// line internal/php7/php7.y:4457 { yyVAL.node = yyDollar[2].node @@ -7129,13 +7131,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4463 +// line internal/php7/php7.y:4465 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4470 +// line internal/php7/php7.y:4472 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7147,7 +7149,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4480 +// line internal/php7/php7.y:4482 { yyVAL.node = yyDollar[2].node @@ -7157,13 +7159,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4488 +// line internal/php7/php7.y:4490 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4495 +// line internal/php7/php7.y:4497 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7176,19 +7178,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4509 +// line internal/php7/php7.y:4511 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4513 +// line internal/php7/php7.y:4515 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4520 +// line internal/php7/php7.y:4522 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7197,7 +7199,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4527 +// line internal/php7/php7.y:4529 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7205,7 +7207,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4536 +// line internal/php7/php7.y:4538 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7218,7 +7220,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4547 +// line internal/php7/php7.y:4549 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7229,7 +7231,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4556 +// line internal/php7/php7.y:4558 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7247,7 +7249,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4572 +// line internal/php7/php7.y:4574 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7263,7 +7265,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4586 +// line internal/php7/php7.y:4588 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7275,7 +7277,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4596 +// line internal/php7/php7.y:4598 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7297,7 +7299,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4616 +// line internal/php7/php7.y:4618 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7317,13 +7319,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4637 +// line internal/php7/php7.y:4639 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4641 +// line internal/php7/php7.y:4643 { yyVAL.list = append( yyDollar[1].list, @@ -7338,13 +7340,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4654 +// line internal/php7/php7.y:4656 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4658 +// line internal/php7/php7.y:4660 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7359,7 +7361,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4674 +// line internal/php7/php7.y:4676 { name := &ast.Identifier{ Node: ast.Node{ @@ -7378,7 +7380,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4691 +// line internal/php7/php7.y:4693 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7403,7 +7405,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4714 +// line internal/php7/php7.y:4716 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7431,7 +7433,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4740 +// line internal/php7/php7.y:4742 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7446,7 +7448,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4753 +// line internal/php7/php7.y:4755 { name := &ast.Identifier{ Node: ast.Node{ @@ -7468,7 +7470,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4773 +// line internal/php7/php7.y:4775 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7495,7 +7497,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4798 +// line internal/php7/php7.y:4800 { yyVAL.node = yyDollar[2].node @@ -7505,7 +7507,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4809 +// line internal/php7/php7.y:4811 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7517,7 +7519,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4819 +// line internal/php7/php7.y:4821 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7540,7 +7542,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4840 +// line internal/php7/php7.y:4842 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7568,7 +7570,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4866 +// line internal/php7/php7.y:4868 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7587,7 +7589,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4886 +// line internal/php7/php7.y:4888 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7605,7 +7607,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4902 +// line internal/php7/php7.y:4904 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7619,53 +7621,45 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4914 +// line internal/php7/php7.y:4916 { - yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprInclude{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + IncludeTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4924 +// line internal/php7/php7.y:4926 { - yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprIncludeOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + IncludeTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4934 +// line internal/php7/php7.y:4936 { - exprBrackets := &ast.ParserBrackets{ + yyVAL.node = &ast.ExprEval{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, + EvalTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + CloseParenthesisTkn: yyDollar[4].token, } - yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4954 +// line internal/php7/php7.y:4948 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7677,7 +7671,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4964 +// line internal/php7/php7.y:4958 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7689,13 +7683,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4977 +// line internal/php7/php7.y:4971 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4981 +// line internal/php7/php7.y:4975 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7704,7 +7698,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4991 +// line internal/php7/php7.y:4985 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 9c95662..5fe9dd0 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2,7 +2,6 @@ package php7 import ( - "bytes" "strconv" "github.com/z7zmey/php-parser/internal/position" @@ -3533,21 +3532,20 @@ expr_without_variable: } | T_EXIT exit_expr { - $$ = &ast.ExprExit{ast.Node{}, false, $2} - - if (bytes.EqualFold($1.Value, []byte("die"))) { - $$.(*ast.ExprExit).Die = true + exit := &ast.ExprExit{ + DieTkn: $1, } - // save position if $2 == nil { - $$.GetNode().Position = position.NewTokenPosition($1) + exit.Node.Position = position.NewTokenPosition($1) } else { - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) + exit.Node.Position = position.NewTokenNodePosition($1, $2) + exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn + exit.Expr = $2.(*ast.ParserBrackets).Child + exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn } - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = exit } | '@' expr { @@ -3776,13 +3774,15 @@ lexical_var: function_call: name argument_list { - $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $2), + }, + Function: $1, + OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + } } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { @@ -3808,13 +3808,15 @@ function_call: } | callable_expr argument_list { - $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $2), + }, + Function: $1, + OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + } } ; @@ -4912,43 +4914,35 @@ internal_functions_in_yacc: } | T_INCLUDE expr { - $$ = &ast.ExprInclude{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprInclude{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + IncludeTkn: $1, + Expr: $2, + } } | T_INCLUDE_ONCE expr { - $$ = &ast.ExprIncludeOnce{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprIncludeOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + IncludeTkn: $1, + Expr: $2, + } } | T_EVAL '(' expr ')' { - exprBrackets := &ast.ParserBrackets{ + $$ = &ast.ExprEval{ Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), + Position: position.NewTokensPosition($1, $4), }, - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, + EvalTkn: $1, + OpenParenthesisTkn: $2, + Expr: $3, + CloseParenthesisTkn: $4, } - $$ = &ast.ExprEval{ast.Node{}, exprBrackets} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_REQUIRE expr { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index fb314cc..93d9001 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1114,7 +1114,10 @@ func (n *ExprErrorSuppress) Accept(v NodeVisitor) { // ExprEval node type ExprEval struct { Node - Expr Vertex + EvalTkn *token.Token + OpenParenthesisTkn *token.Token + Expr Vertex + CloseParenthesisTkn *token.Token } func (n *ExprEval) Accept(v NodeVisitor) { @@ -1124,8 +1127,10 @@ func (n *ExprEval) Accept(v NodeVisitor) { // ExprExit node type ExprExit struct { Node - Die bool - Expr Vertex + DieTkn *token.Token + OpenParenthesisTkn *token.Token + Expr Vertex + CloseParenthesisTkn *token.Token } func (n *ExprExit) Accept(v NodeVisitor) { @@ -1135,8 +1140,10 @@ func (n *ExprExit) Accept(v NodeVisitor) { // ExprFunctionCall node type ExprFunctionCall struct { Node - Function Vertex - ArgumentList *ArgumentList + Function Vertex + OpenParenthesisTkn *token.Token + Arguments []Vertex + CloseParenthesisTkn *token.Token } func (n *ExprFunctionCall) Accept(v NodeVisitor) { @@ -1146,7 +1153,8 @@ func (n *ExprFunctionCall) Accept(v NodeVisitor) { // ExprInclude node type ExprInclude struct { Node - Expr Vertex + IncludeTkn *token.Token + Expr Vertex } func (n *ExprInclude) Accept(v NodeVisitor) { @@ -1156,7 +1164,8 @@ func (n *ExprInclude) Accept(v NodeVisitor) { // ExprIncludeOnce node type ExprIncludeOnce struct { Node - Expr Vertex + IncludeTkn *token.Token + Expr Vertex } func (n *ExprIncludeOnce) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 3da2562..95f2d4a 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -1303,10 +1303,12 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Function) t.visitor.Leave("Function", true) } - if nn.ArgumentList != nil { - t.visitor.Enter("ArgumentList", true) - t.Traverse(nn.ArgumentList) - t.visitor.Leave("ArgumentList", true) + if nn.Arguments != nil { + t.visitor.Enter("Arguments", false) + for _, c := range nn.Arguments { + t.Traverse(c) + } + t.visitor.Leave("Arguments", false) } case *ast.ExprInclude: if nn == nil { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 5ae65a5..2e4f59b 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -692,11 +692,6 @@ func (v *Dump) ExprExit(n *ast.ExprExit) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprExit{\n") v.printNode(n.GetNode()) - - if n.Die { - v.printIndent(v.indent) - v.print("Die: true,\n") - } } func (v *Dump) ExprFunctionCall(n *ast.ExprFunctionCall) { diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 4f51213..79782fe 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1074,11 +1074,7 @@ func (p *PrettyPrinter) printExprEval(n ast.Vertex) { func (p *PrettyPrinter) printExprExit(n ast.Vertex) { nn := n.(*ast.ExprExit) - if nn.Die { - io.WriteString(p.w, "die(") - } else { - io.WriteString(p.w, "exit(") - } + io.WriteString(p.w, "exit(") p.Print(nn.Expr) io.WriteString(p.w, ")") } @@ -1088,7 +1084,7 @@ func (p *PrettyPrinter) printExprFunctionCall(n ast.Vertex) { p.Print(nn.Function) io.WriteString(p.w, "(") - p.joinPrint(", ", nn.ArgumentList.Arguments) + p.joinPrint(", ", nn.Arguments) io.WriteString(p.w, ")") } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 4e86c48..dfbe5f1 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1590,8 +1590,8 @@ func (p *Printer) printExprExit(n ast.Vertex) { nn := n.(*ast.ExprExit) p.printFreeFloating(nn, token.Start) - if nn.Die { - p.write([]byte("die")) + if nn.DieTkn != nil { + p.write(nn.DieTkn.Value) } else { p.write([]byte("exit")) } @@ -1611,9 +1611,9 @@ func (p *Printer) printExprFunctionCall(n ast.Vertex) { p.Print(nn.Function) - p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") + p.printToken(nn.OpenParenthesisTkn, "(") + p.joinPrint(",", nn.Arguments) + p.printToken(nn.CloseParenthesisTkn, ")") p.printFreeFloating(nn, token.End) }